예제 #1
0
파일: Frmzjtc.cs 프로젝트: Wooyme/HIS-1
        private void AddDataMydataGrid1(int tccjid)
        {
            DataTable myTb;
            string    ssql = "";

            if (tccjid == 0)
            {
                ssql           = "select 0 序号,s_ypspm 名称,tccjid cjid from yp_ypcjd a,yp_zjtc b where a.cjid=b.tccjid group by tccjid,s_ypspm ";
                myTb           = InstanceForm.BDatabase.GetDataTable(ssql);
                myTb.TableName = "Tb";
                this.myDataGrid1.DataSource = myTb;
                this.myDataGrid1.TableStyles[0].MappingName = "Tb";
            }
            else
            {
                ssql           = "select 0 序号,s_ypspm 原料名称,s_ypgg 规格,cast(ypsl as float) 理论量,dbo.fun_yp_ypdw(b.ypdw) 单位,ydwbl,cjid,b.id,b.bz from yp_ypcjd a,yp_zjtc b where a.cjid=b.ylcjid order by b.id";
                myTb           = InstanceForm.BDatabase.GetDataTable(ssql);
                myTb.TableName = "Tbmx";
                this.myDataGrid2.DataSource = myTb;
                this.myDataGrid2.TableStyles[0].MappingName = "Tbmx";
                Ypcj ydcj = new Ypcj(tccjid, InstanceForm.BDatabase);
                this.txtzzypmc.Text = ydcj.S_YPSPM;
                this.txtzzypmc.Tag  = ydcj.CJID.ToString();
                if (myTb.Rows.Count != 0)
                {
                    this.txtzf.Text = myTb.Rows[0]["bz"].ToString();
                }
            }
        }
