Ejemplo n.º 1
0
        private ReportTemplateItemData GetSelTemplateItem(ref TreeNode tnNode)
        {
            if (treeView1.SelectedNode == null)
            {
                return(null);
            }

            ReportTemplateClassData templateItemData = treeView1.SelectedNode.Tag as ReportTemplateClassData;

            if (templateItemData != null)
            {
                return(null);
            }


            ReportTemplateFormatData templateFormatData = treeView1.SelectedNode.Tag as ReportTemplateFormatData;

            if (templateFormatData != null)
            {
                tnNode = treeView1.SelectedNode.Parent;
                return(tnNode.Tag as ReportTemplateItemData);
            }

            tnNode = treeView1.SelectedNode;

            return(tnNode.Tag as ReportTemplateItemData);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 显示格式构造
        /// </summary>
        /// <param name="reportTemplate"></param>
        /// <param name="owner"></param>
        public void ShowFormatConstruct(ReportTemplateFormatData reportFormat, ReportTemplateItemData reportTemplate, IWin32Window owner)
        {
            _reportFmt  = reportFormat;
            _reportItem = reportTemplate;

            this.ShowDialog(owner);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 绑定模板格式
        /// </summary>
        /// <param name="tnItem"></param>
        private void BindTemplateFormat(TreeNode tnItem)
        {
            if (tnItem == null)
            {
                return;
            }


            ReportTemplateItemData itemData = tnItem.Tag as ReportTemplateItemData;

            if (itemData == null)
            {
                return;
            }

            //TreeNode[] tmpNodes = tnItem.Nodes.Find("TMP" + itemData.模板ID, false);
            //if (tmpNodes.Length <= 0) return;

            DataTable dtItem = _rtm.GetTemplateFormatsByTemplate(itemData.模板ID);

            foreach (DataRow dr in dtItem.Rows)
            {
                ReportTemplateFormatData formtData = new ReportTemplateFormatData();
                formtData.BindRowData(dr);

                TreeNode tnFormat = tnItem.Nodes.Add(formtData.格式ID, formtData.格式名称, 2);
                tnFormat.SelectedImageIndex = 2;
                tnFormat.Tag = formtData;
            }

            //tnItem.Nodes.Remove(tmpNodes[0]);
        }
Ejemplo n.º 4
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 ReportTemplateFormatData)
                {
                    //删除模板格式
                    ReportTemplateFormatData formatData = delNode.Tag as ReportTemplateFormatData;

                    _rtm.DelTemplateFormat(formatData.格式ID);

                    delNode.Parent.Nodes.Remove(delNode);
                }
                else if (delNode.Tag is ReportTemplateItemData)
                {
                    if (delNode.Nodes.Count > 0)
                    {
                        MessageBox.Show("项目存在子项,不允许删除。", "提示");
                        return;
                    }

                    //删除模板信息
                    ReportTemplateItemData itemData = delNode.Tag as ReportTemplateItemData;

                    _rtm.DelTemplateItem(itemData.模板ID);

                    delNode.Parent.Nodes.Remove(delNode);
                }
                else
                {
                    if (delNode.Nodes.Count > 0)
                    {
                        MessageBox.Show("项目存在子项,不允许删除。", "提示");
                        return;
                    }

                    //删除模板分类
                    ReportTemplateClassData classData = delNode.Tag as ReportTemplateClassData;

                    _rtm.DelTemplateClass(classData.模板分类ID);

                    delNode.Parent.Nodes.Remove(delNode);
                }

                ButtonHint.Start(butDel, "OK");
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
Ejemplo n.º 5
0
        private void butConstract_Click(object sender, EventArgs e)
        {
            try
            {
                if (treeView1.SelectedNode == null)
                {
                    MessageBox.Show("请选择需要构造的项目。", "提示");
                    return;
                }

                if (treeView1.SelectedNode.Tag as ReportTemplateClassData != null)
                {
                    MessageBox.Show("请选择需要构造的项目。", "提示");
                    return;
                }

                frmTemplateConstruct templateConstruct = new frmTemplateConstruct(_dbHelper, cbxImageKind.Text);

                templateConstruct.OnSaveReportDesign += SaveReportDesign;



                if (treeView1.SelectedNode.Tag as ReportTemplateFormatData != null)
                {
                    //格式构造
                    ReportTemplateFormatData formatData = treeView1.SelectedNode.Tag as ReportTemplateFormatData;
                    ReportTemplateItemData   itemData   = treeView1.SelectedNode.Parent.Tag as ReportTemplateItemData;

                    if (string.IsNullOrEmpty(itemData.模板信息.模板内容))
                    {
                        if (MessageBox.Show("模板内容尚未构造,是否继续?", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                        {
                            return;
                        }
                    }

                    templateConstruct.ShowFormatConstruct(formatData, itemData, this);
                }
                else
                {
                    //模板构造
                    ReportTemplateItemData itemData = treeView1.SelectedNode.Tag as ReportTemplateItemData;

                    templateConstruct.ShowTemplateConstruct(itemData, this);
                }
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
Ejemplo n.º 6
0
        private void SaveReportDesign(DataBase reportFmt, DataTable dtWordReleations)
        {
            //保存设计
            if (reportFmt == null)
            {
                throw new Exception("报告模板对象无效。");
            }

            ReportTemplateFormatData fmtData = reportFmt as ReportTemplateFormatData;

            if (fmtData != null)
            {
                //保存格式
                fmtData.版本 = fmtData.版本 + 1;

                _rtm.TransactionBegin();
                try
                {
                    _rtm.UpdateTemplateFormat(fmtData);
                    _rtm.ClearFormateWords(fmtData.格式ID);

                    _rtm.UpdateWordReleations(dtWordReleations);


                    _rtm.TransactionCommit();
                }
                catch (Exception ex)
                {
                    _rtm.TransactionRollback();
                    throw new Exception("格式保存失败", ex);
                }

                previewControl1.ImportByXml(fmtData.格式信息.格式内容);
            }
            else
            {
                ReportTemplateItemData itemData = reportFmt as ReportTemplateItemData;

                itemData.版本 = itemData.版本 + 1;

                _rtm.TransactionBegin();
                try
                {
                    _rtm.UpdateTemplateItem(itemData);

                    _rtm.ClearTemplateWords(itemData.模板ID);

                    _rtm.UpdateWordReleations(dtWordReleations);


                    _rtm.TransactionCommit();
                }
                catch (Exception ex)
                {
                    _rtm.TransactionRollback();
                    throw new Exception("模板保存失败", ex);
                }

                previewControl1.ImportByXml(itemData.模板信息.模板内容);
            }
        }
Ejemplo n.º 7
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 ReportTemplateFormatData)
                {
                    //修改格式
                    if (FormatVerify(true) == false)
                    {
                        return;
                    }

                    ReportTemplateFormatData fmtData = selNode.Tag as ReportTemplateFormatData;

                    fmtData.格式名称 = txtName.Text;

                    fmtData.格式信息.备注说明 = rtbDescription.Text;
                    fmtData.格式信息.适用性别 = cbxSex.Text;
                    fmtData.格式信息.适用部位 = cbxBodypart.Text;
                    fmtData.格式信息.患者来源 = cbxPatientFrom.Text;

                    fmtData.格式信息.CopyBasePro(fmtData);

                    _rtm.UpdateTemplateFormat(fmtData);

                    selNode.Text = fmtData.格式名称;
                }
                if (selNode.Tag is ReportTemplateItemData)
                {
                    //修改项目
                    if (ItemVerify(true) == false)
                    {
                        return;
                    }

                    ReportTemplateItemData itemData = selNode.Tag as ReportTemplateItemData;

                    itemData.模板名称 = txtName.Text;

                    itemData.模板信息.备注说明 = rtbDescription.Text;

                    itemData.模板信息.CopyBasePro(itemData);

                    _rtm.UpdateTemplateItem(itemData);

                    selNode.Text = itemData.模板名称;
                }
                else
                {
                    //修改分类
                    if (ClassVerify(true) == false)
                    {
                        return;
                    }

                    ReportTemplateClassData classData = selNode.Tag as ReportTemplateClassData;

                    classData.分类名称 = txtName.Text;

                    classData.分类信息.备注说明 = rtbDescription.Text;

                    classData.分类信息.CopyBasePro(classData);

                    _rtm.UpdateTemplateClass(classData);

                    selNode.Text = classData.分类名称;
                }

                ButtonHint.Start(butModify, "OK");
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
Ejemplo n.º 8
0
        private void butNew_Click(object sender, EventArgs e)
        {
            try
            {
                TreeNode newNode = null;

                if (cbxType.SelectedIndex == 2)
                {
                    if (ClassVerify(false) == false)
                    {
                        return;
                    }

                    //新增分类
                    ReportTemplateClassData classData = new ReportTemplateClassData();

                    classData.模板分类ID = SqlHelper.GetCmpUID();
                    classData.影像类别   = cbxImageKind.Text;
                    classData.分类名称   = txtName.Text;

                    classData.分类信息.创建日期 = DateTime.Now;
                    classData.分类信息.备注说明 = rtbDescription.Text;

                    TreeNode tn = null;
                    if (treeView1.SelectedNode != null)
                    {
                        tn = treeView1.SelectedNode;

                        while (!(tn.Tag is ReportTemplateClassData))
                        {
                            tn = tn.Parent;
                        }

                        ReportTemplateClassData pData = tn.Tag as ReportTemplateClassData;

                        classData.级分类ID = pData.模板分类ID;
                    }

                    classData.分类信息.CopyBasePro(classData);

                    _rtm.NewTemplateClass(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 (cbxType.SelectedIndex == 0)
                {
                    //新增项目
                    if (ItemVerify(false) == false)
                    {
                        return;
                    }

                    ReportTemplateItemData itemData = new ReportTemplateItemData();

                    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;

                        while (!(tn.Tag is ReportTemplateClassData))
                        {
                            tn = tn.Parent;
                        }

                        ReportTemplateClassData pData = tn.Tag as ReportTemplateClassData;

                        itemData.模板分类ID = pData.模板分类ID;
                    }

                    itemData.模板信息.CopyBasePro(itemData);

                    _rtm.NewTemplateItem(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;
                }
                else
                {
                    //添加模板格式
                    if (FormatVerify(false) == false)
                    {
                        return;
                    }

                    ReportTemplateFormatData formtData = new ReportTemplateFormatData();

                    formtData.格式ID = SqlHelper.GetCmpUID();
                    formtData.格式名称 = txtName.Text;

                    formtData.格式信息.创建人  = _loginUser.Name;
                    formtData.格式信息.备注说明 = rtbDescription.Text;
                    formtData.格式信息.创建日期 = DateTime.Now;

                    formtData.格式信息.适用性别 = cbxSex.Text;
                    formtData.格式信息.适用部位 = cbxBodypart.Text;
                    formtData.格式信息.患者来源 = cbxPatientFrom.Text;


                    TreeNode tn = null;
                    ReportTemplateItemData pData = GetSelTemplateItem(ref tn);
                    formtData.模板ID = pData.模板ID;

                    formtData.格式信息.CopyBasePro(formtData);

                    _rtm.NewTemplateFormat(formtData);


                    if (tn == null)
                    {
                        newNode = treeView1.Nodes.Add(formtData.格式ID, formtData.格式名称, 2);
                    }
                    else
                    {
                        newNode = tn.Nodes.Add(formtData.格式ID, formtData.格式名称, 2);

                        tn.Expand();
                    }

                    newNode.SelectedImageIndex = 2;
                    newNode.Tag = formtData;
                }

                treeView1.SelectedNode = newNode;

                ButtonHint.Start(butNew, "OK");
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
Ejemplo n.º 9
0
        private void SyncSelNodeData()
        {
            try
            {
                ClearData();

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

                TreeNode selNode = treeView1.SelectedNode;

                butConstract.Enabled = true;

                if (selNode.Tag is ReportTemplateItemData)
                {
                    ReportTemplateItemData itemData = selNode.Tag as ReportTemplateItemData;

                    txtName.Text = itemData.模板名称;
                    txtName.Tag  = itemData.模板ID;

                    cbxType.SelectedIndex = 0;

                    rtbDescription.Text = itemData.模板信息.备注说明;


                    previewControl1.ImportByXml(itemData.模板信息.模板内容);
                }
                else if (selNode.Tag is ReportTemplateFormatData)
                {
                    ReportTemplateFormatData formatData = selNode.Tag as ReportTemplateFormatData;

                    txtName.Text = formatData.格式名称;
                    txtName.Tag  = formatData.格式ID;

                    cbxType.SelectedIndex = 1;

                    cbxSex.Text      = formatData.格式信息.适用性别;
                    cbxBodypart.Text = formatData.格式信息.患者来源;

                    rtbDescription.Text = formatData.格式信息.备注说明;

                    previewControl1.ImportByXml(formatData.格式信息.格式内容);
                }
                else
                {
                    ReportTemplateClassData classData = selNode.Tag as ReportTemplateClassData;

                    txtName.Text = classData.分类名称;
                    txtName.Tag  = classData.模板分类ID;

                    cbxType.SelectedIndex = 2;

                    rtbDescription.Text = classData.分类信息.备注说明;

                    //读取下级分类中的项目
                    foreach (TreeNode tnSub in selNode.Nodes)
                    {
                        BindTemplateItem(tnSub);
                    }

                    butConstract.Enabled = false;
                }
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }