找回密码
 立即注册

QQ登录

只需一步,快速开始

302606129

论坛元老

7

主题

20

帖子

4375

积分

论坛元老

积分
4375

活字格认证

[已处理] c1report

302606129
论坛元老   /  发表于:2015-1-20 14:30  /   查看:4799  /  回复:2
C1Report绑定好数据源后,成功预览数据后,如何连接打印机打印数据
private void print()
        {
      
            //获得报表的数据源
            DataSet dataset = new DataSet();
            using (wmihealthEntities context = new wmihealthEntities())
            {
                string sql = "select * from customer_master_index where CUSTOMER_ID=1";
                MySqlDataAdapter adapter = new MySqlDataAdapter(sql, (MySqlConnection)context.Database.Connection);
                adapter.Fill(dataset, "customer_master_index");
            }
            //设置报表的数据源
            this.c1Report1.DataSource.Recordset = dataset.Tables[0];


            //设置布局方向
            Layout l = c1Report1.Layout;
            l.Orientation = OrientationEnum.Portrait;
            l.Width = 20.5 * 3440; // 8.5 - margins

            //创建报表页眉
            Section s = c1Report1.Sections[SectionTypeEnum.Header];
            s.Height = 2440;
            s.Visible = true;
            s.BackColor = Color.FromArgb(200, 200, 200);
            Field f = s.Fields.Add("Fld_Title", "客户信息报表", 0, 0, 10000, 2440);
            f.Font.Size = 24;
            f.Font.Bold = true;
            f.ForeColor = Color.FromArgb(100, 0, 0);

            //创建报表页脚
            s = c1Report1.Sections[SectionTypeEnum.PageFooter];
            s.Height = 500;
            s.Visible = true;
            f = s.Fields.Add("FldFtrLeft", @"""Customers: Printed on "" & Now", 0, 0, 4000, 300);
            f.Calculated = true;
            f = s.Fields.Add("FldFtrRight", @""&quotage "" & Page & "" of "" & Pages", 4000, 0, 4000, 300);
            f.Calculated = true;
            f.Align = FieldAlignEnum.RightTop;
            f.Width = c1Report1.Layout.Width - f.Left;
            f = s.Fields.Add("FldLine", "", 0, 0, c1Report1.Layout.Width, 20);
            f.ShapeType = ShapeType.Line;
            f.BorderStyle = BorderStyleEnum.Solid;
            f.BorderColor = Color.FromArgb(0, 0, 200);

            //创建字段标题
            s = c1Report1.Sections[SectionTypeEnum.PageHeader];
            s.Height = 500;
            s.Visible = true;
            f.Width = 400;
            c1Report1.Font.Bold = true;
            f = s.Fields.Add("Lbl_CUSTOMER_ID", "客户编号", 0, 100, 3400, 300);
            f = s.Fields.Add("Lbl_NAME", "客户姓名", 0, 500, 1900, 250);
            f = s.Fields.Add("Lbl_NAME_PHONETIC", "姓名拼音", 0, 1000, 1900, 300);
            f = s.Fields.Add("Lbl_SEX_CODE", "性别编码", 0, 1500, 1900, 300);
            f = s.Fields.Add("Lbl_DATE_OF_BIRTH", "出生日期", 0, 2000, 1900, 300);
            f = s.Fields.Add("Lbl_BIRTH_PLACE", "出生地", 0, 2500, 1900, 300);
            f = s.Fields.Add("Lbl_CITIZENSHIP", "国籍", 0, 3000, 1900, 300);
            f = s.Fields.Add("Lbl_NATION_CODE", "民族", 0, 3500, 1900, 300);
            f = s.Fields.Add("Lbl_ID_NO", "身份证号", 0, 4000, 1900, 300);
            f = s.Fields.Add("Lbl_IDENTITY_CODE", "身份等级", 0, 4500, 1900, 300);
            f = s.Fields.Add("Lbl_CHARGE_TYPE_CODE", "费别编码", 0, 5000, 1900, 300);
            f = s.Fields.Add("Lbl_MAILING_ADDRESS", "通讯地址", 0, 5400, 1900, 300);
            f = s.Fields.Add("Lbl_ZIP_CODE", "邮编", 0, 5800, 1900, 300);
            f = s.Fields.Add("Lbl_PHONE_NUMBER_HOME", "家庭电话号码", 0, 6200, 1900, 300);
            f = s.Fields.Add("Lbl_NEXT_OF_KIN", "联系人姓名(亲属姓名)", 0, 6600, 1900, 300);
            f = s.Fields.Add("Lbl_RELATIONSHIP", "与联系人关系", 0, 7000, 1900, 300);
            f = s.Fields.Add("Lbl_PHONE_NUMBER_MOBILE", "移动电话", 0, 7400, 1900, 300);
            f = s.Fields.Add("Lbl_NEXT_OF_KIN_ADDR", "联系人地址", 0, 7800, 1900, 300);
            f = s.Fields.Add("Lbl_NEXT_OF_KIN_PHONE", "联系人电话号码", 0, 8200, 1900, 300);
            f = s.Fields.Add("Lbl_CREATE_DATE", "创建日期", 0, 8600, 1900, 300);
            f = s.Fields.Add("Lbl_OPERATOR", "最后修改记录操作员姓名", 0, 9000, 1900, 300);
            f = s.Fields.Add("Lbl_OCCUPATION_CODE", "工作类别", 0, 9400, 1900, 300);
            f = s.Fields.Add("Lbl_PHONE_NUMBER_MOBILE", "手机号码", 0, 9800, 1900, 300);
            f = s.Fields.Add("Lbl_MARITAL_STATUS_CODE", "婚姻情况", 0, 10200, 1900, 300);
            c1Report1.Font.Bold = false;
            f = s.Fields.Add("FldLine", "", 0, 400, c1Report1.Layout.Width, 20);
            f.ShapeType = ShapeType.Line;
            f.LineWidth = 50;
            f.BorderStyle = BorderStyleEnum.Solid;
            f.BorderColor = Color.FromArgb(100, 100, 100);

            //创建数据字段
            s = c1Report1.Sections[SectionTypeEnum.Detail];
            s.Height = 250;
            s.Visible = true;
            f = s.Fields.Add("Fld_CUSTOMER_ID", "CUSTOMER_ID", -1250, -10435, 3400, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_NAME", "NAME", 250, -9985, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_NAME_PHONETIC", "NAME_PHONETIC", 250, -9485, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_SEX_CODE", "SEX_CODE", 250, -8985, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_DATE_OF_BIRTH", "DATE_OF_BIRTH", 2000, -8485, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_BIRTH_PLACE", "BIRTH_PLACE", 250, -7985, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_CITIZENSHIP", "CITIZENSHIP", 250, -7485, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_NATION_CODE", "NATION_CODE", 250, -6985, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_ID_NO", "ID_NO", 1800, -6485, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_IDENTITY_CODE", "IDENTITY_CODE", 250, -6085, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("CHARGE_TYPE_CODE", "CHARGE_TYPE_CODE", 250, -5585, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_MAILING_ADDRESS", "MAILING_ADDRESS", 250, -5085, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_ZIP_CODE", "ZIP_CODE", 1700, -4685, 450, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_PHONE_NUMBER_HOME", &quotHONE_NUMBER_HOME", 250, -3985, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_NEXT_OF_KIN", "NEXT_OF_KIN", 250, -3485, 450, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_RELATIONSHIP", "RELATIONSHIP", 1250, -2985, 850, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_NEXT_OF_KIN_ADDR", "NEXT_OF_KIN_ADDR", 1250, -2985, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_NEXT_OF_KIN_PHONE", "NEXT_OF_KIN_PHONE", 250, -2485, 1650, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_CREATE_DATE", "CREATE_DATE", 2250, -1985, 2050, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_OPERATOR", "OPERATOR", 2250, -985, 2450, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_OCCUPATION_CODE", "OCCUPATION_CODE", 250, -485, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_PHONE_NUMBER_MOBILE", &quotHONE_NUMBER_MOBILE", -3000, -300, 1900, 250);
            f.Calculated = true;
            f = s.Fields.Add("Fld_MARITAL_STATUS_CODE", "MARITAL_STATUS_CODE", 250, -100, 1900, 250);
            f.Calculated = true;

            //设置预览面板的报表
            c1PreviewPane1.Document = c1Report1.C1Document;   
        }

2 个回复

倒序浏览
302606129
论坛元老   /  发表于:2015-1-20 14:43:00
沙发
如何生成XML文档,并用C1report加载并打印出来呢?用代码实现
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-1-20 17:52:00
板凳
回复 2楼302606129的帖子

保存成 XML 文档:
C:\Users\用户名\Documents\ComponentOne Samples\Studio for WinForms\C1Report\C1Report\Cs\ExportXml

C1Report 打印请参考 Demo:
C:\Users\用户名\Documents\ComponentOne Samples\Studio for WinForms\C1Report\C1Report\Cs\ReportBrowser
关键代码:

  1.                 private bool PrintReport()
  2.                 {
  3.                         // load report
  4.                         if (!LoadReport()) return false;

  5.                         // show print dialog
  6.                         PrintDocument pDoc = c1Report1.Document;
  7.                         PrintDialog pDlg = new PrintDialog();
  8.                         pDlg.Document = pDoc;
  9.                         DialogResult dr = pDlg.ShowDialog();

  10.                         // print the document
  11.                         if (dr == DialogResult.OK)
  12.                         {
  13.                                 pDoc.Print();
  14.                                 return true;
  15.                         }

  16.                         // canceled
  17.                         return false;
  18.                 }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部