&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS bTableWin /*------------------------------------------------------------------------ File: adm2\src\browser.w Description: SmartDataBrowser Object Input Parameters: Output Parameters: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEFINE VARIABLE lAdmin AS LOG NO-UNDO. { incl/tmpbrowser.i } { incl/ttdruckparam.i } {src/adm2/widgetprto.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDataBrowser &Scoped-define DB-AWARE no &Scoped-define ADM-SUPPORTED-LINKS TableIO-Target,Data-Target,Update-Source /* Include file with RowObject temp-table definition */ &Scoped-define DATA-FIELD-DEFS "d-savko.i" /* 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 rowObject /* Definitions for BROWSE br_table */ &Scoped-define FIELDS-IN-QUERY-br_table rowObject.Faknr rowObject.Knr ~ rowObject.Kunde rowObject.Fak_Art rowObject.Fak_Datum rowObject.Auf_Tot ~ rowObject.Aufnr rowObject.U_Ref rowObject.Auf_Datum rowObject.Lief_Datum &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table &Scoped-define QUERY-STRING-br_table FOR EACH rowObject NO-LOCK INDEXED-REPOSITION &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH rowObject NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-br_table rowObject &Scoped-define FIRST-TABLE-IN-QUERY-br_table rowObject /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-1 br_table E_Adresse Btn_Drucken ~ Btn_Gebinde &Scoped-Define DISPLAYED-OBJECTS E_Adresse /* 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 bTableWin FUNCTION checkMSSQL RETURNS LOGICAL ( ipFaknr AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setZeilenfarbe bTableWin FUNCTION setZeilenfarbe RETURNS LOGICAL ( ipFarbe AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Menu Definitions */ DEFINE MENU POPUP-MENU-br_table MENU-ITEM X_RECHNUNG_LOESCHEN LABEL "Rechnung löschen/stornieren" MENU-ITEM X_IN_AUFTRAG_ZURUECK LABEL "In Auftrag zurück (von - bis Fak-Datum)". /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Drucken LABEL "Drucken" SIZE 15 BY 1. DEFINE BUTTON Btn_Gebinde LABEL "Gebinde" SIZE 15 BY 1. DEFINE VARIABLE E_Adresse AS CHARACTER VIEW-AS EDITOR SIZE 48 BY 6.67 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 182 BY 11.43. /* Query definitions */ &ANALYZE-SUSPEND DEFINE TEMP-TABLE RowObject NO-UNDO {{&DATA-FIELD-DEFS}} {src/adm2/robjflds.i}. DEFINE QUERY br_table FOR rowObject SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE br_table &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table bTableWin _STRUCTURED QUERY br_table NO-LOCK DISPLAY rowObject.Faknr FORMAT "9999999":U rowObject.Knr FORMAT "999999":U rowObject.Kunde FORMAT "x(60)":U WIDTH 50 rowObject.Fak_Art FORMAT "99":U rowObject.Fak_Datum FORMAT "99.99.9999":U rowObject.Auf_Tot FORMAT "zzz,zzz,zz9.99-":U rowObject.Aufnr FORMAT "9999999":U rowObject.U_Ref FORMAT "x(20)":U WIDTH 10 rowObject.Auf_Datum FORMAT "99.99.9999":U rowObject.Lief_Datum FORMAT "99.99.9999":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-AUTO-VALIDATE NO-ROW-MARKERS SEPARATORS SIZE 128 BY 10.95. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main br_table AT ROW 1.48 COL 3 WIDGET-ID 200 E_Adresse AT ROW 1.57 COL 133.4 NO-LABEL WIDGET-ID 4 NO-TAB-STOP Btn_Drucken AT ROW 10 COL 140 WIDGET-ID 6 Btn_Gebinde AT ROW 10 COL 160 WIDGET-ID 10 RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDataBrowser Data Source: "d-savko.w" Allow: Basic,Browse Frames: 1 Add Fields to: Neither Other Settings: PERSISTENT-ONLY COMPILE */ /* This procedure should always be RUN PERSISTENT. Report the error, */ /* then cleanup and return. */ IF NOT THIS-PROCEDURE:PERSISTENT THEN DO: MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U VIEW-AS ALERT-BOX ERROR BUTTONS OK. RETURN. END. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW bTableWin ASSIGN HEIGHT = 11.91 WIDTH = 184. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB bTableWin /* ************************* Included-Libraries *********************** */ {src/adm2/browser.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW bTableWin NOT-VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE FRAME-NAME Size-to-Fit */ /* BROWSE-TAB br_table RECT-1 F-Main */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. ASSIGN br_table:POPUP-MENU IN FRAME F-Main = MENU POPUP-MENU-br_table:HANDLE. ASSIGN E_Adresse: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_table /* Query rebuild information for BROWSE br_table _TblList = "rowObject" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] > _.rowObject.Faknr "rowObject.Faknr" ? "9999999" "integer" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[2] = _.rowObject.Knr _FldNameList[3] > _.rowObject.Kunde "rowObject.Kunde" ? ? "character" ? ? ? ? ? ? no ? no no "50" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] = _.rowObject.Fak_Art _FldNameList[5] = _.rowObject.Fak_Datum _FldNameList[6] = _.rowObject.Auf_Tot _FldNameList[7] > _.rowObject.Aufnr "rowObject.Aufnr" ? ? "integer" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[8] > _.rowObject.U_Ref "rowObject.U_Ref" ? ? "character" ? ? ? ? ? ? no ? no no "10" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[9] = _.rowObject.Auf_Datum _FldNameList[10] = _.rowObject.Lief_Datum _Query is NOT OPENED */ /* BROWSE br_table */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _Options = "NO-LOCK" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define BROWSE-NAME br_table &Scoped-define SELF-NAME br_table &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON CTRL-END OF br_table IN FRAME F-Main DO: APPLY "END":U TO BROWSE {&BROWSE-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON CTRL-HOME OF br_table IN FRAME F-Main DO: APPLY "HOME":U TO BROWSE {&BROWSE-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON CTRL-P OF br_table IN FRAME F-Main DO: RUN DRUCKEN IN THIS-PROCEDURE. APPLY 'U1'. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON DEFAULT-ACTION OF br_table IN FRAME F-Main DO: {src/adm2/brsdefault.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON END OF br_table IN FRAME F-Main DO: {src/adm2/brsend.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON ENTRY OF br_table IN FRAME F-Main DO: APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON HOME OF br_table IN FRAME F-Main DO: {src/adm2/brshome.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON LEFT-MOUSE-CLICK OF br_table IN FRAME F-Main DO: APPLY 'ENTRY' TO {&BROWSE-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON LEFT-MOUSE-DBLCLICK OF br_table IN FRAME F-Main DO: IF NOT VALID-HANDLE( hFenster ) THEN RETURN NO-APPLY. RUN TOOLBAR IN hFenster ( INPUT 'UPDATE' ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON OFF-END OF br_table IN FRAME F-Main DO: {src/adm2/brsoffnd.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON OFF-HOME OF br_table IN FRAME F-Main DO: {src/adm2/brsoffhm.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON ROW-ENTRY OF br_table IN FRAME F-Main DO: {src/adm2/brsentry.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON ROW-LEAVE OF br_table IN FRAME F-Main DO: {src/adm2/brsleave.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON SCROLL-NOTIFY OF br_table IN FRAME F-Main DO: {src/adm2/brsscrol.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON START-SEARCH OF br_table IN FRAME F-Main DO: { incl/brwstartsearch.i } END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table bTableWin ON VALUE-CHANGED OF br_table IN FRAME F-Main DO: {src/adm2/brschnge.i} RUN ANZEIGEN_ADRESSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Drucken &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Drucken bTableWin ON CHOOSE OF Btn_Drucken IN FRAME F-Main /* Drucken */ DO: RUN DRUCKEN IN THIS-PROCEDURE. APPLY 'U1'. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Gebinde &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Gebinde bTableWin ON CHOOSE OF Btn_Gebinde IN FRAME F-Main /* Gebinde */ DO: RUN GEBINDE IN THIS-PROCEDURE. APPLY 'U1'. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK bTableWin /* *************************** Main Block *************************** */ { incl/brwmainblock.i } { incl/brwinternproc.i } cInstallation = DYNAMIC-FUNCTION ('getInstallation':U) NO-ERROR. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN initializeObject. &ENDIF /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGEN_ADRESSE bTableWin PROCEDURE ANZEIGEN_ADRESSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE lPassant AS LOG NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE BUFFER bSavko FOR Savko . DEFINE BUFFER bAdresse FOR Adresse . DEFINE BUFFER bDebst FOR Debst . DEFINE BUFFER bPassant FOR Passant . E_Adresse:SCREEN-VALUE IN FRAME {&FRAME-NAME} = ''. IF NOT VALID-HANDLE(hDaten) THEN hDaten = DYNAMIC-FUNCTION ('getDataSource':U) NO-ERROR. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN RETURN. FIND bSavko NO-LOCK WHERE RECID(bSavko) = iRecid NO-ERROR. IF NOT AVAILABLE bSavko THEN RETURN. FIND bDebst NO-LOCK WHERE bDebst.Firma = bSavko.Firma AND bDebst.Knr = bSavko.Fak_Knr NO-ERROR. IF bDebst.Passant THEN DO: FIND bPassant NO-LOCK WHERE bPassant.Firma = bSavko.Firma AND bPassant.Knr = bSavko.Fak_Knr AND bPassant.Faknr = bSavko.Faknr NO-ERROR. IF AVAILABLE bPassant THEN DO: DO ii = 1 TO 5: IF bPassant.Adr[ii] = '' THEN NEXT. cString = cString + (IF cString = '' THEN '' ELSE CHR(10)) + bPassant.Adr[ii]. lPassant = TRUE. END. END. END. ELSE DO: DO ii = 1 TO 5: IF bSavko.Adresse[ii] = '' THEN NEXT. cString = cString + (IF cString = '' THEN '' ELSE CHR(10)) + bSavko.Adresse[ii]. lPassant = TRUE. END. END. IF lPassant THEN DO: E_Adresse:SCREEN-VALUE IN FRAME {&FRAME-NAME} = cString. E_Adresse:BGCOLOR = 14. RETURN. END. FIND bAdresse NO-LOCK WHERE bAdresse.Firma = AdFirma AND bAdresse.Knr = bSavko.Knr NO-ERROR. IF NOT AVAILABLE bAdresse THEN RETURN. DO ii = 3 TO 12: cString = cString + (IF ii = 3 THEN '' ELSE CHR(10)) + bAdresse.Anschrift[ii]. END. E_Adresse:SCREEN-VALUE IN FRAME {&FRAME-NAME} = cString. E_Adresse:BGCOLOR = 15. RELEASE bSavko. RELEASE bAdresse. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject bTableWin PROCEDURE destroyObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE hBrowser AS HANDLE NO-UNDO. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser, INPUT Sektion ) NO-ERROR. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI bTableWin _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 DRUCKEN bTableWin PROCEDURE DRUCKEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cUser AS CHARACTER NO-UNDO. DEFINE VARIABLE iVDRecid AS RECID NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE cResult AS CHARACTER NO-UNDO. DEFINE VARIABLE cDruckProgramm AS CHARACTER NO-UNDO. DEFINE VARIABLE lSammFak AS LOG NO-UNDO. DEFINE VARIABLE iRuestArt AS INTEGER NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO. DEFINE VARIABLE cRetVal AS CHARACTER NO-UNDO. DEFINE BUFFER bViperDoc FOR ViperDoc. DEFINE BUFFER bSavko FOR Savko. IF NOT VALID-HANDLE (hDaten) THEN hDaten = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN RETURN. FIND bSavko NO-LOCK WHERE RECID(bSavko) = iRecid. ASSIGN iAufnr = bSavko.Aufnr. EMPTY TEMP-TABLE tParam. CREATE tParam. FIND Steuer NO-LOCK WHERE Steuer.Firma = D1Firma. ASSIGN iRuestArt = Steuer.RuestArt. ASSIGN tParam.cFirma = bSavko.Firma tParam.iRecid = RECID(bSavko) tParam.iAufnr = bSavko.Aufnr tParam.iKnr = bSavko.Knr tParam.iFak_Knr = bSavko.Fak_Knr tParam.iFakArt = bSavko.Fak_Art tParam.iFaknr = bSavko.Faknr tParam.dFakDatum = bSavko.Fak_Datum tParam.iAufSta = bSavko.Auf_Sta tParam.iVerband = bSavko.Ku_Grp tParam.cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) tParam.cDBUser = DYNAMIC-FUNCTION('getDBUser':U) tParam.cWinUser = DYNAMIC-FUNCTION('getSysUser':U) tParam.cInstall = DYNAMIC-FUNCTION('getInstallation':U) tParam.lPreis = TRUE . CASE cInstallation: WHEN 'oswald' THEN DO: IF bSavko.Fak_Art = 30 THEN DO: RUN 'v8/c-p_oswald-sk.w' ( INPUT htParam ). RETURN cRetVal. END. END. END CASE. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = tParam.cFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeI = bSavko.Fak_Art NO-ERROR. tParam.cDokument = Tabel.Bez2. lSammFak = (IF Tabel.Int_3 = 4 THEN TRUE ELSE FALSE). iVDRecid = ?. DO ii = 1 TO 3: CASE ii: WHEN 1 THEN cUser = tParam.cBenutzer. WHEN 2 THEN cUser = tParam.cDBUser. WHEN 3 THEN cUser = tParam.cWinUser. END CASE. FIND FIRST ViperDoc NO-LOCK WHERE ViperDoc.Firma = bSavko.Firma AND ViperDoc.Benutzer = cUser AND ViperDoc.Formular = tParam.cDokument AND ViperDoc.DokArt = bSavko.Ku_Grp NO-ERROR. IF AVAILABLE ViperDoc THEN DO: iVDRecid = RECID(ViperDoc). LEAVE. END. END. DO WHILE iVDREcid = ?: FIND FIRST ViperDoc NO-LOCK WHERE ViperDoc.Firma = bSavko.Firma AND ViperDoc.Formular = tParam.cDokument AND ViperDoc.DokArt = bSavko.Ku_Grp NO-ERROR. IF NOT AVAILABLE ViperDoc THEN DO: MESSAGE 'Es ist keine Drucker-Formular-Definition hinterlegt' VIEW-AS ALERT-BOX ERROR. APPLY 'U1'. RETURN NO-APPLY. END. REPEAT TRANSACTION: CREATE bViperDoc. BUFFER-COPY ViperDoc EXCEPT Benutzer TO bViperDoc ASSIGN bViperDoc.Benutzer = tParam.cBenutzer. iVDRecid = RECID(bViperDoc). RELEASE bViperDoc. RELEASE ViperDoc. LEAVE. END. LEAVE. END. ASSIGN tParam.iVDRecid = iVDRecid tParam.lBatch = FALSE. RELEASE bSavko. RELEASE ViperDoc. RELEASE Tabel. RUN 'g-druck-bestaetigung.w':U ( INPUT-OUTPUT htParam, OUTPUT cResult ). IF cResult <> 'OK' THEN DO: APPLY 'U1'. RETURN NO-APPLY. END. FIND FIRST tParam. cDruckProgramm = SUBSTITUTE('DruckProgramme/&1/Sav_&2', cInstallation, tParam.Programm ). IF cDruckProgramm = ? THEN DO: MESSAGE 'Druckprogramm nicht gefunden' VIEW-AS ALERT-BOX ERROR. APPLY 'U1'. RETURN NO-APPLY. END. RUN VALUE(cDruckProgramm) ( htParam, OUTPUT cResult ). RETURN cResult. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_BROWSE bTableWin PROCEDURE ENTRY_BROWSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ APPLY 'ENTRY' TO {&BROWSE-NAME} IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE bTableWin PROCEDURE GEBINDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO. DEFINE BUFFER bSavko FOR Savko. iRecid = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hDaten ) NO-ERROR. IF iRecid = ? OR iRecid = ? THEN DO: APPLY 'U1'. RETURN NO-APPLY. END. FIND bSavko NO-LOCK WHERE RECID(bSavko) = iRecid NO-ERROR. IF NOT AVAILABLE bSavko THEN DO: APPLY 'U1'. RETURN NO-APPLY. END. iAufnr = bSavko.Aufnr. RUN 'g-savgebko.w' ( INPUT iAufnr ) NO-ERROR. APPLY 'U1'. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject bTableWin PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/brwinitialize.i } lAdmin = DYNAMIC-FUNCTION('getAdmin':U) NO-ERROR. APPLY 'VALUE-CHANGED':U TO hItem_sort. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE IN_AUFTRAG_ZURUECK bTableWin PROCEDURE IN_AUFTRAG_ZURUECK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE fNeuFnr AS LOG INIT FALSE NO-UNDO. DEFINE VARIABLE fNochmals AS LOG INIT TRUE NO-UNDO. DEFINE VARIABLE lSpez AS LOG INIT TRUE NO-UNDO. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO. DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO. DEFINE VARIABLE fOK AS LOG NO-UNDO. DEFINE VARIABLE iKnr AS INTEGER NO-UNDO. DEFINE VARIABLE dvonFakdat AS DATE FORMAT '99.99.9999' NO-UNDO. DEFINE VARIABLE 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. SESSION:SET-WAIT-STATE('GENERAL'). FOR EACH Savko NO-LOCK WHERE Savko.Firma = D1Firma AND Savko.Knr = iKnr AND Savko.Fak_Datum >= dvonFakDat AND Savko.Fak_Datum <= dbisFakDat: RUN "v8/loeschen_rechnung.p" ( Savko.Firma, Savko.Knr, Savko.Faknr, fNochmals, fNeuFnr, lSpez ). END. SESSION:SET-WAIT-STATE(''). DYNAMIC-FUNCTION('openQuery':U IN hDaten ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNUNG_LOESCHEN bTableWin PROCEDURE RECHNUNG_LOESCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO. DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE lOK AS LOG NO-UNDO. DEFINE VARIABLE lNochmals AS LOG INIT FALSE NO-UNDO. DEFINE VARIABLE lNeuFnr AS LOG INIT FALSE NO-UNDO. DEFINE VARIABLE lSpez AS LOG INIT FALSE NO-UNDO. DEFINE BUFFER bSavko FOR Savko. IF NOT lAdmin THEN RETURN NO-APPLY. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND bSavko NO-LOCK WHERE RECID(bSavko) = iRecid. FIND Steuer NO-LOCK WHERE Steuer.Firma = bSavko.Firma NO-ERROR. IF NOT AVAILABLE Steuer THEN RETURN NO-APPLY. IF Steuer.Fwc09 = 'SESAM' THEN DO: lOK = DYNAMIC-FUNCTION('checkMSSQL':U, INPUT bSavko.Faknr ). IF NOT lOK THEN DO: FIND Debop NO-LOCK WHERE Debop.Firma = bSavko.Firma AND Debop.Knr = bSavko.Knr AND Debop.Faknr = bSavko.Faknr NO-ERROR. MESSAGE 'Diese Rechnung ist bereits im SESAM' SKIP 'trotzedem weiterfahren ? ' SKIP VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE lOK. IF NOT lOK THEN RETURN NO-APPLY. END. END. lOK = FALSE. MESSAGE 'Wollen Sie die Rechnung ' bSavko.Faknr ' und eventuelle Zahlungen' SKIP 'komplett stornieren/löschen ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE lOK. IF NOT lOK THEN RETURN NO-APPLY. MESSAGE 'Wollen Sie die Rechnung danach nochmals verbuchen ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE lNochmals. IF lNochmals THEN DO: MESSAGE 'Wollen Sie eine neue Rechnungsnummer zuteilen ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE lNeuFnr. END. IF lNeuFnr THEN DO: MESSAGE 'es wird eine neue Rechnungsnummer zugeteilt' VIEW-AS ALERT-BOX INFORMATION. END. lOK = FALSE. MESSAGE 'Verarbeitung starten ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE lOK. IF NOT lOK THEN RETURN NO-APPLY. SESSION:SET-WAIT-STATE('GENERAL'). RUN "v8/loeschen_rechnung.p" ( bSavko.Firma, bSavko.Knr, bSavko.Faknr, lNochmals, lNeuFnr, lSpez ). DYNAMIC-FUNCTION('openquery':U IN hDaten ) NO-ERROR. SESSION:SET-WAIT-STATE(''). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION checkMSSQL bTableWin FUNCTION checkMSSQL RETURNS LOGICAL ( ipFaknr AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE ObjRecordSet AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE ObjConnection AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE ObjCommand AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE ODBC-DSN AS CHARACTER NO-UNDO. DEFINE VARIABLE ODBC-SERVER AS CHARACTER NO-UNDO. DEFINE VARIABLE ODBC-USERID AS CHARACTER NO-UNDO. DEFINE VARIABLE ODBC-PASSWD AS CHARACTER NO-UNDO. DEFINE VARIABLE ODBC-QUERY AS CHARACTER NO-UNDO. DEFINE VARIABLE ODBC-STATUS AS CHARACTER NO-UNDO. DEFINE VARIABLE ODBC-RECCOUNT AS INTEGER NO-UNDO. DEFINE VARIABLE ODBC-NULL AS CHARACTER NO-UNDO. DEFINE VARIABLE ODBC-CURSOR AS INTEGER NO-UNDO. DEFINE VARIABLE cConnCommand AS CHARACTER NO-UNDO. DEFINE VARIABLE cDSN AS CHARACTER NO-UNDO. DEFINE VARIABLE cServer AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE lOK 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 lOK. IF cServer = '' THEN RETURN lOK. GET-KEY-VALUE SECTION 'Grundeinstellungen' KEY 'SQLDSN' VALUE cDSN. IF cDSN = ? THEN RETURN lOK. IF cDSN = '' THEN RETURN lOK. 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 lOK. 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 lOK = TRUE . LEAVE. END. ObjConnection:Close NO-ERROR. RELEASE OBJECT ObjConnection NO-ERROR. RELEASE OBJECT ObjCommand NO-ERROR. RELEASE OBJECT ObjRecordSet NO-ERROR. RETURN lOK. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setZeilenfarbe bTableWin FUNCTION setZeilenfarbe RETURNS LOGICAL ( ipFarbe AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ { incl/brwsetzeilenfarbe.i } END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME