12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508 |
- using OTSSysMgrTools;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- using System.Linq;
- using System.Windows.Forms;
- namespace OTSIncAReportTemplate
- {
- public partial class OTSIncAReportTemplate : Form
- {
- #region 全局变量
- List<DataTable> list_dt;
- MBSZClass m_mbszclass = null;
- public XmlConfigUtil xmlutil;
- public XmlConfigUtil xmlutil2;
- //全局变量,与报告项目同步,共传4个参数
- //参数1:是需要打开db数据库的路径
- //参数2:是打开报表模板xml文件的路径
- //参数3:是要执行查看报表的类型,输出主报表,还是输出颗粒列表
- //参数4:打开主报表时是是指定夹杂物的数量,打开颗粒列表时,是颗粒列表显示的范围如,0-50,50-100
- //参数5:是要执行查看报表的类型,输出主报表时,指定读取的标记帧图图像范围,如0-50,50-100,输出颗粒列表时无用
- string m_arg1 = "";
- string m_arg2 = "";
- string m_arg3 = "";
- string m_arg4 = "";
- string m_arg5 = "";
- #endregion
- #region 构造函数及窗体加载
- public OTSIncAReportTemplate()
- {
- InitializeComponent();
- }
- public OTSIncAReportTemplate(string[] args)
- {
- InitializeComponent();
- //if (args.Length == 0)
- //{
- // MessageBox.Show("请使用报告程序打开模板程序!");
- // return;
- //}
- //if (args.Length != 5)
- //{
- // string str = "";
- // for (int i = 0; i < args.Length; i++)
- // {
- // str = str + "参数" + (i + 1).ToString() + ":" + args[i].ToString() + Environment.NewLine;
- // }
- // MessageBox.Show("传入的参数数量不正确,应为5个参数:" + Environment.NewLine + str);
- // return;
- //}
- //方便测试代码分岐
- bool bDebug = true;
- if (bDebug == false)
- {
- m_arg1 = args[0].Replace("^", " ");
- m_arg2 = args[1].Replace("^", " ");
- m_arg3 = args[2].Replace("^", " ");
- m_arg4 = args[3].Replace("^", " ");
- m_arg5 = args[4].Replace("^", " ");
- }
- else
- {
- ////测试
- //m_arg1 = "E:\\ResultFile\\东钢\\11.24\\002\\Sample1\\ReportTemplateDBParticleList.db";
- //m_arg2 = "./Config/ProData/ReportTemplateConfig.xml";
- //m_arg3 = "ParticleListReport";
- //m_arg4 = "33-66";
- //m_arg5 = "0-100";
- //m_arg1 = "E:\\ResultFile\\keda20201209\\Sample1\\ReportTemplateDBParticleList.db";
- //m_arg2 = "./Config/ProData/ReportTemplateConfig.xml";
- //m_arg3 = "ParticleListReport";
- //m_arg4 = "0-983";
- //m_arg5 = "";
- m_arg1 = "E:\\ResultFile\\beijing20210708\\Sample4\\ReportTemplateDB.db";
- m_arg2 = "./Config/ProData/ReportTemplateConfig.xml";
- m_arg3 = "MainReport";
- m_arg4 = "100";
- m_arg5 = "0-100";
- }
- //初始化xml类
- xmlutil = new XmlConfigUtil(m_arg2);
- m_mbszclass = new MBSZClass();
- list_dt = new List<DataTable>();
- }
- protected override void SetVisibleCore(bool value)
- {
- base.SetVisibleCore(value);
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- //隐藏窗体
- this.WindowState = FormWindowState.Minimized;
- //this.ShowInTaskbar = false;
- //SetVisibleCore(false);
- if (m_arg1 != "")
- {
- rmReport1 = new RMReportEngine.RMReport();
- rmReport1.ModifyPrepared = false;
- rmReport1.Init(this, RM.Interop.ReportMachine.TxRMReportType.rmrtReport);
- //1300购买的注册码
- rmReport1.SetUserInfo("15040732794", "UEsDBBQAAAAIAPZ9ulCdRMtANAAAADUAAAAFAAAAZmlsZTET4mZgYDA0NTAxMDc2Mrc0EVIA8dPMU5LMDBONLC0NzCyTzZJTDROTzc0TDZIskhINLFIBUEsBAhQAFAAAAAgA9n26UJ1Ey0A0AAAANQAAAAUAAAAAAAAAAAAAAAAAAAAAAGZpbGUxUEsFBgAAAAABAAEAMwAAAFcAAAAAAA == ");
- //读取xml
- //LoadControlsToXml();
- LoadMBSZClass();
- LoadRouteclass();
- //加载显示report
- if (m_arg3 == "MainReport")
- {
- //读取db
- LoadReportTemplateDBFile();
- ReportTemplatePrint_MainReport();
- }
- else if (m_arg3 == "ParticleListReport")
- {
- //读取db
- LoadReportTemplateDBFile_ParticleList();
- ReportTemplatePrint_PartilceListReport();
- }
- }
- //关闭查看报告,则退出进程
- this.Close();
- Application.Exit();
- }
- #endregion
- #region 显示报表方法
- /// <summary>
- /// 调用预览查看报表,显示主报表
- /// </summary>
- private void ReportTemplatePrint_MainReport()
- {
- DataRelation myRela1;
- DataTable ls_resultgrid = list_dt.Where(aa => aa.TableName.Contains("ResultGrid")).ToList()[0];//插入测量结果Grid表格
- rmReport1.PreviewOptions.BtnDesignVisible = true;
- #region 选择报告模板
- if (m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk == true && m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk == true && m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk == true)
- {
- rmReport1.LoadFromFile("Resources\\ReportTemplate\\group1.rmf");
- }
- else
- if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk == false && m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk == false && m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk == true)
- {
- rmReport1.LoadFromFile("Resources\\ReportTemplate\\groupCancelElement.rmf");
- }
- else
- if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk == false && m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk == false && m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk == false)
- {
- rmReport1.LoadFromFile("Resources\\ReportTemplate\\groupCancelBlank.rmf");
- }
- else
- {
- rmReport1.LoadFromFile("Resources\\ReportTemplate\\groupCancelGrain.rmf");
- }
- #endregion
- rmReport1.AddVariable("ZBT", m_mbszclass.M_SY.str_tb_ZBT, true);
- rmReport1.AddVariable("FBT", m_mbszclass.M_SY.str_tb_FBT, true);
- rmReport1.AddVariable("YPBH", m_mbszclass.M_SY.str_tb_YPBH, true);
- rmReport1.AddVariable("KHH", m_mbszclass.M_YMYJ.str_tb_KHH, true);
- rmReport1.AddVariable("CKBZ", m_mbszclass.M_SY.str_tb_CKBZ, true);
- rmReport1.AddVariable("RM_YM", m_mbszclass.M_YMYJ.str_tb_ymwb, true);
- rmReport1.AddVariable("RM_YJ", m_mbszclass.M_YMYJ.str_tb_yjwb, true);
- #region 判断是否显示
- if (m_mbszclass.M_SYXT.b_ck_syxt_xsmk)//判断三元相图是否显示
- {
- rmReport1.FindObject("GroupHeader81").Prop["Visible"] = true;
- if (m_mbszclass.M_SYXT.str_cb_syxt_mhxssl == "2")
- {
- DataTable ls_dt_picSYXT = list_dt.Where(aa => aa.TableName.Contains("PicSYXT2T")).ToList()[0];//一排两个三元相图
- rmReport1.FindObject("MasterData10").Prop["Visible"] = false;
- rmReport1.FindObject("MasterData96").Prop["Visible"] = true;
- rmReport1.AddDataSet(ls_dt_picSYXT, "PicSYXT");//三元相图
- ls_dt_picSYXT.Dispose();
- }
- else if (m_mbszclass.M_SYXT.str_cb_syxt_mhxssl == "3")
- {
- DataTable ls_dt_picSYXT3T = list_dt.Where(aa => aa.TableName.Contains("PicSYXT3T")).ToList()[0];//一排三个三元相图
- rmReport1.FindObject("MasterData96").Prop["Visible"] = false;
- rmReport1.FindObject("MasterData10").Prop["Visible"] = true;
- rmReport1.AddDataSet(ls_dt_picSYXT3T, "PicSYXT3T");
- ls_dt_picSYXT3T.Dispose();
- //ls_dt_picSYXT3T.Clear();
- }
- }
- else
- {
- DataTable dataTable = new DataTable();
- rmReport1.AddDataSet(dataTable, "PicSYXT2T");//三元相图
- rmReport1.AddDataSet(dataTable, "PicSYXT3T");
- dataTable.Dispose();
- dataTable.Clear();
- rmReport1.FindObject("GroupHeader81").Prop["Visible"] = false;
- rmReport1.FindObject("MasterData96").Prop["Visible"] = false;
- rmReport1.FindObject("MasterData10").Prop["Visible"] = false;
- rmReport1.DeletePage(3);
- }
- if (m_mbszclass.M_SY.b_ck_ypsm)//判断样品说明是否显示
- {
- rmReport1.AddDataSet(ls_resultgrid, "ResultGrid");
- ls_resultgrid.Dispose();
- rmReport1.FindObject("MasterData1").Prop["Visible"] = true;
- }
- else
- {
- rmReport1.FindObject("MasterData1").Prop["Visible"] = false;
- }
- if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk == false && m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk == false)//如果颗粒尺寸分析结果和夹杂物分类图都不显示
- {
- DataTable dataTable = new DataTable();
- rmReport1.AddDataSet(dataTable, "PartSize");
- rmReport1.AddDataSet(dataTable, "Particel");
- rmReport1.AddDataSet(dataTable, "PicKL");
- dataTable.Dispose();
- dataTable.Clear();
- rmReport1.FindObject("MasterData2").Prop["Visible"] = false;
- rmReport1.FindObject("MasterData126").Prop["Visible"] = false;
- rmReport1.FindObject("MasterData95").Prop["Visible"] = false;
- rmReport1.DeletePage(1);
- }
- else
- {
- if (m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk)//判断颗粒尺寸分析结果
- {
- DataTable ls_dt_PartSize = list_dt.Where(aa => aa.TableName.Contains("PartSize")).ToList()[0];//插入 颗粒尺寸表
- DataTable ls_dt_Particel = list_dt.Where(aa => aa.TableName.Contains("Particel")).ToList()[0];
- rmReport1.AddDataSet(ls_dt_PartSize, "PartSize");
- rmReport1.AddDataSet(ls_dt_Particel, "Particel");
- List<string> vs = new List<string>() { "DMAX", "DMIN", "Area", "FERET" };
- string str = vs[m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs];
- rmReport1.AddVariable("klccfxjg_jsfx", str, true);
- ls_dt_PartSize.Dispose();
- //ls_dt_PartSize.Clear();
- ls_dt_Particel.Dispose();
- //ls_dt_Particel.Clear();
- rmReport1.FindObject("MasterData2").Prop["Visible"] = true;
- rmReport1.FindObject("MasterData126").Prop["Visible"] = true;
- }
- else
- {
- DataTable dataTable = new DataTable();
- rmReport1.AddDataSet(dataTable, "PartSize");
- rmReport1.AddDataSet(dataTable, "Particel");
- dataTable.Dispose();
- dataTable.Clear();
- rmReport1.FindObject("MasterData2").Prop["Visible"] = false;
- rmReport1.FindObject("MasterData126").Prop["Visible"] = false;
- }
- if (m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk)//判断夹杂物分类图
- {
- DataTable ls_dt_picKL = list_dt.Where(aa => aa.TableName.Contains("PicKL")).ToList()[0];// 用于颗粒图chart
- rmReport1.AddDataSet(ls_dt_picKL, "PicKL");
- ls_dt_picKL.Dispose();
- //ls_dt_picKL.Clear();
- rmReport1.FindObject("MasterData95").Prop["Visible"] = true;
- }
- else
- {
- DataTable dataTable = new DataTable();
- rmReport1.AddDataSet(dataTable, "PicKL");
- dataTable.Dispose();
- dataTable.Clear();
- rmReport1.FindObject("MasterData95").Prop["Visible"] = false;
- }
- }
- if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk == false && m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk == false)//如果元素分析表和显示元素成分图都不显示
- {
- //rmReport1.FindObject("MasterData3").Prop["Visible"] = false;
- //rmReport1.FindObject("MasterData42").Prop["Visible"] = false;
- //rmReport1.FindObject("MasterData91").Prop["Visible"] = false;
- //rmReport1.DeletePage(5);
- }
- else
- {
- if (m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk)//判断元素分析表是否显示
- {
- DataTable ls_dt_elementname = list_dt.Where(aa => aa.TableName.Contains("ElementName")).ToList()[0];
- DataTable ls_dt_element = list_dt.Where(aa => aa.TableName == "ElementValue").ToList()[0];
- rmReport1.AddDataSet(ls_dt_elementname, "ElementName");
- rmReport1.AddDataSet(ls_dt_element, "ElementValue");
- ls_dt_elementname.Dispose();
- //ls_dt_elementname.Clear();
- ls_dt_element.Dispose();
- //ls_dt_element.Clear();
- rmReport1.FindObject("MasterData3").Prop["Visible"] = true;
- rmReport1.FindObject("MasterData42").Prop["Visible"] = true;
- }
- else
- {
- DataTable dataTable = new DataTable();
- rmReport1.AddDataSet(dataTable, "ElementName");
- rmReport1.AddDataSet(dataTable, "ElementValue");
- dataTable.Dispose();
- dataTable.Clear();
- rmReport1.FindObject("MasterData3").Prop["Visible"] = false;
- rmReport1.FindObject("MasterData42").Prop["Visible"] = false;
- }
- if (m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk)//判断显示元素成分图
- {
- DataTable ls_dt_picYS = list_dt.Where(aa => aa.TableName.Contains("PicYS")).ToList()[0];//用于元素图chart
- rmReport1.AddDataSet(ls_dt_picYS, "PicYS");
- ls_dt_picYS.Dispose();
- //ls_dt_picYS.Clear();
- rmReport1.FindObject("MasterData91").Prop["Visible"] = true;
- }
- else
- {
- DataTable dataTable = new DataTable();
- rmReport1.AddDataSet(dataTable, "PicYS");
- dataTable.Dispose();
- dataTable.Clear();
- rmReport1.FindObject("MasterData91").Prop["Visible"] = false;
- }
- }
- if (m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk)//判断显示颗粒列表
- {
- if (Convert.ToInt32(m_arg4) < 21)
- {
- DataTable ls_dt_largest = list_dt.Where(aa => aa.TableName.Contains("Largest20")).ToList()[0];
- rmReport1.AddDataSet(ls_dt_largest, "Largest20");
- ls_dt_largest.Dispose();
- //ls_dt_largest.Clear();
- }
- else
- {
- DataTable ls_dt_largest = list_dt.Where(aa => aa.TableName.Contains("Largest20")).ToList()[0];
- rmReport1.AddDataSet(ls_dt_largest, "Largest20");
- ls_dt_largest.Dispose();
- //ls_dt_largest.Clear();
- DataTable ls_dt_largest2 = list_dt.Where(aa => aa.TableName.Contains("Largest2")).ToList()[0];
- rmReport1.AddDataSet(ls_dt_largest2, "Largest2");
- ls_dt_largest2.Dispose();
- //ls_dt_largest2.Clear();
- }
- //FlushMemory();
- #region 主副表
- DataTable ls_dt_frame = list_dt.Where(aa => aa.TableName.Contains("Largest_frame")).ToList()[0].Copy();//副表
- DataTable ls_dt_fielddt = list_dt.Where(aa => aa.TableName.Contains("field_dt")).ToList()[0].Copy();//帧图主表
- DataSet ds = new DataSet("fieldimgds");
- ds.Tables.Add(ls_dt_fielddt);
- ds.Tables.Add(ls_dt_frame);
- myRela1 = new DataRelation("Rela1", ls_dt_fielddt.Columns["FieldId"], ls_dt_frame.Columns["FieldId"],false);
- ds.Relations.Add(myRela1);
- rmReport1.AddDataSet(ls_dt_fielddt, "CustomersDS");
- rmReport1.AddDetailDataSet(ls_dt_frame, "OrdersDS", "CustomersDS", myRela1);
- ls_dt_frame.Dispose();
- //ls_dt_frame.Clear();
- ls_dt_fielddt.Dispose();
- //ls_dt_fielddt.Clear();
- #endregion
- //FlushMemory();
- rmReport1.FindObject("GroupHeader12").Prop["Visible"] = true;
- rmReport1.FindObject("MasterData49").Prop["Visible"] = true;
- if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx != true)//原图开,放大图关,能谱关
- {
- rmReport1.FindObject("Memo44").Prop["Visible"] = true;
- rmReport1.FindObject("Picture46").Prop["Visible"] = true;
- rmReport1.FindObject("Picture69").Prop["Visible"] = false;
- rmReport1.FindObject("Picture70").Prop["Visible"] = false;
- //最原始的数据
- rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
- rmReport1.FindObject("Picture46").Prop["Left"] = 0.5;//原图像
- rmReport1.FindObject("Picture69").Prop["Left"] = 2.9;//放大图
- rmReport1.FindObject("Picture70").Prop["Left"] = 5.3;//能谱
- rmReport1.FindObject("Picture70").Prop["Width"] = 13;//能谱长度
- }
- else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx != true)//原图开,放大图开,能谱关
- {
- rmReport1.FindObject("Memo44").Prop["Visible"] = true;
- rmReport1.FindObject("Picture46").Prop["Visible"] = true;
- rmReport1.FindObject("Picture69").Prop["Visible"] = true;
- rmReport1.FindObject("Picture70").Prop["Visible"] = false;
- rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
- rmReport1.FindObject("Picture46").Prop["Left"] = 0.5;//原图像
- rmReport1.FindObject("Picture69").Prop["Left"] = 2.9;//放大图
- rmReport1.FindObject("Picture70").Prop["Left"] = 5.3;//能谱
- rmReport1.FindObject("Picture70").Prop["Width"] = 13;//能谱长度
- }
- else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx == true)//原图开,放大图开,能谱开
- {
- rmReport1.FindObject("Memo44").Prop["Visible"] = true;
- rmReport1.FindObject("Picture46").Prop["Visible"] = true;
- rmReport1.FindObject("Picture69").Prop["Visible"] = true;
- rmReport1.FindObject("Picture70").Prop["Visible"] = true;
- rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
- rmReport1.FindObject("Picture46").Prop["Left"] = 0.5;//原图像
- rmReport1.FindObject("Picture69").Prop["Left"] = 2.9;//放大图
- rmReport1.FindObject("Picture70").Prop["Left"] = 5.3;//能谱
- rmReport1.FindObject("Picture70").Prop["Width"] = 13;//能谱长度
- }
- else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == false && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx == true)//原图开,放大图关,能谱开
- {
- rmReport1.FindObject("Memo44").Prop["Visible"] = true;
- rmReport1.FindObject("Picture46").Prop["Visible"] = true;
- rmReport1.FindObject("Picture69").Prop["Visible"] = false;
- rmReport1.FindObject("Picture70").Prop["Visible"] = true;
- rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
- rmReport1.FindObject("Picture46").Prop["Left"] = 0.5;//原图像
- rmReport1.FindObject("Picture70").Prop["Left"] = 2.9;
- rmReport1.FindObject("Picture70").Prop["Width"] = 15.4;
- }
- else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx == true)//原图关,放大图开,能谱开
- {
- rmReport1.FindObject("Memo44").Prop["Visible"] = false;
- rmReport1.FindObject("Picture46").Prop["Visible"] = false;
- rmReport1.FindObject("Picture69").Prop["Visible"] = true;
- rmReport1.FindObject("Picture70").Prop["Visible"] = true;
- rmReport1.FindObject("Picture69").Prop["Left"] = 0.5;
- rmReport1.FindObject("Picture70").Prop["Left"] = 2.9;
- rmReport1.FindObject("Picture70").Prop["Width"] = 15.4;
- }
- else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx == true)//原图关,放大图关,能谱开
- {
- rmReport1.FindObject("Memo44").Prop["Visible"] = false;
- rmReport1.FindObject("Picture46").Prop["Visible"] = false;
- rmReport1.FindObject("Picture69").Prop["Visible"] = false;
- rmReport1.FindObject("Picture70").Prop["Visible"] = true;
- rmReport1.FindObject("Picture70").Prop["Left"] = 0.5;
- rmReport1.FindObject("Picture70").Prop["Width"] = 17.8;
- }
- else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx != true) //原图关,放大图关,能谱关
- {
- rmReport1.FindObject("Memo44").Prop["Visible"] = false;
- rmReport1.FindObject("Picture46").Prop["Visible"] = false;
- rmReport1.FindObject("Picture69").Prop["Visible"] = false;
- rmReport1.FindObject("Picture70").Prop["Visible"] = false;
- //最原始的数据
- rmReport1.FindObject("Memo44").Prop["Left"] = 0.5;//原图像框
- rmReport1.FindObject("Picture46").Prop["Left"] = 1.4;//原图像
- rmReport1.FindObject("Picture69").Prop["Left"] = 2.9;//放大图
- rmReport1.FindObject("Picture70").Prop["Left"] = 5.3;//能谱
- rmReport1.FindObject("Picture70").Prop["Width"] = 13;//能谱长度
- }
- else if (m_mbszclass.M_KLLBXX.b_ck_kllb_ystx != true && m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx == true && m_mbszclass.M_KLLBXX.b_ck_kllb_npxx != true)//原图关,放大图开,能谱关
- {
- rmReport1.FindObject("Memo44").Prop["Visible"] = false;
- rmReport1.FindObject("Picture46").Prop["Visible"] = false;
- rmReport1.FindObject("Picture69").Prop["Visible"] = true;
- rmReport1.FindObject("Picture70").Prop["Visible"] = false;
- rmReport1.FindObject("Picture69").Prop["Left"] = 0.5;//放大图
- }
- }
- else
- {
- //rmReport1.FindObject("GroupHeader12").Prop["Visible"] = false;
- //rmReport1.FindObject("MasterData49").Prop["Visible"] = false;
- //rmReport1.DeletePage(2);
- }
- #endregion
- rmReport1.ShowReport();
- //修复reportmachine的bug,将路径重新定位到当前路径
- Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
- rmReport1.Dispose();
- //回收内存
- list_dt.Clear();
- }
- /// <summary>
- /// 调用预览查看报表,显示颗粒列表
- /// </summary>
- private void ReportTemplatePrint_PartilceListReport()
- {
- DataTable ls_dt_largest = list_dt.Where(aa => aa.TableName.Contains("Largest3")).ToList()[0];
- rmReport1.LoadFromFile("Resources\\ReportTemplate\\Largest.rmf");
- rmReport1.AddDataSet(ls_dt_largest, "Largest3");
- rmReport1.PreviewOptions.BtnDesignVisible = true;
- rmReport1.ShowReport();
- //修复reportmachine的bug,将路径重新定位到当前路径
- Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
- rmReport1.Dispose();
- }
- #endregion
- #region 读取XML模板配置文件
- ///<summary>
- ///读取xml配置文件
- /// </summary>
- private void LoadControlsToXml()
- {
- string path = string.Empty;
- OpenFileDialog Load = new OpenFileDialog();
- Load.Filter = "PXML文件|*.xml";
- Load.InitialDirectory = @System.Windows.Forms.Application.StartupPath + "\\Config\\ProData";
- if (Load.ShowDialog() == DialogResult.OK)
- path = Load.FileName;//赋值目录
- if (path != string.Empty)
- {
- //tb_mblj.Text = path;
- m_mbszclass.M_DZ.route = path;
- XmlConfigUtil xmlutil = new XmlConfigUtil(path);
- //首页
- m_mbszclass.M_SY.str_tb_ZBT = xmlutil.Read("M_SY", "str_tb_ZBT");
- m_mbszclass.M_SY.str_tb_FBT = xmlutil.Read("M_SY", "str_tb_FBT");
- m_mbszclass.M_SY.str_tb_YPBH = xmlutil.Read("M_SY", "str_tb_YPBH");
- m_mbszclass.M_SY.str_tb_CKBZ = xmlutil.Read("M_SY", "str_tb_CKBZ");
- m_mbszclass.M_SY.b_ck_ypsm = Convert.ToBoolean(xmlutil.Read("M_SY", "b_ck_ypsm"));
- m_mbszclass.M_SY.b_ck_jggk = Convert.ToBoolean(xmlutil.Read("M_SY", "b_ck_jggk"));
- //页眉页脚
- m_mbszclass.M_YMYJ.str_tb_ymwb = xmlutil.Read("M_YMYJ", "str_tb_ymwb");
- m_mbszclass.M_YMYJ.str_tb_KHH = xmlutil.Read("M_YMYJ", "str_tb_KHH");
- m_mbszclass.M_YMYJ.b_ck_ym = Convert.ToBoolean(xmlutil.Read("M_YMYJ", "b_ck_ym"));
- m_mbszclass.M_YMYJ.str_tb_yjwb = xmlutil.Read("M_YMYJ", "str_tb_yjwb");
- MessageBox.Show(m_mbszclass.M_YMYJ.str_tb_ymwb+"!!"+m_mbszclass.M_YMYJ.str_tb_KHH+"!!"+m_mbszclass.M_YMYJ.str_tb_yjwb);
- //颗粒分析结果
- m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk = Convert.ToBoolean(xmlutil.Read("M_KLFXJG", "b_ck_klcc_xsmk"));//是否显示模块
- m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_klcc_jsfs"));//计算方式
- m_mbszclass.M_KLFXJG.index_cb_klcc_ljb = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_klcc_ljb"));//粒级表
- m_mbszclass.M_KLFXJG.index_cb_klcc_klfw = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_klcc_klfw"));//颗粒范围
- m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk = Convert.ToBoolean(xmlutil.Read("M_KLFXJG", "b_cb_jzwfl_xsmk"));//是否显示该模块
- m_mbszclass.M_KLFXJG.index_cb_jzwfl_xstx = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_xstx"));//选择图像
- m_mbszclass.M_KLFXJG.index_cb_jzwfl_jsfs = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_jsfs"));//计算方式
- m_mbszclass.M_KLFXJG.index_cb_jzwfl_ljb = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_ljb"));//粒级表
- m_mbszclass.M_KLFXJG.index_cb_jzwfl_klfw = Convert.ToInt32(xmlutil.Read("M_KLFXJG", "index_cb_jzwfl_klfw"));//颗粒范围
- //元素分析结果
- m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk = Convert.ToBoolean(xmlutil.Read("M_YSFXJG", "b_ck_ysfx_xsmk")); //是否显示模块
- m_mbszclass.M_YSFXJG.index_cb_yxfx_jsfs = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yxfx_jsfs")); //计算方式
- m_mbszclass.M_YSFXJG.index_cb_ysfx_klfw = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_ysfx_klfw")); //颗粒范围
- m_mbszclass.M_YSFXJG.str_tb_ysfx_xsys = xmlutil.Read("M_YSFXJG", "str_tb_ysfx_xsys"); //显示元素
- m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Clear();
- for (int i = 0; i < 100; i++) //取得所有元素列表
- {
- string str = xmlutil.Read("M_YSFXJG", "list_str_tb_ysfx_xsys", "YS" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Add(str);
- }
- }
- m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk = Convert.ToBoolean(xmlutil.Read("M_YSFXJG", "b_ck_yscf_xsmk")); //是否显示模块
- m_mbszclass.M_YSFXJG.index_cb_yscf_xstx = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yscf_xstx")); //显示图形
- m_mbszclass.M_YSFXJG.index_cb_yscf_jsfs = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yscf_jsfs")); //计算方式
- m_mbszclass.M_YSFXJG.index_cb_yscf_klfw = Convert.ToInt32(xmlutil.Read("M_YSFXJG", "index_cb_yscf_klfw")); //颗粒范围
- m_mbszclass.M_YSFXJG.str_tb_yscf_ysxx = xmlutil.Read("M_YSFXJG", "str_tb_yscf_ysxx"); //显示元素
- m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Clear();
- for (int i = 0; i < 100; i++) //取得所有元素列表
- {
- string str = xmlutil.Read("M_YSFXJG", "list_str_tb_yscf_ysxx", "YS" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Add(str);
- }
- }
- //三元相图
- m_mbszclass.M_SYXT.b_ck_syxt_xsmk = Convert.ToBoolean(xmlutil.Read("M_SYXT", "b_ck_syxt_xsmk")); //是否显示模块
- m_mbszclass.M_SYXT.index_cb_syxt_jsfs = Convert.ToInt32(xmlutil.Read("M_SYXT", "index_cb_syxt_jsfs")); //计算方式
- m_mbszclass.M_SYXT.index_cb_syxt_klfw = Convert.ToInt32(xmlutil.Read("M_SYXT", "index_cb_syxt_klfw")); //颗粒范围
- m_mbszclass.M_SYXT.str_cb_syxt_mhxssl = xmlutil.Read("M_SYXT", "str_cb_syxt_mhxssl"); //每行显示数量
- m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Clear();
- for (int i = 0; i < 100; i++) //取得所有模板列表
- {
- string str = xmlutil.Read("M_SYXT", "list_lbv_syxt_mblb", "MB" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Add(str);
- }
- }
- m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Clear();
- for (int i = 0; i < 100; i++) //取得所有模板列表 索引
- {
- string str = xmlutil.Read("M_SYXT", "list_lbv_syxt_mblb_index", "MBIndex" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Add(Convert.ToInt32(str));
- }
- }
- //颗粒列表信息
- m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_xsmk")); //是否显示模块
- m_mbszclass.M_KLLBXX.index_cb_kllb_jsfs = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_jsfs")); //计算方式
- m_mbszclass.M_KLLBXX.index_cb_kllb_klfw = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "index_cb_kllb_klfw")); //颗粒范围
- m_mbszclass.M_KLLBXX.int_tb_kllb_ylsx = Convert.ToInt32(xmlutil.Read("M_KLLBXX", "int_tb_kllb_ylsx")); //数量上限
- m_mbszclass.M_KLLBXX.str_tb_kllb_sxys = xmlutil.Read("M_KLLBXX", "str_tb_kllb_sxys"); //显示元素
- m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Clear();
- for (int i = 0; i < 100; i++) //取得所有元素列表
- {
- string str = xmlutil.Read("M_KLLBXX", "list_str_tb_lllb_sxys", "YS" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Add(str);
- }
- }
- m_mbszclass.M_KLLBXX.b_ck_kllb_ystx = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_ystx")); //原始图像
- m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_fdtx")); //放大图像
- m_mbszclass.M_KLLBXX.b_ck_kllb_npxx = Convert.ToBoolean(xmlutil.Read("M_KLLBXX", "b_ck_kllb_npxx")); //能谱图像
- }
- }
- ///<summary>
- ///从配置文件中读取报告模板信息
- /// </summary>
- private void LoadRouteclass()
- {
- string strPath2 = "";
- if (m_mbszclass.M_DZ.route == null)
- {
- //strPath2 = strPath;
- m_mbszclass.M_DZ.route = m_arg2;
- }
- else
- if (m_mbszclass.M_DZ.route == "")
- {
- //strPath2 = strPath;
- m_mbszclass.M_DZ.route = m_arg2;
- }
- else
- {
- strPath2 = m_mbszclass.M_DZ.route;
- }
- xmlutil2 = new XmlConfigUtil(strPath2);
- //首页
- m_mbszclass.M_SY.str_tb_ZBT = xmlutil2.Read("M_SY", "str_tb_ZBT");
- m_mbszclass.M_SY.str_tb_FBT = xmlutil2.Read("M_SY", "str_tb_FBT");
- m_mbszclass.M_SY.str_tb_YPBH = xmlutil2.Read("M_SY", "str_tb_YPBH");
- m_mbszclass.M_SY.str_tb_CKBZ = xmlutil2.Read("M_SY", "str_tb_CKBZ");
- m_mbszclass.M_SY.b_ck_ypsm = Convert.ToBoolean(xmlutil2.Read("M_SY", "b_ck_ypsm"));
- m_mbszclass.M_SY.b_ck_jggk = Convert.ToBoolean(xmlutil2.Read("M_SY", "b_ck_jggk"));
- //页眉页脚
- m_mbszclass.M_YMYJ.str_tb_ymwb = xmlutil2.Read("M_YMYJ", "str_tb_ymwb");
- m_mbszclass.M_YMYJ.str_tb_KHH = xmlutil2.Read("M_YMYJ", "str_tb_KHH");
- m_mbszclass.M_YMYJ.b_ck_ym = Convert.ToBoolean(xmlutil2.Read("M_YMYJ", "b_ck_ym"));
- m_mbszclass.M_YMYJ.str_tb_yjwb = xmlutil2.Read("M_YMYJ", "str_tb_yjwb");
- //颗粒分析结果
- m_mbszclass.M_KLFXJG.b_ck_klcc_xsmk = Convert.ToBoolean(xmlutil2.Read("M_KLFXJG", "b_ck_klcc_xsmk"));//是否显示模块
- m_mbszclass.M_KLFXJG.index_cb_klcc_jsfs = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_klcc_jsfs"));//计算方式
- m_mbszclass.M_KLFXJG.index_cb_klcc_ljb = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_klcc_ljb"));//粒级表
- m_mbszclass.M_KLFXJG.index_cb_klcc_klfw = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_klcc_klfw"));//颗粒范围
- m_mbszclass.M_KLFXJG.b_cb_jzwfl_xsmk = Convert.ToBoolean(xmlutil2.Read("M_KLFXJG", "b_cb_jzwfl_xsmk"));//是否显示该模块
- m_mbszclass.M_KLFXJG.index_cb_jzwfl_xstx = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_jzwfl_xstx"));//选择图像
- m_mbszclass.M_KLFXJG.index_cb_jzwfl_jsfs = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_jzwfl_jsfs"));//计算方式
- m_mbszclass.M_KLFXJG.index_cb_jzwfl_ljb = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_jzwfl_ljb"));//粒级表
- m_mbszclass.M_KLFXJG.index_cb_jzwfl_klfw = Convert.ToInt32(xmlutil2.Read("M_KLFXJG", "index_cb_jzwfl_klfw"));//颗粒范围
- //元素分析结果
- m_mbszclass.M_YSFXJG.b_ck_ysfx_xsmk = Convert.ToBoolean(xmlutil2.Read("M_YSFXJG", "b_ck_ysfx_xsmk")); //是否显示模块
- m_mbszclass.M_YSFXJG.index_cb_yxfx_jsfs = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_yxfx_jsfs")); //计算方式
- m_mbszclass.M_YSFXJG.index_cb_ysfx_klfw = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_ysfx_klfw")); //颗粒范围
- m_mbszclass.M_YSFXJG.str_tb_ysfx_xsys = xmlutil2.Read("M_YSFXJG", "str_tb_ysfx_xsys"); //显示元素
- m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Clear();
- for (int i = 0; i < 100; i++) //取得所有元素列表
- {
- string str = xmlutil2.Read("M_YSFXJG", "list_str_tb_ysfx_xsys", "YS" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_YSFXJG.list_str_tb_ysfx_xsys.Add(str);
- }
- }
- m_mbszclass.M_YSFXJG.b_ck_yscf_xsmk = Convert.ToBoolean(xmlutil2.Read("M_YSFXJG", "b_ck_yscf_xsmk")); //是否显示模块
- m_mbszclass.M_YSFXJG.index_cb_yscf_xstx = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_yscf_xstx")); //显示图形
- m_mbszclass.M_YSFXJG.index_cb_yscf_jsfs = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_yscf_jsfs")); //计算方式
- m_mbszclass.M_YSFXJG.index_cb_yscf_klfw = Convert.ToInt32(xmlutil2.Read("M_YSFXJG", "index_cb_yscf_klfw")); //颗粒范围
- m_mbszclass.M_YSFXJG.str_tb_yscf_ysxx = xmlutil2.Read("M_YSFXJG", "str_tb_yscf_ysxx"); //显示元素
- m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Clear();
- for (int i = 0; i < 100; i++) //取得所有元素列表
- {
- string str = xmlutil2.Read("M_YSFXJG", "list_str_tb_yscf_ysxx", "YS" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_YSFXJG.list_str_tb_yscf_ysxx.Add(str);
- }
- }
- //三元相图
- m_mbszclass.M_SYXT.b_ck_syxt_xsmk = Convert.ToBoolean(xmlutil2.Read("M_SYXT", "b_ck_syxt_xsmk")); //是否显示模块
- m_mbszclass.M_SYXT.index_cb_syxt_jsfs = Convert.ToInt32(xmlutil2.Read("M_SYXT", "index_cb_syxt_jsfs")); //计算方式
- m_mbszclass.M_SYXT.index_cb_syxt_klfw = Convert.ToInt32(xmlutil2.Read("M_SYXT", "index_cb_syxt_klfw")); //颗粒范围
- m_mbszclass.M_SYXT.str_cb_syxt_mhxssl = xmlutil2.Read("M_SYXT", "str_cb_syxt_mhxssl"); //每行显示数量
- m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Clear();
- for (int i = 0; i < 100; i++) //取得所有模板列表
- {
- string str = xmlutil2.Read("M_SYXT", "list_lbv_syxt_mblb", "MB" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_SYXT.list_lbv_syxt_mblb.Add(str);
- }
- }
- m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Clear();
- for (int i = 0; i < 100; i++) //取得所有模板列表 索引
- {
- string str = xmlutil2.Read("M_SYXT", "list_lbv_syxt_mblb_index", "MBIndex" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_SYXT.list_lbv_syxt_mblb_index.Add(Convert.ToInt32(str));
- }
- }
- //颗粒列表信息
- m_mbszclass.M_KLLBXX.b_ck_kllb_xsmk = Convert.ToBoolean(xmlutil2.Read("M_KLLBXX", "b_ck_kllb_xsmk")); //是否显示模块
- m_mbszclass.M_KLLBXX.index_cb_kllb_jsfs = Convert.ToInt32(xmlutil2.Read("M_KLLBXX", "index_cb_kllb_jsfs")); //计算方式
- m_mbszclass.M_KLLBXX.index_cb_kllb_klfw = Convert.ToInt32(xmlutil2.Read("M_KLLBXX", "index_cb_kllb_klfw")); //颗粒范围
- m_mbszclass.M_KLLBXX.int_tb_kllb_ylsx = Convert.ToInt32(xmlutil2.Read("M_KLLBXX", "int_tb_kllb_ylsx")); //数量上限
- m_mbszclass.M_KLLBXX.str_tb_kllb_sxys = xmlutil2.Read("M_KLLBXX", "str_tb_kllb_sxys"); //显示元素
- m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Clear();
- for (int i = 0; i < 100; i++) //取得所有元素列表
- {
- string str = xmlutil2.Read("M_KLLBXX", "list_str_tb_lllb_sxys", "YS" + i.ToString());
- if (str == null)
- {
- break;
- }
- else
- {
- m_mbszclass.M_KLLBXX.list_str_tb_lllb_sxys.Add(str);
- }
- }
- m_mbszclass.M_KLLBXX.b_ck_kllb_ystx = Convert.ToBoolean(xmlutil2.Read("M_KLLBXX", "b_ck_kllb_ystx")); //原始图像
- m_mbszclass.M_KLLBXX.b_ck_kllb_fdtx = Convert.ToBoolean(xmlutil2.Read("M_KLLBXX", "b_ck_kllb_fdtx")); //放大图像
- m_mbszclass.M_KLLBXX.b_ck_kllb_npxx = Convert.ToBoolean(xmlutil2.Read("M_KLLBXX", "b_ck_kllb_npxx")); //能谱图像
- }
- /// <summary>
- /// 从配置文件中读取报告模板路径
- /// </summary>
- private void LoadMBSZClass()
- {
- //文件路径
- m_mbszclass.M_DZ.route = xmlutil.Read("M_address", "Path");
- if (m_mbszclass.M_DZ.route == "")
- {
- //tb_mblj.Text = strPath;
- m_mbszclass.M_DZ.route = m_arg2;
- }
- else
- if (File.Exists(m_mbszclass.M_DZ.route))
- {
- //tb_mblj.Text = m_mbszclass.M_DZ.route;
- }
- else
- {
- //tb_mblj.Text = strPath;
- m_mbszclass.M_DZ.route = m_arg2;
- }
- }
- #endregion
- #region 读取DB数据库文件
- /// <summary>
- /// 读取DB数据库文件,主报表部份
- /// </summary>
- private void LoadReportTemplateDBFile()
- {
- string strpath = m_arg1;//db数据库路径
- SqLiteHelper sh = new SqLiteHelper("data source='" + strpath + "'");
- list_dt.Clear();
- DataTable ls_ResultGrid = sh.ExecuteQuery("select * from ResultGrid");
- ls_ResultGrid.TableName = "ResultGrid";
- list_dt.Add(ls_ResultGrid);
- string strmix = m_arg5.Substring(0, m_arg5.IndexOf("-"));
- string strmax = m_arg5.Substring(m_arg5.IndexOf("-") + 1, m_arg5.Length - m_arg5.IndexOf("-") - 1);
- DataTable ls_Largest_frame = sh.ExecuteQuery("select * from Largest_frame where cast(fieldid as int) > " + strmix + " and cast(fieldid as int) < " + strmax + " ");
- ls_Largest_frame.TableName = "Largest_frame";
- list_dt.Add(ls_Largest_frame);
- DataTable ls_Largest20 = sh.ExecuteQuery("select * from Largest20");
- ls_Largest20.TableName = "Largest20";
- list_dt.Add(ls_Largest20);
- //DataTable ls_Largest2new = sh.ExecuteQuery("select * from Largest2new");
- //ls_Largest2new.TableName = "Largest2new";
- //list_dt.Add(ls_Largest2new);
- DataTable ls_field_dt = sh.ExecuteQuery("select * from field_dt where cast(fieldid as int) > " + strmix + " and cast(fieldid as int) < " + strmax + " ");
- ls_field_dt.TableName = "field_dt";
- list_dt.Add(ls_field_dt);
- DataTable ls_ElementName = sh.ExecuteQuery("select * from ElementName");
- ls_ElementName.TableName = "ElementName";
- list_dt.Add(ls_ElementName);
- DataTable ls_ElementValue = sh.ExecuteQuery("select * from ElementValue");
- ls_ElementValue.TableName = "ElementValue";
- list_dt.Add(ls_ElementValue);
- DataTable ls_PartSize = sh.ExecuteQuery("select * from PartSize");
- ls_PartSize.TableName = "PartSize";
- list_dt.Add(ls_PartSize);
- DataTable ls_Particel = sh.ExecuteQuery("select * from Particel");
- ls_Particel.TableName = "Particel";
- list_dt.Add(ls_Particel);
- DataTable ls_PicKL = sh.ExecuteQuery("select * from PicKL");
- ls_PicKL.TableName = "PicKL";
- list_dt.Add(ls_PicKL);
- DataTable ls_PicYS = sh.ExecuteQuery("select * from PicYS");
- ls_PicYS.TableName = "PicYS";
- list_dt.Add(ls_PicYS);
- DataTable ls_PicSYXT2T = sh.ExecuteQuery("select * from PicSYXT2T");
- ls_PicSYXT2T.TableName = "PicSYXT2T";
- list_dt.Add(ls_PicSYXT2T);
- DataTable ls_PicSYXT3T = sh.ExecuteQuery("select * from PicSYXT3T");
- ls_PicSYXT3T.TableName = "PicSYXT3T";
- list_dt.Add(ls_PicSYXT3T);
- }
- /// <summary>
- /// 读取DB数据库文件,颗粒列表部份
- /// </summary>
- private void LoadReportTemplateDBFile_ParticleList()
- {
- string strpath = m_arg1;//db数据库路径
- SqLiteHelper sh = new SqLiteHelper("data source='" + strpath + "'");
- list_dt.Clear();
- string strmix = m_arg4.Substring(0, m_arg4.IndexOf("-"));
- string strmax = m_arg4.Substring(m_arg4.IndexOf("-") + 1, m_arg4.Length - m_arg4.IndexOf("-") - 1);
- DataTable ls_Largest3 = sh.ExecuteQuery("select * from largest3 where cast(pid as int) > " + strmix + " and cast(pid as int) < " + strmax + " ");
- ls_Largest3.TableName = "Largest3";
- list_dt.Add(ls_Largest3);
- }
- #endregion
- #region 回收内存
- /// <summary>
- /// 回收内存
- /// </summary>
- public void FlushMemory()
- {
- //回收内存
- MemoryManagement mm = new MemoryManagement();
- mm.FlushMemory();
- }
- public class MemoryManagement
- {
- [System.Runtime.InteropServices.DllImport("kernel32.dll")]
- public static extern bool SetProcessWorkingSetSize(IntPtr proc, int min, int max);
- public void FlushMemory()
- {
- GC.Collect();
- GC.WaitForPendingFinalizers();
- if (Environment.OSVersion.Platform == PlatformID.Win32NT)
- { SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1); }
- }
- }
- [System.Runtime.InteropServices.DllImport("coredll.dll")]
- [return: System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)]
- public static extern bool DeleteObject(IntPtr hgdiobj);
- private void timer1_Tick(object sender, EventArgs e)
- {
- FlushMemory();
- }
- #endregion
- }
- #region 模板设置类
- /// <summary>
- /// 模板设置类
- /// </summary>
- public class MBSZClass
- {
- //#region 文件路径
- public DZ M_DZ { get; set; }
- //#endregion
- #region 属性
- /// <summary>
- /// 首页
- /// </summary>
- public SY M_SY { get; set; }
- /// <summary>
- /// 页眉页脚
- /// </summary>
- public YMYJ M_YMYJ { get; set; }
- /// <summary>
- /// 颗粒分析结果
- /// </summary>
- public KLFXJG M_KLFXJG { get; set; }
- /// <summary>
- /// 元素分析结果
- /// </summary>
- public YSFXJG M_YSFXJG { get; set; }
- /// <summary>
- /// 三元相图
- /// </summary>
- public SYXT M_SYXT { get; set; }
- /// <summary>
- /// 颗粒列表信息
- /// </summary>
- public KLLBXX M_KLLBXX { get; set; }
- #endregion
- #region 构造函数
- public MBSZClass()
- {
- M_SY = new SY();
- M_YMYJ = new YMYJ();
- M_KLFXJG = new KLFXJG();
- M_YSFXJG = new YSFXJG();
- M_YSFXJG.list_str_tb_yscf_ysxx = new List<string>();
- M_YSFXJG.list_str_tb_ysfx_xsys = new List<string>();
- M_SYXT = new SYXT();
- M_SYXT.list_lbv_syxt_mblb = new List<string>();
- M_SYXT.list_lbv_syxt_mblb_index = new List<int>();
- M_KLLBXX = new KLLBXX();
- M_KLLBXX.list_str_tb_lllb_sxys = new List<string>();
- M_DZ = new DZ();
- }
- #endregion
- public class DZ
- {
- public string route { get; set; }
- }
- #region 首页部份
- public class SY
- {
- /// <summary>
- /// 主标题
- /// </summary>
- public string str_tb_ZBT { get; set; }
- /// <summary>
- /// 副标题
- /// </summary>
- public string str_tb_FBT { get; set; }
- /// <summary>
- /// 样品编号
- /// </summary>
- public string str_tb_YPBH { get; set; }
- /// <summary>
- /// 参考标准
- /// </summary>
- public string str_tb_CKBZ { get; set; }
- /// <summary>
- /// 是否显示样品说明
- /// </summary>
- public bool b_ck_ypsm { get; set; }
- /// <summary>
- /// 是否显示结果概况
- /// </summary>
- public bool b_ck_jggk { get; set; }
- }
- #endregion
- #region 页眉页脚部份
- public class YMYJ
- {
- /// <summary>
- /// 页眉文本
- /// </summary>
- public string str_tb_ymwb { get; set; }
- /// <summary>
- /// 客户号
- /// </summary>
- public string str_tb_KHH { get; set; }
- /// <summary>
- /// 是否显示页码
- /// </summary>
- public bool b_ck_ym { get; set; }
- /// <summary>
- /// 页脚文本
- /// </summary>
- public string str_tb_yjwb { get; set; }
- }
- #endregion
- #region 颗粒分析结果部份
- public class KLFXJG
- {
- /// <summary>
- /// 是否显示颗粒尺寸分析结果表
- /// </summary>
- public bool b_ck_klcc_xsmk { get; set; }
- /// <summary>
- ///颗粒尺寸分析结果表 计算方式文本
- /// </summary>
- public string str_cb_klcc_jsfs { get; set; }
- /// <summary>
- ///颗粒尺寸分析结果表 计算方式索引
- /// </summary>
- public int index_cb_klcc_jsfs { get; set; }
- /// <summary>
- ///颗粒尺寸分析结果表 粒级表文本
- /// </summary>
- public string str_cb_klcc_ljb { get; set; }
- /// <summary>
- ///颗粒尺寸分析结果表 粒级表索引
- /// </summary>
- public int index_cb_klcc_ljb { get; set; }
- /// <summary>
- ///颗粒尺寸分析结果表 颗粒选择范围文本
- /// </summary>
- public string str_cb_klcc_klfw { get; set; }
- /// <summary>
- ///颗粒尺寸分析结果表 颗粒选择范围索引
- /// </summary>
- public int index_cb_klcc_klfw { get; set; }
- /// <summary>
- /// 夹杂物分类图 是否显示该模块
- /// </summary>
- public bool b_cb_jzwfl_xsmk { get; set; }
- /// <summary>
- ///夹杂物分类图 显示图形选择文本
- /// </summary>
- public string str_cb_jzwfl_xstx { get; set; }
- /// <summary>
- ///夹杂物分类图 显示图形 选择索引
- /// </summary>
- public int index_cb_jzwfl_xstx { get; set; }
- /// <summary>
- ///夹杂物分类图 计算方式 选择文本
- /// </summary>
- public string str_cb_jzwfl_jsfs { get; set; }
- /// <summary>
- ///夹杂物分类图 计算方式 选择索引
- /// </summary>
- public int index_cb_jzwfl_jsfs { get; set; }
- /// <summary>
- ///夹杂物分类图 粒级表 选择文本
- /// </summary>
- public string str_cb_jzwfl_ljb { get; set; }
- /// <summary>
- ///夹杂物分类图 粒级表 选择索引
- /// </summary>
- public int index_cb_jzwfl_ljb { get; set; }
- /// <summary>
- ///夹杂物分类图 颗粒范围 选择文本
- /// </summary>
- public string str_cb_jzwfl_klfw { get; set; }
- /// <summary>
- ///夹杂物分类图 颗粒范围 选择索引
- /// </summary>
- public int index_cb_jzwfl_klfw { get; set; }
- }
- #endregion
- #region 元素分析结果部份
- public class YSFXJG
- {
- /// <summary>
- /// 元素分析表 是否显示该模块
- /// </summary>
- public bool b_ck_ysfx_xsmk { get; set; }
- /// <summary>
- /// 元素分析表 计算方式 选择文本
- /// </summary>
- public string str_cb_yxfx_jsfs { get; set; }
- /// <summary>
- /// 元素分析表 计算方式 选择索引
- /// </summary>
- public int index_cb_yxfx_jsfs { get; set; }
- /// <summary>
- /// 元素分析表 颗粒范围 选择文本
- /// </summary>
- public string str_cb_ysfx_klfw { get; set; }
- /// <summary>
- /// 元素分析表 颗粒范围 选择索引
- /// </summary>
- public int index_cb_ysfx_klfw { get; set; }
- /// <summary>
- /// 元素分析表 显示元素显示文本
- /// </summary>
- public string str_tb_ysfx_xsys { get; set; }
- /// <summary>
- /// 元素分析表 显示元素拆分元素列表
- /// </summary>
- public List<string> list_str_tb_ysfx_xsys { get; set; }
- /// <summary>
- /// 元素成份图 是否显示该模块
- /// </summary>
- public bool b_ck_yscf_xsmk { get; set; }
- /// <summary>
- /// 元素成份图 显示图形 文本
- /// </summary>
- public string str_cb_yscf_xstx { get; set; }
- /// <summary>
- /// 元素成份图 显示图形 索引
- /// </summary>
- public int index_cb_yscf_xstx { get; set; }
- /// <summary>
- /// 元素成份图 计算方式 文本
- /// </summary>
- public string str_cb_yscf_jsfs { get; set; }
- /// <summary>
- /// 元素成份图 计算方式 索引
- /// </summary>
- public int index_cb_yscf_jsfs { get; set; }
- /// <summary>
- /// 元素成份图 颗粒范围 文本
- /// </summary>
- public string str_cb_yscf_klfw { get; set; }
- /// <summary>
- /// 元素成份图 颗粒范围 索引
- /// </summary>
- public int index_cb_yscf_klfw { get; set; }
- /// <summary>
- /// 元素成份图 元素信息
- /// </summary>
- public string str_tb_yscf_ysxx { get; set; }
- /// <summary>
- /// 元素成份图 元素信息列表拆分字符列表
- /// </summary>
- public List<string> list_str_tb_yscf_ysxx { get; set; }
- }
- #endregion
- #region 三元相图部份
- public class SYXT
- {
- /// <summary>
- /// 三元相图 是否显示该模块
- /// </summary>
- public bool b_ck_syxt_xsmk { get; set; }
- /// <summary>
- /// 计算方式 文本
- /// </summary>
- public string str_cb_syxt_jsfs { get; set; }
- /// <summary>
- /// 计算方式 索引
- /// </summary>
- public int index_cb_syxt_jsfs { get; set; }
- /// <summary>
- /// 颗粒范围 文本
- /// </summary>
- public string str_cb_syxt_klfw { get; set; }
- /// <summary>
- /// 颗粒范围 索引
- /// </summary>
- public int index_cb_syxt_klfw { get; set; }
- /// <summary>
- /// 粒级表信息 文本
- /// </summary>
- public string str_cb_syxt_ljb { get; set; }
- /// <summary>
- /// 粒级表信息 索引
- /// </summary>
- public int index_cb_syxt_ljb { get; set; }
- /// <summary>
- /// 每行显示数量 文本
- /// </summary>
- public string str_cb_syxt_mhxssl { get; set; }
- /// <summary>
- /// 每行显示数量 索引
- /// </summary>
- public int index_cb_syxt_mhxssl { get; set; }
- /// <summary>
- /// 三元相图模板集合列表
- /// </summary>
- public List<string> list_lbv_syxt_mblb { get; set; }
- /// <summary>
- /// 三元相图模板索引集合列表
- /// </summary>
- public List<int> list_lbv_syxt_mblb_index { get; set; }
- }
- #endregion
- #region 颗粒列表信息部份
- public class KLLBXX
- {
- /// <summary>
- /// 颗粒列表 是否显示该模块
- /// </summary>
- public bool b_ck_kllb_xsmk { get; set; }
- /// <summary>
- /// 颗粒列表 计算方式 文本
- /// </summary>
- public string str_cb_kllb_jsfs { get; set; }
- /// <summary>
- /// 颗粒列表 计算方式 索引
- /// </summary>
- public int index_cb_kllb_jsfs { get; set; }
- /// <summary>
- /// 颗粒列表 颗粒范围 文本
- /// </summary>
- public string str_cb_kllb_klfw { get; set; }
- /// <summary>
- /// 颗粒列表 颗粒范围 索引
- /// </summary>
- public int index_cb_kllb_klfw { get; set; }
- /// <summary>
- /// 颗粒列表 数量上限
- /// </summary>
- public int int_tb_kllb_ylsx { get; set; }
- /// <summary>
- /// 颗粒列表 显示元素
- /// </summary>
- public string str_tb_kllb_sxys { get; set; }
- /// <summary>
- /// 颗粒列表 显示元素拆分元素列表
- /// </summary>
- public List<string> list_str_tb_lllb_sxys { get; set; }
- /// <summary>
- /// 颗粒列表 是否显示原始图像
- /// </summary>
- public bool b_ck_kllb_ystx { get; set; }
- /// <summary>
- /// 颗粒列表 是否显示放大图像
- /// </summary>
- public bool b_ck_kllb_fdtx { get; set; }
- /// <summary>
- /// 颗粒列表 是否显示能谱信息
- /// </summary>
- public bool b_ck_kllb_npxx { get; set; }
- }
- #endregion
- }
- #endregion
- #region 保存ini结构类
- /// <summary>
- /// 内容部份包含结构类
- /// </summary>
- public class TemplateContent
- {
- private string mkm = ""; //模块名
- private int ix = 0; //位置x
- private int iy = 0; //位置y
- private string sjlx = ""; //数据类型
- private string ljb = ""; //粒级表
- private string ccjsfs = ""; //尺寸计算方式
- private string syxtmb = ""; //三元相图模板
- /// <summary>
- /// 模块名
- /// </summary>
- public string MKM
- {
- get { return mkm; }
- set { mkm = value; }
- }
- /// <summary>
- /// 坐标x
- /// </summary>
- public int IX
- {
- get { return ix; }
- set { ix = value; }
- }
- /// <summary>
- /// 坐标y
- /// </summary>
- public int IY
- {
- get { return iy; }
- set { iy = value; }
- }
- /// <summary>
- /// 数据类型,全部颗粒,选择颗粒
- /// </summary>
- public string SJLX
- {
- get { return sjlx; }
- set { sjlx = value; }
- }
- /// <summary>
- /// 所使用粒级表的名称
- /// </summary>
- public string LJB
- {
- get { return ljb; }
- set { ljb = value; }
- }
- /// <summary>
- /// 尺寸计算方式,直径,面积,费雷特直径,等效圆直径,最长直径,最短直径
- /// </summary>
- public string CCJSFS
- {
- get { return ccjsfs; }
- set { ccjsfs = value; }
- }
- /// <summary>
- /// 三元相图模板
- /// </summary>
- public string SYXTMB
- {
- get { return syxtmb; }
- set { syxtmb = value; }
- }
- }
- /// <summary>
- /// 整个模板结构包含类
- /// </summary>
- public class TemplateInfo
- {
- //页眉部份
- private string logopath = ""; //logo路径
- private string ym_xsmc = ""; //报告名称
- //页脚部份
- private string yj_xsmc = ""; //公司名称
- //内容部份
- public List<TemplateContent> mouble_s = new List<TemplateContent>();//内容类列表,包含多个
- /// <summary>
- /// LOGO的图像路径
- /// </summary>
- public string LOGOPath
- {
- get { return logopath; }
- set { logopath = value; }
- }
- /// <summary>
- /// 报告名称
- /// </summary>
- public string YM_XSMC
- {
- get { return ym_xsmc; }
- set { ym_xsmc = value; }
- }
- /// <summary>
- /// 报告名称字体
- /// </summary>
- public string YJ_XSMC
- {
- get { return yj_xsmc; }
- set { yj_xsmc = value; }
- }
- /// <summary>
- /// 模板内容页列表
- /// </summary>
- public List<TemplateContent> MOUBLE_S
- {
- get { return mouble_s; }
- set { mouble_s = value; }
- }
- }
- #endregion
- }
|