/*------------------------------------------------------------------------ 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 tDebst LIKE Debst FIELD Kondition AS CHARACTER FIELD Vertreter AS CHARACTER FIELD ABCGruppe AS CHARACTER FIELD Fakturaart AS CHARACTER FIELD Preisgruppe AS CHARACTER FIELD Rabattgruppe AS CHARACTER FIELD Bonusgruppe AS CHARACTER FIELD Kundengruppe AS CHARACTER FIELD Verbandgruppe AS CHARACTER FIELD SubVerband AS CHARACTER FIELD Tour AS CHARACTER FIELD Lieferbedingung AS CHARACTER FIELD Abladevorschrift AS CHARACTER FIELD Wirtesonntag AS CHARACTER FIELD Avisierung AS CHARACTER FIELD Bierverband AS CHARACTER FIELD Regionbez AS CHARACTER FIELD Lieferart AS CHARACTER . DEFINE VARIABLE htDebst AS HANDLE NO-UNDO. htDebst = TEMP-TABLE tDebst:DEFAULT-BUFFER-HANDLE. { funktionen.i } cString = SUBSTITUTE('&1&4&2&4&3', 'SYSTEM', 'SYSTEM', '1000', CHR(01)). RUN ANMELDUNG ( cString ). cDateiName = 'exports\DebitorDetails.csv'. iMax = htDebst:NUM-FIELDS. FOR EACH Debst NO-LOCK WHERE Debst.Firma = '1000' AND Debst.Knr > 0: CREATE tDebst. BUFFER-COPY Debst TO tDebst. FIND FIRST Kondi NO-LOCK WHERE Kondi.Kond = Debst.Kond NO-ERROR. IF AVAILABLE Kondi THEN tDebst.Kondition = Kondi.KoText. RUN FIND_VERTRETER ( Debst.Vertr, OUTPUT cString ). tDebst.Vertreter = ENTRY(2, cString, CHR(01)). FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'ABCGRP' AND Tabel.CodeI = Debst.ABC_Grp NO-ERROR. IF AVAILABLE Tabel THEN tDebst.ABCGruppe = Tabel.Bez1. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'FAKART' AND Tabel.CodeI = Debst.Fak_Art NO-ERROR. IF AVAILABLE Tabel THEN tDebst.Fakturaart = Tabel.Bez1. RUN FIND_PREISGRUPPE (Debst.Preis_Grp, OUTPUT cString ). tDebst.Preisgruppe = ENTRY(2, cString, CHR(01)). RUN FIND_RABATTGRP ( Debst.Rab_Grp, OUTPUT cString ). tDebst.Rabattgruppe = ENTRY(2, cString, CHR(01)). FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'BONUS' AND Tabel.CodeI = Debst.Bonus_Grp NO-ERROR. IF AVAILABLE Tabel THEN tDebst.Bonusgruppe = Tabel.Bez1. RUN FIND_KUNDENGRUPPE ( Debst.Ku_Grp, OUTPUT cString ). tDebst.Kundengruppe = ENTRY(2, cString, CHR(01)). FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'VERBAND' AND Tabel.CodeI = Debst.Verband_Grp NO-ERROR. IF AVAILABLE Tabel THEN tDebst.Verbandgruppe = Tabel.Bez1. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'SUBVERBAND' AND Tabel.CodeI = Debst.Subverband_Grp AND Tabel.CodeC = STRING(Debst.Verband_Grp,'999999')NO-ERROR. IF AVAILABLE Tabel THEN tDebst.SubVerband = Tabel.Bez1. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'TOUR1' AND Tabel.CodeI = Debst.Tour_Nr1 NO-ERROR. IF AVAILABLE Tabel THEN tDebst.Tour = Tabel.Bez1. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'LIEFBED' AND Tabel.CodeI = Debst.Lief_Bed NO-ERROR. IF AVAILABLE Tabel THEN tDebst.Lieferbedingung = Tabel.Bez1. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'ABLAD' AND Tabel.CodeI = Debst.Ablad_Vor NO-ERROR. IF AVAILABLE Tabel THEN tDebst.Abladevorschrift = Tabel.Bez1. RUN FIND_WIRTESONNTAG ( Debst.Wirt_So, OUTPUT cString ). tDebst.Wirtesonntag = ENTRY(2, cString, CHR(01)). FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'AVIS' AND Tabel.CodeI = Debst.Avis NO-ERROR. IF AVAILABLE Tabel THEN tDebst.Avisierung = Tabel.Bez1. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'BIER' AND Tabel.CodeI = Debst.Bier_Cd NO-ERROR. IF AVAILABLE Tabel THEN tDebst.Bierverband = Tabel.Bez1. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = Debst.Firma AND Tabel.Recart = 'REG' AND Tabel.CodeI = Debst.Region NO-ERROR. IF AVAILABLE Tabel THEN tDebst.Regionbez = Tabel.Bez1. END. OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT. DO i = 1 TO iMax: IF i > 1 THEN PUT CONTROL ';'. hFeld = htDebst:BUFFER-FIELD (i). iExtent = hFeld:EXTENT. IF iExtent = 0 THEN DO: PUT CONTROL htDebst: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 tDebst NO-LOCK: DO i = 1 TO iMax: IF i > 1 THEN PUT CONTROL ';'. hFeld = htDebst: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*/