ExportArtikelDetails.p 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*------------------------------------------------------------------------
  2. File : FindLabelsFromObjects.p
  3. Purpose :
  4. Syntax :
  5. Description :
  6. Author(s) : walter.riechsteiner
  7. Created : Wed Sep 01 15:50:05 CEST 2021
  8. Notes :
  9. ----------------------------------------------------------------------*/
  10. /* *************************** Definitions ************************** */
  11. /* ******************** Preprocessor Definitions ******************** */
  12. /* *************************** Main Block *************************** */
  13. USING classes.Artst FROM PROPATH.
  14. DEFINE VARIABLE oArtst AS Artst.
  15. DEFINE VARIABLE oProperties AS Progress.Reflect.Property NO-UNDO EXTENT .
  16. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  17. DEFINE VARIABLE iMax AS INTEGER NO-UNDO.
  18. DEFINE VARIABLE lRetVal AS LOG NO-UNDO.
  19. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  20. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  21. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  22. cDateiName = 'exports\ArtikelDetails.csv'.
  23. oArtst = NEW Artst().
  24. oProperties = oArtst:GetClass():GetProperties() .
  25. iMax = EXTENT (oProperties).
  26. /*MESSAGE iMax */
  27. /* VIEW-AS ALERT-BOX.*/
  28. iMax = iMax - 4. /* -4 -> lOK, cErrorMessage, Next-Sibling, Prev-Sibling */
  29. OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  30. DO i = 1 TO iMax:
  31. IF i > 1 THEN PUT CONTROL ';'.
  32. PUT CONTROL REPLACE(oProperties[i]:NAME, ';', ':').
  33. END.
  34. PUT CONTROL CHR(10).
  35. FOR EACH Artst NO-LOCK
  36. WHERE Artst.Firma = '1000'
  37. AND Artst.Aktiv = TRUE
  38. AND Artst.Ausverk < 9 :
  39. IF VALID-OBJECT ( oArtst ) THEN DELETE OBJECT oArtst.
  40. oArtst = NEW Artst ( INPUT Artst.Firma, INPUT Artst.Artnr, INPUT Artst.Inhalt, INPUT Artst.Jahr, INPUT 0).
  41. IF oArtst:lOK = FALSE THEN NEXT.
  42. DO i = 1 TO iMax:
  43. IF i > 1 THEN PUT CONTROL ';'.
  44. cFeld = oProperties[i]:NAME.
  45. cString = DYNAMIC-PROPERTY (oArtst, cFeld ).
  46. PUT CONTROL REPLACE(cString, ';', ':').
  47. END.
  48. PUT CONTROL CHR(10).
  49. END.
  50. OUTPUT CLOSE.
  51. /*PUT CONTROL MESSAGE i '->' '-' EXTENT (oProperties) '-' oProperties[i]:Name '-' oProperties[i]:DataType '-' oProperties[i]:ToString()*/
  52. /* VIEW-AS ALERT-BOX. */
  53. /*DEF VAR theValue AS Progress.Lang.Object NO-UNDO. */
  54. /* */
  55. /*theValue = DYNAMIC-PROPERTY(oInvoice, "Amount"). */
  56. /* */
  57. /*IF theValue:WHATS-THE-TYPE = "decimal" THEN */
  58. /* RETURN STRING(theValue, ">>>>>9.99"). */
  59. /*ELSE */
  60. /* RETURN TRIM(theValue). // It is a character field*/