private void myDataGrid2_DoubleClick(object sender, System.EventArgs e) { try { int nrow = this.myDataGrid2.CurrentCell.RowNumber; DataTable tbdept = (DataTable)this.myDataGrid2.DataSource; if (nrow > tbdept.Rows.Count - 1) { return; } DataTable tb = MedDeptYp(Convert.ToInt32(tbdept.Rows[nrow]["deptid"])); tb.TableName = "tb1"; this.myDataGrid1.DataSource = tb; txtks.Text = Yp.SeekDeptName(Convert.ToInt32(tbdept.Rows[nrow]["deptid"]), InstanceForm.BDatabase); txtks.Tag = Convert.ToString(tbdept.Rows[nrow]["deptid"]); } catch (System.Exception err) { MessageBox.Show("发生错误" + err.Message); } }
private void ComputeCf() { string[] GroupbyField = { "处方号" }; string[] ComputeField = { }; string[] CField = { }; DataTable tb = (DataTable)this.myDataGrid1.DataSource; DataTable tab; DataRow[] selrow = tb.Select("发药='◆' and cjid<>''"); //DataRow[] selrow=tb.Select("发药='◆' and cjid<>'' and charge_bit='1'"); 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); //this.lblbz.Text = "处方数:" + tab.Rows.Count.ToString() + " 张"; string[] GroupbyField1 = { "dept_ly" }; string[] ComputeField1 = { }; string[] CField1 = { }; DataTable tbsel1 = tb.Clone(); for (int w = 0; w <= selrow.Length - 1; w++) { tbsel1.ImportRow(selrow[w]); } tab = FunBase.GroupbyDataTable(tbsel1, GroupbyField1, ComputeField1, CField1, null); string ss = ""; for (int i = 0; i <= tab.Rows.Count - 1; i++) { ss = ss + " " + Yp.SeekDeptName(Convert.ToInt32(tab.Rows[i]["dept_ly"]), InstanceForm.BDatabase); } //this.lblbz.Text = lblbz.Text + " 科室:" + ss.ToString(); }
private void dataGridView1_CurrentCellChanged(object sender, EventArgs e) { try { if (this.dataGridView1.CurrentCell == null) { return; } int nrow = this.dataGridView1.CurrentCell.RowIndex; DataTable tb = (DataTable)this.dataGridView1.DataSource; int deptid = 0; if (nrow <= tb.Rows.Count - 1) { deptid = Convert.ToInt32(tb.Rows[nrow]["p_deptid"]); } lblyk.Tag = deptid; lblyk.Text = Yp.SeekDeptName(deptid, InstanceForm.BDatabase); AddView3(deptid); } catch (System.Exception err) { MessageBox.Show(err.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static void PrintCf(string inpatient_id, string mngtype, string groupid, RelationalDatabase _DataBase) { DataTable tb = null; string ssql = "select top 1 presc_no,execdept_id,cz_flag from zy_orderrecord a,zy_fee_speci b " + " where a.inpatient_id=b.inpatient_id and a.order_id=b.order_id and a.inpatient_id='" + inpatient_id + "' and (mngtype=" + mngtype + " or mngtype=5 ) and a.group_id=" + groupid + " and cz_flag in(0,1) order by cz_flag "; DataTable tbcx = _DataBase.GetDataTable(ssql, 30); decimal cfh = 0; int zxks = 0; int cz_flag = 0; if (tbcx.Rows.Count > 0) { cfh = Convert.ToDecimal(tbcx.Rows[0]["presc_no"].ToString()); zxks = Convert.ToInt32(tbcx.Rows[0]["execdept_id"].ToString()); cz_flag = Convert.ToInt32(tbcx.Rows[0]["cz_flag"].ToString()); if (cz_flag == 1) { MessageBox.Show("该处方已冲正,不能打印", "", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { MessageBox.Show("请确认处方已执行", "", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (cfh == 0) { return; } tb = ZY_FY.SelectCF("0", new Guid(inpatient_id), "", "", "", "", "", "", "0", 0, 0, 0, cfh, _DataBase, 2); if (tb.Rows.Count == 0) { tb = ZY_FY.SelectCF("0", new Guid(inpatient_id), "", "", "", "", "", "", "1", 0, 0, 0, cfh, _DataBase, 2); } if (new SystemCfg(8021).Config == "0") { #region 区分中药 try { if (tb.Rows.Count == 0) { return; } DataRow[] rows; rows = tb.Select("ypsl<>0"); ts_Yk_ReportView.Dataset2 Dset = new ts_Yk_ReportView.Dataset2(); DataRow myrow; for (int i = 0; i <= rows.Length - 1; i++) { myrow = Dset.发药明细单.NewRow(); myrow["rowno"] = Convert.ToString(rows[i]["序号"]); myrow["yppm"] = Convert.ToString(rows[i]["品名"]); myrow["ypspm"] = Convert.ToString(rows[i]["商品名"]); myrow["ypgg"] = Convert.ToString(rows[i]["规格"]); myrow["sccj"] = Convert.ToString(rows[i]["厂家"]); myrow["lsj"] = Convert.ToDecimal(rows[i]["单价"]); myrow["ypsl"] = Convert.ToDecimal(rows[i]["数量"]); if (Convert.ToDecimal(rows[i]["剂数"]) > 1 || Convert.ToString(rows[i]["STATITEM_CODE"]).Substring(0, 2) == "03") { myrow["cfts"] = "剂数:" + rows[i]["剂数"].ToString() + " 剂 " + rows[i]["煎药"].ToString(); } myrow["ypdw"] = Convert.ToString(rows[i]["单位"]); myrow["lsje"] = Convert.ToDecimal(rows[i]["金额"]); myrow["shh"] = Convert.ToString(rows[i]["货号"]); myrow["bed_no"] = Convert.ToString(rows[i]["床号"]); myrow["name"] = Convert.ToString(rows[i]["姓名"]).Trim() + " 处方日期:" + Convert.ToString(rows[i]["处方日期"]).Trim(); myrow["inpatient_no"] = Convert.ToString(rows[i]["住院号"]); myrow["lydw"] = Convert.ToString(rows[i]["发药科室"]) + " 医生:" + Convert.ToString(rows[i]["医生"]); myrow["ksname"] = Yp.SeekDeptName(Convert.ToInt32(rows[i]["dept_id"]), _DataBase); myrow["presc_no"] = rows[i]["处方号"].ToString().Trim(); myrow["order_usage"] = rows[i]["用法"].ToString().Trim() + " " + rows[i]["频次"].ToString().Trim(); myrow["xb"] = Convert.ToString(rows[i]["性别"]); myrow["nl"] = Convert.ToString(rows[i]["年龄"]); myrow["JTDZ"] = ""; myrow["LXDH"] = ""; myrow["SFZH"] = ""; myrow["bz1"] = Convert.ToString(rows[i]["诊断"]); myrow["bz2"] = Convert.ToString(rows[i]["中医诊断"]); myrow["bz3"] = Convert.ToString(rows[i]["中医症型"]); Dset.发药明细单.Rows.Add(myrow); } ParameterEx[] parameters = new ParameterEx[2]; parameters[0].Text = "titletext"; string ss = ""; //if (chkcydy.Checked == false) ss = "住院处方清单"; // else // ss = "出院带药清单"; parameters[0].Value = TrasenFrame.Classes.Constant.HospitalName + "(" + Yp.SeekDeptName(zxks, _DataBase) + ")" + ss.Trim(); parameters[1].Text = "BZ"; parameters[1].Value = ""; bool bview = false; TrasenFrame.Forms.FrmReportView f; f = new TrasenFrame.Forms.FrmReportView(Dset.发药明细单, Constant.ApplicationDirectory + "\\Report\\YF_住院处方清单医生站用.rpt", parameters, bview); if (f.LoadReportSuccess) { f.Show(); } else { f.Dispose(); } } catch (System.Exception err) { MessageBox.Show(err.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error); } #endregion } else { try { DataRow[] rows; rows = tb.Select(" ypsl<>0"); DataRow[] rows_xy = null; DataRow[] rows_zy = null; rows_xy = tb.Select(" STATITEM_CODE not like '%03%' "); rows_zy = tb.Select(" STATITEM_CODE like '%03%' "); ts_Yk_ReportView.Dataset2 Dset; DataRow myrow; if (rows_xy.Length > 0) { Dset = new ts_Yk_ReportView.Dataset2(); for (int i = 0; i <= rows_xy.Length - 1; i++) { myrow = Dset.发药明细单.NewRow(); myrow["rowno"] = Convert.ToString(rows_xy[i]["序号"]); myrow["yppm"] = Convert.ToString(rows_xy[i]["品名"]); myrow["ypspm"] = Convert.ToString(rows_xy[i]["商品名"]); myrow["ypgg"] = Convert.ToString(rows_xy[i]["规格"]); myrow["sccj"] = Convert.ToString(rows_xy[i]["厂家"]); myrow["lsj"] = Convert.ToDecimal(rows_xy[i]["单价"]); myrow["ypsl"] = Convert.ToDecimal(rows_xy[i]["数量"]); if (Convert.ToDecimal(rows_xy[i]["剂数"]) > 1 || Convert.ToString(rows_xy[i]["STATITEM_CODE"]).Substring(0, 2) == "03") { myrow["cfts"] = "剂数:" + rows_xy[i]["剂数"].ToString() + " 剂 " + rows_xy[i]["煎药"].ToString(); } myrow["ypdw"] = Convert.ToString(rows_xy[i]["单位"]); myrow["lsje"] = Convert.ToDecimal(rows_xy[i]["金额"]); myrow["shh"] = Convert.ToString(rows_xy[i]["货号"]); myrow["bed_no"] = Convert.ToString(rows_xy[i]["床号"]); myrow["name"] = Convert.ToString(rows_xy[i]["姓名"]).Trim() + " 处方日期:" + Convert.ToString(rows_xy[i]["处方日期"]).Trim(); myrow["inpatient_no"] = Convert.ToString(rows_xy[i]["住院号"]); myrow["lydw"] = Convert.ToString(rows_xy[i]["发药科室"]) + " 医生:" + Convert.ToString(rows_xy[i]["医生"]); myrow["ksname"] = Yp.SeekDeptName(Convert.ToInt32(rows_xy[i]["dept_id"]), _DataBase); myrow["presc_no"] = rows_xy[i]["处方号"].ToString().Trim(); myrow["order_usage"] = rows_xy[i]["用法"].ToString().Trim() + " " + rows_xy[i]["频次"].ToString().Trim(); myrow["xb"] = Convert.ToString(rows_xy[i]["性别"]); myrow["nl"] = Convert.ToString(rows_xy[i]["年龄"]); myrow["JTDZ"] = ""; myrow["LXDH"] = ""; myrow["SFZH"] = ""; myrow["bz1"] = Convert.ToString(rows_xy[i]["诊断"]); myrow["bz2"] = Convert.ToString(rows_xy[i]["中医诊断"]); myrow["bz3"] = Convert.ToString(rows_xy[i]["中医症型"]); Dset.发药明细单.Rows.Add(myrow); } ParameterEx[] parameters = new ParameterEx[2]; parameters[0].Text = "titletext"; string ss = ""; //if (chkcydy.Checked == false) ss = "住院处方清单"; //else // ss = "出院带药清单"; parameters[0].Value = TrasenFrame.Classes.Constant.HospitalName + "(" + Yp.SeekDeptName(zxks, _DataBase) + ")" + ss.Trim(); parameters[1].Text = "BZ"; parameters[1].Value = ""; bool bview = false; TrasenFrame.Forms.FrmReportView f; f = new TrasenFrame.Forms.FrmReportView(Dset.发药明细单, Constant.ApplicationDirectory + "\\Report\\YF_住院处方清单医生站用.rpt", parameters, bview); if (f.LoadReportSuccess) { f.Show(); } else { f.Dispose(); } } if (rows_zy.Length > 0) { Dset = new ts_Yk_ReportView.Dataset2(); for (int i = 0; i <= rows_zy.Length - 1; i++) { myrow = Dset.发药明细单.NewRow(); myrow["rowno"] = Convert.ToString(rows_zy[i]["序号"]); myrow["yppm"] = Convert.ToString(rows_zy[i]["品名"]); myrow["ypspm"] = Convert.ToString(rows_zy[i]["商品名"]); myrow["ypgg"] = Convert.ToString(rows_zy[i]["规格"]); myrow["sccj"] = Convert.ToString(rows_zy[i]["厂家"]); myrow["lsj"] = Convert.ToDecimal(rows_zy[i]["单价"]); myrow["ypsl"] = Convert.ToDecimal(rows_zy[i]["数量"]); if (Convert.ToDecimal(rows_zy[i]["剂数"]) > 1 || Convert.ToString(rows_zy[i]["STATITEM_CODE"]).Substring(0, 2) == "03") { myrow["cfts"] = "剂数:" + rows_zy[i]["剂数"].ToString() + " 剂 " + rows_zy[i]["煎药"].ToString(); } myrow["ypdw"] = Convert.ToString(rows_zy[i]["单位"]); myrow["lsje"] = Convert.ToDecimal(rows_zy[i]["金额"]); myrow["shh"] = Convert.ToString(rows_zy[i]["货号"]); myrow["bed_no"] = Convert.ToString(rows_zy[i]["床号"]); myrow["name"] = Convert.ToString(rows_zy[i]["姓名"]).Trim() + " 处方日期:" + Convert.ToString(rows_zy[i]["处方日期"]).Trim(); myrow["inpatient_no"] = Convert.ToString(rows_zy[i]["住院号"]); myrow["lydw"] = Convert.ToString(rows_zy[i]["发药科室"]) + " 医生:" + Convert.ToString(rows_zy[i]["医生"]); myrow["ksname"] = Yp.SeekDeptName(Convert.ToInt32(rows_zy[i]["dept_id"]), _DataBase); myrow["presc_no"] = rows_zy[i]["处方号"].ToString().Trim(); myrow["order_usage"] = rows_zy[i]["用法"].ToString().Trim() + " " + rows_zy[i]["频次"].ToString().Trim(); myrow["xb"] = Convert.ToString(rows_zy[i]["性别"]); myrow["nl"] = Convert.ToString(rows_zy[i]["年龄"]); myrow["JTDZ"] = ""; myrow["LXDH"] = ""; myrow["SFZH"] = ""; myrow["bz1"] = Convert.ToString(rows_zy[i]["诊断"]); myrow["bz2"] = Convert.ToString(rows_zy[i]["中医诊断"]); myrow["bz3"] = Convert.ToString(rows_zy[i]["中医症型"]); Dset.发药明细单.Rows.Add(myrow); } ParameterEx[] parameters = new ParameterEx[2]; parameters[0].Text = "titletext"; string ss = ""; //if (chkcydy.Checked == false) ss = "住院处方清单"; //else // ss = "出院带药清单"; parameters[0].Value = TrasenFrame.Classes.Constant.HospitalName + "(" + Yp.SeekDeptName(zxks, _DataBase) + ")" + ss.Trim(); parameters[1].Text = "BZ"; parameters[1].Value = ""; bool bview = false; TrasenFrame.Forms.FrmReportView f; f = new TrasenFrame.Forms.FrmReportView(Dset.发药明细单, Constant.ApplicationDirectory + "\\Report\\YF_住院处方清单(中药)医生站用.rpt", parameters, bview); if (f.LoadReportSuccess) { f.Show(); } else { f.Dispose(); } } } catch (System.Exception err) { MessageBox.Show(err.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
//汇总药品数量 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); }