877121273 发表于 2016-2-16 09:16:00

自定义报表能增加一行合计吗?

自定义报表能增加一行合计吗?

Lenka.Guo 发表于 2016-2-16 11:51:00

可以实现:
如果您使用的是Table控件,为Table 可在table footer 中实现合计功能:注意下面几行代码:
1. 初始化值时, 添加合计运算表达式:String[] textBoxValues = new String[] { "helloTitle", "Year Released", "MPAA", "=Fields!Title.Value", "=Fields!YearReleased.Value", "=Fields!MPAA.Value", "=Sum(Fields!Title.Value+Fields!YearReleased.Value)", "=Sum(Fields!Title.Value+Fields!YearReleased.Value)", "=Sum(Fields!Title.Value+Fields!YearReleased.Value)" };
2. 将对应Row 设为Table.Footer:table.Footer.TableRows.Add(tableRows);

Table table = new Table();
            table.Name = "Table1";
            //Creating the rows,columns as well as TableCells for the table as well as TextBoxes to be placed within the Table Cells
            TextBox[] tableTextBoxes = new TextBox;
            TableCell[] tableCells = new TableCell;
            TableRow[] tableRows = new TableRow;
            TableColumn[] tableColumns = new TableColumn;
            String[] textBoxValues = new String[] { "helloTitle", "Year Released", "MPAA", "=Fields!Title.Value", "=Fields!YearReleased.Value", "=Fields!MPAA.Value", "=Sum(Fields!Title.Value+Fields!YearReleased.Value)", "=Sum(Fields!Title.Value+Fields!YearReleased.Value)", "=Sum(Fields!Title.Value+Fields!YearReleased.Value)" };
            String[] columnsWidth = new String[] { "9cm", "4.6cm", "5.3cm" };
            String[] rowsHeight = new String[] { "1.5cm", "1.5cm","1.5cm" };
            //Setting properties for the Textboxes to be placed in the TableCells
            for (int i = 0; i < tableTextBoxes.Length; i++)
            {
                tableTextBoxes.SetValue(new TextBox(), i);
                tableTextBoxes.Name = "textBox" + (i + 1);
                tableTextBoxes.Value = ExpressionInfo.FromString(textBoxValues);
                tableTextBoxes.Style.PaddingBottom = tableTextBoxes.Style.PaddingLeft = tableTextBoxes.Style.PaddingRight = tableTextBoxes.Style.PaddingTop = ExpressionInfo.FromString("2pt");
                tableTextBoxes.Style.TextAlign = ExpressionInfo.FromString("Left");
                tableCells.SetValue(new TableCell(), i);
                tableCells.ReportItems.Add(tableTextBoxes);//Adding the TextBoxes to the TableCells
                if (i < rowsHeight.Length)
                {
                  tableRows.SetValue(new TableRow(), i);
                  tableRows.Height = "1.25cm";
                  table.Height += "1.25cm";
                }
                if (i < columnsWidth.Length)
                {
                  tableColumns.SetValue(new TableColumn(), i);
                  tableColumns.Width = columnsWidth;
                  table.Width += columnsWidth;
                  table.TableColumns.Add(tableColumns);
                  tableCells.ReportItems.Style.BackgroundColor = ExpressionInfo.FromString("LightBlue");
                  tableRows.TableCells.Add(tableCells);
                }
               if(i>2 &amp;&amp; i<6)
                {
                  tableCells.ReportItems.Style.BackgroundColor = ExpressionInfo.FromString("=Choose((RowNumber(\"Table1\") +1) mod 2, \"PaleGreen\",)");
                  tableRows.TableCells.Add(tableCells);
                }

               if (i > 5 &amp;&amp; i < 9)
               {
                     tableRows.TableCells.Add(tableCells);

               }
            }
            table.Header.TableRows.Add(tableRows);
            table.Details.TableRows.Add(tableRows);
            table.Footer.TableRows.Add(tableRows);
            table.Top = "1cm";
            table.Left = "0.635cm";
            report.Report.Body.ReportItems.Add(logo);
            report.Report.Body.ReportItems.Add(table);

877121273 发表于 2016-2-16 12:04:00

可以在下面代码的基础上添加吗?

可以在下面代码的基础上添加吗?

877121273 发表于 2016-2-16 12:10:00

可以实现行统计和列统计吗

Lenka.Guo 发表于 2016-2-16 12:17:00

您好,您的账户已经升级为金牌用户,您可以在金牌服务区发帖了。
在区域报表中同样添加,实现思路是一样的。

877121273 发表于 2016-2-16 16:41:00

我使用的不是table控件的,是多个Label拼起来的报表

Lenka.Guo 发表于 2016-2-16 16:45:00

您能上传您的示例程序吗?我在这边根据您实际的报表实现,给出解决方法。

877121273 发表于 2016-2-16 17:34:00

附件

附件

Lenka.Guo 发表于 2016-2-16 17:50:00

附件中只有一个resk资源文件,是不是没上传完?
页: [1]
查看完整版本: 自定义报表能增加一行合计吗?