private void OnAfterDataSetReset(DataSetResetEventArgs e) { var handler = AfterDataSetReset; if (handler != null) { handler(this, e); } }
private void OnBeforeDataSetReset(DataSetResetEventArgs e) { var handler = BeforeDataSetReset; if (handler != null) { handler(this, e); } }
private void BuildItems(IList <WordDocItemDef> items, DocX document, Paragraph p = null) { foreach (var item in items) { var tableDef = item as WordTableDef; if (tableDef != null && tableDef.Sections.Count >= 0 && tableDef.GetColCount() >= 0) { BuildTable(tableDef, document); } else if (item is WordParagraphDef) { var paraDef = (WordParagraphDef)item; var oldStyle = MergeStyle(paraDef.Style); try { // var format = GetFormatting(); var para = AppendParagraph(document /*.InsertParagraph()*/); foreach (var paraItem in paraDef.Items) { if (paraItem is WordContentItemDef) { AddParagraphContent(para, (WordContentItemDef)paraItem); } else if (paraItem is WordRepeatSectionDef) { var repeatSection = (WordRepeatSectionDef)paraItem; if (repeatSection.ResetDatas) { var args = new DataSetResetEventArgs { DataSet = repeatSection.Datas }; OnBeforeDataSetReset(args); repeatSection.Datas.Reset(); OnAfterDataSetReset(args); } while (!repeatSection.Datas.Eof()) { BuildItems(repeatSection.Items, document, para); repeatSection.Datas.Next(); } } else if (paraItem is WordSectionDef) { BuildItems(((WordSectionDef)paraItem).Items, document, para); } } } finally { SetStyle(oldStyle); } } else if (item is WordRepeatSectionDef) { var repeatSection = (WordRepeatSectionDef)item; var oldStyle = MergeStyle(item.Style); try { if (repeatSection.ResetDatas) { var args = new DataSetResetEventArgs { DataSet = repeatSection.Datas }; OnBeforeDataSetReset(args); repeatSection.Datas.Reset(); OnAfterDataSetReset(args); } while (!repeatSection.Datas.Eof()) { BuildItems(repeatSection.Items, document, p); repeatSection.Datas.Next(); } } finally { SetStyle(oldStyle); } } else if (item is WordSectionDef) { BuildItems(((WordSectionDef)item).Items, document, p); } else if (item is PageBreak) { var pageBreak = (PageBreak)item; int step; if (!_pageBreakSteps.TryGetValue(pageBreak, out step)) { step = pageBreak.Step; _pageBreakSteps[pageBreak] = step; } step--; if (step <= 0) { document.InsertSectionPageBreak(); _pageBreakSteps[pageBreak] = pageBreak.Step; } } else if (item is WordContentItemDef) { if (p == null) { p = AppendParagraph(document); } AddParagraphContent(p, (WordContentItemDef)item); } } }
private void BuildTable(WordTableDef tableDef, DocX document) { var oldStyle = MergeStyle(tableDef.Style); try { var table = document.InsertTable(1 /*tableDef.GetRowCount() + 1*/, tableDef.GetColCount()); if (_style.HasBorders && _style.Borders == TableCellBorder.All) { table.Design = TableDesign.TableGrid; } else { table.Design = TableDesign.TableNormal; } table.AutoFit = tableDef.FitWidth ? AutoFit.Window : AutoFit.Contents; var firstRow = true; foreach (var sectionDef in tableDef.Sections) { var def = sectionDef as WordTableRepeatSectionDef; if (def != null) { var repeatSection = def; var oldSectionStyle = MergeStyle(def.Style); try { if (repeatSection.ResetDatas) { var args = new DataSetResetEventArgs { DataSet = repeatSection.Datas }; OnBeforeDataSetReset(args); repeatSection.Datas.Reset(); OnAfterDataSetReset(args); } while (!repeatSection.Datas.Eof()) { BuildTableSectionRows(def, table, tableDef, ref firstRow); repeatSection.Datas.Next(); } } finally { SetStyle(oldSectionStyle); } } else { var oldSectionStyle = MergeStyle(sectionDef.Style); try { BuildTableSectionRows(sectionDef, table, tableDef, ref firstRow); } finally { SetStyle(oldSectionStyle); } } // for (var r = 0; r <= tableDef.GetRowCount(); r++) } } finally { SetStyle(oldStyle); } }