public DxDoc(DxReport rpt, string savepath, string temppath, string projtitle, string datafile, string netid) { _creator_netid = netid; _savepath = savepath; _temppath = temppath; _projtitle = projtitle; _datafile = datafile; //_filename = String.Format("Rpt_{0}_dp{1}_{2}.docx", rpt.rptnum, rpt.dataproj_pk, DateTime_Helper.DateTime_for_filename()); // filename; MakeDocx(rpt); //Document doc = new DevExpress.XtraRichEdit.API.Native.Document(); }
protected void MakeDocx(DxReport rpt) //, string path, string projtitle, string datafile) { log(" ====== MakeDocx (DxChartFactory factory) ======"); //const float imageLocationX = 40; //const float imageLocationY = 40; //int counter = 0; //string path = @"C:\_temp\factory\"; //string fileName_with_savepath = String.Format(@"{0}{1}", _savepath, _filename); using (DevExpress.XtraRichEdit.RichEditDocumentServer srv = new DevExpress.XtraRichEdit.RichEditDocumentServer()) { DevExpress.XtraRichEdit.API.Native.Document doc = srv.Document; doc.Unit = DevExpress.Office.DocumentUnit.Inch; doc.Sections[0].Page.PaperKind = System.Drawing.Printing.PaperKind.Letter; doc.Sections[0].Margins.Left = 0.5f; doc.Sections[0].Margins.Right = 0.5f; doc.Sections[0].Margins.Top = 0.5f; doc.Sections[0].Margins.Bottom = 0.5f; string subtitle = String.Format("Data Proj: {0}{1}Data file: {2}", _projtitle, Environment.NewLine, _datafile); DocxHeader(doc, rpt.rpttitle, subtitle); DocumentPosition pos = doc.Range.Start; //New Section if (rpt.rptdesc.Length > 2) { doc.AppendText("Report Description:"); doc.Paragraphs.Append(); doc.AppendText(rpt.rptdesc); doc.Paragraphs.Append(); } //foreach (DxChartOrder order in rpt.orders.chartorders) for (int c = 0; c < rpt.orders.chartorders.Count; c++) { DxChartOrder order = rpt.orders.chartorders[c]; doc.Paragraphs.Append(); bool hassameasPrev = rpt.orders.HasSameWkshtFilterVars(c, "chart", -1); bool hassameasNext = rpt.orders.HasSameWkshtFilterVars(c, "chart", 1); if (order.dt_selectedvars != null & hassameasPrev == false) { AppendDataTable(doc, order.dt_selectedvars); doc.Paragraphs.Append(); } Debug.WriteLine(order.InvoiceToString()); doc.AppendSingleLineText(order.InvoiceToString()); doc.Paragraphs.Append(); for (int b = 0; b < order.batches.Count; b++) { DxChartBatch batch = order.batches[b]; if (batch.charts.Count > 0) { doc.AppendSingleLineText(batch.batchtitle); doc.Paragraphs.Append(); AppendCharts(pos, batch, doc); doc.Paragraphs.Append(); } } if (hassameasNext == false) { doc.InsertSection(doc.Range.End); } } srv.SaveDocument(String.Format(@"{0}{1}", _savepath, rpt.RptFilename()), DevExpress.XtraRichEdit.DocumentFormat.OpenXml); } }