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
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2018-12-01 android.database.sqlite.SQLiteException: no such column: aaa (code 1): , while compiling: DELETE FROM users WHERE user_name=aaa解决办法