/*------------------------------------------------------------------------ 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 *************************** */ DEFINE VARIABLE i AS INTEGER NO-UNDO. DEFINE VARIABLE ix 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. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO. DEFINE VARIABLE iExtent AS INTEGER NO-UNDO. DEFINE TEMP-TABLE tArtPreis LIKE ArtPreis. DEFINE VARIABLE htArtPreis AS HANDLE NO-UNDO. htArtPreis = TEMP-TABLE tArtPreis:DEFAULT-BUFFER-HANDLE. cDateiName = 'exports\ArtPreisDetails.csv'. iMax = htArtPreis:NUM-FIELDS. FOR EACH ArtPreis NO-LOCK WHERE ArtPreis.Firma = '1000' AND ArtPreis.Ab_Datum <= TODAY AND ArtPreis.Aktion = FALSE BREAK BY ArtPreis.Artnr BY ArtPreis.Inhalt BY ArtPreis.Jahr BY ArtPreis.Preis_Grp BY ArtPreis.Ab_Datum: IF NOT LAST-OF ( ArtPreis.Preis_Grp ) THEN NEXT. CREATE tArtPreis. BUFFER-COPY ArtPreis TO tArtPreis. END. OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT. DO i = 1 TO iMax: IF i > 1 THEN PUT CONTROL ';'. hFeld = htArtPreis:BUFFER-FIELD (i). iExtent = hFeld:EXTENT. IF iExtent = 0 THEN DO: PUT CONTROL htArtPreis:BUFFER-FIELD (i):LABEL. NEXT. END. DO ix = 1 TO iExtent: cString = hFeld:LABEL + '-' + STRING(ix). PUT CONTROL cString. IF ix < iExtent THEN PUT CONTROL ';'. END. END. PUT CONTROL CHR(10). FOR EACH tArtPreis NO-LOCK: DO i = 1 TO iMax: IF i > 1 THEN PUT CONTROL ';'. hFeld = htArtPreis:BUFFER-FIELD (i). iExtent = hFeld:EXTENT. IF iExtent = 0 THEN DO: cString = hFeld:BUFFER-VALUE(0). cString = REPLACE(cString, CHR(13), '' ). cString = REPLACE(cString, CHR(10), '%NL%' ). PUT CONTROL REPLACE(cString, ';', ':'). NEXT. END. DO ix = 1 TO iExtent: cString = hFeld:BUFFER-VALUE(ix). cString = REPLACE(cString, CHR(13), '' ). cString = REPLACE(cString, CHR(10), '%NL%' ). PUT CONTROL REPLACE(cString, ';', ':'). IF ix < iExtent THEN PUT CONTROL ';'. END. 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*/