opendruck.i 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* -------------------------------------------------------------------------- */
  2. lPDF = (IF BDrucker.Emul = 'PDF' THEN TRUE ELSE FALSE).
  3. cProcName = REPLACE(THIS-PROCEDURE:FILE-NAME, '/', '\').
  4. IF NUM-ENTRIES(cProcName, '\') > 0 THEN cProcName = ENTRY(NUM-ENTRIES(cProcName, '\'), cProcName, '\').
  5. IF NUM-ENTRIES(cProcName, '.') > 0 THEN cProcName = ENTRY(1, cProcName, '.').
  6. IF BDrucker.Emul <> "TERMINAL" THEN
  7. DO:
  8. IF LiDruck.Listtzz = 0 THEN
  9. DO:
  10. IF Steuer.Drucker <> "" AND
  11. OPSYS = "Unix" THEN
  12. OUTPUT THROUGH VALUE(Steuer.Drucker) VALUE(Schrift.Schname).
  13. ELSE
  14. DO:
  15. cDrucker = (IF NOT lPDF THEN DYNAMIC-FUNCTION('setDrucker':U, Schrift.Schname) ELSE '').
  16. IF cDrucker = ? OR
  17. cDrucker = '' THEN
  18. DO:
  19. cDrucker = SESSION:TEMP-DIRECTORY + cProcName + '.txt'.
  20. IF NOT lPDF THEN MESSAGE 'Ausgabe erfolgt in die Datei ' cDrucker '! ' VIEW-AS ALERT-BOX.
  21. OUTPUT TO VALUE(cDrucker) CONVERT TARGET "ibm850" PAGED PAGE-SIZE 150.
  22. END.
  23. ELSE OUTPUT TO PRINTER PAGED PAGE-SIZE 150 CONVERT TARGET "ibm850".
  24. END.
  25. END.
  26. ELSE
  27. DO:
  28. IF Steuer.Drucker <> "" AND
  29. OPSYS = "Unix" THEN
  30. OUTPUT THROUGH VALUE(Steuer.Drucker) VALUE(Schrift.Schname) PAGED PAGE-SIZE 150.
  31. ELSE
  32. DO:
  33. cDrucker = (IF NOT lPDF THEN DYNAMIC-FUNCTION('setDrucker':U, Schrift.Schname) ELSE '').
  34. IF cDrucker = ? OR
  35. cDrucker = '' THEN
  36. DO:
  37. cDrucker = SESSION:TEMP-DIRECTORY + cProcName + '.txt'.
  38. IF NOT lPDF THEN MESSAGE 'Ausgabe erfolgt in die Datei ' cDrucker '! ' VIEW-AS ALERT-BOX.
  39. OUTPUT TO VALUE(cDrucker) PAGED PAGE-SIZE 5000 CONVERT TARGET "ibm850".
  40. END.
  41. ELSE IF lPDF THEN OUTPUT TO PRINTER PAGED PAGE-SIZE 5000 CONVERT TARGET "ibm850".
  42. ELSE OUTPUT TO PRINTER PAGED PAGE-SIZE 5000 CONVERT TARGET "ibm850".
  43. END.
  44. END.
  45. PUT CONTROL Schrift.Schseqbeg.
  46. IF LiDruck.Listlq THEN PUT CONTROL BDrucker.Drulqb.
  47. IF LiDruck.Schacht > 0 THEN PUT CONTROL BDrucker.DruSchacht[Schacht].
  48. DOpen = TRUE.
  49. END.
  50. ELSE
  51. DO:
  52. FOR EACH XTermOut:
  53. DELETE XTermOut.
  54. END.
  55. DOpen = FALSE.
  56. VZNr = 0.
  57. VLine = 0.
  58. VSeite = 0.
  59. END.
  60. /* -------------------------------------------------------------------------- */