Example #1
0
 //转换为报表需要的参数格式
 private DIYReport.ReportModel.RptParamList convertToRptParam(Dictionary <string, object> pars)
 {
     DIYReport.ReportModel.RptParamList lstParams = new DIYReport.ReportModel.RptParamList();
     foreach (string key in pars.Keys)
     {
         lstParams.Add(new DIYReport.ReportModel.RptParam(key, pars[key]));
     }
     return(lstParams);
 }
Example #2
0
        /// <summary>
        /// 构造一个新的报表对象。
        /// </summary>
        /// <param name="dataSource">数据需要的数据源。</param>
        /// <param name="userParamList">报表参数列表,可以为空</param>
        /// <param name="reportData">系列化为XML文档的报表数据,为空的话那么将创建只有一个detail section 的空报表。</param>
        public static RptReport CreateReport(DataSet dataSource, DIYReport.ReportModel.RptParamList userParamList, byte[] reportXmlData)
        {
            string reportStr = string.Empty;

            if (reportXmlData != null && reportXmlData.Length > 0)
            {
                reportStr = System.Text.Encoding.UTF8.GetString(reportXmlData);
            }

            return(CreateReport(dataSource, userParamList, reportStr));
        }
Example #3
0
        /// <summary>
        /// 把定单标题中相关的字段转换成报表用户参数的方式
        /// </summary>
        /// <returns></returns>
        public static DIYReport.ReportModel.RptParamList RowValueToParamList(DataRow drData)
        {
            if (drData == null || drData.Table == null)
            {
                return(null);
            }
            DataTable dt = drData.Table;

            DIYReport.ReportModel.RptParamList paramList = new DIYReport.ReportModel.RptParamList();
            paramList.Clear();
            foreach (DataColumn dc in dt.Columns)
            {
                object objValue = drData[dc.ColumnName];
                paramList.Add(new DIYReport.ReportModel.RptParam(dc.ColumnName, objValue));
            }
            return(paramList);
        }
Example #4
0
        /// <summary>
        /// 构造一个新的报表对象。
        /// </summary>
        /// <param name="dataSource">数据需要的数据源。</param>
        /// <param name="userParamList">报表参数列表,可以为空</param>
        /// <param name="reportData">系列化为XML文档的报表数据,为空的话那么将创建只有一个detail section 的空报表。</param>
        public static RptReport CreateReport(DataSet dataSource, DIYReport.ReportModel.RptParamList userParamList, string reportXmlData)
        {
            RptReport report = null;

            if (reportXmlData == null || reportXmlData.Length == 0)
            {
                report = NewReport();
            }
            else
            {
                report = DIYReport.ReportReader.Instance().ReadFromXmlString(reportXmlData);
            }
            report.DataSource    = dataSource;
            report.UserParamList = userParamList;
            if (report.ReportDataWidth == 0)
            {
                report.ReportDataWidth = report.PaperSize.Width - report.Margins.Left - report.Margins.Right;
            }
            return(report);
        }
        }         // End GetEditStyle()

        #region 内部处理相关...
        //
        //增加数据库绑定字段
        private void addFieldList(ListBox pLst)
        {
            pLst.Items.Clear();
            IList fieldList = DIYReport.UserDIY.DesignEnviroment.CurrentReport.DesignField;

            DIYReport.ReportModel.RptObj.RptExpressBox obj = DIYReport.UserDIY.DesignEnviroment.CurrentRptObj as DIYReport.ReportModel.RptObj.RptExpressBox;

            switch (obj.ExpressType)
            {
            case DIYReport.ReportModel.ExpressType.Field:
                if (fieldList != null && fieldList.Count > 0)
                {
                    foreach (object dc in fieldList)
                    {
                        if (dc.GetType().Name == "RptFieldInfo")
                        {
                            DIYReport.GroupAndSort.RptFieldInfo dcInfo = dc as DIYReport.GroupAndSort.RptFieldInfo;
                            if (dcInfo.Description == null || dcInfo.Description.Trim().Length == 0)
                            {
                                continue;
                            }
                            pLst.Items.Add(dcInfo.Description);
                        }
                        else
                        {
                            pLst.Items.Add(dc.ToString());
                        }
                    }
                }
                break;

            case DIYReport.ReportModel.ExpressType.SysParam:
                Type         clsType = System.Type.GetType("DIYReport.Express.ExSpecial");
                MethodInfo[] infos   = clsType.GetMethods();
                foreach (MethodInfo info in infos)
                {
                    if (info.IsPublic && info.IsStatic)
                    {
                        bool hasExist = hasAddStr(pLst, info.Name);
                        if (!hasExist)
                        {
                            pLst.Items.Add(info.Name);
                        }
                    }
                }
                break;

            case DIYReport.ReportModel.ExpressType.UserParam:                     //用户外部参数
                DIYReport.ReportModel.RptParamList paramList = DIYReport.UserDIY.DesignEnviroment.CurrentReport.UserParamList;
                if (paramList != null)
                {
                    foreach (DIYReport.ReportModel.RptParam param in paramList.Values)
                    {
                        pLst.Items.Add(param.ParamName);
                    }
                }
                break;

            case DIYReport.ReportModel.ExpressType.Express:
                Type         exclsType = System.Type.GetType("DIYReport.Express.ExStatistical");
                MethodInfo[] exinfos   = exclsType.GetMethods();
                foreach (MethodInfo info in exinfos)
                {
                    if (info.IsPublic && info.IsStatic)
                    {
                        bool hasExist = hasAddStr(pLst, info.Name);
                        if (!hasExist)
                        {
                            if (info.Name != "GetStatisticalValue")
                            {
                                pLst.Items.Add(info.Name);
                            }
                        }
                    }
                }
                break;

            default:
                break;
            }
        }