| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
- &ANALYZE-RESUME
- &Scoped-define WINDOW-NAME CURRENT-WINDOW
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS fFrameWin
- /*------------------------------------------------------------------------
- File:
- Description: from cntnrfrm.w - ADM2 SmartFrame Template
- Input Parameters:
- <none>
- Output Parameters:
- <none>
-
- ------------------------------------------------------------------------*/
- /* 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 --- */
- DEF VAR Firma AS CHAR NO-UNDO.
- DEF VAR Aktion AS CHAR NO-UNDO.
- DEF VAR Bemerk AS CHAR NO-UNDO.
- DEF VAR AktGrp AS INT NO-UNDO.
- DEF VAR aAktion AS CHAR NO-UNDO.
- DEF WORKFILE WArtPreis LIKE ArtPreis.
- DEF TEMP-TABLE TGruppen FIELD Grp AS INT
- FIELD Bez AS CHAR.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE SmartFrame
- &Scoped-define DB-AWARE no
- &Scoped-define ADM-CONTAINER FRAME
- &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 fMain
- /* Standard List Definitions */
- &Scoped-Define ENABLED-OBJECTS F_AbDatum F_BisDatum CB_Art F_Betrag ~
- Btn_Zuteilen S_Gruppen RECT-8
- &Scoped-Define DISPLAYED-OBJECTS F_AbDatum F_BisDatum CB_Art F_Betrag ~
- S_Gruppen
- /* Custom List Definitions */
- /* List-1,List-2,List-3,List-4,List-5,List-6 */
- &Scoped-define List-5 vBrutto vNetto vMarge vDatum
- &Scoped-define List-6 F_AbDatum F_BisDatum F_Betrag
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Definitions of the field level widgets */
- DEFINE BUTTON Btn_Zuteilen
- IMAGE-UP FILE "grafik/add.bmp":U
- LABEL "&Zuteilen"
- SIZE 5.2 BY 1.24.
- DEFINE VARIABLE CB_Art AS CHARACTER FORMAT "X(256)":U
- LABEL "Abschlagsart"
- VIEW-AS COMBO-BOX INNER-LINES 5
- LIST-ITEM-PAIRS "Betrag","0",
- "Prozent","1"
- DROP-DOWN-LIST
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_AbDatum AS DATE FORMAT "99.99.9999":U
- LABEL "Ab Datum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Betrag AS DECIMAL FORMAT "zzz9.9999-":U INITIAL 0
- LABEL "Abschlag"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
- LABEL "Bis Datum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE vBrutto AS DECIMAL FORMAT "->>>>>>9.9999":U INITIAL 0
- LABEL "Brutto"
- VIEW-AS FILL-IN
- SIZE 4 BY 1.
- DEFINE VARIABLE vDatum AS DATE FORMAT "99.99.9999":U
- LABEL "Ab Datum"
- VIEW-AS FILL-IN
- SIZE 4 BY 1.
- DEFINE VARIABLE vMarge AS DECIMAL FORMAT "->>>>>>9.9999":U INITIAL 0
- LABEL "Marge"
- VIEW-AS FILL-IN
- SIZE 4 BY 1.
- DEFINE VARIABLE vNetto AS DECIMAL FORMAT "->>>>>>9.9999":U INITIAL 0
- LABEL "Netto"
- VIEW-AS FILL-IN
- SIZE 4 BY 1.
- DEFINE RECTANGLE RECT-8
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 65.2 BY 7.
- DEFINE VARIABLE S_Gruppen AS CHARACTER
- VIEW-AS SELECTION-LIST MULTIPLE SCROLLBAR-VERTICAL
- SIZE 30 BY 6.29
- BGCOLOR 15 NO-UNDO.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME fMain
- F_AbDatum AT ROW 1.48 COL 46 COLON-ALIGNED
- F_BisDatum AT ROW 2.48 COL 46 COLON-ALIGNED
- CB_Art AT ROW 3.48 COL 46 COLON-ALIGNED
- F_Betrag AT ROW 4.48 COL 46 COLON-ALIGNED
- Btn_Zuteilen AT ROW 5.76 COL 58.2
- S_Gruppen AT ROW 1.48 COL 3 NO-LABEL
- vBrutto AT ROW 6.43 COL 48.2 COLON-ALIGNED NO-TAB-STOP
- vNetto AT ROW 6.43 COL 48.2 COLON-ALIGNED NO-TAB-STOP
- vMarge AT ROW 6.43 COL 48.2 COLON-ALIGNED NO-TAB-STOP
- vDatum AT ROW 6.43 COL 48.2 COLON-ALIGNED NO-TAB-STOP
- RECT-8 AT ROW 1.24 COL 2
- WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
- SIDE-LABELS NO-UNDERLINE THREE-D
- AT COL 1 ROW 1
- SIZE 67.6 BY 7.62.
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: SmartFrame
- Allow: Basic,Browse,DB-Fields,Query,Smart
- Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
- Other Settings: PERSISTENT-ONLY COMPILE
- */
- /* 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 fFrameWin ASSIGN
- HEIGHT = 7.62
- WIDTH = 67.6.
- /* END WINDOW DEFINITION */
- */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB fFrameWin
- /* ************************* Included-Libraries *********************** */
- {src/adm2/containr.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********** Runtime Attributes and AppBuilder Settings *********** */
- &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
- /* SETTINGS FOR WINDOW fFrameWin
- VISIBLE,,RUN-PERSISTENT */
- /* SETTINGS FOR FRAME fMain
- NOT-VISIBLE FRAME-NAME Custom */
- ASSIGN
- FRAME fMain:HIDDEN = TRUE.
- /* SETTINGS FOR FILL-IN F_AbDatum IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_Betrag IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN vBrutto IN FRAME fMain
- NO-DISPLAY NO-ENABLE 5 */
- ASSIGN
- vBrutto:HIDDEN IN FRAME fMain = TRUE
- vBrutto:READ-ONLY IN FRAME fMain = TRUE.
- /* SETTINGS FOR FILL-IN vDatum IN FRAME fMain
- NO-DISPLAY NO-ENABLE 5 */
- ASSIGN
- vDatum:HIDDEN IN FRAME fMain = TRUE
- vDatum:READ-ONLY IN FRAME fMain = TRUE.
- /* SETTINGS FOR FILL-IN vMarge IN FRAME fMain
- NO-DISPLAY NO-ENABLE 5 */
- ASSIGN
- vMarge:HIDDEN IN FRAME fMain = TRUE
- vMarge:READ-ONLY IN FRAME fMain = TRUE.
- /* SETTINGS FOR FILL-IN vNetto IN FRAME fMain
- NO-DISPLAY NO-ENABLE 5 */
- ASSIGN
- vNetto:HIDDEN IN FRAME fMain = TRUE
- vNetto:READ-ONLY IN FRAME fMain = TRUE.
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
- /* Setting information for Queries and Browse Widgets fields */
- &ANALYZE-SUSPEND _QUERY-BLOCK FRAME fMain
- /* Query rebuild information for FRAME fMain
- _Options = ""
- _Query is NOT OPENED
- */ /* FRAME fMain */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME Btn_Zuteilen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Zuteilen fFrameWin
- ON CHOOSE OF Btn_Zuteilen IN FRAME fMain /* Zuteilen */
- DO:
- RUN ZUFUEGEN_AKTION.
- IF RETURN-VALUE = 'ERROR' THEN RETURN NO-APPLY.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME CB_Art
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Art fFrameWin
- ON RETURN OF CB_Art IN FRAME fMain /* Abschlagsart */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_AbDatum
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_AbDatum fFrameWin
- ON LEAVE OF F_AbDatum IN FRAME fMain /* Ab Datum */
- DO:
- IF DATE(SELF:SCREEN-VALUE) = ? THEN DO:
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_BisDatum
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BisDatum fFrameWin
- ON LEAVE OF F_BisDatum IN FRAME fMain /* Bis Datum */
- DO:
- IF DATE(SELF:SCREEN-VALUE) = ? THEN DO:
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME S_Gruppen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL S_Gruppen fFrameWin
- ON RETURN OF S_Gruppen IN FRAME fMain
- DO:
- APPLY 'ENTRY' TO F_AbDatum IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL S_Gruppen fFrameWin
- ON TAB OF S_Gruppen IN FRAME fMain
- DO:
- APPLY 'ENTRY' TO F_AbDatum IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK fFrameWin
- /* *************************** Main Block *************************** */
- Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
- SUBSCRIBE TO 'AKTIONSANZEIGE' ANYWHERE.
- &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
- /* Now enable the interface if in test mode - otherwise this happens when
- the object is explicitly initialized from its container. */
- RUN initializeObject.
- &ENDIF
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects fFrameWin _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 AKTIONSANZEIGE fFrameWin
- PROCEDURE AKTIONSANZEIGE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipAktion AS CHAR NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
- DEF VAR cString AS CHAR NO-UNDO.
- DEF VAR cGruppe AS CHAR NO-UNDO.
- aAktion = ipAktion.
- IF FRAME {&FRAME-NAME}:VISIBLE = FALSE THEN RETURN.
- FIND Aktionen USE-INDEX Aktionen-k1
- WHERE Aktionen.Firma = Firma
- AND Aktionen.Aktion = aAktion NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Aktionen THEN RETURN.
- DO WITH FRAME {&FRAME-NAME}:
- cString = ''.
- cGruppe = ''.
- S_Gruppen:DELIMITER = CHR(01).
- IF Aktionen.Gruppen[01] <> 0 OR
- Aktionen.Gruppen[02] <> 0 THEN DO:
- DO ix = 1 TO 50:
- IF ix > 1 AND Aktionen.Gruppen[ix] = 0 THEN LEAVE.
- IF ix > 1 THEN cGruppe = cGruppe + CHR(01).
- cGruppe = cGruppe + STRING(Aktionen.Gruppen[ix],'999').
- FIND FIRST TGruppen WHERE TGruppen.Grp = Aktionen.Gruppen[ix]
- NO-LOCK NO-ERROR.
- IF NOT AVAILABLE TGruppen THEN NEXT.
- IF cString <> '' THEN cString = cString + CHR(01).
- cString = cString + TGruppen.Bez + CHR(01) + STRING(TGruppen.Grp,'999').
- END.
- END.
- IF cString = '' THEN cString = CHR(01).
- S_Gruppen:LIST-ITEM-PAIRS = cString.
- DO ix = 1 TO NUM-ENTRIES(cGruppe, CHR(01)):
- S_Gruppen:SCREEN-VALUE = ENTRY(ix, cGruppe, CHR(01)) NO-ERROR.
- END.
- Aktion = Aktionen.Aktion.
- Bemerk = Aktionen.Bemerkung.
- F_AbDatum = Aktionen.Ab_Datum.
- F_BisDatum = Aktionen.Bis_Datum.
- F_Betrag = Aktionen.Wert.
- CB_Art:SCREEN-VALUE = STRING(Aktionen.Art,'9').
- DISPLAY {&List-6}.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI fFrameWin _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 fMain.
- IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI fFrameWin _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 F_AbDatum F_BisDatum CB_Art F_Betrag S_Gruppen
- WITH FRAME fMain.
- ENABLE F_AbDatum F_BisDatum CB_Art F_Betrag Btn_Zuteilen S_Gruppen RECT-8
- WITH FRAME fMain.
- {&OPEN-BROWSERS-IN-QUERY-fMain}
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject fFrameWin
- PROCEDURE initializeObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR RecArt AS CHAR NO-UNDO.
- DEF VAR cString AS CHAR NO-UNDO.
-
- EMPTY TEMP-TABLE TGruppen.
- AktGrp = DYNAMIC-FUNCTION('GETFWAKTIONSPREISE':U) NO-ERROR.
- IF AktGrp = 0 THEN RecArt = 'PREGRP'.
- IF AktGrp = 1 THEN RecArt = 'KUNDGRP'.
- FOR EACH Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = RecArt NO-LOCK:
- CREATE TGruppen.
- ASSIGN TGruppen.Grp = Tabel.CodeI
- TGruppen.Bez = Tabel.Bez1.
- END.
- RUN SUPER.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject fFrameWin
- PROCEDURE viewObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- RUN SUPER.
- RUN AKTIONSANZEIGE ( INPUT aAktion ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZUFUEGEN_AKTION fFrameWin
- PROCEDURE ZUFUEGEN_AKTION :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cArtikel AS CHAR NO-UNDO.
- DEF VAR Artnr AS INT NO-UNDO.
- DEF VAR Inhalt AS INT NO-UNDO.
- DEF VAR Jahr AS INT NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
- DEF VAR i1 AS INT NO-UNDO.
- DEF VAR cPreisGrp AS CHAR NO-UNDO.
- DEF VAR cString AS CHAR NO-UNDO.
- DEF VAR Bru_Netto AS LOG NO-UNDO.
- DEF VAR Betrag AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR vArt AS INT NO-UNDO.
- DEF VAR vBruNet AS INT NO-UNDO.
- DEF VAR Grp AS INT NO-UNDO.
- DEF VAR hDaten AS HANDLE NO-UNDO.
- IF FRAME {&FRAME-NAME}:VISIBLE = FALSE THEN RETURN.
- hDaten = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
- DO WITH FRAME {&FRAME-NAME}:
- IF DATE(F_AbDatum:SCREEN-VALUE) = ? THEN DO:
- APPLY 'ENTRY' TO F_AbDatum.
- RETURN 'ERROR'.
- END.
- IF DATE(F_BisDatum:SCREEN-VALUE) = ? THEN DO:
- APPLY 'ENTRY' TO F_BisDatum.
- RETURN 'ERROR'.
- END.
- ASSIGN {&List-6}.
- vArt = INTEGER(CB_Art:SCREEN-VALUE).
- cArtikel = DYNAMIC-FUNCTION('getArtikel':U) NO-ERROR.
- IF cArtikel = '' THEN RETURN NO-APPLY.
- IF cArtikel = ? THEN RETURN NO-APPLY.
- Artnr = INTEGER(ENTRY(2, cArtikel, CHR(01))).
- Inhalt = INTEGER(ENTRY(3, cArtikel, CHR(01))).
- Jahr = INTEGER(ENTRY(4, cArtikel, CHR(01))).
- FIND Artst WHERE RECID(Artst) = INTEGER(ENTRY(1, cArtikel, CHR(01)))
- NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Artst THEN RETURN NO-APPLY.
- IF NOT Artst.Aktiv THEN RETURN NO-APPLY.
- i1 = S_Gruppen:NUM-ITEMS.
- cPreisGrp = ''.
- DO ix = 1 TO i1:
- IF S_Gruppen:IS-SELECTED(ix) = FALSE THEN NEXT.
- Grp = INTEGER(ENTRY((ix * 2), S_Gruppen:LIST-ITEM-PAIRS, CHR(01))).
- IF AktGrp = 0 THEN DO:
- FIND LAST ArtPreis USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = Artnr
- AND ArtPreis.Inhalt = Inhalt
- AND ArtPreis.Jahr = Jahr
- AND ArtPreis.Preis_Grp = Grp
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Aktiv = TRUE NO-LOCK NO-ERROR.
- IF NOT AVAILABLE ArtPreis THEN NEXT.
- END.
- IF cPreisGrp <> '' THEN cPreisGrp = cPreisGrp + CHR(01).
- cPreisGrp = cPreisGrp + STRING(Grp,'999').
- END.
- DO i1 = 1 TO NUM-ENTRIES(cPreisGrp, CHR(01)):
- ix = INTEGER(ENTRY(i1, cPreisGrp, CHR(01))).
- FIND AktPreis USE-INDEX AktPreis-k1
- WHERE AktPreis.Firma = Firma
- AND AktPreis.Artnr = Artnr
- AND AktPreis.Inhalt = Inhalt
- AND AktPreis.Jahr = Jahr
- AND AktPreis.Grp = ix
- AND AktPreis.Ab_Datum = F_AbDatum NO-LOCK NO-ERROR.
- IF AVAILABLE AktPreis THEN NEXT.
- CREATE AktPreis.
- ASSIGN AktPreis.Firma = Firma
- AktPreis.Artnr = Artnr
- AktPreis.Inhalt = Inhalt
- AktPreis.Jahr = Jahr
- AktPreis.Grp = ix
- AktPreis.Ab_Datum = F_AbDatum
- AktPreis.Bis_Datum = F_BisDatum
- AktPreis.Art = vArt
- AktPreis.Wert = F_Betrag
- AktPreis.Bemerkung = Bemerk
- AktPreis.Aktion = Aktion.
- END.
- IF AktGrp = 0 THEN DO: /* Aktionen auf Preisgruppen */
- FOR EACH WArtPreis:
- DELETE WArtPreis.
- END.
- CREATE WArtPreis.
- DO i1 = 1 TO NUM-ENTRIES(cPreisGrp, CHR(01)):
- ix = INTEGER(ENTRY(i1, cPreisGrp, CHR(01))).
- FIND ArtPreis USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = Artnr
- AND ArtPreis.Inhalt = Inhalt
- AND ArtPreis.Jahr = Jahr
- AND ArtPreis.Preis_Grp = ix
- AND ArtPreis.Ab_Datum = F_AbDatum NO-LOCK NO-ERROR.
- IF AVAILABLE ArtPreis THEN NEXT.
- FIND LAST ArtPreis USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = Artnr
- AND ArtPreis.Inhalt = Inhalt
- AND ArtPreis.Jahr = Jahr
- AND ArtPreis.Preis_Grp = ix
- AND ArtPreis.Ab_Datum < F_AbDatum
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Aktiv = TRUE
- NO-LOCK NO-ERROR.
- IF NOT AVAILABLE ArtPreis THEN NEXT.
-
- FIND FIRST WArtPreis.
- BUFFER-COPY ArtPreis TO WArtPreis.
-
- RUN FIND_PREISGRUPPE ( INPUT WArtPreis.Preis_Grp,
- OUTPUT cString ) NO-ERROR.
- IF cString = '' THEN NEXT.
- IF INTEGER(ENTRY(3, cString, CHR(01))) = 1 THEN Bru_Netto = TRUE.
- ELSE Bru_Netto = FALSE.
-
- vNetto = 0.
- vBrutto = 0.
- vMarge = 0.
- vDatum = F_AbDatum.
- IF Bru_Netto THEN DO:
- IF vArt = 0 THEN Betrag = ArtPreis.VK_Brutto
- - F_Betrag.
- IF vArt = 1 THEN Betrag = ArtPreis.VK_Brutto
- * (100 - F_Betrag) / 100.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Betrag ).
- vBrutto = Betrag.
- vBruNet = 2.
- END.
- ELSE DO:
- IF vArt = 0 THEN Betrag = ArtPreis.VK_Netto
- - F_Betrag.
- IF vArt = 1 THEN Betrag = ArtPreis.VK_Netto
- * (100 - F_Betrag) / 100.
- vNetto = Betrag.
- vBruNet = 1.
- END.
- vNetto :SCREEN-VALUE = STRING(vNetto ).
- vBrutto :SCREEN-VALUE = STRING(vBrutto).
- vMarge :SCREEN-VALUE = STRING(vMarge ).
- vDatum :SCREEN-VALUE = STRING(vDatum ).
- RUN ARTPREISRECHNEN ( INPUT vBruNet, INPUT vNetto :HANDLE,
- INPUT vBrutto:HANDLE,
- INPUT vMarge :HANDLE,
- INPUT vDatum :HANDLE,
- INPUT 'CHF' ).
- ASSIGN {&List-5}.
-
- ASSIGN WArtPreis.Ab_Datum = vDatum
- WArtPreis.VK_Netto = vNetto
- WArtPreis.VK_Brutto = vBrutto
- WArtPreis.Marge = vMarge
- WArtPreis.Aktion = TRUE
- WArtPreis.Aktiv = TRUE
- WArtPreis.AktName = Aktion.
- CREATE ArtPreis.
- BUFFER-COPY WArtPreis TO ArtPreis.
- END.
- IF VALID-HANDLE(hDaten) THEN RUN SET_OPENFLAG IN hDaten ( TRUE ).
- END.
- END.
- RETURN ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|