2013-12-09 1 views
0

데이터베이스에 테이블 기반을 추가하고 코드에서 테이블을 동적으로 만듭니다. 문제는 테이블을 만든 후에 페이지 나누기를 원한다는 것입니다.활성 보고서 보고서 시작 이벤트 동안 페이지에 동적으로 컨트롤을 추가 할 때 페이지 나누기 방법?

세부 이벤트에 대한 제어를 추가 할 수 없으므로 보고서 시작시 한 번만 페이지 나누기를 할 수 있습니다. 따라서 끊임없이 페이지 나누기를 추가 할 수있는 방법이 있습니까?

여기 이것은 내가 뭘하려고 오전 샘플 내 구조

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

각 'for each'루프 다음에 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

:

따라서, 코드 같은 것

관련 문제