活动报告在报告启动事件期间动态地将控件添加到页面时如何分页?

时间:2013-12-09 08:51:12

标签: c# asp.net report page-break activereports

我在我的数据库上添加表格,并从后面的代码动态创建表格。问题是我想在创建表后进行分页。

由于我无法添加对详细事件的控制,因此我只能在报告开始时进行一次分页。因此,是否有任何可能的方法来不断添加分页符?

这是我的结构

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
}

这是我想要做的样本。我希望每当创建一个表完成一个循环时插入分页符。它可以是新的页面或分页符,只要它在一个循环后进入新页面就可以了。

1 个答案:

答案 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