| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049 |
- &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
- &ANALYZE-RESUME
- &Scoped-define WINDOW-NAME CURRENT-WINDOW
- &Scoped-define FRAME-NAME D-Lagerbestand
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS D-Lagerbestand
- /*------------------------------------------------------------------------
- File:
- Description: from cntnrdlg.w - ADM SmartDialog Template
- Input Parameters:
- <none>
- Output Parameters:
- <none>
- Author:
- Created:
- ------------------------------------------------------------------------*/
- /* This .W file was created with the Progress UIB. */
- /*----------------------------------------------------------------------*/
- /* 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 LHandle AS HANDLE NO-UNDO.
- DEFINE VARIABLE iLager AS INTEGER NO-UNDO.
- DEFINE TEMP-TABLE tArtst LIKE Artst.
- DEF TEMP-TABLE tBestand
- FIELD Lager AS INT
- FIELD ilRecid AS RECID
- FIELD iaRecid AS RECID
- FIELD Inv_Datum AS DATE
- FIELD Inv_Bestand AS DEC
- FIELD Eingang AS DEC
- FIELD Ausgang AS DEC
- FIELD iTrnr AS INT
- .
- /* ---------- Globale Variablen ---------------------------------- */
- { v8/globvar.i" " " " "SHARED" }
- { v8/debivar.i " " " " "SHARED" }
- { v8/artivar.i " " " " "SHARED" }
- { v8/contvar.i " " " " "SHARED" }
- /* _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
- /* Name of designated FRAME-NAME and/or first browse and/or first query */
- &Scoped-define FRAME-NAME D-Lagerbestand
- /* Standard List Definitions */
- &Scoped-Define ENABLED-OBJECTS RECT-20 RECT-21 CB_Lager F_Artnr F_Inhalt ~
- F_Jahr F_Bezeichnung F_Bestand T_Alle F_Letzt_Inv F_Inventar F_Eingang ~
- F_Ausgang F_Bestand_Neu Btn_OK Btn_Cancel
- &Scoped-Define DISPLAYED-OBJECTS CB_Lager F_Artnr F_Inhalt F_Jahr ~
- F_Bezeichnung F_Bestand T_Alle F_Letzt_Inv T_Inaktive F_Inventar F_Eingang ~
- F_Ausgang F_Bestand_Neu
- /* Custom List Definitions */
- /* List-1,List-2,List-3,List-4,List-5,List-6 */
- &Scoped-define List-5 F_Artnr F_Inhalt F_Jahr F_Bezeichnung F_Bestand ~
- T_Alle F_Letzt_Inv T_Inaktive F_Inventar F_Eingang F_Ausgang F_Bestand_Neu
- &Scoped-define List-6 F_Artnr F_Inhalt F_Jahr T_Alle T_Inaktive
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Define a dialog box */
- /* Definitions of the field level widgets */
- DEFINE BUTTON Btn_Cancel
- LABEL "&Schliessen"
- SIZE 15 BY 1.14
- BGCOLOR 8 .
- DEFINE BUTTON Btn_OK
- LABEL "&Rechnen"
- SIZE 15 BY 1.14
- BGCOLOR 8 .
- DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U
- LABEL "Lager"
- VIEW-AS COMBO-BOX INNER-LINES 5
- LIST-ITEM-PAIRS "Item 1","Item 1"
- DROP-DOWN-LIST
- SIZE 27 BY 1 NO-UNDO.
- DEFINE VARIABLE F_Artnr AS INTEGER FORMAT "999999":U INITIAL 0
- LABEL "Artikel"
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Ausgang AS DECIMAL FORMAT "zz,zzz,zz9-":U INITIAL 0
- LABEL "Ausgang"
- VIEW-AS FILL-IN
- SIZE 17 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Bestand AS DECIMAL FORMAT "zz,zzz,zz9.99-":U INITIAL 0
- LABEL "Bestand alt"
- VIEW-AS FILL-IN NATIVE
- SIZE 21 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Bestand_Neu AS DECIMAL FORMAT "zz,zzz,zz9-":U INITIAL 0
- LABEL "Bestand neu"
- VIEW-AS FILL-IN
- SIZE 17 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Bezeichnung AS CHARACTER FORMAT "X(256)":U
- VIEW-AS FILL-IN NATIVE
- SIZE 50 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Eingang AS DECIMAL FORMAT "zz,zzz,zz9-":U INITIAL 0
- LABEL "Eingang"
- VIEW-AS FILL-IN
- SIZE 17 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Inhalt AS INTEGER FORMAT "9999":U INITIAL 0
- VIEW-AS FILL-IN NATIVE
- SIZE 8 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Inventar AS DECIMAL FORMAT "zz,zzz,zz9.99-":U INITIAL 0
- LABEL "Inventar"
- VIEW-AS FILL-IN NATIVE
- SIZE 21 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Jahr AS INTEGER FORMAT "9999":U INITIAL 0
- VIEW-AS FILL-IN NATIVE
- SIZE 8 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Letzt_Inv AS DATE FORMAT "99.99.9999":U
- LABEL "Letztes Inventar"
- VIEW-AS FILL-IN NATIVE
- SIZE 21 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE RECTANGLE RECT-20
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 85 BY .33
- BGCOLOR 12 .
- DEFINE RECTANGLE RECT-21
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 85 BY .33
- BGCOLOR 12 .
- DEFINE VARIABLE T_Alle AS LOGICAL INITIAL NO
- LABEL "Alle Artikel neu rechnen ?"
- VIEW-AS TOGGLE-BOX
- SIZE 30.4 BY 1 NO-UNDO.
- DEFINE VARIABLE T_Inaktive AS LOGICAL INITIAL NO
- LABEL "inaktive Artikel auch"
- VIEW-AS TOGGLE-BOX
- SIZE 25 BY 1 NO-UNDO.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME D-Lagerbestand
- CB_Lager AT ROW 1.52 COL 9 COLON-ALIGNED WIDGET-ID 2
- F_Artnr AT ROW 2.52 COL 9 COLON-ALIGNED
- F_Inhalt AT ROW 2.52 COL 20 COLON-ALIGNED NO-LABEL
- F_Jahr AT ROW 2.52 COL 28 COLON-ALIGNED NO-LABEL
- F_Bezeichnung AT ROW 2.52 COL 36 COLON-ALIGNED NO-LABEL
- F_Bestand AT ROW 3.52 COL 65 COLON-ALIGNED
- T_Alle AT ROW 4.52 COL 11
- F_Letzt_Inv AT ROW 4.52 COL 65 COLON-ALIGNED
- T_Inaktive AT ROW 5.52 COL 11 WIDGET-ID 4
- F_Inventar AT ROW 5.52 COL 65 COLON-ALIGNED
- F_Eingang AT ROW 8 COL 9 COLON-ALIGNED
- F_Ausgang AT ROW 8 COL 37 COLON-ALIGNED
- F_Bestand_Neu AT ROW 8 COL 69 COLON-ALIGNED
- Btn_OK AT ROW 11 COL 21.2
- Btn_Cancel AT ROW 11 COL 42.4
- RECT-20 AT ROW 7 COL 3
- RECT-21 AT ROW 10 COL 3
- SPACE(3.39) SKIP(2.47)
- WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
- SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
- TITLE "Lagerbestand eines Artikels neu rechnen".
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: SmartDialog
- Allow: Basic,Browse,DB-Fields,Query,Smart
- Other Settings: COMPILE
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB D-Lagerbestand
- /* ************************* Included-Libraries *********************** */
- {src/adm/method/containr.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********** Runtime Attributes and AppBuilder Settings *********** */
- &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
- /* SETTINGS FOR DIALOG-BOX D-Lagerbestand
- FRAME-NAME */
- ASSIGN
- FRAME D-Lagerbestand:SCROLLABLE = FALSE
- FRAME D-Lagerbestand:HIDDEN = TRUE.
- /* SETTINGS FOR FILL-IN F_Artnr IN FRAME D-Lagerbestand
- 5 6 */
- /* SETTINGS FOR FILL-IN F_Ausgang IN FRAME D-Lagerbestand
- 5 */
- /* SETTINGS FOR FILL-IN F_Bestand IN FRAME D-Lagerbestand
- 5 */
- /* SETTINGS FOR FILL-IN F_Bestand_Neu IN FRAME D-Lagerbestand
- 5 */
- /* SETTINGS FOR FILL-IN F_Bezeichnung IN FRAME D-Lagerbestand
- 5 */
- /* SETTINGS FOR FILL-IN F_Eingang IN FRAME D-Lagerbestand
- 5 */
- /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME D-Lagerbestand
- 5 6 */
- /* SETTINGS FOR FILL-IN F_Inventar IN FRAME D-Lagerbestand
- 5 */
- /* SETTINGS FOR FILL-IN F_Jahr IN FRAME D-Lagerbestand
- 5 6 */
- /* SETTINGS FOR FILL-IN F_Letzt_Inv IN FRAME D-Lagerbestand
- 5 */
- /* SETTINGS FOR TOGGLE-BOX T_Alle IN FRAME D-Lagerbestand
- 5 6 */
- /* SETTINGS FOR TOGGLE-BOX T_Inaktive IN FRAME D-Lagerbestand
- NO-ENABLE 5 6 */
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
- /* Setting information for Queries and Browse Widgets fields */
- &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX D-Lagerbestand
- /* Query rebuild information for DIALOG-BOX D-Lagerbestand
- _Options = "SHARE-LOCK"
- _Query is NOT OPENED
- */ /* DIALOG-BOX D-Lagerbestand */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME D-Lagerbestand
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL D-Lagerbestand D-Lagerbestand
- ON WINDOW-CLOSE OF FRAME D-Lagerbestand /* Lagerbestand eines Artikels neu rechnen */
- DO:
- /* Add Trigger to equate WINDOW-CLOSE to END-ERROR. */
- APPLY "END-ERROR":U TO SELF.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Cancel
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel D-Lagerbestand
- ON CHOOSE OF Btn_Cancel IN FRAME D-Lagerbestand /* Schliessen */
- DO:
- APPLY 'GO' TO FRAME {&FRAME-NAME}.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel D-Lagerbestand
- ON END-ERROR OF Btn_Cancel IN FRAME D-Lagerbestand /* Schliessen */
- DO:
- APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_OK
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK D-Lagerbestand
- ON CHOOSE OF Btn_OK IN FRAME D-Lagerbestand /* Rechnen */
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- DISABLE Btn_OK Btn_Cancel.
- ASSIGN {&List-6}.
- iLager = INTEGER(CB_Lager:SCREEN-VALUE).
- IF T_Alle = TRUE THEN RUN WORKFILE.
- ELSE
- DO:
- EMPTY TEMP-TABLE tArtst.
- FIND Artst NO-LOCK
- WHERE Artst.Firma = GVFirma
- AND Artst.Artnr = F_Artnr
- AND Artst.Inhalt = F_Inhalt
- AND Artst.Jahr = F_Jahr NO-ERROR.
- IF AVAILABLE Artst THEN
- DO:
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst.
- END.
- END.
- RUN RECHNEN.
- ENABLE Btn_OK Btn_Cancel.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK D-Lagerbestand
- ON END-ERROR OF Btn_OK IN FRAME D-Lagerbestand /* Rechnen */
- DO:
- APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Artnr
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr D-Lagerbestand
- ON LEAVE OF F_Artnr IN FRAME D-Lagerbestand /* Artikel */
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN.
- LKY = LASTKEY.
- LHandle = LAST-EVENT:WIDGET-ENTER.
- IF VALID-HANDLE(LHandle) THEN
- DO:
- IF LHandle:TYPE <> 'BUTTON' THEN RETURN.
- IF LHandle:NAME = 'Btn_Cancel' THEN RETURN.
- END.
-
- ASSIGN {&List-6}.
- FIND FIRST Artst USE-INDEX Artst-k1
- WHERE Artst.Firma = GVFirma
- AND Artst.Artnr = F_Artnr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Artst THEN
- DO:
- BELL.
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- IF F_Inhalt = 0 THEN F_Inhalt = Artst.Inhalt.
- IF F_Jahr = 0 THEN F_Jahr = Artst.Jahr.
- DISPLAY {&List-6}.
- APPLY 'ENTRY' TO F_Inhalt.
- RETURN NO-APPLY.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr D-Lagerbestand
- ON RETURN OF F_Artnr IN FRAME D-Lagerbestand /* Artikel */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Ausgang
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Ausgang D-Lagerbestand
- ON ENTRY OF F_Ausgang IN FRAME D-Lagerbestand /* Ausgang */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Bestand
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Bestand D-Lagerbestand
- ON ENTRY OF F_Bestand IN FRAME D-Lagerbestand /* Bestand alt */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Bestand_Neu
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Bestand_Neu D-Lagerbestand
- ON ENTRY OF F_Bestand_Neu IN FRAME D-Lagerbestand /* Bestand neu */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Bezeichnung
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Bezeichnung D-Lagerbestand
- ON ENTRY OF F_Bezeichnung IN FRAME D-Lagerbestand
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Eingang
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Eingang D-Lagerbestand
- ON ENTRY OF F_Eingang IN FRAME D-Lagerbestand /* Eingang */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Inhalt
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt D-Lagerbestand
- ON END-ERROR OF F_Inhalt IN FRAME D-Lagerbestand
- DO:
- APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt D-Lagerbestand
- ON LEAVE OF F_Inhalt IN FRAME D-Lagerbestand
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN.
- IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
-
- ASSIGN {&List-6}.
- FIND FIRST Artst USE-INDEX Artst-k1
- WHERE Artst.Firma = GVFirma
- AND Artst.Artnr = F_Artnr
- AND Artst.Inhalt >= F_Inhalt NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Artst THEN
- DO:
- BELL.
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- F_Inhalt = Artst.Inhalt.
- IF F_Jahr = 0 THEN F_Jahr = Artst.Jahr.
- DISPLAY {&List-6}.
- APPLY 'ENTRY' TO F_Jahr.
- RETURN NO-APPLY.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt D-Lagerbestand
- ON RETURN OF F_Inhalt IN FRAME D-Lagerbestand
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Inventar
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inventar D-Lagerbestand
- ON ENTRY OF F_Inventar IN FRAME D-Lagerbestand /* Inventar */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Jahr
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr D-Lagerbestand
- ON END-ERROR OF F_Jahr IN FRAME D-Lagerbestand
- DO:
- APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr D-Lagerbestand
- ON LEAVE OF F_Jahr IN FRAME D-Lagerbestand
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN.
- IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
-
- ASSIGN {&List-6}.
- FIND Artst USE-INDEX Artst-k1
- WHERE Artst.Firma = GVFirma
- AND Artst.Artnr = F_Artnr
- AND Artst.Inhalt = F_Inhalt
- AND Artst.Jahr = F_Jahr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Artst THEN
- DO:
- BELL.
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
-
- FIND FIRST Artbez OF Artst NO-LOCK NO-ERROR.
- FIND FIRST ArtLager OF Artst NO-LOCK NO-ERROR.
-
- F_Artnr = Artbez.Artnr.
- F_Inhalt = Artbez.Inhalt.
- F_Jahr = Artbez.Jahr.
- F_Bezeichnung = Artbez.Bez1.
- F_Bestand = Artst.Bestand.
- F_Letzt_Inv = ArtLager.Datum_Inv.
- F_Inventar = ArtLager.Inv_Best.
- F_Eingang = 0.
- F_Ausgang = 0.
- F_Bestand_Neu = 0.
- IF F_Letzt_Inv <> ? THEN
- DO:
- FIND FIRST Artbw USE-INDEX Artbw-k7
- WHERE Artbw.Firma = GVFirma
- AND Artbw.Artnr = F_Artnr
- AND Artbw.Inhalt = F_Inhalt
- AND Artbw.Jahr = F_Jahr
- AND Artbw.Tr_Art = 21
- AND Artbw.Datum = F_Letzt_Inv NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Artbw THEN F_Letzt_Inv = 01/01/0001.
- END.
- DISPLAY {&List-5}.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr D-Lagerbestand
- ON RETURN OF F_Jahr IN FRAME D-Lagerbestand
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Letzt_Inv
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Letzt_Inv D-Lagerbestand
- ON ENTRY OF F_Letzt_Inv IN FRAME D-Lagerbestand /* Letztes Inventar */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME T_Alle
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Alle D-Lagerbestand
- ON VALUE-CHANGED OF T_Alle IN FRAME D-Lagerbestand /* Alle Artikel neu rechnen ? */
- DO:
- IF SELF:SCREEN-VALUE BEGINS 'n' THEN
- DO:
- T_Inaktive:SCREEN-VALUE = STRING(FALSE).
- T_Inaktive:SENSITIVE = FALSE.
- END.
- ELSE
- DO:
- T_Inaktive:SENSITIVE = TRUE .
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK D-Lagerbestand
- /* *************************** Main Block *************************** */
- SESSION:DATA-ENTRY-RETURN = TRUE.
- FIND Artst USE-INDEX Artst-k1
- WHERE Artst.Firma = GVFirma
- AND Artst.Artnr = LVArtnr
- AND Artst.Inhalt = LVInhalt
- AND Artst.Jahr = LVJahr NO-LOCK NO-ERROR.
-
- DO WHILE TRUE:
- IF NOT AVAILABLE Artst THEN LEAVE.
- FIND FIRST Artbez OF Artst NO-LOCK NO-ERROR.
- FIND FIRST ArtLager OF Artst NO-LOCK NO-ERROR.
-
- F_Artnr = Artbez.Artnr.
- F_Inhalt = Artbez.Inhalt.
- F_Jahr = Artbez.Jahr.
- F_Bezeichnung = Artbez.Bez1.
- F_Bestand = Artst.Bestand.
- F_Letzt_Inv = ArtLager.Datum_Inv.
- F_Inventar = ArtLager.Inv_Best.
- LEAVE.
- END.
-
- {src/adm/template/dialogmn.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects D-Lagerbestand _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: <none>
- ------------------------------------------------------------------------------*/
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available D-Lagerbestand _ADM-ROW-AVAILABLE
- PROCEDURE adm-row-available :
- /*------------------------------------------------------------------------------
- Purpose: Dispatched to this procedure when the Record-
- Source has a new row available. This procedure
- tries to get the new row (or foriegn keys) from
- the Record-Source and process it.
- Parameters: <none>
- ------------------------------------------------------------------------------*/
- /* Define variables needed by this internal procedure. */
- {src/adm/template/row-head.i}
- /* Process the newly available records (i.e. display fields,
- open queries, and/or pass records on to any RECORD-TARGETS). */
- {src/adm/template/row-end.i}
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI D-Lagerbestand _DEFAULT-DISABLE
- PROCEDURE disable_UI :
- /*------------------------------------------------------------------------------
- Purpose: DISABLE the User Interface
- Parameters: <none>
- 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 D-Lagerbestand.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI D-Lagerbestand _DEFAULT-ENABLE
- PROCEDURE enable_UI :
- /*------------------------------------------------------------------------------
- Purpose: ENABLE the User Interface
- Parameters: <none>
- 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.
- ------------------------------------------------------------------------------*/
- DISPLAY CB_Lager F_Artnr F_Inhalt F_Jahr F_Bezeichnung F_Bestand T_Alle
- F_Letzt_Inv T_Inaktive F_Inventar F_Eingang F_Ausgang F_Bestand_Neu
- WITH FRAME D-Lagerbestand.
- ENABLE RECT-20 RECT-21 CB_Lager F_Artnr F_Inhalt F_Jahr F_Bezeichnung
- F_Bestand T_Alle F_Letzt_Inv F_Inventar F_Eingang F_Ausgang
- F_Bestand_Neu Btn_OK Btn_Cancel
- WITH FRAME D-Lagerbestand.
- VIEW FRAME D-Lagerbestand.
- {&OPEN-BROWSERS-IN-QUERY-D-Lagerbestand}
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize D-Lagerbestand
- PROCEDURE local-initialize :
- /*------------------------------------------------------------------------------
- Purpose: Override standard ADM method
- Notes:
- ------------------------------------------------------------------------------*/
- /* Code placed here will execute PRIOR to standard behavior. */
- /* Dispatch standard ADM method. */
- RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
- DO WITH FRAME {&FRAME-NAME}:
- iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR.
- RUN COMBO_LAGER ( CB_Lager:HANDLE ).
- CB_Lager:SCREEN-VALUE = STRING(iLager,'999999') NO-ERROR.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNEN D-Lagerbestand
- PROCEDURE RECHNEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE VInvBest AS DECIMAL NO-UNDO DECIMALS 4.
- DEFINE VARIABLE VEingang AS DECIMAL NO-UNDO DECIMALS 4.
- DEFINE VARIABLE VAusgang AS DECIMAL NO-UNDO DECIMALS 4.
- DEFINE VARIABLE VDatum AS DATE NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE nOldBest AS INTEGER NO-UNDO.
- DEFINE VARIABLE iLager AS INTEGER NO-UNDO.
-
- DEF BUFFER bArtLager FOR ArtLager.
- DEF BUFFER bArtst FOR Artst .
- DEF BUFFER bArtbw FOR Artbw .
- DISABLE TRIGGERS FOR LOAD OF Artst .
- DISABLE TRIGGERS FOR LOAD OF ArtLager.
- REPEAT ON ERROR UNDO, LEAVE WITH FRAME {&FRAME-NAME}:
- FIND FIRST tArtst NO-ERROR.
- IF NOT AVAILABLE tArtst THEN LEAVE.
- FIND FIRST bArtst OF tArtst NO-LOCK NO-ERROR.
- FIND FIRST Artbez OF tArtst NO-LOCK NO-ERROR.
- FIND FIRST ArtLager OF tArtst NO-LOCK NO-ERROR.
- F_Artnr = tArtst.Artnr.
- F_Inhalt = tArtst.Inhalt.
- F_Jahr = tArtst.Jahr.
- F_Eingang = 0.
- F_Ausgang = 0.
- F_Bestand = 0.
-
- IF AVAILABLE ArtLager THEN
- DO:
- F_Letzt_Inv = ArtLager.Datum_Inv.
- F_Inventar = ArtLager.Inv_Best.
- F_Bestand = ArtLager.Bestand.
- END.
-
- DISPLAY {&List-6}.
- DISPLAY {&List-5}.
- EMPTY TEMP-TABLE tBestand.
-
- FOR EACH bArtLager NO-LOCK
- WHERE bArtLager.Firma = bArtst.Firma
- AND bArtLager.Artnr = bArtst.Artnr
- AND bArtLager.Inhalt = bArtst.Inhalt
- AND bArtLager.Jahr = bArtst.Jahr:
- CREATE tBestand.
- ASSIGN
- tBestand.Lager = bArtLager.Lager
- tBestand.ilRecid = RECID(bArtLager)
- tBestand.iaRecid = RECID(bArtst)
- tBestand.Inv_Datum = bArtLager.Datum_Inv
- tBestand.iTrnr = 0.
-
- IF tBestand.Inv_Datum <> ? THEN
- DO:
- FOR EACH bArtbw NO-LOCK
- WHERE bArtbw.Firma = bArtst.Firma
- AND bArtbw.Artnr = bArtst.Artnr
- AND bArtbw.Inhalt = bArtst.Inhalt
- AND bArtbw.Jahr = bArtst.Jahr
- AND bArtbw.Lager = bArtLager.Lager
- AND bArtbw.Tr_Art = 21
- AND bArtbw.Datum = tBestand.Inv_Datum :
-
- IF bArtbw.Trnr > tBestand.iTrnr THEN tBestand.iTrnr = bArtbw.Trnr.
- END.
- END.
-
- IF tBestand.Inv_Datum = ? THEN
- DO:
- FIND FIRST bArtbw NO-LOCK USE-INDEX Artbw-k7
- WHERE bArtbw.Firma = bArtst.Firma
- AND bArtbw.Artnr = bArtst.Artnr
- AND bArtbw.Inhalt = bArtst.Inhalt
- AND bArtbw.Jahr = bArtst.Jahr
- AND bArtbw.Lager = bArtLager.Lager
- AND bArtbw.Tr_Art = 21 NO-ERROR.
- IF AVAILABLE bArtbw THEN tBestand.Inv_Datum = bArtbw.Datum.
- ELSE tBestand.Inv_Datum = 01/01/0001.
- IF AVAILABLE bArtbw AND
- bArtbw.Trnr < tBestand.iTrnr THEN tBestand.iTrnr = bArtbw.Trnr.
- END.
- END.
- FIND FIRST tBestand NO-ERROR.
- IF NOT AVAILABLE (tBestand) THEN NEXT.
-
- FOR EACH tBestand:
- iLager = tBestand.Lager.
-
- FOR EACH bArtbw NO-LOCK USE-INDEX Artbw-k2
- WHERE bArtbw.Firma = bArtst.Firma
- AND bArtbw.Artnr = bArtst.Artnr
- AND bArtbw.Inhalt = bArtst.Inhalt
- AND bArtbw.Jahr = bArtst.Jahr
- AND bArtbw.Lag_Buch = TRUE
- AND bArtbw.Lager = tBestand.Lager
- AND bArtbw.Datum >= tBestand.Inv_Datum:
- IF bArtbw.Datum = tBestand.Inv_Datum AND
- bArtbw.Tr_Art < 21 AND
- bArtbw.Trnr < tBestand.iTrnr THEN NEXT.
-
- DO WHILE TRUE:
- IF bArtbw.Tr_Art < 11 THEN
- DO:
- tBestand.Ausgang = tBestand.Ausgang + bArtbw.Menge.
- LEAVE.
- END.
- IF bArtbw.Tr_Art < 21 THEN
- DO:
- tBestand.Eingang = tBestand.Eingang + bArtbw.Menge.
- LEAVE.
- END.
- tBestand.Inv_Bestand = tBestand.Inv_Bestand + bArtbw.Menge.
- LEAVE.
- END.
- END.
- END.
-
- REPEAT TRANSACTION:
- FIND FIRST tBestand.
- iLager = tBestand.Lager.
-
- FIND Artst EXCLUSIVE-LOCK
- WHERE RECID(Artst) = tBestand.iaRecid NO-WAIT NO-ERROR.
- IF NOT AVAILABLE Artst AND
- LOCKED Artst THEN
- DO:
- cString = SUBSTITUTE('Artst &1 ist in Zugriff', Artst.Artnr ).
- /* MESSAGE cString */
- /* VIEW-AS ALERT-BOX.*/
- NEXT.
- END.
-
- nOldBest = Artst.Bestand.
-
- Artst.Bestand = 0.
- FOR EACH tBestand:
- FIND ArtLager EXCLUSIVE-LOCK
- WHERE RECID(ArtLager) = tBestand.ilRecid NO-WAIT NO-ERROR.
- IF NOT AVAILABLE ArtLager AND
- LOCKED ArtLager THEN
- DO:
- cString = SUBSTITUTE('ArtLager &1 ist in Zugriff', Artst.Artnr ).
- /* MESSAGE cString */
- /* VIEW-AS ALERT-BOX.*/
- NEXT.
- END.
- ASSIGN
- ArtLager.Inv_Best = tBestand.Inv_Bestand
- ArtLager.Eingang = tBestand.Eingang
- ArtLager.Ausgang = tBestand.Ausgang
- ArtLager.Bestand = tBestand.Inv_Bestand
- + tBestand.Eingang
- - tBestand.Ausgang.
- IF tBestand.Inv_Datum <> 01/01/0001 THEN ArtLager.Datum_Inv = tBestand.Inv_Datum.
- Artst.Bestand = Artst.Bestand + ArtLager.Bestand.
- RELEASE ArtLager.
- END.
- IF Artst.Bestand <> nOldBest THEN
- DO:
- cString = SUBSTITUTE('&1;&2;&3', Artst.Artnr, Artst.Bestand, nOldBest ).
- /* MESSAGE cString */
- /* VIEW-AS ALERT-BOX.*/
- END.
-
- FIND FIRST ArtLager NO-LOCK
- WHERE ArtLager.Firma = Artst.Firma
- AND ArtLager.Lager = iLager
- AND ArtLager.Artnr = Artst.Artnr
- AND ArtLager.Inhalt = Artst.Inhalt
- AND ArtLager.Jahr = Artst.Jahr NO-ERROR.
-
- ASSIGN
- F_Eingang = ArtLager.Eingang
- F_Ausgang = ArtLager.Ausgang
- F_Bestand_Neu = ArtLager.Bestand
- F_Eingang :SCREEN-VALUE = STRING(ArtLager.Eingang)
- F_Ausgang :SCREEN-VALUE = STRING(ArtLager.Ausgang)
- F_Bestand_Neu:SCREEN-VALUE = STRING(ArtLager.Bestand)
- .
-
- RELEASE Artst.
- RELEASE ArtLager.
- LEAVE.
- END.
- DELETE tArtst.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records D-Lagerbestand _ADM-SEND-RECORDS
- PROCEDURE send-records :
- /*------------------------------------------------------------------------------
- Purpose: Send record ROWID's for all tables used by
- this file.
- Parameters: see template/snd-head.i
- ------------------------------------------------------------------------------*/
- /* SEND-RECORDS does nothing because there are no External
- Tables specified for this SmartDialog, and there are no
- tables specified in any contained Browse, Query, or Frame. */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed D-Lagerbestand
- PROCEDURE state-changed :
- /* -----------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- -------------------------------------------------------------*/
- DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
- DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE D-Lagerbestand
- PROCEDURE WORKFILE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- EMPTY TEMP-TABLE tArtst.
- FOR EACH Artst USE-INDEX Artst-k1
- WHERE Artst.Firma = GVFirma
- AND ((T_Inaktive = TRUE)
- OR (T_Inaktive = FALSE AND
- Artst.Aktiv = TRUE))
- AND Artst.Lager = TRUE NO-LOCK:
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|