protected void ASPxRichEdit1_CalculateDocumentVariable(object sender, DevExpress.XtraRichEdit.CalculateDocumentVariableEventArgs e) { var rich = (ASPxRichEdit)sender; if (e.VariableName == "MyCustomInsertTableField") { System.Data.DataTable dataTable = GetDT1(); DevExpress.XtraRichEdit.RichEditDocumentServer docServer = new DevExpress.XtraRichEdit.RichEditDocumentServer(); int dataTableRows = dataTable.Rows.Count; int dataTableColumns = dataTable.Columns.Count; DevExpress.XtraRichEdit.API.Native.Table table = docServer.Document.Tables.Create(docServer.Document.Range.End, dataTableRows + 1, dataTableColumns); for (int i = 0; i < dataTableColumns; i++) { docServer.Document.InsertText(table[0, i].Range.Start, dataTable.Columns[i].ColumnName); } table.ForEachCell(delegate(DevExpress.XtraRichEdit.API.Native.TableCell cell, int rowIndex, int cellIndex) { if (rowIndex > 0) { docServer.Document.InsertText(cell.Range.Start, dataTable.Rows[rowIndex - 1][dataTable.Columns[cellIndex].ColumnName].ToString()); } }); e.Value = docServer.Document; e.Handled = true; } }
//internal void SetMessage(string message) //{ // richEditControl1.Document.CaretPosition = richEditControl1.Document.Range.Start; // richEditControl1.Document.InsertText(richEditControl1.Document.CaretPosition, message + "\r\n"); //} internal void SetMessage(string message, System.Drawing.Font Font, System.Drawing.Color acolor) { var richText = new DevExpress.XtraRichEdit.RichEditDocumentServer(); richText.Text = message; CharacterProperties cp = richText.Document.BeginUpdateCharacters(richText.Document.Range); cp.FontName = Font.Name; cp.FontSize = Font.Size; cp.Bold = Font.Bold; cp.Italic = Font.Italic; cp.Strikeout = Font.Strikeout ? StrikeoutType.Single : StrikeoutType.None; cp.Underline = Font.Underline ? UnderlineType.Single : UnderlineType.None; cp.ForeColor = acolor; richText.Document.EndUpdateCharacters(cp); layoutedtMessage.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; richEditControl1.Document.CaretPosition = richEditControl1.Document.Range.Start; richEditControl1.Document.InsertDocumentContent(richEditControl1.Document.CaretPosition, richText.Document.Range); richEditControl1.Document.CaretPosition = richEditControl1.Document.Range.Start; richEditControl1.ScrollToCaret(); }
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); } }