实现如图效果
选择的时候选择值和描述。
存储的时候只存值
并接代码
public void Show_Terminal()
{
TVTerminal.Nodes.Clear();
exeRes = controller.GetStationInfo(combFactory.Text);
if (!exeRes.Status)
{
MessageBox.Show(exeRes.Message);
return;
}
dtTemp = (DataTable)exeRes.Anything;
//string sPreLineType = "";
string sPreLine = "";
string sPreStage = "";
string sPreStationType = "";
for (int i = 0; i <= dtTemp.Rows.Count - 1; i++)
{
string Site = dtTemp.Rows[i]["SITE"].ToString();
string sLine = dtTemp.Rows[i]["LINE"].ToString();
string sStage = dtTemp.Rows[i]["STAGE"].ToString();
string sStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
string sStation = dtTemp.Rows[i]["STATION_NAME"].ToString()+" || "+ dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
//if (sPreLineType!= sLineType)
//{
// TVTerminal.Nodes.Add(sLineType);
// int iNodeCount = TVTerminal.Nodes.Count - 1;
// TVTerminal.Nodes[iNodeCount].ImageIndex = 0;
// TVTerminal.Nodes[iNodeCount].Nodes.Add(sLine);
// TVTerminal.Nodes[iNodeCount].LastNode.ImageIndex = 1;
// TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStage);
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 2;
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStationType);
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 3;
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.Nodes.Add(sStation);
// TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.LastNode.ImageIndex = 4;
//}
//else
if (sPreLine != sLine)
{
TVTerminal.Nodes.Add(sLine);
int iNodeCount = TVTerminal.Nodes.Count - 1;
TVTerminal.Nodes[iNodeCount].ImageIndex = 0;
TVTerminal.Nodes[iNodeCount].Nodes.Add(sStage);
TVTerminal.Nodes[iNodeCount].LastNode.ImageIndex = 1;
TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 2;
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 3;
}
else if (sPreStage != sStage)
{
int iNodeCount = TVTerminal.Nodes.Count - 1;
TVTerminal.Nodes[iNodeCount].Nodes.Add(sStage);
TVTerminal.Nodes[iNodeCount].ImageIndex = 2;
TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 3;
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
}
else if (sPreStationType != sStationType)
{
int iNodeCount = TVTerminal.Nodes.Count - 1;
TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 3;
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
}
else
{
int iNodeCount = TVTerminal.Nodes.Count - 1;
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
}
//sPreLineType = dtTemp.Rows[i]["LINE_TYPE"].ToString();
sPreLine = dtTemp.Rows[i]["LINE"].ToString();
sPreStage = dtTemp.Rows[i]["STAGE"].ToString();
sPreStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
//if (g_sTerminalID == dtTemp.Rows[i]["TERMINAL_ID"].ToString())
//{
// TVTerminal.SelectedNode = TVTerminal.Nodes[TVTerminal.Nodes.Count - 1].LastNode.LastNode.LastNode;
// TVTerminal.Focus();
//}
}
}
并接重要代码
string sStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
string sStation = dtTemp.Rows[i]["STATION_NAME"].ToString()+" || "+ dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
分割取值代码
private void TVTerminal_AfterSelect(object sender, TreeViewEventArgs e)
{
TVTerminal.SelectedNode.SelectedImageIndex = TVTerminal.SelectedNode.ImageIndex;
//lblLineTypeName.Text = "";
lblLineName.Text = "";
lblStageName.Text = "";
lblStationTypeName.Text = "";
lblStationName.Text = "";
if (TVTerminal.SelectedNode.Level != 3)
return;
//lblLineTypeName.Text = TVTerminal.SelectedNode.Parent.Parent.Parent.Parent.Text;
//baseInfo.LineType = lblLineTypeName.Text;
lblLineName.Text = TVTerminal.SelectedNode.Parent.Parent.Parent.Text;
baseInfo.LineName = lblLineName.Text;
lblStageName.Text = TVTerminal.SelectedNode.Parent.Parent.Text;
baseInfo.StageName = lblStageName.Text;
lblStationTypeName.Text = TVTerminal.SelectedNode.Parent.Text;
// Add by shinecao on 2021/3/19
lblStationTypeName.Text = lblStationTypeName.Text.Substring(0, lblStationTypeName.Text.IndexOf(" ||"));
baseInfo.StationType = lblStationTypeName.Text;
lblStationName.Text = TVTerminal.SelectedNode.Text;
// Add by kero hu on 2021/3/16
lblStationName.Text = lblStationName.Text.Substring(0, lblStationName.Text.IndexOf(" ||"));
baseInfo.StationName = lblStationName.Text;
//exeRes = controller.GetStationControl(baseInfo.StationName);
//if (!exeRes.Status)
//{
// MessageBox.Show(exeRes.Message);
//}
}
分割重要代码
lblStationTypeName.Text = TVTerminal.SelectedNode.Parent.Text;
// Add by shinecao on 2021/3/19
lblStationTypeName.Text = lblStationTypeName.Text.Substring(0, lblStationTypeName.Text.IndexOf(" ||"));
baseInfo.StationType = lblStationTypeName.Text;
实现值加描述显示
private void cobLine_SelectedIndexChanged(object sender, EventArgs e)
{
cobStation.Items.Clear();
if (cobLine.SelectedIndex > -1 && !string.IsNullOrWhiteSpace(cobLine.Text))
{
string line = cobLine.Text.Trim();
DataTable stationDT = conn.GetPostStationByLine(line);
if (stationDT.Rows.Count > 0)
{
//foreach (DataRow item in stationDT.Rows)
//{
// cobStation.Items.Add(item[0]);
//}
for (int i = 0; i < stationDT.Rows.Count; i++)
{
//cbxShop.Items.Add(dtTemp.Rows[i][0].ToString());
cobStation.Items.Add(new Metadata(stationDT.Rows[i][1].ToString(), stationDT.Rows[i][0].ToString()));
}
}
}
}
public DataTable GetPostStationByLine(string line)
{
return dal.GetPostStationByLine(line);
}
DAL
public DataTable GetPostStationByLine(string line)
{
string sql = string.Format("SELECT A.STATION_TYPE,B.STATION_TYPE|| ' '||B.STATION_TYPE_DESC AS STATION_TYPE_DESC FROM IMES.M_POST_LINE_STATION A left join IMES.M_STATION_TYPE B " +
"ON B.STATION_TYPE = A.STATION_TYPE WHERE A.ENABLED = 'Y' AND A.LINE ='{0}'", line);
return utility.Query(sql);
}
SQL
SELECT A.STATION_TYPE,B.STATION_TYPE|| ' '||B.STATION_TYPE_DESC AS STATION_TYPE_DESC FROM IMES.M_POST_LINE_STATION A left join IMES.M_STATION_TYPE B
ON B.STATION_TYPE = A.STATION_TYPE WHERE A.ENABLED = 'Y' AND A.LINE ='Miniled-Line01'
保存取值
string glueType = ((Metadata)cmbGlueType.SelectedItem).ID;
实现值的描述同时显示
将如下没有描述的实现有描述
实现后效果
private void Main_Load(object sender, EventArgs e)
{
GetStationConfig();
string StationDesc = "";
exeRes = controller.GetStationDesc(baseInfo.StationType);
if (exeRes.Status)
{
dtTemp = new DataTable();
dtTemp = (DataTable)exeRes.Anything;
if (dtTemp.Rows.Count > 0)
{
StationDesc = dtTemp.Rows[0][0].ToString();
}
}
lblTitle.Text = baseInfo.StationName + "(" + StationDesc + ")";
this.WindowState = FormWindowState.Maximized;
exeRes = controller.GetOprateStep(baseInfo.StationType);
if (!exeRes.Status)
{
pnlMidLeftMain.Controls.Clear();
ErrorMSG(exeRes.Message);
return;
}
exeRes = controller.GetMatTypeName();
if(exeRes.Status)
{
dtTemp = new DataTable();
dtTemp = (DataTable)exeRes.Anything;
for (int i = 0; i < dtTemp.Rows.Count; i++)
{
this.cmbMatType.Items.Add(new Metadata(dtTemp.Rows[i]["MAT_TYPE_DESC"].ToString(), dtTemp.Rows[i]["MAT_TYPE_CODE"].ToString()));
}
}
SuccessMSG("Message");
//dtTemp = new DataTable();
//dtTemp = (DataTable)exeRes.Anything;
//显示控件
//CreateTp(dtTemp);
}
public ExecuteResult GetStationDesc(string StationType)
{
try
{
exeRes = new ExecuteResult();
string sqlStr = @" SELECT A.STATION_TYPE_DESC
FROM IMES.M_STATION_TYPE A
WHERE A.STATION_TYPE= :StationType
AND A.ENABLED = 'Y' ";
object[] para = new object[] { StationType };
exeRes.Anything = utility.Query(sqlStr, para);
exeRes.Status = true;
}
catch (Exception ex)
{
exeRes.Message = "Error:" + ex.Message;
exeRes.Status = false;
}
return exeRes;
}
实现文本框值相加和取文本框值的特殊字符后的数据
将Label Name 等于 Model 加Label Type 再加 Label File中.lab
关键代码
txtLabelTypeLabelName.Text = txtLabelTypeModel.Text + “_” + txtLabelTypeData.Text + LabelFile.Substring(LabelFile.LastIndexOf("."));
//生成模板名称
private void btnAdd_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
//openFileDialog.InitialDirectory = "D:\\";
openFileDialog.Filter = "CodeSoft模板文件|*.lab|Bartender模板文件|*.btw|ZPL模板文件|*.txt";
openFileDialog.RestoreDirectory = true;
openFileDialog.Multiselect = true;
openFileDialog.FilterIndex = 1;
openFileDialog.Multiselect = false;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
txtLabelTypeLabelFile.Text = openFileDialog.FileName;
string LabelFile = txtLabelTypeLabelFile.Text;//Path.GetFileName(txtLabelTypeLabelFile.Text);
if (LabelFile != "" || LabelFile.IndexOf(".") > 0)
{
txtLabelTypeLabelName.Text = txtLabelTypeModel.Text + "_" + txtLabelTypeData.Text + LabelFile.Substring(LabelFile.LastIndexOf("."));
}
}
}