Previous topicNext topic
Help > 开发指南 > API对接 > HttpServer > API开发 >
返回一个报表

我们还可以通过这个接口返回一个报表,报表返回的格式支持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);

上面使用的参数来源请参考下面图片中的红框部分。