Ejemplo n.º 1
0
        private void butConstract_Click(object sender, EventArgs e)
        {
            try
            {
                if (treeView1.SelectedNode == null)
                {
                    MessageBox.Show("请选择需要构造的词句。", "提示");
                    return;
                }

                TreeNode delNode = treeView1.SelectedNode;

                ReportWordsInfoData wordData = delNode.Tag as ReportWordsInfoData;

                if (wordData == null)
                {
                    MessageBox.Show("请选择需要构造的词句。", "提示");
                    return;
                }


                //构造词句内容
                frmWordConstruct wordConstruct = new frmWordConstruct();
                if (wordConstruct.ShowWordConstruct(wordData, _dbHelper, this))
                {
                    ReadWordContext(wordData);
                }
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
Ejemplo n.º 2
0
        /// <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]);
        }
Ejemplo n.º 3
0
        private void ReadWordContext(ReportWordsInfoData wordData)
        {
            rtbFree.Text = "";
            if (wordData == null)
            {
                return;
            }
            if (wordData.词句信息 == null || wordData.词句信息.词句明细.Count <= 0)
            {
                return;
            }

            string sections = "";

            if (wordData.词句信息.词句类型 == (int)ReportWordType.rwtFree)
            {
                foreach (JReportWordSection wordSection in wordData.词句信息.词句明细)
                {
                    string sectionContext = "■■" + wordSection.段落名称 + ":" + System.Environment.NewLine + wordSection.段落内容 + System.Environment.NewLine;

                    sections = sections + sectionContext + System.Environment.NewLine;;
                }
            }

            rtbFree.Text = sections;
        }
Ejemplo n.º 4
0
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                rtbFree.Text = "";

                if (listView1.SelectedItems.Count <= 0)
                {
                    return;
                }

                ListViewItem lvi = listView1.SelectedItems[0];

                if (lvi.Tag == null)
                {
                    return;
                }

                ReportWordsInfoData wordData = lvi.Tag as ReportWordsInfoData;

                ReadWordContext(wordData);
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
Ejemplo n.º 5
0
        /// <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;
            }
        }
Ejemplo n.º 6
0
        private void ReadWordContext(ReportWordsInfoData wordData)
        {
            if (wordData.词句信息 == null || wordData.词句信息.词句明细.Count != wordContext1.ItemCount)
            {
                wordContext1.ClearItem();
            }

            if (wordData == null)
            {
                MessageBox.Show("词句内容无效。", "提示");
                return;
            }


            if (wordData.词句信息.词句类型 == (int)ReportWordType.rwtFree)
            {
                wordContext1.ImageList      = imageList1;
                wordContext1.HeadImageAlign = ContentAlignment.MiddleLeft;
                wordContext1.HeadWidth      = 60;


                if (wordData.词句信息.词句明细.Count != wordContext1.ItemCount)
                {
                    wordContext1.ItemCount = wordData.词句信息.词句明细.Count;
                }

                int i = 0;
                foreach (JReportWordSection wordSection in wordData.词句信息.词句明细)
                {
                    string sectionName = wordSection.段落名称;
                    string displyName  = wordSection.段落名称;

                    if (_templateSection != null)
                    {
                        int index = _templateSection.段落关联信息.FindIndex(T => T.报告段落名 == wordSection.段落名称);
                        if (index >= 0)
                        {
                            string sectionAlias = _templateSection.段落关联信息[index].段落显示名;

                            if (string.IsNullOrEmpty(sectionAlias) == false)
                            {
                                displyName = sectionAlias;
                            }
                        }
                    }

                    WordContext.RichTextItem rti = wordContext1[i];
                    rti.ImageIndex  = 2;
                    rti.Tag         = sectionName;
                    rti.HeadCaption = displyName;
                    rti.Text        = wordSection.段落内容;

                    rti.Selected = false;

                    i = i + 1;
                }
            }
        }
Ejemplo n.º 7
0
        private void tsbWrite_Click(object sender, EventArgs e)
        {
            try
            {
                //写入修改后的配套词句
                if (_selWordDatas != null)
                {
                    _selWordDatas.Clear();
                }

                if (treeView1.SelectedNode == null)
                {
                    return;
                }

                if (treeView1.SelectedNode.Tag is ReportWordsClassData)
                {
                    return;
                }

                ReportWordsInfoData wordData = treeView1.SelectedNode.Tag as ReportWordsInfoData;
                if (wordData == null)
                {
                    MessageBox.Show("无效词句内容数据。", "提示");
                    return;
                }

                if (_selWordDatas == null)
                {
                    _selWordDatas = new BizDataItems();
                }

                if (wordData.词句信息.词句类型 == (int)ReportWordType.rwtFree)
                {
                    foreach (WordContext.RichTextItem rti in wordContext1.Items)
                    {
                        if (rti.Tag.ToString() == "共用词句")
                        {
                            continue;
                        }

                        BizDataItem bi = new BizDataItem();
                        bi.Add("sectionname", rti.Tag.ToString());
                        bi.Add("text", rti.Text);
                        bi.Add("formattext", rti.Rtf);

                        _selWordDatas.Add(bi);
                    }
                }

                DoActions(_designEvents[WordProviderEventDefine.WriteWord], sender);
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        public bool ShowWordConstruct(ReportWordsInfoData wordData, IDBQuery dbHelper, IWin32Window owner)
        {
            _isOk     = false;
            _wordData = wordData;
            _dbHelper = dbHelper;

            _rwm = new ReportWordsModel(dbHelper);

            this.ShowDialog(owner);

            return(_isOk);
        }
Ejemplo n.º 10
0
        private void treeView1_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                //写入配套词句
                if (_selWordDatas != null)
                {
                    _selWordDatas.Clear();
                }

                if (treeView1.SelectedNode == null)
                {
                    return;
                }

                if (treeView1.SelectedNode.Tag is ReportWordsClassData)
                {
                    return;
                }

                ReportWordsInfoData wordData = treeView1.SelectedNode.Tag as ReportWordsInfoData;
                if (wordData == null)
                {
                    MessageBox.Show("无效词句内容数据。", "提示");
                    return;
                }


                if (_selWordDatas == null)
                {
                    _selWordDatas = new BizDataItems();
                }

                if (wordData.词句信息.词句类型 == (int)ReportWordType.rwtFree)
                {
                    foreach (JReportWordSection wordSection in wordData.词句信息.词句明细)
                    {
                        BizDataItem bi = new BizDataItem();
                        bi.Add("sectionname", wordSection.段落名称);
                        bi.Add("text", wordSection.段落内容);
                        bi.Add("formattext", wordSection.段落格式);

                        _selWordDatas.Add(bi);
                    }
                }

                DoActions(_designEvents[WordProviderEventDefine.WriteWord], sender);
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
Ejemplo n.º 11
0
        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);
            }
        }
Ejemplo n.º 12
0
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            try
            {
                if (e.Node.Tag is ReportWordsClassData)
                {
                    BindWordItem(e.Node);
                }
                else
                {
                    ReportWordsInfoData wordData = e.Node.Tag as ReportWordsInfoData;

                    ReadWordContext(wordData);
                }
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
Ejemplo n.º 13
0
        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);
            }
        }
Ejemplo n.º 14
0
        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);
            }
        }