FastReport获取子类 给Table赋值
FastReport获取子类 给Table赋值
查看代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using FastReport;
using FastReport.Data;
using FastReport.Dialog;
using FastReport.Barcode;
using FastReport.Table;
using FastReport.Utils;
namespace FastReport
{
public class ReportScript
{
private void Page2_StartPage(object sender, EventArgs e)
{
DataSourceBase rowData = Report.GetDataSource("CodeList");
if(rowData.RowCount<=50)
{
Page2.Visible=false;
}
else
{
Page2.Visible=true;
}
}
private void _StartReport(object sender, EventArgs e)
{
Report rp= sender as Report;
foreach (object reportchild in rp.ChildObjects.ToArray())
{
if(reportchild.GetType().ToString().Contains("ReportPage"))
{
ReportPage page=reportchild as ReportPage;
foreach (object pagechild in page.ChildObjects.ToArray())
{
if(pagechild.GetType().ToString().Contains("DataBand"))
{
DataBand data=pagechild as DataBand;
foreach (object datachild in data.ChildObjects.ToArray())
{
if(datachild.GetType().ToString().Contains("TableObject"))
{
TableObject tb=datachild as TableObject;
if(tb.Name.Contains("tb"))
{
tb.ManualBuild+= new EventHandler(tb_ManualBuild);
}
}
}
}
}
}
}
// tb1.ManualBuild += new EventHandler(tb1_ManualBuild);
}
private void tb_ManualBuild(object sender, EventArgs e)
{
loaddata(sender as TableObject);
}
#region 加载数据
private void loaddata(TableObject tb)
{
decimal sumcol=0;
bool flg=false;
int maxval = 11;
int cnt=10;
int precolumn = 0;
if(tb.Name.ToString().Contains("tb"))
{
precolumn = Convert.ToInt32(tb.Name.ToString().Replace("tb",""))-1; //前面已经有的列数
// MessageBox.Show(tb.Name.ToString());
}
DataSourceBase rowData = Report.GetDataSource("CodeList");
int datacnt=rowData.RowCount;
rowData.Init();
int i = 0;
for(int k=0;k<1;k++)
{
tb.PrintRow(k);
tb.PrintColumns();
}
i = 1;
int j = 0;
while (rowData.HasMoreRows)
{
if (i == maxval - precolumn + precolumn)
break;
// print the table body
if (j >= precolumn * maxval - precolumn)
{
tb.PrintRow(i);
tb.PrintColumns();
sumcol += Convert.ToDecimal(string.IsNullOrEmpty(rowData[rowData.Columns[5]].ToString()) ? "0" : rowData[rowData.Columns[5]].ToString());
i++;
}
rowData.Next();
j++;
}
if (i <= maxval)
{
for (; i <= maxval; i++)
{
if (i == maxval)
{
tb.PrintRow(i);
tb.Rows[i][0].Text = "小计";
tb.Rows[i][1].Text = sumcol.ToString();
tb.PrintColumns();
}
else
{
tb.PrintRow(i);
tb.Rows[i][0].Text = "";
tb.Rows[i][1].Text = "";
tb.PrintColumns();
}
}
}
}
#endregion
}
}