/*------------------------------------------------------------------------ File : FindLabelsFromObjects.p Purpose : Syntax : Description : Author(s) : walter.riechsteiner Created : Wed Sep 01 15:50:05 CEST 2021 Notes : ----------------------------------------------------------------------*/ /* *************************** Definitions ************************** */ /* ******************** Preprocessor Definitions ******************** */ /* *************************** Main Block *************************** */ USING classes.Artst FROM PROPATH. DEFINE VARIABLE oArtst AS Artst. DEFINE VARIABLE oProperties AS Progress.Reflect.Property NO-UNDO EXTENT . DEFINE VARIABLE i AS INTEGER NO-UNDO. DEFINE VARIABLE iMax AS INTEGER NO-UNDO. DEFINE VARIABLE lRetVal AS LOG NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO. cDateiName = 'exports\ArtikelDetails.csv'. oArtst = NEW Artst(). oProperties = oArtst:GetClass():GetProperties() . iMax = EXTENT (oProperties). /*MESSAGE iMax */ /* VIEW-AS ALERT-BOX.*/ iMax = iMax - 4. /* -4 -> lOK, cErrorMessage, Next-Sibling, Prev-Sibling */ OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT. DO i = 1 TO iMax: IF i > 1 THEN PUT CONTROL ';'. PUT CONTROL REPLACE(oProperties[i]:NAME, ';', ':'). END. PUT CONTROL CHR(10). FOR EACH Artst NO-LOCK WHERE Artst.Firma = '1000' AND Artst.Aktiv = TRUE AND Artst.Ausverk < 9 : IF VALID-OBJECT ( oArtst ) THEN DELETE OBJECT oArtst. oArtst = NEW Artst ( INPUT Artst.Firma, INPUT Artst.Artnr, INPUT Artst.Inhalt, INPUT Artst.Jahr, INPUT 0). IF oArtst:lOK = FALSE THEN NEXT. DO i = 1 TO iMax: IF i > 1 THEN PUT CONTROL ';'. cFeld = oProperties[i]:NAME. cString = DYNAMIC-PROPERTY (oArtst, cFeld ). PUT CONTROL REPLACE(cString, ';', ':'). END. PUT CONTROL CHR(10). END. OUTPUT CLOSE. /*PUT CONTROL MESSAGE i '->' '-' EXTENT (oProperties) '-' oProperties[i]:Name '-' oProperties[i]:DataType '-' oProperties[i]:ToString()*/ /* VIEW-AS ALERT-BOX. */ /*DEF VAR theValue AS Progress.Lang.Object NO-UNDO. */ /* */ /*theValue = DYNAMIC-PROPERTY(oInvoice, "Amount"). */ /* */ /*IF theValue:WHATS-THE-TYPE = "decimal" THEN */ /* RETURN STRING(theValue, ">>>>>9.99"). */ /*ELSE */ /* RETURN TRIM(theValue). // It is a character field*/