比较了一下,效果应该是一致的,不知道你说的不一样是指哪里,
为了对比效果比较明显,做了如下的代码调整
- private void Form1_Load(object sender, System.EventArgs e)
- {
- // populate grid
- string mdbFile =
- Environment.GetFolderPath(Environment.SpecialFolder.Personal) +
- @"\ComponentOne Samples\Common\C1NWIND.MDB";
- string conn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbFile + ";";
- string rs = "select * from customers";
- OleDbDataAdapter da = new OleDbDataAdapter(rs, conn);
- da.Fill(dt);
- _flex.DataSource = dt;
- _flex.Cols[0].Width = _flex.Rows[0].HeightDisplay;
- _flex.Cols[2].Width = 160;
- _flex.ShowCursor = true;
-
- }
- // build report to show all fields in a flex control
- private void BuildReportDefinition()
- {
- // initialize report
- clfr.Clear();
- clfr.Layout.Orientation = OrientationEnum.Landscape;
- clfr.Layout.MarginLeft = 500;
-
- // add header section
- Section s = clfr.Sections[SectionTypeEnum.Header];
- s.Visible = true;
- s.Height = 700;
- Field f = s.Fields.Add("fldTitle", "Flex-based report", 0, 0, 4000, 700);
- f.Font = new Font("Tahoma", 14, FontStyle.Bold);
- // add page header and detail sections
- Section sHdr = clfr.Sections.PageHeader;
- sHdr.Visible = true;
- sHdr.Height = 400;
- Section sDtl = clfr.Sections.Detail;
- sDtl.Visible = true;
- sDtl.Height = 300;
-
- // populate header and detail sections
- Font fntHdr = new Font("Tahoma", 8, FontStyle.Bold | FontStyle.Underline);
- Font fntDtl = new Font("Tahoma", 8, FontStyle.Regular);
- Single twidth=200;//初始左边距,用于累计下一字段的left
- TextField t1;
- foreach (Column col in _flex.Cols)
- {
- // calculate field rectangle in twips
- // create field in page header section
- t1 = new TextField();
- t1.Name = "fh" + col.Name;
- t1.Text = col.Name;
- t1.Left = twidth;
- t1.Width = col.WidthDisplay * 1440/96;
- t1.Height = (int)sHdr.Height;
- sHdr .Fields.Add(t1);
- // create field in detail section
- t1 = new TextField();
- t1.Name = "fd" + col.Name;
- t1.Text.Expression = col.Name;
- t1.WordWrap=false;
- t1.Left = twidth;
- t1.Width = col.WidthDisplay * 1440/96;
- t1.Height = (int)sHdr.Height;
- t1.Border.Style = C1.Win.C1Document.DashStyle.Solid;
- t1.Border.Color = Color.Red;
- t1.Border.Width = 2;
- t1.Border.Bottom.Width = 0;
- sDtl.Fields.Add(t1);
- twidth = twidth + col.WidthDisplay * 1440/96; //将左边距的值设到上一字段后的位置
- }
-
- clfr.DataSource.RecordSourceType = C1.Win.FlexReport.RecordSourceType.Auto;
- clfr.DataSource.Recordset = dt;
- }
复制代码 |