我们还可以通过这个接口返回一个报表,报表返回的格式支持PDF、Excel、Word、Html。ActiveReport报表可以返回这四种格式,而Excel报表只支持PDF、Excel和Html等3种格式,Word报表也是只支持PDF、Word和Html等3种格式。
ActiveReport、Excel、Word报表的代码写法是一致的,无非就是ActiveReport并非所有报表都适合不打开窗体的情况下直接生成报表文件的场景。
Vb.Net |
Dim e As SmHttpRequestEventArgs=Args(0) '先获得传递过来的参数值 Dim strID As String=e.Values("ReturnID") '合成参数 Dim rep As New GrapeCity.ActiveReports.PageReportModel.ReportParameterCollection rep.Add("ReturnID",strID,GetType(String)) '例1:为了解释各个参数的意思,拆开写 Dim strFormName As String="退货" '窗体名称 Dim strTableName As String="tblMain" '表名称 Dim strReportName As String="退货单" '报表名称 Dim strExcelFilePath As String="D:\abc.xlsx" '要生成的Excel文件完整路径 CmdGrid.PrintToFile(strFormName,strTableName,strReportName,strExcelFilePath,ExportFileFormatEnum.Excel,rep) '倒2:直接输入参数会更简单 CmdGrid.PrintToFile("退货","tblMain","退货单","D:\abc.xlsx",ExportFileFormatEnum.Excel,rep) '将生成的Excel报表文件返回给接口(浏览器) e.SendSmallFile("D:\abc.xlsx",HttpStatusCode.Ok) '例3:生成并发送html报表。html报表的兼容性可能会差一点,请根据实际使用场景谨慎选择 '先生成Html文件 CmdGrid.PrintToFile(strFormName,strTableName,strReportName,"D:\abc.html",ExportFileFormatEnum.Html,rep) '读取html文件文本 Dim strHtml As String=File.ReadAllText("D:\abc.html") '返回html文本 e.SendString(strHtml) |
C# |
SmHttpRequestEventArgs e = (SmHttpRequestEventArgs)Args[0]; //先获得传递过来的参数值 string strID = e.Values["ReturnID"]; //合成参数 ReportParameterCollection rep = new ReportParameterCollection(); rep.Add("ReturnID", strID, typeof(string)); //例1:为了解释各个参数的意思,拆开写 string strFormName = "退货"; //窗体名称 string strTableName = "tblMain"; //表名称 string strReportName = "退货单"; //报表名称 string strExcelFilePath = @"D:\abc.xlsx"; //要生成的Excel文件完整路径 CmdGrid.PrintToFile(strFormName, strTableName, strReportName, strExcelFilePath, ExportFileFormatEnum.Excel, rep); //倒2:直接输入参数会更简单 CmdGrid.PrintToFile("退货", "tblMain", "退货单", @"D:\abc.xlsx", ExportFileFormatEnum.Excel, rep); //将生成的Excel报表文件返回给接口(浏览器) e.SendSmallFile(@"D:\abc.xlsx", HttpStatusCode.OK); //例3:生成并发送html报表。html报表的兼容性可能会差一点,请根据实际使用场景谨慎选择 //先生成Html文件 CmdGrid.PrintToFile(strFormName, strTableName, strReportName, @"D:\abc.html", ExportFileFormatEnum.Html, rep); //读取html文件文本 string strHtml = File.ReadAllText(@"D:\abc.html"); //返回html文本 e.SendString(strHtml); |
上面使用的参数来源请参考下面图片中的红框部分。