&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE XAufze NO-UNDO LIKE Aufze. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS B-table-Win /*------------------------------------------------------------------------ File: Description: from BROWSER.W - Basic SmartBrowser Object Template Input Parameters: Output Parameters: ------------------------------------------------------------------------*/ /* 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 ************************** */ &SCOPE INPUT-FELDER F_Bez1, F_Bez2, F_KGebinde, ~ F_Alk_Gehalt, F_MWST, F_MBest, F_VGebinde, F_MGeli, ~ F_MRuek, F_Preis, F_Rab_Art, F_Rab_Wert, F_Zus_Art, ~ F_Zus_Wert /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR VUpdate AS LOG NO-UNDO. DEF VAR VNeu AS LOG NO-UNDO. DEF VAR FAnzeige AS LOG NO-UNDO. DEF VAR FLeave AS LOG NO-UNDO. DEF VAR FGefunden AS LOG NO-UNDO. DEF VAR Vorhanden AS LOG NO-UNDO. DEF VAR XRecid AS RECID NO-UNDO. DEF VAR FAlfa AS LOG NO-UNDO. DEF VAR VArtnr AS INT NO-UNDO. DEF VAR VInhalt AS INT NO-UNDO. DEF VAR VBez1 AS CHAR NO-UNDO. DEF VAR VBez2 AS CHAR NO-UNDO. DEF VAR VArtnrL AS INT NO-UNDO. DEF VAR VJahr AS INT NO-UNDO. DEF VAR FeldInhalt AS CHAR NO-UNDO. DEF VAR FeldName AS CHAR NO-UNDO. DEF VAR LHandle AS HANDLE NO-UNDO. DEF VAR XHandle AS HANDLE NO-UNDO. DEF VAR hDaten AS HANDLE NO-UNDO. DEF VAR hFenster AS HANDLE NO-UNDO. DEF VAR VDaten AS CHAR NO-UNDO. DEF VAR AktCode AS INT NO-UNDO. DEF VAR Aufnr AS INT NO-UNDO. DEF VAR Geb_Rg AS LOG NO-UNDO. DEF VAR xKGebinde AS CHAR FORMAT "x(08)" NO-UNDO. DEF VAR xVGebinde AS CHAR FORMAT "x(08)" NO-UNDO. DEF VAR VPreis AS DEC DECIMALS 4 NO-UNDO. DEF VAR VRab_Betr AS DEC DECIMALS 4 NO-UNDO. DEF VAR VRab_Proz AS DEC DECIMALS 4 NO-UNDO. DEF VAR VZus_Betr AS DEC DECIMALS 4 NO-UNDO. DEF VAR VZus_Proz AS DEC DECIMALS 4 NO-UNDO. DEF VAR VAktion AS LOG NO-UNDO. DEF VAR VAktion_Text AS CHAR NO-UNDO. DEF VAR VP_Grp AS INT NO-UNDO. DEF VAR VGrp AS INT NO-UNDO. DEF VAR Ablauf AS INT NO-UNDO. DEF VAR xRowid AS ROWID NO-UNDO. DEF VAR KLim AS DEC NO-UNDO. DEF VAR Saldo AS DEC NO-UNDO. DEF VAR KRecid AS RECID NO-UNDO. DEF VAR fAdmin AS LOG NO-UNDO. DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR hQuery AS HANDLE NO-UNDO. DEF BUFFER BAufko FOR Aufko . DEF BUFFER YAufko FOR Aufko . DEF BUFFER BAufze FOR Aufze . DEF BUFFER BArtst FOR Artst . DEF BUFFER BDebst FOR Debst . DEF WORKFILE WAufze LIKE Aufze. DEF TEMP-TABLE TAufze LIKE Aufze. /* { v8/aufkototv.i "NEW" "SHARED" } */ /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i" " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } DEF TEMP-TABLE TBrowser NO-UNDO FIELD Feld AS CHAR FIELD Pos AS INT FIELD Breit AS DEC FIELD fAktiv AS LOG FIELD fVisible AS LOG FIELD PosAkt AS INT FIELD BreitAkt AS DEC FIELD hCol AS HANDLE FIELD cType AS CHAR FIELD cFormat AS CHAR FIELD cInitial AS CHAR FIELD cLabel AS CHAR. DEF VAR sAktiv AS LOG NO-UNDO INIT FALSE. DEF VAR Firma AS CHAR FORMAT "x(04)" NO-UNDO. DEF VAR btnOK AS LOG INIT FALSE NO-UNDO. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartBrowser &Scoped-define DB-AWARE no &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME br_table /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES Aufze /* Definitions for BROWSE br_table */ &Scoped-define FIELDS-IN-QUERY-br_table ~ DYNAMIC-FUNCTION('getVGebinde':U, Aufze.VGeb_Cd) @ xVGebinde ~ DYNAMIC-FUNCTION('getKGebinde':U, Aufze.KGeb_Cd) @ xKGebinde Aufze.MBest ~ Aufze.Bez1 Aufze.Artnr Aufze.Jahr Aufze.GGeb_Me Aufze.VGeb_Me Aufze.MGeli ~ Aufze.Preis Aufze.MRuek Aufze.Rab_Wert Aufze.Rab_Su_Grp Aufze.WuCd ~ Aufze.Inhalt &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table &Scoped-define QUERY-STRING-br_table FOR EACH Aufze OF Aufko NO-LOCK INDEXED-REPOSITION &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH Aufze OF Aufko NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-br_table Aufze &Scoped-define FIRST-TABLE-IN-QUERY-br_table Aufze /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_AlteNr Btn_Aendern Btn_Erfassen ~ Btn_Loeschen Btn_Zurueck Btn_Verschieben br_table RECT-32 RECT-33 RECT-34 &Scoped-Define DISPLAYED-OBJECTS F_AlteNr F_Aufnr F_Artnr F_Knr F_Inhalt ~ F_Anzeig_Br F_Jahr F_Bez1 F_Auf_Tot F_Bez2 F_Preis F_Rab_Art F_Rab_Wert ~ F_Zus_Art F_Zus_Wert F_MBest F_MGeli F_MRuek F_KGebinde F_VGebinde ~ F_Alk_Gehalt F_MWST /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Artnr F_Inhalt F_Jahr F_Bez1 F_Bez2 F_Preis ~ F_Rab_Art F_Rab_Wert F_Zus_Art F_Zus_Wert F_MBest F_MGeli F_MRuek ~ F_KGebinde F_VGebinde F_Alk_Gehalt F_MWST &Scoped-define List-2 F_Artnr F_Inhalt F_Jahr &Scoped-define List-3 F_AlteNr F_Bez1 F_Bez2 F_Preis F_Rab_Art F_Rab_Wert ~ F_Zus_Art F_Zus_Wert &Scoped-define List-6 F_Aufnr F_Knr F_Anzeig_Br F_Auf_Tot /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE /* Actions: ? adm/support/keyedit.w ? ? ? */ /* STRUCTURED-DATA &BROWSE-NAME ************************** * Set attributes related to FOREIGN KEYS */ RUN set-attribute-list ( 'Keys-Accepted = "", Keys-Supplied = ""':U). /************************** */ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE /* Actions: ? adm/support/advqedit.w ? ? ? */ /* STRUCTURED-DATA &BROWSE-NAME ************************ * Set attributes related to SORTBY-OPTIONS */ RUN set-attribute-list ( 'SortBy-Options = ""':U). /************************ */ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getKGebinde B-table-Win FUNCTION getKGebinde RETURNS CHARACTER ( ipKGeb_Cd AS CHAR ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getUpdateStatus B-table-Win FUNCTION getUpdateStatus RETURNS LOGICAL ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getVGebinde B-table-Win FUNCTION getVGebinde RETURNS CHARACTER ( ipVGeb_Cd AS CHAR ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setZeilenFarbe B-table-Win FUNCTION setZeilenFarbe RETURNS LOGICAL ( ipFarbe AS INT ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Aendern LABEL "&Aendern" SIZE 14 BY 1. DEFINE BUTTON Btn_Erfassen LABEL "&Neu" SIZE 14 BY 1. DEFINE BUTTON Btn_Loeschen LABEL "&Löschen" SIZE 14 BY 1. DEFINE BUTTON Btn_Verschieben LABEL "&Weiter" SIZE 14 BY 1. DEFINE BUTTON Btn_Zurueck LABEL "&Zurück" SIZE 14 BY 1. DEFINE VARIABLE F_Alk_Gehalt AS DECIMAL FORMAT "zzz99.99":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_AlteNr AS CHARACTER FORMAT "XXXXXX.XXXX.XXXX":U VIEW-AS FILL-IN NATIVE SIZE 24 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Anzeig_Br AS CHARACTER FORMAT "x(80)":U VIEW-AS FILL-IN NATIVE SIZE 70 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(20)":U VIEW-AS FILL-IN NATIVE SIZE 12.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "9999999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Auf_Tot AS DECIMAL FORMAT "zzzz,zz9.99-":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 19.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bez1 AS CHARACTER FORMAT "x(30)":U VIEW-AS FILL-IN NATIVE SIZE 42 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bez2 AS CHARACTER FORMAT "x(30)":U VIEW-AS FILL-IN NATIVE SIZE 42 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Inhalt AS INTEGER FORMAT "9999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 8.4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Jahr AS INTEGER FORMAT "9999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 8.4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_KGebinde AS CHARACTER FORMAT "x(10)":U VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 14 FONT 6 NO-UNDO. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_MBest AS DECIMAL FORMAT "zz,zz9.99-":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_MGeli AS DECIMAL FORMAT "zz,zz9.99-":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_MRuek AS DECIMAL FORMAT "zz,zz9.99-":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_MWST AS CHARACTER FORMAT "x(20)":U VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Preis AS DECIMAL FORMAT "zzz,zz9.999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 19 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Rab_Art AS INTEGER FORMAT "z9":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 5 BY 1 TOOLTIP "0 = kein Rabatt, 1 = Rabatt in %, 2 = Rabatt al Betrag, 3 = EP-Aufschlag" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Rab_Wert AS DECIMAL FORMAT "zz9.9999-":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 15 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VGebinde AS CHARACTER FORMAT "x(10)":U VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 14 FONT 6 NO-UNDO. DEFINE VARIABLE F_Zus_Art AS INTEGER FORMAT "z9":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 5 BY 1 TOOLTIP "0 = kein Rabatt, 1 = Rabatt in %, 2 = Rabatt al Betrag" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Zus_Wert AS DECIMAL FORMAT "zz9.9999-":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 15 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-32 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 159.8 BY 21.29. DEFINE RECTANGLE RECT-33 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 130 BY 2.86. DEFINE RECTANGLE RECT-34 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 130 BY 8. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY br_table FOR Aufze SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE br_table &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table B-table-Win _STRUCTURED QUERY br_table NO-LOCK DISPLAY DYNAMIC-FUNCTION('getVGebinde':U, Aufze.VGeb_Cd) @ xVGebinde COLUMN-LABEL "VGebinde" FORMAT "x(08)":U DYNAMIC-FUNCTION('getKGebinde':U, Aufze.KGeb_Cd) @ xKGebinde COLUMN-LABEL "KGebinde" FORMAT "x(08)":U Aufze.MBest COLUMN-LABEL "Bestellt" FORMAT "->>>>9.9":U Aufze.Bez1 COLUMN-LABEL "Bezeichnung" FORMAT "x(30)":U Aufze.Artnr FORMAT "999999":U Aufze.Jahr FORMAT "9999":U Aufze.GGeb_Me COLUMN-LABEL "GGeb" FORMAT "->>>9":U Aufze.VGeb_Me COLUMN-LABEL "VGeb" FORMAT "->>>9":U Aufze.MGeli COLUMN-LABEL "Geliefert" FORMAT "->>>>9.9":U Aufze.Preis FORMAT "zzz,zz9.999":U WIDTH 10.6 Aufze.MRuek FORMAT "zzzz9.99-":U Aufze.Rab_Wert COLUMN-LABEL "Rab" FORMAT "->>9.999":U Aufze.Rab_Su_Grp COLUMN-LABEL "RG" FORMAT "999":U WIDTH 4.8 Aufze.WuCd COLUMN-LABEL "MW" FORMAT "99":U Aufze.Inhalt FORMAT "9999":U WIDTH 6.4 /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 152 BY 7.95 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main F_AlteNr AT ROW 7.52 COL 3 COLON-ALIGNED NO-LABEL WIDGET-ID 2 NO-TAB-STOP F_Aufnr AT ROW 2.95 COL 3.4 COLON-ALIGNED NO-LABEL NO-TAB-STOP F_Artnr AT ROW 6.52 COL 3 COLON-ALIGNED NO-LABEL AUTO-RETURN F_Knr AT ROW 2.95 COL 16.4 COLON-ALIGNED NO-LABEL NO-TAB-STOP F_Inhalt AT ROW 6.52 COL 17.6 COLON-ALIGNED NO-LABEL AUTO-RETURN F_Anzeig_Br AT ROW 2.95 COL 28.4 COLON-ALIGNED NO-LABEL NO-TAB-STOP F_Jahr AT ROW 6.52 COL 28.8 COLON-ALIGNED NO-LABEL AUTO-RETURN F_Bez1 AT ROW 6.52 COL 40 COLON-ALIGNED NO-LABEL F_Auf_Tot AT ROW 2.95 COL 105.4 COLON-ALIGNED NO-LABEL NO-TAB-STOP F_Bez2 AT ROW 7.52 COL 40 COLON-ALIGNED NO-LABEL F_Preis AT ROW 6.52 COL 84.8 COLON-ALIGNED NO-LABEL F_Rab_Art AT ROW 6.52 COL 105.4 COLON-ALIGNED NO-LABEL F_Rab_Wert AT ROW 6.52 COL 111.2 COLON-ALIGNED NO-LABEL F_Zus_Art AT ROW 7.52 COL 105.4 COLON-ALIGNED NO-LABEL F_Zus_Wert AT ROW 7.52 COL 111.2 COLON-ALIGNED NO-LABEL F_MBest AT ROW 11 COL 3.4 COLON-ALIGNED NO-LABEL F_MGeli AT ROW 11 COL 21.6 COLON-ALIGNED NO-LABEL F_MRuek AT ROW 11 COL 39.8 COLON-ALIGNED NO-LABEL F_KGebinde AT ROW 11 COL 58 COLON-ALIGNED NO-LABEL F_VGebinde AT ROW 11 COL 76.2 COLON-ALIGNED NO-LABEL F_Alk_Gehalt AT ROW 11 COL 94.4 COLON-ALIGNED NO-LABEL F_MWST AT ROW 11 COL 112.6 COLON-ALIGNED NO-LABEL Btn_Aendern AT ROW 21.1 COL 41 Btn_Erfassen AT ROW 21.1 COL 56.4 Btn_Loeschen AT ROW 21.1 COL 71.8 Btn_Zurueck AT ROW 21.1 COL 87.2 Btn_Verschieben AT ROW 21.1 COL 102.6 br_table AT ROW 12.91 COL 3.4 "Auftrag" VIEW-AS TEXT SIZE 11 BY 1 AT ROW 1.71 COL 5.4 FONT 9 "Jahr" VIEW-AS TEXT SIZE 8.4 BY 1 AT ROW 5.24 COL 30.8 FONT 9 "Bezeichnung" VIEW-AS TEXT SIZE 42 BY 1 AT ROW 5.24 COL 42 FONT 9 " Preis" VIEW-AS TEXT SIZE 17.6 BY 1 AT ROW 5.24 COL 86.8 FONT 9 "Rabatt/Zuschlag" VIEW-AS TEXT SIZE 23.2 BY 1 AT ROW 5.24 COL 107.4 FONT 9 "Bestellt" VIEW-AS TEXT SIZE 17.6 BY 1 AT ROW 9.67 COL 5.4 FONT 9 "Geliefert" VIEW-AS TEXT SIZE 17.6 BY 1 AT ROW 9.67 COL 23.6 FONT 9 "Rückstand" VIEW-AS TEXT SIZE 17.6 BY 1 AT ROW 9.67 COL 41.8 FONT 9 "KGebinde" VIEW-AS TEXT SIZE 17.6 BY 1 AT ROW 9.67 COL 60 FONT 9 "VGebinde" VIEW-AS TEXT SIZE 17.6 BY 1 AT ROW 9.67 COL 78.2 FONT 9 " Vol.%" VIEW-AS TEXT SIZE 17.6 BY 1 AT ROW 9.67 COL 96.4 FONT 9 "MWSt" VIEW-AS TEXT SIZE 17.6 BY 1 AT ROW 9.67 COL 114.6 FONT 9 "Kunde" VIEW-AS TEXT SIZE 11 BY 1 AT ROW 1.71 COL 18.4 FONT 9 "Auftr.wert" VIEW-AS TEXT SIZE 18.4 BY 1 AT ROW 1.71 COL 107.4 FONT 9 "Artikel" VIEW-AS TEXT SIZE 12.6 BY 1 AT ROW 5.24 COL 5 FONT 9 "Inhalt" VIEW-AS TEXT SIZE 8.4 BY 1 AT ROW 5.24 COL 19.6 FONT 9 RECT-32 AT ROW 1.24 COL 1.6 RECT-33 AT ROW 1.52 COL 3.4 RECT-34 AT ROW 4.71 COL 3.4 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SCROLLABLE . /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartBrowser Allow: Basic,Browse Frames: 1 Add Fields to: EXTERNAL-TABLES Other Settings: PERSISTENT-ONLY COMPILE Temp-Tables and Buffers: TABLE: XAufze T "?" NO-UNDO AnaDat Aufze END-TABLES. */ /* 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 B-table-Win ASSIGN HEIGHT = 21.91 WIDTH = 161.6. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win /* ************************* Included-Libraries *********************** */ {src/adm/method/browser.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW B-table-Win NOT-VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */ /* BROWSE-TAB br_table Btn_Verschieben F-Main */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. ASSIGN br_table:MAX-DATA-GUESS IN FRAME F-Main = 10 br_table:COLUMN-RESIZABLE IN FRAME F-Main = TRUE. ASSIGN Btn_Erfassen:PRIVATE-DATA IN FRAME F-Main = "Abbrechen". /* SETTINGS FOR FILL-IN F_Alk_Gehalt IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_AlteNr IN FRAME F-Main 3 */ ASSIGN F_AlteNr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_Anzeig_Br IN FRAME F-Main NO-ENABLE 6 */ ASSIGN F_Anzeig_Br:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main NO-ENABLE 1 2 */ /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME F-Main NO-ENABLE 6 */ ASSIGN F_Aufnr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_Auf_Tot IN FRAME F-Main NO-ENABLE 6 */ ASSIGN F_Auf_Tot:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_Bez1 IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN F_Bez2 IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME F-Main NO-ENABLE 1 2 */ /* SETTINGS FOR FILL-IN F_Jahr IN FRAME F-Main NO-ENABLE 1 2 */ /* SETTINGS FOR FILL-IN F_KGebinde IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main NO-ENABLE 6 */ ASSIGN F_Knr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_MBest IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_MGeli IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_MRuek IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_MWST IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_Preis IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN F_Rab_Art IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN F_Rab_Wert IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN F_VGebinde IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_Zus_Art IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN F_Zus_Wert IN FRAME F-Main NO-ENABLE 1 3 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table /* Query rebuild information for BROWSE br_table _TblList = "AnaDat.Aufze OF AnaDat.Aufko" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] > "_" "DYNAMIC-FUNCTION('getVGebinde':U, Aufze.VGeb_Cd) @ xVGebinde" "VGebinde" "x(08)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[2] > "_" "DYNAMIC-FUNCTION('getKGebinde':U, Aufze.KGeb_Cd) @ xKGebinde" "KGebinde" "x(08)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[3] > AnaDat.Aufze.MBest "Aufze.MBest" "Bestellt" "->>>>9.9" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] > AnaDat.Aufze.Bez1 "Aufze.Bez1" "Bezeichnung" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] = AnaDat.Aufze.Artnr _FldNameList[6] = AnaDat.Aufze.Jahr _FldNameList[7] > AnaDat.Aufze.GGeb_Me "Aufze.GGeb_Me" "GGeb" "->>>9" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[8] > AnaDat.Aufze.VGeb_Me "Aufze.VGeb_Me" "VGeb" "->>>9" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[9] > AnaDat.Aufze.MGeli "Aufze.MGeli" "Geliefert" "->>>>9.9" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[10] > AnaDat.Aufze.Preis "Aufze.Preis" ? ? "decimal" ? ? ? ? ? ? no ? no no "10.6" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[11] = AnaDat.Aufze.MRuek _FldNameList[12] > AnaDat.Aufze.Rab_Wert "Aufze.Rab_Wert" "Rab" "->>9.999" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[13] > AnaDat.Aufze.Rab_Su_Grp "Aufze.Rab_Su_Grp" "RG" ? "integer" ? ? ? ? ? ? no ? no no "4.8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[14] > AnaDat.Aufze.WuCd "Aufze.WuCd" "MW" ? "integer" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[15] > AnaDat.Aufze.Inhalt "Aufze.Inhalt" ? ? "integer" ? ? ? ? ? ? no ? no no "6.4" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE br_table */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME F-Main &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main B-table-Win ON LEAVE OF FRAME F-Main DO: IF VUpdate = TRUE THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME br_table &Scoped-define SELF-NAME br_table &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON CTRL-C OF br_table IN FRAME F-Main DO: IF NUM-RESULTS('{&BROWSE-NAME}') = ? THEN RETURN NO-APPLY. IF NUM-RESULTS('{&BROWSE-NAME}') = 0 THEN RETURN NO-APPLY. IF NOT AVAILABLE Aufze THEN RETURN NO-APPLY. FIND FIRST WAufze NO-ERROR. IF NOT AVAILABLE WAufze THEN CREATE WAufze. BUFFER-COPY Aufze TO WAufze. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON CTRL-V OF br_table IN FRAME F-Main DO: IF NUM-RESULTS('{&BROWSE-NAME}') = ? THEN RETURN NO-APPLY. IF NUM-RESULTS('{&BROWSE-NAME}') = 0 THEN RETURN NO-APPLY. IF NOT AVAILABLE Aufze THEN RETURN NO-APPLY. Aufnr = Aufze.Aufnr. FIND FIRST WAufze NO-ERROR. IF NOT AVAILABLE WAufze THEN RETURN NO-APPLY. REPEAT TRANSACTION: i4 = WAufze.Pos. WAufze.Pos = Aufze.Pos. i5 = 10000. FOR EACH TAufze: DELETE TAufze. END. FOR EACH Aufze WHERE Aufze.Firma = GVFirma AND Aufze.Aufnr = Aufnr : IF Aufze.Pos = i4 THEN DO: DELETE Aufze. NEXT. END. IF Aufze.Pos = WAufze.Pos THEN DO: i5 = i5 + 10. CREATE TAufze. BUFFER-COPY WAufze TO TAufze. TAufze.Pos = i5. i3 = i5. END. i5 = i5 + 10. CREATE TAufze. BUFFER-COPY Aufze TO TAufze. TAufze.Pos = i5. DELETE Aufze. END. RUN adm-open-query. i5 = 0. FOR EACH TAufze: i5 = i5 + 10. CREATE Aufze. BUFFER-COPY TAufze TO Aufze. Aufze.Pos = i5. IF Aufze.Pos = i3 THEN xRowid = ROWID(Aufze). DELETE TAufze. END. DELETE WAufze. LEAVE. END. RUN adm-open-query. REPOSITION {&BROWSE-NAME} TO ROWID xRowid NO-ERROR. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON ENTRY OF br_table IN FRAME F-Main DO: RUN ABBRECHEN. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON ROW-DISPLAY OF br_table IN FRAME F-Main DO: DEF VAR iFarbe AS INT NO-UNDO. IF NOT AVAILABLE Aufze THEN RETURN NO-APPLY. FAnzeige = FALSE. RUN ANZEIGE. iFarbe = 15. DYNAMIC-FUNCTION('setZeilenFarbe':U, iFarbe). DO WHILE TRUE: IF Aufze.Artnr = 0 THEN LEAVE. FIND Artst OF Aufze NO-LOCK NO-ERROR. IF NOT AVAILABLE Artst THEN LEAVE. IF Artst.Lager AND NOT Aufze.Lag_Buch THEN DO: iFarbe = 11. DYNAMIC-FUNCTION('setZeilenFarbe':U, iFarbe). END. IF Aufze.Aktion THEN Aufze.Preis:BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. IF Aufze.MRuek <> 0 THEN Aufze.MRuek:BGCOLOR = 14. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK. IF AVAILABLE KGebinde THEN xKGebinde = KGebinde.KBez. ELSE xKGebinde = Artst.KGeb_Cd. FIND VGebinde USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-LOCK. IF AVAILABLE KGebinde THEN xVGebinde = VGebinde.KBez. ELSE xVGebinde = Artst.VGeb_Cd. LEAVE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON ROW-ENTRY OF br_table IN FRAME F-Main DO: /* This code displays initial values for newly added or copied rows. */ {src/adm/template/brsentry.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON ROW-LEAVE OF br_table IN FRAME F-Main DO: /* Do not disable this code or no updates will take place except by pressing the Save button on an Update SmartPanel. */ {src/adm/template/brsleave.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON VALUE-CHANGED OF br_table IN FRAME F-Main DO: {src/adm/template/brschnge.i} RUN ABBRECHEN. RUN ANZEIGE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Aendern &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Aendern B-table-Win ON CHOOSE OF Btn_Aendern IN FRAME F-Main /* Aendern */ DO: DEF VAR rRowId AS ROWID NO-UNDO. IF Btn_Aendern:LABEL = '&Aendern' THEN DO: hQuery:GET-CURRENT(). rRowId = ROWID(Aufze). RUN local-open-query. hQUERY:REPOSITION-TO-ROWID(rRowId). RUN AENDERN. END. ELSE DO: RUN SPEICHERN. END. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Erfassen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Erfassen B-table-Win ON CHOOSE OF Btn_Erfassen IN FRAME F-Main /* Neu */ DO: IF Btn_Erfassen:LABEL = '&Neu' THEN DO: RUN ERFASSEN. END. ELSE DO: RUN ABBRECHEN. END. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Loeschen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen B-table-Win ON CHOOSE OF Btn_Loeschen IN FRAME F-Main /* Löschen */ DO: RUN LOESCHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Verschieben &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Verschieben B-table-Win ON CHOOSE OF Btn_Verschieben IN FRAME F-Main /* Weiter */ DO: IF NOT AVAILABLE Aufko THEN RETURN NO-APPLY. XVAufnr = Aufko.Aufnr. RUN WEITER ( INPUT XVAufnr ). IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. RUN new-state ( 'Seite_1_Open, MAIN':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Zurueck &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Zurueck B-table-Win ON CHOOSE OF Btn_Zurueck IN FRAME F-Main /* Zurück */ DO: IF NOT AVAILABLE Aufko THEN RETURN NO-APPLY. XVAufnr = Aufko.Aufnr. RUN ZURUECK ( INPUT XVAufnr ). IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. RUN new-state ( 'Seite_1_Open, MAIN':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr B-table-Win ON ENTRY OF F_Artnr IN FRAME F-Main DO: FGefunden = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr B-table-Win ON LEAVE OF F_Artnr IN FRAME F-Main DO: DEF VAR iRecid AS RECID NO-UNDO. DEF VAR iArtnr AS INT NO-UNDO. DEF VAR yy AS INT NO-UNDO. IF NOT VUpdate THEN RETURN NO-APPLY. IF NOT VNeu THEN RETURN NO-APPLY. 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' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. Gefunden = FALSE. EMPTY TEMP-TABLE XAufze. CREATE XAufze. DO WHILE FeldInhalt = '': DISABLE {&List-2}. ENABLE F_Bez1 F_Bez2. ASSIGN XAufze.Firma = GVFirma XAufze.Aufnr = Aufko.Aufnr XAufze.Artnr = 0 XAufze.Verbucht = FALSE XAufze.Lag_Buch = (IF Aufko.AlsOfferte THEN FALSE ELSE TRUE). RUN ANZEIGE_AUFZE ( INPUT 2 ). F_Preis:MODIFIED = FALSE. F_Rab_Art:MODIFIED = FALSE. F_Rab_Wert:MODIFIED = FALSE. APPLY 'ENTRY' TO F_Bez1. RETURN NO-APPLY. END. DO WHILE TRUE: iArtnr = 0. iRecid = ?. IF NUM-ENTRIES(FeldInhalt, ' ') = 1 THEN iArtnr = INTEGER(FeldInhalt) NO-ERROR. IF NOT ERROR-STATUS:ERROR AND iArtnr > 0 THEN DO: yy = 0. FOR EACH Artst NO-LOCK WHERE Artst.Firma = GVFirma AND Artst.Artnr = iArtnr: ASSIGN yy = yy + 1 iRecid = RECID(Artst). END. END. IF yy = 1 THEN LEAVE. LVSuchbe = FeldInhalt. iRecid = ?. RUN g-suchen-artikel.w ( LVSuchbe, OUTPUT iRecid ). LEAVE. END. IF iRecid = ? OR iRecid = 0 THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. FIND Artst NO-LOCK WHERE RECID(Artst) = iRecid NO-ERROR. IF AVAILABLE Artst THEN DO: FIND FIRST Artbez NO-LOCK OF Artst. ASSIGN VArtnr = Artst.Artnr VInhalt = Artst.Inhalt VJahr = Artst.Jahr VBez1 = Artbez.Bez1 VBez2 = Artbez.Bez2 F_Artnr = STRING(VArtnr ,"999999") F_Artnr:SCREEN-VALUE = STRING(VArtnr ,"999999") F_Inhalt:SCREEN-VALUE = STRING(VInhalt,"9999") F_Jahr:SCREEN-VALUE = STRING(VJahr ,"9999") F_Bez1:SCREEN-VALUE = VBez1 F_Bez2:SCREEN-VALUE = VBez2 FeldInhalt = STRING(VArtnr) Gefunden = TRUE. END. ASSIGN {&List-1}. DISPLAY {&List-1}. ASSIGN XAufze.Firma = GVFirma XAufze.Aufnr = Aufko.Aufnr XAufze.Artnr = VArtnr XAufze.Verbucht = FALSE. IF Gefunden THEN DO: APPLY 'ENTRY' TO F_Jahr. APPLY 'LEAVE' TO F_Jahr. RETURN NO-APPLY. END. APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Bez1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Bez1 B-table-Win ON LEAVE OF F_Bez1 IN FRAME F-Main DO: IF NOT VUpdate THEN RETURN NO-APPLY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. RETURN NO-APPLY. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Bez2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Bez2 B-table-Win ON LEAVE OF F_Bez2 IN FRAME F-Main DO: IF NOT VUpdate THEN RETURN NO-APPLY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. RETURN NO-APPLY. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Preis &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Preis B-table-Win ON ENTRY OF F_Preis IN FRAME F-Main DO: SELF:MODIFIED = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Preis B-table-Win ON LEAVE OF F_Preis IN FRAME F-Main DO: IF NOT VUpdate THEN RETURN NO-APPLY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. RETURN NO-APPLY. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. IF DECIMAL(F_Preis:SCREEN-VALUE) = 0 THEN DO: { v8/antwort.i "0329" } IF Ja THEN DO: XAufze.Preis_Mut = TRUE. RETURN. END. APPLY 'ENTRY' TO F_Preis IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. IF SELF:MODIFIED = TRUE THEN XAufze.Preis_Mut = TRUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Rab_Art &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Rab_Art B-table-Win ON LEAVE OF F_Rab_Art IN FRAME F-Main DO: IF NOT VUpdate THEN RETURN NO-APPLY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. RETURN NO-APPLY. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. DO WITH FRAME {&FRAME-NAME}: IF INTEGER(F_Rab_Art:SCREEN-VALUE) = 0 THEN DO: F_Rab_Wert:SCREEN-VALUE = ''. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Rab_Wert &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Rab_Wert B-table-Win ON ENTRY OF F_Rab_Wert IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: IF INTEGER(F_Rab_Art:SCREEN-VALUE) = 0 THEN DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Rab_Wert B-table-Win ON LEAVE OF F_Rab_Wert IN FRAME F-Main DO: IF NOT VUpdate THEN RETURN NO-APPLY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. RETURN NO-APPLY. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. DO WITH FRAME {&FRAME-NAME}: IF DECIMAL(F_Rab_Wert:SCREEN-VALUE) = 0 THEN DO: F_Rab_Art:SCREEN-VALUE = ''. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Zus_Art &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Zus_Art B-table-Win ON LEAVE OF F_Zus_Art IN FRAME F-Main DO: IF NOT VUpdate THEN RETURN NO-APPLY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. RETURN NO-APPLY. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. DO WITH FRAME {&FRAME-NAME}: IF INTEGER(F_Zus_Art:SCREEN-VALUE) = 0 THEN DO: F_Zus_Wert:SCREEN-VALUE = ''. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Zus_Wert &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Zus_Wert B-table-Win ON ENTRY OF F_Zus_Wert IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: IF INTEGER(F_Zus_Art:SCREEN-VALUE) = 0 THEN DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Zus_Wert B-table-Win ON LEAVE OF F_Zus_Wert IN FRAME F-Main DO: IF NOT VUpdate THEN RETURN NO-APPLY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. RETURN NO-APPLY. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. DO WITH FRAME {&FRAME-NAME}: IF DECIMAL(F_Zus_Wert:SCREEN-VALUE) = 0 THEN DO: F_Zus_Art:SCREEN-VALUE = ''. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win /* *************************** Main Block *************************** */ SESSION:DATA-ENTRY-RETURN = TRUE. SUBSCRIBE TO 'ENDEAUFTRAG' ANYWHERE. { incl/dlgmainblock.i } &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN dispatch IN THIS-PROCEDURE ('initialize':U). &ENDIF FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. IF AVAILABLE Steuer THEN VArtnrL = Steuer.Fwi10. VNeu = FALSE. VUpdate = FALSE. FAnzeige = TRUE. FGefunden = FALSE. FLeave = TRUE. Ablauf = 0. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR. ON INSERT-MODE, 'ALT-INS' OF FRAME {&FRAME-NAME} ANYWHERE DO: APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON RETURN OF BROWSE {&BROWSE-NAME} DO: IF VUpdate THEN RETURN NO-APPLY. APPLY 'ENTRY' TO Btn_Aendern IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Aendern IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON "ALT-RETURN" OF BROWSE {&BROWSE-NAME} DO: IF VUpdate THEN RETURN NO-APPLY. APPLY 'ENTRY' TO Btn_Aendern IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Aendern IN FRAME {&FRAME-NAME}. END. ON "ALT-S":U OF {&INPUT-FELDER} DO: IF NOT VUpdate THEN RETURN NO-APPLY. APPLY 'ENTRY' TO Btn_Aendern IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Aendern IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON DELETE-CHARACTER OF BROWSE {&BROWSE-NAME} DO: IF VUpdate THEN RETURN NO-APPLY. RUN LOESCHEN. RETURN NO-APPLY. END. ON RETURN OF {&INPUT-FELDER} DO: IF VUpdate THEN DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. ON END, "F9":U OF {&INPUT-FELDER} DO: IF VUpdate THEN DO: APPLY 'ENTRY' TO Btn_Aendern IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Aendern IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. END. /* ON END-ERROR OF FRAME {&FRAME-NAME} ANYWHERE DO: IF NOT VUpdate THEN DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. */ ON LEAVE OF F_Inhalt IN FRAME {&FRAME-NAME} DO: IF NOT VUpdate THEN RETURN NO-APPLY. IF NOT VNeu THEN RETURN NO-APPLY. 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' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. RETURN NO-APPLY. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Inhalt = INTEGER(FeldInhalt). FIND FIRST Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = F_Inhalt NO-LOCK NO-ERROR. IF NOT AVAILABLE Artst THEN DO: { v8/fehler.i "0213" } APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. F_Jahr = Artst.Jahr. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK. FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = F_Inhalt AND ArtBez.Jahr = F_Jahr AND ArtBez.Sprcd = Steuer.Fwi01 NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtBez THEN DO: FIND FIRST ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = F_Inhalt AND ArtBez.Jahr = F_Jahr NO-LOCK NO-ERROR. END. IF AVAILABLE ArtBez THEN DO: F_Bez1 = ArtBez.Bez1. IF ArtBez.Bez2_Druck THEN F_Bez2 = ArtBez.Bez2. END. DISPLAY {&List-1}. END. /* FRAME */ END. ON LEAVE OF F_Jahr IN FRAME {&FRAME-NAME} DO: IF NOT VUpdate THEN RETURN NO-APPLY. IF NOT VNeu THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN DO: APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. RETURN NO-APPLY. END. IF LHandle:TYPE = 'BROWSE' THEN DO: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Jahr = INTEGER(FeldInhalt). FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = F_Inhalt AND Artst.Jahr = F_Jahr NO-LOCK NO-ERROR. IF NOT AVAILABLE Artst THEN DO: { v8/fehler.i "0213" } APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. IF Artst.Aktiv = FALSE THEN DO: { v8/fehler.i "0201" } APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. IF Artst.Ausverk = 9 THEN DO: { v8/fehler.i "0340" } APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. IF Artst.Listen_EP = 0 AND Artst.DEP = 0 AND Artst.LEP = 0 THEN DO: { v8/fehler.i "0210" } APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = F_Inhalt AND ArtBez.Jahr = F_Jahr AND ArtBez.Sprcd = Steuer.Fwi01 NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtBez THEN DO: FIND FIRST ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = F_Inhalt AND ArtBez.Jahr = F_Jahr NO-LOCK NO-ERROR. END. IF AVAILABLE ArtBez THEN DO: F_Bez1 = ArtBez.Bez1. IF ArtBez.Bez2_Druck THEN F_Bez2 = ArtBez.Bez2. END. ASSIGN XAufze.Artnr = VArtnr XAufze.Inhalt = F_Inhalt XAufze.Jahr = F_Jahr XAufze.Bez1 = F_Bez1 XAufze.Bez2 = F_Bez2 XAufze.MBest = 0 XAufze.MGeli = 0 XAufze.MRuek = 0 XAufze.MKumm = 0 XAufze.Preis = 0 XAufze.Rab_Art = Aufko.Zei_Rab_Art XAufze.Rab_Wert = Aufko.Zei_Rab_Wert XAufze.Rab_Betr = 0 XAufze.Zus_Art = Aufko.Zuschl_Art XAufze.Zus_Wert = Aufko.Zuschl_Wert XAufze.Zus_Betr = 0 XAufze.Bru_Betr = 0 XAufze.Net_Betr = 0 XAufze.WC = Artst.MWST XAufze.Alk_Gehalt = Artst.Alk_Gehalt XAufze.Aktion = FALSE XAufze.Sk_Ber = Artst.Sk_Ber XAufze.Netto = Artst.Netto XAufze.Lager = Aufko.Lager XAufze.TrNr = 0 XAufze.Verbucht = FALSE XAufze.KGeb_Cd = Artst.KGeb_Cd XAufze.VGeb_Cd = Artst.VGeb_Cd XAufze.GGeb_Cd = Artst.GGeb_Cd XAufze.KGeb_Me = 0 XAufze.VGeb_Me = 0 XAufze.GGeb_Me = 0 XAufze.KGeb_Be = 0 XAufze.VGeb_Be = 0 XAufze.GGeb_Be = 0 XAufze.KGeb_Ru = 0 XAufze.VGeb_Ru = 0 XAufze.GGeb_Ru = 0 XAufze.Aktion_Text = '' XAufze.Rab_Su_Grp = 0 XAufze.Rab_Su_Art = 0 XAufze.Liter = 0 XAufze.Gewicht = 0 XAufze.Auf_Rab = 0 XAufze.Abh_Rab = 0 XAufze.KGebKto = '' XAufze.VGebKto = '' XAufze.GGebKto = '' XAufze.EP = 0 XAufze.Lag_Buch = (IF Aufko.AlsOfferte THEN FALSE ELSE Artst.Lager) XAufze.Auf_Sp_Proz_Betr = TRUE XAufze.Auf_Sp_Wert = 0 XAufze.Auf_Sp_Rab = 0 XAufze.Auf_Sp_Grp = 0. DO ix = 1 TO 10: XAufze.Zustext[ix] = Artbez.Zustext[ix]. END. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = Aufko.MWST AND Wust.CodeA = Artst.MWST NO-LOCK NO-ERROR. XAufze.WuCd = Wust.WuCd. FIND FIRST Wust USE-INDEX Wust-k2 WHERE Wust.WuCd = XAufze.WuCd NO-LOCK NO-ERROR. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = XAufze.WuCd AND MWSTAns.Datum <= Aufko.Kond_Datum NO-LOCK. XAufze.MWST% = MWSTAns.Ansatz. XAufze.MWST_Inkl = Wust.Incl. LVRecid = 0. Ablauf = 0. RUN MENGE. IF RETURN-VALUE <> '' THEN DO: APPLY 'ENTRY' TO F_Jahr IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. DISABLE {&List-2}. ENABLE {&List-3}. RUN ANZEIGE_AUFZE ( INPUT 2 ). F_Preis:MODIFIED = FALSE. F_Rab_Art:MODIFIED = FALSE. F_Rab_Wert:MODIFIED = FALSE. F_Zus_Art:MODIFIED = FALSE. F_Zus_Wert:MODIFIED = FALSE. APPLY 'ENTRY' TO F_Bez1. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABBRECHEN B-table-Win PROCEDURE ABBRECHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR rRowId AS ROWID NO-UNDO. DO WITH FRAME {&FRAME-NAME}: IF NOT VUpdate THEN RETURN NO-APPLY. Btn_Erfassen:LABEL = '&Neu'. Btn_Aendern :LABEL = '&Aendern'. ENABLE Btn_Loeschen. ENABLE Btn_Zurueck. ENABLE Btn_Verschieben. DISABLE {&List-2}. DISABLE {&List-3}. VUpdate = FALSE. VNeu = FALSE. FGefunden = FALSE. IF XRecid > 0 THEN DO: FIND BAufze WHERE RECID(BAufze) = XRecid NO-LOCK. rRowId = ROWID(bAufze). RELEASE Aufze. RELEASE bAufze. RUN local-open-query. hQuery:REPOSITION-TO-ROWID(rRowId). /* REPOSITION {&BROWSE-NAME} TO ROWID ROWID(BAufze) NO-ERROR. */ /* {&BROWSE-NAME}:SELECT-FOCUSED-ROW(). */ /* {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). */ RUN ANZEIGE. END. ELSE DO: RUN CLEAR_BILDSCHIRM. END. APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _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: ------------------------------------------------------------------------------*/ /* 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 AENDERN B-table-Win PROCEDURE AENDERN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF NOT Vorhanden THEN RETURN. IF NOT AVAILABLE Aufze THEN RETURN. DO WITH FRAME {&FRAME-NAME}: BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). XRecid = RECID(Aufze). EMPTY TEMP-TABLE XAufze. CREATE XAufze. FIND Aufze EXCLUSIVE-LOCK WHERE RECID(Aufze) = XRecid. BUFFER-COPY Aufze TO XAufze. FIND Aufko NO-LOCK WHERE Aufko.Firma = Aufze.Firma AND Aufko.Aufnr = Aufze.Aufnr. DO WHILE XAufze.Artnr <> 0: FIND Artst OF Aufze NO-LOCK NO-ERROR. RUN MENGE. IF RETURN-VALUE <> '' THEN DO: APPLY 'ENTRY' TO {&BROWSE-NAME}. RETURN. END. LEAVE. END. Btn_Erfassen:LABEL = '&Abbrechen'. Btn_Aendern :LABEL = 'Speichern'. DISABLE Btn_Loeschen. DISABLE Btn_Zurueck. DISABLE Btn_Verschieben. IF XAufze.Artnr = 0 THEN DO: ENABLE F_Bez1 F_Bez2. RUN ANZEIGE_AUFZE ( INPUT 2 ). F_Preis:MODIFIED = FALSE. F_Rab_Art:MODIFIED = FALSE. F_Rab_Wert:MODIFIED = FALSE. APPLY 'ENTRY' TO F_Bez1. END. ELSE DO: ENABLE {&List-3}. END. APPLY 'ENTRY' TO F_Bez1. VUpdate = TRUE. VNeu = FALSE. END. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE B-table-Win PROCEDURE ANZEIGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF FAnzeige = FALSE THEN DO: FAnzeige = TRUE. RETURN NO-APPLY. END. IF NOT AVAILABLE Aufze THEN DO: RUN CLEAR_BILDSCHIRM. RETURN NO-APPLY. END. IF Aufze.Artnr = 0 THEN DO: RUN CLEAR_BILDSCHIRM. END. RUN ANZEIGE_AUFZE ( INPUT 1 ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE_AUFZE B-table-Win PROCEDURE ANZEIGE_AUFZE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER FArt AS INT. F_KGebinde = ''. F_VGebinde = ''. F_Artnr = ''. F_Inhalt = 0. F_Jahr = 0. F_Bez1 = ''. F_Bez2 = ''. F_Alk_Gehalt = 0. F_MBest = 0. F_MGeli = 0. F_MRuek = 0. F_Preis = 0. F_Rab_Art = 0. F_Rab_Wert = 0. F_AlteNr = ''. CASE FArt: WHEN 1 THEN DO WITH FRAME {&FRAME-NAME}: { v8/aufze_anzeig.i "Aufze" } IF Aufze.Aktion THEN F_Preis:BGCOLOR = 14. ELSE F_Preis:BGCOLOR = 15. END. WHEN 2 THEN DO WITH FRAME {&FRAME-NAME}: { v8/aufze_anzeig.i "XAufze" } IF XAufze.Aktion THEN F_Preis:BGCOLOR = 14. ELSE F_Preis:BGCOLOR = 15. END. END CASE. DISPLAY {&List-1} {&List-3} WITH FRAME {&FRAME-NAME}. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELNUMMER B-table-Win PROCEDURE ARTIKELNUMMER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR ARecid AS RECID NO-UNDO. DEF VAR Anzahl AS INT NO-UNDO. DEF VAR xWort AS CHAR NO-UNDO. DEF VAR zWorte AS CHAR NO-UNDO. DEF VAR yy AS INT NO-UNDO. DEF VAR zz AS INT NO-UNDO. DEF VAR Zahl AS INT NO-UNDO. Zahl = 0. Gefunden = FALSE. Anzahl = 0. VBez1 = ''. VBez2 = ''. zWorte = ''. DO yy = 1 TO NUM-ENTRIES(FeldInhalt, ' '): xWort = ENTRY(yy, FeldInhalt, ' '). Zahl = INTEGER(xWort) NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: zWorte = zWorte + (IF zWorte = '' THEN '' ELSE ' ') + xWort. IF yy = 1 THEN zWorte = TRIM(zWorte) + '*'. NEXT. END. xWort = TRIM(STRING(Zahl,'>>>>>>>>>>>>>>>>>>9')) NO-ERROR. IF ERROR-STATUS:ERROR THEN xWort = ENTRY(yy, FeldInhalt, ' '). zWorte = zWorte + (IF zWorte = '' THEN '' ELSE ' ') + xWort. END. zWorte = REPLACE(zWorte, '**', '*'). FOR EACH Artbez NO-LOCK WHERE Artbez.Firma = GVFirma AND Artbez.Sprcd = 1 AND Artbez.WortIndex CONTAINS zWorte, FIRST BArtst NO-LOCK OF Artbez WHERE BArtst.Aktiv = TRUE AND BArtst.Ausverk < 9 : Anzahl = Anzahl + 1. IF Anzahl > 1 THEN LEAVE. VArtnr = BArtst.Artnr. ARecid = RECID(BArtst). END. IF Anzahl < 1 THEN VArtnr = -1. IF Anzahl > 1 THEN VArtnr = -1. IF VArtnr = -1 THEN RETURN. FIND BArtst WHERE RECID(BArtst) = ARecid NO-LOCK NO-ERROR. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. FIND FIRST ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = BArtst.Firma AND ArtBez.Artnr = BArtst.Artnr AND ArtBez.Inhalt = BArtst.Inhalt AND ArtBez.Jahr = BArtst.Jahr NO-LOCK NO-ERROR. VInhalt = BArtst.Inhalt. VJahr = BArtst.Jahr. VBez1 = ArtBez.Bez1. IF ArtBez.Bez2_Druck THEN VBez2 = ArtBez.Bez2. Gefunden = TRUE. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CLEAR_BILDSCHIRM B-table-Win PROCEDURE CLEAR_BILDSCHIRM : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Fenster AS HANDLE. Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. ASSIGN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE (Fenster) : DO WHILE TRUE: IF Fenster:HIDDEN = TRUE THEN LEAVE. IF Fenster:TYPE = 'COMBO-BOX' THEN DO: IF Fenster:NAME = 'CB-Fak_Art' THEN LEAVE. Fenster:SCREEN-VALUE = ' '. LEAVE. END. IF Fenster:TYPE = 'EDITOR' THEN DO: Fenster:SCREEN-VALUE = ''. LEAVE. END. IF Fenster:TYPE = 'FILL-IN' THEN DO: IF Fenster:NAME = 'F_Aufnr' THEN LEAVE. IF Fenster:NAME = 'F_Knr' THEN LEAVE. IF Fenster:NAME = 'F_Anzeig_Br' THEN LEAVE. IF Fenster:NAME = 'F_Auf_Tot' THEN LEAVE. IF Fenster:DATA-TYPE = 'INTEGER' THEN Fenster:SCREEN-VALUE = ''. IF Fenster:DATA-TYPE = 'DECIMAL' THEN Fenster:SCREEN-VALUE = ''. IF Fenster:DATA-TYPE = 'CHARACTER' THEN Fenster:SCREEN-VALUE = ''. IF Fenster:DATA-TYPE = 'LOGICAL' THEN Fenster:SCREEN-VALUE = 'no'. IF Fenster:DATA-TYPE = 'DATE' THEN Fenster:SCREEN-VALUE = ?. LEAVE. END. LEAVE. END. ASSIGN Fenster = Fenster:NEXT-SIBLING. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI B-table-Win _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 F-Main. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDEAUFTRAG B-table-Win PROCEDURE ENDEAUFTRAG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF VUpdate THEN DO: Ja = TRUE. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ERFASSEN B-table-Win PROCEDURE ERFASSEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR iAufnr AS INT NO-UNDO. DO WITH FRAME {&FRAME-NAME}: iAufnr = INTEGER(F_Aufnr:SCREEN-VALUE). FIND Aufko NO-LOCK WHERE Aufko.Firma = GVFirma AND Aufko.Aufnr = iAufnr. XRecid = 0. Btn_Erfassen:LABEL = '&Abbrechen'. Btn_Aendern :LABEL = 'Speichern'. DISABLE Btn_Loeschen. DISABLE Btn_Zurueck. DISABLE Btn_Verschieben. RUN CLEAR_BILDSCHIRM. ENABLE {&List-2}. FGefunden = FALSE. APPLY 'ENTRY' TO F_Artnr. VUpdate = TRUE. VNeu = TRUE. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAXBESTELLUNG B-table-Win PROCEDURE FAXBESTELLUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR ARecid AS RECID NO-UNDO. DEF VAR ZRecid AS RECID NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. FOR EACH XAufze: DELETE XAufze. END. FIND BAufko NO-LOCK WHERE RECID(BAufko) = KRecid. Ablauf = 1. LVAufnr = BAufko.Aufnr. XVAufnr = BAufko.Aufnr. XVKNr = BAufko.Knr. FOR EACH KunBest USE-INDEX KunBest-k1 WHERE KunBest.Firma = BAufko.Firma AND KunBest.Knr = BAufko.Knr AND KunBest.Best > 0 TRANSACTION: CREATE XAufze. ASSIGN XAufze.Firma = GVFirma XAufze.Aufnr = BAufko.Aufnr XAufze.Artnr = KunBest.Artnr XAufze.Inhalt = KunBest.Inhalt XAufze.Jahr = KunBest.Jahr XAufze.Verbucht = FALSE. FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = KunBest.Firma AND Artst.Artnr = KunBest.Artnr AND Artst.Inhalt = KunBest.Inhalt AND Artst.Jahr = KunBest.Jahr NO-LOCK NO-ERROR. FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = Artst.Inhalt AND ArtBez.Jahr = Artst.jahr AND ArtBez.Sprcd = Steuer.Fwi01 NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtBez THEN DO: FIND FIRST ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = Artst.Inhalt AND ArtBez.Jahr = Artst.Jahr NO-LOCK NO-ERROR. END. IF AVAILABLE ArtBez THEN DO: XAufze.Bez1 = ArtBez.Bez1. IF ArtBez.Bez2_Druck THEN XAufze.Bez2 = ArtBez.Bez2. END. ASSIGN XAufze.MBest = 0 XAufze.MGeli = 0 XAufze.MRuek = 0 XAufze.MKumm = 0 XAufze.Preis = 0 XAufze.Rab_Art = BAufko.Zei_Rab_Art XAufze.Rab_Wert = BAufko.Zei_Rab_Wert XAufze.Rab_Betr = 0 XAufze.Zus_Art = BAufko.Zuschl_Art XAufze.Zus_Wert = BAufko.Zuschl_Wert XAufze.Zus_Betr = 0 XAufze.Bru_Betr = 0 XAufze.Net_Betr = 0 XAufze.WC = Artst.MWST XAufze.Alk_Gehalt = Artst.Alk_Gehalt XAufze.Aktion = FALSE XAufze.Sk_Ber = Artst.Sk_Ber XAufze.Netto = Artst.Netto XAufze.Lager = 0 XAufze.TrNr = 0 XAufze.KGeb_Cd = Artst.KGeb_Cd XAufze.VGeb_Cd = Artst.VGeb_Cd XAufze.GGeb_Cd = Artst.GGeb_Cd XAufze.KGeb_Me = KunBest.KGeb_Me XAufze.VGeb_Me = KunBest.VGeb_Me XAufze.GGeb_Me = KunBest.GGeb_Me XAufze.MBest = KunBest.KGeb_Me XAufze.MGeli = KunBest.KGeb_Me XAufze.Aktion_Text = '' XAufze.Rab_Su_Grp = 0 XAufze.Rab_Su_Art = 0 XAufze.Liter = 0 XAufze.Gewicht = 0 XAufze.Auf_Rab = 0 XAufze.Abh_Rab = 0 XAufze.KGebKto = '' XAufze.VGebKto = '' XAufze.GGebKto = '' XAufze.EP = 0 XAufze.Lag_Buch = KunBest.Lag_Buch XAufze.Auf_Sp_Proz_Betr = TRUE XAufze.Auf_Sp_Wert = 0 XAufze.Auf_Sp_Rab = 0 XAufze.Auf_Sp_Grp = 0. DO ix = 1 TO 10: XAufze.Zustext[ix] = Artbez.Zustext[ix]. END. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = BAufko.MWST AND Wust.CodeA = Artst.MWST NO-LOCK NO-ERROR. XAufze.WuCd = Wust.WuCd. XAufze.MWST_Inkl = Wust.Incl. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = XAufze.WuCd AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK. XAufze.MWST% = MWSTAns.Ansatz. LVRecid = 0. RUN MENGE. IF RETURN-VALUE <> '' THEN DO: DELETE XAufze. ASSIGN KunBest.KGeb_Me = 0 KunBest.VGeb_Me = 0 KunBest.GGeb_Me = 0 KunBest.Best = 0. NEXT. END. FIND LAST BAufze USE-INDEX Aufze-k1 WHERE BAufze.Firma = GVFirma AND BAufze.Aufnr = BAufko.Aufnr AND (BAufze.Pos MOD 5) = 0 NO-LOCK NO-ERROR. IF AVAILABLE BAufze THEN LVPos = BAufze.Pos + 5. ELSE LVPos = 5. XAufze.Pos = LVPos. CREATE Aufze. ZRecid = RECID(Aufze). FIND LAST Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = GVFirma NO-LOCK NO-ERROR. IF AVAILABLE Artbw THEN i1 = Artbw.Trnr + 1. ELSE i1 = 1. CREATE Artbw. ASSIGN Artbw.Firma = GVFirma Artbw.Trnr = i1 Artbw.Tr_Art = 01 XAufze.Trnr = Artbw.Trnr. ARecid = RECID(Artst). FIND Artst WHERE RECID(Artst) = ARecid. BUFFER-COPY XAufze TO Aufze. RUN GEBINDE_KONTO ( INPUT 1 ). RUN SUMMEN_GRUPPE ( INPUT 1 ). DO WHILE Aufze.EP = 0: IF Artst.DEP <> 0 THEN DO: Aufze.EP = Artst.DEP. LEAVE. END. IF Artst.LEP <> 0 THEN DO: Aufze.EP = Artst.LEP. LEAVE. END. IF Artst.Listen_EP <> 0 THEN DO: Aufze.EP = Artst.Listen_EP. LEAVE. END. LEAVE. END. RELEASE ArtLager. RELEASE Artst. IF AVAILABLE Artbw THEN DO: { v8/artbw_aufze.i "Artbw" } END. ASSIGN KunBest.KGeb_Me = 0 KunBest.VGeb_Me = 0 KunBest.GGeb_Me = 0 KunBest.Best = 0. RELEASE Aufze. DELETE XAufze. END. REPEAT TRANSACTION: FIND BAufko WHERE RECID(BAufko) = KRecid. BAufko.Gedruckt = FALSE. DO WHILE TRUE: IF BAufko.Auf_Sta <> 4 THEN LEAVE. /* nicht Sammelrechnung */ IF BAufko.Samm_Nr = 0 THEN LEAVE. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Fak_Art AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. FOR EACH YAufko USE-INDEX Aufko-k4 WHERE YAufko.Firma = BAufko.Firma AND YAufko.Knr = BAufko.Knr AND YAufko.Fak_Art = BAufko.Fak_Art AND YAufko.Samm_Nr = BAufko.Samm_Nr . YAufko.Gedruckt = FALSE. IF Tabel.Int_2 = YAufko.Auf_Sta THEN YAufko.Auf_Sta = YAufko.Auf_Sta - 1. END. LEAVE. END. RELEASE BAufko. RELEASE YAufko. LEAVE. END. RUN AUFTRAGSTOTAL ( LVAufnr, OUTPUT cString ). Ablauf = 0. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDEKONTI_ERMITTELN B-table-Win PROCEDURE GEBINDEKONTI_ERMITTELN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = XAufze.GGeb_Cd NO-LOCK NO-ERROR. DO WHILE TRUE: IF NOT AVAILABLE GGebinde THEN DO: RUN FEHLER ( INPUT 332 ). RETURN 'FEHLER'. END. IF GGebinde.Geb_Kto = '' THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = GGebinde.Geb_Kto NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN DO: RUN FEHLER ( INPUT 333 ). RETURN 'FEHLER'. END. XAufze.GGebKto = GebKonto.Geb_Cd. LEAVE. END. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = XAufze.VGeb_Cd NO-LOCK NO-ERROR. DO WHILE TRUE: IF NOT AVAILABLE VGebinde THEN DO: RUN FEHLER ( INPUT 336 ). RETURN 'FEHLER'. END. IF VGebinde.Geb_Kto = '' THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN DO: RUN FEHLER ( INPUT 337 ). RETURN 'FEHLER'. END. XAufze.VGebKto = GebKonto.Geb_Cd. LEAVE. END. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = XAufze.KGeb_Cd NO-LOCK NO-ERROR. DO WHILE TRUE: IF NOT AVAILABLE KGebinde THEN DO: RUN FEHLER ( INPUT 338 ). RETURN 'FEHLER'. END. IF KGebinde.Geb_Kto = '' THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN DO: RUN FEHLER ( INPUT 1078 ). RETURN 'FEHLER'. END. XAufze.KGebKto = GebKonto.Geb_Cd. LEAVE. END. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_KONTO B-table-Win PROCEDURE GEBINDE_KONTO : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR MW AS INT. DEF INPUT PARAMETER Art AS INT. DO WHILE Aufze.KGebKto <> '': IF Aufze.KGeb_Me = 0 THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Aufze.Firma AND GebKonto.Geb_Cd = Aufze.KGebKto NO-LOCK. IF GebKonto.MWST_Art = 0 THEN MW = 11. IF GebKonto.MWST_Art = 1 THEN MW = Aufze.WuCd. IF GebKonto.MWST_Art = 2 THEN MW = GebKonto.MWST_Cd. FIND AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = Aufze.Firma AND AufGKon.Aufnr = Aufze.Aufnr AND AufGKon.Geb_Cd = GebKonto.Geb_Cd AND AufGKon.MWSt_Cd = MW NO-ERROR. IF NOT AVAILABLE AufGKon THEN DO: CREATE AufGKon. ASSIGN AufGKon.Firma = Aufze.Firma AufGKon.Aufnr = Aufze.Aufnr AufGKon.Geb_Cd = GebKonto.Geb_Cd AufGKon.MWSt_Cd = MW AufGKon.Gebuehr = GebKonto.Gebuehr AufGKon.Depot = GebKonto.Depot AufGKon.Sort_Cd = GebKonto.Sort_Cd. END. DO WHILE TRUE: IF NOT Geb_Rg THEN LEAVE. IF Aufze.Preis = 0 AND AufGKon.Gebuehr <> 0 THEN LEAVE. IF Art = 1 THEN AufGKon.Ausgang = AufGKon.Ausgang + Aufze.KGeb_Me. IF Art = 2 THEN AufGKon.Ausgang = AufGKon.Ausgang - Aufze.KGeb_Me. AufGKon.Betrag = (AufGKon.Ausgang - AufGKon.Eingang) * (AufGKon.Depot + AufGKon.Gebuehr). LEAVE. END. LEAVE. END. DO WHILE Aufze.VGebKto <> '': IF Aufze.VGeb_Me = 0 THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Aufze.Firma AND GebKonto.Geb_Cd = Aufze.VGebKto NO-LOCK. IF GebKonto.MWST_Art = 0 THEN MW = 11. IF GebKonto.MWST_Art = 1 THEN MW = Aufze.WuCd. IF GebKonto.MWST_Art = 2 THEN MW = GebKonto.MWST_Cd. FIND AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = Aufze.Firma AND AufGKon.Aufnr = Aufze.Aufnr AND AufGKon.Geb_Cd = GebKonto.Geb_Cd AND AufGKon.MWSt_Cd = MW NO-ERROR. IF NOT AVAILABLE AufGKon THEN DO: CREATE AufGKon. ASSIGN AufGKon.Firma = Aufze.Firma AufGKon.Aufnr = Aufze.Aufnr AufGKon.Geb_Cd = GebKonto.Geb_Cd AufGKon.MWSt_Cd = MW AufGKon.Gebuehr = GebKonto.Gebuehr AufGKon.Depot = GebKonto.Depot AufGKon.Sort_Cd = GebKonto.Sort_Cd. END. DO WHILE TRUE: IF NOT Geb_Rg THEN LEAVE. IF Aufze.Preis = 0 AND AufGKon.Gebuehr <> 0 THEN LEAVE. IF Art = 1 THEN AufGKon.Ausgang = AufGKon.Ausgang + Aufze.VGeb_Me. IF Art = 2 THEN AufGKon.Ausgang = AufGKon.Ausgang - Aufze.VGeb_Me. AufGKon.Betrag = (AufGKon.Ausgang - AufGKon.Eingang) * (AufGKon.Depot + AufGKon.Gebuehr). LEAVE. END. LEAVE. END. DO WHILE Aufze.GGebKto <> '': IF Aufze.GGeb_Me = 0 THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Aufze.Firma AND GebKonto.Geb_Cd = Aufze.GGebKto NO-LOCK. IF GebKonto.MWST_Art = 0 THEN MW = 11. IF GebKonto.MWST_Art = 1 THEN MW = Aufze.WuCd. IF GebKonto.MWST_Art = 2 THEN MW = GebKonto.MWST_Cd. FIND AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = Aufze.Firma AND AufGKon.Aufnr = Aufze.Aufnr AND AufGKon.Geb_Cd = GebKonto.Geb_Cd AND AufGKon.MWSt_Cd = MW NO-ERROR. IF NOT AVAILABLE AufGKon THEN DO: CREATE AufGKon. ASSIGN AufGKon.Firma = Aufze.Firma AufGKon.Aufnr = Aufze.Aufnr AufGKon.Geb_Cd = GebKonto.Geb_Cd AufGKon.MWSt_Cd = MW AufGKon.Gebuehr = GebKonto.Gebuehr AufGKon.Depot = GebKonto.Depot AufGKon.Sort_Cd = GebKonto.Sort_Cd. END. DO WHILE TRUE: IF NOT Geb_Rg THEN LEAVE. IF Aufze.Preis = 0 AND AufGKon.Gebuehr <> 0 THEN LEAVE. IF Art = 1 THEN AufGKon.Ausgang = AufGKon.Ausgang + Aufze.GGeb_Me. IF Art = 2 THEN AufGKon.Ausgang = AufGKon.Ausgang - Aufze.GGeb_Me. AufGKon.Betrag = (AufGKon.Ausgang - AufGKon.Eingang) * (AufGKon.Depot + AufGKon.Gebuehr). LEAVE. END. LEAVE. END. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEFUNDEN B-table-Win PROCEDURE GEFUNDEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VArtnr = Linknr. FeldInhalt = Linktext. Linktext = ''. Linknr = 0. FGefunden = TRUE. DO WITH FRAME {&FRAME-NAME}: F_Artnr = STRING(AVArtnr). F_Inhalt = AVInhalt. F_Jahr = AVJahr. F_Artnr:SCREEN-VALUE = STRING(AVArtnr). FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = AVArtnr AND Artst.Inhalt = AVInhalt AND Artst.Jahr = AVJahr NO-LOCK NO-ERROR. IF AVAILABLE Artst THEN DO: FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK. FIND Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = GVFirma AND Artbez.Artnr = AVArtnr AND Artbez.Inhalt = AVInhalt AND Artbez.Jahr = AVJahr AND Artbez.Sprcd = Steuer.Fwi01 NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtBez THEN DO: FIND FIRST ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = AVArtnr AND ArtBez.Inhalt = AVInhalt AND ArtBez.Jahr = AVJahr NO-LOCK NO-ERROR. END. END. IF AVAILABLE Artbez THEN DO: F_Bez1 = Artbez.Bez1. IF Artbez.Bez2_Druck THEN F_Bez2 = Artbez.Bez2. END. DISPLAY {&List-1}. APPLY 'LEAVE' TO F_Artnr. Gefunden = FALSE. APPLY 'LEAVE' TO F_Jahr. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-destroy B-table-Win PROCEDURE local-destroy : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DEF VAR hBrowser AS HANDLE NO-UNDO. DEF VAR Sektion AS CHAR NO-UNDO. Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.'). hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser, INPUT Sektion ) NO-ERROR. RUN dispatch IN THIS-PROCEDURE ( INPUT 'destroy':U ) . /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide B-table-Win PROCEDURE local-hide : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ IF VUpdate THEN DO: APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. END. RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':U ) . END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize B-table-Win PROCEDURE local-initialize : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DEF VAR Sektion AS CHAR NO-UNDO. DEF VAR hBrowser AS HANDLE NO-UNDO. DEF VAR hTBrowser AS HANDLE NO-UNDO. DEF VAR hMenu AS HANDLE NO-UNDO. DEF VAR hItem_Filter AS HANDLE NO-UNDO. DEF VAR hItem_Excel AS HANDLE NO-UNDO. DEF VAR hItem_zurueck AS HANDLE NO-UNDO. DEF VAR hItem_sort AS HANDLE NO-UNDO. DEF VAR hItem_move AS HANDLE NO-UNDO. DEF VAR hItem_Rule AS HANDLE NO-UNDO. Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.'). RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . hDaten = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR. hFenster = DYNAMIC-FUNCTION('getContainerSource':U) NO-ERROR. IF VALID-HANDLE(hFenster) THEN Progname = DYNAMIC-FUNCTION('getProgname':U, INPUT hFenster ) NO-ERROR. EMPTY TEMP-TABLE TBrowser. hTBrowser = TEMP-TABLE TBrowser:DEFAULT-BUFFER-HANDLE. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:COLUMN-MOVABLE = TRUE. CREATE MENU hMenu ASSIGN POPUP-ONLY = TRUE TITLE = 'Browser Menu'. CREATE MENU-ITEM hItem_Excel ASSIGN LABEL = 'Export in Excel' NAME = 'm_excel' PARENT = hMenu. CREATE MENU-ITEM hItem_Filter ASSIGN LABEL = 'Filter setzen' NAME = 'm_filter' PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. CREATE MENU-ITEM hItem_zurueck ASSIGN LABEL = 'Spalten und Breite zurücksetzen' NAME = 'm_zurueck' PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. CREATE MENU-ITEM hItem_sort ASSIGN LABEL = 'Spalten sortierbar' NAME = 'm_zurueck' TOGGLE-BOX = TRUE CHECKED = FALSE PARENT = hMenu. CREATE MENU-ITEM hItem_move ASSIGN LABEL = 'Spalten verschiebbar' NAME = 'm_move' TOGGLE-BOX = TRUE CHECKED = TRUE PARENT = hMenu. hBrowser:POPUP-MENU = hMenu NO-ERROR. ON CHOOSE OF hItem_Filter PERSISTENT RUN FILTER_SETZEN IN TARGET-PROCEDURE. ON CHOOSE OF hItem_Excel PERSISTENT RUN EXPORT_EXCEL IN TARGET-PROCEDURE. ON CHOOSE OF hItem_zurueck PERSISTENT RUN ZURUECKSETZEN IN TARGET-PROCEDURE. ON VALUE-CHANGED OF hItem_sort PERSISTENT RUN SORTIERBAR IN TARGET-PROCEDURE ( hItem_sort, hItem_move ). ON VALUE-CHANGED OF hItem_move PERSISTENT RUN VERSCHIEBBAR IN TARGET-PROCEDURE ( hItem_move, hItem_sort ). hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. DYNAMIC-FUNCTION('getBrowserDaten':U, INPUT hTBrowser, INPUT hBrowser, INPUT Sektion ) NO-ERROR. hQuery = BROWSE {&BROWSE-NAME}:QUERY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win PROCEDURE local-open-query : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ Vorhanden = FALSE. FIND Aufko NO-LOCK WHERE RECID(Aufko) = KRecid NO-ERROR. RUN dispatch IN THIS-PROCEDURE ( INPUT 'open-query':U ) . DO WHILE TRUE: IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE. Vorhanden = TRUE. LEAVE. END. RELEASE Aufko. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win PROCEDURE local-view : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RUN CLEAR_BILDSCHIRM. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. IF XVAufnr = 0 THEN DO: RUN new-state ( INPUT 'seite_1':U ). RETURN NO-APPLY. END. FIND Aufko USE-INDEX Aufko-k1 WHERE Aufko.Firma = GVFirma AND Aufko.Aufnr = XVAufnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Aufko THEN DO: RUN new-state ( INPUT 'seite_1':U ). RETURN NO-APPLY. END. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) . KRecid = RECID(Aufko). fAdmin = DYNAMIC-FUNCTION('getAdmin':U) NO-ERROR. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Aufko.Knr NO-LOCK. F_Aufnr = Aufko.Aufnr. F_Knr = Aufko.Knr. F_Anzeig_Br = Adresse.Anzeig_Br. F_Auf_Tot = Aufko.Auf_Tot. DISPLAY {&List-6} WITH FRAME {&FRAME-NAME}. FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = GVFirma AND Debst.Knr = Aufko.Knr NO-LOCK. AktCode = Debst.Verband_Grp. Geb_Rg = Aufko.GG_Berech. KLim = Debst.Kred_Lim. Saldo = Debst.Saldo. FIND FIRST KunBest USE-INDEX KunBest-k1 WHERE KunBest.Firma = Aufko.Firma AND KunBest.Knr = Aufko.Knr NO-LOCK NO-ERROR. DO WHILE AVAILABLE KunBest: FIND FIRST Aufze OF Aufko NO-LOCK NO-ERROR. IF AVAILABLE Aufze THEN LEAVE. Ja = FALSE. { v8/antwort.i "0315" } IF NOT Ja THEN LEAVE. RUN "v8/d-faxbestellung.w". RUN FAXBESTELLUNG. LEAVE. END. RUN dispatch IN THIS-PROCEDURE ('open-query':U). APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN B-table-Win PROCEDURE LOESCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR ZRecid AS RECID NO-UNDO. DEF VAR DRecid AS RECID NO-UNDO. DEF VAR DRowid AS ROWID NO-UNDO. DEF VAR DPos AS INT NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR hQuery AS HANDLE NO-UNDO. DEF VAR cMeldung AS CHAR NO-UNDO. DEF VAR lJa AS LOG NO-UNDO. DISABLE TRIGGERS FOR LOAD OF RuestAuf. DISABLE TRIGGERS FOR LOAD OF AufLot. DO WITH FRAME {&FRAME-NAME}: IF NOT AVAILABLE Aufze THEN RETURN NO-APPLY. IF VUpdate THEN RETURN NO-APPLY. FIND BAufko NO-LOCK WHERE RECID(BAufko) = KRecid. IF BAufko.Auf_Sta >= 03 AND BAufko.Auf_Sta <= 05 AND BAufko.Gedruckt AND NOT cBenutzer BEGINS 'Brä' AND NOT fAdmin THEN DO: MESSAGE 'Auftrag darf nicht mehr gelöscht werden' SKIP 'Bitte Administrator fragen! ' VIEW-AS ALERT-BOX INFORMATION. RELEASE BAufko. RETURN NO-APPLY. END. lJa = TRUE. FIND FIRST RuestAuf NO-LOCK WHERE RuestAuf.Firma = bAufko.Firma AND RuestAuf.Aufnr = bAufko.Aufnr NO-ERROR. DO WHILE AVAILABLE RuestAuf: FIND FIRST RuestAuf NO-LOCK WHERE RuestAuf.Firma = bAufko.Firma AND RuestAuf.Aufnr = bAufko.Aufnr AND RuestAuf.Artnr = Aufze.Artnr AND RuestAuf.Inhalt = Aufze.Inhalt AND RuestAuf.Jahr = Aufze.Jahr NO-ERROR. IF NOT AVAILABLE RuestAuf THEN LEAVE. lJa = FALSE. IF RuestAuf.lGeruestet THEN DO: cMeldung = 'Achtung!!! Artikel ist bereits gerüstet!!!' + CHR(10) + 'Unbedingt im Lager melden, dass der Artikel wieder zurück muss!' + CHR(10) + 'Trotzdem löschen?'. MESSAGE cMeldung VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE lJa. LEAVE. END. IF RuestAuf.lRSGedruckt THEN DO: cMeldung = 'Achtung!!! Rüstschein neu Drucken!' + CHR(10) + 'Meldung an Lager, dass der Alte vernichtet werden soll'. MESSAGE cMeldung VIEW-AS ALERT-BOX. END. lJa = TRUE. LEAVE. END. IF NOT lJa THEN DO: RELEASE bAufko. RETURN NO-APPLY. END. Ja = FALSE. { v8/loeschen.i } IF NOT Ja THEN RETURN NO-APPLY. REPEAT TRANSACTION: ZRecid = RECID(Aufze). FIND Aufze WHERE RECID(Aufze) = ZRecid. FIND BAufko WHERE RECID(BAufko) = KRecid. DPos = Aufze.Pos. IF Aufze.Artnr = 0 THEN DO: DELETE Aufze. LEAVE. END. FIND Artst OF Aufze. FIND Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = Aufze.Firma AND Artbw.Trnr = Aufze.Trnr NO-ERROR. IF AVAILABLE Artbw THEN DO: DELETE Artbw. END. FIND FIRST RuestAuf WHERE RuestAuf.Firma = bAufko.Firma AND RuestAuf.Aufnr = bAufko.Aufnr AND RuestAuf.Artnr = Aufze.Artnr AND RuestAuf.Inhalt = Aufze.Inhalt AND RuestAuf.Jahr = Aufze.Jahr NO-ERROR. IF AVAILABLE RuestAuf THEN DELETE RuestAuf. RELEASE RuestAuf. RUN GEBINDE_KONTO ( INPUT 2 ). RUN SUMMEN_GRUPPE ( INPUT 2 ). DELETE Aufze. RELEASE Aufze. RUN SAMMFAKMUT ( INPUT KRecid ). RELEASE Artst. RELEASE BAufko. LEAVE. END. FIND BAufko WHERE RECID(BAufko) = KRecid NO-LOCK. RUN AUFTRAGSTOTAL ( BAufko.Aufnr, OUTPUT cString ) NO-ERROR. FIND BAufko WHERE RECID(BAufko) = KRecid NO-LOCK. /* DRecid = 0. */ /* FIND FIRST BAufze USE-INDEX Aufze-k1 */ /* WHERE BAufze.Firma = BAufko.Firma */ /* AND BAufze.Aufnr = BAufko.Aufnr */ /* AND BAufze.Pos >= DPos NO-LOCK NO-ERROR. */ /* IF NOT AVAILABLE BAufze THEN DO: */ /* FIND LAST BAufze USE-INDEX Aufze-k1 */ /* WHERE BAufze.Firma = BAufko.Firma */ /* AND BAufze.Aufnr = BAufko.Aufnr */ /* AND BAufze.Pos <= DPos NO-LOCK NO-ERROR. */ /* END. */ /* IF AVAILABLE BAufze THEN DO: */ /* DRecid = RECID(BAufze). */ /* END. */ RUN dispatch IN THIS-PROCEDURE ('open-query':U). FIND BAufko WHERE RECID(BAufko) = KRecid NO-LOCK. DRowid = ?. FIND FIRST BAufze NO-LOCK USE-INDEX Aufze-k1 WHERE BAufze.Firma = BAufko.Firma AND BAufze.Aufnr = BAufko.Aufnr AND BAufze.Pos >= DPos NO-ERROR. IF NOT AVAILABLE BAufze THEN DO: FIND LAST BAufze NO-LOCK USE-INDEX Aufze-k1 WHERE BAufze.Firma = BAufko.Firma AND BAufze.Aufnr = BAufko.Aufnr AND BAufze.Pos <= DPos NO-ERROR. END. IF AVAILABLE BAufze THEN DO: DRowid = ROWID(BAufze). END. IF DRowid <> ? THEN DO: hQuery = {&BROWSE-NAME}:QUERY. hQuery:REPOSITION-TO-ROWID(DRowid). {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). END. IF Vorhanden THEN APPLY 'VALUE-CHANGED' TO {&BROWSE-NAME}. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. END. /* FRAME */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MENGE B-table-Win PROCEDURE MENGE : /* ------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR NettoRab AS INT NO-UNDO. DEF VAR Aktionen AS INT NO-UNDO. DEF VAR PosMenge AS INT NO-UNDO. DEF VAR FAbweich AS LOG NO-UNDO. DEF VAR KeineAkt AS LOG NO-UNDO. DEF VAR FSpezPreis AS INT NO-UNDO. /* 0 = Kein Spezialpreis */ /* 1 = Spezialpreis auf Artikel */ /* 2 = Spezialpreis auf Rabattgruppe */ DEF VAR FwPreisGrp AS INT NO-UNDO. XAufze.GGebKto = ''. XAufze.VGebKto = ''. XAufze.GGebKto = ''. FSpezPreis = 0. NettoRab = DYNAMIC-FUNCTION('GETFWNETTORAB':U) NO-ERROR. Aktionen = DYNAMIC-FUNCTION('GETFWAKTIONSRAB':U) NO-ERROR. FwPreisGrp = DYNAMIC-FUNCTION('GETFWPREISGRP':U) NO-ERROR. RUN GEBINDEKONTI_ERMITTELN. IF RETURN-VALUE = 'FEHLER' THEN RETURN 'Fehler'. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = Aufko.MWST AND Wust.CodeA = 99 NO-LOCK. IF Ablauf = 0 THEN DO: AVArtnr = XAufze.Artnr. AVInhalt = XAufze.Inhalt. AVJahr = XAufze.Jahr. LVKGeb_Cd = XAufze.KGeb_Cd. LVVGeb_Cd = XAufze.VGeb_Cd. LVGGeb_Cd = XAufze.GGeb_Cd. XVKGeb_Me = XAufze.KGeb_Me. XVVGeb_Me = XAufze.VGeb_Me. XVGGeb_Me = XAufze.GGeb_Me. XVKGeb_Be = XAufze.KGeb_Be. XVVGeb_Be = XAufze.VGeb_Be. XVGGeb_Be = XAufze.GGeb_Be. VDaten = XAufze.KGeb_Cd + ';' + XAufze.VGeb_Cd + ';' + XAufze.GGeb_Cd + ';' + STRING(XAufze.KGeb_Me) + ';' + STRING(XAufze.VGeb_Me) + ';' + STRING(XAufze.GGeb_Me) + ';' + STRING(RECID(Artst)) + ';' + STRING(XAufze.Lag_Buch,'yes/no') + ';' + STRING(XAufze.Lager) + ';' + STRING(Aufko.AlsOfferte,'yes/no') + ';' + STRING(XAufze.KGeb_Be) + ';' + STRING(XAufze.VGeb_Be) + ';' + STRING(XAufze.GGeb_Be). RUN "g-gebindemenge.w" ( INPUT-OUTPUT VDaten ). IF VDaten = '' THEN RETURN 'Fehler'. XVGGeb_Me = DEC(ENTRY(1, VDaten, ';')). XVVGeb_Me = DEC(ENTRY(2, VDaten, ';')). XVKGeb_Me = DEC(ENTRY(3, VDaten, ';')). XVGGeb_Be = DEC(ENTRY(5, VDaten, ';')). XVVGeb_Be = DEC(ENTRY(6, VDaten, ';')). XVKGeb_Be = DEC(ENTRY(7, VDaten, ';')). ASSIGN XAufze.KGeb_Cd = LVKGeb_Cd XAufze.VGeb_Cd = LVVGeb_Cd XAufze.GGeb_Cd = LVGGeb_Cd XAufze.KGeb_Me = XVKGeb_Me XAufze.VGeb_Me = XVVGeb_Me XAufze.GGeb_Me = XVGGeb_Me XAufze.KGeb_Be = XVKGeb_Be XAufze.VGeb_Be = XVVGeb_Be XAufze.GGeb_Be = XVGGeb_Be XAufze.KGeb_Ru = XVKGeb_Be - XVKGeb_Me XAufze.VGeb_Ru = XVVGeb_Be - XVVGeb_Me XAufze.GGeb_Ru = XVGGeb_Be - XVGGeb_Me XAufze.MBest = XAufze.KGeb_Be XAufze.MGeli = XAufze.KGeb_Me XAufze.MRuek = XAufze.KGeb_Ru F_MBest = XAufze.KGeb_Be F_MGeli = XAufze.KGeb_Me F_MRuek = XAufze.KGeB_Ru. IF ENTRY(4, VDaten, ';') BEGINS 'n' THEN XAufze.Lag_Buch = FALSE. ELSE XAufze.Lag_Buch = TRUE. END. XAufze.Liter = KGebinde.Inhalt * XAufze.KGeb_Me / 100. XAufze.Gewicht = (Artst.Gewicht * ABS(XAufze.KGeb_Me)) + (KGebinde.Gewicht * ABS(XAufze.KGeb_Me)) + (VGebinde.Gewicht * ABS(XAufze.VGeb_Me)) + (GGebinde.Gewicht * ABS(XAufze.GGeb_Me)). VPreis = 0. VRab_Betr = 0. VRab_Proz = 0. VAktion = FALSE. VAktion_Text = ''. VP_Grp = 0. FAbweich = FALSE. PosMenge = ABS(XAufze.MBest). DISPLAY F_MBest F_MGeli F_MRuek WITH FRAME {&FRAME-NAME}. FIND AbwPrGrp USE-INDEX AbwPrGrp-k1 WHERE AbwPrGrp.Firma = Aufko.Firma AND AbwPrGrp.Knr = Aufko.Knr AND AbwPrGrp.Wg_Grp = Artst.Wg_Grp NO-LOCK NO-ERROR. IF AVAILABLE AbwPrGrp THEN DO: VP_Grp = AbwPrGrp.Preis_Grp. FAbweich = TRUE. END. ELSE VP_Grp = Aufko.Preis_Grp. IF Steuer.AktionsPreise = 0 THEN VGrp = VP_Grp. IF Steuer.AktionsPreise = 1 THEN VGrp = Aufko.Ku_Grp. /* -------------------------------------------------------------- */ /* Aktionspreise auf dieser Warengruppe möglich ? */ /* -------------------------------------------------------------- */ FIND AktKeine USE-INDEX AktKeine-k1 WHERE AktKeine.Firma = Aufko.Firma AND AktKeine.Knr = Aufko.Knr AND AktKeine.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR. IF AVAILABLE AktKeine THEN KeineAkt = TRUE. ELSE KeineAkt = FALSE. DO WHILE TRUE: ASSIGN XAufze.Rab_Su_Grp = 0 XAufze.Rab_Su_Art = 0. FIND RabTab USE-INDEX RabTab-k1 WHERE RabTab.Firma = GVFirma AND RabTab.Ku_Rab = Aufko.Rab_Grp AND RabTab.Art_Rab = Artst.Rab_Grp NO-LOCK NO-ERROR. IF NOT AVAILABLE RabTab THEN LEAVE. ASSIGN XAufze.Rab_Su_Grp = RabTab.Rab_Summ XAufze.Rab_Su_Art = RabTab.Add_Art. IF XAufze.Netto THEN LEAVE. IF RabTab.Wert = 0 THEN LEAVE. LEAVE. END. DO WHILE TRUE: IF XAufze.Preis_Mut THEN DO: MESSAGE 'Preis überprüfen, wurde von Hand eingegeben ' VIEW-AS ALERT-BOX INFORMATION. VPreis = XAufze.Preis. LEAVE. END. IF XAufze.Rab_Art = 3 THEN DO: IF Artst.DEP <> 0 THEN VPreis = Artst.DEP. IF Artst.LEP <> 0 THEN VPreis = Artst.LEP. IF Artst.Listen_EP <> 0 THEN VPreis = Artst.Listen_EP. LEAVE. END. FIND LAST ArtPreis USE-INDEX ArtPreis-k1 WHERE ArtPreis.Firma = GVFirma AND ArtPreis.Artnr = XAufze.Artnr AND ArtPreis.Inhalt = XAufze.Inhalt AND ArtPreis.Jahr = XAufze.Jahr AND ArtPreis.Preis_Grp = VP_Grp AND ArtPreis.Aktion = FALSE AND ArtPreis.Ab_Datum <= Aufko.Kond_Datum NO-LOCK NO-ERROR. DO WHILE TRUE: IF AVAILABLE ArtPreis THEN LEAVE. IF FAbweich THEN DO: FIND LAST ArtPreis USE-INDEX ArtPreis-k1 WHERE ArtPreis.Firma = GVFirma AND ArtPreis.Artnr = XAufze.Artnr AND ArtPreis.Inhalt = XAufze.Inhalt AND ArtPreis.Jahr = XAufze.Jahr AND ArtPreis.Preis_Grp = Aufko.Preis_Grp AND ArtPreis.Aktion = FALSE AND ArtPreis.Ab_Datum <= Aufko.Kond_Datum NO-LOCK NO-ERROR. IF AVAILABLE ArtPreis THEN LEAVE. END. FIND LAST ArtPreis USE-INDEX ArtPreis-k1 WHERE ArtPreis.Firma = GVFirma AND ArtPreis.Artnr = XAufze.Artnr AND ArtPreis.Inhalt = XAufze.Inhalt AND ArtPreis.Jahr = XAufze.Jahr AND ArtPreis.Preis_Grp = FwPreisGrp AND ArtPreis.Aktion = FALSE AND ArtPreis.Ab_Datum <= Aufko.Kond_Datum NO-LOCK NO-ERROR. IF AVAILABLE ArtPreis THEN LEAVE. FIND FIRST ArtPreis USE-INDEX ArtPreis-k1 WHERE ArtPreis.Firma = GVFirma AND ArtPreis.Artnr = XAufze.Artnr AND ArtPreis.Inhalt = XAufze.Inhalt AND ArtPreis.Jahr = XAufze.Jahr AND ArtPreis.Preis_Grp = VP_Grp AND ArtPreis.Aktion = FALSE AND ArtPreis.Ab_Datum >= Aufko.Kond_Datum NO-LOCK NO-ERROR. LEAVE. END. IF AVAILABLE ArtPreis THEN DO: FIND LAST ArtStaff USE-INDEX ArtStaff-k1 WHERE ArtStaff.Firma = ArtPreis.Firma AND ArtStaff.Artnr = ArtPreis.Artnr AND ArtStaff.Inhalt = ArtPreis.Inhalt AND ArtStaff.Jahr = ArtPreis.Jahr AND ArtStaff.Preis_Grp = ArtPreis.Preis_Grp AND ArtStaff.Ab_Datum = ArtPreis.Ab_Datum AND ArtStaff.Menge <= PosMenge NO-LOCK NO-ERROR. IF AVAILABLE ArtStaff THEN DO: IF Wust.Incl THEN VPreis = ArtStaff.VK_Brutto. ELSE VPreis = ArtStaff.VK_Netto. END. ELSE DO. IF Wust.Incl THEN VPreis = ArtPreis.VK_Brutto. ELSE VPreis = ArtPreis.VK_Netto. END. END. FIND LAST SpezPrei USE-INDEX SpezPrei-k1 WHERE SpezPrei.Firma = GVFirma AND SpezPrei.Knr = Aufko.Knr AND SpezPrei.Artnr = XAufze.Artnr AND SpezPrei.Inhalt = XAufze.Inhalt AND SpezPrei.Jahr = XAufze.Jahr AND SpezPrei.Menge <= PosMenge AND SpezPrei.Ab_Datum <= Aufko.Kond_Datum AND SpezPrei.Bis_Datum >= Aufko.Kond_Datum NO-LOCK NO-ERROR. IF AVAILABLE SpezPrei THEN DO: IF SpezPrei.Proz_Betr THEN DO. VRab_Proz = SpezPrei.Wert. VRab_Betr = 0. END. ELSE DO: VPreis = SpezPrei.Wert. VRab_Betr = 0. VRab_Proz = 0. END. { v8/meldung.i "0314" } XAufze.Rab_Su_Grp = 0. XAufze.Rab_Su_Art = 0. FSpezPreis = 1. END. DO WHILE TRUE: XAufze.Auf_Sp_Proz_Betr = TRUE. XAufze.Auf_Sp_Wert = 0. XAufze.Auf_Sp_Rab = 0. XAufze.Auf_Sp_Grp = 0. IF FSpezPreis > 0 THEN LEAVE. FIND FIRST SpPrRab USE-INDEX SpPrRab-k1 WHERE SpPrRab.Firma = GVFirma AND SpPrRab.Knr = Aufko.Knr AND SpPrRab.Rab_Grp = Artst.Rab_Grp AND SpPrRab.Ab_Datum <= Aufko.Kond_Datum AND SpPrRab.Bis_Datum >= Aufko.Kond_Datum NO-LOCK NO-ERROR. IF AVAILABLE SpPrRab THEN DO: XAufze.Auf_Sp_Grp = SpPrRab.Rab_Grp. END. FIND LAST SpPrRab USE-INDEX SpPrRab-k1 WHERE SpPrRab.Firma = GVFirma AND SpPrRab.Knr = Aufko.Knr AND SpPrRab.Rab_Grp = Artst.Rab_Grp AND SpPrRab.Menge <= PosMenge AND SpPrRab.Ab_Datum <= Aufko.Kond_Datum AND SpPrRab.Bis_Datum >= Aufko.Kond_Datum NO-LOCK NO-ERROR. IF AVAILABLE SpPrRab THEN DO: IF SpPrRab.Wert <> 0 THEN DO: IF SpPrRab.Proz_Betr THEN DO. VRab_Proz = SpPrRab.Wert. VRab_Betr = 0. END. ELSE DO: VRab_Betr = SpPrRab.Wert. VRab_Proz = 0. END. IF XAufze.Netto = TRUE THEN DO: IF NettoRab = 1 THEN DO: VRab_Proz = 0. VRab_Betr = 0. END. END. XAufze.Rab_Su_Grp = 0. XAufze.Rab_Su_Art = 0. FSpezPreis = 2. END. END. LEAVE. END. DO WHILE TRUE: IF KeineAkt THEN LEAVE. IF FSpezpreis > 0 AND Aktionen = 0 THEN LEAVE. IF FSpezpreis = 1 THEN DO: IF Aktionen = 2 THEN LEAVE. END. IF FSpezpreis = 2 THEN DO: IF Aktionen = 1 THEN LEAVE. END. FIND LAST AktPreis USE-INDEX AktPreis-k2 WHERE AktPreis.Firma = GVFirma AND AktPreis.Artnr = XAufze.Artnr AND AktPreis.Inhalt = XAufze.Inhalt AND AktPreis.Jahr = XAufze.Jahr AND AktPreis.Grp = VGrp AND AktPreis.Ab_Datum <= Aufko.Kond_Datum AND AktPreis.Bis_Datum >= Aufko.Kond_Datum NO-LOCK NO-ERROR. IF AVAILABLE AktPreis THEN DO: IF AktPreis.Art = 0 THEN VPreis = VPreis - AktPreis.Wert. IF AktPreis.Art = 1 THEN VPreis = VPreis * (100 - AktPreis.Wert) / 100. VAktion = TRUE. VAktion_Text = AktPreis.Bemerkung. LEAVE. END. IF NOT FAbweich THEN LEAVE. IF Steuer.AktionsPreise > 0 THEN LEAVE. FIND LAST AktPreis USE-INDEX AktPreis-k2 WHERE AktPreis.Firma = GVFirma AND AktPreis.Artnr = XAufze.Artnr AND AktPreis.Inhalt = XAufze.Inhalt AND AktPreis.Jahr = XAufze.Jahr AND AktPreis.Grp = Aufko.Preis_Grp AND AktPreis.Ab_Datum <= Aufko.Kond_Datum AND AktPreis.Bis_Datum >= Aufko.Kond_Datum NO-LOCK NO-ERROR. IF AVAILABLE AktPreis THEN DO: IF AktPreis.Art = 0 THEN VPreis = VPreis - AktPreis.Wert. IF AktPreis.Art = 1 THEN VPreis = VPreis * (100 - AktPreis.Wert) / 100. VAktion = TRUE. VAktion_Text = AktPreis.Bemerkung. LEAVE. END. LEAVE. END. IF XAufze.Netto THEN LEAVE. IF FSpezPreis > 0 THEN LEAVE. IF AVAILABLE RabTab THEN DO: IF RabTab.Wert = 0 THEN LEAVE. END. IF XAufze.Rab_Art > 0 THEN DO: IF XAufze.Rab_Art = 1 THEN DO: VRab_Proz = XAufze.Rab_Wert. VRab_Betr = 0. LEAVE. END. IF XAufze.Rab_Art = 2 THEN DO: VRab_Betr = XAufze.Rab_Wert. VRab_Proz = 0. LEAVE. END. END. IF AVAILABLE RabTab THEN DO: IF RabTab.Rab_Art = 0 THEN VRab_Betr = RabTab.Wert. IF RabTab.Rab_Art = 1 THEN VRab_Proz = RabTab.Wert. END. LEAVE. END. ASSIGN XAufze.Preis = VPreis XAufze.Aktion = VAktion XAufze.Aktion_Text = VAktion_Text. IF XAufze.Rab_Art <> 3 THEN DO: ASSIGN XAufze.Rab_Art = 0 XAufze.Rab_Wert = 0. END. IF VRab_Proz <> 0 THEN DO: ASSIGN XAufze.Rab_Art = 1 XAufze.Rab_Wert = VRab_Proz. END. IF VRab_Betr <> 0 THEN DO: ASSIGN XAufze.Rab_Art = 2 XAufze.Rab_Wert = VRab_Betr. END. DO WHILE TRUE: IF XAufze.Rab_Art = 1 THEN DO: XAufze.Bru_Betr = XAufze.Preis * XAufze.MGeli. XAufze.Rab_Betr = XAufze.Rab_Wert * XAufze.Bru_Betr / 100. LEAVE. END. IF XAufze.Rab_Art = 2 THEN DO: XAufze.Bru_Betr = XAufze.Preis * XAufze.MGeli. XAufze.Rab_Betr = XAufze.Rab_Wert * XAufze.MGeli. LEAVE. END. IF XAufze.Rab_Art = 3 THEN DO: XAufze.Bru_Betr = XAufze.Preis * XAufze.MGeli. XAufze.Rab_Betr = XAufze.Rab_Wert * XAufze.MGeli * -1. LEAVE. END. XAufze.Bru_Betr = XAufze.Preis * XAufze.MGeli. XAufze.Rab_Betr = 0. XAufze.Rab_Art = 0. LEAVE. END. IF Wust.Incl THEN DO: Rundbetr = XAufze.Rab_Betr. Rundcode = 1. RUN "v8/runden.p". XAufze.Rab_Betr = Rundbetr. END. XAufze.Zus_Betr = 0. IF XAufze.Zus_Art > 0 THEN DO: IF XAufze.Zus_Art = 1 THEN XAufze.Zus_Betr = XAufze.Bru_Betr * XAufze.Zus_Wert / 100. IF XAufze.Zus_Art = 2 THEN XAufze.Zus_Betr = XAufze.MGeli * XAufze.Zus_Wert. END. IF Wust.Incl THEN DO: Rundbetr = XAufze.Zus_Betr. Rundcode = 1. RUN "v8/runden.p". XAufze.Zus_Betr = Rundbetr. END. XAufze.Net_Betr = XAufze.Bru_Betr - XAufze.Rab_Betr + XAufze.Zus_Betr. IF Wust.Incl THEN DO: Rundbetr = XAufze.Net_Betr. Rundcode = 1. RUN "v8/runden.p". XAufze.Net_Betr = Rundbetr. END. IF Ablauf = 0 THEN DO: DO WITH FRAME {&FRAME-NAME}: F_Preis = XAufze.Preis. F_Rab_Art = XAufze.Rab_Art. F_Rab_Wert = XAufze.Rab_Wert. F_Zus_Art = XAufze.Zus_Art. F_Zus_Wert = XAufze.Zus_Wert. DISPLAY F_Preis F_Rab_Art F_Rab_Wert F_Zus_Art F_Zus_Wert. F_Preis:MODIFIED = FALSE. F_Rab_Art:MODIFIED = FALSE. F_Rab_Wert:MODIFIED = FALSE. F_Zus_Art:MODIFIED = FALSE. F_Zus_Wert:MODIFIED = FALSE. END. IF XAufze.Aktion THEN BELL. IF XAufze.Aktion THEN F_Preis:BGCOLOR = 14. ELSE F_Preis:BGCOLOR = 15. END. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_ZEILE B-table-Win PROCEDURE NEUE_ZEILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ APPLY 'INSERT-MODE':U TO FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NICHT_GEFUNDEN B-table-Win PROCEDURE NICHT_GEFUNDEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAKMUT B-table-Win PROCEDURE SAMMFAKMUT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER KoRecid AS RECID NO-UNDO. FIND BAufko WHERE RECID(BAufko) = KoRecid. BAufko.Gedruckt = FALSE. DO WHILE TRUE: FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Fak_Art AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF Tabel.Int_3 <> 4 THEN LEAVE. /* nicht Sammelrechnung */ IF BAufko.Samm_Nr = 0 THEN LEAVE. FOR EACH YAufko USE-INDEX Aufko-k4 WHERE YAufko.Firma = BAufko.Firma AND YAufko.Knr = BAufko.Knr AND YAufko.Fak_Art = BAufko.Fak_Art AND YAufko.Samm_Nr = BAufko.Samm_Nr. YAufko.Gedruckt = FALSE. IF Tabel.Int_2 = YAufko.Auf_Sta THEN YAufko.Auf_Sta = YAufko.Auf_Sta - 1. END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS PROCEDURE send-records : /*------------------------------------------------------------------------------ Purpose: Send record ROWID's for all tables used by this file. Parameters: see template/snd-head.i ------------------------------------------------------------------------------*/ /* Define variables needed by this internal procedure. */ {src/adm/template/snd-head.i} /* For each requested table, put it's ROWID in the output list. */ {src/adm/template/snd-list.i "Aufze"} /* Deal with any unexpected table requests before closing. */ {src/adm/template/snd-end.i} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SPEICHERN B-table-Win PROCEDURE SPEICHERN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR XOpen AS LOG NO-UNDO. DEF VAR ZRecid AS RECID NO-UNDO. DEF VAR ARecid AS RECID NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR XWC AS INT NO-UNDO. DEF VAR rRowId AS ROWID NO-UNDO. DEF BUFFER LAufko FOR Aufko. DO WITH FRAME {&FRAME-NAME}: XOpen = FALSE. ARecid = 0. FIND BAufko WHERE RECID(BAufko) = KRecid NO-LOCK. XVAufnr = BAufko.Aufnr. ASSIGN {&List-2}. ASSIGN {&List-3}. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: IF VNeu THEN DO: FIND LAST BAufze USE-INDEX Aufze-k1 WHERE BAufze.Firma = GVFirma AND BAufze.Aufnr = BAufko.Aufnr AND (BAufze.Pos MOD 5) = 0 NO-LOCK NO-ERROR. IF AVAILABLE BAufze THEN LVPos = BAufze.Pos + 5. ELSE LVPos = 5. ASSIGN XAufze.Firma = GVFirma XAufze.Aufnr = BAufko.Aufnr XAufze.Pos = LVPos XAufze.Lager = BAufko.Lager. CREATE Aufze. ZRecid = RECID(Aufze). XOpen = TRUE. IF XAufze.Artnr <> 0 THEN DO: FIND LAST Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = GVFirma NO-LOCK NO-ERROR. IF AVAILABLE Artbw THEN i1 = Artbw.Trnr + 1. ELSE i1 = 1. CREATE Artbw. ASSIGN Artbw.Firma = GVFirma Artbw.Trnr = i1 Artbw.Tr_Art = 01. ASSIGN XAufze.Trnr = Artbw.Trnr. END. END. ELSE DO: ZRecid = RECID(Aufze). FIND Aufze WHERE RECID(Aufze) = ZRecid. FIND Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = Aufze.Firma AND Artbw.Trnr = Aufze.Trnr NO-ERROR. END. { v8/aufze_assign.i "XAufze" } IF XAufze.Artnr = 0 THEN DO: ASSIGN XAufze.MBest = 0 XAufze.MGel = 0 XAufze.MRuek = 0 XAufze.Preis = 0. BUFFER-COPY XAufze TO Aufze. RELEASE Aufze. LEAVE. END. FIND Wust NO-LOCK WHERE Wust.CodeK = BAufko.MWSt AND Wust.CodeA = XAufze.Wc NO-ERROR. ASSIGN XAufze.WuCd = Wust.WuCd. FIND Artst NO-LOCK WHERE Artst.Firma = XAufze.Firma AND Artst.Artnr = XAufze.Artnr AND Artst.Inhalt = XAufze.Inhalt AND Artst.Jahr = XAufze.Jahr. DO WHILE F_Preis:MODIFIED = TRUE OR F_Rab_Art:MODIFIED = TRUE OR F_Rab_Wert:MODIFIED = TRUE OR F_Zus_Art:MODIFIED = TRUE OR F_Zus_Wert:MODIFIED = TRUE : IF XAufze.Rab_Art = 3 THEN DO: IF Artst.DEP <> 0 THEN XAufze.Preis = Artst.DEP. IF Artst.LEP <> 0 THEN XAufze.Preis = Artst.LEP. IF Artst.Listen_EP <> 0 THEN XAufze.Preis = Artst.Listen_EP. END. ASSIGN XAufze.Aktion = FALSE. XAufze.Aktion_Text = ''. DO WHILE TRUE: IF XAufze.Rab_Art = 1 THEN DO: XAufze.Bru_Betr = XAufze.Preis * XAufze.MGeli. XAufze.Rab_Betr = XAufze.Rab_Wert * XAufze.Bru_Betr / 100. LEAVE. END. IF XAufze.Rab_Art = 2 THEN DO: XAufze.Bru_Betr = XAufze.Preis * XAufze.MGeli. XAufze.Rab_Betr = XAufze.Rab_Wert * XAufze.MGeli. LEAVE. END. IF XAufze.Rab_Art = 3 THEN DO: XAufze.Bru_Betr = XAufze.Preis * XAufze.MGeli. XAufze.Rab_Betr = XAufze.Rab_Wert * XAufze.MGeli * -1. LEAVE. END. XAufze.Bru_Betr = XAufze.Preis * XAufze.MGeli. XAufze.Rab_Betr = 0. XAufze.Rab_Art = 0. LEAVE. END. IF Wust.Incl THEN DO: Rundbetr = XAufze.Rab_Betr. Rundcode = 1. RUN "v8/runden.p". XAufze.Rab_Betr = Rundbetr. END. DO WHILE TRUE: IF XAufze.Zus_Art = 1 THEN DO: XAufze.Zus_Betr = XAufze.Zus_Wert * XAufze.Bru_Betr / 100. LEAVE. END. IF XAufze.Zus_Art = 2 THEN DO: XAufze.Zus_Betr = XAufze.Zus_Wert * XAufze.MGeli. LEAVE. END. XAufze.Zus_Betr = 0. XAufze.Zus_Wert = 0. XAufze.Zus_Art = 0. LEAVE. END. IF Wust.Incl THEN DO: Rundbetr = XAufze.Zus_Betr. Rundcode = 1. RUN "v8/runden.p". XAufze.Zus_Betr = Rundbetr. END. XAufze.Net_Betr = XAufze.Bru_Betr - XAufze.Rab_Betr + XAufze.Zus_Betr. IF Wust.Incl THEN DO: Rundbetr = XAufze.Net_Betr. Rundcode = 1. RUN "v8/runden.p". XAufze.Net_Betr = Rundbetr. END. LEAVE. END. ARecid = RECID(Artst). RUN GEBINDE_KONTO ( INPUT 2 ). RUN SUMMEN_GRUPPE ( INPUT 2 ). BUFFER-COPY XAufze TO Aufze. RUN GEBINDE_KONTO ( INPUT 1 ). RUN SUMMEN_GRUPPE ( INPUT 1 ). DO WHILE Aufze.EP = 0: IF Artst.DEP <> 0 THEN DO: Aufze.EP = Artst.DEP. LEAVE. END. IF Artst.LEP <> 0 THEN DO: Aufze.EP = Artst.LEP. LEAVE. END. IF Artst.Listen_EP <> 0 THEN DO: Aufze.EP = Artst.Listen_EP. LEAVE. END. LEAVE. END. RELEASE ArtLager. RELEASE Artst. RUN SAMMFAKMUT ( INPUT KRecid ). IF AVAILABLE Artbw THEN DO: { v8/artbw_aufze.i "Artbw" } END. RELEASE Artbw . RELEASE BAufko. RELEASE Aufko . RELEASE Aufze . DISABLE {&List-3}. LEAVE. END. FIND Aufko NO-LOCK WHERE RECID(Aufko) = KRecid. REPEAT TRANSACTION: IF ARecid <> 0 THEN RUN AUFTRAGSTOTAL ( Aufko.Aufnr, OUTPUT cString ). RELEASE Aufko. RELEASE AufGKon. LEAVE. END. FIND Aufko NO-LOCK WHERE RECID(Aufko) = KRecid. FIND Aufze WHERE RECID(Aufze) = ZRecid NO-LOCK NO-ERROR. LVPos = Aufze.Pos. rRowId = ROWID(Aufze). Btn_Erfassen:LABEL = '&Neu'. Btn_Aendern :LABEL = '&Aendern'. ENABLE Btn_Loeschen. ENABLE Btn_Zurueck. ENABLE Btn_Verschieben. VUpdate = FALSE. VNeu = FALSE. /* IF XOpen THEN DO: RUN dispatch IN THIS-PROCEDURE ('open-query':U). REPOSITION {&BROWSE-NAME} TO ROWID rRowId. RUN ANZEIGE. END. ELSE DO: {&BROWSE-NAME}:REFRESH(). REPOSITION {&BROWSE-NAME} TO ROWID rRowId. RUN ANZEIGE. END. */ IF KLim > 0 THEN DO: Rundbetr = Saldo. FOR EACH LAufko NO-LOCK USE-INDEX Aufko-k2 WHERE LAufko.Firma = GVFirma AND LAufko.Knr = Aufko.Knr : Rundbetr = Rundbetr + LAufko.Auf_Tot. END. IF Rundbetr > KLim THEN DO: RUN FEHLER (INPUT 1086) NO-ERROR. END. END. RELEASE Aufze. RELEASE AufGKon. RELEASE AufSpRab. RELEASE AufRabSu. F_Auf_Tot = Aufko.Auf_Tot. DISPLAY {&List-6} WITH FRAME {&FRAME-NAME}. IF XOpen THEN RUN dispatch IN THIS-PROCEDURE ('open-query':U). ELSE {&BROWSE-NAME}:REFRESH(). REPOSITION {&BROWSE-NAME} TO ROWID rRowId. RUN ANZEIGE. RELEASE Aufko. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win PROCEDURE state-changed : /* ----------------------------------------------------------- Purpose: Parameters: Notes: -------------------------------------------------------------*/ DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO. CASE p-state: /* Object instance CASEs can go here to replace standard behavior or add new cases. */ {src/adm/template/bstates.i} END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMEN_GRUPPE B-table-Win PROCEDURE SUMMEN_GRUPPE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER Art AS INT. DEF VAR VMenge AS DEC DECIMALS 4 NO-UNDO. DEF VAR FWert AS DEC DECIMALS 4 NO-UNDO. DEF VAR AWert AS DEC DECIMALS 4 NO-UNDO. DEF VAR RRecid AS RECID NO-UNDO. DO WHILE Aufze.Auf_Sp_Grp > 0: FIND AufSpRab USE-INDEX AufSpRab-k1 WHERE AufSpRab.Firma = Aufze.Firma AND AufSpRab.Aufnr = Aufze.Aufnr AND AufSpRab.Rab_Grp = Aufze.Auf_Sp_Grp NO-ERROR. IF NOT AVAILABLE AufSpRab THEN DO: CREATE AufSpRab. ASSIGN AufSpRab.Firma = Aufze.Firma AufSpRab.Aufnr = Aufze.Aufnr AufSpRab.Rab_Grp = Aufze.Auf_Sp_Grp. END. IF Art = 1 THEN AufSpRab.Menge = AufSpRab.Menge + Aufze.MGeli. IF Art = 2 THEN AufSpRab.Menge = AufSpRab.Menge - Aufze.MGeli. FIND LAST SpPrRab USE-INDEX SpPrRab-k1 WHERE SpPrRab.Firma = GVFirma AND SpPrRab.Knr = Aufko.Knr AND SpPrRab.Rab_Grp = Artst.Rab_Grp AND SpPrRab.Menge <= AufSpRab.Menge AND SpPrRab.Ab_Datum <= Aufko.Kond_Datum AND SpPrRab.Bis_Datum >= Aufko.Kond_Datum NO-LOCK NO-ERROR. IF AVAILABLE SpPrRab THEN DO: ASSIGN AufSpRab.Auf_Proz_Betr = SpPrRab.Auf_Proz_Betr AufSpRab.Auf_Wert = SpPrRab.Auf_Wert. END. ELSE DO: Aufze.Auf_Sp_Grp = 0. END. LEAVE. END. IF Aufze.Rab_Su_Grp = 0 THEN DO: ASSIGN Aufze.Auf_Rab = 0 Aufze.Abh_Rab = 0 Aufze.Rab_Su_Art = 0. RETURN. END. FIND AufRabSu USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = Aufze.Firma AND AufRabSu.Aufnr = Aufze.Aufnr AND AufRabSu.Rab_Summ = Aufze.Rab_Su_Grp AND AufRabSu.MWST_Cd = Aufze.WuCd NO-ERROR. IF NOT AVAILABLE AufRabSu THEN DO: FIND FIRST RabSumm NO-LOCK USE-INDEX RabSumm-k1 WHERE RabSumm.Firma = Aufze.Firma AND RabSumm.Rab_Summ = Aufze.Rab_Su_Grp. CREATE AufRabSu. ASSIGN AufRabSu.Firma = Aufze.Firma AufRabSu.Aufnr = Aufze.Aufnr AufRabSu.Rab_Summ = Aufze.Rab_Su_Grp AufRabSu.MWST_Cd = Aufze.WuCd AufRabSu.F_Art = RabSumm.F_Rab_Art AufRabSu.F_Proz_Betr = RabSumm.F_Proz_Betr AufRabSu.A_Art = RabSumm.A_Rab_Art AufRabSu.A_Proz_Betr = RabSumm.A_Proz_Betr. END. RRecid = RECID(AufRabSu). DO WHILE TRUE: IF Aufze.Preis = 0 THEN LEAVE. IF Art = 1 THEN DO: ASSIGN AufRabSu.M_Menge = AufRabSu.M_Menge + Aufze.MGeli AufRabSu.M_Betrag = AufRabSu.M_Betrag + Aufze.Net_Betr AufRabSu.M_Inhalt = AufRabSu.M_Inhalt + Aufze.Liter. IF Aufze.Rab_Su_Art = 0 THEN LEAVE. ASSIGN AufRabSu.R_Menge = AufRabSu.R_Menge + Aufze.MGeli AufRabSu.R_Betrag = AufRabSu.R_Betrag + Aufze.Net_Betr AufRabSu.R_Inhalt = AufRabSu.R_Inhalt + Aufze.Liter. END. IF Art = 2 THEN DO: ASSIGN AufRabSu.M_Menge = AufRabSu.M_Menge - Aufze.MGeli AufRabSu.M_Betrag = AufRabSu.M_Betrag - Aufze.Net_Betr AufRabSu.M_Inhalt = AufRabSu.M_Inhalt - Aufze.Liter. IF Aufze.Rab_Su_Art = 0 THEN LEAVE. ASSIGN AufRabSu.R_Menge = AufRabSu.R_Menge - Aufze.MGeli AufRabSu.R_Betrag = AufRabSu.R_Betrag - Aufze.Net_Betr AufRabSu.R_Inhalt = AufRabSu.R_Inhalt - Aufze.Liter. END. LEAVE. END. VMenge = 0. FOR EACH AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = Aufze.Firma AND AufRabSu.Aufnr = Aufze.Aufnr AND AufRabSu.Rab_Summ = Aufze.Rab_Su_Grp : CASE AufRabSu.F_Art: WHEN 0 THEN DO: VMenge = VMenge + AufRabSu.M_Menge. END. WHEN 1 THEN DO: VMenge = VMenge + AufRabSu.M_Betrag. END. WHEN 2 THEN DO: VMenge = VMenge + AufRabSu.M_Inhalt. END. END. END. FIND AufRabSu WHERE RECID(AufRabSu) = RRecid. VMenge = ABS(VMenge). DO WHILE TRUE: IF AufRabSu.F_Art = 0 THEN DO: FIND LAST RabSumm USE-INDEX RabSumm-k1 WHERE RabSumm.Firma = Aufze.Firma AND RabSumm.Rab_Summ = AufRabSu.Rab_Summ AND RabSumm.Menge <= VMenge NO-LOCK NO-ERROR. END. IF AufRabSu.F_Art = 1 THEN DO: FIND LAST RabSumm USE-INDEX RabSumm-k1 WHERE RabSumm.Firma = Aufze.Firma AND RabSumm.Rab_Summ = AufRabSu.Rab_Summ AND RabSumm.Menge = 0 AND RabSumm.Betrag <= VMenge NO-LOCK NO-ERROR. END. IF AufRabSu.F_Art = 2 THEN DO: FIND LAST RabSumm USE-INDEX RabSumm-k1 WHERE RabSumm.Firma = Aufze.Firma AND RabSumm.Rab_Summ = AufRabSu.Rab_Summ AND RabSumm.Menge = 0 AND RabSumm.Betrag = 0 AND RabSumm.Inhalt <= (VMenge / 100) NO-LOCK NO-ERROR. END. IF NOT AVAILABLE RabSumm THEN FWert = 0. ELSE FWert = RabSumm.F_Wert. IF AufRabSu.A_Art = 0 THEN DO: FIND LAST RabSumm USE-INDEX RabSumm-k1 WHERE RabSumm.Firma = Aufze.Firma AND RabSumm.Rab_Summ = AufRabSu.Rab_Summ AND RabSumm.Menge <= VMenge NO-LOCK NO-ERROR. END. IF AufRabSu.A_Art = 1 THEN DO: FIND LAST RabSumm USE-INDEX RabSumm-k1 WHERE RabSumm.Firma = Aufze.Firma AND RabSumm.Rab_Summ = AufRabSu.Rab_Summ AND RabSumm.Menge = 0 AND RabSumm.Betrag <= VMenge NO-LOCK NO-ERROR. END. IF AufRabSu.A_Art = 2 THEN DO: FIND LAST RabSumm USE-INDEX RabSumm-k1 WHERE RabSumm.Firma = Aufze.Firma AND RabSumm.Rab_Summ = AufRabSu.Rab_Summ AND RabSumm.Menge = 0 AND RabSumm.Betrag = 0 AND RabSumm.Inhalt <= (VMenge / 100) NO-LOCK NO-ERROR. END. IF NOT AVAILABLE RabSumm THEN AWert = 0. ELSE AWert = RabSumm.A_Wert. LEAVE. END. FOR EACH AufRabSu USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = Aufze.Firma AND AufRabSu.Aufnr = Aufze.Aufnr AND AufRabSu.Rab_Summ = Aufze.Rab_Su_Grp: AufRabSu.F_Wert = FWert. AufRabSu.A_Wert = AWert. END. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getKGebinde B-table-Win FUNCTION getKGebinde RETURNS CHARACTER ( ipKGeb_Cd AS CHAR ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ FIND KGebinde NO-LOCK WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = ipKGeb_Cd NO-ERROR. IF AVAILABLE KGebinde THEN RETURN KGebinde.KBez. ELSE RETURN ipKGeb_Cd. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getUpdateStatus B-table-Win FUNCTION getUpdateStatus RETURNS LOGICAL ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ RETURN VUpdate. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getVGebinde B-table-Win FUNCTION getVGebinde RETURNS CHARACTER ( ipVGeb_Cd AS CHAR ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ FIND VGebinde NO-LOCK WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = ipVGeb_Cd NO-ERROR. IF AVAILABLE VGebinde THEN RETURN VGebinde.KBez. ELSE RETURN ipVGeb_Cd. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setZeilenFarbe B-table-Win FUNCTION setZeilenFarbe RETURNS LOGICAL ( ipFarbe AS INT ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ { incl/brwsetzeilenfarbe.i } END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME