&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW {adecomm/appserv.i} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS dTables /*------------------------------------------------------------------------ File: Description: from DATA.W - Template For SmartData objects in the ADM Input Parameters: Output Parameters: Modified: February 24, 1999 ------------------------------------------------------------------------*/ /* 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 --- */ /* Local Variable Definitions --- */ DEFINE VARIABLE iLager AS INTEGER NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO INIT 0. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO INIT 0. DEFINE VARIABLE iJahr AS INTEGER NO-UNDO INIT 0. DEFINE VARIABLE iTage AS INTEGER NO-UNDO INIT 999999. &SCOPED-DEFINE Tabelle Artbw &SCOPED-DEFINE TabWhere /* USE-INDEX Benutzer-k1 ~ WHERE {&Tabelle}.Benutzer = tRowObject.Benutzer */ { incl/datdefinition.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Global-define DATA-LOGIC-PROCEDURE .p &Scoped-define PROCEDURE-TYPE SmartDataObject &Scoped-define DB-AWARE yes &Scoped-define ADM-SUPPORTED-LINKS Data-Source,Data-Target,Navigation-Target,Update-Target,Commit-Target,Filter-Target /* Db-Required definitions. */ &IF DEFINED(DB-REQUIRED) = 0 &THEN &GLOBAL-DEFINE DB-REQUIRED TRUE &ENDIF &GLOBAL-DEFINE DB-REQUIRED-START &IF {&DB-REQUIRED} &THEN &GLOBAL-DEFINE DB-REQUIRED-END &ENDIF &Scoped-define QUERY-NAME Query-Main /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES Artbw /* Definitions for QUERY Query-Main */ &Scoped-Define ENABLED-FIELDS Firma Artnr Inhalt Jahr Knr Datum Aufnr Faknr Menge KGeb_Cd VGeb_Cd GGeb_Cd~ Rab_Art Rab_Wert Aktion Preis Bru_Betr Net_Betr Lager Lag_Buch Tr_Art~ Fak_Dat Fak_Art Fak_Knr WuCd Kunde DokNr GGeb_Me KGeb_Me VGeb_Me Trnr &Scoped-define ENABLED-FIELDS-IN-Artbw Firma Artnr Inhalt Jahr Knr Datum ~ Aufnr Faknr Menge KGeb_Cd VGeb_Cd GGeb_Cd Rab_Art Rab_Wert Aktion Preis ~ Bru_Betr Net_Betr Lager Lag_Buch Tr_Art Fak_Dat Fak_Art Fak_Knr WuCd ~ GGeb_Me KGeb_Me VGeb_Me Trnr &Scoped-Define DATA-FIELDS Firma Artnr Inhalt Jahr Knr Datum Aufnr Faknr Menge KGeb_Cd VGeb_Cd GGeb_Cd~ Rab_Art Rab_Wert Aktion Preis Bru_Betr Net_Betr Lager Lag_Buch Tr_Art~ Fak_Dat Fak_Art Fak_Knr WuCd Kunde DokNr GGeb_Me KGeb_Me VGeb_Me Trnr &Scoped-define DATA-FIELDS-IN-Artbw Firma Artnr Inhalt Jahr Knr Datum Aufnr ~ Faknr Menge KGeb_Cd VGeb_Cd GGeb_Cd Rab_Art Rab_Wert Aktion Preis Bru_Betr ~ Net_Betr Lager Lag_Buch Tr_Art Fak_Dat Fak_Art Fak_Knr WuCd GGeb_Me KGeb_Me ~ VGeb_Me Trnr &Scoped-Define MANDATORY-FIELDS Firma &Scoped-Define APPLICATION-SERVICE &Scoped-Define ASSIGN-LIST &Scoped-Define DATA-FIELD-DEFS "d-artbw-artikel.i" &Scoped-Define DATA-TABLE-NO-UNDO NO-UNDO &Scoped-define QUERY-STRING-Query-Main FOR EACH Artbw NO-LOCK INDEXED-REPOSITION {&DB-REQUIRED-START} &Scoped-define OPEN-QUERY-Query-Main OPEN QUERY Query-Main FOR EACH Artbw NO-LOCK INDEXED-REPOSITION. {&DB-REQUIRED-END} &Scoped-define TABLES-IN-QUERY-Query-Main Artbw &Scoped-define FIRST-TABLE-IN-QUERY-Query-Main Artbw /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getCurrentRecid dTables _DB-REQUIRED FUNCTION getCurrentRecid RETURNS RECID ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getQueryBuffer dTables _DB-REQUIRED FUNCTION getQueryBuffer RETURNS HANDLE ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD openQuery dTables _DB-REQUIRED FUNCTION openQuery RETURNS LOGICAL ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setLager dTables _DB-REQUIRED FUNCTION setLager RETURNS LOGICAL ( ipLager AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} /* *********************** Control Definitions ********************** */ {&DB-REQUIRED-START} /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Query-Main FOR Artbw SCROLLING. &ANALYZE-RESUME {&DB-REQUIRED-END} /* ************************ Frame Definitions *********************** */ /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDataObject Allow: Query Frames: 0 Add Fields to: Neither Other Settings: PERSISTENT-ONLY COMPILE APPSERVER DB-AWARE */ /* This procedure should always be RUN PERSISTENT. Report the error, */ /* then cleanup and return. */ IF NOT THIS-PROCEDURE:PERSISTENT THEN DO: MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U VIEW-AS ALERT-BOX ERROR BUTTONS OK. RETURN. END. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW dTables ASSIGN HEIGHT = 1.62 WIDTH = 70.2. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB dTables /* ************************* Included-Libraries *********************** */ {src/adm2/data.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW dTables VISIBLE,,RUN-PERSISTENT */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK QUERY Query-Main /* Query rebuild information for SmartDataObject Query-Main _TblList = "AnaDat.Artbw" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] > AnaDat.Artbw.Firma "Firma" "Firma" ? ? "character" ? ? ? ? ? ? yes ? yes 8 yes ? _FldNameList[2] > AnaDat.Artbw.Artnr "Artnr" "Artnr" ? ? "integer" ? ? ? ? ? ? yes ? no 7.2 yes ? _FldNameList[3] > AnaDat.Artbw.Inhalt "Inhalt" "Inhalt" ? ? "integer" ? ? ? ? ? ? yes ? no 5.2 yes ? _FldNameList[4] > AnaDat.Artbw.Jahr "Jahr" "Jahr" ? ? "integer" ? ? ? ? ? ? yes ? no 4.8 yes ? _FldNameList[5] > AnaDat.Artbw.Knr "Knr" "Knr" ? ? "integer" ? ? ? ? ? ? yes ? no 7.2 yes ? _FldNameList[6] > AnaDat.Artbw.Datum "Datum" "Datum" ? ? "date" ? ? ? ? ? ? yes ? no 10.8 yes ? _FldNameList[7] > AnaDat.Artbw.Aufnr "Aufnr" "Aufnr" ? ? "integer" ? ? ? ? ? ? yes ? no 7.2 yes ? _FldNameList[8] > AnaDat.Artbw.Faknr "Faknr" "Faknr" ? "zzz,zzz,zzz" "integer" ? ? ? ? ? ? yes ? no 10.2 yes ? _FldNameList[9] > AnaDat.Artbw.Menge "Menge" "Menge" ? ? "decimal" ? ? ? ? ? ? yes ? no 8.8 yes ? _FldNameList[10] > AnaDat.Artbw.KGeb_Cd "KGeb_Cd" "KGeb_Cd" ? ? "character" ? ? ? ? ? ? yes ? no 9.2 yes ? _FldNameList[11] > AnaDat.Artbw.VGeb_Cd "VGeb_Cd" "VGeb_Cd" ? ? "character" ? ? ? ? ? ? yes ? no 9.2 yes ? _FldNameList[12] > AnaDat.Artbw.GGeb_Cd "GGeb_Cd" "GGeb_Cd" ? ? "character" ? ? ? ? ? ? yes ? no 9.4 yes ? _FldNameList[13] > AnaDat.Artbw.Rab_Art "Rab_Art" "Rab_Art" ? ? "integer" ? ? ? ? ? ? yes ? no 7.8 yes ? _FldNameList[14] > AnaDat.Artbw.Rab_Wert "Rab_Wert" "Rab_Wert" ? ? "decimal" ? ? ? ? ? ? yes ? no 9.8 yes ? _FldNameList[15] > AnaDat.Artbw.Aktion "Aktion" "Aktion" ? ? "logical" ? ? ? ? ? ? yes ? no 6 yes ? _FldNameList[16] > AnaDat.Artbw.Preis "Preis" "Preis" ? ? "decimal" ? ? ? ? ? ? yes ? no 11 yes ? _FldNameList[17] > AnaDat.Artbw.Bru_Betr "Bru_Betr" "Bru_Betr" ? ? "decimal" ? ? ? ? ? ? yes ? no 15.2 yes ? _FldNameList[18] > AnaDat.Artbw.Net_Betr "Net_Betr" "Net_Betr" ? ? "decimal" ? ? ? ? ? ? yes ? no 15.2 yes ? _FldNameList[19] > AnaDat.Artbw.Lager "Lager" "Lager" ? ? "integer" ? ? ? ? ? ? yes ? no 5.4 yes ? _FldNameList[20] > AnaDat.Artbw.Lag_Buch "Lag_Buch" "Lag_Buch" ? "J/N" "logical" ? ? ? ? ? ? yes ? no 9.8 yes ? _FldNameList[21] > AnaDat.Artbw.Tr_Art "Tr_Art" "Tr_Art" ? ? "integer" ? ? ? ? ? ? yes ? no 5.8 yes ? _FldNameList[22] > AnaDat.Artbw.Fak_Dat "Fak_Dat" "Fak_Dat" ? ? "date" ? ? ? ? ? ? yes ? no 10.8 yes ? _FldNameList[23] > AnaDat.Artbw.Fak_Art "Fak_Art" "Fak_Art" ? ? "integer" ? ? ? ? ? ? yes ? no 7.4 yes ? _FldNameList[24] > AnaDat.Artbw.Fak_Knr "Fak_Knr" "Fak_Knr" ? ? "integer" ? ? ? ? ? ? yes ? no 8 yes ? _FldNameList[25] > AnaDat.Artbw.WuCd "WuCd" "WuCd" ? ? "integer" ? ? ? ? ? ? yes ? no 6 yes ? _FldNameList[26] > "_" "IF sAktiv THEN (IF (RowObject.Knr > 0) THEN (DYNAMIC-FUNCTION('getAdressAnzeige':U, RowObject.Knr)) ELSE (DYNAMIC-FUNCTION('getLagerTransArt':U, RowObject.Tr_Art))) ELSE ''" "Kunde" "Kunde" "x(60)" "Character" ? ? ? ? ? ? yes ? no 60 no ? _FldNameList[27] > "_" "IF (RowObject.Faknr <> 0) THEN ('F' + TRIM(STRING(RowObject.Faknr,'>>999999'))) ELSE ('A' + TRIM(STRING(RowObject.Aufnr,'>>999999')))" "DokNr" "DokNr" "x(10)" "Character" ? ? ? ? ? ? yes ? no 10 no ? _FldNameList[28] > AnaDat.Artbw.GGeb_Me "GGeb_Me" "GGeb_Me" ? ? "decimal" ? ? ? ? ? ? yes ? no 10.4 yes ? _FldNameList[29] > AnaDat.Artbw.KGeb_Me "KGeb_Me" "KGeb_Me" ? ? "decimal" ? ? ? ? ? ? yes ? no 10.4 yes ? _FldNameList[30] > AnaDat.Artbw.VGeb_Me "VGeb_Me" "VGeb_Me" ? ? "decimal" ? ? ? ? ? ? yes ? no 10.4 yes ? _FldNameList[31] > AnaDat.Artbw.Trnr "Trnr" "Trnr" ? ? "integer" ? ? ? ? ? ? yes ? no 9.6 yes ? _Design-Parent is WINDOW dTables @ ( 1.14 , 2.6 ) */ /* QUERY Query-Main */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK dTables /* *************************** Main Block *************************** */ fOpen = FALSE. { incl/datmainblock.i } &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN initializeObject. &ENDIF /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DATA.CALCULATE dTables DATA.CALCULATE _DB-REQUIRED PROCEDURE DATA.CALCULATE : /*------------------------------------------------------------------------------ Purpose: Calculate all the Calculated Expressions found in the SmartDataObject. Parameters: ------------------------------------------------------------------------------*/ ASSIGN rowObject.DokNr = (IF (RowObject.Faknr <> 0) THEN ('F' + TRIM(STRING(RowObject.Faknr,'>>999999'))) ELSE ('A' + TRIM(STRING(RowObject.Aufnr,'>>999999')))) rowObject.Kunde = (IF sAktiv THEN (IF (RowObject.Knr > 0) THEN (DYNAMIC-FUNCTION('getAdressAnzeige':U, RowObject.Knr)) ELSE (DYNAMIC-FUNCTION('getLagerTransArt':U, RowObject.Tr_Art))) ELSE '') . END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE dataAvailable dTables _DB-REQUIRED PROCEDURE dataAvailable : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/datdataavailable.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI dTables _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. */ IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INAKTIVIEREN dTables _DB-REQUIRED PROCEDURE INAKTIVIEREN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/datinaktivieren.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject dTables _DB-REQUIRED PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ iTage = DYNAMIC-FUNCTION ('getArtbwVonDatum':U) NO-ERROR. { incl/datinitialize.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REAKTIVIEREN dTables _DB-REQUIRED PROCEDURE REAKTIVIEREN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/datreaktivieren.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPOS dTables _DB-REQUIRED PROCEDURE REPOS : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO. FIND Artbw WHERE RECID(Artbw) = ipRecid NO-LOCK NO-ERROR. IF NOT AVAILABLE Artbw THEN RETURN. DYNAMIC-FUNCTION('fetchRowIdent':U, INPUT STRING(ROWID(Artbw)), INPUT ? ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPOS_TABELLE dTables _DB-REQUIRED PROCEDURE REPOS_TABELLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/datrepos.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_FILTER dTables _DB-REQUIRED PROCEDURE SET_FILTER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/datsetfilter.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_OPENFLAG dTables _DB-REQUIRED PROCEDURE SET_OPENFLAG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/datsetopenflag.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_SORT dTables _DB-REQUIRED PROCEDURE SET_SORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/datsetsort.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_SORT_KNR dTables _DB-REQUIRED PROCEDURE SET_SORT_KNR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ ASSIGN cSort = 'Knr' fDesc = FALSE. cRowid = ?. DYNAMIC-FUNCTION('openQuery':U). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_ZEITDAUER dTables PROCEDURE SET_ZEITDAUER: /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipiTage AS INTEGER NO-UNDO. IF ipiTage = iTage THEN RETURN. iTage = ipiTage. fOpen = TRUE. DYNAMIC-FUNCTION ('openQuery':U) NO-ERROR. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getCurrentRecid dTables _DB-REQUIRED FUNCTION getCurrentRecid RETURNS RECID ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ fData = TRUE. RUN dataAvailable ( 'SAME' ). FIND FIRST tRowObject NO-ERROR. IF tRowObject.Artnr = 0 THEN RETURN ?. FIND Artbw NO-LOCK WHERE Artbw.Firma = tRowObject.Firma AND Artbw.Trnr = tRowObject.Trnr NO-ERROR. IF NOT AVAILABLE Artbw THEN RETURN ?. ELSE RETURN RECID(Artbw). END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getQueryBuffer dTables _DB-REQUIRED FUNCTION getQueryBuffer RETURNS HANDLE ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ RETURN BUFFER rowObject:HANDLE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION openQuery dTables _DB-REQUIRED FUNCTION openQuery RETURNS LOGICAL ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Super Override Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE Felder AS CHARACTER NO-UNDO. DEFINE VARIABLE Inhalt AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE dVonDatum AS DATE NO-UNDO. DEFINE VARIABLE dBisDatum AS DATE NO-UNDO. IF NOT fOpen THEN RETURN FALSE. IF Firma = '' THEN RETURN FALSE. xWhere = ''. xSort = ''. xString = ''. Felder = DYNAMIC-FUNCTION('getForeignFields':U) NO-ERROR. Inhalt = DYNAMIC-FUNCTION('getForeignValues':U) NO-ERROR. dVonDatum = TODAY - iTage. dBisDatum = TODAY + 999999. ix = LOOKUP('Artnr', Felder, ',') / 2. iArtnr = INTEGER(ENTRY (ix, Inhalt, CHR(01))). ix = LOOKUP('Inhalt', Felder, ',') / 2. iInhalt = INTEGER(ENTRY (ix, Inhalt, CHR(01))). ix = LOOKUP('Jahr', Felder, ',') / 2. iJahr = INTEGER(ENTRY (ix, Inhalt, CHR(01))). /* xWhere = 'Aufko.Firma = ' + QUOTER(Firma) + ' AND ' */ /* + 'Aufko.Auf_Sta = ' + STRING(Auf_Sta) + ' '. */ xString = 'FOR EACH Artbw NO-LOCK WHERE Artbw.Firma = "&1" ' + 'AND Artbw.Artnr = &2 AND Artbw.Inhalt = &3 AND Artbw.Jahr = &4 '. xString = SUBSTITUTE(xString, Firma, iArtnr, iInhalt, iJahr ). IF iLager <> 999999 THEN xString = xString + SUBSTITUTE('AND Artbw.Lager = &1 ', iLager ). IF iTage <> 999999 THEN DO: xString = xString + SUBSTITUTE('AND Artbw.Datum <= &1 AND Artbw.Datum >= &2 ', dBisDatum, dVonDatum ). IF cSort = '' THEN DO: cSort = 'Datum'. fDesc = TRUE. END. END. IF cSort = '' THEN DO: cSort = 'Datum'. fDesc = TRUE. END. IF cSort = 'Datum' THEN DO: IF fDesc THEN cString = ' USE-INDEX Artbw-k9 '. ELSE cString = ' USE-INDEX Artbw-k2 '. ix = INDEX(xString, ' WHERE'). xString = SUBSTRING(xString, 01, ix) + cString + SUBSTRING(xString, ix). END. xString = xString + ' INDEXED-REPOSITION '. { incl/datopenquery.i } IF xWhere <> '' THEN DYNAMIC-FUNCTION('setQueryWhere':U , INPUT xWhere ). IF xString <> '' THEN DYNAMIC-FUNCTION('setQueryString':U, INPUT xString). IF LOOKUP('Datum', xSort, ' ') = 0 THEN DO: xSort = xSort + ' BY Datum DESCENDING '. END. IF xSort <> '' THEN DYNAMIC-FUNCTION('setQuerySort':U, INPUT xSort ). RETURN SUPER( ). END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END} {&DB-REQUIRED-START} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setLager dTables _DB-REQUIRED FUNCTION setLager RETURNS LOGICAL ( ipLager AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ iLager = ipLager. RETURN DYNAMIC-FUNCTION('openQuery':U). END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME {&DB-REQUIRED-END}