/// <summary> /// 绑定词句项目 /// </summary> private void BindWordItem(TreeNode tnClass) { if (tnClass == null) { return; } ReportWordsClassData classData = tnClass.Tag as ReportWordsClassData; if (classData == null) { return; } TreeNode[] tmpNodes = tnClass.Nodes.Find("TMP" + classData.词句分类ID, false); if (tmpNodes.Length <= 0) { return; } DataTable dtItem = _rwm.GetWordItemByClass(classData.词句分类ID); foreach (DataRow dr in dtItem.Rows) { ReportWordsInfoData itemData = new ReportWordsInfoData(); itemData.BindRowData(dr); TreeNode tnItem = tnClass.Nodes.Add(itemData.词句ID, itemData.词句名称, 1); tnItem.SelectedImageIndex = 1; tnItem.Tag = itemData; } tnClass.Nodes.Remove(tmpNodes[0]); }
/// <summary> /// 绑定词句分类数据 /// </summary> private void BindWordClassData() { DataTable dtClass = _rwm.GetWordsClass(_imgKind); if (dtClass.Rows.Count <= 0) { return; } DataRow[] drRoots = dtClass.Select("上级分类ID is null or 上级分类ID=''"); foreach (DataRow drRoot in drRoots) { TreeNode rootNode = null; ReportWordsClassData classData = new ReportWordsClassData(); classData.BindRowData(drRoot); rootNode = treeView1.Nodes.Add(classData.词句分类ID, classData.分类名称, 0); rootNode.SelectedImageIndex = 0; rootNode.Tag = classData; if (rootNode == null) { continue; } BindSubNode(rootNode, dtClass); } treeView1.ExpandAll(); }
private void BindSubNode(TreeNode pNode, DataTable dtClass) { if (pNode == null || dtClass == null) { return; } ReportWordsClassData pClassData = pNode.Tag as ReportWordsClassData; DataRow[] drSubs = dtClass.Select("上级分类ID='" + pClassData.词句分类ID + "'"); if (drSubs.Length <= 0) { return; } foreach (DataRow drCur in drSubs) { ReportWordsClassData subClassData = new ReportWordsClassData(); subClassData.BindRowData(drCur); TreeNode tnSub = pNode.Nodes.Add(subClassData.词句分类ID, subClassData.分类名称, 0); tnSub.SelectedImageIndex = 0; tnSub.Tag = subClassData; tnSub.Nodes.Add("TMP" + subClassData.词句分类ID, "TMP"); BindSubNode(tnSub, dtClass); } }
private void ConfigCheckState(TreeNode tnParent, DataTable words) { if (tnParent == null) { return; } ReportWordsClassData wordClass = tnParent.Tag as ReportWordsClassData; if (wordClass == null) { return; } if (words.Select("词句分类ID='" + wordClass.词句分类ID + "'").Length > 0) { tnParent.Checked = true; } foreach (TreeNode tn in tnParent.Nodes) { if (tn.Nodes.Count > 0) { ConfigCheckState(tn, words); } else { wordClass = tn.Tag as ReportWordsClassData; if (words.Select("词句分类ID='" + wordClass.词句分类ID + "'").Length > 0) { tn.Checked = true; } } } }
/// <summary> /// 绑定词句项目 /// </summary> private void BindWordItem(TreeNode tnClass) { listView1.Clear(); if (tnClass == null) { return; } ReportWordsClassData classData = tnClass.Tag as ReportWordsClassData; if (classData == null) { return; } DataTable dtItem = _rwm.GetWordItemByClass(classData.词句分类ID); foreach (DataRow dr in dtItem.Rows) { ReportWordsInfoData wordInfo = new ReportWordsInfoData(); wordInfo.BindRowData(dr); ListViewItem lvi = listView1.Items.Add(wordInfo.词句名称, 0); lvi.Tag = wordInfo; } }
private void butDel_Click(object sender, EventArgs e) { try { if (treeView1.SelectedNode == null) { MessageBox.Show("请选择需要删除的项目。", "提示"); return; } TreeNode delNode = treeView1.SelectedNode; if (delNode.Tag is ReportWordsInfoData) { //删除报告词句 ReportWordsInfoData itemData = delNode.Tag as ReportWordsInfoData; //删除项目前提示确认 if (MessageBox.Show("是否删除项目" + itemData.词句名称.ToString() + "?", "提示", MessageBoxButtons.YesNo) == DialogResult.No) { return; } _rwm.DelWordItem(itemData.词句ID); delNode.Parent.Nodes.Remove(delNode); } else { if (delNode.Nodes.Count > 0) { MessageBox.Show("项目存在子项,不允许删除。", "提示"); return; } //删除词句分类 ReportWordsClassData classData = delNode.Tag as ReportWordsClassData; //删除项目前提示确认 if (MessageBox.Show("是否删除分类项目" + classData.分类名称.ToString() + "?", "提示", MessageBoxButtons.YesNo) == DialogResult.No) { return; } _rwm.DelWordClass(classData.词句分类ID); //delNode.Parent.Nodes.Remove(delNode); //如果是根目录,解决:未将对象引用设置到对象的实例,错误。 delNode.Remove(); } ButtonHint.Start(butDel, "OK"); } catch (Exception ex) { MsgBox.ShowException(ex, this); } }
private void SyncSelNodeData() { try { ClearData(); if (treeView1.SelectedNode == null) { return; } TreeNode selNode = treeView1.SelectedNode; if (selNode.Tag is ReportWordsInfoData) { ReportWordsInfoData itemData = selNode.Tag as ReportWordsInfoData; txtName.Text = itemData.词句名称; txtName.Tag = itemData.词句ID; cbxType.SelectedIndex = 0; //cbxSex.Text = itemData.词句信息.适用性别; rtbDescription.Text = itemData.词句信息.备注说明; ReadWordContext(itemData); } else { ReportWordsClassData classData = selNode.Tag as ReportWordsClassData; txtName.Text = classData.分类名称; txtName.Tag = classData.词句分类ID; cbxType.SelectedIndex = 1; cbxSex.Text = classData.分类信息.适用性别; rtbDescription.Text = classData.分类信息.备注说明; //读取下级分类中的项目 foreach (TreeNode tnSub in selNode.Nodes) { BindWordItem(tnSub); } } } catch (Exception ex) { MsgBox.ShowException(ex, this); } }
private void ConfigCheckState(TreeNode tnParent, DataTable wordReleations) { if (tnParent == null) { return; } ReportWordsClassData wordClass = tnParent.Tag as ReportWordsClassData; if (wordClass == null) { return; } if (wordReleations.Select("词句分类ID='" + wordClass.词句分类ID + "'").Length > 0) { SetEnableNodeStyle(tnParent); } else { SetDisableNodeStyle(tnParent); } foreach (TreeNode tn in tnParent.Nodes) { if (tn.Nodes.Count > 0) { ConfigCheckState(tn, wordReleations); } else { if (tn.Tag == null) { continue; } wordClass = tn.Tag as ReportWordsClassData; if (wordReleations.Select("词句分类ID='" + wordClass.词句分类ID + "'").Length > 0) { SetEnableNodeStyle(tn); } else { SetDisableNodeStyle(tn); } } } }
private void NewTmpWordInfoNode(TreeNode tn) { ReportWordsClassData classData = tn.Tag as ReportWordsClassData; string key = "TMP"; if (classData != null) { key = key + "_" + classData.词句分类ID; } TreeNode tnWordInfo = tn.Nodes.Add(key, "TMP"); tnWordInfo.ImageIndex = 1; tnWordInfo.SelectedImageIndex = 1; tnWordInfo.Checked = true; }
/// <summary> /// 绑定词句分类数据 /// </summary> private void BindWordClassData() { DataTable dtClass = _rwm.GetWordsClass(cbxImageKind.Text); if (dtClass.Rows.Count <= 0) { return; } DataRow[] drRoots = dtClass.Select("上级分类ID is null or 上级分类ID=''"); foreach (DataRow drRoot in drRoots) { TreeNode rootNode = null; ReportWordsClassData classData = new ReportWordsClassData(); classData.BindRowData(drRoot); rootNode = treeView1.Nodes.Add(classData.词句分类ID, classData.分类名称, 0); rootNode.SelectedImageIndex = 0; rootNode.Tag = classData; rootNode.Nodes.Add("TMP" + classData.词句分类ID, "TMP"); if (rootNode == null) { continue; } BindSubNode(rootNode, dtClass); //绑定当前分类及下一级分类的检查项目 BindWordItem(rootNode); foreach (TreeNode tnSub in rootNode.Nodes) { BindWordItem(tnSub); } } }
private void tsbSave_Click(object sender, EventArgs e) { try { if (treeView1.Nodes.Count <= 0) { return; } List <TreeNode> checkNodes = GetCheckedNodes(treeView1.Nodes[0]); _wordReleations.Rows.Clear(); foreach (TreeNode tn in checkNodes) { ReportWordsClassData wordClass = tn.Tag as ReportWordsClassData; DataRow newWordReleation = _wordReleations.NewRow(); newWordReleation["关联ID"] = SqlHelper.GetNumGuid(); newWordReleation["词句分类ID"] = wordClass.词句分类ID; newWordReleation["格式ID"] = _formatId; newWordReleation["模板ID"] = _templateId; _wordReleations.Rows.Add(newWordReleation); } OnSaveReportWords?.Invoke(_wordReleations); IsModify = false; this.Close(); } catch (Exception ex) { MsgBox.ShowException(ex, this); } }
private void butModify_Click(object sender, EventArgs e) { try { if (treeView1.SelectedNode == null) { MessageBox.Show("请选择需要修改的项目。", "提示"); return; } TreeNode selNode = treeView1.SelectedNode; if (selNode.Tag is ReportWordsInfoData) { //修改项目 if (ItemVerify(true) == false) { return; } ReportWordsInfoData itemData = selNode.Tag as ReportWordsInfoData; itemData.词句名称 = txtName.Text; //itemData.词句信息.适用性别 = cbxSex.Text; itemData.词句信息.备注说明 = rtbDescription.Text; itemData.词句信息.CopyBasePro(itemData); _rwm.UpdateWordItem(itemData); selNode.Text = itemData.词句名称; } else { //修改分类 if (ClassVerify(true) == false) { return; } ReportWordsClassData classData = selNode.Tag as ReportWordsClassData; classData.分类名称 = txtName.Text; classData.分类信息.适用性别 = cbxSex.Text; classData.分类信息.备注说明 = rtbDescription.Text; classData.分类信息.CopyBasePro(classData); _rwm.UpdateWordClass(classData); selNode.Text = classData.分类名称; } ButtonHint.Start(butModify, "OK"); } catch (Exception ex) { MsgBox.ShowException(ex, this); } }
private void butNew_Click(object sender, EventArgs e) { try { TreeNode newNode = null; if (cbxType.SelectedIndex == 1) { if (ClassVerify(false) == false) { return; } //新增分类 ReportWordsClassData classData = new ReportWordsClassData(); classData.词句分类ID = SqlHelper.GetCmpUID(); classData.影像类别 = cbxImageKind.Text; classData.分类名称 = txtName.Text; classData.分类信息.适用性别 = cbxSex.Text; classData.分类信息.创建日期 = DateTime.Now; classData.分类信息.备注说明 = rtbDescription.Text; TreeNode tn = null; if (treeView1.SelectedNode != null) { tn = treeView1.SelectedNode; if (tn.Tag is ReportWordsInfoData) { tn = tn.Parent; } ReportWordsClassData pData = tn.Tag as ReportWordsClassData; classData.级分类ID = pData.词句分类ID; } classData.分类信息.CopyBasePro(classData); _rwm.NewWordClass(classData); if (tn == null) { newNode = treeView1.Nodes.Add(classData.词句分类ID, classData.分类名称, 0); } else { newNode = tn.Nodes.Add(classData.词句分类ID, classData.分类名称, 0); tn.Expand(); } newNode.SelectedImageIndex = 0; newNode.Tag = classData; } else { //新增项目 if (ItemVerify(false) == false) { return; } ReportWordsInfoData itemData = new ReportWordsInfoData(); itemData.词句ID = SqlHelper.GetCmpUID(); itemData.词句名称 = txtName.Text; //itemData.词句信息.适用性别 = cbxSex.Text; itemData.词句信息.创建人 = _loginUser.Name; itemData.词句信息.备注说明 = rtbDescription.Text; itemData.词句信息.创建日期 = DateTime.Now; TreeNode tn = null; if (treeView1.SelectedNode != null) { tn = treeView1.SelectedNode; if (tn.Tag is ReportWordsInfoData) { tn = tn.Parent; } ReportWordsClassData pData = tn.Tag as ReportWordsClassData; itemData.词句分类ID = pData.词句分类ID; } itemData.词句信息.CopyBasePro(itemData); _rwm.NewWordItem(itemData); if (tn == null) { newNode = treeView1.Nodes.Add(itemData.词句ID, itemData.词句名称, 1); } else { newNode = tn.Nodes.Add(itemData.词句ID, itemData.词句名称, 1); tn.Expand(); } newNode.SelectedImageIndex = 1; newNode.Tag = itemData; } treeView1.SelectedNode = newNode; ButtonHint.Start(butNew, "OK"); } catch (Exception ex) { MsgBox.ShowException(ex, this); } }