开发思路:
1. 定义和生成一个临时文件。
2. 临时文件上传存储至数据库。
3. 通过文件名称进行下载。 具体代码:
Local string &absTemplateName, &sPath, &dbFileName, &sDirSep;
Local string &recordUrl;
&recordUrl = "record://PSFILE_ATTDET";
&dbFileName = UuidGen();
REM ********************创建临时文件夹 *******************;
&sDirSep = "/";
If Substring(GetEnv("PS_SERVDIR"), 1, 1) <> "/" Then
&sDirSep = "";
End-If;
try
&sPath = GetURL(URL.GPS_TEMP_FILE_PATH);
&sPath = RTrim(&sPath, &sDirSep) | &sDirSep | "EXCEL";
catch Exception &e
&sPath = GetEnv("PS_SERVDIR") | &sDirSep | "files" | &sDirSep | "EXCEL";
end-try;
try
CreateDirectory(&sPath, %FilePath_Absolute);
catch Exception &e2
Error MsgGet(30009, 167, "Message not found", &sPath);
end-try;
REM ********************写入EXCEL *******************;
rem 文件路径;
&absTemplateName = &sPath | &sDirSep | &dbFileName | ".xlsx";
rem 创建java对象;
Local JavaObject &reportDefn = CreateJavaObject("com.cust.common.poi.large.data.ReportDefinition");
rem 设置报表名称;
&reportDefn.setReportName("员工纳税部门维护");
&reportDefn.addCellTitle("序号", "bold", "FFCC99");
&reportDefn.addCellTitle("员工ID", "bold", "FFCC99");
&reportDefn.addCellTitle("期间ID", "bold", "FFCC99");
&reportDefn.addCellTitle("纳税部门", "bold", "FFCC99");
&reportDefn.addCellTitle("纳税项目", "bold", "FFCC99");
&reportDefn.SetColumnWidth(1, 3000);
&reportDefn.SetColumnWidth(2, 6000);
&reportDefn.SetColumnWidth(3, 7000);
&reportDefn.SetColumnWidth(5, 8000);
&reportDefn.SetColumnWidth(6, 8000);
&reportDefn.buildExcel(&absTemplateName);
CommitWork();
rem 上传文件;
If PutAttachment(&recordUrl, &dbFileName, &absTemplateName) = %Attachment_Success Then
If ViewAttachment(&recordUrl, &dbFileName, "C_EMP_TAX_DEPT" | ".xls") <> %Attachment_Success Then
Error MsgGet(30009, 113, "Message not found")
Else
&ret = DeleteAttachment(&recordUrl, &dbFileName);
End-If;
Else
Error MsgGet(30009, 113, "Message not found")
End-If;



