Generate XML Publisher

使用AE調用XML Publisher 時。數據源的選擇和生成報表的代碼緊密相關。

XML File 數據源: 所用方法 SetRuntimeDataXMLFile

XML Doc 數據源: 所用方法 SetRuntimeDataXMLDoc

RowSet 數據源: 使用方法 SetRuntimeDataRowset

Query數據源 : SetPSQueryPromptRecord

數據源和生成方法必須一一對應。

此由如下代碼控制:


Evaluate &Report.Ds_type
   When = "QRY"
      rem rsh ICE 1836783000;
      &sDataFile = %This.sSrvTmpDir | &sDirSep | "Data" | &sDirSep | &sDataFile;
      %This.GenerateXmlFileFromQuery(&sDataFile);
      Break;
   When = "CQR" /* Connected Query */
      rem mdu XXX %This.GenerateXmlFileFromConnQuery(&sConQryOutFileName, &sProcessId);
      %This.GenerateXmlFileFromConnQuery(&sConQryOutFileName, String(&ProcessInstance)); /* mdu XXX */
      If Not FileExists(&sConQryOutFileName, %FilePath_Absolute) Then
         throw CreateException(235, 2308, "Data file is required but not specified correctly");
      Else
         %This.SetRuntimeDataXMLFile(&sConQryOutFileName);
      End-If;
      &sDataFile = &DataXMLFile;
      Break;
   When = "RST"
      rem rshw TODO: This function needs to be passed file path instead of returning string;
      &sXmlData = %This.GenerateXmlFromRowset();
      If &sXmlData = "" Then
         throw CreateException(235, 2305, "Failed to generate or read data source XML file");
      End-If;
      rem rsh ICE 1836783000;
      &sDataFile = %This.sSrvTmpDir | &sDirSep | "Data" | &sDirSep | &sDataFile;
      %This.WriteXmlDataFile(&sXmlData, &sDataFile);
      Break;
   When = "XMD"
      &sXmlData = %This.GenerateXmlFromXmlDoc();
      If &sXmlData = "" Then
         throw CreateException(235, 2305, "Failed to generate or read data source XML file");
      End-If;
      rem rsh ICE 1836783000;
      &sDataFile = %This.sSrvTmpDir | &sDirSep | "Data" | &sDirSep | &sDataFile;
      %This.WriteXmlDataFile(&sXmlData, &sDataFile);
      Break;
   When = "XML"
      If &DataXMLFile = "" Then
         throw CreateException(235, 2308, "Data file is required but not specified correctly");
      End-If;
      &sDataFile = &DataXMLFile;
      Break;
   When-Other
      Break;
   End-Evaluate;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章