/// <summary> /// 绑定所有报表类型 /// </summary> /// <param name="IsSelectAll">是否显示 无父类 选项</param> public void DataBindEx(bool IsSelectAll) { List <T_Report_Type_MDL> list = new T_Report_Type_BLL().GetModelList(""); ddl_Report_Type.DataSource = list; ddl_Report_Type.DataTextField = "ReportTypeName"; ddl_Report_Type.DataValueField = "ReportTypeID"; ddl_Report_Type.DataBind(); if (IsSelectAll) { ListItem item = new ListItem("无父类", "0"); ddl_Report_Type.Items.Insert(0, item); } }
/// <summary> /// 根据工程ID 将报表导出PDF,注意:报表必须预先在T_Report做出记录 , /// 新生成的报表PDF文件名: pdfFileName=String.Concat(SingleProjectID, "-", ReportCode, ".pdf"); /// 报表PDF存放路径: Server.MapPath("../Upload/TempReport/" + pdfFileName /// </summary> /// <param name="ids">ids 工程id或案卷id</param> /// <param name="reportCode">报表类型</param> /// <param name="delOldReportPdf">是否删除已生成的PDF,删除则重新生成</param> /// <returns></returns> public static string ReportExportPDF(string ids, string reportCode, bool delOldReportPdf) { string pdfFileName = String.Concat(ids, "-", reportCode, ".pdf"); try { if (System.IO.File.Exists(HttpContext.Current.Server.MapPath("../Upload/TempReport/" + pdfFileName))) { if (delOldReportPdf) { System.IO.File.Delete(HttpContext.Current.Server.MapPath("../Upload/TempReport/" + pdfFileName)); } else { return(pdfFileName); } } List <T_Report_MDL> ltReport = new T_Report_BLL().GetModelList("lower(ReportCode)='" + reportCode.ToLower() + "'"); if (ltReport == null || ltReport.Count < 1) { return(SystemSet._RETURN_FAILURE_VALUE + "报表数据不存在!"); } T_Report_MDL trMdl = ltReport[0]; T_Report_Type_MDL trtMdl = new T_Report_Type_BLL().GetModel(Common.ConvertEx.ToInt(trMdl.ReportTypeID)); if (trMdl == null || trtMdl == null) { return(SystemSet._RETURN_FAILURE_VALUE + "报表数据不存在!"); } if (!Directory.Exists(HttpContext.Current.Server.MapPath("../ajax"))) //如果不用报表空间预先加载报表,必须先创建此目录 { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("../ajax")); } if (!Directory.Exists(HttpContext.Current.Server.MapPath("../Upload/TempReport/")))//存放报表PDF的临时目录 { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("../Upload/TempReport/")); } string reportPath = HttpContext.Current.Server.MapPath("../Report/ReportFiles/" + trtMdl.ReportTypeName + "/" + trMdl.ReportFilePath); if (System.IO.File.Exists(reportPath)) { StiReport Report = new StiReport(); Report.Load(reportPath);//加载报表 DataSet ds = new DataSet(); if (reportCode.ToLower() == "zrs") { string strSql = "select a.*,b.ReadyCheckBookCode from T_SingleProject a inner join T_ReadyCheckBook b "; strSql += "on a.SingleProjectID=b.SingleProjectID where a.SingleProjectID=" + ids + " "; ds = new T_Other_BLL().GetDataSet(strSql); } else if (reportCode.ToLower() == "rkz") { string strSql = "select a.*,b.ReadyCheckBookCode from T_SingleProject a inner join T_ReadyCheckBook b "; strSql += "on a.SingleProjectID=b.SingleProjectID where a.SingleProjectID=" + ids + " "; ds = new T_Other_BLL().GetDataSet(strSql); } else if (reportCode.ToLower() == "zms") { string strSql = "select P.gcbm,P.jsdw,P.gcmc,P.ghxkzh,P.gcdd,P.sgxkzh," + " (CASE P.ProjectType WHEN 1 then P1.jzmj WHEN 2 THEN P2.jzmj WHEN 3 THEN '' END) AS JZMJ, " + " (CASE P.ProjectType WHEN 1 then P1.gcjs WHEN 2 THEN P2.zjs WHEN 3 THEN '' END) AS gczj, " + " P.kgsj,P.jgsj from T_SingleProject P " + " LEFT JOIN a_single_project P1 ON P.SingleProjectID=P1.SingleProjectID" + " LEFT JOIN b_single_project P2 ON P.SingleProjectID=p2.SingleProjectID" + " WHERE P.SingleProjectID=" + ids; T_Other_BLL otherBLL = new T_Other_BLL(); ds = otherBLL.GetDataSet(strSql); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { ds.Tables[0].Columns.Add(new DataColumn("wzCount")); //文字卷数 ds.Tables[0].Columns.Add(new DataColumn("tzCount")); //图纸卷数 } ds = new T_Other_BLL().GetDataSet(strSql); } else if (reportCode.ToLower() == "archivefengpi") { string strSql = "SELECT DH,ShortDH,AJTM,BZDW,lrsj,zzsj,t_systeminfo.systeminfoname as sys_mj,sys2.systeminfoname as sys_bgqx,XH,"; strSql += "(SELECT COUNT(0) FROM T_Archive WHERE SINGLEPROJECTID=T_Archive.SINGLEPROJECTID) as jzcs, "; strSql += "(select SUM(isnull(ManualCount,0)) from t_filelist where t_filelist.ArchiveID=T_Archive.ArchiveID)as TotalPageNums "; strSql += "FROM T_Archive left join t_systeminfo on t_archive.mj=t_systeminfo.systeminfoid left join t_systeminfo sys2 "; strSql += "on t_archive.bgqx=sys2.systeminfoid WHERE ARCHIVEID=" + ids; ds = new T_Other_BLL().GetDataSet(strSql); } else if (reportCode.ToLower() == "archivemulu") { string strSql = "select (ROW_NUMBER() over (PARTITION by ArchiveID ORDER BY OrderIndex)) as RowID,archiveid, "; strSql += "w_t_h,Title,zrr,lrsj,StartTime,PagesCount,ManualCount,yc "; strSql += "from t_filelist where archiveid in(" + ids + ") Order by ArchiveID,OrderIndex asc "; ds = new T_Other_BLL().GetDataSet(strSql); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) //重排页次 { DataTable dt = ds.Tables[0]; int PageIndexCount = 1; for (var i = 0; i < dt.Rows.Count; i++) { if (i == 0) { dt.Rows[i]["PagesCount"] = PageIndexCount; dt.Rows[i]["yc"] = PageIndexCount; } else { if ((i + 1) < dt.Rows.Count && ConvertEx.ToInt(dt.Rows[i]["archiveid"]) != ConvertEx.ToInt(dt.Rows[i - 1]["archiveid"])) { PageIndexCount = 1; } else { PageIndexCount += ConvertEx.ToInt(dt.Rows[i - 1]["ManualCount"]); } dt.Rows[i]["PagesCount"] = PageIndexCount; dt.Rows[i]["yc"] = PageIndexCount; if (((i + 1) < dt.Rows.Count && ConvertEx.ToInt(dt.Rows[i]["archiveid"]) != ConvertEx.ToInt(dt.Rows[i + 1]["archiveid"])) || (i + 1) >= dt.Rows.Count) { int lastManualCount = ConvertEx.ToInt(dt.Rows[i]["ManualCount"]);//每个案卷中的最后一份文件页次都是 *-*格式 if (lastManualCount > 1) { dt.Rows[i]["yc"] = string.Concat(ConvertEx.ToInt(dt.Rows[i]["PagesCount"]), "-", ConvertEx.ToInt(dt.Rows[i]["PagesCount"]) - 1 + lastManualCount); } else if (lastManualCount == 1) { dt.Rows[i]["yc"] = string.Concat(dt.Rows[i]["yc"], "-", dt.Rows[i]["yc"]); } } } } } } else if (reportCode.ToLower() == "juanneibeikao") { string strSql = "select T_Archive.lrr,T_Archive.lrsj,T_Archive.shr,T_Archive.shsj,sum(isnull(manualcount,0)) wzz, "; strSql += "sum(isnull(t_filelist.tzz,0)) tzz,sum(isnull(zpz,0)) zpz,T_Archive.note from t_filelist,T_Archive where "; strSql += "t_filelist.ArchiveID=T_Archive.ArchiveID AND t_filelist.archiveid=" + ids + " group by T_Archive.lrr,"; strSql += " T_Archive.shr,T_Archive.note,T_Archive.lrsj,T_Archive.shsj"; ds = new T_Other_BLL().GetDataSet(strSql); } else if (reportCode.ToLower() == "printarchive") { string strSql = "select w_t_h,Title,zrr,lrsj,StartTime,PagesCount from t_filelist where Status<>0 AND "; strSql += "SingleProjectID=" + ids + " Order by bh "; ds = new T_Other_BLL().GetDataSet(strSql); } if (ds != null && ds.Tables.Count > 0) { Report.RegData("Report", ds); Report.Render(false); Report.ExportDocument(StiExportFormat.Pdf, HttpContext.Current.Server.MapPath("../Upload/TempReport/" + pdfFileName)); } else { pdfFileName = SystemSet._RETURN_FAILURE_VALUE + "无数据,不用打印!"; } } else { pdfFileName = SystemSet._RETURN_FAILURE_VALUE + "报表模板文件不存在!"; } } catch (Exception ex) { pdfFileName = SystemSet._RETURN_FAILURE_VALUE + ex.Message; } return(pdfFileName); }