&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gAuftraegeDrucke &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gAuftraegeDrucke /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* 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 MaxPage AS INTEGER NO-UNDO. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO. DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO. DEFINE VARIABLE VSammFak AS LOG NO-UNDO. DEFINE VARIABLE lFakDat AS LOG INIT TRUE NO-UNDO. DEFINE VARIABLE VRuest AS INTEGER NO-UNDO. DEFINE VARIABLE fok AS LOG NO-UNDO. DEFINE VARIABLE ARecid AS RECID NO-UNDO. DEFINE VARIABLE BRecid AS RECID NO-UNDO. DEFINE VARIABLE CRecid AS RECID NO-UNDO. DEFINE VARIABLE VBesr AS INTEGER NO-UNDO. DEFINE VARIABLE VDokument AS CHARACTER NO-UNDO. DEFINE VARIABLE cBenutzerdaten AS CHARACTER NO-UNDO. DEFINE TEMP-TABLE TAufko FIELD Knr AS INTEGER FIELD Samm_Nr AS INTEGER FIELD Aufnr AS INTEGER FIELD RID AS RECID. DEFINE BUFFER BTabel FOR Tabel. DEFINE BUFFER BAufko FOR Aufko. DEFINE TEMP-TABLE WAufko LIKE Aufko. DEFINE WORKFILE WDrucker FIELD Drucker AS CHARACTER FIELD Schrift AS CHARACTER FIELD TotZZ AS INTEGER FIELD BegZZ AS INTEGER FIELD EndZZ AS INTEGER FIELD AnzKop AS INTEGER FIELD SchOri AS INTEGER FIELD SchKop AS INTEGER FIELD Besr AS INTEGER FIELD SchBesr AS INTEGER FIELD iRecid AS RECID. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDialog &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER DIALOG-BOX &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME gAuftraegeDrucke /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-12 F_VonKnr F_BisKnr F_VonAufnr ~ F_bisAufnr F_VonDatum F_bisDatum F_Fakdat CB_Auftragsart CB_Aufstatus ~ Btn_OK Btn_Cancel &Scoped-Define DISPLAYED-OBJECTS F_VonKnr F_BisKnr F_VonAufnr F_bisAufnr ~ F_VonDatum F_bisDatum F_Fakdat CB_Auftragsart CB_Aufstatus /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_VonKnr F_BisKnr F_VonAufnr F_bisAufnr F_VonDatum ~ F_bisDatum F_Fakdat CB_Auftragsart CB_Aufstatus /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Menu Definitions */ DEFINE MENU POPUP-MENU-gAuftraegeDrucke MENU-ITEM m_OK_ohne_Fakdat LABEL "OK ohne Fakdat". /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel AUTO-END-KEY LABEL "&abbrechen" SIZE 14 BY 1. DEFINE BUTTON Btn_OK LABEL "&Start" SIZE 15 BY 1. DEFINE VARIABLE CB_Aufstatus AS CHARACTER FORMAT "X(256)":U LABEL "Auftragsstatus" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Auftragsart AS CHARACTER FORMAT "X(256)":U LABEL "Auftragsart" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_bisAufnr AS INTEGER FORMAT "999999":U INITIAL 999999 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_bisDatum AS DATE FORMAT "99.99.9999":U LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 999999 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Fakdat AS DATE FORMAT "99.99.9999":U LABEL "Fakturadatum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonAufnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "von - bis Aufnr" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U LABEL "von - bis LS-Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "von - bis Knr" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-12 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 84 BY 9.05. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gAuftraegeDrucke F_VonKnr AT ROW 2 COL 28 COLON-ALIGNED F_BisKnr AT ROW 2 COL 41 COLON-ALIGNED F_VonAufnr AT ROW 3 COL 28 COLON-ALIGNED F_bisAufnr AT ROW 3 COL 41 COLON-ALIGNED F_VonDatum AT ROW 4 COL 28 COLON-ALIGNED F_bisDatum AT ROW 4 COL 46 COLON-ALIGNED F_Fakdat AT ROW 5 COL 28 COLON-ALIGNED CB_Auftragsart AT ROW 6 COL 28 COLON-ALIGNED CB_Aufstatus AT ROW 7 COL 28 COLON-ALIGNED Btn_OK AT ROW 8.52 COL 30.6 Btn_Cancel AT ROW 8.52 COL 55.8 RECT-12 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.22) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Drucken von Aufträgen" CANCEL-BUTTON Btn_Cancel. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDialog Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target Design Page: 1 Other Settings: COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gAuftraegeDrucke /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR DIALOG-BOX gAuftraegeDrucke FRAME-NAME */ ASSIGN FRAME gAuftraegeDrucke:SCROLLABLE = FALSE FRAME gAuftraegeDrucke:HIDDEN = TRUE FRAME gAuftraegeDrucke:POPUP-MENU = MENU POPUP-MENU-gAuftraegeDrucke:HANDLE. /* SETTINGS FOR COMBO-BOX CB_Aufstatus IN FRAME gAuftraegeDrucke 6 */ /* SETTINGS FOR COMBO-BOX CB_Auftragsart IN FRAME gAuftraegeDrucke 6 */ /* SETTINGS FOR FILL-IN F_bisAufnr IN FRAME gAuftraegeDrucke 6 */ /* SETTINGS FOR FILL-IN F_bisDatum IN FRAME gAuftraegeDrucke 6 */ /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME gAuftraegeDrucke 6 */ /* SETTINGS FOR FILL-IN F_Fakdat IN FRAME gAuftraegeDrucke 6 */ /* SETTINGS FOR FILL-IN F_VonAufnr IN FRAME gAuftraegeDrucke 6 */ /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gAuftraegeDrucke 6 */ /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME gAuftraegeDrucke 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gAuftraegeDrucke /* Query rebuild information for DIALOG-BOX gAuftraegeDrucke _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gAuftraegeDrucke */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gAuftraegeDrucke &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gAuftraegeDrucke gAuftraegeDrucke ON END-ERROR OF FRAME gAuftraegeDrucke /* Drucken von Aufträgen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gAuftraegeDrucke gAuftraegeDrucke ON GO OF FRAME gAuftraegeDrucke /* Drucken von Aufträgen */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gAuftraegeDrucke gAuftraegeDrucke ON WINDOW-CLOSE OF FRAME gAuftraegeDrucke /* Drucken von Aufträgen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gAuftraegeDrucke ON CHOOSE OF Btn_Cancel IN FRAME gAuftraegeDrucke /* abbrechen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gAuftraegeDrucke ON CHOOSE OF Btn_OK IN FRAME gAuftraegeDrucke /* Start */ DO: RUN DRUCKEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Aufstatus &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Aufstatus gAuftraegeDrucke ON RETURN OF CB_Aufstatus IN FRAME gAuftraegeDrucke /* Auftragsstatus */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Auftragsart &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Auftragsart gAuftraegeDrucke ON RETURN OF CB_Auftragsart IN FRAME gAuftraegeDrucke /* Auftragsart */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_BisKnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BisKnr gAuftraegeDrucke ON ALT-F OF F_BisKnr IN FRAME gAuftraegeDrucke /* - */ DO: DEFINE VARIABLE iRecid AS RECID NO-UNDO. RUN 'g-suchen-adresse.w':U ( 'AUF;', OUTPUT iRecid ). IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid. SELF:SCREEN-VALUE = STRING(Adresse.Knr). APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_VonKnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VonKnr gAuftraegeDrucke ON ALT-F OF F_VonKnr IN FRAME gAuftraegeDrucke /* von - bis Knr */ DO: DEFINE VARIABLE iRecid AS RECID NO-UNDO. RUN 'g-suchen-adresse.w':U ( 'AUF;', OUTPUT iRecid ). IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid. SELF:SCREEN-VALUE = STRING(Adresse.Knr). F_BisKnr:SCREEN-VALUE = STRING(Adresse.Knr). APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_OK_ohne_Fakdat &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_OK_ohne_Fakdat gAuftraegeDrucke ON CHOOSE OF MENU-ITEM m_OK_ohne_Fakdat /* OK ohne Fakdat */ DO: lFakDat = FALSE. RUN DRUCKEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gAuftraegeDrucke /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. SESSION:DATA-ENTRY-RETURN = TRUE. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN ENDE. RETURN NO-APPLY. END. /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gAuftraegeDrucke _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 disable_UI gAuftraegeDrucke _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 gAuftraegeDrucke. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN gAuftraegeDrucke PROCEDURE DRUCKEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE VProgname AS CHARACTER NO-UNDO. DEFINE VARIABLE VListnr AS INTEGER NO-UNDO. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. DEFINE VARIABLE XDateiName AS CHARACTER NO-UNDO. DEFINE VARIABLE VSamm_Nr AS INTEGER NO-UNDO. DEFINE VARIABLE Schacht AS INTEGER NO-UNDO. DEFINE VARIABLE Fakart AS INTEGER NO-UNDO. DEFINE VARIABLE Dokart AS INTEGER NO-UNDO. DEFINE VARIABLE AufSta AS INTEGER NO-UNDO. DEFINE VARIABLE DruckProgramm AS CHARACTER NO-UNDO. DEFINE VARIABLE VSammFak AS LOG NO-UNDO. DEFINE VARIABLE cUSERID AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF F_vonKnr = 0 AND F_bisKnr = 0 THEN F_bisKnr = 9999. IF F_vonKnr > F_bisKnr THEN F_bisKnr = F_vonKnr. IF F_vonAufnr = 0 AND F_bisAufnr = 0 THEN F_bisAufnr = 9999. IF F_vonAufnr > F_bisAufnr THEN F_bisAufnr = F_vonAufnr. cUSERID = DYNAMIC-FUNCTION('getDBUser') NO-ERROR. DISPLAY {&List-6}. IF F_vonDatum = ? THEN DO: MESSAGE 'Datum ungültig' VIEW-AS ALERT-BOX. APPLY 'ENTRY' TO F_vonDatum. RETURN NO-APPLY. END. IF F_bisDatum = ? THEN DO: MESSAGE 'Datum ungültig' VIEW-AS ALERT-BOX. APPLY 'ENTRY' TO F_bisDatum. RETURN NO-APPLY. END. IF lFakDat THEN DO: IF F_Fakdat = ? OR F_Fakdat < (TODAY - 30) OR F_Fakdat > (TODAY + 10) THEN DO: MESSAGE 'Rechnungsdatum ist ungültig' VIEW-AS ALERT-BOX. APPLY 'ENTRY' TO F_Fakdat. RETURN NO-APPLY. END. END. IF CB_Auftragsart:SCREEN-VALUE = '000000' THEN DO: MESSAGE 'bitte Auftragsart wählen' VIEW-AS ALERT-BOX ERROR. APPLY 'ENTRY' TO CB_Auftragsart. RETURN NO-APPLY. END. Fakart = INTEGER(CB_Auftragsart:SCREEN-VALUE). Aufsta = INTEGER(CB_AufStatus :SCREEN-VALUE). FIND FIRST Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = Firma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeI = FakArt NO-ERROR. DokArt = Tabel.Int_3. END. VSammFak = (IF DokArt = 4 THEN TRUE ELSE FALSE). EMPTY TEMP-TABLE WAufko. EMPTY TEMP-TABLE tAufko. FIND FIRST WDrucker NO-ERROR. IF NOT AVAILABLE WDrucker THEN CREATE WDrucker. FIND Steuer WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. XDateiName = Steuer.Fwc10. FIND FIRST Aufko NO-LOCK USE-INDEX Aufko-k5 WHERE Aufko.Firma = Firma AND Aufko.Fak_Art = Fakart AND Aufko.Auf_Sta = AufSta AND Aufko.Knr >= F_vonKnr AND Aufko.Knr <= F_bisKnr AND Aufko.Aufnr >= F_vonAufnr AND Aufko.Aufnr <= F_bisAufnr AND Aufko.Lief_Datum >= F_vonDatum AND Aufko.Lief_Datum <= F_bisDatum NO-ERROR. IF NOT AVAILABLE Aufko THEN DO: MESSAGE 'Keine Auftragsdokumente zum Drucken mit diesen Parametern' VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. CREATE WAufko. BUFFER-COPY Aufko TO WAufko. DO WHILE TRUE: DruckProgramm = 'v8/c-p_' + XDateiName + '.r'. DruckProgramm = SEARCH(DruckProgramm). IF DruckProgramm <> ? THEN LEAVE. DruckProgramm = 'v8/c-p_' + XDateiName + '.w'. DruckProgramm = SEARCH(DruckProgramm). IF DruckProgramm <> ? THEN LEAVE. DruckProgramm = 'd-p_' + XDateiName + '.r'. DruckProgramm = SEARCH(DruckProgramm). IF DruckProgramm <> ? THEN LEAVE. DruckProgramm = 'd-p_' + XDateiName + '.w'. DruckProgramm = SEARCH(DruckProgramm). IF DruckProgramm <> ? THEN LEAVE. DruckProgramm = 'v8/c-p_aufdrucken.r'. DruckProgramm = SEARCH(DruckProgramm). IF DruckProgramm <> ? THEN LEAVE. DruckProgramm = 'v8/c-p_aufdrucken.w'. DruckProgramm = SEARCH(DruckProgramm). IF DruckProgramm <> ? THEN LEAVE. LEAVE. END. IF DruckProgramm = ? THEN RETURN NO-APPLY. RUN LESEN_AUFKO_TABELLE. IF NOT fok THEN DO: MESSAGE 'Für dieses Formular wurde kein Drucker zugeteilt' VIEW-AS ALERT-BOX. RETURN NO-APPLY. END. FOR EACH Aufko NO-LOCK USE-INDEX Aufko-k5 WHERE Aufko.Firma = Firma AND Aufko.Fak_Art = Fakart AND Aufko.Auf_Sta = Aufsta AND Aufko.Fak_Knr >= F_VonKnr AND Aufko.Fak_Knr <= F_bisKnr AND Aufko.Lief_Datum >= F_VonDatum AND Aufko.Lief_Datum <= F_BisDatum AND Aufko.Aufnr >= F_vonAufnr AND Aufko.Aufnr <= F_bisAufnr : CREATE tAufko. ASSIGN tAufko.Knr = Aufko.Fak_Knr tAufko.Samm_Nr = Aufko.Samm_Nr tAufko.Aufnr = Aufko.Aufnr tAufko.RID = RECID(Aufko). IF tAufko.Samm_Nr = 0 THEN tAufko.Samm_Nr = Aufko.Aufnr. END. FOR EACH tAufko BREAK BY tAufko.Knr BY tAufko.Samm_Nr BY tAufko.Aufnr : IF lFakDat THEN DO: REPEAT TRANSACTION: FIND Aufko WHERE RECID(Aufko) = tAufko.RID. Aufko.Fak_Datum = F_FakDat. RELEASE Aufko. LEAVE. END. END. IF FIRST-OF ( tAufko.Samm_Nr ) THEN NEXT. DELETE tAufko. END. DO WITH FRAME {&FRAME-NAME}: Btn_OK :SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. END. FOR EACH tAufko BY tAufko.Knr: DO WHILE VSammFak: VSamm_Nr = 0. /* Sammelrechnungen ausserhalb des Datums neue Sammelnummer geben */ FOR EACH Aufko USE-INDEX Aufko-k5 WHERE Aufko.Firma = Firma AND Aufko.Fak_Art = Fakart AND Aufko.Samm_Nr = tAufko.Samm_Nr AND Aufko.Fak_Knr = tAufko.Knr AND Aufko.Lief_Datum > F_bisDatum : IF VSamm_Nr = 0 THEN DO: RUN "v8/steunr.p" ( INPUT 5, OUTPUT VSamm_Nr ). END. REPEAT TRANSACTION: FIND bAufko WHERE RECID(bAufko) = RECID(Aufko). ASSIGN bAufko.Samm_Nr = VSamm_Nr bAufko.Gedruckt = FALSE bAufko.Faknr = 0. RELEASE bAufko. LEAVE. END. END. LEAVE. END. CRecid = tAufko.RID. VRuest = 0. FIND Aufko NO-LOCK WHERE RECID(Aufko) = tAufko.RID. FIND FIRST WAufko. BUFFER-COPY Aufko TO WAufko. RUN LESEN_AUFKO_TABELLE. IF NOT fok THEN NEXT. REPEAT TRANSACTION: VProgname = TRIM(cUSERID) + '!AUFTRAG'. FIND FIRST Listen USE-INDEX Listen-k1 WHERE Listen.Firma = Firma AND Listen.Progname = VProgname AND Listen.Listfl = '' NO-ERROR. IF NOT AVAILABLE Listen THEN DO: FIND LAST Listen USE-INDEX Listen-k1 WHERE Listen.Firma = Firma NO-LOCK NO-ERROR. IF AVAILABLE Listen THEN VListnr = Listen.Listnr + 1. ELSE VListnr = 1. CREATE Listen. ASSIGN Listen.Firma = Firma Listen.Listnr = VListnr Listen.Progname = VProgname Listen.Listfl = '' Listen.Jahr = YEAR(F_Fakdat) Listen.Sprcd = 1 Listen.Sort = 1 Listen.ProgWahl = 1. END. Listen.Listfl = 'A'. ARecid = RECID(Listen). FIND LiDruck USE-INDEX LiDruck-k1 WHERE LiDruck.Firma = Firma AND LiDruck.Listnr = Listen.Listnr AND LiDruck.ProgWahl = Listen.ProgWahl NO-ERROR. IF NOT AVAILABLE LiDruck THEN DO: CREATE LiDruck. ASSIGN LiDruck.Firma = Firma LiDruck.Listnr = Listen.Listnr LiDruck.ProgWahl = Listen.ProgWahl LiDruck.Listprog = 'AUFTRAG' + STRING(Listen.ProgWahl,'99') LiDruck.ListCopy = 1 LiDruck.Schacht = 0 LiDruck.Listlq = FALSE. END. BRecid = RECID(LiDruck). FIND FIRST WDrucker. ASSIGN LiDruck.ListDru = WDrucker.Drucker LiDruck.ListBild = WDrucker.Schrift LiDruck.Listtzz = WDrucker.TotZZ LiDruck.Listkzz = WDrucker.BegZZ LiDruck.Listfzz = WDrucker.EndZZ LiDruck.ListCopy = WDrucker.AnzKop LiDruck.Schacht = WDrucker.SchOri VBesr = WDrucker.Besr Schacht = WDrucker.SchBesr. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1. RELEASE Listen. RELEASE LiDruck. FIND LAST Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = Firma AND Tabel.RecArt = 'AUFDRUCK' AND Tabel.CodeC = cUSERID NO-ERROR. IF AVAILABLE Tabel THEN i1 = Tabel.CodeI + 1. ELSE i1 = 1. CREATE Tabel. ASSIGN Tabel.Firma = Firma Tabel.RecArt = 'AUFDRUCK' Tabel.CodeC = cUSERID Tabel.CodeI = i1 Tabel.Sprcd = 1 Tabel.Int_1 = ARecid Tabel.Int_2 = BRecid Tabel.Int_3 = CRecid Tabel.Dec_1 = VBesr Tabel.Dec_2 = INTEGER(WDrucker.iRecid) Tabel.Dec_3 = Schacht Tabel.Bez1 = '' Tabel.Bez2 = VDokument Tabel.BezL = SUBSTITUTE('&1;&2;&3;&4', WDrucker.SchOri, WDrucker.SchKop, WDrucker.SchBesr, WDrucker.Besr). fok = FALSE. IF VRuest > 0 THEN RUN LESEN_RUEST_TABELLE. RELEASE Tabel. IF NOT fok THEN LEAVE. END. DYNAMIC-FUNCTION('setBatch':U, TRUE) NO-ERROR. RUN VALUE(DruckProgramm). END. /* FOR EACH tAufko */ DO WITH FRAME {&FRAME-NAME}: Btn_OK :SENSITIVE = TRUE. Btn_Cancel:SENSITIVE = TRUE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gAuftraegeDrucke PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cInhalt AS CHARACTER NO-UNDO. DEFINE VARIABLE cKey AS CHARACTER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE VonDat AS DATE NO-UNDO. DEFINE VARIABLE BisDat AS DATE NO-UNDO. DO WITH FRAME {&FRAME-NAME}: F_Fakdat = TODAY. VonDat = DATE(MONTH(F_Fakdat), 01, YEAR(F_Fakdat)). BisDat = VonDat + 27. DO WHILE MONTH(BisDat + 1) = MONTH(VonDat): BisDat = BisDat + 1. END. F_vonDatum = vonDat. F_bisDatum = bisDat. RUN COMBO_AUFSTATUS ( INPUT CB_Aufstatus :HANDLE ). RUN COMBO_FAKART ( INPUT CB_Auftragsart:HANDLE ). cString = 'bitte wählen;000000;' + CB_Auftragsart:LIST-ITEM-PAIRS. CB_Auftragsart:LIST-ITEM-PAIRS = cString. CB_Auftragsart:SCREEN-VALUE = '000000' NO-ERROR. END. RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gAuftraegeDrucke _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_VonKnr F_BisKnr F_VonAufnr F_bisAufnr F_VonDatum F_bisDatum F_Fakdat CB_Auftragsart CB_Aufstatus WITH FRAME gAuftraegeDrucke. ENABLE RECT-12 F_VonKnr F_BisKnr F_VonAufnr F_bisAufnr F_VonDatum F_bisDatum F_Fakdat CB_Auftragsart CB_Aufstatus Btn_OK Btn_Cancel WITH FRAME gAuftraegeDrucke. VIEW FRAME gAuftraegeDrucke. {&OPEN-BROWSERS-IN-QUERY-gAuftraegeDrucke} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gAuftraegeDrucke PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). APPLY 'GO' TO FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gAuftraegeDrucke PROCEDURE exitObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_AUFKO_TABELLE gAuftraegeDrucke PROCEDURE LESEN_AUFKO_TABELLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO. DEFINE VARIABLE Fak_Art AS INTEGER NO-UNDO. DEFINE VARIABLE CodeC AS CHARACTER NO-UNDO. DEFINE VARIABLE hRecid AS RECID NO-UNDO. DEFINE BUFFER bHilfsTab FOR HilfsTab. cBenutzer = DYNAMIC-FUNCTION('GETBENUTZER':U) NO-ERROR. FIND FIRST WAufko. Fak_Art = WAufko.Fak_Art. FIND Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = Firma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.CodeI = Fak_Art AND Tabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE Tabel THEN LEAVE. CodeC = Tabel.Bez2. VDokument = Tabel.Bez2. VRuest = Tabel.Dec_2. FIND FIRST WDrucker NO-ERROR. IF NOT AVAILABLE WDrucker THEN CREATE WDrucker. DO WHILE TRUE: FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE HilfsTab.Firma = Firma AND HilfsTab.Sort_1 = cBenutzer AND HilfsTab.Sort_2 = VDokument NO-ERROR. IF NOT AVAILABLE HilfsTab THEN DO: FIND FIRST bHilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE bHilfsTab.Firma = Firma AND bHilfsTab.Sort_1 = '' AND bHilfsTab.Sort_2 = VDokument NO-ERROR. IF AVAILABLE bHilfsTab THEN DO: REPEAT TRANSACTION: CREATE HilfsTab. BUFFER-COPY bHilfsTab EXCEPT Sort_1 TO HilfsTab ASSIGN HilfsTab.Sort_1 = cBenutzer. hRecid = RECID(HilfsTab). RELEASE HilfsTab. LEAVE. END. FIND HilfsTab NO-LOCK WHERE RECID(HilfsTab) = hRecid. END. END. IF AVAILABLE HilfsTab THEN DO: ASSIGN WDrucker.Drucker = HilfsTab.Zeichen_1 WDrucker.Schrift = HilfsTab.Zeichen_2 WDrucker.TotZZ = HilfsTab.Zahl[01] WDrucker.BegZZ = HilfsTab.Zahl[02] WDrucker.EndZZ = HilfsTab.Zahl[03] WDrucker.AnzKop = HilfsTab.Zahl[04] WDrucker.SchOri = HilfsTab.Zahl[05] WDrucker.SchKop = HilfsTab.Zahl[06] WDrucker.Besr = HilfsTab.Zahl[07] WDrucker.SchBesr = HilfsTab.Zahl[08] WDrucker.iRecid = RECID(HilfsTab). fok = TRUE. LEAVE. END. FIND BTabel NO-LOCK USE-INDEX Tabel-k1 WHERE BTabel.Firma = Firma AND BTabel.RecArt = 'FAKDRU' AND BTabel.CodeC = CodeC AND BTabel.CodeI = 0 AND BTabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE BTabel THEN LEAVE. REPEAT TRANSACTION: CREATE HilfsTab. ASSIGN HilfsTab.Firma = Firma HilfsTab.Sort_1 = cBenutzer HilfsTab.Sort_2 = VDokument HilfsTab.Zeichen_1 = BTabel.Bez1 HilfsTab.Zeichen_2 = BTabel.Bez2 HilfsTab.Zahl[01] = BTabel.Int_1 HilfsTab.Zahl[02] = BTabel.Int_2 HilfsTab.Zahl[03] = BTabel.Int_3 HilfsTab.Zahl[04] = BTabel.Dec_2 HilfsTab.Zahl[05] = BTabel.Dec_3 HilfsTab.Zahl[06] = BTabel.Dec_3 HilfsTab.Zahl[07] = BTabel.Dec_1 HilfsTab.Zahl[08] = BTabel.Dec_3. RELEASE HilfsTab. LEAVE. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_RUEST_TABELLE gAuftraegeDrucke PROCEDURE LESEN_RUEST_TABELLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO. DEFINE VARIABLE Fak_Art AS INTEGER NO-UNDO. DEFINE VARIABLE CodeC AS CHARACTER NO-UNDO. cBenutzer = DYNAMIC-FUNCTION('GETBENUTZER':U) NO-ERROR. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = Firma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.CodeI = VRuest AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF NOT AVAILABLE Tabel THEN LEAVE. CodeC = Tabel.Bez2. VDokument = Tabel.Bez2. VRuest = 0. FIND FIRST WDrucker NO-ERROR. IF NOT AVAILABLE WDrucker THEN CREATE WDrucker. DO WHILE TRUE: FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE HilfsTab.Firma = Firma AND HilfsTab.Sort_1 = cBenutzer AND HilfsTab.Sort_2 = VDokument NO-ERROR. IF NOT AVAILABLE HilfsTab THEN DO: FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE HilfsTab.Firma = Firma AND HilfsTab.Sort_1 = '' AND HilfsTab.Sort_2 = VDokument NO-ERROR. END. IF AVAILABLE HilfsTab THEN DO: ASSIGN WDrucker.Drucker = HilfsTab.Zeichen_1 WDrucker.Schrift = HilfsTab.Zeichen_2 WDrucker.TotZZ = HilfsTab.Zahl[01] WDrucker.BegZZ = HilfsTab.Zahl[02] WDrucker.EndZZ = HilfsTab.Zahl[03] WDrucker.AnzKop = HilfsTab.Zahl[04] WDrucker.SchOri = HilfsTab.Zahl[05] WDrucker.SchKop = HilfsTab.Zahl[06] WDrucker.Besr = HilfsTab.Zahl[07] WDrucker.SchBesr = HilfsTab.Zahl[08] WDrucker.iRecid = RECID(HilfsTab). fok = TRUE. LEAVE. END. FIND BTabel USE-INDEX Tabel-k1 WHERE BTabel.Firma = Firma AND BTabel.RecArt = 'FAKDRU' AND BTabel.CodeC = CodeC AND BTabel.CodeI = 0 AND BTabel.Sprcd = 1 NO-LOCK NO-ERROR. IF NOT AVAILABLE BTabel THEN LEAVE. REPEAT TRANSACTION: CREATE HilfsTab. ASSIGN HilfsTab.Firma = Firma HilfsTab.Sort_1 = cBenutzer HilfsTab.Sort_2 = VDokument HilfsTab.Zeichen_1 = BTabel.Bez1 HilfsTab.Zeichen_2 = BTabel.Bez2 HilfsTab.Zahl[01] = BTabel.Int_1 HilfsTab.Zahl[02] = BTabel.Int_2 HilfsTab.Zahl[03] = BTabel.Int_3 HilfsTab.Zahl[04] = BTabel.Dec_2 HilfsTab.Zahl[05] = BTabel.Dec_3 HilfsTab.Zahl[06] = BTabel.Dec_3 HilfsTab.Zahl[07] = BTabel.Dec_1 HilfsTab.Zahl[08] = BTabel.Dec_3. RELEASE HilfsTab. LEAVE. END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME