winfrom 树形报告模板-3级

实现winform树形模板数据库动态绑定的操作

实现效果:

数据库表结构:

DEPTEMPLATE_PARTTEMPLATE_NAMEDISEASE_TYPEHOSPITAL_CODE
CT腹部上腹部CT平扫+增强扫描未见明显异常。正常888888
CT腹部右侧嗜铬细胞瘤可能请结合临床实验室肿瘤肾上腺888888
CT脊柱L5/S1椎间盘向后正中轻度膨出。退形性变888888
CT头颅筛窦骨折骨折888888
CT血管造影CTA示左颈总动脉起始部狭窄(软斑块形成)。退行性变888888
CT脊柱双侧骶髂骨、L3-L5椎体及附件混合性骨破坏改变(以成骨为主),以转瘤首先考虑,建议进肿瘤888888
CT胸部纵隔淋巴瘤纵隔疾病888888
CT血管造影提示两侧下肢动脉斑块形成伴管腔狭窄(以左侧股动脉为著)。退行性变888888

1.绑定根结点
 /// 
        /// 根结点
        /// 
        private void buildRIStree(string _dep)
        {
            try
            {
                template.DEP = _dep;
                template.HOSPITAL_CODE = RisSetup_Class.GetINI("RIS_Single_setup", "HospitalCode", "rissetup.ini", Environment.CurrentDirectory.ToString());
                dep = _dep;
                DataTable dt_resource = ptb.get_REPORT_TEMPLATE(template);
                DataTable dtt = new DataTable();
                dtt = dt_resource.Copy();
                tree_reporttemplate.Nodes.Clear();

                for (int i = 0; i < dtt.Rows.Count; i++)
                {
                    TreeNode dd = new TreeNode();
                    DataView dv = new DataView(dt_resource);
                    dtt = dv.ToTable(true, "template_part");  //去重
                    dd.Text = dtt.Rows[i]["template_part"].ToString();
                    bulidTreeDengjipart(dd, dt_resource);
                    tree_reporttemplate.Nodes.Add(dd);
                    tree_reporttemplate.ImageList = imageList1;
                    tree_reporttemplate.ImageIndex = tree_reporttemplate.SelectedImageIndex = 2;
                }
            }
            catch (Exception ex)
            {
                flog_Class.WriteErrFlog("根结点" + ex.Message, errlog_position);
            }
        }

2.绑定二级结点
 /// 
        /// 二级结点
        /// 
        /// 
        public void bulidTreeDengjipart(TreeNode nodetemplate_part, DataTable dt_resource)
        {
            try
            {
                DataTable dtt = new DataTable();
                dtt = dt_resource.Clone();
                DataRow[] rows = dt_resource.Select("TEMPLATE_PART='" + nodetemplate_part.Text + "'");
                foreach (DataRow row in rows)  // 将查询的结果添加到dt中; 
                {
                    dtt.Rows.Add(row.ItemArray);
                }
                //DataTable dt = ptb.get_REPORT_TEMPLATE_disease_type(template);
                for (int i = 0; i < dtt.Rows.Count; i++)
                {
                    TreeNode dd = new TreeNode();

                    DataView dv = new DataView(dtt);
                    dtt = dv.ToTable(true, "disease_type");  //去重 
                    dd.Text = dtt.Rows[i]["disease_type"].ToString();
                    bulidTreeChildPart(dd, nodetemplate_part.Text, dt_resource);
                    nodetemplate_part.Nodes.Add(dd);
                    nodetemplate_part.ImageIndex = nodetemplate_part.SelectedImageIndex = 1;

                }
            }
            catch (Exception ex)
            {
                flog_Class.WriteErrFlog("二级结点" + ex.Message, errlog_position);
            }

        }
3.绑定三级结点
 /// 
        /// 三级结点
        /// 
        /// 
        /// 
        public void bulidTreeChildPart(TreeNode disease_type, string _template_part, DataTable dt_resource)
        {
            try
            {
                DataTable dtt = new DataTable();
                dtt = dt_resource.Clone();
                DataRow[] rows = dt_resource.Select("TEMPLATE_PART='" + _template_part + "' and disease_type='" + disease_type.Text + "'");
                foreach (DataRow row in rows)  // 将查询的结果添加到dt中; 
                {
                    dtt.Rows.Add(row.ItemArray);
                }
                //DataTable dt = ptb.get_REPORT_TEMPLATE_TEMPLATE_NAME(template);
                for (int i = 0; i < dtt.Rows.Count; i++)
                {
                    TreeNode dd = new TreeNode();
                    DataView dv = new DataView(dtt);
                    dtt = dv.ToTable(true, "TEMPLATE_NAME");  //去重 
                    dd.Text = dtt.Rows[i]["TEMPLATE_NAME"].ToString();
                    disease_type.Nodes.Add(dd);
                    disease_type.ImageIndex = disease_type.SelectedImageIndex = 0;

                }
            }
            catch (Exception ex)
            {
                flog_Class.WriteErrFlog("三级结点" + ex.Message, errlog_position);
            }
        }

以上是我自己实现的一个思路


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值