//转换为报表需要的参数格式 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); }
/// <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)); }
/// <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); }
/// <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; } }