&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 XSavko NO-UNDO LIKE Savko. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS F-Frame-Win /*------------------------------------------------------------------------ File: Description: from cntnrfrm.w - ADM SmartFrame 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 ************************** */ &SCOPED-DEFINE INPUT-FELDER Savko.Auf_Datum,Savko.Kond_Datum,Savko.Lief_Datum,~ Savko.Fak_Datum,Savko.MWSt,Savko.Kond,Savko.Preis_Grp,Savko.Rab_Grp,~ Savko.Ku_Grp,Savko.Rabatt,Savko.Zei_Rab_Art,Savko.Zei_Rab_Wert,~ Savko.Auf_Rab_Art,Savko.Auf_Rab_Wert,Savko.Abh_Rab_Art,Savko.Abh_Rab_Wert,~ Savko.Zuschl_Art,Savko.Zuschl_Wert,Savko.Ablad_Vor_Text,Savko.Wirt_So_Text,~ Savko.Fahrer,Savko.BeiFahrer,Savko.Abhol,Savko.I_Best,Savko.U_Ref,~ Savko.Tour_Nr1,Savko.Tour_Nr2,Savko.Ablad_Vor_Text,Savko.Wirt_So_Text,T_Passant,~ Savko.Lief_Bed /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR QOpen AS LOG NO-UNDO. DEF VAR Vorhanden AS LOG NO-UNDO. DEF VAR VInhalt AS CHAR NO-UNDO. DEF VAR VKnr AS INT NO-UNDO. DEF VAR XKnr AS INT NO-UNDO. DEF VAR XAufnr AS INT NO-UNDO. DEF VAR AAufnr AS INT NO-UNDO. DEF VAR LHandle AS HANDLE NO-UNDO. DEF VAR XHandle AS HANDLE NO-UNDO. DEF VAR FeldName AS CHAR NO-UNDO. DEF VAR FeldInhalt AS CHAR NO-UNDO. DEF VAR iSort AS INT NO-UNDO. DEF VAR AufAb AS LOG NO-UNDO. DEF VAR fAdmin AS LOG NO-UNDO. DEF VAR VAdresse AS CHAR NO-UNDO. DEF VAR XFak_Art AS CHAR NO-UNDO. DEF VAR VFak_Art AS INT NO-UNDO. DEF VAR XAuf_Sta AS CHAR NO-UNDO. DEF VAR VAuf_Sta AS INT NO-UNDO. DEF VAR XRecid AS RECID NO-UNDO. DEF VAR NRecid AS RECID NO-UNDO. DEF VAR VAuf_Text LIKE Savko.Auf_Text NO-UNDO. DEF VAR VAbh_Text LIKE Savko.Abh_Text NO-UNDO. DEF VAR VBar_Text LIKE Savko.Bar_Text NO-UNDO. DEF VAR VPassant LIKE Savko.Adresse NO-UNDO. DEF VAR VBemerk LIKE Debst.Bemerk NO-UNDO. DEF VAR XAdresse AS CHAR NO-UNDO. DEF VAR RVAufnr AS INT NO-UNDO. DEF VAR RVKnr AS INT NO-UNDO. DEF VAR FakDat AS DATE NO-UNDO. DEF VAR Faknr AS INT NO-UNDO. DEF VAR Knr AS INT NO-UNDO. DEF VAR Aufnr AS INT NO-UNDO. DEF VAR Fak_Art AS INT NO-UNDO. DEF VAR VUpdate AS LOG NO-UNDO. DEF VAR VNeu AS LOG NO-UNDO. DEF VAR Aktive AS LOG NO-UNDO. DEF VAR ok AS LOG NO-UNDO. DEF VAR ZRecid AS RECID NO-UNDO. DEF VAR VStart AS CHAR NO-UNDO. DEF BUFFER BAdresse FOR Adresse. DEF BUFFER BSavko FOR Savko . DEF BUFFER YSavko FOR Savko . /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i" " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartFrame &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER FRAME /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME Br_Savko /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES Savko SavZe /* Definitions for BROWSE Br_Savko */ &Scoped-define FIELDS-IN-QUERY-Br_Savko AAufnr @ AAufnr Savko.Knr ~ Savko.Fak_Art Savko.Fak_Datum Savko.Auf_Tot Savko.U_Ref VAdresse @ VAdresse ~ Savko.Aufnr &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Savko Savko.Knr &Scoped-define ENABLED-TABLES-IN-QUERY-Br_Savko Savko &Scoped-define FIRST-ENABLED-TABLE-IN-QUERY-Br_Savko Savko &Scoped-define QUERY-STRING-Br_Savko FOR EACH Savko ~ WHERE Savko.Firma = GVFirma ~ NO-LOCK &Scoped-define OPEN-QUERY-Br_Savko OPEN QUERY Br_Savko FOR EACH Savko ~ WHERE Savko.Firma = GVFirma ~ NO-LOCK. &Scoped-define TABLES-IN-QUERY-Br_Savko Savko &Scoped-define FIRST-TABLE-IN-QUERY-Br_Savko Savko /* Definitions for BROWSE Br_Savze */ &Scoped-define FIELDS-IN-QUERY-Br_Savze SavZe.Artnr SavZe.Inhalt SavZe.Jahr ~ SavZe.Bez1 SavZe.GGeb_Me SavZe.VGeb_Me SavZe.MBest SavZe.MGeli SavZe.Preis ~ SavZe.Rab_Wert SavZe.WuCd &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Savze &Scoped-define QUERY-STRING-Br_Savze FOR EACH SavZe NO-LOCK &Scoped-define OPEN-QUERY-Br_Savze OPEN QUERY Br_Savze FOR EACH SavZe NO-LOCK. &Scoped-define TABLES-IN-QUERY-Br_Savze SavZe &Scoped-define FIRST-TABLE-IN-QUERY-Br_Savze SavZe /* Definitions for FRAME F-Main */ &Scoped-define OPEN-BROWSERS-IN-QUERY-F-Main ~ ~{&OPEN-QUERY-Br_Savze} /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Br_Savko F_Start Btn_Gebinde F_LiefDatum ~ F_Art E_Adresse F_Aufnr Br_Savze RECT-30 RECT-31 &Scoped-Define DISPLAYED-OBJECTS F_Start F_LiefDatum F_Art E_Adresse ~ F_Aufnr /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD checkMSSQL F-Frame-Win FUNCTION checkMSSQL RETURNS LOGICAL ( ipFaknr AS INT ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getAuftraege F-Frame-Win FUNCTION getAuftraege RETURNS LOGICAL ( htAuftraege AS HANDLE ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Menu Definitions */ DEFINE MENU POPUP-MENU-Br_Savko MENU-ITEM m_komplett_lschen LABEL "komplett löschen" MENU-ITEM m_Spezial_in_Auftrag_zurueck LABEL "Spezial in Auftrag zurück". /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Gebinde LABEL "Gebinde" SIZE 14 BY 1. DEFINE VARIABLE E_Adresse AS CHARACTER VIEW-AS EDITOR NO-WORD-WRAP MAX-CHARS 500 SIZE 46 BY 4.95 BGCOLOR 15 FONT 6 NO-UNDO. DEFINE VARIABLE F_Art AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "9999999":U INITIAL 0 LABEL "Dok-Nr." VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_LiefDatum AS DATE FORMAT "99.99.9999":U LABEL "Lieferdatum" VIEW-AS FILL-IN NATIVE SIZE 19.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Start AS CHARACTER FORMAT "x(10)":U LABEL "Ab Nummer" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-30 EDGE-PIXELS 3 GRAPHIC-EDGE NO-FILL SIZE 166 BY 8.1. DEFINE RECTANGLE RECT-31 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 166 BY 12.62. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Savko FOR Savko SCROLLING. DEFINE QUERY Br_Savze FOR SavZe SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Savko &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Savko F-Frame-Win _STRUCTURED QUERY Br_Savko DISPLAY AAufnr @ AAufnr COLUMN-LABEL "Faknr" FORMAT "zzzzz9":U Savko.Knr FORMAT "999999":U Savko.Fak_Art COLUMN-LABEL "Art" FORMAT "99":U Savko.Fak_Datum COLUMN-LABEL "Fak.Datum" FORMAT "99.99.9999":U Savko.Auf_Tot COLUMN-LABEL "Auftr.Total" FORMAT "zz,zz9.99-":U Savko.U_Ref FORMAT "x(20)":U VAdresse @ VAdresse COLUMN-LABEL "Kunde" FORMAT "x(25)":U WIDTH 35 Savko.Aufnr FORMAT "9999999":U ENABLE Savko.Knr /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 110 BY 5.95 BGCOLOR 15 . DEFINE BROWSE Br_Savze &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Savze F-Frame-Win _STRUCTURED QUERY Br_Savze DISPLAY SavZe.Artnr FORMAT "999999":U SavZe.Inhalt FORMAT "9999":U SavZe.Jahr FORMAT "9999":U SavZe.Bez1 COLUMN-LABEL "Bezeichnung" FORMAT "x(30)":U SavZe.GGeb_Me COLUMN-LABEL "G-Geb" FORMAT "->>>9":U SavZe.VGeb_Me COLUMN-LABEL "V-Geb" FORMAT "->>>9":U SavZe.MBest FORMAT "->>>9":U SavZe.MGeli FORMAT "->>>9":U SavZe.Preis FORMAT "z,zz9.999":U SavZe.Rab_Wert COLUMN-LABEL "Rabatt" FORMAT "zz9.9999-":U SavZe.WuCd COLUMN-LABEL "MW" FORMAT "99":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 164 BY 11.76 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main Br_Savko AT ROW 1.48 COL 3 F_Start AT ROW 8 COL 19.4 COLON-ALIGNED Btn_Gebinde AT ROW 8 COL 112 F_LiefDatum AT ROW 8 COL 71.6 COLON-ALIGNED NO-TAB-STOP F_Art AT ROW 1.48 COL 118 COLON-ALIGNED NO-LABEL NO-TAB-STOP E_Adresse AT ROW 2.57 COL 120 NO-LABEL NO-TAB-STOP F_Aufnr AT ROW 8 COL 46.8 COLON-ALIGNED NO-TAB-STOP Br_Savze AT ROW 10.05 COL 3.6 RECT-30 AT ROW 1.24 COL 2 RECT-31 AT ROW 9.57 COL 2 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: SmartFrame Allow: Basic,Browse,DB-Fields,Query,Smart Other Settings: PERSISTENT-ONLY COMPILE Temp-Tables and Buffers: TABLE: XSavko T "?" NO-UNDO AnaDat Savko 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 F-Frame-Win ASSIGN HEIGHT = 21.43 WIDTH = 167.6. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB F-Frame-Win /* ************************* Included-Libraries *********************** */ {src/adm/method/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW F-Frame-Win VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */ /* BROWSE-TAB Br_Savko 1 F-Main */ /* BROWSE-TAB Br_Savze F_Aufnr F-Main */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE. ASSIGN Br_Savko:POPUP-MENU IN FRAME F-Main = MENU POPUP-MENU-Br_Savko:HANDLE Br_Savko:NUM-LOCKED-COLUMNS IN FRAME F-Main = 5. ASSIGN E_Adresse:RETURN-INSERTED IN FRAME F-Main = TRUE E_Adresse:READ-ONLY IN FRAME F-Main = TRUE. ASSIGN F_Art:READ-ONLY IN FRAME F-Main = TRUE. ASSIGN F_Aufnr:READ-ONLY IN FRAME F-Main = TRUE. ASSIGN F_LiefDatum:READ-ONLY IN FRAME F-Main = TRUE. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Savko /* Query rebuild information for BROWSE Br_Savko _TblList = "AnaDat.Savko" _Where[1] = "Savko.Firma = GVFirma " _FldNameList[1] > "_" "AAufnr @ AAufnr" "Faknr" "zzzzz9" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[2] > AnaDat.Savko.Knr "Savko.Knr" ? ? "integer" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[3] > AnaDat.Savko.Fak_Art "Savko.Fak_Art" "Art" ? "integer" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] > AnaDat.Savko.Fak_Datum "Savko.Fak_Datum" "Fak.Datum" ? "date" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] > AnaDat.Savko.Auf_Tot "Savko.Auf_Tot" "Auftr.Total" "zz,zz9.99-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[6] = AnaDat.Savko.U_Ref _FldNameList[7] > "_" "VAdresse @ VAdresse" "Kunde" "x(25)" ? ? ? ? ? ? ? no ? no no "35" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[8] = AnaDat.Savko.Aufnr _Query is NOT OPENED */ /* BROWSE Br_Savko */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Savze /* Query rebuild information for BROWSE Br_Savze _TblList = "AnaDat.SavZe" _FldNameList[1] = AnaDat.SavZe.Artnr _FldNameList[2] = AnaDat.SavZe.Inhalt _FldNameList[3] = AnaDat.SavZe.Jahr _FldNameList[4] > AnaDat.SavZe.Bez1 "SavZe.Bez1" "Bezeichnung" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] > AnaDat.SavZe.GGeb_Me "SavZe.GGeb_Me" "G-Geb" "->>>9" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[6] > AnaDat.SavZe.VGeb_Me "SavZe.VGeb_Me" "V-Geb" "->>>9" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[7] > AnaDat.SavZe.MBest "SavZe.MBest" ? "->>>9" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[8] > AnaDat.SavZe.MGeli "SavZe.MGeli" ? "->>>9" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[9] > AnaDat.SavZe.Preis "SavZe.Preis" ? "z,zz9.999" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[10] > AnaDat.SavZe.Rab_Wert "SavZe.Rab_Wert" "Rabatt" ? "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[11] > AnaDat.SavZe.WuCd "SavZe.WuCd" "MW" ? "integer" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is OPENED */ /* BROWSE Br_Savze */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _Options = "" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define BROWSE-NAME Br_Savko &Scoped-define SELF-NAME Br_Savko &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Savko F-Frame-Win ON RIGHT-MOUSE-DBLCLICK OF Br_Savko IN FRAME F-Main DO: IF NOT fAdmin THEN RETURN NO-APPLY. Linktext = STRING(Savko.Faknr,"9999999") + ";" + "Neue Rechnungsnummer geben;" + "Rechnungsnummer;" + "999999;" + "1". RUN "v8/d-einlesen-wert.w". IF Linktext = '' THEN RETURN NO-APPLY. REPEAT TRANSACTION: LVRecid = RECID(Savko). FIND BSavko WHERE RECID(BSavko) = LVRecid. BSavko.Faknr = INTEGER(Linktext). Linktext = ''. RELEASE BSavko. LEAVE. END. Br_Savko:REFRESH(). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Savko F-Frame-Win ON ROW-DISPLAY OF Br_Savko IN FRAME F-Main DO: XAufnr = Savko.Aufnr. XKnr = Savko.Knr. RUN ANZEIGE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Savko F-Frame-Win ON START-SEARCH OF Br_Savko IN FRAME F-Main DO: DEFINE VARIABLE ColumnHandle AS HANDLE NO-UNDO. ASSIGN ColumnHandle = {&BROWSE-NAME}:CURRENT-COLUMN. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: APPLY 'END-SEARCH' TO Br_Savko. CASE ColumnHandle:NAME: WHEN 'AAufnr' THEN DO: IF iSort = 1 THEN AufAb = NOT AufAb. ELSE ASSIGN iSort = 1 AufAb = TRUE Faknr = 0 F_Start = ''. F_Start:LABEL = 'Fakturanummer'. F_Start:SCREEN-VALUE = ''. RUN OPEN_Savko. END. WHEN 'Knr' THEN DO: IF iSort = 2 THEN AufAb = NOT AufAb. ELSE ASSIGN iSort = 2 AufAB = TRUE Knr = 0 F_Start = ''. F_Start:LABEL = 'Kundennummer'. F_Start:SCREEN-VALUE = ''. RUN OPEN_Savko. END. WHEN 'Fak_Art' THEN DO: IF iSort = 3 THEN AufAb = NOT AufAb. ELSE ASSIGN iSort = 3 AufAb = TRUE Fak_Art = 0 F_Start = ''. F_Start:LABEL = 'Auftragsart'. F_Start:SCREEN-VALUE = ''. RUN OPEN_Savko. END. WHEN 'Fak_Datum' THEN DO: IF iSort = 4 THEN AufAb = NOT AufAb. ELSE ASSIGN iSort = 4 AufAb = TRUE FakDat = 01/01/0001 F_Start = ''. F_Start:LABEL = 'Fakturadatum'. F_Start:SCREEN-VALUE = ''. RUN OPEN_Savko. END. WHEN 'Aufnr' THEN DO: IF iSort = 5 THEN AufAb = NOT AufAb. ELSE ASSIGN iSort = 5 AufAb = TRUE Aufnr = 0 F_Start = ''. F_Start:LABEL = 'Auftragsnummer'. F_Start:SCREEN-VALUE = ''. RUN OPEN_Savko. END. END CASE. F_Start:SCREEN-VALUE = F_Start. IF NUM-RESULTS('Br_Savko':U) = ? THEN LEAVE. IF NUM-RESULTS('Br_Savko':U) = 0 THEN LEAVE. Br_Savko:SELECT-ROW(1). Br_Savko:FETCH-SELECTED-ROW(1). LEAVE. END. PUT-KEY-VALUE SECTION 'Grundeinstellungen' KEY 'VerbuchtSort' VALUE STRING(iSort). APPLY 'ENTRY' TO F_Start. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Savko F-Frame-Win ON VALUE-CHANGED OF Br_Savko IN FRAME F-Main DO: RUN OPEN_Savze. IF NOT AVAILABLE Savko THEN RETURN. LVAufnr = Savko.Aufnr. XVAufnr = Savko.Aufnr. XVKnr = Savko.Knr. XAufnr = Savko.Aufnr. XKnr = Savko.Knr. RUN ANZEIGE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Gebinde &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Gebinde F-Frame-Win ON CHOOSE OF Btn_Gebinde IN FRAME F-Main /* Gebinde */ DO: DO WITH FRAME {&FRAME-NAME}: DISABLE Btn_Gebinde. RUN "v8/d-savgebko.w". ENABLE Btn_Gebinde. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME E_Adresse &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL E_Adresse F-Frame-Win ON ENTRY OF E_Adresse IN FRAME F-Main DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Art &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Art F-Frame-Win ON ENTRY OF F_Art IN FRAME F-Main DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Start &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Start F-Frame-Win ON LEAVE OF F_Start IN FRAME F-Main /* Ab Nummer */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN F_Start. VStart = F_Start. ERROR-STATUS:ERROR = FALSE. IF F_Start:MODIFIED = TRUE THEN DO: CASE iSort: WHEN 1 THEN Faknr = INTEGER(VStart) NO-ERROR. WHEN 2 THEN Knr = INTEGER(VStart) NO-ERROR. WHEN 3 THEN Fak_Art = INTEGER(VStart) NO-ERROR. WHEN 4 THEN FakDat = DATE (VStart) NO-ERROR. WHEN 5 THEN Aufnr = INTEGER(VStart) NO-ERROR. END CASE. IF ERROR-STATUS:ERROR THEN DO: MESSAGE 'ungültige Eingabe für die aktuelle Sortierung' VIEW-AS ALERT-BOX ERROR. APPLY 'ENTRY' TO F_Start. RETURN NO-APPLY. END. IF iSort = 4 AND FakDat = ? THEN FakDat = TODAY. END. F_Start:MODIFIED = FALSE. /* F_Start = ''. DISPLAY F_Start. */ RUN OPEN_Savko. APPLY 'ENTRY' TO BROWSE Br_Savko. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Start F-Frame-Win ON RETURN OF F_Start IN FRAME F-Main /* Ab Nummer */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_komplett_lschen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_komplett_lschen F-Frame-Win ON CHOOSE OF MENU-ITEM m_komplett_lschen /* komplett löschen */ DO: DEF VAR fNeuFnr AS LOG INIT FALSE NO-UNDO. DEF VAR fNochmals AS LOG INIT FALSE NO-UNDO. DEF VAR lSpez AS LOG INIT FALSE NO-UNDO. DEF VAR cDateiName AS CHAR NO-UNDO. DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR fOK AS LOG NO-UNDO. IF NOT fAdmin THEN RETURN NO-APPLY. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1) NO-ERROR. IF NOT AVAILABLE Savko THEN RETURN NO-APPLY. FIND Steuer NO-LOCK WHERE Steuer.Firma = Savko.Firma NO-ERROR. IF AVAILABLE Steuer THEN DO: IF Steuer.Fwc09 = 'SESAM' THEN DO: fOK = DYNAMIC-FUNCTION('checkMSSQL':U, INPUT Savko.Faknr ). IF NOT fOK THEN DO: FIND Debop NO-LOCK WHERE Debop.Firma = Savko.Firma AND Debop.Knr = Savko.Knr AND Debop.Faknr = Savko.Faknr NO-ERROR. MESSAGE 'Diese Rechnung ist bereits im SESAM' SKIP VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO UPDATE fOK. IF NOT fOK THEN RETURN NO-APPLY. END. END. END. DEF VAR ja AS LOG INIT FALSE NO-UNDO. MESSAGE 'Wollen Sie die Rechnung ' Savko.Faknr ' und eventuelle Zahlungen' SKIP 'komplett stornieren/löschen ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE ja. IF NOT ja THEN RETURN NO-APPLY. MESSAGE 'Wollen Sie die Rechnung danach nochmals verbuchen ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE fNochmals. IF fNochmals THEN DO: MESSAGE 'Wollen Sie eine neue Rechnungsnummer zuteilen ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE fNeuFnr. END. IF fNeuFnr THEN DO: MESSAGE 'es wird eine neue Rechnungsnummer zugeteilt' VIEW-AS ALERT-BOX INFORMATION. END. ja = FALSE. MESSAGE 'Verarbeitung starten ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE ja. IF NOT ja THEN RETURN NO-APPLY. SESSION:SET-WAIT-STATE('COMPILE'). RUN "v8/loeschen_rechnung.p" ( Savko.Firma, Savko.Knr, Savko.Faknr, fNochmals, fNeuFnr, lSpez ). BROWSE {&BROWSE-NAME}:DELETE-SELECTED-ROW(1). SESSION:SET-WAIT-STATE(''). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Spezial_in_Auftrag_zurueck &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Spezial_in_Auftrag_zurueck F-Frame-Win ON CHOOSE OF MENU-ITEM m_Spezial_in_Auftrag_zurueck /* Spezial in Auftrag zurück */ DO: DEF VAR cBenutzer AS CHAR NO-UNDO. cBenutzer = DYNAMIC-FUNCTION('getBenutzer'). IF cBenutzer <> 'wari' THEN RETURN NO-APPLY. RUN SPEZLOESCHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK F-Frame-Win /* *************************** Main Block *************************** */ SESSION:DATA-ENTRY-RETURN = TRUE. Savko.Knr:READ-ONLY IN BROWSE Br_Savko = TRUE. ON "CTRL-ALT-F5":U OF BROWSE {&BROWSE-NAME} DO: REPEAT TRANSACTION: FOR EACH SavGebKo USE-INDEX SavGebKo-k1 WHERE SavGebKo.Firma = GVFirma AND SavGebKo.Aufnr = LVAufnr: CREATE AufGebKo. BUFFER-COPY SavGebKo TO AufGebKo. DELETE SavGebKo. END. FOR EACH SavGKon USE-INDEX SavGKon-k1 WHERE SavGKon.Firma = GVFirma AND SavGKon.Aufnr = LVAufnr: CREATE AufGKon. BUFFER-COPY SavGKon TO AufGKon. DELETE SavGKon. END. FOR EACH SavRabSu USE-INDEX SavRabSu-k1 WHERE SavRabSu.Firma = GVFirma AND SavRabSu.Aufnr = LVAufnr: CREATE AufRabSu. BUFFER-COPY SavRabSu TO AufRabSu. DELETE SavRabSu. END. FOR EACH SavSpRab USE-INDEX SavSpRab-k1 WHERE SavSpRab.Firma = GVFirma AND SavSpRab.Aufnr = LVAufnr: CREATE AufSpRab. BUFFER-COPY SavSpRab TO AufSpRab. DELETE SavSpRab. END. FOR EACH Savko USE-INDEX Savko-k1 WHERE Savko.Firma = GVFirma AND Savko.Aufnr = LVAufnr: CREATE Aufko. BUFFER-COPY Savko TO Aufko ASSIGN Aufko.Verbucht = FALSE. DELETE Savko. END. FOR EACH Savze USE-INDEX Savze-k1 WHERE Savze.Firma = GVFirma AND Savze.Aufnr = LVAufnr: CREATE Aufze. BUFFER-COPY Savze TO Aufze. DELETE Savze. END. RELEASE Savko. RELEASE Savze. RELEASE SavSpRab. RELEASE SavRabSu. RELEASE SavGebKo. RELEASE SavGKon. RELEASE Aufko. RELEASE Aufze. RELEASE AufSpRab. RELEASE AufRabSu. RELEASE AufGebKo. RELEASE AufGKon. LEAVE. END. END. VStart = ''. QOpen = FALSE. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN /* Now enable the interface if in test mode - otherwise this happens when the object is explicitly initialized from its container. */ RUN dispatch IN THIS-PROCEDURE ('initialize':U). &ENDIF /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects F-Frame-Win _ADM-CREATE-OBJECTS PROCEDURE adm-create-objects : /*------------------------------------------------------------------------------ Purpose: Create handles for all SmartObjects used in this procedure. After SmartObjects are initialized, then SmartLinks are added. Parameters: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available F-Frame-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 ANZEIGE F-Frame-Win PROCEDURE ANZEIGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VAdresse = ''. E_Adresse = ''. AAufnr = 0. F_Aufnr = 0. F_LiefDatum = ?. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = XKnr NO-LOCK NO-ERROR. IF AVAILABLE Adresse THEN VAdresse = Adresse.Anzeig_Br. ELSE VAdresse = '????????'. IF AVAILABLE Savko THEN DO: F_Aufnr = Savko.Aufnr. F_LiefDatum = Savko.Lief_Datum. AAufnr = Savko.Faknr. IF Savko.Adresse[05] <> '' THEN DO: E_Adresse = CHR(10). DO i5 = 1 TO 5: E_Adresse = E_Adresse + Savko.Adresse[i5] + CHR(10). END. END. FIND Tabel USE-INDEX Tabel-k2 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.CodeI = Savko.Fak_Art AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN F_Art = Tabel.Bez1. ELSE F_Art = FILL('?', 20). END. IF E_Adresse = '' THEN DO: E_Adresse = Adresse.Anschrift[05] + CHR(10) + Adresse.Anschrift[06] + CHR(10) + Adresse.Anschrift[07] + CHR(10) + Adresse.Anschrift[08] + CHR(10) + Adresse.Anschrift[09] + CHR(10) + Adresse.Anschrift[10] + CHR(10) + Adresse.Anschrift[11] + CHR(10) + Adresse.Anschrift[12]. END. DISPLAY E_Adresse F_Art F_Aufnr F_LiefDatum WITH FRAME {&FRAME-NAME}. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI F-Frame-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 enable_UI F-Frame-Win _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY F_Start F_LiefDatum F_Art E_Adresse F_Aufnr WITH FRAME F-Main. ENABLE Br_Savko F_Start Btn_Gebinde F_LiefDatum F_Art E_Adresse F_Aufnr Br_Savze RECT-30 RECT-31 WITH FRAME F-Main. {&OPEN-BROWSERS-IN-QUERY-F-Main} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide F-Frame-Win PROCEDURE local-hide : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ LVAufnr = RVAufnr. XVAufnr = RVAufnr. XVKnr = RVKnr. RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':U ) . END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize F-Frame-Win PROCEDURE local-initialize : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DEF VAR cValue AS CHAR NO-UNDO. fAdmin = DYNAMIC-FUNCTION('getAdmin':U) NO-ERROR. GET-KEY-VALUE SECTION 'Grundeinstellungen' KEY 'VerbuchtSort' VALUE cValue. IF cValue = ? THEN cValue = ''. IF cValue = '' THEN cValue = '1'. iSort = INTEGER(cValue) NO-ERROR. F_Start = ''. AufAb = TRUE. Faknr = 0. FakDat = 01/01/0001. Knr = 0. Fak_Art = 0. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . DO WITH FRAME {&FRAME-NAME}: CASE iSort: WHEN 1 THEN F_Start:LABEL = 'Fakturanummer'. WHEN 2 THEN F_Start:LABEL = 'Kundennummer' . WHEN 3 THEN F_Start:LABEL = 'Auftragsart' . WHEN 4 THEN F_Start:LABEL = 'Fakturadatum' . END CASE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view F-Frame-Win PROCEDURE local-view : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RVAufnr = XVAufnr. RVKnr = XVKnr. VStart = ''. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) . RUN OPEN_Savko. IF Vorhanden THEN DO WITH FRAME {&FRAME-NAME}: APPLY 'VALUE-CHANGED' TO Br_Savko. APPLY 'ENTRY' TO Br_Savko. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_Savko F-Frame-Win PROCEDURE OPEN_Savko : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cSelect AS CHAR NO-UNDO. IF QOpen THEN QUERY Br_Savko:QUERY-CLOSE() NO-ERROR. QOpen = FALSE. Vorhanden = FALSE. IF AufAb THEN DO: IF Faknr = 999999 THEN Faknr = 0. IF Knr = 999999 THEN Knr = 0. IF Fak_Art = 99 THEN Fak_Art = 0. IF Aufnr = 999999 THEN Aufnr = 0. IF FakDat = 12/31/9999 THEN FakDat = 01/01/0001. END. ELSE DO: IF Faknr = 0 THEN Faknr = 999999. IF Knr = 0 THEN Knr = 999999. IF Fak_Art = 0 THEN Fak_Art = 99. IF Aufnr = 0 THEN Aufnr = 999999. IF FakDat = 01/01/0001 THEN FakDat = 12/31/9999. END. DO WITH FRAME {&FRAME-NAME}: AAufnr :COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 15. Savko.Knr :COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 15. Savko.Fak_Art :COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 15. Savko.Fak_Datum:COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 15. Savko.Aufnr :COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 15. CASE iSort: WHEN 1 THEN AAufnr :COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. WHEN 2 THEN Savko.Knr :COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. WHEN 3 THEN Savko.Fak_Art :COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. WHEN 4 THEN Savko.Fak_Datum:COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. WHEN 5 THEN Savko.Aufnr :COLUMN-BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. END CASE. END. cSelect = 'FOR EACH Savko '. IF AufAb THEN DO: CASE iSort: WHEN 1 THEN cSelect = cSelect + 'USE-INDEX Savko-k9 '. WHEN 2 THEN cSelect = cSelect + 'USE-INDEX Savko-k10 '. WHEN 3 THEN cSelect = cSelect + 'USE-INDEX Savko-k7 '. WHEN 4 THEN cSelect = cSelect + 'USE-INDEX Savko-k8 '. WHEN 5 THEN cSelect = cSelect + 'USE-INDEX Savko-k1 '. END CASE. END. ELSE DO: CASE iSort: WHEN 1 THEN cSelect = cSelect + 'USE-INDEX Savko-k11 '. WHEN 2 THEN cSelect = cSelect + 'USE-INDEX Savko-k12 '. WHEN 3 THEN cSelect = cSelect + 'USE-INDEX Savko-k13 '. WHEN 4 THEN cSelect = cSelect + 'USE-INDEX Savko-k14 '. WHEN 5 THEN cSelect = cSelect + 'USE-INDEX Savko-k11 '. END CASE. END. cSelect = cSelect + 'WHERE Savko.Firma = "' + GVFirma + '" '. IF AufAb THEN DO: CASE iSort: WHEN 1 THEN cSelect = cSelect + 'AND Savko.Faknr >= ' + STRING(Faknr) + ' NO-LOCK '. WHEN 2 THEN cSelect = cSelect + 'AND Savko.Knr >= ' + STRING(Knr) + ' NO-LOCK '. WHEN 3 THEN cSelect = cSelect + 'AND Savko.Fak_Art >= ' + STRING(Fak_Art) + ' NO-LOCK '. WHEN 4 THEN cSelect = cSelect + 'AND Savko.Fak_Datum >= ' + STRING(FakDat) + ' NO-LOCK '. WHEN 5 THEN cSelect = cSelect + 'AND Savko.Aufnr >= ' + STRING(Aufnr) + ' NO-LOCK '. END CASE. END. ELSE DO: CASE iSort: WHEN 1 THEN cSelect = cSelect + 'AND Savko.Faknr <= ' + STRING(Faknr) + ' NO-LOCK '. WHEN 2 THEN cSelect = cSelect + 'AND Savko.Knr <= ' + STRING(Knr) + ' NO-LOCK '. WHEN 3 THEN cSelect = cSelect + 'AND Savko.Fak_Art <= ' + STRING(Fak_Art) + ' NO-LOCK '. WHEN 4 THEN cSelect = cSelect + 'AND Savko.Fak_Datum <= ' + STRING(FakDat) + ' NO-LOCK '. WHEN 5 THEN cSelect = cSelect + 'AND Savko.Aufnr <= ' + STRING(Aufnr) + ' NO-LOCK '. END CASE. END. QUERY Br_Savko:QUERY-PREPARE(cSelect). QUERY Br_Savko:QUERY-OPEN() NO-ERROR. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: CLOSE QUERY Br_Savze. IF NUM-RESULTS('Br_Savko':U) = ? THEN LEAVE. IF NUM-RESULTS('Br_Savko':U) = 0 THEN LEAVE. Br_Savko:SET-REPOSITIONED-ROW(4, 'CONDITIONAL':U). Vorhanden = TRUE. QOpen = TRUE. APPLY 'VALUE-CHANGED' TO Br_Savko. APPLY 'ENTRY' TO Br_Savko. LEAVE. END. IF NOT Vorhanden THEN DO: LVAufnr = 0. XVAufnr = 0. XVKnr = 0. XAufnr = 0. XKnr = 0. END. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_Savze F-Frame-Win PROCEDURE OPEN_Savze : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WHILE TRUE: IF NUM-RESULTS('Br_Savze':U) = ? THEN LEAVE. CLOSE QUERY Br_Savze. LEAVE. END. IF NOT AVAILABLE Savko THEN RETURN. OPEN QUERY Br_Savze FOR EACH Savze USE-INDEX Savze-k1 WHERE Savze.Firma = Savko.Firma AND Savze.Aufnr = Savko.Aufnr NO-LOCK. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: Br_Savze:SET-REPOSITIONED-ROW(4, 'CONDITIONAL':U). IF NUM-RESULTS('Br_Savze':U) = ? THEN LEAVE. IF NUM-RESULTS('Br_Savze':U) = 0 THEN LEAVE. LEAVE. END. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records F-Frame-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 "SavZe"} {src/adm/template/snd-list.i "Savko"} /* 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 SPEZLOESCHEN F-Frame-Win PROCEDURE SPEZLOESCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR fNeuFnr AS LOG INIT FALSE NO-UNDO. DEF VAR fNochmals AS LOG INIT TRUE NO-UNDO. DEF VAR lSpez AS LOG INIT TRUE NO-UNDO. DEF VAR cDateiName AS CHAR NO-UNDO. DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR fOK AS LOG NO-UNDO. DEF VAR iKnr AS INT NO-UNDO. DEF VAR dvonFakdat AS DATE FORMAT '99.99.9999' NO-UNDO. DEF VAR dbisFakdat AS DATE FORMAT '99.99.9999' NO-UNDO. iKnr = 0. RUN g-spezloeschen.w ( INPUT-OUTPUT iKnr, INPUT-OUTPUT dvonFakDat, INPUT-OUTPUT dbisFakDat). IF iKnr = 0 THEN RETURN NO-APPLY. FOR EACH Savko NO-LOCK WHERE Savko.Firma = Firma AND Savko.Knr = iKnr AND Savko.Fak_Datum >= dvonFakDat AND Savko.Fak_Datum <= dbisFakDat: SESSION:SET-WAIT-STATE('GENERAL'). RUN "v8/loeschen_rechnung.p" ( Savko.Firma, Savko.Knr, Savko.Faknr, fNochmals, fNeuFnr, lSpez ). SESSION:SET-WAIT-STATE(''). END. RUN OPEN_Savko. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed F-Frame-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: WHEN 'browser_entry' THEN DO: APPLY 'ENTRY' TO BROWSE Br_Savko. RETURN NO-APPLY. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION checkMSSQL F-Frame-Win FUNCTION checkMSSQL RETURNS LOGICAL ( ipFaknr AS INT ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEF VAR ObjRecordSet AS COM-HANDLE NO-UNDO. DEF VAR ObjConnection AS COM-HANDLE NO-UNDO. DEF VAR ObjCommand AS COM-HANDLE NO-UNDO. DEF VAR ODBC-DSN AS CHAR NO-UNDO. DEF VAR ODBC-SERVER AS CHAR NO-UNDO. DEF VAR ODBC-USERID AS CHAR NO-UNDO. DEF VAR ODBC-PASSWD AS CHAR NO-UNDO. DEF VAR ODBC-QUERY AS CHAR NO-UNDO. DEF VAR ODBC-STATUS AS CHAR NO-UNDO. DEF VAR ODBC-RECCOUNT AS INT NO-UNDO. DEF VAR ODBC-NULL AS CHAR NO-UNDO. DEF VAR ODBC-CURSOR AS INT NO-UNDO. DEF VAR cConnCommand AS CHAR NO-UNDO. DEF VAR cDSN AS CHAR NO-UNDO. DEF VAR cServer AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR fOK AS LOG INIT FALSE NO-UNDO. Create "ADODB.Connection" ObjConnection NO-ERROR. Create "ADODB.RecordSet" ObjRecordSet NO-ERROR. Create "ADODB.Command" ObjCommand NO-ERROR. GET-KEY-VALUE SECTION 'Grundeinstellungen' KEY 'SQLServer' VALUE cServer. IF cServer = ? THEN RETURN fOK. IF cServer = '' THEN RETURN fOK. GET-KEY-VALUE SECTION 'Grundeinstellungen' KEY 'SQLDSN' VALUE cDSN. IF cDSN = ? THEN RETURN fOK. IF cDSN = '' THEN RETURN fOK. ASSIGN ODBC-STATUS = '' ODBC-NULL = '' ODBC-DSN = cDSN ODBC-SERVER = cServer ODBC-USERID = 'gebtools' ODBC-PASSWD = 'gebtools' ODBC-QUERY = ''. cConnCommand = 'data source=' + ODBC-DSN + ';server=' + ODBC-SERVER . ObjConnection:Open ( cConnCommand, ODBC-USERID, ODBC-PASSWD, 0 ) NO-ERROR. If ( ERROR-STATUS:NUM-MESSAGES > 0 ) THEN DO: ii = ERROR-STATUS:NUM-MESSAGES. ODBC-STATUS = "Error: keine Verbindung zu Datenserver " + cConnCommand. MESSAGE ODBC-STATUS VIEW-AS ALERT-BOX. DO ix = 1 TO ii: MESSAGE 'Fehlerbeschreibung:' ERROR-STATUS:GET-MESSAGE(ix) VIEW-AS ALERT-BOX. END. RETURN fOK. END. DO WHILE TRUE: ASSIGN ObjCommand:ActiveConnection = ObjConnection ObjCommand:CommandType = 1 /* adCmdText */ ObjConnection:CursorLocation = 3 /* adUseClient */ ObjRecordSet:CursorType = 3 /* adOpenStatic */. ODBC-QUERY = "SELECT OpId " + "FROM [Huber].[dbo].[Beleg] WHERE OpId = '" + TRIM(STRING(ipFaknr,'>>>>>>>>')) + "' ". ASSIGN ObjCommand:CommandText = ODBC-QUERY ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, '', 32 ) ODBC-RECCOUNT = ObjRecordSet:RecordCount NO-ERROR. IF ODBC-RECCOUNT = ? THEN ODBC-RECCOUNT = 0. IF ODBC-RECCOUNT = 0 THEN fOK = TRUE . LEAVE. END. ObjConnection:Close NO-ERROR. RELEASE OBJECT ObjConnection NO-ERROR. RELEASE OBJECT ObjCommand NO-ERROR. RELEASE OBJECT ObjRecordSet NO-ERROR. RETURN fOK. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getAuftraege F-Frame-Win FUNCTION getAuftraege RETURNS LOGICAL ( htAuftraege AS HANDLE ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEF VAR i1 AS INT NO-UNDO. DEF VAR i2 AS INT NO-UNDO. DO WITH FRAME {&FRAME-NAME}: i1 = {&BROWSE-NAME}:NUM-SELECTED-ROWS. DO i2 = 1 TO i1: {&BROWSE-NAME}:FETCH-SELECTED-ROW(i2) NO-ERROR. htAuftraege:BUFFER-CREATE(). ASSIGN htAuftraege::Aufnr = Savko.Aufnr htAuftraege::Faknr = Savko.Faknr htAuftraege::Knr = Savko.Knr htAuftraege::lOfferte = Savko.AlsOfferte htAuftraege::Fak_Art = Savko.Fak_Art htAuftraege::Auf_Sta = Savko.Auf_Sta htAuftraege::iRecid = RECID(Savko). END. END. RETURN FALSE. /* Function return value. */ END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME