我有一个数组,我使用Lamda表达式进行过滤,并使用它来填充第一个表格 Form1 上的第一个datagridView datagridView 1 ,然后将其值传递给第二个表格 Form2 上的第二个DatagridView datagridView2 .

当我在Crystal报表中加载 DatagridView2 值时,字段以相反的顺序显示,其中一些字段丢失,如下图所示 . Missing fields in CR

这些字段由连接表提供 .

水晶报告页面设置:大小= A3(42厘米X 29,67厘米),方向=横向 . 当我更改页面设置时,字段仍然缺失 . 我在Visual Studio 2010和水晶报告2008中使用水晶报告 .

此CR加载代码:

try
        {

            ReportDocument report = new ReportDocument();

            ConnectionInfo myConnectionInfo = new ConnectionInfo();

            string str = ConfigurationManager.ConnectionStrings["GUISuiviMmk.Properties.Settings.Setting"].ConnectionString;
            string dir = GUISuiviMmk.Properties.Settings.Default["dirReportFiles"].ToString();

            string aServeur = str.Substring(str.IndexOf("=") + 1, str.IndexOf(";") - str.IndexOf("=") - 1);
            str = str.Substring(str.IndexOf(";") + 1);

            dt = (DataTable)dtgEtat.DataSource;

            string aBaseDonnée = str.Substring(str.IndexOf("=") + 1, str.IndexOf(";") - str.IndexOf("=") - 1);
            str = str.Substring(str.IndexOf(";") + 1);

            string aSecurity = str.Substring(str.IndexOf("=") + 1, str.IndexOf(";") - str.IndexOf("=") - 1);
            str = str.Substring(str.IndexOf(";") + 1);

            string aUser = str.Substring(str.IndexOf("=") + 1, str.IndexOf(";") - str.IndexOf("=") - 1);
            str = str.Substring(str.IndexOf(";") + 1);

            string aPassword = str.Substring(str.IndexOf("=") + 1 );

            str = ConfigurationManager.ConnectionStrings["GUISuiviMmk.Properties.Settings.Setting"].ConnectionString;

            myConnectionInfo.ServerName = aServeur;
            myConnectionInfo.DatabaseName = aBaseDonnée;
            myConnectionInfo.UserID = aUser;
            myConnectionInfo.Password = aPassword;

            String Path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            Path = System.IO.Path.Combine(dir, DocRpt);
            report.Load(Path);

            report.SetDatabaseLogon(aUser, aPassword, aServeur, aBaseDonnée);

            report.SetDataSource(dt);
            crViewerEtats.ReportSource = null;
            crViewerEtats.ReportSource = report;
            crViewerEtats.RefreshReport();

        }
        catch (Exception ex)
        {                
            MessageBox.Show(ex.Message);
        }

错误在哪里?