zoukankan      html  css  js  c++  java
  • C#(winform)调用AcReport文档

    1、引用AcReport.dll组件

    2、注册组件

            /// <summary>
            /// 注册组件
            /// </summary>
            AcReport.AcRptEngine mac;
            private void SetAcRegisterInfo()
            {
                int ErrCode = 0;
                string ErrMsg = "";
                mac.SetRegisterInfo("280853595D4033132E36CC85879681948B9690A4978D8A85CA878B89C49595DED5D2D1D1D7D" +
                "3D7DCD1DDCDD6D78680D8AD0CFAADC1DDF8F566934E1BAD6B8B296DB4BC968283E9F8FE23728EF0F71F9417C40DB6D30C729ECD01D774746D80E3EE321C6D",
    
                    "天方工作室(acreport@sina.com qq:1655373859)", "23bd", "", "", "", "", ref ErrCode, ref ErrMsg);
                if (ErrCode != 0)
                    MessageBox.Show(ErrMsg);
            }
    

    3、窗体加载时候初始化:注册AcReport组件

     ReportPath = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
     mac = new AcReport.AcRptEngine();
     SetAcRegisterInfo();
    

      实例化一个AcRptEngine对象,AcReport中只有一个实例化对象AcRptEngine。

    4、定义dapper访问数据库

            static string sqlconnectionString = ConfigurationManager.ConnectionStrings["constr"].ToString();//获取App.config中的连接字符串
            public static SqlConnection SqlConnection()
            {
                var connection = new SqlConnection(sqlconnectionString);
                connection.Open();
                return connection;
            }
    

     5、查询数据

                var conn = SqlConnection();
                string sql = "select  * from [User]";
                var list = conn.Query<UserInfo>(sql).ToList();
    

     6、构建内存表

                if (mac.CustDataBuilder.TableExist("person"))//判断内存表名是否存在,存在就移除,避免数据重复
                {
                    mac.CustDataBuilder.RemoveTable("person");                
                }
                mac.CustDataBuilder.NewTable("person");
                mac.CustDataBuilder.AddStringField("person", "Account", 20);
                mac.CustDataBuilder.AddStringField("person", "RealName", 30);
                mac.CustDataBuilder.OpenTable("person");

     7、内存表中添加数据

                
    //待解决问题:清空内存表数据
    foreach (var item in list)//将查询到的数据循环添加到内存表中 { mac.CustDataBuilder.AppendEmptyRow("person"); mac.CustDataBuilder.SetFieldValue("person", "Account", item.Account); mac.CustDataBuilder.SetFieldValue("person", "RealName", item.RealName); }

    string path = ReportPath + @" eportsuser.apt";//设置数据模板路径
                mac.ShowDesigner();//调用设计器,设计模板
                mac.LoadFromFile(path);//加载模板
                mac.Preview();//预览模板
  • 相关阅读:
    BNUOJ 12756 Social Holidaying(二分匹配)
    HDU 1114 Piggy-Bank(完全背包)
    HDU 2844 Coins (多重背包)
    HDU 2602 Bone Collector(01背包)
    HDU 1171 Big Event in HDU(01背包)
    HDU 2571 命运 (入门dp)
    HDU 1069 Monkey and Banana(最长递减子序列)
    HDU 1160 FatMouse's Speed (最长上升子序列)
    HDU 2594 KMP
    POJ 3783 Balls --扔鸡蛋问题 经典DP
  • 原文地址:https://www.cnblogs.com/CelonY/p/14369764.html
Copyright © 2011-2022 走看看