publish-reports.mac 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. Dim objApp As Object
  2. Dim objRep As Object
  3. Dim folder as String
  4. Dim publish As String
  5. Dim exportFormat As String
  6. Sub Main ()
  7. Rem On Error Resume Next
  8. Set objApp = CreateObject("CognosPowerPlay.Application")
  9. rem folder = "C:\GAPS\Portal\System\Report"
  10. rem exportFormat = "pdf"
  11. rem publish = "C:\GAPS\Portal\daten"
  12. folder = GetField(Command, 1, ",")
  13. exportFormat = GetField(Command, 2, ",")
  14. publish = GetField(Command, 3, ",")
  15. Dim filename as String
  16. Dim exportFile as String
  17. Dim objPDF as Object
  18. filename = Dir(folder + "\")
  19. Do While filename <> ""
  20. If LCase(Right(filename, 4)) = ".ppr" Or LCase(Right(filename, 4)) = ".ppx" Then
  21. Set objRep = CreateObject("CognosPowerPlay.Report")
  22. objRep.Open(folder + "\" + filename)
  23. exportFile = publish + "\" + Left(filename, Len(filename) -4)
  24. Select Case exportFormat
  25. Case "pdf"
  26. Set objPDF = objRep.PDFFile(exportFile + "_0.pdf", True)
  27. With objPDF
  28. .SaveEntireReport = True
  29. .AxisOnAllPages = True
  30. .ChartTitleOnAllPages = False
  31. .IncludeLegend = False
  32. End With
  33. objPDF.Save
  34. For i = 1 to objRep.Layers.Count
  35. Set objPDF = objRep.PDFFile(exportFile + "_" + i + ".pdf", True)
  36. With objPDF
  37. .SetListOfLayersToSave objRep.Layers.Subset(i, i)
  38. .SetListOfRowsToSave objRep.Rows
  39. .SaveEntireReport = False
  40. .SaveAllCharts = False
  41. .AxisOnAllPages = True
  42. .ChartTitleOnAllPages = True
  43. .IncludeLegend = True
  44. End With
  45. objPDF.Save
  46. Next
  47. Case "asc"
  48. objRep.SaveAs exportFile, 3
  49. Case "xls"
  50. objRep.SaveAs exportFile, 4
  51. Case "ppx"
  52. objRep.SaveAs exportFile, 5
  53. Case Else
  54. objRep.Publish publish, False, True, True
  55. End Select
  56. objRep.Close
  57. End if
  58. filename = Dir
  59. Loop
  60. objApp.Quit
  61. End Sub