&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1 &ANALYZE-RESUME /* Connected Databases */ &Scoped-define WINDOW-NAME W-Auftrag &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS W-Auftrag /*------------------------------------------------------------------------ File: Description: from cntnrwin.w - ADM SmartWindow Template Input Parameters: Output Parameters: History: ------------------------------------------------------------------------*/ /* 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 ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR VUpdate AS LOG NO-UNDO. DEF VAR Aktive AS LOG NO-UNDO. DEF VAR ASeite AS INT NO-UNDO. DEF VAR PSeite AS INT NO-UNDO. DEF VAR DruckProgramm AS CHAR NO-UNDO. DEF VAR VSammFak AS LOG NO-UNDO. DEF VAR VLiefDat AS DATE NO-UNDO. DEF VAR BLiefDat AS DATE NO-UNDO. DEF VAR VFakDat AS DATE NO-UNDO. DEF VAR VFakart AS INT NO-UNDO. DEF VAR VAufsta AS INT NO-UNDO. DEF VAR VRuest AS INT NO-UNDO. DEF VAR VKnr AS INT NO-UNDO. DEF VAR BKNr AS INT NO-UNDO. DEF VAR VAufnr AS INT NO-UNDO. DEF VAR BAufnr AS INT NO-UNDO. DEF VAR XDatum AS CHAR NO-UNDO. DEF VAR ok AS LOG NO-UNDO. DEF VAR ARecid AS RECID NO-UNDO. DEF VAR BRecid AS RECID NO-UNDO. DEF VAR CRecid AS RECID NO-UNDO. DEF VAR VBesr AS INT NO-UNDO. DEF VAR VDokument AS CHAR NO-UNDO. DEF VAR FVerbucht AS LOG NO-UNDO. DEF VAR AktSeite AS INT NO-UNDO. DEF VAR EscFlag AS LOG NO-UNDO. DEF VAR EndFlag AS LOG NO-UNDO. DEF VAR cBenutzerdaten AS CHAR NO-UNDO. DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR iLager AS INT NO-UNDO. DEF VAR fOfferte AS LOG NO-UNDO. DEF VAR cInstallation AS CHAR NO-UNDO. DEF TEMP-TABLE TAufko FIELD Knr AS INT FIELD Samm_Nr AS INT FIELD Aufnr AS INT FIELD RID AS RECID. DEF TEMP-TABLE dAufko LIKE Aufko. DEF BUFFER BTabel FOR Tabel. DEF BUFFER ATabel FOR Tabel. DEF BUFFER BAufko FOR Aufko. DEF BUFFER XAufko FOR Aufko. DEF BUFFER BSavko FOR Savko. DEF WORKFILE WAufko LIKE Aufko. DEF WORKFILE WDrucker FIELD Drucker AS CHAR FIELD Schrift AS CHAR FIELD TotZZ AS INT FIELD BegZZ AS INT FIELD EndZZ AS INT FIELD AnzKop AS INT FIELD SchOri AS INT FIELD SchKop AS INT FIELD Besr AS INT FIELD SchBesr AS INT FIELD iRecid AS RECID. DEF TEMP-TABLE tAuftraege NO-UNDO FIELD Aufnr AS INT FIELD Faknr AS INT FIELD Knr AS INT FIELD lOfferte AS LOG FIELD Fak_Art AS INT FIELD Auf_Sta AS INT FIELD iRecid AS RECID. /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i " " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } { incl/ttdruckparam.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartWindow &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER WINDOW /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS CB_Lager Btn_Verbuchen Btn_Drucken Btn_Prev ~ Btn_Next &Scoped-Define DISPLAYED-OBJECTS CB_Lager /* 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 getKundennummer W-Auftrag FUNCTION getKundennummer RETURNS INTEGER ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR W-Auftrag AS WIDGET-HANDLE NO-UNDO. /* Definitions of handles for SmartObjects */ DEFINE VARIABLE h_a-schriften AS HANDLE NO-UNDO. DEFINE VARIABLE h_b-artbw-kunde AS HANDLE NO-UNDO. DEFINE VARIABLE h_b-aufgebko AS HANDLE NO-UNDO. DEFINE VARIABLE h_b-aufze AS HANDLE NO-UNDO. DEFINE VARIABLE h_b-kundensuche AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-aufko AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-aufkoberech AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-auftrag AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-dokumentdrucker AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-kunbest AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-savko AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-umsatzanzeige AS HANDLE NO-UNDO. DEFINE VARIABLE h_folder AS HANDLE NO-UNDO. DEFINE VARIABLE h_v-verbuchen AS HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Drucken LABEL "&Drucken" SIZE 16 BY 1. DEFINE BUTTON Btn_Next IMAGE-UP FILE "Grafik\nextkartei":U LABEL "&+" SIZE 5.6 BY 1.05. DEFINE BUTTON Btn_Prev IMAGE-UP FILE "Grafik\prevkartei":U LABEL "&-" SIZE 5.6 BY 1.05. DEFINE BUTTON Btn_Verbuchen LABEL "Verb&uchen" SIZE 16 BY 1. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U LABEL "Lager" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 30 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main CB_Lager AT ROW 2.52 COL 16.6 COLON-ALIGNED WIDGET-ID 2 Btn_Verbuchen AT ROW 2.52 COL 81 Btn_Drucken AT ROW 2.52 COL 101.8 Btn_Prev AT ROW 2.52 COL 124.4 Btn_Next AT ROW 2.52 COL 130 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 180 BY 26.19. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartWindow Allow: Basic,Browse,DB-Fields,Query,Smart,Window Design Page: 1 Other Settings: COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW W-Auftrag ASSIGN HIDDEN = YES TITLE = "Auftragsbearbeitung" HEIGHT = 26.19 WIDTH = 180 MAX-HEIGHT = 54.19 MAX-WIDTH = 384 VIRTUAL-HEIGHT = 54.19 VIRTUAL-WIDTH = 384 RESIZE = no SCROLL-BARS = no STATUS-AREA = no BGCOLOR = ? FGCOLOR = ? THREE-D = yes MESSAGE-AREA = no SENSITIVE = yes. ELSE {&WINDOW-NAME} = CURRENT-WINDOW. /* END WINDOW DEFINITION */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB W-Auftrag /* ************************* 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 W-Auftrag VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main FRAME-NAME */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(W-Auftrag) THEN W-Auftrag:HIDDEN = yes. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME W-Auftrag &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL W-Auftrag W-Auftrag ON ENTRY OF W-Auftrag /* Auftragsbearbeitung */ DO: Aktive = TRUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL W-Auftrag W-Auftrag ON LEAVE OF W-Auftrag /* Auftragsbearbeitung */ DO: Aktive = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL W-Auftrag W-Auftrag ON WINDOW-CLOSE OF W-Auftrag /* Auftragsbearbeitung */ DO: RUN WINDOWCLOSE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Drucken &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Drucken W-Auftrag ON CHOOSE OF Btn_Drucken IN FRAME F-Main /* Drucken */ DO: DEF VAR VProgname AS CHAR NO-UNDO. DEF VAR VListnr AS INT NO-UNDO. DEF VAR XDateiName AS CHAR NO-UNDO. DEF VAR VSamm_Nr AS INT NO-UNDO. DEF VAR Schacht AS INT NO-UNDO. DEF VAR cUser AS CHAR NO-UNDO. DEF VAR VFaknr AS INT NO-UNDO. DEF VAR hAuftraege AS HANDLE NO-UNDO. DEF VAR vonDatum AS DATE NO-UNDO. DEF VAR bisDatum AS DATE NO-UNDO. DEF VAR FakDatum AS DATE NO-UNDO. DEF VAR iRuestArt AS INT NO-UNDO. DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR lError AS LOG NO-UNDO. DEF VAR lGedruckt AS LOG NO-UNDO. DEF VAR cRetVal AS CHAR NO-UNDO. RUN get-attribute ('current-page':U). ASeite = INTEGER(RETURN-VALUE). cUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR. FOR EACH WAufko: DELETE WAufko. END. CREATE WAufko. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. ASSIGN XDateiName = Steuer.Fwc10 iRuestArt = Steuer.RuestArt. CRecid = 0. lGedruckt = FALSE. EMPTY TEMP-TABLE tAuftraege. hAuftraege = TEMP-TABLE tAuftraege:DEFAULT-BUFFER-HANDLE. IF ASeite = 9 THEN DO: DYNAMIC-FUNCTION('getAuftraege':U IN h_f-savko, hAuftraege ). FOR EACH tAuftraege BREAK BY tAuftraege.Faknr: IF NOT FIRST-OF ( tAuftraege.Faknr ) THEN DELETE tAuftraege. END. XDateiName = XDateiName + '-sk'. FVerbucht = TRUE. FIND FIRST tAuftraege NO-ERROR. IF AVAILABLE tAuftraege THEN DO: RUN VIPER_DRUCK ( tAuftraege.Knr, tAuftraege.Aufnr ). IF RETURN-VALUE = '' THEN RETURN NO-APPLY. END. END. ELSE DO: DYNAMIC-FUNCTION('getAuftraege':U IN h_f-aufko, hAuftraege ). FOR EACH tAuftraege WHERE tAuftraege.Faknr <> 0 BREAK BY tAuftraege.Faknr: IF NOT FIRST-OF ( tAuftraege.Faknr ) THEN DELETE tAuftraege. END. FVerbucht = FALSE. END. FIND FIRST tAuftraege NO-ERROR. IF iRuestArt > 0 AND NOT tAuftraege.lOfferte THEN DO: RUN AUFBEREITUNG_RUESTPAPIER NO-ERROR. END. FIND FIRST tAuftraege NO-ERROR. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeI = tAuftraege.Fak_Art NO-ERROR. CASE cInstallation: WHEN 'oswald' THEN DO: IF Tabel.Int_3 >= 3 AND tAuftraege.Fak_Art <> 30 /* LieferRechnung NOT FVerbucht */THEN DO: RUN DRUCKEN IN THIS-PROCEDURE ( tAuftraege.iRecid, tAuftraege.Aufnr, STRING(FVerbucht,'j/n'), OUTPUT cRetVal ). IF cRetVal = '' THEN RUN WEITER ( tAuftraege.Aufnr ) NO-ERROR. lGedruckt = TRUE. END. IF tAuftraege.lOfferte THEN DO: RUN DRUCKEN IN THIS-PROCEDURE ( tAuftraege.iRecid, tAuftraege.Aufnr, STRING(FVerbucht,'j/n'), OUTPUT cRetVal ). IF cRetVal = '' THEN RUN WEITER ( tAuftraege.Aufnr ) NO-ERROR. lGedruckt = TRUE. END. END. WHEN 'wiederkehr' OR WHEN 'sanmartino' THEN DO: IF Tabel.Int_3 >= 3 AND tAuftraege.Fak_Art >= 21 AND tAuftraege.Fak_Art <= 49 THEN DO: RUN DRUCKEN IN THIS-PROCEDURE ( tAuftraege.iRecid, tAuftraege.Aufnr, STRING(FVerbucht,'j/n'), OUTPUT cRetVal ). /* IF cRetVal = '' THEN RUN WEITER ( tAuftraege.Aufnr ) NO-ERROR. */ lGedruckt = TRUE. END. END. WHEN 'latorre' THEN DO: RUN DRUCKEN IN THIS-PROCEDURE ( tAuftraege.iRecid, tAuftraege.Aufnr, STRING(FVerbucht,'j/n'), OUTPUT cRetVal ). lGedruckt = TRUE. END. END. DO WHILE NOT lGedruckt: 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. LEAVE. END. IF DruckProgramm = ? THEN RETURN NO-APPLY. FOR EACH tAuftraege WHILE NOT lGedruckt: IF fVerbucht THEN DO: FIND BSavko NO-LOCK USE-INDEX Savko-k1 WHERE BSavko.Firma = GVFirma AND BSavko.Aufnr = tAuftraege.Aufnr NO-ERROR. IF NOT AVAILABLE BSavko THEN NEXT. FIND FIRST WAufko. BUFFER-COPY BSavko TO WAufko. ASSIGN VFakart = WAufko.Fak_Art VAufsta = WAufko.Auf_Sta VKnr = WAufko.Fak_Knr BKnr = WAufko.Fak_Knr VAufnr = 0 BAufnr = 999999 VFaknr = WAufko.Faknr BLiefDat = WAufko.Lief_Datum VFakdat = WAufko.Fak_Datum. CRecid = RECID(BSavko). vonDatum = DATE(MONTH(BSavko.Lief_Datum),01,YEAR(BSavko.Lief_Datum)). bisDatum = vonDatum + 27. DO WHILE TRUE: IF MONTH(bisDatum + 1) <> MONTH(bisDatum) THEN LEAVE. bisDatum = bisDatum + 1. END. IF BSavko.Fak_Datum <> ? THEN FakDatum = BSavko.Fak_Datum. ELSE FakDatum = bisDatum. Linktext = STRING(BSavko.Fak_Art,'999') + ';' + STRING(BSavko.Auf_Sta,'999') + ';' + STRING(BSavko.Fak_Knr,'999999') + ';' + STRING(BSavko.Fak_Knr,'999999') + ";" + STRING(vonDatum ,"99.99.9999") + ";" + STRING(bisDatum ,"99.99.9999") + ";" + STRING(FakDatum ,"99.99.9999"). END. ELSE DO: FIND BAufko NO-LOCK USE-INDEX Aufko-k1 WHERE BAufko.Firma = GVFirma AND BAufko.Aufnr = tAuftraege.Aufnr NO-ERROR. IF NOT AVAILABLE BAufko THEN NEXT. FIND FIRST WAufko. BUFFER-COPY BAufko TO WAufko. CRecid = RECID(BAufko). END. XVAufnr = tAuftraege.Aufnr. RUN LESEN_AUFKO_TABELLE. FIND FIRST WAufko. IF NOT ok THEN DO: MESSAGE 'Für dieses Formular wurde kein Drucker zugeteilt' VIEW-AS ALERT-BOX. RETURN NO-APPLY. END. IF ATabel.Int_3 = 4 THEN VSammFak = TRUE. ELSE VSammFak = FALSE. IF WAufko.AlsOfferte THEN VSammFak = FALSE. DO WHILE TRUE: IF NOT VSammFak THEN DO: VFakart = WAufko.Fak_Art. VAufsta = WAufko.Auf_Sta. VKnr = WAufko.Fak_Knr. BKnr = WAufko.Fak_Knr. VAufnr = WAufko.Aufnr. BAufnr = WAufko.Aufnr. VLiefDat = WAufko.Lief_Datum. BLiefDat = WAufko.Lief_Datum. VFakdat = WAufko.Fak_Datum. LEAVE. END. IF NOT fVerbucht THEN DO: Linktext = STRING(cRecid,"99999999"). RUN "v8/d-fakauswahl.w" ( INPUT FVerbucht ). END. IF Linktext = '' THEN DO: ENABLE Btn_Drucken. RETURN NO-APPLY. END. VFakart = INTEGER(ENTRY(1, Linktext, ";")). VAufsta = INTEGER(ENTRY(2, Linktext, ";")). VKnr = INTEGER(ENTRY(3, Linktext, ";")). BKnr = INTEGER(ENTRY(4, Linktext, ";")). XDatum = ENTRY(5, Linktext, ";"). VLiefDat = DATE(INTEGER(SUBSTRING(XDatum,04,02)), INTEGER(SUBSTRING(XDatum,01,02)), INTEGER(SUBSTRING(XDatum,07,04))). XDatum = ENTRY(6, Linktext, ";"). BLiefDat = DATE(INTEGER(SUBSTRING(XDatum,04,02)), INTEGER(SUBSTRING(XDatum,01,02)), INTEGER(SUBSTRING(XDatum,07,04))). XDatum = ENTRY(7, Linktext, ";"). VFakDat = DATE(INTEGER(SUBSTRING(XDatum,04,02)), INTEGER(SUBSTRING(XDatum,01,02)), INTEGER(SUBSTRING(XDatum,07,04))). VAufnr = 000000. BAufnr = 999999. LEAVE. END. EMPTY TEMP-TABLE tAufko. IF FVerbucht THEN DO: FOR EACH Savko NO-LOCK USE-INDEX Savko-k11 WHERE Savko.Firma = GVFirma AND Savko.Faknr = VFaknr : CREATE tAufko. ASSIGN tAufko.Knr = Savko.Fak_Knr tAufko.Samm_Nr = Savko.Samm_Nr tAufko.Aufnr = Savko.Aufnr tAufko.RID = RECID(Savko). END. END. ELSE DO: FOR EACH Aufko NO-LOCK USE-INDEX Aufko-k5 WHERE Aufko.Firma = GVFirma AND Aufko.Fak_Art = VFakart AND Aufko.Auf_Sta = VAufsta AND Aufko.Fak_Knr >= VKnr AND Aufko.Fak_Knr <= BKnr AND Aufko.Lief_Datum >= VLiefDat AND Aufko.Lief_Datum <= BLiefDat AND Aufko.Aufnr >= VAufnr AND Aufko.Aufnr <= BAufnr : 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. END. FOR EACH tAufko BREAK BY tAufko.Knr BY tAufko.Samm_Nr BY tAufko.Aufnr : IF NOT FVerbucht THEN DO: REPEAT TRANSACTION: FIND Aufko WHERE RECID(Aufko) = tAufko.RID. Aufko.Fak_Datum = VFakDat. RELEASE Aufko. LEAVE. END. END. IF FIRST-OF ( tAufko.Samm_Nr ) THEN NEXT. DELETE tAufko. END. FOR EACH tAufko: DO WHILE FVerbucht = FALSE: IF NOT VSammFak THEN LEAVE. VSamm_Nr = 0. /* Sammelrechnungen ausserhalb des Datums neue Sammelnummer geben */ FOR EACH Aufko USE-INDEX Aufko-k5 WHERE Aufko.Firma = GVFirma AND Aufko.Fak_Art = VFakart AND Aufko.Samm_Nr = tAufko.Samm_Nr AND Aufko.Fak_Knr = tAufko.Knr AND Aufko.Lief_Datum > BLiefDat TRANSACTION: IF VSamm_Nr = 0 THEN DO: VSamm_Nr = DYNAMIC-FUNCTION('createSammNr':U, GVFirma ). END. ASSIGN Aufko.Samm_Nr = VSamm_Nr Aufko.Gedruckt = FALSE Aufko.Faknr = 0. RELEASE Aufko. END. LEAVE. END. XVAufnr = tAufko.Aufnr. CRecid = tAufko.RID. VRuest = 0. IF NOT FVerbucht THEN DO: FIND BAufko NO-LOCK WHERE RECID(BAufko) = tAufko.RID. FIND FIRST WAufko. BUFFER-COPY BAufko TO WAufko. END. ELSE DO: FIND BSavko NO-LOCK WHERE RECID(BSavko) = tAufko.RID. FIND FIRST WAufko. BUFFER-COPY BSavko TO WAufko. END. RUN LESEN_AUFKO_TABELLE. IF NOT ok THEN NEXT. REPEAT TRANSACTION: VProgname = TRIM(cUser) + '!AUFTRAG'. FIND FIRST Listen USE-INDEX Listen-k1 WHERE Listen.Firma = GVFirma 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 = GVFirma NO-LOCK NO-ERROR. IF AVAILABLE Listen THEN VListnr = Listen.Listnr + 1. ELSE VListnr = 1. CREATE Listen. ASSIGN Listen.Firma = GVFirma Listen.Listnr = VListnr Listen.Progname = VProgname Listen.Listfl = '' Listen.Jahr = GVJahr Listen.Sprcd = GVSprcd Listen.Sort = 1 Listen.ProgWahl = 1. END. Listen.Listfl = 'A'. ARecid = RECID(Listen). FIND LiDruck USE-INDEX LiDruck-k1 WHERE LiDruck.Firma = GVFirma AND LiDruck.Listnr = Listen.Listnr AND LiDruck.ProgWahl = Listen.ProgWahl NO-ERROR. IF NOT AVAILABLE LiDruck THEN DO: CREATE LiDruck. ASSIGN LiDruck.Firma = GVFirma 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 = GVFirma AND Tabel.RecArt = 'AUFDRUCK' AND Tabel.CodeC = cUser NO-ERROR. IF AVAILABLE Tabel THEN i1 = Tabel.CodeI + 1. ELSE i1 = 1. CREATE Tabel. ASSIGN Tabel.Firma = GVFirma Tabel.RecArt = 'AUFDRUCK' Tabel.CodeC = cUser 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). RELEASE Tabel. IF WAufko.AlsOfferte THEN LEAVE. ok = FALSE. IF VRuest > 0 THEN RUN LESEN_RUEST_TABELLE. IF NOT ok THEN LEAVE. END. END. /* FOR EACH tAufko */ IF cInstallation = 'sanmartino' THEN DO: EMPTY TEMP-TABLE tParam. CREATE tParam. FIND Steuer NO-LOCK WHERE Steuer.Firma = GVFirma. ASSIGN iRuestArt = Steuer.RuestArt. ASSIGN tParam.cFirma = WAufko.Firma tParam.iRecid = tAuftraege.iRecid tParam.iAufnr = WAufko.Aufnr tParam.iKnr = WAufko.Knr tParam.iFak_Knr = WAufko.Fak_Knr tParam.iFakArt = WAufko.Fak_Art tParam.iAufSta = WAufko.Auf_Sta 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 = FALSE tParam.lSendMail = FALSE. RUN 'v8/c-p_sanmartino.w' ( INPUT htParam )NO-ERROR. END. ELSE RUN VALUE(DruckProgramm) ( htParam ). END. IF ASeite = 2 THEN DO: RUN select-page ( 1 ). RUN view-page ( 1 ). RUN OPEN_AUFKO IN h_f-aufko. RETURN NO-APPLY. END. IF ASeite = 0 THEN DO: RUN select-page ( 1 ). RUN view-page ( 1 ). RUN OPEN_AUFKO IN h_f-aufko. RETURN NO-APPLY. END. IF ASeite = 1 THEN DO: RUN OPEN_AUFKO IN h_f-aufko. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Next &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Next W-Auftrag ON CHOOSE OF Btn_Next IN FRAME F-Main /* + */ DO: IF VUpdate THEN RETURN NO-APPLY. IF NOT Aktive THEN RETURN NO-APPLY. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'Next_Page':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Prev &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Prev W-Auftrag ON CHOOSE OF Btn_Prev IN FRAME F-Main /* - */ DO: IF VUpdate THEN RETURN NO-APPLY. IF NOT Aktive THEN RETURN NO-APPLY. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'Prev_Page':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Verbuchen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Verbuchen W-Auftrag ON CHOOSE OF Btn_Verbuchen IN FRAME F-Main /* Verbuchen */ DO: FIND Aufko USE-INDEX Aufko-k1 WHERE Aufko.Firma = GVFirma AND Aufko.Aufnr = XVAufnr NO-LOCK NO-ERROR. IF Aufko.Gedruckt = FALSE THEN DO: Ja = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, INPUT 1066 ) NO-ERROR. IF NOT Ja THEN RETURN NO-APPLY. LVRecid = RECID(Aufko). REPEAT TRANSACTION: IF Aufko.Faknr = 0 THEN DO: MESSAGE 'Rechnung muss zuerst gedruckt werden' VIEW-AS ALERT-BOX. RETURN NO-APPLY. END. FOR EACH XAufko USE-INDEX Aufko-k5 WHERE XAufko.Firma = Aufko.Firma AND XAUfko.Fak_Art = Aufko.Fak_Art AND XAufko.Samm_Nr = Aufko.Samm_Nr: XAufko.Gedruckt = TRUE. RELEASE XAufko. END. LEAVE. END. FIND Aufko WHERE RECID(Aufko) = LVRecid NO-LOCK NO-ERROR. END. IF Aufko.Faknr = 0 THEN DO: RUN FEHLER ( INPUT 1067 ). APPLY 'ENTRY' TO Btn_Verbuchen. RETURN NO-APPLY. END. FIND FIRST Debop NO-LOCK WHERE Debop.Firma = GVFirma AND Debop.Faknr = Aufko.Faknr NO-ERROR. IF AVAILABLE Debop THEN DO: MESSAGE 'Rechnungsnummer ist ungültig. Eine solche Nummer besteht bereits' VIEW-AS ALERT-BOX ERROR. APPLY 'ENTRY' TO Btn_Verbuchen. RETURN NO-APPLY. END. FIND Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.CodeI = Aufko.Fak_Art AND Tabel.Sprcd = 1 NO-ERROR. DO WHILE TRUE: IF Tabel.INT_3 = 20 THEN LEAVE. /* Kasse */ IF Tabel.Int_3 = 3 THEN LEAVE. /* Einzelrechnung */ IF Tabel.Int_3 = 4 AND /* Sammelrechnung */ Aufko.Auf_Sta > 4 THEN LEAVE. { v8/fehler.i "0313" } APPLY 'ENTRY' TO Btn_Verbuchen. RETURN NO-APPLY. END. XVAufnr = Aufko.Aufnr. XVKnr = Aufko.Fak_KNr. LVDat = Aufko.Fak_Dat. Linknr = 9. RUN "v8/d-verbuchen.w". Linknr = 0. RUN state-changed IN THIS-PROCEDURE ( INPUT THIS-PROCEDURE, INPUT 'Seite_1_Open':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Lager &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager W-Auftrag ON VALUE-CHANGED OF CB_Lager IN FRAME F-Main /* Lager */ DO: DEF VAR cBenutzer AS CHAR NO-UNDO. RUN SET_LAGER IN h_f-Aufko ( INTEGER(SELF:SCREEN-VALUE) ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK W-Auftrag /* *************************** Main Block *************************** */ DEF VAR xString AS CHAR NO-UNDO. XVDruArt = 0. GET-KEY-VALUE SECTION 'GrundEinstellungen' KEY 'EscapeAufAuftrag' VALUE xString. IF xString = ? THEN xString = 'nein'. IF xString BEGINS 'n' THEN EscFlag = FALSE. ELSE EscFlag = TRUE . EndFlag = FALSE. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR. ON 'ALT-+':U OF {&WINDOW-NAME} ANYWHERE DO: APPLY 'CHOOSE' TO Btn_Next IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON 'ALT-CURSOR-RIGHT':U OF {&WINDOW-NAME} ANYWHERE DO: APPLY 'CHOOSE' TO Btn_Next IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON 'ALT--':U OF {&WINDOW-NAME} ANYWHERE DO: APPLY 'CHOOSE' TO Btn_Prev IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON 'ALT-CURSOR-LEFT':U OF {&WINDOW-NAME} ANYWHERE DO: APPLY 'CHOOSE' TO Btn_Prev IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE DO: EndFlag = TRUE. RUN WINDOWCLOSE. RETURN NO-APPLY. END. ON 'ALT-1':U OF {&WINDOW-NAME} ANYWHERE DO: IF VUpdate THEN RETURN NO-APPLY. RUN select-page(1). RUN view-page (1). END. ON 'ALT-2':U OF {&WINDOW-NAME} ANYWHERE DO: IF VUpdate THEN RETURN NO-APPLY. RUN select-page(2). RUN view-page (2). END. ON 'ALT-3':U OF {&WINDOW-NAME} ANYWHERE DO: IF VUpdate THEN RETURN NO-APPLY. RUN select-page(3). RUN view-page (3). END. ON 'U9':U OF {&WINDOW-NAME} ANYWHERE DO: APPLY 'CHOOSE' TO Btn_Drucken IN FRAME {&FRAME-NAME}. RETURN. END. ON 'INSERT-MODE':U OF {&WINDOW-NAME} ANYWHERE DO: RUN get-attribute ('current-page':U). AktSeite = INTEGER(RETURN-VALUE). IF AktSeite = 1 THEN RUN NEUER_AUFTRAG IN h_f-aufko. IF AktSeite = 2 THEN RUN NEUE_ZEILE IN h_b-aufze. RETURN. END. /* Include custom Main Block code for SmartWindows. */ {src/adm/template/windowmn.i} FFolder = TRUE. VUpdate = FALSE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects W-Auftrag _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: ------------------------------------------------------------------------------*/ DEFINE VARIABLE adm-current-page AS INTEGER NO-UNDO. RUN get-attribute IN THIS-PROCEDURE ('Current-Page':U). ASSIGN adm-current-page = INTEGER(RETURN-VALUE). CASE adm-current-page: WHEN 0 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'src_dlcv91c/template/aufragsfolder.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'FOLDER-LABELS = ':U + 'Kopf|Zeile|Geb.Rück.|Aufträge|Zahlung|Verkäufe|Drucker|Faxliste|Verbuchte|Umsätze' + ', FOLDER-TAB-TYPE = 2':U , OUTPUT h_folder ). RUN set-position IN h_folder ( 1.00 , 1.00 ) NO-ERROR. RUN set-size IN h_folder ( 26.19 , 180.00 ) NO-ERROR. /* Links to SmartFolder h_folder. */ RUN add-link IN adm-broker-hdl ( h_folder , 'Page':U , THIS-PROCEDURE ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_folder , CB_Lager:HANDLE IN FRAME F-Main , 'BEFORE':U ). END. /* Page 0 */ WHEN 1 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-aufko.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_f-aufko ). RUN set-position IN h_f-aufko ( 3.86 , 3.20 ) NO-ERROR. /* Size in UIB: ( 22.91 , 136.80 ) */ /* Links to SmartFrame h_f-aufko. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-aufko ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_f-aufko , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 1 */ WHEN 2 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/b-aufze_v8.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_b-aufze ). RUN set-position IN h_b-aufze ( 3.95 , 6.20 ) NO-ERROR. RUN set-size IN h_b-aufze ( 21.52 , 160.40 ) NO-ERROR. /* Links to SmartBrowser h_b-aufze. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_b-aufze ). RUN add-link IN adm-broker-hdl ( h_b-aufze , 'State':U , THIS-PROCEDURE ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_b-aufze , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 2 */ WHEN 3 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/bx-aufgebko.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_b-aufgebko ). RUN set-position IN h_b-aufgebko ( 4.05 , 2.60 ) NO-ERROR. RUN set-size IN h_b-aufgebko ( 21.19 , 170.00 ) NO-ERROR. /* Links to SmartBrowser h_b-aufgebko. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_b-aufgebko ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_b-aufgebko , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 3 */ WHEN 4 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-auftrag.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_f-auftrag ). RUN set-position IN h_f-auftrag ( 4.71 , 6.40 ) NO-ERROR. /* Size in UIB: ( 15.76 , 127.60 ) */ /* Links to SmartFrame h_f-auftrag. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-auftrag ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_f-auftrag , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 4 */ WHEN 5 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-aufkoberech.w':U , INPUT {&WINDOW-NAME} , INPUT 'Layout = ':U , OUTPUT h_f-aufkoberech ). RUN set-position IN h_f-aufkoberech ( 3.81 , 9.00 ) NO-ERROR. /* Size in UIB: ( 21.52 , 123.20 ) */ /* Links to SmartFrame h_f-aufkoberech. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-aufkoberech ). END. /* Page 5 */ WHEN 6 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/b-artbw-kunde.w':U , INPUT {&WINDOW-NAME} , INPUT 'Initial-Lock = NO-LOCK, Hide-on-Init = no, Disable-on-Init = no, Layout = , Create-On-Add = ?':U , OUTPUT h_b-artbw-kunde ). RUN set-position IN h_b-artbw-kunde ( 4.24 , 7.20 ) NO-ERROR. RUN set-size IN h_b-artbw-kunde ( 20.71 , 167.00 ) NO-ERROR. /* Links to SmartBrowser h_b-artbw-kunde. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_b-artbw-kunde ). END. /* Page 6 */ WHEN 7 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/a-schriften.w':U , INPUT {&WINDOW-NAME} , INPUT 'Layout = ':U , OUTPUT h_a-schriften ). RUN set-position IN h_a-schriften ( 14.10 , 8.60 ) NO-ERROR. RUN set-size IN h_a-schriften ( 8.33 , 131.00 ) NO-ERROR. RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-dokumentdrucker.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_f-dokumentdrucker ). RUN set-position IN h_f-dokumentdrucker ( 5.33 , 6.80 ) NO-ERROR. /* Size in UIB: ( 18.00 , 138.40 ) */ /* Links to SmartBrowser h_a-schriften. */ RUN add-link IN adm-broker-hdl ( h_f-dokumentdrucker , 'BROWSER':U , h_a-schriften ). RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_a-schriften ). /* Links to SmartFrame h_f-dokumentdrucker. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-dokumentdrucker ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_f-dokumentdrucker , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 7 */ WHEN 8 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-kunbest.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_f-kunbest ). RUN set-position IN h_f-kunbest ( 3.95 , 6.00 ) NO-ERROR. /* Size in UIB: ( 21.48 , 133.00 ) */ /* Links to SmartFrame h_f-kunbest. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-kunbest ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_f-kunbest , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 8 */ WHEN 9 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-savko.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_f-savko ). RUN set-position IN h_f-savko ( 3.95 , 3.00 ) NO-ERROR. /* Size in UIB: ( 21.19 , 167.00 ) */ /* Links to SmartFrame h_f-savko. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-savko ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_f-savko , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 9 */ WHEN 10 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-umsatzanzeige.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_f-umsatzanzeige ). RUN set-position IN h_f-umsatzanzeige ( 4.24 , 3.00 ) NO-ERROR. /* Size in UIB: ( 16.29 , 135.00 ) */ /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_f-umsatzanzeige , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 10 */ WHEN 12 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/v-verbuchen.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_v-verbuchen ). RUN set-position IN h_v-verbuchen ( 8.62 , 34.40 ) NO-ERROR. /* Size in UIB: ( 13.00 , 90.80 ) */ /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_v-verbuchen , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 12 */ WHEN 20 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/b-kundensuche.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_b-kundensuche ). RUN set-position IN h_b-kundensuche ( 15.67 , 2.40 ) NO-ERROR. RUN set-size IN h_b-kundensuche ( 9.05 , 122.00 ) NO-ERROR. /* Links to SmartBrowser h_b-kundensuche. */ RUN add-link IN adm-broker-hdl ( h_b-kundensuche , 'State':U , THIS-PROCEDURE ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_b-kundensuche , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 20 */ END CASE. /* Select a Startup page. */ IF adm-current-page eq 0 THEN RUN select-page IN THIS-PROCEDURE ( 1 ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available W-Auftrag _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 AUFBEREITUNG_RUESTPAPIER W-Auftrag PROCEDURE AUFBEREITUNG_RUESTPAPIER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR cAuftrag AS CHAR NO-UNDO. FIND Steuer NO-LOCK WHERE Steuer.Firma = GVFirma. cAuftrag = ''. FOR EACH tAuftraege WHERE tAuftraege.lOfferte = FALSE AND tAuftraege.Auf_Sta < 2 AND ((NOT cInstallation BEGINS 'Huber') OR (cInstallation BEGINS 'Huber' AND tAuftraege.Fak_Art <> 80)) TRANSACTION: CREATE ASMutation. ASSIGN ASMutation.ASMutation_id = NEXT-VALUE(ASMutation_id) ASMutation.MutArt = 'RUESTDRUCK' ASMutation.Firma = GVFirma ASMutation.AdFirma = '' ASMutation.Datum = TODAY ASMutation.cStatus = '' ASMutation.Aktiv = TRUE ASMutation.iKey_1 = tAuftraege.Aufnr ASMutation.iKey_2 = Steuer.RuestArt ASMutation.iFeld_1 = 0 ASMutation.iFeld_2 = 0 ASMutation.iFeld_3 = 0 ASMutation.cFeld_2 = cBenutzer. . RELEASE ASMutation. cAuftrag = cAuftrag + (IF cAuftrag = '' THEN '' ELSE ' ') + STRING(tAuftraege.Aufnr,'9999999'). IF tAuftraege.Auf_Sta < 1 THEN RUN WEITER ( tAuftraege.Aufnr ). DELETE tAuftraege. END. IF cAuftrag <> '' THEN DO: cString = SUBSTITUTE('Druckauftrag Auftrags- und Rüstschein &1 aufgegeben', cAuftrag). MESSAGE cString VIEW-AS ALERT-BOX INFORMATION. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI W-Auftrag _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. ------------------------------------------------------------------------------*/ /* Delete the WINDOW we created */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(W-Auftrag) THEN DELETE WIDGET W-Auftrag. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN W-Auftrag PROCEDURE DRUCKEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO. DEF INPUT PARAMETER ipParam AS CHAR NO-UNDO. DEF OUTPUT PARAMETER opRetVal AS CHAR NO-UNDO. DEF VAR cUser AS CHAR NO-UNDO. DEF VAR iVDRecid AS RECID NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR cResult AS CHAR NO-UNDO. DEF VAR cInstallation AS CHAR NO-UNDO. DEF VAR cDruckProgramm AS CHAR NO-UNDO. DEF VAR lSammFak AS LOG NO-UNDO. DEF VAR lFaktura AS LOG NO-UNDO. DEF VAR iRuestArt AS INT NO-UNDO. DEF VAR iWinX AS INT NO-UNDO. DEF VAR iWinY AS INT NO-UNDO. opRetVal = ''. DEF BUFFER bViperDoc FOR ViperDoc. DEF BUFFER bAufko FOR Aufko. DEF BUFFER bSavko FOR Savko. FIND FIRST dAufko NO-ERROR. IF NOT AVAILABLE dAufko THEN CREATE dAufko. IF ipParam BEGINS 'j' THEN DO: FIND bSavko NO-LOCK WHERE RECID(bSavko) = ipRecid. BUFFER-COPY bSavko TO dAufko. END. ELSE DO: FIND bAufko NO-LOCK WHERE RECID(bAufko) = ipRecid. BUFFER-COPY bAufko TO dAufko. END. EMPTY TEMP-TABLE tParam. CREATE tParam. FIND Steuer NO-LOCK WHERE Steuer.Firma = dAufko.Firma. ASSIGN iRuestArt = Steuer.RuestArt. ASSIGN tParam.cFirma = dAufko.Firma tParam.iRecid = ipRecid tParam.iAufnr = ipAufnr tParam.iKnr = dAufko.Knr tParam.iFak_Knr = dAufko.Fak_Knr tParam.iFakArt = dAufko.Fak_Art tParam.iAufSta = dAufko.Auf_Sta tParam.iFaknr = dAufko.Faknr 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 = FALSE tParam.dFakDatum = dAufko.Fak_Datum . IF dAufko.AlsOfferte THEN DO: tParam.cDokument = 'EXCEL_OFFERTE'. tParam.lBatch = TRUE. lSammFak = FALSE. lFaktura = FALSE. END. ELSE DO: FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = tParam.cFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeI = dAufko.Fak_Art NO-ERROR. tParam.cDokument = Tabel.Bez2. lSammFak = (IF Tabel.Int_3 = 4 THEN TRUE ELSE FALSE). lFaktura = (IF Tabel.Int_3 = 3 THEN TRUE ELSE FALSE). END. IF ipParam BEGINS 'j' THEN ASSIGN lSammFak = FALSE lFaktura = FALSE. IF iRuestArt > 0 AND NOT dAufko.AlsOfferte AND dAufko.Auf_Sta < 2 THEN DO: RUN AUFBEREITEN_RUESTPAPIER. RETURN. END. IF lSammFak OR lFaktura THEN DO: RUN 'g-fakauswahl.w':U ( INPUT-OUTPUT htParam, OUTPUT cResult ) NO-ERROR. IF cResult <> 'OK' THEN DO: RELEASE bAufko. APPLY 'U1'. RETURN NO-APPLY. END. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = tParam.cFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeI = tParam.iFakArt NO-ERROR. ASSIGN tParam.cDokument = Tabel.Bez2 lSammFak = (IF Tabel.Int_3 = 4 THEN TRUE ELSE FALSE) lFaktura = (IF Tabel.Int_3 = 3 THEN TRUE ELSE FALSE) tParam.lPreis = TRUE. END. 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 = dAufko.Firma AND ViperDoc.Benutzer = cUser AND ViperDoc.Formular = tParam.cDokument AND ViperDoc.DokArt = 0 NO-ERROR. IF AVAILABLE ViperDoc THEN DO: iVDRecid = RECID(ViperDoc). LEAVE. END. END. DO WHILE iVDREcid = ?: FIND FIRST ViperDoc NO-LOCK WHERE ViperDoc.Firma = dAufko.Firma AND ViperDoc.Formular = tParam.cDokument AND ViperDoc.DokArt = 0 NO-ERROR. IF NOT AVAILABLE ViperDoc THEN DO: MESSAGE 'Es ist keine Drucker-Formulat-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. tParam.iVDRecid = iVDRecid. FIND ViperDoc NO-LOCK WHERE RECID(ViperDoc) = iVDRecid. ASSIGN tParam.Template = ViperDoc.Template tParam.Programm = ViperDoc.Programm tParam.Drucker = ViperDoc.Drucker. RELEASE bAufko. 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. IF ipParam BEGINS 'j' THEN tParam.Programm = 'Sav_' + tParam.Program. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR. cDruckProgramm = SUBSTITUTE('DruckProgramme/&1/&2', cInstallation, tParam.Programm ). cDruckProgramm = SEARCH(cDruckProgramm). IF cDruckProgramm = ? THEN DO: MESSAGE 'Druckprogramm nicht gefunden' VIEW-AS ALERT-BOX ERROR. APPLY 'U1'. RETURN NO-APPLY. END. SESSION:SET-WAIT-STATE('GENERAL'). IF cInstallation = 'LaTorre' THEN DO: iWinX = {&WINDOW-NAME}:X. {&WINDOW-NAME}:X = iWinX + (800 - iWinX). /* {&WINDOW-NAME}:VISIBLE = FALSE. */ RUN VALUE(cDruckProgramm) ( htParam, OUTPUT cResult ). {&WINDOW-NAME}:X = iWinX. /* {&WINDOW-NAME}:VISIBLE = TRUE. */ END. ELSE DO: RUN VALUE(cDruckProgramm) ( htParam, OUTPUT cResult ). END. SESSION:SET-WAIT-STATE(''). RETURN cResult. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI W-Auftrag _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 CB_Lager WITH FRAME F-Main IN WINDOW W-Auftrag. ENABLE CB_Lager Btn_Verbuchen Btn_Drucken Btn_Prev Btn_Next WITH FRAME F-Main IN WINDOW W-Auftrag. {&OPEN-BROWSERS-IN-QUERY-F-Main} VIEW W-Auftrag. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject W-Auftrag PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR xString AS CHAR NO-UNDO. DEF VAR cBenutzer AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR. RUN COMBO_LAGER ( CB_Lager:HANDLE ) NO-ERROR. IF CB_Lager:NUM-ITEMS > 1 THEN DO: xString = CB_Lager:LIST-ITEM-PAIRS + ';Alle Lager (999999);999999'. CB_Lager:LIST-ITEM-PAIRS = xString. END. cBenutzerdaten = DYNAMIC-FUNCTION('GETBENUTZERDATEN':U) NO-ERROR. cBenutzer = ENTRY(1, cBenutzerdaten, CHR(01)). CB_Lager:SCREEN-VALUE = STRING(iLager,'999999'). END. RUN local-initialize. {&WINDOW-NAME}:MOVE-TO-TOP(). RUN SET_LAGER IN h_f-Aufko ( INTEGER(CB_Lager:SCREEN-VALUE) ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_AUFKO_TABELLE W-Auftrag PROCEDURE LESEN_AUFKO_TABELLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR Fak_Art AS INT NO-UNDO. DEF VAR cDruBen AS CHAR NO-UNDO. DEF VAR hRecid AS RECID NO-UNDO. DEF VAR dRecid AS RECID NO-UNDO. DEF BUFFER bHilfsTab FOR HilfsTab. cBenutzer = DYNAMIC-FUNCTION('GETBENUTZER':U) NO-ERROR. FIND FIRST WAufko. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'VERTR' AND Tabel.CodeI = WAufko.Vertr AND Tabel.CodeC = '' NO-ERROR. IF AVAILABLE Tabel THEN cDruBen = Tabel.Bez2. ELSE cDruBen = cBenutzer. IF cDruBen = '' THEN cDruBen = cBenutzer. CASE XVDruArt: WHEN 1 THEN Fak_Art = 89. OTHERWISE Fak_Art = WAufko.Fak_Art. END CASE. FIND ATabel NO-LOCK USE-INDEX Tabel-k1 WHERE ATabel.Firma = GVFirma AND ATabel.RecArt = 'FAKART' AND ATabel.CodeC = '' AND ATabel.CodeI = Fak_Art AND ATabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE ATabel THEN LEAVE. LVCodeC = ATabel.Bez2. VDokument = ATabel.Bez2. VRuest = ATabel.Dec_2. IF WAufko.Auf_Sta < 2 THEN DO: CASE cInstallation: WHEN 'HUBER' THEN ASSIGN vDokument = 'RUEST' VRuest = 0. END CASE. END. 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 = GVFirma AND HilfsTab.Sort_1 = cDruBen 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 = GVFirma 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 = cDruBen. 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). ok = TRUE. LEAVE. END. FIND bTabel NO-LOCK USE-INDEX Tabel-k1 WHERE bTabel.Firma = GVFirma AND bTabel.RecArt = 'FAKDRU' AND bTabel.CodeC = LVCodeC AND bTabel.CodeI = 0 AND bTabel.Sprcd = 1 NO-ERROR. dRecid = (IF AVAILABLE bTabel THEN RECID(bTabel) ELSE ? ). IF NOT AVAILABLE bTabel THEN DO: REPEAT TRANSACTION: CREATE bTabel. ASSIGN bTabel.Firma = GVFirma bTabel.RecArt = 'FakDru' bTabel.CodeC = LVCodeC bTabel.Bez1 = '' bTabel.Bez2 = '' bTabel.CodeI = 0 bTabel.Sprcd = 1 bTabel.Int_1 = 0 bTabel.Int_2 = 0 bTabel.Int_3 = 0 bTabel.Dec_1 = 0 bTabel.Dec_2 = 1 /* Anzahl kopien */ bTabel.Dec_3 = 0. dRecid = RECID(bTabel). RELEASE bTabel. LEAVE. END. FIND bTabel NO-LOCK WHERE RECID(bTabel) = dRecid. END. IF bTabel.Bez1 = '' THEN DO: SYSTEM-DIALOG PRINTER-SETUP PORTRAIT UPDATE ja. IF NOT Ja THEN LEAVE. REPEAT TRANSACTION: FIND bTabel WHERE RECID(bTabel) = dRecid. ASSIGN bTabel.Bez1 = SESSION:PRINTER-NAME bTabel.Bez2 = 'VIPER'. RELEASE bTabel. LEAVE. END. NEXT. END. REPEAT TRANSACTION: CREATE HilfsTab. ASSIGN HilfsTab.Firma = GVFirma HilfsTab.Sort_1 = cDruBen 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 W-Auftrag PROCEDURE LESEN_RUEST_TABELLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR cDruBen AS CHAR NO-UNDO. cBenutzer = DYNAMIC-FUNCTION('GETBENUTZER':U) NO-ERROR. FIND FIRST WAufko NO-LOCK NO-ERROR. FIND FIRST Tabel NO-LOCK WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'VERTR' AND Tabel.CodeI = WAufko.Vertr AND Tabel.CodeC = '' NO-ERROR. IF AVAILABLE Tabel THEN cDruBen = Tabel.Bez2. ELSE cDruBen = cBenutzer. FIND Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.CodeI = VRuest AND Tabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE Tabel THEN LEAVE. LVCodeC = 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 = GVFirma AND HilfsTab.Sort_1 = cDruBen 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 = GVFirma 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). ok = TRUE. LEAVE. END. FIND BTabel NO-LOCK USE-INDEX Tabel-k1 WHERE BTabel.Firma = GVFirma AND BTabel.RecArt = 'FAKDRU' AND BTabel.CodeC = LVCodeC AND BTabel.CodeI = 0 AND BTabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE BTabel THEN LEAVE. REPEAT TRANSACTION: CREATE HilfsTab. ASSIGN HilfsTab.Firma = GVFirma HilfsTab.Sort_1 = cDruBen 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 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-change-page W-Auftrag PROCEDURE local-change-page : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DEF VAR XSeite AS INT NO-UNDO. DEF VAR OldPage AS INT NO-UNDO. DEF VAR lUpdate AS LOG NO-UNDO. RUN get-attribute ('current-page':U). oldPage = INTEGER(RETURN-VALUE). RUN dispatch IN THIS-PROCEDURE ( INPUT 'change-page':U ) . RUN get-attribute ('current-page':U). XSeite = INTEGER(RETURN-VALUE). Aktive = TRUE. DO WITH FRAME {&FRAME-NAME}: ENABLE Btn_Drucken. IF oldPage = 7 THEN DO: CB_Lager:HIDDEN = FALSE. ENABLE CB_Lager. END. IF XSeite <> 12 THEN ENABLE Btn_Verbuchen. IF XSeite = 1 THEN DO: RUN state-changed IN h_f-aufko (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ). RETURN NO-APPLY. END. IF XSeite = 2 THEN DO: RUN state-changed IN h_b-aufze (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ). RETURN NO-APPLY. END. IF XSeite = 3 THEN DO: RUN state-changed IN h_b-aufgebko (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ). RETURN NO-APPLY. END. IF XSeite = 4 THEN DO: DISABLE Btn_Drucken. RETURN NO-APPLY. END. IF XSeite = 5 THEN DO: RUN state-changed IN h_f-aufkoberech (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ). RETURN NO-APPLY. END. IF XSeite = 6 THEN DO: RUN ENTRY_BROWSE IN h_b-artbw-kunde. RETURN NO-APPLY. END. IF XSeite = 7 THEN DO: DISABLE CB_Lager. CB_Lager:HIDDEN = TRUE. RUN dispatch IN h_f-dokumentdrucker ('apply-entry':U). RETURN NO-APPLY. END. IF XSeite = 8 THEN DO: RETURN NO-APPLY. END. IF XSeite = 10 THEN DO: IF NOT ENTRY(4, cBenutzerdaten, CHR(01)) BEGINS 'ja' THEN DO: RUN select-page(1). RUN view-page (1). END. END. IF XSeite = 12 THEN DO: DISABLE Btn_Drucken. RETURN NO-APPLY. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-exit W-Auftrag PROCEDURE local-exit : /* ----------------------------------------------------------- Purpose: Starts an "exit" by APPLYing CLOSE event, which starts "destroy". Parameters: Notes: If activated, should APPLY CLOSE, *not* dispatch adm-exit. -------------------------------------------------------------*/ APPLY "CLOSE":U TO THIS-PROCEDURE. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize W-Auftrag PROCEDURE local-initialize : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . {&WINDOW-NAME}:MOVE-TO-TOP(). RUN dispatch IN h_f-aufko ('apply-entry':U). RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records W-Auftrag _ADM-SEND-RECORDS PROCEDURE send-records : /*------------------------------------------------------------------------------ Purpose: Send record ROWID's for all tables used by this file. Parameters: see template/snd-head.i ------------------------------------------------------------------------------*/ /* SEND-RECORDS does nothing because there are no External Tables specified for this SmartWindow, and there are no tables specified in any contained Browse, Query, or Frame. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed W-Auftrag 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. DEF VAR MaxPages AS INT INIT 8 NO-UNDO. CASE p-state: WHEN 'Next_Page' THEN DO: IF NOT Aktive THEN RETURN NO-APPLY. RUN get-attribute ('current-page':U). ASeite = INTEGER(RETURN-VALUE) + 1. IF ASeite > MaxPages THEN ASeite = 1. RUN select-page(ASeite). RUN view-page (ASeite). RETURN NO-APPLY. END. WHEN 'Prev_Page' THEN DO: IF NOT Aktive THEN RETURN NO-APPLY. RUN get-attribute ('current-page':U). ASeite = INTEGER(RETURN-VALUE) - 1. IF ASeite < 1 THEN ASeite = MaxPages. RUN select-page(ASeite). RUN view-page (ASeite). RETURN NO-APPLY. END. WHEN 'Vorherige_Seite' THEN DO: RUN select-page ( PSeite ). RUN view-page ( PSeite ). RETURN NO-APPLY. END. WHEN 'kundensuche' THEN DO: RUN select-page ( 20 ). RUN view-page ( 20 ). RUN SUCHEN IN h_b-kundensuche. END. WHEN 'kunde_ok' THEN DO: RUN select-page ( 1 ). RUN view-page ( 1 ). RUN GEFUNDEN IN h_f-aufko. END. WHEN 'kunde_nok' THEN DO: RUN select-page ( 1 ). RUN view-page ( 1 ). RUN NICHT_GEFUNDEN IN h_f-aufko. END. WHEN 'seite_1' THEN DO: RUN select-page ( 1 ). RUN view-page ( 1 ). END. WHEN 'seite_2' THEN DO: RUN select-page ( 2 ). RUN view-page ( 2 ). END. WHEN 'Seite_1_Open' THEN DO: RUN select-page ( 1 ). RUN view-page ( 1 ). RUN OPEN_AUFKO_REPO IN h_f-aufko. RUN adm-apply-entry IN h_f-aufko. RETURN NO-APPLY. END. WHEN 'ENDE' THEN DO: RUN WINDOWCLOSE. RETURN NO-APPLY. END. /* WHEN 'UPDATE' THEN DO: VUpdate = TRUE. RETURN NO-APPLY. END. WHEN 'NOTUPDATE' THEN DO: VUpdate = FALSE. RETURN NO-APPLY. END. */ END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_DRUCK W-Auftrag PROCEDURE VIPER_DRUCK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipKnr AS INT NO-UNDO. DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO. DEF VAR cDateiName AS CHAR NO-UNDO. DEF VAR cvpr_Dokument AS CHAR NO-UNDO. DEF VAR cPDFName AS CHAR NO-UNDO. FIND Savko NO-LOCK WHERE Savko.Firma = GVFirma AND Savko.Aufnr = ipAufnr NO-ERROR. IF NOT AVAILABLE Savko THEN RETURN 'ERROR'. DO WHILE TRUE: cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3.vpr', STRING(ipKnr ,'999999'), STRING(Savko.Faknr,'999999'), 'SammFak'). IF SEARCH(cvpr_Dokument) <> ? THEN LEAVE. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3.vpr', STRING(ipKnr ,'999999'), STRING(Savko.Faknr,'999999'), 'Faktura'). IF SEARCH(cvpr_Dokument) <> ? THEN LEAVE. cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3.vpr', STRING(ipKnr ,'999999'), STRING(Savko.Faknr,'999999'), 'LiefFak'). LEAVE. END. cDateiName = SEARCH(cvpr_Dokument). IF cDateiName = ? OR cDateiName = '' THEN RETURN 'ERROR'. FILE-INFO:FILE-NAME = cDateiName. cDateiName = FILE-INFO:FULL-PATHNAME. cDateiName = SEARCH(cvpr_Dokument). RUN druck_viper.p ( cDateiName ). RETURN RETURN-VALUE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WINDOWCLOSE W-Auftrag PROCEDURE WINDOWCLOSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR AktSeite AS INT NO-UNDO. Ja = FALSE. PUBLISH 'ENDEAUFTRAG'. IF Ja THEN RETURN NO-APPLY. RUN get-attribute ('current-page':U). AktSeite = INTEGER(RETURN-VALUE). IF AktSeite <> 1 THEN DO: RUN select-page(1). RUN view-page (1). EndFlag = FALSE. RETURN NO-APPLY. END. IF EndFlag THEN DO: EndFlag = FALSE. IF EscFlag = FALSE THEN RETURN NO-APPLY. END. IF NOT Ja THEN DO: RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). APPLY "CLOSE":U TO THIS-PROCEDURE. RETURN. END. EndFlag = FALSE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getKundennummer W-Auftrag FUNCTION getKundennummer RETURNS INTEGER ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ RETURN XVKnr. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME