using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using SOH.Kernel; using EAS.Services; using SOH.BLL; using SOH.Entities; using SOH.Data; using SOH.Common; using System.Text.RegularExpressions; using FastReport; using FastReport.Data; using FastReport.Design; using EAS; using SOH.Entities.DTO; using System.Collections; using FastReport.Export.Pdf; using System.IO; using System.Drawing.Imaging; namespace SOH.KeFu { public partial class frmShowBaoGao : Form { string tm = ""; int mb = 0; DataTable dtnew = new DataTable(); DataTable dtnew2 = new DataTable(); public bool showview = false; public frmShowBaoGao() { InitializeComponent(); } public frmShowBaoGao(string tmh) { tm = tmh; InitializeComponent(); } public frmShowBaoGao(string tmh, int mbh) { tm = tmh; mb = mbh; InitializeComponent(); } string bj = ""; string title = ""; string sjh = ""; string sfzh = ""; short cjfw = 0; string bmbm = ""; string xm = ""; string hfbz = ""; DataTable dt = new DataTable(); public FastReport.Report re = new FastReport.Report(); private void frmShowBaoGao_Load(object sender, EventArgs e) { } public void init(string tms, int mbhs) { int fddm = Convert.ToInt32(LoginUser.yydm); int xb = 0; string pahzbj = "0"; //var gr = db.t_grgzbs.FirstOrDefault(t => t.tm == itm); //var tt = db.t_ttgzbs.FirstOrDefault(t => t.tm == itm); this.FormBorderStyle = FormBorderStyle.SizableToolWindow; this.WindowState = FormWindowState.Maximized; switch (mbhs) { case 0: re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg.frx"); break; case 1: re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg1.frx"); break; case 2: re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg2.frx"); break; case 3: re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg3.frx"); break; case 4: var vser = ServiceContainer.GetService(); var gzb = vser.getGzbByTms(int.Parse(tms)); if (gzb == null) { MessageBox.Show(tms + "当前条码无效!"); return; } DataTable jydDt = vser.GetJydDtByTmFromKSbm(gzb.tm); if (jydDt.Rows.Count != 0) { foreach (DataRow dr in jydDt.Rows) { //DataTable jgDt = vser.GetJyjgByTm(dr["jytm"].ToString()); //DataTable jgDt = vser.GetJyjgByTmFromZhxm(gzb.tm, dr["zhbm"].ToString()); DataTable jgDt = vser.GetJyjgByTmFromKSbm2(gzb.tm, dr["ksbm"].ToString(), gzb.xb); if (jgDt.Rows.Count == 0) { MessageBox.Show(tms + "当前条码号检验结果为空!"); return; } foreach (DataRow dr1 in jgDt.Rows) { double jg = 0; double cksx = 0; double ckxx = 0; if (double.TryParse(dr1["jg"].ToString(), out jg) && double.TryParse(dr1["cksx"].ToString(), out cksx) && double.TryParse(dr1["ckxx"].ToString(), out ckxx)) { if (jg < ckxx) dr1["bz"] = "↓"; else if (jg > cksx) dr1["bz"] = "↑"; } } re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\hyxmzyd3.frx"); //re.RegisterData(jgDt, "jy_sqd_jg"); re.RegisterData(jgDt, "Table"); re.SetParameterValue("tmh", gzb.tm); re.SetParameterValue("xm", gzb.xm); re.SetParameterValue("xb", gzb.xb); re.SetParameterValue("nl", gzb.nl); re.SetParameterValue("hyh", gzb.hyh); re.SetParameterValue("dwmc", gzb.dwmc); re.SetParameterValue("tjrq", gzb.tjrq); if (LoginUser.yydm.Equals("1")) { re.SetParameterValue("name", "德州"); re.SetParameterValue("dh", "三八东路鑫星国际大厦三楼"); re.SetParameterValue("dz", "0534-7052967"); } else if (LoginUser.yydm.Equals("2")) { re.SetParameterValue("name", "淄博"); re.SetParameterValue("dh", "0533-7997555"); re.SetParameterValue("dz", "鲁泰大道99号汇金大厦西裙楼三楼"); string lsdt = vser.GetZjysXm2(jgDt.Rows[0][0].ToString()); dtnew = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable; if (dtnew.Rows.Count == 0) { lsdt = vser.GetZjysXm(jgDt.Rows[0][0].ToString()); dtnew = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable; } dtnew.Columns.Add(new DataColumn("image", typeof(byte[]))); foreach (DataRow drnew in dtnew.Rows) { if (drnew["image1"].ToString() == "") { string zdys = drnew["xm"].ToString(); Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); drnew["image"] = stream.ToArray(); } else { byte[] bs = Convert.FromBase64String(drnew["image1"].ToString()); drnew["image"] = bs; } } string lsdt2 = vser.GetZjysXm3("trdwj"); dtnew2 = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt2, typeof(DataTable)) as DataTable; dtnew2.Columns.Add(new DataColumn("image", typeof(byte[]))); foreach (DataRow drnew2 in dtnew2.Rows) { if (drnew2["image1"].ToString() == "") { string zdys = drnew2["xm"].ToString(); Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); drnew2["image"] = stream.ToArray(); } else { byte[] bs = Convert.FromBase64String(drnew2["image1"].ToString()); drnew2["image"] = bs; } } re.RegisterData(dtnew, "hzfxImage"); re.RegisterData(dtnew2, "hzfxImage2"); } else { re.SetParameterValue("name", ""); re.SetParameterValue("dh", ""); re.SetParameterValue("dz", ""); } re.SetParameterValue("dyry", LoginUser.xm); re.Preview = previewControl1; print(); } } break; case 5: var vser1 = ServiceContainer.GetService(); var gzb1 = vser1.getGzbByTms(int.Parse(tms)); if (gzb1 == null) { MessageBox.Show(tms + "当前条码无效!"); return; } DataTable jydDt1 = vser1.GetJydDtByTmFromKSbm(gzb1.tm); if (jydDt1.Rows.Count != 0) { foreach (DataRow dr in jydDt1.Rows) { //DataTable jgDt = vser.GetJyjgByTm(dr["jytm"].ToString()); //DataTable jgDt = vser.GetJyjgByTmFromZhxm(gzb.tm, dr["zhbm"].ToString()); DataTable jgDt1 = vser1.GetJyjgByTmFromKSbm2(gzb1.tm, dr["ksbm"].ToString(),gzb1.xb); if (jgDt1.Rows.Count == 0) { MessageBox.Show(tms + "当前条码号检验结果为空!"); return; } foreach (DataRow dr1 in jgDt1.Rows) { double jg = 0; double cksx = 0; double ckxx = 0; if (double.TryParse(dr1["jg"].ToString(), out jg) && double.TryParse(dr1["cksx"].ToString(), out cksx) && double.TryParse(dr1["ckxx"].ToString(), out ckxx)) { if (jg < ckxx) dr1["bz"] = "↓"; else if (jg > cksx) dr1["bz"] = "↑"; } } re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\hyxmzyd3.frx"); //re.RegisterData(jgDt, "jy_sqd_jg"); re.RegisterData(jgDt1, "Table"); re.SetParameterValue("tmh", gzb1.tm); re.SetParameterValue("xm", gzb1.xm); re.SetParameterValue("xb", gzb1.xb); re.SetParameterValue("nl", gzb1.nl); re.SetParameterValue("hyh", gzb1.hyh); re.SetParameterValue("dwmc", gzb1.dwmc); re.SetParameterValue("tjrq", gzb1.tjrq); if (LoginUser.yydm.Equals("1")) { re.SetParameterValue("name", "德州"); re.SetParameterValue("dh", "三八东路鑫星国际大厦三楼"); re.SetParameterValue("dz", "0534-7052967"); } else if (LoginUser.yydm.Equals("2")) { re.SetParameterValue("name", "淄博"); re.SetParameterValue("dh", "0533-7997555"); re.SetParameterValue("dz", "鲁泰大道99号汇金大厦西裙楼三楼"); string lsdt = vser1.GetZjysXm2(jgDt1.Rows[0][0].ToString()); dtnew = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable; if (dtnew.Rows.Count == 0) { lsdt = vser1.GetZjysXm(jgDt1.Rows[0][0].ToString()); dtnew = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable; } dtnew.Columns.Add(new DataColumn("image", typeof(byte[]))); foreach (DataRow drnew in dtnew.Rows) { if (drnew["image1"].ToString() == "") { string zdys = drnew["xm"].ToString(); Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); drnew["image"] = stream.ToArray(); } else { byte[] bs = Convert.FromBase64String(drnew["image1"].ToString()); drnew["image"] = bs; } } string lsdt2 = vser1.GetZjysXm3("trdwj"); dtnew2 = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt2, typeof(DataTable)) as DataTable; dtnew2.Columns.Add(new DataColumn("image", typeof(byte[]))); foreach (DataRow drnew2 in dtnew2.Rows) { if (drnew2["image1"].ToString() == "") { string zdys = drnew2["xm"].ToString(); Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); drnew2["image"] = stream.ToArray(); } else { byte[] bs = Convert.FromBase64String(drnew2["image1"].ToString()); drnew2["image"] = bs; } } re.RegisterData(dtnew, "hzfxImage"); re.RegisterData(dtnew2, "hzfxImage2"); } else { re.SetParameterValue("name", ""); re.SetParameterValue("dh", ""); re.SetParameterValue("dz", ""); } re.SetParameterValue("dyry", LoginUser.xm); re.Preview = previewControl1; //print(); } } break; case 6: re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\zbcc_tjbg.frx"); break; case 7: re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg.frx"); pahzbj = "1"; break; default: re.Load(System.Windows.Forms.Application.StartupPath + "\\Report\\tjbg.frx"); break; } DataTable ccdt = new DataTable(); ccdt.Columns.Add("bt", typeof(string)); ccdt.Columns.Add("sj", typeof(string)); ccdt.Columns.Add("jg", typeof(string)); ccdt.Columns.Add("img", typeof(byte[])); ccdt.Columns.Add("ksbm", typeof(string)); var ccbg = ServiceContainer.GetService(); List ccbgs = ccbg.getCCBG(0, tms); var vkssver = ServiceContainer.GetService(); List ccks = vkssver.getccks(); string grgzbString = ServiceContainer.GetService().GetGrgzbListByTm(int.Parse(tms.Trim())); string ttgzbString = ServiceContainer.GetService().GetTtgzbListByTm(int.Parse(tms.Trim())); int hyh = 0; //创建个人report或者团体report if (grgzbString.Length > 2) { bj = "个人体检"; title = "个检"; DataTable grgzbDt = Newtonsoft.Json.JsonConvert.DeserializeObject(grgzbString, typeof(DataTable)) as DataTable; sjh = grgzbDt.Rows[0]["dh"].ToString(); sfzh = grgzbDt.Rows[0]["sfzh"].ToString(); xm = grgzbDt.Rows[0]["xm"].ToString(); bmbm = ""; hfbz= grgzbDt.Rows[0]["hfbz"].ToString(); xb = Convert.ToInt32(grgzbDt.Rows[0]["xb"].ToString()); re.RegisterData(grgzbDt, "xxTable"); hyh = Convert.ToInt32(grgzbDt.Rows[0]["hyh"]); } else { DataTable ttgzbDt = Newtonsoft.Json.JsonConvert.DeserializeObject(ttgzbString, typeof(DataTable)) as DataTable; try { title = ServiceContainer.GetService().GetKhmcByHtbm(Convert.ToInt32(ttgzbDt.Rows[0]["htbm"])); bj = ServiceContainer.GetService().GetHtbjByHtbm(Convert.ToInt32(ttgzbDt.Rows[0]["htbm"])); cjfw = ServiceContainer.GetService().GetcjfwByHtbm(Convert.ToInt32(ttgzbDt.Rows[0]["htbm"])); if (cjfw != 0) { bj = ""; title = ""; } sjh = ttgzbDt.Rows[0]["tel"].ToString(); sfzh = ttgzbDt.Rows[0]["sfzh"].ToString(); xm = ttgzbDt.Rows[0]["xm"].ToString(); hfbz = pahzbj; bmbm = ttgzbDt.Rows[0]["ssbm"].ToString(); xb = Convert.ToInt32(ttgzbDt.Rows[0]["xb"].ToString()); re.RegisterData(ttgzbDt, "xxTable"); hyh = Convert.ToInt32(ttgzbDt.Rows[0]["hyh"]); } catch (Exception ex) { throw ex; } } re.SetParameterValue("bj", bj); re.SetParameterValue("title", title); re.SetParameterValue("sjh", sjh); re.SetParameterValue("sfzh", sfzh); re.SetParameterValue("bmbm", bmbm); re.SetParameterValue("sfzhOn", hfbz); //创建第一页体检套餐 参数 string getTcStr = ServiceContainer.GetService().GetTtTcByTm(int.Parse(tms.Trim())); DataTable tcDt = Newtonsoft.Json.JsonConvert.DeserializeObject(getTcStr, typeof(DataTable)) as DataTable; if (tcDt.Rows.Count != 0) { re.SetParameterValue("tcmc", tcDt.Rows[0]["tcmc"].ToString().Trim()); } else { re.SetParameterValue("tcmc", ""); } if (fddm == 2) { //创建心电图报告 DataTable tjjdImageDt = ServiceContainer.GetService().getTjjdImage(Convert.ToInt32(tms.Trim()), 21); if (tjjdImageDt.Rows.Count != 0&& tjjdImageDt.Rows[0]["image"].ToString().Length > 10) { re.RegisterData(tjjdImageDt, "xdtbgDt"); re.SetParameterValue("xdtImageOn", "yes"); } else { re.SetParameterValue("xdtImageOn", "no"); } } //创建汇总分析表datatable string hzfxString = ServiceContainer.GetService().GetHzfxByTm(int.Parse(tms.Trim())); DataTable hzfxDt = Newtonsoft.Json.JsonConvert.DeserializeObject(hzfxString, typeof(DataTable)) as DataTable; var vserver = ServiceContainer.GetService(); if (hzfxDt.Rows.Count != 0) { string lsdt = vserver.GetZjysXm(hzfxDt.Rows[0][4].ToString()); dt = Newtonsoft.Json.JsonConvert.DeserializeObject(lsdt, typeof(DataTable)) as DataTable; if(dt.Rows.Count == 0) { DataTable hzfxImage = new DataTable(); hzfxImage.Columns.Add("xm"); hzfxImage.Columns.Add("czym"); hzfxImage.Columns.Add("image"); re.RegisterData(hzfxImage, "hzfxImage"); }else { dt.Columns.Add(new DataColumn("image", typeof(byte[]))); foreach (DataRow dr in dt.Rows) { if (dr["image1"].ToString() == "") { string zdys = dr["xm"].ToString(); Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); dr["image"] = stream.ToArray(); } else { byte[] bs = Convert.FromBase64String(dr["image1"].ToString()); dr["image"] = bs; } } //byte[] bs = Convert.FromBase64String(tjdr["image1"].ToString()); re.RegisterData(dt, "hzfxImage"); re.RegisterData(hzfxDt, "hzfxTable"); re.SetParameterValue("hzfxOn", "yes"); //查询总检医生中文名称,插入到参数里 re.SetParameterValue("zjys", dt.Rows[0][0].ToString()); re.SetParameterValue("zjysImage", dt.Rows[0][2].ToString()); } } else { /*re.RegisterData("", "hzfxImage"); re.RegisterData("", "hzfxTable");*/ DataTable hzfxImage = new DataTable(); hzfxImage.Columns.Add("xm"); hzfxImage.Columns.Add("czym"); hzfxImage.Columns.Add("image"); re.RegisterData(hzfxImage, "hzfxImage"); re.SetParameterValue("hzfxOn", "no"); re.SetParameterValue("zjys", ""); } //创建体检汇总datatable string tjhzString = ServiceContainer.GetService().GetTjhzByTm(int.Parse(tms.Trim()), fddm); DataTable tjhzDt = Newtonsoft.Json.JsonConvert.DeserializeObject(tjhzString, typeof(DataTable)) as DataTable; int a = 1; if (tjhzDt.Rows.Count != 0) { for (int i = 0; i < tjhzDt.Rows.Count; i++) { tjhzDt.Rows[i]["ksmc"] = a.ToString() + "、" + tjhzDt.Rows[i]["ksmc"].ToString() + ":"; a++; } re.RegisterData(tjhzDt, "tjhzTable"); re.SetParameterValue("tjhzOn", "yes"); string explainStr = ServiceContainer.GetService().GetExplain(int.Parse(tms.Trim()), fddm); if (explainStr.Length > 0) { re.SetParameterValue("explain", explainStr); re.SetParameterValue("explainOn", "yes"); } else { re.SetParameterValue("explainOn", "no"); } } else { DataTable tjhzDt2 = new DataTable(); tjhzDt2.Columns.Add("ksmc"); tjhzDt2.Columns.Add("zdjg"); re.RegisterData(tjhzDt2, "tjhzTable"); re.SetParameterValue("tjhzOn", "no"); } //查询健康指导 List jbtjlist = vserver.GetJbtjListByTm(int.Parse(tms.Trim())); if (jbtjlist.Count != 0) { DataTable jbkDt = new DataTable(); string jbks = vserver.GetJbkByJbbmToStr(jbtjlist.ToArray()); jbkDt = Newtonsoft.Json.JsonConvert.DeserializeObject(jbks, typeof(DataTable)) as DataTable; //for (int i = 0; i < jbkDt.Rows.Count; i++) //{ // if (jbkDt.Rows[i]["txnr"].ToString().Trim() == "") // { // jbkDt.Rows[i].Delete(); // } //} //jbkDt.AcceptChanges(); if (jbkDt.Rows.Count != 0) { re.RegisterData(jbkDt, "jbkDt"); re.SetParameterValue("notjbk", "yes"); } else { re.SetParameterValue("notjbk", "no"); } } else { re.SetParameterValue("notjbk", "no"); } //创建非化验项目的体检诊断datatable string tjjdString = ServiceContainer.GetService().GetTjjdStringByTm(int.Parse(tms.Trim())); DataTable tjjdDt = Newtonsoft.Json.JsonConvert.DeserializeObject(tjjdString, typeof(DataTable)) as DataTable; tjjdDt.Columns.Add(new DataColumn("image", typeof(byte[]))); //tjjdDt.Columns.Add(new DataColumn("image1", typeof(byte[]))); foreach (DataRow tjdr in tjjdDt.Rows) { //if (tjdr["image2"].ToString() == "") //{ // tjdr["image1"] = ""; //} //else //{ // byte[] bs = Convert.FromBase64String(tjdr["image2"].ToString()); // tjdr["image1"] = bs; //} #region 淄博CT二次审核,报告电子签名 if("王元玺".Equals(tjdr["czy"].ToString())) { if (tjdr["image2"].ToString() == "") { string zdys = "王德成/王元玺"; Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); tjdr["image"] = stream.ToArray(); } else { byte[] bs = Convert.FromBase64String(tjdr["image2"].ToString()); tjdr["image"] = bs; } continue; } #endregion if (tjdr["image1"].ToString() == "") { string zdys = tjdr["zdys"].ToString(); Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); tjdr["image"] = stream.ToArray(); } else { byte[] bs = Convert.FromBase64String(tjdr["image1"].ToString()); tjdr["image"] = bs; } } //DataTable tjjdDt = ServiceContainer.GetService().GetTjjdStringByTm2(int.Parse(tms.Trim())); if (tjjdDt.Rows.Count != 0) { DataView dv = tjjdDt.DefaultView; dv.Sort = "fxsx Asc"; DataTable tjjdDts = dv.ToTable(); #region foreach (DataRow dr in tjjdDts.Rows) { int ks = int.Parse(dr["ksbm"].ToString()); if (ccbgs.Where(t => t.ksbm == ks).Any()) { DataRow ccdr = ccdt.NewRow(); ccdr["jg"] = dr["zdjg"]; ccdr["ksbm"] = ks.ToString(); var k = ccks.Where(t => t.ksbm == ks).FirstOrDefault(); if (k != null) { ccdr["bt"] = k.bgbt; } Bitmap bm = new Bitmap(718, 425); Graphics g = Graphics.FromImage(bm); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; //g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; int w = 718; int h = 425; g.FillRectangle(Brushes.White, 0, 0, w, h); var ccksbg = ccbgs.Where(t => t.ksbm == ks).ToList(); if (ccksbg.Count == 1) { MemoryStream ms = new MemoryStream(ccksbg[0].image); Image img = Image.FromStream(ms); float wb = 1.0f * img.Width / w; float hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(0, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2, (h - img.Height) / 2); } } } else if (ccksbg.Count == 2) { MemoryStream ms = new MemoryStream(ccksbg[0].image); Image img = Image.FromStream(ms); w = w / 2 - 10; float wb = 1.0f * img.Width / w; float hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[1].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5 + w, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5 + w, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5 + w, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5 + w, (h - img.Height) / 2); } } } else if (ccksbg.Count == 3) { MemoryStream ms = new MemoryStream(ccksbg[0].image); Image img = Image.FromStream(ms); w = w / 2 - 10; h = h / 2 - 10; float wb = 1.0f * img.Width / w; float hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[1].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5 + w, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5 + w, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5 + w, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5 + w, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[2].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5 + w / 2, (h - vh) / 2 + h, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5 + w / 2, (h - img.Height) / 2 + h); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5 + w / 2, 0 + h, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5 + w / 2, (h - img.Height) / 2 + h); } } } else if (ccksbg.Count == 4) { MemoryStream ms = new MemoryStream(ccksbg[0].image); Image img = Image.FromStream(ms); w = w / 2 - 10; h = h / 2 - 10; float wb = 1.0f * img.Width / w; float hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[1].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(10 + w, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[2].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5, (h - vh) / 2 + h + 5, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2 + h + 5); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0 + h + 5, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2 + h + 5); } } ms = new MemoryStream(ccksbg[3].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5, (h - vh) / 2 + h, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2 + h); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 0 + h, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2 + h); } } } else if (ccksbg.Count == 5) { MemoryStream ms = new MemoryStream(ccksbg[0].image); Image img = Image.FromStream(ms); w = w / 3 - 10; h = h / 2 - 10; float wb = 1.0f * img.Width / w; float hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[1].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(10 + w, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[2].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(15 + 2 * w, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 15 + 2 * w, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 15 + 2 * w, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 15 + 2 * w, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[3].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5 + w / 2, (h - vh) / 2 + 5 + h, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5 + w / 2, (h - img.Height) / 2 + 5 + h, w, h); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5 + w / 2, 5 + h, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5 + w / 2, (h - img.Height) / 2, w, h); } } ms = new MemoryStream(ccksbg[4].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(10 + w + w / 2, (h - vh) / 2 + h + 5, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w + w / 2, (h - img.Height) / 2 + h); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w + w / 2, 5 + h, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w + w / 2, (h - img.Height) / 2); } } } else if (ccksbg.Count == 6) { MemoryStream ms = new MemoryStream(ccksbg[0].image); Image img = Image.FromStream(ms); w = w / 3 - 10; h = h / 2 - 10; float wb = 1.0f * img.Width / w; float hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[1].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(10 + w, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[2].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(15 + 2 * w, (h - vh) / 2, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 15 + 2 * w, (h - img.Height) / 2); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 15 + 2 * w, 0, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 15 + 2 * w, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[3].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(5, (h - vh) / 2 + 5 + h, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2 + 5 + h, w, h); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 5, 5 + h, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 5, (h - img.Height) / 2, w, h); } } ms = new MemoryStream(ccksbg[4].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(10 + w, (h - vh) / 2 + h + 5, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2 + h); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 10 + w, 5 + h, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 10 + w, (h - img.Height) / 2); } } ms = new MemoryStream(ccksbg[5].image); img = Image.FromStream(ms); //w = w / 2 - 10; wb = 1.0f * img.Width / w; hb = 1.0f * img.Height / h; if (wb > hb) { if (wb > 1) { float vh = img.Height / wb; g.DrawImage(img, new RectangleF(15 + w + w, (h - vh) / 2 + h + 5, w, vh)); } else { g.DrawImage(img, (w - img.Width) / 2 + 15 + w + w, (h - img.Height) / 2 + h); } } else { if (hb > 1) { float vw = img.Width / hb; g.DrawImage(img, new RectangleF((w - vw) / 2 + 15 + w + w, 5 + h, vw, h)); } else { g.DrawImage(img, (w - img.Width) / 2 + 15 + w + w, (h - img.Height) / 2); } } } MemoryStream mso = new MemoryStream(); ImageCodecInfo myImageCodecInfo; //获得JPEG格式的编码器 myImageCodecInfo = GetEncoderInfo("image/jpeg"); System.Drawing.Imaging.Encoder myEncoder; EncoderParameter myEncoderParameter; EncoderParameters myEncoderParameters; // for the Quality parameter category. myEncoder = System.Drawing.Imaging.Encoder.Quality; // EncoderParameter object in the array. myEncoderParameters = new EncoderParameters(1); //设置质量 数字越大质量越好,但是到了一定程度质量就不会增加了,MSDN上没有给范围,只说是32为非负整数 myEncoderParameter = new EncoderParameter(myEncoder, 100L); myEncoderParameters.Param[0] = myEncoderParameter; bm.Save(mso, myImageCodecInfo, myEncoderParameters); ccdr["img"] = mso.ToArray(); ccdt.Rows.Add(ccdr); } if (dr["djsj"].ToString().Length > 10) { dr["djsj"] = dr["djsj"].ToString().Substring(0, 10); } } #endregion re.RegisterData(tjjdDts, "tjjg"); } else { //select '' as tm,'' as ksbm,'' as zdjg,'' as zdys,'' as czy,'' as czys,'' as ksmc,'' as bglk,'' as zdmc,'' as shsj,'' as djsj DataTable tjjdDt2 = new DataTable(); tjjdDt2.Columns.Add("tm"); tjjdDt2.Columns.Add("ksbm"); tjjdDt2.Columns.Add("zdjg"); tjjdDt2.Columns.Add("zdys"); tjjdDt2.Columns.Add("czy"); tjjdDt2.Columns.Add("czys"); tjjdDt2.Columns.Add("ksmc"); tjjdDt2.Columns.Add("bglk"); tjjdDt2.Columns.Add("zdmc"); tjjdDt2.Columns.Add("shsj"); tjjdDt2.Columns.Add("djsj"); tjjdDt2.Columns.Add("fxsx"); tjjdDt2.Columns.Add("image"); re.RegisterData(tjjdDt2, "tjjg"); re.SetParameterValue("nothyxmOn", "no"); } //创建化验项目的体检诊断datatable string HytjjdString = ServiceContainer.GetService().GetHyTjjdStringByTm(int.Parse(tms.Trim()), fddm); DataTable HytjjdDt = Newtonsoft.Json.JsonConvert.DeserializeObject(HytjjdString, typeof(DataTable)) as DataTable; HytjjdDt.Columns.Add(new DataColumn("image", typeof(byte[]))); HytjjdDt.Columns.Add(new DataColumn("imageZdys", typeof(byte[]))); foreach (DataRow hytjdr in HytjjdDt.Rows) { string imagezdys = ServiceContainer.GetService().GetTjjdZdysStringByXm(hytjdr["zdys"].ToString()).ToString(); DataTable HytjjdZdysDt = Newtonsoft.Json.JsonConvert.DeserializeObject(imagezdys, typeof(DataTable)) as DataTable; if (hytjdr["image1"].ToString() == "") { string zdys = hytjdr["zdys"].ToString(); Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); hytjdr["image"] = stream.ToArray(); //byte[] bs2 = Convert.FromBase64String(ServiceContainer.GetService().GetTjjdZdysStringByXm(hytjdr["zdys"].ToString()).ToString()); //hytjdr["image"] = bs2; } else { byte[] bs = Convert.FromBase64String(hytjdr["image1"].ToString()); hytjdr["image"] = bs; } if (HytjjdZdysDt.Rows.Count > 0) { if (!string.IsNullOrEmpty(HytjjdZdysDt.Rows[0]["imageZdys"].ToString())) { byte[] bs1 = Convert.FromBase64String(HytjjdZdysDt.Rows[0]["imageZdys"].ToString()); hytjdr["imageZdys"] = bs1; } else { string zdys = hytjdr["zdys"].ToString(); Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); hytjdr["imageZdys"] = stream.ToArray(); } } else { string zdys = hytjdr["zdys"].ToString(); Bitmap b = new Bitmap(80, 20); Graphics g = Graphics.FromImage(b); g.Clear(Color.White); g.DrawString(zdys, new Font("宋体", 12), new SolidBrush(Color.Black), new Point(2, 2)); MemoryStream stream = new MemoryStream(); b.Save(stream, ImageFormat.Jpeg); //输出图片流 //return File(stream.ToArray(), "image/jpeg"); hytjdr["imageZdys"] = stream.ToArray(); } } if (HytjjdDt.Rows.Count != 0) { DataView dv1 = HytjjdDt.DefaultView; dv1.Sort = "fxsx Asc"; DataTable HytjjdDts = dv1.ToTable(); foreach (DataRow dr in HytjjdDts.Rows) { if (dr["djsj"].ToString().Length > 10) { dr["djsj"] = dr["djsj"].ToString().Substring(0, 10); } } re.RegisterData(HytjjdDts, "hytjjg"); re.SetParameterValue("hyxmOn", "yes"); } else { //select '' as tm,'' as ksbm,'' as zdjg,'' as zdys,'' as czy,'' as czys,'' as ksmc,'' as bglk,'' as zdmc,'' as djsj DataTable HytjjdDt2 = new DataTable(); HytjjdDt2.Columns.Add("tm"); HytjjdDt2.Columns.Add("ksbm"); HytjjdDt2.Columns.Add("zdjg"); HytjjdDt2.Columns.Add("zdys"); HytjjdDt2.Columns.Add("czy"); HytjjdDt2.Columns.Add("czys"); HytjjdDt2.Columns.Add("ksmc"); HytjjdDt2.Columns.Add("bglk"); HytjjdDt2.Columns.Add("zdmc"); HytjjdDt2.Columns.Add("djsj"); HytjjdDt2.Columns.Add("fxsx"); HytjjdDt2.Columns.Add("image"); HytjjdDt2.Columns.Add("imageZdys"); re.RegisterData(HytjjdDt2, "hytjjg"); re.SetParameterValue("hyxmOn", "no"); } //创建非化验项目的体检结果datatable string tjjgString = ServiceContainer.GetService().GetTjjgStringByTm(int.Parse(tms.Trim()),xb); DataTable tjjgDt = Newtonsoft.Json.JsonConvert.DeserializeObject(tjjgString, typeof(DataTable)) as DataTable; if (ccdt.Rows.Count > 0) { re.SetParameterValue("ccImageOn", "yes"); } else { re.SetParameterValue("ccImageOn", "no"); } if (tjjgDt.Rows.Count != 0) { DataView dv2 = tjjgDt.DefaultView; if (mbhs == 1 || mbhs == 3) { dv2.RowFilter = "ksbm='10'"; } dv2.Sort = "fxsx,xssx Asc"; DataTable tjjgDts = dv2.ToTable(); foreach (DataRow dr in tjjgDts.Rows) { #region 异常指标颜色修改逻辑 if (!string.IsNullOrEmpty(dr["jg"].ToString())) { if (!dr["cksx"].ToString().Trim().Equals("-1") && !dr["cksx"].ToString().Trim().Equals("-2")) { if (double.TryParse(dr["jg"].ToString().Trim(), out double result)) { if (double.Parse(dr["ckxx"].ToString().Trim()) < double.Parse(dr["jg"].ToString().Trim()) && double.Parse(dr["cksx"].ToString().Trim()) > double.Parse(dr["jg"].ToString().Trim())) { } else { dr["jg"] = dr["jg"].ToString() + "@"; } } else { if (!dr["zcjg"].ToString().Trim().Equals(dr["jg"].ToString().Trim())) { dr["jg"] = dr["jg"].ToString() + "@"; } } } else { if (!dr["cksx"].ToString().Trim().Equals("-2")) { if (!dr["zcjg"].ToString().Trim().Equals(dr["jg"].ToString().Trim())) { dr["jg"] = dr["jg"].ToString() + "@"; } } } } #endregion DataRow[] drs = ccdt.Select("ksbm='" + dr["ksbm"].ToString() + "'"); if (drs.Count() > 0) { drs[0]["sj"] = drs[0]["sj"] + "\r\n" + dr["jg"].ToString(); } } re.RegisterData(tjjgDts, "tjjgmx"); if (mbhs != 2) { if (tjjgDts.Rows.Count != 0) { re.SetParameterValue("nothyxmOn", "yes"); } else { re.SetParameterValue("nothyxmOn", "no"); } } else { re.SetParameterValue("nothyxmOn", "no"); } } else { //select '' as jcxmmc,'' as ksbm,'' as cksx,'' as ckxx,'' as dw,'' as jc,'' as dyckfw,'' as jg DataTable tjjgDt2 = new DataTable(); tjjgDt2.Columns.Add("jcxmmc"); tjjgDt2.Columns.Add("ksbm"); tjjgDt2.Columns.Add("cksx"); tjjgDt2.Columns.Add("ckxx"); tjjgDt2.Columns.Add("dw"); tjjgDt2.Columns.Add("jc"); tjjgDt2.Columns.Add("dyckfw"); tjjgDt2.Columns.Add("jg"); tjjgDt2.Columns.Add("fxsx"); tjjgDt2.Columns.Add("xssx"); re.RegisterData(tjjgDt2, "tjjgmx"); re.SetParameterValue("nothyxmOn", "no"); } re.RegisterData(ccdt, "ccbg"); //创建外送金域的体检结果datatable string tjjgWSString = ServiceContainer.GetService().GetTjjgWSStringByTm(int.Parse(tms.Trim()),xb); DataTable tjjgWSDt = Newtonsoft.Json.JsonConvert.DeserializeObject(tjjgWSString, typeof(DataTable)) as DataTable; if (tjjgWSDt.Rows.Count != 0) { DataView dvWS = tjjgWSDt.DefaultView; if (mbhs == 1 || mbhs == 3) { dvWS.RowFilter = "ksbm='10'"; } dvWS.Sort = "fxsx,xssx Asc"; DataTable tjjgWSDts = dvWS.ToTable(); //foreach (DataRow dr in tjjgWSDts.Rows) //{ // DataRow[] drs = ccdt.Select("ksbm='" + dr["ksbm"].ToString() + "'"); // if (drs.Count() > 0) // { // drs[0]["sj"] = drs[0]["sj"] + "\r\n" + dr["jg"].ToString(); // } //} re.RegisterData(tjjgWSDts, "tjjgWSmx"); if (mbhs != 2) { if (tjjgWSDts.Rows.Count != 0) { re.SetParameterValue("notwsxmOn", "yes"); } else { re.SetParameterValue("notwsxmOn", "no"); } } else { re.SetParameterValue("notwsxmOn", "no"); } } else { //select '' as jcxmmc,'' as ksbm,'' as cksx,'' as ckxx,'' as dw,'' as jc,'' as dyckfw,'' as jg DataTable tjjgWSDt2 = new DataTable(); tjjgWSDt2.Columns.Add("jcxmmc"); tjjgWSDt2.Columns.Add("ksbm"); tjjgWSDt2.Columns.Add("cksx"); tjjgWSDt2.Columns.Add("ckxx"); tjjgWSDt2.Columns.Add("dw"); tjjgWSDt2.Columns.Add("jc"); tjjgWSDt2.Columns.Add("dyckfw"); tjjgWSDt2.Columns.Add("jg"); tjjgWSDt2.Columns.Add("fxsx"); tjjgWSDt2.Columns.Add("xssx"); re.RegisterData(tjjgWSDt2, "tjjgWSmx"); re.SetParameterValue("notwsxmOn", "no"); } //re.RegisterData(ccdt, "ccbg"); //创建化验项目的体检结果datatable string HytjjgString = ServiceContainer.GetService().GetHyTjjgStringByTm(int.Parse(tms.Trim()), fddm,xb); DataTable HytjjgDt = Newtonsoft.Json.JsonConvert.DeserializeObject(HytjjgString, typeof(DataTable)) as DataTable; if (HytjjgDt.Rows.Count != 0) { DataView dv3 = HytjjgDt.DefaultView; dv3.Sort = "fxsx,xssx Asc"; DataTable HytjjgDts = dv3.ToTable(); foreach (DataRow dr in HytjjgDts.Rows) { double jg = 0; double cksx = 0; double ckxx = 0; if (double.TryParse(dr["jg"].ToString(), out jg) && double.TryParse(dr["cksx"].ToString(), out cksx) && double.TryParse(dr["ckxx"].ToString(), out ckxx)) { if (jg < ckxx) dr["bz"] = "↓"; else if (jg > cksx) dr["bz"] = "↑"; } } re.RegisterData(HytjjgDts, "hytjjgmx"); } else { HytjjgDt = new DataTable(); //select '' as jcxmmc,'' as ksbm,'' as cksx,'' as ckxx,'' as dw,'' as jc,'' as dyckfw,'' as jg HytjjgDt.Columns.Add("jcxmmc"); HytjjgDt.Columns.Add("ksbm"); HytjjgDt.Columns.Add("cksx"); HytjjgDt.Columns.Add("ckxx"); HytjjgDt.Columns.Add("dw"); HytjjgDt.Columns.Add("jc"); HytjjgDt.Columns.Add("dyckfw"); HytjjgDt.Columns.Add("jg"); HytjjgDt.Columns.Add("bz"); HytjjgDt.Columns.Add("fxsx"); HytjjgDt.Columns.Add("xssx"); re.RegisterData(HytjjgDt, "hytjjgmx"); re.SetParameterValue("hyxmOn", "no"); } //创建放弃表的datatable string fqString = ServiceContainer.GetService().GetFqStringByTm(int.Parse(tms.Trim())); if (fqString.Length > 2) { DataTable fqDt = Newtonsoft.Json.JsonConvert.DeserializeObject(fqString, typeof(DataTable)) as DataTable; re.RegisterData(fqDt, "fqTable"); re.SetParameterValue("fqOn", "yes"); } else { //re.RegisterData(fqDt, "fqTable"); re.SetParameterValue("fqOn", "no"); } //创建历史结果对比 DataTable hisDt; int[] array = (int[])ServiceContainer.GetService().GetHisTmList(hyh); if (array.Length > 1) { hisDt = Newtonsoft.Json.JsonConvert.DeserializeObject(ServiceContainer.GetService().GetHisTable(array), typeof(DataTable)) as DataTable; if (hisDt.Rows.Count == 0) { hisDt = new DataTable(); hisDt.Columns.Add("ksmc"); hisDt.Columns.Add("kszd"); hisDt.Columns.Add("tjrq"); } re.RegisterData(hisDt, "t_lndb"); if (fddm == 1) { re.SetParameterValue("hisfxOn", "no"); } else { re.SetParameterValue("hisfxOn", "yes"); } } else { if (sfzh != "") { int[] array1 = (int[])ServiceContainer.GetService().GetHisTmListBySfz(sfzh, xm); if (array1.Length > 1) { hisDt = Newtonsoft.Json.JsonConvert.DeserializeObject(ServiceContainer.GetService().GetHisTable(array1), typeof(DataTable)) as DataTable; re.RegisterData(hisDt, "t_lndb"); if (fddm == 1) { re.SetParameterValue("hisfxOn", "no"); } else { re.SetParameterValue("hisfxOn", "yes"); } } else { hisDt = new DataTable(); hisDt.Columns.Add("ksmc"); hisDt.Columns.Add("kszd"); hisDt.Columns.Add("tjrq"); re.RegisterData(hisDt, "t_lndb"); re.SetParameterValue("hisfxOn", "no"); } } else { hisDt = new DataTable(); hisDt.Columns.Add("ksmc"); hisDt.Columns.Add("kszd"); hisDt.Columns.Add("tjrq"); re.RegisterData(hisDt, "t_lndb"); re.SetParameterValue("hisfxOn", "no"); } } re.Preview = previewControl1; //re.Show(); } ImageCodecInfo GetEncoderInfo(String mimeType) { int j; ImageCodecInfo[] encoders; encoders = ImageCodecInfo.GetImageEncoders(); for (j = 0; j < encoders.Length; ++j) { if (encoders[j].MimeType == mimeType) return encoders[j]; } return null; } public void daochu(string name) { if (previewControl1.Report == null) { //MessageBox.Show("请先初始化数据!"); return; } if (showview) { if (!this.Visible) { //this.Show(); //printpreview.Report.Show(); } return; } previewControl1.Report.PrintSettings.ShowDialog = false; //previewControl1.Report.Print(); previewControl1.Report.Prepare(); PDFExport pdf = new PDFExport(); //pdf.EmbeddingFonts = true; if (Directory.Exists("d:\\pdf")) { previewControl1.Report.Export(pdf, @"d:\\pdf\" + name + ".pdf"); } else { Directory.CreateDirectory(@"d:\\pdf"); previewControl1.Report.Export(pdf, @"d:\\pdf\" + name + ".pdf"); } } public string daochu2(string name) { if (previewControl1.Report == null) { //MessageBox.Show("请先初始化数据!"); return ""; } if (showview) { if (!this.Visible) { //this.Show(); //printpreview.Report.Show(); } return ""; } previewControl1.Report.PrintSettings.ShowDialog = false; //previewControl1.Report.Print(); var pfile = @"d:\\pdf\" + name + ".pdf"; previewControl1.Report.Prepare(); PDFExport pdf = new PDFExport(); //pdf.EmbeddingFonts = true; if (Directory.Exists("d:\\pdf")) { previewControl1.Report.Export(pdf, pfile); } else { Directory.CreateDirectory(@"d:\\pdf"); previewControl1.Report.Export(pdf, @"d:\\pdf\" + name + ".pdf"); } return pfile; } public void daochuImagePdf(string name) { if (previewControl1.Report == null) { //MessageBox.Show("请先初始化数据!"); return; } if (showview) { if (!this.Visible) { //this.Show(); //printpreview.Report.Show(); } return; } previewControl1.Report.PrintSettings.ShowDialog = false; //previewControl1.Report.Print(); int i = 1; FastReport.Export.Image.ImageExport imgreport = new FastReport.Export.Image.ImageExport(); //FastReport.Export.Pdf.PDFExport pdfe = new FastReport.Export.Pdf.PDFExport(); //pdfe.PageRange = FastReport.PageRange.All; imgreport.PageRange = FastReport.PageRange.All; imgreport.ImageFormat = FastReport.Export.Image.ImageExportFormat.Jpeg; imgreport.MultiFrameTiff = true; imgreport.Resolution = 96; imgreport.JpegQuality = 100; string path = System.IO.Path.GetTempPath(); path += i + "\\"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string dir = path; previewControl1.Report.Prepare(); previewControl1.Report.Export(imgreport, path + "lsb.jpg"); i++; var mylist = new List(); int z = 0; while (true) { ++z; if (z == 1) { path = dir + "lsb.jpg"; } else { path = string.Format(dir + "lsb.{0}.jpg", z); } if (System.IO.File.Exists(path)) { int h = 0; while (true) { if (h > 10) break; h++; try { mylist.Add(path); //File.Delete(path); break; } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); EAS.Loggers.ILogger log1 = new EAS.Loggers.TextLogger(); log1.Info(ex.Message); log1.Info(ex.StackTrace); } } } else { path = string.Format(dir + "lsb.{0}.jpg", z.ToString("00")); if (System.IO.File.Exists(path)) { int h = 0; while (true) { if (h > 10) break; h++; try { mylist.Add(path); //File.Delete(path); break; } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); EAS.Loggers.ILogger log2 = new EAS.Loggers.TextLogger(); log2.Info(ex.Message); log2.Info(ex.StackTrace); } } } else { break; } } } iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4); var pfile = @"d:\\pdf\" + name + ".pdf"; var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(pfile, FileMode.Create)); #region 设置PDF的头信息,一些属性设置,在Document.Open 之前完成 doc.AddAuthor("天瑞体检"); doc.AddCreationDate(); doc.AddCreator("天瑞体检"); doc.AddSubject(name); doc.AddTitle(name); //自定义头 #endregion doc.Open(); foreach (var j in mylist) { iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(j); image.ScalePercent(72 / 96f * 100); image.SetAbsolutePosition(0, 0); doc.Add(image); doc.NewPage(); File.Delete(j); } doc.Close(); //File(pfile, "application/pdf", bg.TaoCanMingCheng + ".pdf"); } public string daochuImagePdf2(string name) { if (previewControl1.Report == null) { //MessageBox.Show("请先初始化数据!"); return ""; } if (showview) { if (!this.Visible) { //this.Show(); //printpreview.Report.Show(); } return ""; } previewControl1.Report.PrintSettings.ShowDialog = false; //previewControl1.Report.Print(); int i = 1; FastReport.Export.Image.ImageExport imgreport = new FastReport.Export.Image.ImageExport(); //FastReport.Export.Pdf.PDFExport pdfe = new FastReport.Export.Pdf.PDFExport(); //pdfe.PageRange = FastReport.PageRange.All; imgreport.PageRange = FastReport.PageRange.All; imgreport.ImageFormat = FastReport.Export.Image.ImageExportFormat.Jpeg; imgreport.MultiFrameTiff = true; imgreport.Resolution = 96; imgreport.JpegQuality = 100; string path = System.IO.Path.GetTempPath(); path += i + "\\"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string dir = path; previewControl1.Report.Prepare(); previewControl1.Report.Export(imgreport, path + "lsb.jpg"); i++; var mylist = new List(); int z = 0; while (true) { ++z; if (z == 1) { path = dir + "lsb.jpg"; } else { path = string.Format(dir + "lsb.{0}.jpg", z); } if (System.IO.File.Exists(path)) { int h = 0; while (true) { if (h > 10) break; h++; try { mylist.Add(path); //File.Delete(path); break; } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); EAS.Loggers.ILogger log1 = new EAS.Loggers.TextLogger(); log1.Info(ex.Message); log1.Info(ex.StackTrace); } } } else { path = string.Format(dir + "lsb.{0}.jpg", z.ToString("00")); if (System.IO.File.Exists(path)) { int h = 0; while (true) { if (h > 10) break; h++; try { mylist.Add(path); //File.Delete(path); break; } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); EAS.Loggers.ILogger log2 = new EAS.Loggers.TextLogger(); log2.Info(ex.Message); log2.Info(ex.StackTrace); } } } else { break; } } } iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4); var pfile = @"d:\pdf\" + name + ".pdf"; var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(pfile, FileMode.Create)); #region 设置PDF的头信息,一些属性设置,在Document.Open 之前完成 doc.AddAuthor("天瑞体检"); doc.AddCreationDate(); doc.AddCreator("天瑞体检"); doc.AddSubject(name); doc.AddTitle(name); //自定义头 #endregion doc.Open(); foreach (var j in mylist) { iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(j); image.ScalePercent(72 / 96f * 100); image.SetAbsolutePosition(0, 0); doc.Add(image); doc.NewPage(); File.Delete(j); } doc.Close(); return pfile; //File(pfile, "application/pdf", bg.TaoCanMingCheng + ".pdf"); } public void print() { if (previewControl1.Report == null) { MessageBox.Show("请先初始化数据!"); return; } if (showview) { if (!this.Visible) { this.Show(); //printpreview.Report.Show(); } return; } //string printname = ""; //System.Configuration.Configuration cm = System.Configuration.ConfigurationManager.OpenExeConfiguration(AppDomain.CurrentDomain.BaseDirectory + "\\local.ext"); //printname = cm.AppSettings.Settings["bgdyjmc"].Value; //if (!string.IsNullOrEmpty(printname)) //{ // previewControl1.Report.PrintSettings.Printer = printname; // } previewControl1.Report.PrintSettings.ShowDialog = false; previewControl1.Report.Print(); } } }