Pergunta only some columns pass to subrepots

  • 2012년 3월 20일 화요일 오전 9:36
     
      코드 있음

    hi all, i got report with parameter and 2 subreports. this works almost fine, but subreports are not filled with all columns that i want, just with the last, where is the problem, can some1 help me pls? some code&pictures (tables dt1, dt2 are filled up correctly) (first picture is how it should look like, and second how it look like)

    public RPodielnik(string IDpod, DataTable table1, DataTable table2)
            {//constructor of the form with crystalreportviewer
                InitializeComponent();
                id = IDpod;
                dt1 = table1;
                dt2 = table2;
            }
    
            private void RPodielnik_Load(object sender, EventArgs e)
            {
                ListPodielnika rprt = new ListPodielnika();
    
                ParameterFieldDefinitions crParameterFieldDefinitions;
                ParameterFieldDefinition crParameterFieldDefinition;
                ParameterValues crParameterValues = new ParameterValues();
                ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();            
    
                ReportDocument lv=rprt.OpenSubreport("lv");
                ReportDocument kategorie = rprt.OpenSubreport("kategorie");
                lv.SetDataSource(dt1);
                kategorie.SetDataSource(dt2);            
                
                crParameterDiscreteValue.Value = id;
                crParameterFieldDefinitions = rprt.DataDefinition.ParameterFields;
                crParameterFieldDefinition = crParameterFieldDefinitions["idpodielnik"];
                crParameterValues = crParameterFieldDefinition.CurrentValues;
    
                crParameterValues.Clear();
                crParameterValues.Add(crParameterDiscreteValue);
                crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
    
                crystalReportViewer1.ReportSource = rprt;
                crystalReportViewer1.Refresh();
            }
    //filling up datatables, checked runtime, they are ok
    ds = new DSurbar();
                dt1 = ds.Tables.Add("kategorie");
                dt1.Columns.Add("kategoria", typeof(string));
                dt1.Columns.Add("rozloha", typeof(string));
    
                dt2 = ds.Tables.Add("lv");
                dt2.Columns.Add("lv", typeof(string));
                dt2.Columns.Add("parcela", typeof(string));
                dt2.Columns.Add("podiel", typeof(string));
                dt2.Columns.Add("rozloha", typeof(string));
    
    foreach(DataRow row in dataSet2.Tables[0].Rows)
                    {
                        DataRow dr = dt1.NewRow();
                        dr[0] = row.ItemArray[0].ToString();
                        dr[1] = row.ItemArray[1].ToString();
                        dt1.Rows.Add(dr);
                    }
                    foreach (DataRow row in dataSet3.Tables[0].Rows)
                    {
                        DataRow dr = dt2.NewRow();
                        dr[0] = row.ItemArray[0].ToString();
                        dr[1] = row.ItemArray[1].ToString();
                        dr[2] = row.ItemArray[3].ToString();
                        dr[3] = row.ItemArray[4].ToString();
                        dt2.Rows.Add(dr);
                    }