&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gFaxbestellung {adecomm/appserv.i} /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE tKunBest NO-UNDO LIKE KunBest FIELD cArtikel AS CHARACTER FIELD cVGebinde AS CHARACTER FIELD MBest AS DECIMAL FIELD cKGebinde AS CHARACTER FIELD iInhalt AS INTEGER FIELD KGeb_Be AS DECIMAL FIELD VGeb_Be AS DECIMAL FIELD GGeb_Be AS DECIMAL FIELD Liter AS DECIMAL DECIMALS 3 FIELD Gewicht AS DECIMAL DECIMALS 3 FIELD Alk_Gehalt AS DECIMAL DECIMALS 3. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gFaxbestellung /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipKnr AS INTEGER NO-UNDO. DEFINE OUTPUT PARAMETER ophKunBest AS HANDLE NO-UNDO. /* Local Variable Definitions --- */ &SCOPED-DEFINE Tabelle tKunBest DEFINE VARIABLE cSort AS CHARACTER INIT 'Pos' NO-UNDO. DEFINE VARIABLE lAufAb AS LOG INIT TRUE NO-UNDO. DEFINE VARIABLE cAufAb AS CHARACTER INIT '' NO-UNDO. DEFINE VARIABLE cFilterFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE cFilterWert AS CHARACTER NO-UNDO. DEFINE TEMP-TABLE tAufze LIKE Aufze. { incl/dlgdefinition.i } { incl/dynbrwdefinition.i } { src/adm2/widgetprto.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDialog &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER DIALOG-BOX &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME gFaxbestellung &Scoped-define BROWSE-NAME Br_Faxbestellung /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES tKunBest /* Definitions for BROWSE Br_Faxbestellung */ &Scoped-define FIELDS-IN-QUERY-Br_Faxbestellung tKunBest.Pos tKunBest.Artnr ~ tKunBest.Inhalt tKunBest.Jahr cArtikel iInhalt Alk_Gehalt cKGebinde ~ cVGebinde tKunBest.Soll MBest &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Faxbestellung &Scoped-define QUERY-STRING-Br_Faxbestellung FOR EACH tKunBest NO-LOCK INDEXED-REPOSITION &Scoped-define OPEN-QUERY-Br_Faxbestellung OPEN QUERY Br_Faxbestellung FOR EACH tKunBest NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-Br_Faxbestellung tKunBest &Scoped-define FIRST-TABLE-IN-QUERY-Br_Faxbestellung tKunBest /* Definitions for DIALOG-BOX gFaxbestellung */ &Scoped-define OPEN-BROWSERS-IN-QUERY-gFaxbestellung ~ ~{&OPEN-QUERY-Br_Faxbestellung} /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-2 Br_Faxbestellung Btn_OK Btn_Cancel /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD openQuery gFaxbestellung FUNCTION openQuery RETURNS LOGICAL ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel AUTO-END-KEY LABEL "abbrechen" SIZE 15 BY 1. DEFINE BUTTON Btn_OK AUTO-GO LABEL "OK" SIZE 15 BY 1. DEFINE RECTANGLE RECT-2 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 134 BY 15.24. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Faxbestellung FOR tKunBest SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Faxbestellung &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Faxbestellung gFaxbestellung _STRUCTURED QUERY Br_Faxbestellung NO-LOCK DISPLAY tKunBest.Pos FORMAT "zzz9":U tKunBest.Artnr FORMAT "999999":U tKunBest.Inhalt FORMAT "9999":U tKunBest.Jahr FORMAT "9999":U cArtikel COLUMN-LABEL "Artikel" FORMAT "x(40)":U iInhalt COLUMN-LABEL "cl" FORMAT "zzz9":U Alk_Gehalt COLUMN-LABEL "Vol%" FORMAT "zz9.999":U cKGebinde COLUMN-LABEL "KGebinde" FORMAT "x(12)":U cVGebinde COLUMN-LABEL "VGebinde" FORMAT "x(12)":U tKunBest.Soll FORMAT "zzz,zz9":U WIDTH 7 MBest COLUMN-LABEL "Best" FORMAT "zzz,zz9":U WIDTH 8 /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 130 BY 14.29. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gFaxbestellung Br_Faxbestellung AT ROW 1.95 COL 5 WIDGET-ID 200 Btn_OK AT ROW 17 COL 42.6 Btn_Cancel AT ROW 17 COL 63.8 RECT-2 AT ROW 1.48 COL 3 WIDGET-ID 2 SPACE(1.99) SKIP(1.89) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Faxbestellung" CANCEL-BUTTON Btn_Cancel WIDGET-ID 100. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDialog Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target Design Page: 1 Other Settings: COMPILE APPSERVER Temp-Tables and Buffers: TABLE: tKunBest T "?" NO-UNDO AnaDat KunBest ADDITIONAL-FIELDS: FIELD cArtikel AS CHAR FIELD cVGebinde AS CHAR FIELD MBest AS DEC FIELD cKGebinde AS CHAR FIELD iInhalt AS INT FIELD KGeb_Be AS DEC FIELD VGeb_Be AS DEC FIELD GGeb_Be AS DEC FIELD Liter AS DEC DECIMALS 3 FIELD Gewicht AS DEC DECIMALS 3 FIELD Alk_Gehalt AS DEC DECIMALS 3 END-FIELDS. END-TABLES. */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gFaxbestellung /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR DIALOG-BOX gFaxbestellung FRAME-NAME */ /* BROWSE-TAB Br_Faxbestellung RECT-2 gFaxbestellung */ ASSIGN FRAME gFaxbestellung:SCROLLABLE = FALSE FRAME gFaxbestellung:HIDDEN = TRUE. ASSIGN Br_Faxbestellung:COLUMN-RESIZABLE IN FRAME gFaxbestellung = TRUE. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Faxbestellung /* Query rebuild information for BROWSE Br_Faxbestellung _TblList = "Temp-Tables.tKunBest" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] = Temp-Tables.tKunBest.Pos _FldNameList[2] = Temp-Tables.tKunBest.Artnr _FldNameList[3] = Temp-Tables.tKunBest.Inhalt _FldNameList[4] = Temp-Tables.tKunBest.Jahr _FldNameList[5] > "_" "cArtikel" "Artikel" "x(40)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[6] > "_" "iInhalt" "cl" "zzz9" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[7] > "_" "Alk_Gehalt" "Vol%" "zz9.999" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[8] > "_" "cKGebinde" "KGebinde" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[9] > "_" "cVGebinde" "VGebinde" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[10] > Temp-Tables.tKunBest.Soll "tKunBest.Soll" ? ? "integer" ? ? ? ? ? ? no ? no no "7" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[11] > "_" "MBest" "Best" "zzz,zz9" ? ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is OPENED */ /* BROWSE Br_Faxbestellung */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gFaxbestellung /* Query rebuild information for DIALOG-BOX gFaxbestellung _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gFaxbestellung */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gFaxbestellung &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gFaxbestellung gFaxbestellung ON END-ERROR OF FRAME gFaxbestellung /* Faxbestellung */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gFaxbestellung gFaxbestellung ON WINDOW-CLOSE OF FRAME gFaxbestellung /* Faxbestellung */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Faxbestellung &Scoped-define SELF-NAME Br_Faxbestellung &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Faxbestellung gFaxbestellung ON LEFT-MOUSE-DBLCLICK OF Br_Faxbestellung IN FRAME gFaxbestellung DO: RUN MENGE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Faxbestellung gFaxbestellung ON RETURN OF Br_Faxbestellung IN FRAME gFaxbestellung DO: RUN MENGE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Faxbestellung gFaxbestellung ON START-SEARCH OF Br_Faxbestellung IN FRAME gFaxbestellung DO: { incl/dynbrwstartsearch.i } END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gFaxbestellung ON CHOOSE OF Btn_Cancel IN FRAME gFaxbestellung /* abbrechen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gFaxbestellung ON CHOOSE OF Btn_OK IN FRAME gFaxbestellung /* OK */ DO: DEFINE VARIABLE htAufze AS HANDLE NO-UNDO. DEFINE VARIABLE lRetVal AS LOG NO-UNDO. DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO. DEFINE VARIABLE iPreisArt AS INTEGER NO-UNDO. DEFINE VARIABLE nTotal AS DECIMAL DECIMALS 4 NO-UNDO EXTENT 15. DEFINE VARIABLE cRetValue AS CHARACTER NO-UNDO. DEFINE BUFFER bAufze FOR Aufze. btnOK = TRUE. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. FOR EACH tKunBest WHERE tKunBest.MBest > 0: EMPTY TEMP-TABLE tAufze. CREATE tAufze. ASSIGN tAufze.Firma = Firma tAufze.Aufnr = ipAufnr tAufze.Artnr = tKunBest.Artnr tAufze.Inhalt = tKunBest.Inhalt tAufze.Jahr = tKunBest.Jahr tAufze.Preis_Mut = FALSE. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. IF iRetVal > 0 THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR. RETURN 'APPLY'. END. FIND FIRST tAufze. BUFFER-COPY tKunBest USING MBest KGeb_Be KGeb_Me VGeb_Be VGeb_Me GGeb_Be GGeb_Me Liter Gewicht TO tAufze. ASSIGN tAufze.Preis_Mut = FALSE tAufze.MGeli = tKunBest.MBest tAufze.Aufnr = ipAufnr. iPreisArt = DYNAMIC-FUNCTION ( 'getPreisAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. FIND FIRST tAufze. FIND LAST bAufze NO-LOCK WHERE bAufze.Firma = tAufze.Firma AND bAufze.Aufnr = tAufze.Aufnr NO-ERROR. IF NOT AVAILABLE bAufze THEN tAufze.Pos = 05. ELSE tAufze.Pos = bAufze.Pos - (bAufze.Pos MOD 5) + 05. DYNAMIC-FUNCTION('fillArtbwFromAufze':U, INPUT-OUTPUT htAufze ). CREATE bAufze. BUFFER-COPY tAufze TO bAufze. RELEASE bAufze. END. cRetValue = DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Firma, ipAufnr, OUTPUT nTotal ) NO-ERROR. IF cRetValue BEGINS 'KREDIT' THEN DO: RUN FEHLER ( 1086 ) NO-ERROR. END. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gFaxbestellung /* *************************** Main Block *************************** */ { incl/dlgmainblock.i } { incl/dynbrwmainblock.i } { incl/dynbrwinternproc.i } {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gFaxbestellung _ADM-CREATE-OBJECTS PROCEDURE adm-create-objects : /*------------------------------------------------------------------------------ Purpose: Create handles for all SmartObjects used in this procedure. After SmartObjects are initialized, then SmartLinks are added. Parameters: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gFaxbestellung _DEFAULT-DISABLE PROCEDURE disable_UI : /*------------------------------------------------------------------------------ Purpose: DISABLE the User Interface Parameters: Notes: Here we clean-up the user-interface by deleting dynamic widgets we have created and/or hide frames. This procedure is usually called when we are ready to "clean-up" after running. ------------------------------------------------------------------------------*/ /* Hide all frames. */ HIDE FRAME gFaxbestellung. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gFaxbestellung PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE BUFFER bKunBest FOR KunBest. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bKGebinde FOR KGebinde. cSort = 'Pos'. EMPTY TEMP-TABLE tKunBest. FOR EACH bKunBest NO-LOCK WHERE bKunBest.Firma = Firma AND bKunBest.Knr = ipKnr: FIND bArtst NO-LOCK WHERE bArtst.Firma = bKunBest.Firma AND bArtst.Artnr = bKunBest.Artnr AND bArtst.Inhalt = bKunBest.Inhalt AND bArtst.Jahr = bKunBest.Jahr NO-ERROR. IF NOT AVAILABLE bArtst OR NOT bArtst.Aktiv OR bArtst.Ausverk = 9 THEN DO: FIND KunBest WHERE RECID(KunBest) = RECID(bKunBest). DELETE KunBest. RELEASE bKunBest. RELEASE bArtst. NEXT. END. IF bArtst.KGeb_Cd <> bKunBest.KGeb_Cd OR bArtst.VGeb_Cd <> bKunBest.VGeb_Cd THEN DO: FIND KunBest WHERE RECID(KunBest) = RECID(bKunBest). ASSIGN KunBest.KGeb_Cd = bArtst.KGeb_Cd KunBest.VGeb_Cd = bArtst.VGeb_Cd. RELEASE KunBest. END. FIND bKGebinde NO-LOCK WHERE bKGebinde.Firma = Firma AND bKGebinde.Geb_Cd = bKunBest.KGeb_Cd. CREATE tKunBest. BUFFER-COPY bKunBest TO tKunBest. ASSIGN tKunBest.cKGebinde = bKGebinde.KBez tKunBest.iInhalt = bKGebinde.Inhalt tKunBest.Alk_Gehalt = bArtst.Alk_Gehalt tKunBest.cArtikel = DYNAMIC-FUNCTION('getArtikelBezeichnung':U, tKunBest.Artnr, tKunBest.Inhalt, tKunBest.Jahr ) tKunBest.cVGebinde = DYNAMIC-FUNCTION('getVGebindeKBez':U, tKunBest.VGeb_Cd ). RELEASE bKunBest. RELEASE bArtst. RELEASE bKGebinde. END. { incl/dlgenableobject.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gFaxbestellung _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ ENABLE RECT-2 Br_Faxbestellung Btn_OK Btn_Cancel WITH FRAME gFaxbestellung. VIEW FRAME gFaxbestellung. {&OPEN-BROWSERS-IN-QUERY-gFaxbestellung} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gFaxbestellung PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF btnOK THEN DO: END. { incl/dlgende.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exportData gFaxbestellung PROCEDURE exportData : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ip1 AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER ip2 AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER ip3 AS LOG NO-UNDO. DEFINE INPUT PARAMETER ip4 AS LOG NO-UNDO. DEFINE INPUT PARAMETER ip5 AS INTEGER NO-UNDO. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO. DEFINE VARIABLE hQuery AS HANDLE NO-UNDO. DEFINE VARIABLE cName AS CHARACTER NO-UNDO. DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO. DEFINE VARIABLE cLabel AS CHARACTER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE ij AS INTEGER NO-UNDO. DEFINE VARIABLE iRet AS INTEGER NO-UNDO. DEFINE VARIABLE cDelim AS CHARACTER NO-UNDO INIT '£'. DO WITH FRAME {&FRAME-NAME}: APPLY 'CTRL-END' TO BROWSE {&BROWSE-NAME}. hBuffer = hqBuffer. IF NOT VALID-HANDLE ( hBuffer ) THEN RETURN. cName = SESSION:TEMP-DIR + ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') + '.csv'. CREATE QUERY hQuery. hQuery:SET-BUFFERS(hBuffer). hQuery:QUERY-PREPARE(SUBSTITUTE('FOR EACH &1 NO-LOCK', '{&Tabelle}')). hQuery:QUERY-OPEN(). OUTPUT TO VALUE(cName). SESSION:SET-WAIT-STATE('GENERAL'). cString = ''. DO ij = 1 TO hBuffer:NUM-FIELDS: IF hBuffer:BUFFER-FIELD(ij):NAME BEGINS 'row' THEN NEXT. cLabel = hBuffer:BUFFER-FIELD(ij):LABEL. IF cLabel = ? OR cLabel = '' THEN cLabel = hBuffer:BUFFER-FIELD(ij):NAME. cString = cString + cDelim + cLabel. END. IF cString <> '' THEN cString = SUBSTRING(cString,02). cString = REPLACE(cString, ';', ':'). cString = REPLACE(cString, cDelim, ';'). PUT CONTROL cString CHR(10). hQuery:GET-FIRST(NO-LOCK). DO WHILE NOT hQuery:QUERY-OFF-END: cString = ''. DO ij = 1 TO hBuffer:NUM-FIELDS: IF hBuffer:BUFFER-FIELD(ij):NAME BEGINS 'row' THEN NEXT. cLabel = hBuffer:BUFFER-FIELD(ij):BUFFER-VALUE(0). IF cLabel = ? THEN cLabel = ''. IF hBuffer:BUFFER-FIELD(ij):DATA-TYPE BEGINS 'CHAR' THEN DO: cLabel = REPLACE(cLabel, CHR(10), ' '). END. cString = cString + cDelim + cLabel. END. IF cString <> '' THEN cString = SUBSTRING(cString,02). cString = REPLACE(cString, ';', ':'). cString = REPLACE(cString, cDelim, ';'). PUT CONTROL cString CHR(10). hQuery:GET-NEXT(NO-LOCK). END. OUTPUT CLOSE. hQuery:QUERY-CLOSE(). DELETE OBJECT hQuery. SESSION:SET-WAIT-STATE(''). END. RUN ShellExecuteA ( INPUT 0, INPUT 'open', INPUT 'Excel.exe', INPUT cName, INPUT '', INPUT 1, OUTPUT iRet ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject gFaxbestellung PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cName AS CHARACTER NO-UNDO. DEFINE VARIABLE xWhere AS CHARACTER NO-UNDO. RUN SUPER. DO WITH FRAME {&FRAME-NAME}: hbQuery = {&BROWSE-NAME}:QUERY. hqBuffer = hbQuery:GET-BUFFER-HANDLE(1). cqTabelle = hqBuffer:NAME. END. xWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK BY &2 &3 ', cqTabelle, cSort, cAufAb ). hbQuery:QUERY-PREPARE(xWhere). hbQuery:QUERY-OPEN(). { incl/dynbrwinitialize.i} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MENGE gFaxbestellung PROCEDURE MENGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE htAufze AS HANDLE NO-UNDO. DEFINE VARIABLE lRetVal AS LOG NO-UNDO. DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO. DEFINE VARIABLE iPreisArt AS INTEGER NO-UNDO. DEFINE BUFFER bArtst FOR Artst . DEFINE BUFFER bKGebinde FOR KGebinde. DEFINE BUFFER bVGebinde FOR VGebinde. DEFINE BUFFER bGGebinde FOR GGebinde. DO WITH FRAME {&FRAME-NAME}: BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1) NO-ERROR. IF ERROR-STATUS:ERROR THEN RETURN NO-APPLY. END. EMPTY TEMP-TABLE tAufze. CREATE tAufze. ASSIGN tAufze.Firma = Firma tAufze.Aufnr = ipAufnr tAufze.Artnr = tKunBest.Artnr tAufze.Inhalt = tKunBest.Inhalt tAufze.Jahr = tKunBest.Jahr tAufze.Preis_Mut = FALSE. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. IF iRetVal > 0 THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR. RETURN 'APPLY'. END. FIND FIRST tAufze. BUFFER-COPY tKunBest USING MBest KGeb_Be KGeb_Me VGeb_Be VGeb_Me GGeb_Be GGeb_Me TO tAufze. RUN "g-gebindemenge-neu.w" ( INPUT-OUTPUT htAufze, OUTPUT lRetVal ). IF NOT lRetVal THEN RETURN 'Fehler'. FIND FIRST tAufze. FIND bArtst NO-LOCK WHERE bArtst.Firma = tAufze.Firma AND bArtst.Artnr = tAufze.Artnr AND bArtst.Inhalt = tAufze.Inhalt AND bArtst.Jahr = tAufze.Jahr. ASSIGN tAufze.KGeb_Ru = tAufze.KGeb_Be - tAufze.KGeb_Me tAufze.VGeb_Ru = tAufze.VGeb_Be - tAufze.VGeb_Me tAufze.GGeb_Ru = tAufze.GGeb_Be - tAufze.GGeb_Me tAufze.MBest = tAufze.KGeb_Be tAufze.MGeli = tAufze.KGeb_Me tAufze.MRuek = tAufze.KGeb_Ru. BUFFER-COPY tAufze EXCEPT Firma Aufnr Pos TO tKunBest. FIND bGGebinde NO-LOCK WHERE bGGebinde.Firma = Firma AND bGGebinde.Geb_Cd = tAufze.GGeb_Cd NO-ERROR. FIND bVGebinde NO-LOCK WHERE bVGebinde.Firma = Firma AND bVGebinde.Geb_Cd = tAufze.VGeb_Cd NO-ERROR. FIND bKGebinde NO-LOCK WHERE bKGebinde.Firma = Firma AND bKGebinde.Geb_Cd = tAufze.KGeb_Cd NO-ERROR. /* -------------------------------------------------------------- */ /* Liter und Gewicht */ /* -------------------------------------------------------------- */ tKunBest.Liter = bKGebinde.Inhalt * tAufze.KGeb_Me / 100. tKunbest.Gewicht = (bArtst.Gewicht * tAufze.KGeb_Me) + (bKGebinde.Gewicht * tAufze.KGeb_Me) + (bVGebinde.Gewicht * tAufze.VGeb_Me) + (bGGebinde.Gewicht * tAufze.GGeb_Me). /* tAufze.KGebinde = bKGebinde.KBez. */ /* tAufze.VGebinde = bVGebinde.KBez. */ /* tAufze.GGebinde = bGGebinde.KBez. */ iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze) NO-ERROR. RELEASE bArtst . RELEASE bKGebinde. RELEASE bVGebinde. RELEASE bGGebinde. DO WITH FRAME {&FRAME-NAME}: DISPLAY tKunBest.MBest WITH BROWSE {&BROWSE-NAME}. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_SORT gFaxbestellung PROCEDURE SET_SORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipSort AS CHARACTER NO-UNDO. IF ipSort = cSort THEN lAufAb = NOT lAufAb. cSort = ipSort. cAufAb = (IF lAufAb THEN '' ELSE 'DESCENDING'). DYNAMIC-FUNCTION('openQuery':U) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION openQuery gFaxbestellung FUNCTION openQuery RETURNS LOGICAL ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE xWhere AS CHARACTER NO-UNDO. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO. DEFINE VARIABLE cWert AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. hBuffer = hbQuery:GET-BUFFER-HANDLE(1). xWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK ', cqTabelle). DO ix = 1 TO NUM-ENTRIES(cFilterFeld, ','): cFeld = ENTRY(ix, cFilterFeld, ','). IF cFeld = 'CLEAR' THEN DO: cFilterFeld = ''. cFilterWert = ''. LEAVE. END. hFeld = hBuffer:BUFFER-FIELD(cFeld). CASE hFeld:TYPE. WHEN 'INTEGER' THEN cWert = ENTRY(ix, cFilterWert, ','). WHEN 'DECIMAL' THEN cWert = ENTRY(ix, cFilterWert, ','). WHEN 'DATE' THEN cWert = STRING(DATE(ENTRY(ix, cFilterWert, ','))). WHEN 'LOGICAL' THEN cWert = (IF ENTRY(ix, cFilterWert, ',') BEGINS 'n' THEN 'FALSE' ELSE 'TRUE'). OTHERWISE cWert = QUOTER(ENTRY(ix, cFilterWert, ',')). END. xWhere = xWhere + (IF ix = 1 THEN 'WHERE ' ELSE ' AND ') + SUBSTITUTE('&1.&2 = &3 ', cqTabelle, cFeld, cWert). END. xWhere = xWhere + SUBSTITUTE(' BY &1 &2 ', cSort, cAufAb). hbQuery:QUERY-PREPARE(xWhere) NO-ERROR. hbQuery:QUERY-OPEN() NO-ERROR. DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO {&BROWSE-NAME}. END. RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME