我在我的数据库上添加表格,并从后面的代码动态创建表格。问题是我想在创建表后进行分页。
由于我无法添加对详细事件的控制,因此我只能在报告开始时进行一次分页。因此,是否有任何可能的方法来不断添加分页符?
这是我的结构
private void Report_ReportStart(object sender, EventArgs e)
{
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection(rptFnc.GetConnStr());
cnn.Open();
using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand())
{
string userID = GlobalFnc.GlobalSetting.UserID;
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "exec storedprocedure"
using (System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cmd))
{
da.Fill(dtWorkplaceID);
}
}
cnn.Close();
try
{
if (dtData.Rows.Count > 0)
{
foreach (DataRow drData in dtData.Rows)
{
CreateTable(drData ["Data"].ToString(), decimal.Parse(drData["Data"].ToString()));
detail.NewPage = NewPage.After;
}
}
}
}
public void CreateTable(string Data,decimal data2)
{
Label Data = new Label();
Data.Text = data;
Data.Height = 0.25F;
Data.Width = 1.0F;
Data.Location = new PointF(0F,0F);
Data.border.style = BorderLineStyle.Solid;
detail.control.add(data);
Continue ........... To Create a Table
}
这是我想要做的样本。我希望每当创建一个表完成一个循环时插入分页符。它可以是新的页面或分页符,只要它在一个循环后进入新页面就可以了。
答案 0 :(得分:1)
建议你在每个'循环'之后使用PageBreak控制。这会在每个表之后添加分页符。
因此,您的代码就像:
if (dtData.Rows.Count > 0)
{
foreach (DataRow drData in dtData.Rows)
{
CreateTable(drData ["Data"].ToString(), decimal.Parse(drData["Data"].ToString()));
//detail.NewPage = NewPage.After;
}
// Add a PageBreak control here.
}`
此致 Mohita