hw 11:30:44
public class ReportScript
{
int rowIndex = 0;
int rowCountPerPage = 18;
Dictionary<int,int> _dic = new Dictionary<int,int>();
private void Page1_StartPage(object sender, EventArgs e)
{
int index = 0;
int leftRow = 0;
int rowCount = 0;
List<string> xhs = new List<string>();
int dks = 0;
decimal htzmj = 0m;
decimal sczmj = 0m;
DataSourceBase dk = Report.GetDataSource("tableDK");
DataTable dkTable = ((FastReport.Data.TableDataSource)(dk)).Table;
foreach(DataRow row in dkTable.Rows)
{
string xh = row["XH"].ToString();
int count = dkTable.Select("XH = '"+xh+"'").Length;
if(!xhs.Contains(xh))
{
xhs.Add(xh);
leftRow = rowCountPerPage - index%rowCountPerPage;
rowCount = count > leftRow ? leftRow : count;
Int32.TryParse(row["DKS"].ToString(),out dks);
Decimal.TryParse(row["HTZMJ"].ToString(),out htzmj);
Decimal.TryParse(row["SCZMJ"].ToString(),out sczmj);
}
else
{
if(index%rowCountPerPage == 0)
{
if(count-leftRow > rowCountPerPage)
{
rowCount = rowCountPerPage;
leftRow += rowCountPerPage;
}
else
rowCount = count-leftRow;
}
else
rowCount = 0;
row["DKS"] = dks;
row["HTZMJ"] = htzmj;
row["SCZMJ"] = sczmj;
}
index++;
if(!_dic.ContainsKey(index))
_dic.Add(index,rowCount);
}
}
private void Data1_BeforePrint(object sender, EventArgs e)
{
rowIndex++;
float h = Data1.Height;
if(_dic.ContainsKey(rowIndex))
{
if(_dic[rowIndex]>0)
{
Text19.Height = Text20.Height = Text43.Height = _dic[rowIndex]*h;
Text19.Visible = Text20.Visible = Text43.Visible = true;
}
else
{
Text19.Visible = Text20.Visible = Text43.Visible = false;
}
}
}
}
fast report 报表列中跨行合并功能解决办法
最新推荐文章于 2024-01-28 19:10:46 发布