예제 #2
0
파일: Frmhb.cs 프로젝트: Wooyme/HIS-1
        private void butok_hb_Click(object sender, System.EventArgs e)
        {
            DataTable tb    = (DataTable)this.myDataGrid1.DataSource;
            DataTable tab   = (DataTable)this.myDataGrid2.DataSource;
            int       nrow1 = this.myDataGrid1.CurrentCell.RowNumber;
            int       nrow2 = this.myDataGrid2.CurrentCell.RowNumber;

            if (nrow1 > tb.Rows.Count - 1)
            {
                return;
            }
            if (nrow2 > tab.Rows.Count - 1)
            {
                return;
            }

            if (MessageBox.Show("您确定要将上面的厂家替换成下面的规格吗 ?", "询问窗", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
            {
                return;
            }

            //要替换成的规格ID
            int _gg_ggid = Convert.ToInt32(tab.Rows[nrow2]["ggid"]);


            try
            {
                Ypgg gg = new Ypgg(_gg_ggid, InstanceForm.BDatabase);
                if (gg.GGID == 0)
                {
                    MessageBox.Show("该规格可能已经不存在了"); return;
                }

                InstanceForm.BDatabase.BeginTransaction();

                //要被替换的厂家ID
                int _cj_cjid = Convert.ToInt32(tb.Rows[nrow1]["CJID"]);

                //厂家
                string ssql = "update yp_ypcjd set ggid=" + _gg_ggid + ",s_ypspm='" + gg.YPSPM + "',s_yppm='" + gg.YPPM +
                              "',s_ypspmbz='" + gg.YPSPMBZ + "',s_ypgg='" + gg.YPGG + "',s_ypdw='" + Yp.SeekYpdw(gg.YPDW, InstanceForm.BDatabase) + "' where cjid=" + _cj_cjid + " ";
                InstanceForm.BDatabase.DoCommand(ssql);
                //药房库存
                ssql = "update yf_kcmx set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                InstanceForm.BDatabase.DoCommand(ssql);
                //药房批号
                ssql = "update yf_kcph set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                InstanceForm.BDatabase.DoCommand(ssql);
                //药库库存
                ssql = "update yk_kcmx set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                InstanceForm.BDatabase.DoCommand(ssql);
                //药库批号
                ssql = "update yk_kcph set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                InstanceForm.BDatabase.DoCommand(ssql);
                //药房盘点表
                ssql = "update yf_pdtemp set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                InstanceForm.BDatabase.DoCommand(ssql);
                //药库盘点表
                ssql = "update yk_kcph set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                InstanceForm.BDatabase.DoCommand(ssql);
                //药品拆零表
                ssql = "update yp_ypcl set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                InstanceForm.BDatabase.DoCommand(ssql);


                //更新药品货号
                Ypcj   ypcj     = new Ypcj();
                int    _errcode = 0;
                string _errtext = "";
                ypcj.Update_shh(_gg_ggid, out _errcode, out _errtext, InstanceForm.BDatabase);
                if (_errcode != 0)
                {
                    throw new Exception(_errtext);
                }


                //三院数据处理_____保存日志
                Ypcj   cj       = new Ypcj(_cj_cjid, InstanceForm.BDatabase);
                string bz       = "取消药品合并:" + cj.S_YPPM + " CJID=" + cj.CJID + " ";
                Guid   log_djid = Guid.Empty;
                ts_HospData_Share.ts_update_log ts = new ts_HospData_Share.ts_update_log();
                ts.Save_log(ts_HospData_Share.czlx.yp_药品取消合并, bz, "YP_YPCJD", "CJID", _cj_cjid.ToString(), InstanceForm._menuTag.Jgbm, 0, "", out log_djid, InstanceForm.BDatabase);


                InstanceForm.BDatabase.CommitTransaction();


                //三院数据处理___执行同步操作
                string errtext = "";
                ts_HospData_Share.ts_update_type ty = new ts_HospData_Share.ts_update_type((int)ts_HospData_Share.czlx.yp_药品取消合并, InstanceForm.BDatabase);
                if (ty.Bzx == 1) //只有当立即执行标志为1时才执行
                {
                    ts.Pexec_log(log_djid, InstanceForm.BDatabase, out errtext);
                }
                if (errtext != "")
                {
                    MessageBox.Show("取消药品合并成功 " + errtext, "取消合并", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                this.Close();
            }
            catch (System.Exception err)
            {
                UpdateRows = null;
                InstanceForm.BDatabase.RollbackTransaction();
                MessageBox.Show(err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #3
0
파일: Frmhb.cs 프로젝트: Wooyme/HIS-1
        private void butok_Click(object sender, System.EventArgs e)
        {
            DataTable tb = (DataTable)this.myDataGrid1.DataSource;

            DataRow[] rows  = tb.Select("合并=1");
            DataRow[] hbrow = tb.Select("合并=0");
            if (rows.Length == 0)
            {
                MessageBox.Show("没有选择规格", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (hbrow.Length == 0)
            {
                MessageBox.Show("没有可匹配的药品,最少要选择两个药品", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            int _gg_ggid = Convert.ToInt32(rows[0]["ggid"]);

            try
            {
                Ypgg gg = new Ypgg(_gg_ggid, InstanceForm.BDatabase);
                if (gg.GGID == 0)
                {
                    MessageBox.Show("该规格可能已经不存在了"); return;
                }

                string[] ss = new string[hbrow.Length];

                InstanceForm.BDatabase.BeginTransaction();

                for (int i = 0; i <= hbrow.Length - 1; i++)
                {
                    int _cj_cjid = Convert.ToInt32(hbrow[i]["CJID"]);

                    //厂家
                    string ssql = "update yp_ypcjd set ggid=" + _gg_ggid + ",s_ypspm='" + gg.YPSPM + "',s_yppm='" + gg.YPPM +
                                  "',s_ypspmbz='" + gg.YPSPMBZ + "',s_ypgg='" + gg.YPGG + "',s_ypdw='" + Yp.SeekYpdw(gg.YPDW, InstanceForm.BDatabase) + "' where cjid=" + _cj_cjid + " ";
                    InstanceForm.BDatabase.DoCommand(ssql);

                    //药房库存
                    ssql = "update yf_kcmx set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                    InstanceForm.BDatabase.DoCommand(ssql);
                    //药房批号
                    ssql = "update yf_kcph set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                    InstanceForm.BDatabase.DoCommand(ssql);
                    //药库库存
                    ssql = "update yk_kcmx set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                    InstanceForm.BDatabase.DoCommand(ssql);
                    //药库批号
                    ssql = "update yk_kcph set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                    InstanceForm.BDatabase.DoCommand(ssql);
                    //药房盘点表
                    ssql = "update yf_pdtemp set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                    InstanceForm.BDatabase.DoCommand(ssql);
                    //药库盘点表
                    ssql = "update yk_kcph set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                    InstanceForm.BDatabase.DoCommand(ssql);
                    //药品拆零表
                    ssql = "update yp_ypcl set ggid=" + _gg_ggid + " where cjid=" + _cj_cjid + " ";
                    InstanceForm.BDatabase.DoCommand(ssql);

                    //三院数据处理_____保存日志
                    Ypcj   cj       = new Ypcj(_cj_cjid, InstanceForm.BDatabase);
                    string bz       = "将" + hbrow[i]["品名"].ToString() + " CJID=" + hbrow[i]["CJID"] + "的药品合并到新规格 ";
                    Guid   log_djid = Guid.Empty;
                    ts_HospData_Share.ts_update_log ts = new ts_HospData_Share.ts_update_log();
                    ts.Save_log(ts_HospData_Share.czlx.yp_药品合并, bz, "YP_YPCJD", "CJID", _cj_cjid.ToString(), InstanceForm._menuTag.Jgbm, 0, "", out log_djid, InstanceForm.BDatabase);
                    ss[i] = log_djid.ToString();
                }

                //更新药品货号
                Ypcj   ypcj     = new Ypcj();
                int    _errcode = 0;
                string _errtext = "";
                ypcj.Update_shh(_gg_ggid, out _errcode, out _errtext, InstanceForm.BDatabase);
                if (_errcode != 0)
                {
                    throw new Exception(_errtext);
                }

                InstanceForm.BDatabase.CommitTransaction();

                UpdateRows = hbrow;

                //三院数据处理___执行同步操作
                string msg = "";
                for (int i = 0; i <= ss.Length - 1; i++)
                {
                    string errtext = "";
                    ts_HospData_Share.ts_update_type ty = new ts_HospData_Share.ts_update_type((int)ts_HospData_Share.czlx.yp_药品合并, InstanceForm.BDatabase);
                    if (ty.Bzx == 1) //只有当立即执行标志为1时才执行
                    {
                        ts_HospData_Share.ts_update_log ts = new ts_HospData_Share.ts_update_log();
                        ts.Pexec_log(new Guid(ss[i]), InstanceForm.BDatabase, out errtext);
                    }
                    msg = msg + errtext;
                    if (msg != "")
                    {
                        MessageBox.Show("药品合并成功 " + errtext, "合并", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }

                this.Close();
            }
            catch (System.Exception err)
            {
                UpdateRows = null;
                InstanceForm.BDatabase.RollbackTransaction();
                MessageBox.Show(err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #4
0
        private void butsave_Click(object sender, System.EventArgs e)
        {
            ts_HospData_Share.ts_update_log ts = new ts_HospData_Share.ts_update_log();
            Guid      log_djid = Guid.Empty;
            DataTable tb       = (DataTable)this.myDataGrid1.DataSource;

            string[] ss = new string[tb.Rows.Count];

            this.Cursor = PubStaticFun.WaitCursor();
            string ssql = "";
            long   fid = 0; string flbh = ""; string flmc = ""; int pxid = 0; string flms = ""; int bdelete = 0; string pym = ""; string wbm = ""; string hwbh = ""; string yhwbh = "";


            try
            {
                if (this.treeView1.SelectedNode == null)
                {
                    MessageBox.Show("请选择节点", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }



                bool bmodif = false;
                for (int i = 0; i <= tb.Rows.Count - 1; i++)
                {
                    hwbh  = tb.Rows[i]["货位编号"].ToString().Trim();
                    yhwbh = tb.Rows[i]["原货位编号"].ToString().Trim();
                    if (hwbh != yhwbh && Convert.ToInt32(Convertor.IsNull(tb.Rows[i]["id"], "0")) > 0)
                    {
                        bmodif = true;
                    }
                }

                if (bmodif == true)
                {
                    if (MessageBox.Show("您对货位编号进行了修改,此修改将影响所有该分类药品的货号,您确定吗 ?", "询问窗", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
                    {
                        return;
                    }
                }

                this.butsave.Enabled = false;
                InstanceForm.BDatabase.BeginTransaction();

                for (int i = 0; i <= tb.Rows.Count - 1; i++)
                {
                    int ID = Convert.ToInt32(Convertor.IsNull(tb.Rows[i]["id"], "0"));
                    fid     = Convert.ToInt64(Convertor.IsNull(tb.Rows[i]["fid"], "0"));
                    hwbh    = tb.Rows[i]["货位编号"].ToString().Trim();
                    yhwbh   = tb.Rows[i]["原货位编号"].ToString().Trim();
                    flbh    = tb.Rows[i]["编号"].ToString().Trim();
                    flmc    = tb.Rows[i]["名称"].ToString().Trim();
                    flms    = tb.Rows[i]["描述"].ToString().Trim();
                    bdelete = Convert.ToInt32(Convertor.IsNull(tb.Rows[i]["禁用"], "0"));
                    pym     = tb.Rows[i]["拼音码"].ToString().Trim();
                    wbm     = tb.Rows[i]["五笔码"].ToString().Trim();


                    if (flmc.Trim() != "")
                    {
                        if (ID == 0)
                        {
                            ssql = "insert into yp_ylfl(fid,flbh,flmc,flms,bdelete,pym,wbm,yjdbz,hwbh) values(" + fid + ",'" + flbh + "','" + flmc + "'" +
                                   ",'" + flms + "'," + bdelete + ",'" + pym + "','" + wbm + "',1,'" + hwbh + "') ";
                        }
                        else
                        {
                            ssql = "update yp_ylfl set fid=" + fid + ",flbh='" + flbh + "',flmc='" + flmc + "',flms='" + flms + "',bdelete=" + bdelete + ",pym='" + pym + "',wbm='" + wbm + "',hwbh='" + hwbh + "' where id=" + ID + " ";


                            //如果更改了货位编码,则重新生成药品货位号
                            int _errcode = 0; string _errtext = "";
                            if (hwbh.Trim() != yhwbh.Trim())
                            {
                                string    ssql1 = "select ggid from yp_ypggd where ylfl=" + ID + "";
                                DataTable tab   = InstanceForm.BDatabase.GetDataTable(ssql1);
                                Ypcj      cj    = new Ypcj();
                                for (int j = 0; j <= tab.Rows.Count - 1; j++)
                                {
                                    cj.Update_shh(Convert.ToInt32(tab.Rows[j]["ggid"]), out _errcode, out _errtext, InstanceForm.BDatabase);
                                    if (_errcode != 0)
                                    {
                                        throw new Exception("重新生成药品货位编号时发生错误");
                                    }
                                }
                            }
                        }



                        //三院数据处理
                        if (ID == 0)
                        {
                            InstanceForm.BDatabase.DoCommand(ssql);
                            long newid = Convert.ToInt64(InstanceForm.BDatabase.GetDataTable("select @@IDENTITY").Rows[0][0]);
                            ts.Save_log(ts_HospData_Share.czlx.yp_药品基础数据单表修改, InstanceForm.BCurrentUser.Name + "添加药理分类 【" + flmc + " 】", "yp_ylfl", "id", newid.ToString(), InstanceForm._menuTag.Jgbm, 0, "", out log_djid, InstanceForm.BDatabase);
                            ss[i] = log_djid.ToString();
                        }
                        else
                        {
                            string    _ssql = "select * from yp_ylfl where id=" + ID + " and flmc='" + flmc + "' and pym='" + pym + "'";
                            DataTable tb_x  = InstanceForm.BDatabase.GetDataTable(_ssql);
                            if (tb_x.Rows.Count == 0)
                            {
                                ts.Save_log(ts_HospData_Share.czlx.yp_药品基础数据单表修改, InstanceForm.BCurrentUser.Name + "修改药理分类 【" + flmc + " 】", "yp_ylfl", "id", ID.ToString(), InstanceForm._menuTag.Jgbm, 0, "", out log_djid, InstanceForm.BDatabase);
                                ss[i] = log_djid.ToString();
                            }
                            InstanceForm.BDatabase.DoCommand(ssql);
                        }

                        ssql = "update yp_ylfl set yjdbz=0 where id=" + fid + "";
                        InstanceForm.BDatabase.DoCommand(ssql);
                    }
                }

                InstanceForm.BDatabase.CommitTransaction();
            }
            catch (System.Exception err)
            {
                this.butsave.Enabled = true;
                InstanceForm.BDatabase.RollbackTransaction();
                MessageBox.Show("发生错误" + err.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            try
            {
                //三院数据处理
                string msg = "";
                for (int i = 0; i <= ss.Length - 1; i++)
                {
                    if (Convertor.IsNull(ss[i], "") == "")
                    {
                        continue;
                    }
                    string errtext = "";
                    ts_HospData_Share.ts_update_log  tss = new ts_HospData_Share.ts_update_log();
                    ts_HospData_Share.ts_update_type ty  = new ts_HospData_Share.ts_update_type((int)ts_HospData_Share.czlx.yp_药品基础数据单表修改, InstanceForm.BDatabase);
                    if (ty.Bzx == 1)
                    {
                        tss.Pexec_log(new Guid(ss[i]), InstanceForm.BDatabase, out errtext);
                        msg = msg + errtext;
                    }
                }

                AddTreeViewNode(this.treeView1.SelectedNode);
                this.treeView1.SelectedNode.Expand();


                string sss = "";
                sss          = "select 0 序号,hwbh 货位编号,hwbh 原货位编号,flbh 编号,flmc  名称,pym 拼音码,wbm 五笔码,flms 描述,dbo.fun_yp_ylfl(fid) 所属上级编目,cast(bdelete as smallint) 禁用,fid,id,yjdbz from yp_ylfl where fid=" + fid + " order by fid ";
                tb           = InstanceForm.BDatabase.GetDataTable(sss);
                tb.TableName = "Tb";
                this.myDataGrid1.DataSource = tb;
                this.myDataGrid1.TableStyles[0].MappingName = "Tb";

                //				this.myDataGrid1.CaptionText="当前节点:"+e.Node.Text.Trim();;
                FunBase.AddRowtNo(tb);


                MessageBox.Show("保存成功" + msg);
                this.butsave.Enabled = true;
            }
            catch (System.Exception err)
            {
                MessageBox.Show("发生错误" + err.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                this.Cursor = Cursors.Arrow;
            }
        }
예제 #5
0
        private void mnucwmb_Click(object sender, EventArgs e)
        {
            DataTable tb = (DataTable)dataGridView1.DataSource;

            try
            {
                if (dataGridView1.CurrentCell == null)
                {
                    return;
                }
                int nrow = dataGridView1.CurrentCell.RowIndex;
                if (tb.Rows.Count == 0)
                {
                    return;
                }
                Guid _hjID = new Guid(Convertor.IsNull(tb.Rows[nrow]["hjid"], Guid.Empty.ToString()));

                //分组处方
                string[] GroupbyField1           = { "HJID", "执行科室ID" };
                string[] ComputeField1           = { "金额" };
                string[] CField1                 = { "sum" };
                TrasenFrame.Classes.TsSet xcset1 = new TrasenFrame.Classes.TsSet();
                xcset1.TsDataTable = tb;
                DataTable tbcf1 = xcset1.GroupTable(GroupbyField1, ComputeField1, CField1, "hjid='" + _hjID + "' and 项目id>0");
                if (tbcf1.Rows.Count == 0)
                {
                    return;
                }

                string[] GroupbyField           = { "HJID", "执行科室ID", "项目来源", "剂数" };
                string[] ComputeField           = { "金额" };
                string[] CField                 = { "sum" };
                TrasenFrame.Classes.TsSet xcset = new TrasenFrame.Classes.TsSet();
                xcset.TsDataTable = tb;
                DataTable tbcf = xcset.GroupTable(GroupbyField, ComputeField, CField, "hjid='" + _hjID + "' and 项目id>0");
                if (tbcf.Rows.Count == 0)
                {
                    return;
                }

                if (tbcf1.Rows.Count != tbcf.Rows.Count)
                {
                    MessageBox.Show("请检查处方的数据是否正确,可能存在同一张处方有不同的执行科室或不同的医生或不同的开单科室的情况", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                //返回变量
                int    _err_code = -1;
                string _err_text = "";
                //时间
                string _sDate = DateManager.ServerDateTimeByDBType(InstanceForm.BDatabase).ToString();

                Guid   _Mbid    = Guid.Empty;
                string _mbmc    = "";
                string _pym     = "";
                string _wbm     = "";
                string _bz      = "";
                int    _mbjb    = 2;
                int    _ksdm    = 0;
                int    _ysdm    = TrasenFrame.Forms.FrmMdiMain.CurrentUser.EmployeeId;
                int    _zxks    = Convert.ToInt32(Convertor.IsNull(tbcf.Rows[0]["执行科室ID"], "0"));
                string _djsj    = _sDate;
                int    _djy     = TrasenFrame.Forms.FrmMdiMain.CurrentUser.EmployeeId;
                string fid      = "";
                Guid   _NewMbid = Guid.Empty;
                int    _xmly    = Convert.ToInt32(tbcf.Rows[0]["项目来源"]);
                int    _js      = Convert.ToInt32(tbcf.Rows[0]["剂数"]);


                DlgInputBox Inputbox = new DlgInputBox("", "请输入模板名称", "保存模板");
                Inputbox.NumCtrl = false;
                Inputbox.ShowDialog();
                if (!DlgInputBox.DlgResult)
                {
                    return;
                }
                //Add By Zj 2012-03-15
                frmmbwh frmmbwh = new frmmbwh(_menuTag, _mbjb);
                frmmbwh.Text              = "选择模板所属分类.";
                frmmbwh.panel1.Visible    = false;
                frmmbwh.btnselect.Visible = true;
                frmmbwh.ShowDialog();
                if (frmmbwh.fid == "")
                {
                    return;
                }
                else
                {
                    fid = frmmbwh.fid;
                }
                _mbmc = DlgInputBox.DlgValue.ToString();
                if (_mbmc.Trim() == "")
                {
                    return;
                }


                InstanceForm.BDatabase.BeginTransaction();

                //查找当前处方
                DataRow[] rows = tb.Select("HJID='" + _hjID + "' and 执行科室ID=" + _zxks + "  and 项目id>0 ");

                jc_mb.SaveMb(_Mbid, TrasenFrame.Forms.FrmMdiMain.Jgbm, _mbmc, _pym, _wbm, _bz, _mbjb, _ksdm, _ysdm, _zxks, _djsj, _djy, fid, out _NewMbid, out _err_code, out _err_text, InstanceForm.BDatabase);
                if ((_NewMbid == Guid.Empty && _Mbid == Guid.Empty) || _err_code != 0)
                {
                    throw new Exception(_err_text);
                }

                if (rows == null)
                {
                    throw new Exception("没有找到行,请刷新数据");
                }
                if (rows.Length == 0 && _Mbid != Guid.Empty)
                {
                    throw new Exception("没有需要保存的行");
                }
                //插处方明细表
                for (int j = 0; j <= rows.Length - 1; j++)
                {
                    #region 保存明细
                    Guid    _NewMbmxid = Guid.Empty;
                    Guid    _mbmxid    = Guid.Empty;
                    string  _pm        = Convertor.IsNull(rows[j]["医嘱内容"], "");
                    decimal _dj        = Convert.ToDecimal(Convertor.IsNull(rows[j]["单价"], "0"));
                    decimal _sl        = Convert.ToDecimal(Convertor.IsNull(rows[j]["数量"], "0"));
                    decimal _je        = Convert.ToDecimal(Convertor.IsNull(rows[j]["金额"], "0"));
                    long    _xmid      = Convert.ToInt64(Convertor.IsNull(rows[j]["yzid"], "0"));
                    int     _bzby      = Convert.ToInt32(Convertor.IsNull(rows[j]["自备药"], "0"));
                    decimal _yl        = Convert.ToDecimal(Convertor.IsNull(rows[j]["剂量"], "0"));
                    string  _yldw      = Convertor.IsNull(rows[j]["剂量单位"], "");
                    int     _yldwid    = Convert.ToInt32(Convertor.IsNull(rows[j]["剂量单位id"], "0"));
                    int     _dwlx      = Convert.ToInt32(Convertor.IsNull(rows[j]["dwlx"], "0"));
                    int     _yfid      = Convert.ToInt32(Convertor.IsNull(rows[j]["用法id"], "0"));
                    int     _pcid      = Convert.ToInt32(Convertor.IsNull(rows[j]["频次id"], "0"));
                    decimal _ts        = Convert.ToDecimal(Convertor.IsNull(rows[j]["天数"], "0"));
                    string  _zt        = Convert.ToString(Convertor.IsNull(rows[j]["嘱托"], ""));
                    int     _fzxh      = Convert.ToInt32(Convertor.IsNull(rows[j]["处方分组序号"], "0"));
                    int     _pxxh      = Convert.ToInt32(Convertor.IsNull(rows[j]["排序序号"], "0"));
                    int     _cjid      = 0;
                    if (_xmly == 1)
                    {
                        _cjid = Convert.ToInt32(Convertor.IsNull(rows[j]["项目ID"], "0"));
                        Ypcj cj = new Ypcj(_cjid, InstanceForm.BDatabase);
                        _xmid = cj.GGID;
                    }
                    if ((_sl == 0 || _js == 0 || _je == 0) && _bzby == 0)
                    {
                        throw new Exception(_pm + " 没有数量或金额");
                    }
                    jc_mb.SaveMbmx(_mbmxid, _NewMbid, _xmid, _xmly, _yl, _yldw, _yldwid, _dwlx, _yfid, _pcid, _zt,
                                   _ts, _fzxh, _pxxh, _bzby, _cjid, _js, out _NewMbmxid, out _err_code, out _err_text, _hjID, _zxks, InstanceForm.BDatabase);
                    if ((_NewMbmxid == Guid.Empty && _mbmxid == Guid.Empty) || _err_code != 0)
                    {
                        throw new Exception(_err_text);
                    }

                    #endregion 保存明细
                }
                InstanceForm.BDatabase.CommitTransaction();

                MessageBox.Show("保存成功");
            }
            catch (System.Exception err)
            {
                InstanceForm.BDatabase.RollbackTransaction();
                MessageBox.Show(err.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }
예제 #6
0
        //汇总药品数量
        private void computeTld(string fyrq)
        {
            bool bGrpByDeptLy = false;

            bGrpByDeptLy = _menuTag.Function_Name.Trim().Equals("Fun_ts_yf_zyfy_cf_ZCY");//中草药上传不按照领药科室分组
            DataTable tb = (DataTable)this.myDataGrid1.DataSource;

            string[] GroupbyField = { "剂型", "品名", "商品名", "规格", "厂家", "单价", "货号", "cjid", "zxdw", "dwbl", "dept_ly" };
            bGrpByDeptLy = true;
            if (bGrpByDeptLy)
            {
                GroupbyField = new string[] { "剂型", "品名", "商品名", "规格", "厂家", "单价", "货号", "cjid", "zxdw", "dwbl" };
            }

            string[] ComputeField = { "ypsl", "金额" };
            string[] CField       = { "sum", "sum" };

            //			TrasenFrame.Classes.TsSet xcset=new TrasenFrame.Classes.TsSet();
            //			xcset.TsDataTable=tb;
            //汇总每个统领分类
            //			DataTable tab=xcset.GroupTable(GroupbyField,ComputeField,CField,"发药='◆' and ypsl<>0");

            DataTable tab;

            DataRow[] selrow;

            if (this.tabControl1.SelectedTab == this.tabPage2)
            {
                selrow = tb.Select("ypsl<>0");
                //selrow = tb.Select("发药='√' and ypsl<>0");
            }
            else
            {
                //if (fyrq != "")
                //    selrow = tb.Select("发药='√' and ypsl<>0 and 发药日期='" + Convertor.IsNull(butfy.Tag, "") + "'");
                //else
                selrow = tb.Select("发药='◆' and ypsl<>0");
            }

            DataTable tbsel = tb.Clone();

            for (int w = 0; w <= selrow.Length - 1; w++)
            {
                tbsel.ImportRow(selrow[w]);
            }
            tab = FunBase.GroupbyDataTable(tbsel, GroupbyField, ComputeField, CField, null);

            DataTable mytb = (DataTable)this.myDataGrid2.DataSource;

            mytb.Rows.Clear();

            DataRow[] Rows = tab.Select("", "剂型");
            decimal   dSum = 0M;

            //添加数据
            for (int x = 0; x <= Rows.Length - 1; x++)
            {
                DataRow row = mytb.NewRow();
                row["序号"]  = mytb.Rows.Count + 1;
                row["剂型"]  = Rows[x]["剂型"];
                row["品名"]  = Rows[x]["品名"];
                row["商品名"] = Rows[x]["商品名"];
                row["规格"]  = Rows[x]["规格"];
                row["厂家"]  = Rows[x]["厂家"];
                row["单价"]  = Rows[x]["单价"];
                //row["库存数"] = Rows[x]["库存数"];
                row["领药数"] = Rows[x]["ypsl"];
                //decimal kcl = Convert.ToDecimal(Rows[x]["库存数"]);
                decimal ypsl = Convert.ToDecimal(Rows[x]["ypsl"]);
                decimal dwbl = Convert.ToDecimal(Rows[x]["dwbl"]);
                //row["缺药数"] = (kcl - ypsl) < 0 ? System.Math.Abs(kcl - ypsl) : 0;
                row["单位"] = Yp.SeekYpdw(Convert.ToInt32(Rows[x]["zxdw"]), InstanceForm.BDatabase);
                Ypcj cj = new Ypcj(Convert.ToInt32(Rows[x]["cjid"]), InstanceForm.BDatabase);
                row["药库单位"] = Convert.ToDouble(Math.Round(ypsl / dwbl, 3)).ToString() + cj.S_YPDW;
                row["金额"]   = Rows[x]["金额"];
                row["货号"]   = Rows[x]["货号"];
                row["cjid"] = Rows[x]["cjid"];
                row["dwbl"] = Rows[x]["dwbl"];
                if (!bGrpByDeptLy)
                {
                    row["领药科室"] = Yp.SeekDeptName(Convert.ToInt32(Rows[x]["dept_ly"]), InstanceForm.BDatabase);
                }
                mytb.Rows.Add(row);
                dSum += decimal.Parse(Rows[x]["金额"].ToString().Trim());
            }

            DataRow rAll = mytb.NewRow();

            rAll["品名"] = "总金额";
            rAll["金额"] = dSum;
            mytb.Rows.Add(rAll);
        }