&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 --- */ DEF VAR ProgName AS CHAR NO-UNDO. DEF VAR SectionName AS CHAR NO-UNDO. DEF VAR Offen AS LOG NO-UNDO INIT FALSE. DEF VAR Firma AS CHAR NO-UNDO. DEF VAR AdFirma AS CHAR NO-UNDO. DEF VAR hData AS HANDLE NO-UNDO. DEF VAR hContainer AS HANDLE NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR wordAppl AS COM-HANDLE NO-UNDO. DEF WORKFILE WBrowser FIELD Pos AS INT FIELD Feld AS CHAR FIELD Breit AS DEC FIELD fAktiv AS LOG FIELD PosAkt AS INT FIELD BreitAkt AS DEC FIELD hCol AS HANDLE. /* _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-debop.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.Fakdat ~ rowObject.Faellig rowObject.Kte rowObject.Fakbetr_FRW rowObject.Zahdat ~ rowObject.Zahbetr_FRW rowObject.Skonto_FRW rowObject.Saldo_FRW ~ rowObject.FRW rowObject.Kurs &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 /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Menu Definitions */ DEFINE MENU POPUP-MENU-br_table MENU-ITEM m_Kontoauszug LABEL "Kontoauszug" MENU-ITEM m_Mahnung_1 LABEL "1. Mahnung" MENU-ITEM m_Mahnung_2 LABEL "2. Mahnung" MENU-ITEM m_Mahnung_3 LABEL "3. Mahnung" MENU-ITEM m_Suchen_nach_Fakturanummer LABEL "Suchen nach Fakturanummer". /* Definitions of the field level widgets */ DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 133 BY 12.38. /* 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 "zzzzz9":U rowObject.Fakdat COLUMN-LABEL "Datum" FORMAT "99.99.9999":U rowObject.Faellig COLUMN-LABEL "Fällig" FORMAT "99.99.9999":U rowObject.Kte FORMAT "x(04)":U rowObject.Fakbetr_FRW COLUMN-LABEL "Betrag Frw" FORMAT "zzz,zzz,zz9.99-":U rowObject.Zahdat COLUMN-LABEL "ZahlDatum" FORMAT "99.99.9999":U rowObject.Zahbetr_FRW COLUMN-LABEL "bezahlt Frw" FORMAT "zzz,zzz,zz9.99-":U rowObject.Skonto_FRW COLUMN-LABEL "Skonto Frw" FORMAT "zzz,zzz,zz9.99-":U rowObject.Saldo_FRW COLUMN-LABEL "Saldo Frw" FORMAT "zzz,zzz,zz9.99-":U rowObject.FRW FORMAT "x(03)":U rowObject.Kurs FORMAT "zzz9.9999":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-AUTO-VALIDATE NO-ROW-MARKERS SEPARATORS SIZE 131 BY 11.91 TOOLTIP "Like Mause Doppelklick oder ALT-ENTER zum Detail". /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main br_table AT ROW 1.48 COL 3 RECT-1 AT ROW 1.24 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SCROLLABLE . /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDataBrowser Data Source: "d-debop.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 = 12.86 WIDTH = 136. /* 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 br_table:COLUMN-RESIZABLE IN FRAME F-Main = TRUE br_table:COLUMN-MOVABLE 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" ? ? "integer" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[2] > _.rowObject.Fakdat "rowObject.Fakdat" "Datum" ? "date" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[3] > _.rowObject.Faellig "rowObject.Faellig" "Fällig" ? "date" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] > _.rowObject.Kte "rowObject.Kte" ? ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] > _.rowObject.Fakbetr_FRW "rowObject.Fakbetr_FRW" "Betrag Frw" ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[6] > _.rowObject.Zahdat "rowObject.Zahdat" "ZahlDatum" ? "date" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[7] > _.rowObject.Zahbetr_FRW "rowObject.Zahbetr_FRW" "bezahlt Frw" ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[8] > _.rowObject.Skonto_FRW "rowObject.Skonto_FRW" "Skonto Frw" ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[9] > _.rowObject.Saldo_FRW "rowObject.Saldo_FRW" "Saldo Frw" ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[10] > _.rowObject.FRW "rowObject.FRW" ? ? "character" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[11] > _.rowObject.Kurs "rowObject.Kurs" ? ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _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 ALT-ENTER OF br_table IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: RUN g-debop-detail.w ( INPUT rowObject.Faknr:SCREEN-VALUE IN BROWSE {&BROWSE-NAME} ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &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 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 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-DBLCLICK OF br_table IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: RUN g-debop-detail.w ( INPUT rowObject.Faknr:SCREEN-VALUE IN BROWSE {&BROWSE-NAME} ). END. 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 RETURN OF br_table IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: PUBLISH 'FAKTURABEZAHLEN' ( INPUT rowObject.Faknr:SCREEN-VALUE IN BROWSE {&BROWSE-NAME} ). END. 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 VALUE-CHANGED OF br_table IN FRAME F-Main DO: {src/adm2/brschnge.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Kontoauszug &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Kontoauszug bTableWin ON CHOOSE OF MENU-ITEM m_Kontoauszug /* Kontoauszug */ DO: SESSION:SET-WAIT-STATE('GENERAL'). RUN MAHNUNG ( INPUT 0 ). SESSION:SET-WAIT-STATE(''). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Mahnung_1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Mahnung_1 bTableWin ON CHOOSE OF MENU-ITEM m_Mahnung_1 /* 1. Mahnung */ DO: SESSION:SET-WAIT-STATE('GENERAL'). RUN MAHNUNG ( INPUT 1 ). SESSION:SET-WAIT-STATE(''). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Mahnung_2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Mahnung_2 bTableWin ON CHOOSE OF MENU-ITEM m_Mahnung_2 /* 2. Mahnung */ DO: SESSION:SET-WAIT-STATE('GENERAL'). RUN MAHNUNG ( INPUT 2 ). SESSION:SET-WAIT-STATE(''). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Mahnung_3 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Mahnung_3 bTableWin ON CHOOSE OF MENU-ITEM m_Mahnung_3 /* 3. Mahnung */ DO: SESSION:SET-WAIT-STATE('GENERAL'). RUN MAHNUNG ( INPUT 3 ). SESSION:SET-WAIT-STATE(''). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Suchen_nach_Fakturanummer &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Suchen_nach_Fakturanummer bTableWin ON CHOOSE OF MENU-ITEM m_Suchen_nach_Fakturanummer /* Suchen nach Fakturanummer */ DO: RUN SUCHEN_FAKTURA. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK bTableWin /* *************************** Main Block *************************** */ SectionName = 'Browser-' + ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.'). ProgName = ''. Firma = DYNAMIC-FUNCTION('getD1Firma':U) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('getAdFirma':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 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 enableObject bTableWin PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR hColumn AS HANDLE NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR Kol AS INT NO-UNDO. DEF VAR Bre AS DEC NO-UNDO. DEF VAR cFelder AS CHAR NO-UNDO. DEF VAR Feld AS CHAR NO-UNDO. DEF VAR Spalte AS CHAR NO-UNDO. DEF VAR Attrib AS CHAR NO-UNDO. DEF VAR hSource AS HANDLE NO-UNDO. GET-KEY-VALUE SECTION SectionName KEY ? VALUE cFelder. IF cFelder = ? THEN cFelder = ''. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: FOR EACH WBrowser: DELETE WBrowser. END. DO i1 = 1 TO NUM-ENTRIES(cFelder, ','): Feld = ENTRY(i1, cFelder, ','). Attrib = '0;0'. GET-KEY-VALUE SECTION SectionName KEY Feld VALUE Attrib. CREATE WBrowser. ASSIGN WBrowser.Pos = INTEGER(ENTRY(1, Attrib, ';')) WBrowser.Feld = Feld WBrowser.Breit = DECIMAL(ENTRY(2, Attrib, ';')) WBrowser.fAktiv = FALSE. IF WBrowser.Pos < 1 THEN WBrowser.Pos = 1. IF WBrowser.Breit < 1 THEN WBrowser.Breit = 1. ASSIGN WBrowser.BreitAkt = WBrowser.Breit WBrowser.PosAkt = WBrowser.Pos. END. i1 = 0. hColumn = {&BROWSE-NAME}:FIRST-COLUMN. DO WHILE VALID-HANDLE(hColumn): i1 = i1 + 1. FIND FIRST WBrowser WHERE WBrowser.Feld = hColumn:NAME NO-ERROR. IF AVAILABLE WBrowser THEN DO: ASSIGN WBrowser.PosAkt = i1 WBrowser.BreitAkt = hColumn:WIDTH WBrowser.fAktiv = TRUE. END. ELSE DO: CREATE WBrowser. ASSIGN WBrowser.Pos = i1 WBrowser.Feld = hColumn:NAME WBrowser.Breit = hColumn:WIDTH WBrowser.fAktiv = TRUE WBrowser.PosAkt = WBrowser.Pos WBrowser.BreitAkt = WBrowser.Breit. END. IF hColumn:VISIBLE THEN WBrowser.hCol = hColumn. hColumn = hColumn:NEXT-COLUMN. END. Kol = 0. FOR EACH WBrowser BY Pos BY PosAkt: IF NOT WBrowser.fAktiv THEN DO: PUT-KEY-VALUE SECTION SectionName KEY WBrowser.Feld VALUE '' NO-ERROR. DELETE WBrowser. NEXT. END. Kol = Kol + 1. WBrowser.Pos = Kol. IF WBrowser.Pos = WBrowser.PosAkt AND WBrowser.Breit = WBrowser.BreitAkt THEN NEXT. i1 = 0. Bre = WBrowser.Breit. hColumn = {&BROWSE-NAME}:FIRST-COLUMN. BROWSER: DO WHILE VALID-HANDLE(hColumn): i1 = i1 + 1. DO WHILE TRUE: IF hColumn:NAME <> WBrowser.Feld THEN LEAVE. ASSIGN WBrowser.PosAkt = WBrowser.Pos WBrowser.BreitAkt = WBrowser.Breit. IF hColumn:WIDTH <> Bre THEN hColumn:WIDTH = Bre. IF i1 <> Kol THEN {&BROWSE-NAME}:MOVE-COLUMN(i1, Kol). LEAVE BROWSER. END. hColumn = hColumn:NEXT-COLUMN. END. END. LEAVE. END. RUN SUPER. DEF VAR iDown AS INT NO-UNDO. DEF VAR Ja AS LOG NO-UNDO. DO WITH FRAME {&FRAME-NAME}: iDown = {&BROWSE-NAME}:DOWN / 2. Ja = {&BROWSE-NAME}:SET-REPOSITIONED-ROW(iDown, "CONDITIONAL"). END. PUBLISH 'GETPROG' ( OUTPUT ProgName ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRYBROWSE bTableWin PROCEDURE ENTRYBROWSE : /*------------------------------------------------------------------------------ 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 hideObject bTableWin PROCEDURE hideObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR hColumn AS HANDLE NO-UNDO. DEF VAR fAttrib AS CHAR NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR Feld AS CHAR NO-UNDO. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF NOT Offen THEN LEAVE. hColumn = {&BROWSE-NAME}:FIRST-COLUMN. i1 = 0. DO WHILE VALID-HANDLE(hColumn): i1 = i1 + 1. Feld = hColumn:NAME. DO WHILE TRUE: FIND FIRST WBrowser WHERE WBrowser.Feld = Feld NO-ERROR. IF NOT AVAILABLE WBrowser THEN LEAVE. IF WBrowser.Breit = hColumn:WIDTH AND WBrowser.Pos = i1 THEN LEAVE. fAttrib = STRING(i1) + ';' + STRING(hColumn:WIDTH). PUT-KEY-VALUE SECTION SectionName KEY hColumn:NAME VALUE fAttrib NO-ERROR. LEAVE. END. hColumn = hColumn:NEXT-COLUMN. END. LEAVE. END. RUN SUPER. Offen = FALSE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MAHNUNG bTableWin PROCEDURE MAHNUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipArt AS INT NO-UNDO. DEF VAR iKnr AS INT NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR Saldo AS DEC NO-UNDO. DEF VAR cDatei AS CHAR NO-UNDO. DEF VAR cDokName1 AS CHAR NO-UNDO. DEF VAR cDokName2 AS CHAR NO-UNDO. DEF VAR cPfad AS CHAR NO-UNDO. DEF VAR hMM AS COM-HANDLE NO-UNDO. DEF VAR hDok AS COM-HANDLE NO-UNDO. DEF VAR AnzDok AS INT NO-UNDO. DEF VAR ja AS LOG NO-UNDO. DEF VAR rDebop AS RECID NO-UNDO. IF NOT VALID-HANDLE ( hData ) THEN hData = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR. IF NOT VALID-HANDLE ( hdata ) THEN RETURN NO-APPLY. rDebop = DYNAMIC-FUNCTION('getCurrentRecid':U IN hData ) NO-ERROR. FIND Debop NO-LOCK WHERE RECID(Debop) = rDebop NO-ERROR. IF NOT AVAILABLE Debop THEN RETURN NO-APPLY. iKnr = Debop.Knr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = iKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Adresse THEN RETURN NO-APPLY. cDaten = SESSION:TEMP-DIR + 'Mahnung' + STRING(ipArt) + '.txt'. OUTPUT TO VALUE(cDaten) NO-ECHO NO-MAP NO-CONVERT. PUT CONTROL 'Unit;Knr;Suchbe;Firma1;Name;Briefanrede;' 'Anschrift_01;Anschrift_02;Anschrift_03;' 'Anschrift_04;Anschrift_05;Anschrift_06;' 'Anschrift_07;Anschrift_08;Anschrift_09;' 'Anschrift_10;Anschrift_11;Anschrift_12;' 'Beruecksichtig;Datum;'. DO ix = 1 TO 10: PUT CONTROL 'Faknr_' STRING(ix,'99') ';' 'Fak_Datum_' STRING(ix,'99') ';' 'Fak_Faellig_' STRING(ix,'99') ';' 'Fak_Waeh_' STRING(ix,'99') ';' 'Fak_Saldo_' STRING(ix,'99') ';'. END. PUT CONTROL 'Total' CHR(10). PUT CONTROL Firma ';' STRING(iKnr,'999999') ';' Adresse.Suchbe ';' Adresse.Firma1 ';' Adresse.Name ';' Adresse.BriefAnr ';' Adresse.Anschrift[01] ';' Adresse.Anschrift[02] ';' Adresse.Anschrift[03] ';' Adresse.Anschrift[04] ';' Adresse.Anschrift[05] ';' Adresse.Anschrift[06] ';' Adresse.Anschrift[07] ';' Adresse.Anschrift[08] ';' Adresse.Anschrift[09] ';' Adresse.Anschrift[10] ';' Adresse.Anschrift[11] ';' Adresse.Anschrift[12] ';' STRING(TODAY,'99.99.9999') ';' STRING(TODAY,'99.99.9999') ';'. ix = 0. Saldo = 0. FOR EACH Debop USE-INDEX Debop-k1 WHERE Debop.Firma = Firma AND Debop.Knr = iKnr AND Debop.Saldo_Frw <> 0 AND ((ipArt = 0) OR (Debop.Faellig <= TODAY)) NO-LOCK: ix = ix + 1. Saldo = Saldo + Debop.Saldo_Frw. IF ix > 10 THEN NEXT. PUT CONTROL STRING(Debop.Faknr ,'9999999') ';' STRING(Debop.FakDat ,'99.99.9999') ';' STRING(Debop.Faellig,'99.99.9999') ';' Debop.Frw ';' REPLACE(TRIM(STRING(Debop.Saldo_Frw,'->>>,>>>,>>9.99')), ",", "'") ';'. END. IF ix > 10 THEN DO: MESSAGE 'Dieser Kunde hat ber 10 (' ix ') offene Posten' VIEW-AS ALERT-BOX. END. DO ix = ix + 1 TO 10: PUT CONTROL ';;;;;'. END. PUT CONTROL REPLACE(TRIM(STRING(Saldo,'->>>,>>>,>>9.99')), ",", "'"). OUTPUT CLOSE. /* FILE-INFO:FILE-NAME = 'vorlagen'. */ /* cPfad = FILE-INFO:FULL-PATHNAME + '\Mahnung\' + Firma. */ /* */ cDatei = 'Mahnung_' + STRING(ipArt,'9') + '_' + STRING(Adresse.Sprcd,'99') + ".dot". cDatei = cDatei + CHR(01) + cDatei. RUN CREATEDATEI ( INPUT cDatei ). cDatei = RETURN-VALUE. IF cDatei BEGINS 'ERROR' THEN RETURN NO-APPLY. wordAppl = DYNAMIC-FUNCTION('CREATEWORD':U) NO-ERROR. wordAppl:VISIBLE = TRUE. wordAppl:Documents:Add (cDatei,,). cDokName1 = wordAppl:ActiveDocument:Name. IF VALID-HANDLE(hMM) THEN RELEASE OBJECT hMM NO-ERROR. hMM = wordAppl:ActiveDocument:MailMerge. hMM:OpenDataSource ( cDaten ). hMM:Destination = 0. hMM:SuppressBlankLines = TRUE. hMM:EXECUTE(). AnzDok = WordAppl:Documents:Count(). DO ix = 1 TO AnzDok: hDok = wordAppl:Windows:ITEM(ix). IF NOT VALID-HANDLE(hDok) THEN NEXT. hDok:Activate(). IF wordAppl:ActiveDocument:Name <> cDokName1 THEN NEXT. WordAppl:ActiveDocument:Close(FALSE). LEAVE. END. /* AnzDok = WordAppl:Documents:Count(). DO ix = 1 TO AnzDok: hDok = wordAppl:Windows:ITEM(ix). IF NOT VALID-HANDLE(hDok) THEN NEXT. hDok:Activate(). IF wordAppl:ActiveDocument:Name <> cDokName2 THEN NEXT. LEAVE. END. */ SESSION:SET-WAIT-STATE(''). MESSAGE 'Wollen Sie das Dokument sichern? ' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE ja. IF ja THEN DO: cDokName2 = cPfad + '\' + SUBSTRING(STRING(YEAR(TODAY),'9999'),03,02) + '-' + SUBSTRING(STRING(iKnr,'999999'),03,04) + '-99-06-' + STRING(YEAR (TODAY),'9999') + STRING(MONTH(TODAY),'99') + STRING(DAY (TODAY),'99') + '.doc'. wordAppl:ActiveDocument:SaveAs(cDokName2). END. IF VALID-HANDLE(hMM) THEN RELEASE OBJECT hMM NO-ERROR. RELEASE OBJECT wordAppl. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUCHEN_FAKTURA bTableWin PROCEDURE SUCHEN_FAKTURA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cFaknr AS CHAR NO-UNDO. DEF VAR iFaknr AS INT NO-UNDO. RUN 'g-einlesen-wert.w'(INPUT 'Fakturanummer', OUTPUT cFaknr). iFaknr = 0. iFaknr = INTEGER(cFaknr) NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: MESSAGE 'ungültige Fakturanummer' VIEW-AS ALERT-BOX INFORMATION. RETURN NO-APPLY. END. IF iFaknr = 0 THEN RETURN NO-APPLY. FIND FIRST Debop NO-LOCK USE-INDEX Debop-k1 WHERE Debop.Firma = Firma AND Debop.Faknr = iFaknr NO-ERROR. IF NOT AVAILABLE Debop THEN DO: DYNAMIC-FUNCTION('FEHLER', INPUT 0402) NO-ERROR. RETURN NO-APPLY. END. FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Debop.Knr. PUBLISH 'REPOSADRESSEOP' ( RECID(Adresse) ). PUBLISH 'REPOSDEBOP' ( RECID(Debop) ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject bTableWin PROCEDURE viewObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. Offen = TRUE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME