/*------------------------------------------------------------------------ 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 tLiefst LIKE Liefst . DEFINE VARIABLE htLiefst AS HANDLE NO-UNDO. htLiefst = TEMP-TABLE tLiefst:DEFAULT-BUFFER-HANDLE. cDateiName = 'exports\LieferantDetails.csv'. iMax = htLiefst:NUM-FIELDS. FOR EACH Liefst NO-LOCK WHERE Liefst.Firma = '1000' AND Liefst.Knr > 0: CREATE tLiefst. BUFFER-COPY Liefst TO tLiefst. END. OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT. DO i = 1 TO iMax: IF i > 1 THEN PUT CONTROL ';'. hFeld = htLiefst:BUFFER-FIELD (i). iExtent = hFeld:EXTENT. IF iExtent = 0 THEN DO: PUT CONTROL htLiefst: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 tLiefst NO-LOCK: DO i = 1 TO iMax: IF i > 1 THEN PUT CONTROL ';'. hFeld = htLiefst:BUFFER-FIELD (i). iExtent = hFeld:EXTENT. IF iExtent = 0 THEN DO: cString = hFeld:BUFFER-VALUE(0). IF hFeld:DATA-TYPE = 'CHARACTER' AND cString = ? THEN cString = ''. 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). IF hFeld:DATA-TYPE = 'CHARACTER' AND cString = ? THEN cString = ''. 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*/