public void Test_VerticalPanelsGrouping_ChildBottom_ParentCellsShiftChildCellsShift_WithFictitiousRowWhichDeleteAfterRender() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange parentRange = ws.Range(2, 2, 4, 5); parentRange.AddToNamed("ParentRange", XLScope.Worksheet); IXLRange child = ws.Range(3, 2, 3, 5); child.AddToNamed("ChildRange", XLScope.Worksheet); child.Range(1, 2, 1, 4).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; child.Range(1, 2, 1, 4).Style.Border.OutsideBorderColor = XLColor.Red; parentRange.Style.Border.OutsideBorder = XLBorderStyleValues.Thin; parentRange.Style.Border.OutsideBorderColor = XLColor.Black; ws.Cell(2, 2).Value = "{di:Name}"; ws.Cell(2, 3).Value = "{di:Date}"; ws.Cell(3, 3).Value = "{di:Field1}"; ws.Cell(3, 4).Value = "{di:Field2}"; ws.Cell(3, 5).Value = "{di:parent:Sum}"; ws.Cell(1, 1).Value = "{di:Name}"; ws.Cell(5, 1).Value = "{di:Name}"; ws.Cell(1, 6).Value = "{di:Name}"; ws.Cell(5, 6).Value = "{di:Name}"; ws.Cell(3, 1).Value = "{di:Name}"; ws.Cell(3, 6).Value = "{di:Name}"; ws.Cell(1, 4).Value = "{di:Name}"; ws.Cell(5, 4).Value = "{di:Name}"; var parentPanel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("ParentRange"), report, report.TemplateProcessor) { AfterDataItemRenderMethodName = "AfterRenderParentDataSourcePanelChildBottom", }; var childPanel = new ExcelDataSourcePanel("m:DataProvider:GetChildIEnumerable(di:Name)", ws.NamedRange("ChildRange"), report, report.TemplateProcessor) { Parent = parentPanel, }; parentPanel.Children = new[] { childPanel }; parentPanel.Render(); Assert.AreEqual(ws.Range(2, 2, 9, 5), parentPanel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelRender_WithGrouping_VerticalPanels_ChildBottom_Test), "ParentCellsShiftChildCellsShift_WithFictitiousRowWhichDeleteAfterRender"), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void Test_VerticalPageBreaks_WithSimplePanel_RowShift() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange parentRange = ws.Range(2, 2, 5, 4); parentRange.AddToNamed("ParentRange", XLScope.Worksheet); parentRange.Style.Border.OutsideBorder = XLBorderStyleValues.Thin; IXLRange child1 = ws.Range(2, 3, 5, 3); child1.AddToNamed("ChildRange1", XLScope.Worksheet); IXLRange child2 = ws.Range(2, 4, 5, 4); child2.AddToNamed("ChildRange2", XLScope.Worksheet); ws.Cell(2, 2).Value = "{di:Name}"; ws.Cell(3, 2).Value = "{di:Date}"; ws.Cell(3, 3).Value = "{di:Field1}"; ws.Cell(4, 3).Value = "{di:Field2}"; ws.Cell(5, 3).Value = "{di:parent:Sum}"; ws.Cell(2, 4).Value = "{VertPageBreak}"; var parentPanel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("ParentRange"), report, report.TemplateProcessor) { Type = PanelType.Horizontal, ShiftType = ShiftType.Row, }; var childPanel1 = new ExcelDataSourcePanel("m:DataProvider:GetChildIEnumerable(di:Name)", ws.NamedRange("ChildRange1"), report, report.TemplateProcessor) { Parent = parentPanel, Type = PanelType.Horizontal, ShiftType = ShiftType.Row, }; var childPanel2 = new ExcelNamedPanel(ws.NamedRange("ChildRange2"), report, report.TemplateProcessor) { Parent = parentPanel, }; parentPanel.Children = new[] { childPanel1, childPanel2 }; parentPanel.Render(); Assert.AreEqual(ws.Range(2, 2, 5, 12), parentPanel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelRender_WithGrouping_PageBreaks_Test), "Test_VerticalPageBreaks"), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderDictionaryEnumerable() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range1 = ws.Range(2, 2, 4, 2); range1.AddToNamed("TestRange1", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; var panel1 = new ExcelDataSourceDynamicPanel("m:DataProvider:GetDictionaryEnumerable()", ws.NamedRange("TestRange1"), report, report.TemplateProcessor); panel1.Render(); Assert.AreEqual(ws.Range(2, 2, 6, 4), panel1.ResultRange); var dictWithDecimalValues = new List <IDictionary <string, decimal> > { new Dictionary <string, decimal> { ["Value"] = 25.7m }, new Dictionary <string, decimal> { ["Value"] = 250.7m }, new Dictionary <string, decimal> { ["Value"] = 2500.7m }, }; IXLRange range2 = ws.Range(7, 2, 9, 2); range2.AddToNamed("TestRange2", XLScope.Worksheet); ws.Cell(7, 2).Value = "{Headers}"; ws.Cell(8, 2).Value = "{Data}"; ws.Cell(9, 2).Value = "{Totals}"; var panel2 = new ExcelDataSourceDynamicPanel(dictWithDecimalValues, ws.NamedRange("TestRange2"), report, report.TemplateProcessor); panel2.Render(); Assert.AreEqual(ws.Range(7, 2, 11, 2), panel2.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelDictionaryRenderTest), nameof(TestRenderDictionaryEnumerable)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void Test_TwoChildren_Horizontal() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange parentRange = ws.Range(2, 2, 5, 6); parentRange.AddToNamed("ParentRange", XLScope.Worksheet); IXLRange child1 = ws.Range(2, 4, 5, 4); child1.AddToNamed("ChildRange1", XLScope.Worksheet); IXLRange child2 = ws.Range(2, 6, 5, 6); child2.AddToNamed("ChildRange2", XLScope.Worksheet); ws.Cell(2, 2).Value = "{di:Name}"; ws.Cell(3, 3).Value = "Field1"; ws.Cell(3, 3).Style.Font.Bold = true; ws.Cell(4, 3).Value = "Field2"; ws.Cell(4, 3).Style.Font.Bold = true; ws.Cell(3, 4).Value = "{di:Field1}"; ws.Cell(4, 4).Value = "{di:Field2}"; ws.Cell(5, 5).Value = "Number"; ws.Cell(5, 5).Style.Font.Bold = true; ws.Cell(5, 6).Value = "{di:di}"; var parentPanel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("ParentRange"), report, report.TemplateProcessor); var childPanel1 = new ExcelDataSourcePanel("m:DataProvider:GetChildIEnumerable(di:Name)", ws.NamedRange("ChildRange1"), report, report.TemplateProcessor) { Parent = parentPanel, Type = PanelType.Horizontal, }; var childPanel2 = new ExcelDataSourcePanel("di:ChildrenPrimitive", ws.NamedRange("ChildRange2"), report, report.TemplateProcessor) { Parent = parentPanel, Type = PanelType.Horizontal, }; parentPanel.Children = new[] { childPanel1, childPanel2 }; parentPanel.Render(); Assert.AreEqual(ws.Range(2, 2, 13, 8), parentPanel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelRender_WithGrouping_MultipleChildrenInOneParent), nameof(Test_TwoChildren_Horizontal)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderEmptyIEnumerableHorizontalNoShift() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 3, 5); range.AddToNamed("TestRange", XLScope.Worksheet); range.Style.Border.SetTopBorder(XLBorderStyleValues.Thin); range.Style.Border.SetRightBorder(XLBorderStyleValues.Thin); range.Style.Border.SetBottomBorder(XLBorderStyleValues.Thin); range.Style.Border.SetLeftBorder(XLBorderStyleValues.Thin); ws.Cell(2, 6).Style.Border.SetLeftBorder(XLBorderStyleValues.Thin); ws.Cell(2, 4).DataType = XLDataType.Number; //ws.Cell(2, 4).DataType = XLCellValues.Number; ws.Cell(2, 2).Value = "{di:Name}"; ws.Cell(2, 3).Value = "{di:Date}"; ws.Cell(2, 4).Value = "{di:Sum}"; ws.Cell(2, 5).Value = "{di:Contacts}"; ws.Cell(3, 2).Value = "{di:Contacts.Phone}"; ws.Cell(3, 3).Value = "{di:Contacts.Fax}"; ws.Cell(3, 4).Value = "{p:StrParam}"; ws.Cell(1, 1).Value = "{di:Name}"; ws.Cell(4, 1).Value = "{di:Name}"; ws.Cell(1, 6).Value = "{di:Name}"; ws.Cell(4, 6).Value = "{di:Name}"; ws.Cell(3, 1).Value = "{di:Name}"; ws.Cell(3, 6).Value = "{di:Name}"; ws.Cell(1, 4).Value = "{di:Name}"; ws.Cell(4, 4).Value = "{di:Name}"; var panel = new ExcelDataSourcePanel("m:DataProvider:GetEmptyIEnumerable()", ws.NamedRange("TestRange"), report, report.TemplateProcessor) { Type = PanelType.Horizontal, ShiftType = ShiftType.NoShift, }; panel.Render(); Assert.IsNull(panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelEmptyIEnumerableRenderTest), nameof(TestRenderEmptyIEnumerableHorizontalNoShift)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestSimplePanelExpansion() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange simplePanelRange = ws.Range(1, 1, 3, 5); var simplePanel = new ExcelPanel(simplePanelRange, report, report.TemplateProcessor); IXLRange dataPanelRange = ws.Range(2, 2, 2, 5); dataPanelRange.AddToNamed("d_Data", XLScope.Worksheet); ws.Cell(2, 2).Value = "{di:Name}"; ws.Cell(2, 3).Value = "{di:Date}"; ws.Cell(2, 4).Value = "{di:Sex}"; ws.Cell(2, 5).Value = "{di:Sum}"; var dataPanel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("d_Data"), report, report.TemplateProcessor) { Parent = simplePanel, }; IXLRange totalsPanelRange = ws.Range(3, 2, 3, 5); totalsPanelRange.AddToNamed("t_Totals", XLScope.Worksheet); ws.Cell(3, 2).Value = "{Max(di:Name)}"; ws.Cell(3, 3).Value = "{Min(di:Date)}"; ws.Cell(3, 4).Value = "{Max(di:Sex)}"; ws.Cell(3, 5).Value = "{Sum(di:Sum)}"; var totalsPanel = new ExcelTotalsPanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("t_Totals"), report, report.TemplateProcessor) { Parent = simplePanel, }; simplePanel.Children = new[] { dataPanel, totalsPanel }; simplePanel.Render(); Assert.AreEqual(ws.Range(1, 1, 5, 5), simplePanel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(PanelRenderTest), nameof(TestSimplePanelExpansion)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestPanelRenderWithParentContext() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange parentRange = ws.Range(2, 2, 3, 5); parentRange.AddToNamed("ParentRange", XLScope.Worksheet); IXLRange child1 = ws.Range(2, 2, 2, 5); child1.AddToNamed("ChildRange1", XLScope.Worksheet); IXLRange child2 = ws.Range(3, 2, 3, 5); child2.AddToNamed("ChildRange2", XLScope.Worksheet); ws.Cell(2, 2).Value = "{di:Field1}"; ws.Cell(2, 3).Value = "{di:Field2}"; ws.Cell(3, 2).Value = "{Count(di:Field1)}"; ws.Cell(3, 3).Value = "{Max(di:Field2)}"; ws.Cell(3, 4).Value = "{Max(di:parent:Sum)}"; ws.Cell(3, 5).Value = "{di:parent:Name}"; var parentPanel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("ParentRange"), report, report.TemplateProcessor); var childPanel1 = new ExcelDataSourcePanel("m:DataProvider:GetChildIEnumerable(di:Name)", ws.NamedRange("ChildRange1"), report, report.TemplateProcessor) { Parent = parentPanel, }; var childPanel2 = new ExcelTotalsPanel("m:DataProvider:GetChildIEnumerable(di:Name)", ws.NamedRange("ChildRange2"), report, report.TemplateProcessor) { Parent = parentPanel }; parentPanel.Children = new[] { childPanel1, childPanel2 }; parentPanel.Render(); Assert.AreEqual(ws.Range(2, 2, 9, 5), parentPanel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(TotalsPanelRenderTest), nameof(TestPanelRenderWithParentContext)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderIEnumerableVerticalCellsShift() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 3, 5); range.AddToNamed("TestRange", XLScope.Worksheet); range.FirstCell().Style.Border.SetTopBorder(XLBorderStyleValues.Thin); range.FirstCell().Style.Border.SetBottomBorder(XLBorderStyleValues.Thin); range.FirstCell().Style.Border.SetLeftBorder(XLBorderStyleValues.Thin); ws.Cell(2, 4).DataType = XLDataType.Number; //ws.Cell(2, 4).DataType = XLCellValues.Number; ws.Cell(2, 2).Value = "{m:Concat(di:Name, m:Format(di:Date, dd.MM.yyyy))}"; ws.Cell(2, 3).Value = "{di:Date}"; ws.Cell(2, 4).Value = "{m:Multiply(di:Sum, 5)}"; ws.Cell(2, 5).Value = "{di:Contacts}"; ws.Cell(3, 2).Value = "{Di:Contacts.Phone}"; ws.Cell(3, 3).Value = "{DI:Contacts.Fax}"; ws.Cell(3, 4).Value = "{p:StrParam}"; ws.Cell(1, 1).Value = "{di:Name}"; ws.Cell(4, 1).Value = "{di:Name}"; ws.Cell(1, 6).Value = "{di:Name}"; ws.Cell(4, 6).Value = "{di:Name}"; ws.Cell(3, 1).Value = "{di:Name}"; ws.Cell(3, 6).Value = "{di:Name}"; ws.Cell(1, 4).Value = "{di:Name}"; ws.Cell(4, 4).Value = "{di:Name}"; var panel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel.Render(); Assert.AreEqual(ws.Range(2, 2, 7, 5), panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelIEnumerableRenderTest), nameof(TestRenderIEnumerableVerticalCellsShift)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderDictionary() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range1 = ws.Range(2, 2, 2, 3); range1.AddToNamed("TestRange", XLScope.Worksheet); IXLRange range2 = ws.Range(2, 5, 2, 6); range2.AddToNamed("TestRange2", XLScope.Worksheet); ws.Cell(1, 2).Value = "Key"; ws.Cell(1, 3).Value = "Value"; ws.Cell(2, 2).Value = "{di:Key}"; ws.Cell(2, 3).Value = "{di:Value}"; ws.Cell(1, 5).Value = "Key"; ws.Cell(1, 6).Value = "Value"; ws.Cell(2, 5).Value = "{di:Key}"; ws.Cell(2, 6).Value = "{di:Value}"; IDictionary <string, object> data1 = new DataProvider().GetDictionaryEnumerable().First(); var panel1 = new ExcelDataSourcePanel(data1, ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel1.Render(); IEnumerable <KeyValuePair <string, object> > data2 = new DataProvider().GetDictionaryEnumerable().First() .Select(x => new KeyValuePair <string, object>(x.Key, x.Value)); var panel2 = new ExcelDataSourcePanel(data2, ws.NamedRange("TestRange2"), report, report.TemplateProcessor); panel2.Render(); Assert.AreEqual(ws.Range(2, 2, 4, 3), panel1.ResultRange); Assert.AreEqual(ws.Range(2, 5, 4, 6), panel2.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelDictionaryRenderTest), nameof(TestRenderDictionary)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderDataSetWithEvents() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 5, 2); range.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Numbers}"; ws.Cell(4, 2).Value = "{Data}"; ws.Cell(5, 2).Value = "{Totals}"; var panel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetAllCustomersDataSet()", ws.NamedRange("TestRange"), report, report.TemplateProcessor) { BeforeHeadersRenderMethodName = "TestExcelDynamicPanelBeforeHeadersRender", AfterHeadersRenderMethodName = "TestExcelDynamicPanelAfterHeadersRender", BeforeNumbersRenderMethodName = "TestExcelDynamicPanelBeforeNumbersRender", AfterNumbersRenderMethodName = "TestExcelDynamicPanelAfterNumbersRender", BeforeDataTemplatesRenderMethodName = "TestExcelDynamicPanelBeforeDataTemplatesRender", AfterDataTemplatesRenderMethodName = "TestExcelDynamicPanelAfterDataTemplatesRender", BeforeDataRenderMethodName = "TestExcelDynamicPanelBeforeDataRender", AfterDataRenderMethodName = "TestExcelDynamicPanelAfterDataRender", BeforeDataItemRenderMethodName = "TestExcelDynamicPanelBeforeDataItemRender", AfterDataItemRenderMethodName = "TestExcelDynamicPanelAfterDataItemRender", BeforeTotalsTemplatesRenderMethodName = "TestExcelDynamicPanelBeforeTotalsTemplatesRender", AfterTotalsTemplatesRenderMethodName = "TestExcelDynamicPanelAfterTotalsTemplatesRender", BeforeTotalsRenderMethodName = "TestExcelDynamicPanelBeforeTotalsRender", AfterTotalsRenderMethodName = "TestExcelDynamicPaneAfterTotalsRender", GroupBy = "4", }; panel.Render(); Assert.AreEqual(ws.Range(2, 2, 7, 8), panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelDataSetRenderTest), nameof(TestRenderDataSetWithEvents)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderDataReader() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 7, 2); range.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(2, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Medium; ws.Cell(2, 2).Style.Border.OutsideBorderColor = XLColor.Red; ws.Cell(2, 2).Style.Font.Bold = true; ws.Cell(3, 2).Value = "{Numbers}"; ws.Cell(3, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; ws.Cell(3, 2).Style.Border.OutsideBorderColor = XLColor.Black; ws.Cell(3, 2).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; ws.Cell(4, 2).Value = "{Data}"; ws.Cell(4, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; ws.Cell(4, 2).Style.Border.OutsideBorderColor = XLColor.Black; ws.Cell(5, 2).Value = "{Totals}"; ws.Cell(5, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Dotted; ws.Cell(5, 2).Style.Border.OutsideBorderColor = XLColor.Green; ws.Cell(7, 2).FormulaA1 = "=COLUMN()"; ws.Cell(7, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Dashed; ws.Cell(7, 2).Style.Border.OutsideBorderColor = XLColor.Blue; var panel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetAllCustomersDataReader()", ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel.Render(); Assert.AreEqual(ws.Range(2, 2, 9, 7), panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelDataReaderRenderTest), nameof(TestRenderDataReader)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderIEnumerableOfString() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 2, 2); range.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{di:di}"; var panel = new ExcelDataSourcePanel(new[] { "One", "Two", "Three", "Four" }, ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel.Render(); Assert.AreEqual(ws.Range(2, 2, 5, 2), panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelIEnumerableRenderTest), nameof(TestRenderIEnumerableOfString)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderNullItemHorizontalNoShift() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 3, 5); range.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{di:Name}"; ws.Cell(2, 3).Value = "{di:Date}"; ws.Cell(2, 4).Value = "{m:Multiply(di:Sum, 5)}"; ws.Cell(2, 5).Value = "{di:Contacts}"; ws.Cell(3, 2).Value = "{di:Contacts.Phone}"; ws.Cell(3, 3).Value = "{di:Contacts.Fax}"; ws.Cell(3, 4).Value = "{p:StrParam}"; ws.Cell(1, 1).Value = "{di:Name}"; ws.Cell(4, 1).Value = "{di:Name}"; ws.Cell(1, 6).Value = "{di:Name}"; ws.Cell(4, 6).Value = "{di:Name}"; ws.Cell(3, 1).Value = "{di:Name}"; ws.Cell(3, 6).Value = "{di:Name}"; ws.Cell(1, 4).Value = "{di:Name}"; ws.Cell(4, 4).Value = "{di:Name}"; var panel = new ExcelDataSourcePanel("m:DataProvider:GetNullItem()", ws.NamedRange("TestRange"), report, report.TemplateProcessor) { Type = PanelType.Horizontal, ShiftType = ShiftType.NoShift, }; panel.Render(); Assert.IsNull(panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelNullItemRenderTest), nameof(TestRenderNullItemHorizontalNoShift)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRender_DynamicPanel_In_DataSourcePanel_Horizontal() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange parentRange = ws.Range(2, 1, 2, 4); parentRange.AddToNamed("ParentRange", XLScope.Worksheet); IXLRange childRange = ws.Range(2, 2, 2, 4); childRange.AddToNamed("ChildRange", XLScope.Worksheet); ws.Cell(2, 1).Value = "{di:Name}"; ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(2, 3).Value = "{Numbers}"; ws.Cell(2, 4).Value = "{Data}"; var parentPanel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("ParentRange"), report, report.TemplateProcessor) { Type = PanelType.Horizontal, }; var childPanel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetChildIEnumerable(di:Name)", ws.NamedRange("ChildRange"), report, report.TemplateProcessor) { Parent = parentPanel, Type = PanelType.Horizontal, }; parentPanel.Children = new[] { childPanel }; parentPanel.Render(); Assert.AreEqual(ws.Range(2, 1, 3, 12), parentPanel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanel_InsideDataSourcePanel_Test), nameof(TestRender_DynamicPanel_In_DataSourcePanel_Horizontal)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestPanelRender() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(1, 1, 1, 12); range.AddToNamed("Test", XLScope.Worksheet); ws.Cell(1, 1).Value = "Plain text"; ws.Cell(1, 2).Value = "{Sum(di:Sum)}"; ws.Cell(1, 3).Value = "{ Custom(DI:Sum, CustomAggregation, PostAggregation) }"; ws.Cell(1, 4).Value = "{Min(di:Sum)}"; ws.Cell(1, 5).Value = "Text1 {count(di:Name)} Text2 {avg(di:Sum, , PostAggregationRound)} {p:StrParam} {Max(di:Sum)} {Max(di:Sum)}"; ws.Cell(1, 6).Value = "{Mix(di:Sum)}"; ws.Cell(1, 7).FormulaA1 = "=SUM(B1:D1)"; ws.Cell(1, 8).FormulaA1 = "=ROW()"; ws.Cell(1, 9).Value = "{sf:Format(p:DateParam, yyyyMMdd)}"; ws.Cell(1, 10).Value = "{p:IntParam}"; ws.Cell(1, 11).Value = "{sf:Format(m:TestClassForTotals:Round(Min(di:Sum), 1), #,,0.0000)}"; ws.Cell(1, 12).Value = "Aggregation: {m:TestClassForTotals:Meth(avg(di:Sum, , PostAggregationRound), Max( di : Sum ))}. Date: {sf:Format(p:DateParam, dd.MM.yyyy)}"; ws.Cell(1, 13).Value = "{Sum(di:Sum)}"; var panel = new ExcelTotalsPanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("Test"), report, report.TemplateProcessor) { BeforeRenderMethodName = "TestExcelTotalsPanelBeforeRender", AfterRenderMethodName = "TestExcelTotalsPanelAfterRender", }; panel.Render(); Assert.AreEqual(range, panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(TotalsPanelRenderTest), nameof(TestPanelRender)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderEmptyEnumerable() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range1 = ws.Range(2, 2, 4, 2); range1.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; var panel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetEmptyIEnumerable()", ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel.Render(); Assert.AreEqual(ws.Range(2, 2, 3, 5), panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelEnumerableRenderTest), nameof(TestRenderEmptyEnumerable)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestVerticalInHorizontalPanelsGrouping() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange parentRange = ws.Range(2, 2, 3, 4); parentRange.AddToNamed("ParentRange", XLScope.Worksheet); IXLRange child = ws.Range(3, 3, 3, 4); child.AddToNamed("ChildRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{di:Name}"; ws.Cell(3, 3).Value = "{di:Field1}"; ws.Cell(3, 4).Value = "{di:Field2}"; var parentPanel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("ParentRange"), report, report.TemplateProcessor) { Type = PanelType.Horizontal, }; var childPanel = new ExcelDataSourcePanel("m:DataProvider:GetChildIEnumerable(di:Name)", ws.NamedRange("ChildRange"), report, report.TemplateProcessor) { Parent = parentPanel, }; parentPanel.Children = new[] { childPanel }; parentPanel.Render(); Assert.AreEqual(ws.Range(2, 2, 5, 10), parentPanel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelRender_WithGrouping_MixedPanels_Test), nameof(TestVerticalInHorizontalPanelsGrouping)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestGroupResultHorizontal() { var wb = new XLWorkbook(); IXLWorksheet ws = wb.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 6, 9); ws.Cell(2, 2).Value = "One"; ws.Cell(2, 3).Value = "One"; ws.Cell(2, 4).Value = "Two"; ws.Cell(2, 5).Value = "Three"; ws.Cell(2, 6).Value = "Three"; ws.Cell(2, 7).Value = "Three"; ws.Cell(2, 8).Value = "Four"; ws.Cell(2, 9).Value = "Five"; ws.Range(2, 5, 2, 6).Merge(); ws.Cell(3, 2).Value = "Orange"; ws.Cell(3, 3).Value = "Apple"; ws.Cell(3, 4).Value = "Apple"; ws.Cell(3, 5).Value = string.Empty; ws.Cell(3, 6).Value = null; ws.Cell(3, 8).Value = "Pear"; ws.Cell(3, 9).Value = "Pear"; ws.Cell(4, 2).Value = true; ws.Cell(4, 3).Value = true; ws.Cell(4, 4).Value = 1; ws.Cell(4, 5).Value = null; ws.Cell(4, 7).Value = 0; ws.Cell(4, 8).Value = false; ws.Cell(4, 9).Value = false; ws.Cell(5, 2).Value = 1; ws.Cell(5, 3).Value = 1; ws.Cell(5, 4).Value = 1; ws.Cell(5, 5).Value = 56; ws.Cell(5, 6).Value = 56.1; ws.Cell(5, 7).Value = 56; ws.Cell(5, 8).Value = 77.7; ws.Cell(5, 9).Value = 77.7m; ws.Range(5, 3, 5, 4).Merge(); ws.Cell(6, 2).Value = new DateTime(2018, 2, 18); ws.Cell(6, 3).Value = new DateTime(2018, 2, 20); ws.Cell(6, 4).Value = new DateTime(2018, 2, 20); ws.Cell(6, 5).Value = new DateTime(2018, 2, 18); ws.Cell(6, 6).Value = null; ws.Cell(6, 8).Value = new DateTime(2018, 2, 21); ws.Cell(6, 9).Value = new DateTime(2018, 2, 21).ToString(); var panel = new ExcelDataSourcePanel("Stub", Substitute.For <IXLNamedRange>(), new object(), Substitute.For <ITemplateProcessor>()) { GroupBy = "1,2, 3 , 4,5", Type = PanelType.Horizontal, }; var method = panel.GetType().GetMethod("GroupResult", BindingFlags.Instance | BindingFlags.NonPublic); SetResultRange(panel, range); method.Invoke(panel, null); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(ExcelDataSourcePanelTest), nameof(TestGroupResultHorizontal)), wb); //wb.SaveAs("test.xlsx"); }
public void TestMultipleHorizontalPanelsGrouping() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange parentRange = ws.Range(2, 2, 7, 6); parentRange.AddToNamed("ParentRange", XLScope.Worksheet); IXLRange simpleRange1 = ws.Range(3, 3, 4, 3); simpleRange1.AddToNamed("simpleRange1"); IXLRange child = ws.Range(2, 4, 7, 6); child.AddToNamed("ChildRange", XLScope.Worksheet); IXLRange childOfChild = ws.Range(2, 5, 7, 6); childOfChild.AddToNamed("ChildOfChildRange"); IXLRange simpleRange2 = ws.Range(5, 6, 7, 6); simpleRange2.AddToNamed("simpleRange2", XLScope.Worksheet); simpleRange2.Style.Border.OutsideBorder = XLBorderStyleValues.Thin; simpleRange2.Style.Border.OutsideBorderColor = XLColor.Orange; childOfChild.Range(3, 1, 6, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; childOfChild.Range(3, 1, 6, 2).Style.Border.OutsideBorderColor = XLColor.Green; child.Range(2, 1, 6, 3).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; child.Range(2, 1, 6, 3).Style.Border.OutsideBorderColor = XLColor.Red; simpleRange1.Style.Border.OutsideBorder = XLBorderStyleValues.Thin; simpleRange1.Style.Border.OutsideBorderColor = XLColor.Brown; parentRange.Style.Border.OutsideBorder = XLBorderStyleValues.Thin; parentRange.Style.Border.OutsideBorderColor = XLColor.Black; ws.Cell(2, 2).Value = "{di:Name}"; ws.Cell(3, 2).Value = "{di:Date}"; ws.Cell(3, 3).Value = "{p:StrParam}"; ws.Cell(4, 3).Value = "{di:Sum}"; ws.Cell(5, 3).Value = "{p:IntParam}"; ws.Cell(3, 4).Value = "{di:Field1}"; ws.Cell(4, 4).Value = "{di:Field2}"; ws.Cell(5, 4).Value = "{di:parent:Sum}"; ws.Cell(6, 4).Value = "{di:parent:Contacts}"; ws.Cell(4, 5).Value = "{di:Field1}"; ws.Cell(5, 5).Value = "{di:Field2}"; ws.Cell(6, 5).Value = "{di:parent:Field1}"; ws.Cell(7, 5).Value = "{di:parent:parent:Contacts.Phone}"; ws.Cell(5, 6).Value = "{p:DateParam}"; ws.Cell(6, 6).Value = "{di:parent:Field2}"; ws.Cell(7, 6).Value = "{di:parent:parent:Contacts.Fax}"; var parentPanel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("ParentRange"), report, report.TemplateProcessor) { Type = PanelType.Horizontal, }; var simplePanel1 = new ExcelNamedPanel(ws.Workbook.NamedRange("simpleRange1"), report, report.TemplateProcessor) { Parent = parentPanel, }; var childPanel = new ExcelDataSourcePanel("m:DataProvider:GetChildIEnumerable(di:Name)", ws.NamedRange("ChildRange"), report, report.TemplateProcessor) { Parent = parentPanel, Type = PanelType.Horizontal, }; var childOfChildPanel = new ExcelDataSourcePanel("di:Children", ws.Workbook.NamedRange("ChildOfChildRange"), report, report.TemplateProcessor) { Parent = childPanel, Type = PanelType.Horizontal, }; var simplePanel2 = new ExcelNamedPanel(ws.NamedRange("simpleRange2"), report, report.TemplateProcessor) { Parent = childOfChildPanel, }; childOfChildPanel.Children = new[] { simplePanel2 }; childPanel.Children = new[] { childOfChildPanel }; parentPanel.Children = new[] { childPanel, simplePanel1 }; parentPanel.Render(); Assert.AreEqual(ws.Range(2, 2, 7, 20), parentPanel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourcePanelRender_WithGrouping_MixedPanels_Test), nameof(TestMultipleHorizontalPanelsGrouping)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }