&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 fFrameWin /*------------------------------------------------------------------------ File: Description: from cntnrfrm.w - ADM2 SmartFrame Template Input Parameters: Output Parameters: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEFINE VARIABLE SAktiv AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE FMut AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE ProgName AS CHARACTER NO-UNDO. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO. DEFINE VARIABLE D1Firma AS CHARACTER NO-UNDO. DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO. DEFINE VARIABLE FBFirma AS CHARACTER NO-UNDO. DEFINE VARIABLE GlobFir AS CHARACTER NO-UNDO. DEFINE VARIABLE GlobFil AS CHARACTER INIT '0000' NO-UNDO. DEFINE VARIABLE GlobKon AS CHARACTER INIT '9999' NO-UNDO. DEFINE VARIABLE Datum AS DATE NO-UNDO. DEFINE VARIABLE fCancel AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE fNeu AS LOG NO-UNDO INIT TRUE . DEFINE VARIABLE fTest AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE FRW AS CHARACTER NO-UNDO. DEFINE VARIABLE BasFrw AS CHARACTER NO-UNDO INIT 'CHF'. DEFINE VARIABLE VAdresse AS CHARACTER NO-UNDO. DEFINE VARIABLE opRecid AS RECID NO-UNDO. DEFINE VARIABLE rAdresse AS RECID NO-UNDO. DEFINE VARIABLE lView AS LOGICAL NO-UNDO. DEFINE BUFFER bWaehrung FOR Waehrung. DEFINE BUFFER bKondi FOR Kondi . DEFINE BUFFER bDebst FOR Debst . DEFINE BUFFER bDebop FOR Debop . DEFINE BUFFER b1MWSTAns FOR MWSTAns . DEFINE BUFFER b2MWSTAns FOR MWSTAns . DEFINE BUFFER b3MWSTAns FOR MWSTAns . DEFINE BUFFER bAdresse FOR Adresse . DEFINE TEMP-TABLE tKonto FIELD Konto AS CHARACTER FIELD Betrag AS DECIMAL FIELD Mwst AS DECIMAL FIELD Mwst_Cd AS INTEGER. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartFrame &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER FRAME &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 fMain &Scoped-define BROWSE-NAME Br_OffenePosten /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES Debop /* Definitions for BROWSE Br_OffenePosten */ &Scoped-define FIELDS-IN-QUERY-Br_OffenePosten Debop.Faknr Debop.Fakdat ~ Debop.Faellig Debop.Fakbetr Debop.Fakbetr_FRW Debop.FRW Debop.Kurs ~ Debop.Zahdat Debop.Zahbetr Debop.Zahbetr_FRW Debop.Skonto Debop.Skonto_FRW ~ Debop.Saldo Debop.Saldo_FRW &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_OffenePosten &Scoped-define QUERY-STRING-Br_OffenePosten FOR EACH Debop NO-LOCK INDEXED-REPOSITION &Scoped-define OPEN-QUERY-Br_OffenePosten OPEN QUERY Br_OffenePosten FOR EACH Debop NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-Br_OffenePosten Debop &Scoped-define FIRST-TABLE-IN-QUERY-Br_OffenePosten Debop /* Definitions for FRAME fMain */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_Knr Btn_SuchKunde F_Faknr F_Datum CB_Kondi ~ F_Faellig F_Konto_S F_Konto_H CB_Frw F_Kurs F_Adresse F_FakbetrFrw ~ F_Fakbetr F_SkberFrw F_Saldo CB_MWST-1 F_Konto_H_1 F_Betrag-1 CB_MWST-2 ~ F_Konto_H_2 F_Betrag-2 F_SaldoFrw CB_MWST-3 F_Konto_H_3 F_Betrag-3 ~ F_Buchtext3 F_Faktor F_Skber Br_OffenePosten F_MWSt-1 F_MWSt-2 F_MWSt-3 ~ RECT-6 RECT-7 &Scoped-Define DISPLAYED-OBJECTS F_Knr F_Faknr F_Datum CB_Kondi F_Faellig ~ F_Konto_S F_Konto_H CB_Frw F_Kurs F_Adresse F_FakbetrFrw F_Fakbetr ~ F_SkberFrw F_Saldo CB_MWST-1 F_Konto_H_1 F_Betrag-1 CB_MWST-2 F_Konto_H_2 ~ F_Betrag-2 F_SaldoFrw CB_MWST-3 F_Konto_H_3 F_Betrag-3 F_Buchtext3 F_Faktor ~ F_Skber F_MWSt-1 F_MWSt-2 F_MWSt-3 /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_Faknr F_Datum CB_Kondi F_Faellig F_Konto_S ~ F_Konto_H CB_Frw F_Kurs F_FakbetrFrw F_Fakbetr F_SkberFrw CB_MWST-1 ~ F_Konto_H_1 F_Betrag-1 CB_MWST-2 F_Konto_H_2 F_Betrag-2 CB_MWST-3 ~ F_Konto_H_3 F_Betrag-3 F_Buchtext3 F_Faktor F_Skber F_MWSt-1 F_MWSt-2 ~ F_MWSt-3 /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Speichern IMAGE-UP FILE "grafik/saverec.bmp":U LABEL "Sp" SIZE 5 BY 1.19. DEFINE BUTTON Btn_SuchKunde AUTO-GO LABEL "K&unde" SIZE 8 BY 1. DEFINE VARIABLE CB_Frw AS CHARACTER FORMAT "X(256)":U LABEL "Frw" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 43 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Kondi AS CHARACTER FORMAT "X(256)":U LABEL "Kondition" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 33.4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_MWST-1 AS CHARACTER FORMAT "X(256)":U LABEL "MWSt" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 43 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_MWST-2 AS CHARACTER FORMAT "X(256)":U LABEL "MWSt" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 43 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_MWST-3 AS CHARACTER FORMAT "X(256)":U LABEL "MWSt" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 43 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Adresse AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 68 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Betrag-1 AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "Betrag" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 TOOLTIP "Skontoberechtigter Betrag" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Betrag-2 AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "Betrag" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 TOOLTIP "Skontoberechtigter Betrag" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Betrag-3 AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "Betrag" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 TOOLTIP "Skontoberechtigter Betrag" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Buchtext3 AS CHARACTER FORMAT "x(40)":U LABEL "Buchtext" VIEW-AS FILL-IN NATIVE SIZE 43 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U LABEL "Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Faellig AS DATE FORMAT "99.99.9999":U LABEL "F„llig" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Fakbetr AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_FakbetrFrw AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "Betr/-CHF" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "9999999":U INITIAL 0 LABEL "Faknr" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Faktor AS INTEGER FORMAT "zzz9":U INITIAL 0 LABEL "Faktor" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Konto_H AS CHARACTER FORMAT "x(12)":U LABEL "Konto H" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 TOOLTIP "Fibu-Ertragskonto" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Konto_H_1 AS CHARACTER FORMAT "x(12)":U VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 TOOLTIP "Fibu-Ertragskonto" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Konto_H_2 AS CHARACTER FORMAT "x(12)":U VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 TOOLTIP "Fibu-Ertragskonto" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Konto_H_3 AS CHARACTER FORMAT "x(12)":U VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 TOOLTIP "Fibu-Ertragskonto" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Konto_S AS CHARACTER FORMAT "x(12)":U LABEL "Konto S" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 TOOLTIP "Fibu-Sollkonto (Debitorsammelkonto)" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Kurs AS DECIMAL FORMAT "z,zz9.9999999":U INITIAL 0 LABEL "Kurs" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_MWSt-1 AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_MWSt-2 AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_MWSt-3 AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Saldo AS DECIMAL FORMAT "zzz,zzz,zz9.99-":U INITIAL 0 LABEL "CHF" VIEW-AS FILL-IN NATIVE SIZE 23 BY 1 BGCOLOR 14 NO-UNDO. DEFINE VARIABLE F_SaldoFrw AS DECIMAL FORMAT "zzz,zzz,zz9.99-":U INITIAL 0 LABEL "CHF" VIEW-AS FILL-IN NATIVE SIZE 23 BY 1 BGCOLOR 14 NO-UNDO. DEFINE VARIABLE F_Skber AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SkberFrw AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "SK Ber/-CHF" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 TOOLTIP "Skontoberechtigter Betrag" BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-6 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 132 BY 2.57. DEFINE RECTANGLE RECT-7 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 132 BY 9.29. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_OffenePosten FOR Debop SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_OffenePosten &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_OffenePosten fFrameWin _STRUCTURED QUERY Br_OffenePosten NO-LOCK DISPLAY Debop.Faknr FORMAT "zzzzz9":U WIDTH 8 Debop.Fakdat COLUMN-LABEL "Datum" FORMAT "99.99.9999":U Debop.Faellig COLUMN-LABEL "Fällig" FORMAT "99.99.9999":U Debop.Fakbetr COLUMN-LABEL "Betrag" FORMAT "zzz,zzz,zz9.99-":U Debop.Fakbetr_FRW COLUMN-LABEL "Betrag Frw" FORMAT "zzz,zzz,zz9.99-":U Debop.FRW COLUMN-LABEL "Wäh" FORMAT "x(03)":U Debop.Kurs FORMAT "zzz9.9999":U Debop.Zahdat COLUMN-LABEL "l. Zahlung" FORMAT "99.99.9999":U Debop.Zahbetr COLUMN-LABEL "bezahlt" FORMAT "zzz,zzz,zz9.99-":U Debop.Zahbetr_FRW COLUMN-LABEL "bezahlt Frw" FORMAT "zzz,zzz,zz9.99-":U Debop.Skonto FORMAT "zzz,zz9.99-":U Debop.Skonto_FRW COLUMN-LABEL "Skonto Frw" FORMAT "zzz,zzz,zz9.99-":U Debop.Saldo FORMAT "zzz,zzz,zz9.99-":U Debop.Saldo_FRW COLUMN-LABEL "Saldo Frw" FORMAT "zzz,zzz,zz9.99-":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS NO-TAB-STOP SIZE 132 BY 10.67. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain F_Knr AT ROW 1.52 COL 9 COLON-ALIGNED NO-LABELS Btn_SuchKunde AT ROW 1.52 COL 3 NO-TAB-STOP F_Faknr AT ROW 4 COL 9 COLON-ALIGNED F_Datum AT ROW 4 COL 29 COLON-ALIGNED CB_Kondi AT ROW 4 COL 56 COLON-ALIGNED F_Faellig AT ROW 4 COL 106 COLON-ALIGNED F_Konto_S AT ROW 5 COL 29 COLON-ALIGNED F_Konto_H AT ROW 5 COL 56 COLON-ALIGNED CB_Frw AT ROW 6 COL 29 COLON-ALIGNED F_Kurs AT ROW 6 COL 87 COLON-ALIGNED F_Adresse AT ROW 1.52 COL 21 COLON-ALIGNED NO-LABELS NO-TAB-STOP F_FakbetrFrw AT ROW 7 COL 17.8 COLON-ALIGNED F_Fakbetr AT ROW 7 COL 40.8 COLON-ALIGNED F_SkberFrw AT ROW 7 COL 87 COLON-ALIGNED F_Saldo AT ROW 1.52 COL 106 COLON-ALIGNED NO-TAB-STOP CB_MWST-1 AT ROW 8 COL 17.8 COLON-ALIGNED F_Konto_H_1 AT ROW 8 COL 62 COLON-ALIGNED NO-LABELS F_Betrag-1 AT ROW 8 COL 87 COLON-ALIGNED CB_MWST-2 AT ROW 9 COL 17.8 COLON-ALIGNED F_Konto_H_2 AT ROW 9 COL 62 COLON-ALIGNED NO-LABELS F_Betrag-2 AT ROW 9 COL 87 COLON-ALIGNED F_SaldoFrw AT ROW 2.52 COL 106 COLON-ALIGNED NO-TAB-STOP CB_MWST-3 AT ROW 10 COL 17.8 COLON-ALIGNED F_Konto_H_3 AT ROW 10 COL 62 COLON-ALIGNED NO-LABELS F_Betrag-3 AT ROW 10 COL 87 COLON-ALIGNED F_Buchtext3 AT ROW 11 COL 87 COLON-ALIGNED Btn_Speichern AT ROW 11.52 COL 4 F_Faktor AT ROW 6 COL 122 COLON-ALIGNED NO-TAB-STOP F_Skber AT ROW 7 COL 110 COLON-ALIGNED NO-TAB-STOP Br_OffenePosten AT ROW 13.52 COL 2 F_MWSt-1 AT ROW 8 COL 110 COLON-ALIGNED NO-TAB-STOP F_MWSt-2 AT ROW 9 COL 110 COLON-ALIGNED NO-TAB-STOP F_MWSt-3 AT ROW 10 COL 110 COLON-ALIGNED NO-TAB-STOP RECT-6 AT ROW 1.24 COL 2 RECT-7 AT ROW 3.71 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 134.6 BY 23.48. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartFrame Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target 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 fFrameWin ASSIGN HEIGHT = 23.48 WIDTH = 134.6. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB fFrameWin /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW fFrameWin VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain NOT-VISIBLE FRAME-NAME Custom */ /* BROWSE-TAB Br_OffenePosten F_Skber fMain */ ASSIGN FRAME fMain:HIDDEN = TRUE. ASSIGN Br_OffenePosten:COLUMN-RESIZABLE IN FRAME fMain = TRUE Br_OffenePosten:COLUMN-MOVABLE IN FRAME fMain = TRUE. /* SETTINGS FOR BUTTON Btn_Speichern IN FRAME fMain NO-ENABLE */ ASSIGN Btn_SuchKunde:PRIVATE-DATA IN FRAME fMain = "SUCHEN". /* SETTINGS FOR COMBO-BOX CB_Frw IN FRAME fMain 6 */ /* SETTINGS FOR COMBO-BOX CB_Kondi IN FRAME fMain 6 */ /* SETTINGS FOR COMBO-BOX CB_MWST-1 IN FRAME fMain 6 */ /* SETTINGS FOR COMBO-BOX CB_MWST-2 IN FRAME fMain 6 */ /* SETTINGS FOR COMBO-BOX CB_MWST-3 IN FRAME fMain 6 */ ASSIGN F_Adresse:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_Betrag-1 IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Betrag-2 IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Betrag-3 IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Buchtext3 IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Datum IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Faellig IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Fakbetr IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_FakbetrFrw IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Faknr IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Faktor IN FRAME fMain 6 */ ASSIGN F_Faktor:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_Konto_H IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Konto_H_1 IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Konto_H_2 IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Konto_H_3 IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Konto_S IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Kurs IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_MWSt-1 IN FRAME fMain 6 */ ASSIGN F_MWSt-1:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_MWSt-2 IN FRAME fMain 6 */ ASSIGN F_MWSt-2:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_MWSt-3 IN FRAME fMain 6 */ ASSIGN F_MWSt-3:READ-ONLY IN FRAME fMain = TRUE. ASSIGN F_Saldo:READ-ONLY IN FRAME fMain = TRUE. ASSIGN F_SaldoFrw:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_Skber IN FRAME fMain 6 */ ASSIGN F_Skber:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_SkberFrw IN FRAME fMain 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_OffenePosten /* Query rebuild information for BROWSE Br_OffenePosten _TblList = "AnaDat.Debop" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] > AnaDat.Debop.Faknr "Debop.Faknr" ? ? "integer" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[2] > AnaDat.Debop.Fakdat "Debop.Fakdat" "Datum" ? "date" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[3] > AnaDat.Debop.Faellig "Debop.Faellig" "Fällig" ? "date" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] > AnaDat.Debop.Fakbetr "Debop.Fakbetr" "Betrag" ? "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] > AnaDat.Debop.Fakbetr_FRW "Debop.Fakbetr_FRW" "Betrag Frw" ? "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[6] > AnaDat.Debop.FRW "Debop.FRW" "Wäh" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[7] = AnaDat.Debop.Kurs _FldNameList[8] > AnaDat.Debop.Zahdat "Debop.Zahdat" "l. Zahlung" ? "date" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[9] > AnaDat.Debop.Zahbetr "Debop.Zahbetr" "bezahlt" ? "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[10] > AnaDat.Debop.Zahbetr_FRW "Debop.Zahbetr_FRW" "bezahlt Frw" ? "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[11] = AnaDat.Debop.Skonto _FldNameList[12] > AnaDat.Debop.Skonto_FRW "Debop.Skonto_FRW" "Skonto Frw" ? "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[13] = AnaDat.Debop.Saldo _FldNameList[14] > AnaDat.Debop.Saldo_FRW "Debop.Saldo_FRW" "Saldo Frw" ? "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE Br_OffenePosten */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME fMain /* Query rebuild information for FRAME fMain _Options = "" _Query is NOT OPENED */ /* FRAME fMain */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define BROWSE-NAME Br_OffenePosten &Scoped-define SELF-NAME Br_OffenePosten &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_OffenePosten fFrameWin ON LEFT-MOUSE-DBLCLICK OF Br_OffenePosten IN FRAME fMain DO: IF AVAILABLE Debop THEN DO: F_Faknr:SCREEN-VALUE = STRING(Debop.Faknr). APPLY 'ENTRY' TO F_Faknr. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_OffenePosten fFrameWin ON RETURN OF Br_OffenePosten IN FRAME fMain DO: IF AVAILABLE Debop THEN DO: F_Faknr:SCREEN-VALUE = STRING(Debop.Faknr). APPLY 'ENTRY' TO F_Faknr. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Speichern &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Speichern fFrameWin ON CHOOSE OF Btn_Speichern IN FRAME fMain /* Sp */ DO: RUN SPEICHERN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_SuchKunde &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_SuchKunde fFrameWin ON CHOOSE OF Btn_SuchKunde IN FRAME fMain /* Kunde */ DO: APPLY 'ALT-F'. APPLY 'ENTRY' TO F_Knr IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Frw &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Frw fFrameWin ON RETURN OF CB_Frw IN FRAME fMain /* Frw */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Frw fFrameWin ON VALUE-CHANGED OF CB_Frw IN FRAME fMain /* Frw */ DO: DEFINE VARIABLE Betr AS DECIMAL NO-UNDO. DEFINE VARIABLE BetrBas AS DECIMAL NO-UNDO. DO WITH FRAME {&FRAME-NAME}: FIND Waehrung NO-LOCK WHERE Waehrung.Firma = GlobFir AND Waehrung.Frw = SELF:SCREEN-VALUE NO-ERROR. IF NOT AVAILABLE Waehrung THEN DO: CB_Frw:SCREEN-VALUE = Frw NO-ERROR. END. Frw = SELF:SCREEN-VALUE NO-ERROR. F_Kurs :SCREEN-VALUE = STRING(Waehrung.Kurs) NO-ERROR. F_Faktor:SCREEN-VALUE = STRING(Waehrung.Faktor) NO-ERROR. RUN RECHNEN ( INPUT 09 ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Kondi &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Kondi fFrameWin ON RETURN OF CB_Kondi IN FRAME fMain /* Kondition */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Kondi fFrameWin ON VALUE-CHANGED OF CB_Kondi IN FRAME fMain /* Kondition */ DO: DO WITH FRAME {&FRAME-NAME}: FIND FIRST BKondi USE-INDEX Kondi-k1 WHERE BKondi.Kond = INTEGER(SELF:SCREEN-VALUE) NO-LOCK NO-ERROR. ERROR-STATUS:ERROR = FALSE. ASSIGN F_Datum NO-ERROR. IF ERROR-STATUS:ERROR THEN F_Datum = TODAY. F_Datum :SCREEN-VALUE = STRING(F_Datum). F_Faellig:SCREEN-VALUE = STRING(F_Datum + BKondi.Faellig). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_MWST-1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_MWST-1 fFrameWin ON RETURN OF CB_MWST-1 IN FRAME fMain /* MWSt */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_MWST-1 fFrameWin ON VALUE-CHANGED OF CB_MWST-1 IN FRAME fMain /* MWSt */ DO: DEFINE VARIABLE Saldo AS DECIMAL NO-UNDO. DEFINE VARIABLE Betr AS DECIMAL NO-UNDO. DEFINE VARIABLE Mwst AS DECIMAL NO-UNDO. DEFINE VARIABLE Rund AS DECIMAL DECIMALS 4 NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Saldo = DECIMAL(F_Fakbetr :SCREEN-VALUE) - DECIMAL(F_Betrag-2:SCREEN-VALUE) - DECIMAL(F_MWST-2 :SCREEN-VALUE) - DECIMAL(F_Betrag-3:SCREEN-VALUE) - DECIMAL(F_MWST-3 :SCREEN-VALUE) . FIND LAST B1MWSTAns NO-LOCK USE-INDEX MWSTAns-k1 WHERE B1MWSTAns.MWSt_Cd = INTEGER(CB_MWST-1:SCREEN-VALUE) AND B1MWSTAns.Datum <= DATE (F_Datum :SCREEN-VALUE) NO-ERROR. IF B1MWSTAns.Incl THEN DO: Betr = Saldo. Mwst = 0. END. ELSE DO: Rund = Saldo * B1MWSTAns.Ansatz / (100 + B1MWSTAns.Ansatz). RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rund ). Mwst = Rund. Betr = Saldo - Mwst. END. F_Betrag-1:SCREEN-VALUE = STRING(Betr). F_MWST-1 :SCREEN-VALUE = STRING(Mwst). END. RUN BUTTON_SPEICHERN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_MWST-2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_MWST-2 fFrameWin ON RETURN OF CB_MWST-2 IN FRAME fMain /* MWSt */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_MWST-2 fFrameWin ON VALUE-CHANGED OF CB_MWST-2 IN FRAME fMain /* MWSt */ DO: DEFINE VARIABLE Saldo AS DECIMAL NO-UNDO. DEFINE VARIABLE Betr AS DECIMAL NO-UNDO. DEFINE VARIABLE Mwst AS DECIMAL NO-UNDO. DEFINE VARIABLE Rund AS DECIMAL DECIMALS 4 NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Saldo = DECIMAL(F_Fakbetr :SCREEN-VALUE) - DECIMAL(F_Betrag-1:SCREEN-VALUE) - DECIMAL(F_MWST-1 :SCREEN-VALUE) - DECIMAL(F_Betrag-3:SCREEN-VALUE) - DECIMAL(F_MWST-3 :SCREEN-VALUE). FIND LAST B2MWSTAns NO-LOCK USE-INDEX MWSTAns-k1 WHERE B2MWSTAns.MWSt_Cd = INTEGER(CB_MWST-2:SCREEN-VALUE) AND B2MWSTAns.Datum <= DATE (F_Datum :SCREEN-VALUE) NO-ERROR. IF B2MWSTAns.Incl THEN DO: Betr = Saldo. Mwst = 0. END. ELSE DO: Rund = Saldo * B2MWSTAns.Ansatz / (100 + B2MWSTAns.Ansatz). RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rund ). Mwst = Rund. Betr = Saldo - Mwst. END. F_Betrag-2:SCREEN-VALUE = STRING(Betr). F_MWST-2 :SCREEN-VALUE = STRING(Mwst). END. RUN BUTTON_SPEICHERN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_MWST-3 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_MWST-3 fFrameWin ON RETURN OF CB_MWST-3 IN FRAME fMain /* MWSt */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_MWST-3 fFrameWin ON VALUE-CHANGED OF CB_MWST-3 IN FRAME fMain /* MWSt */ DO: DEFINE VARIABLE Saldo AS DECIMAL NO-UNDO. DEFINE VARIABLE Betr AS DECIMAL NO-UNDO. DEFINE VARIABLE Mwst AS DECIMAL NO-UNDO. DEFINE VARIABLE Rund AS DECIMAL DECIMALS 4 NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Saldo = DECIMAL(F_Fakbetr :SCREEN-VALUE) - DECIMAL(F_Betrag-1:SCREEN-VALUE) - DECIMAL(F_MWST-1 :SCREEN-VALUE) - DECIMAL(F_Betrag-2:SCREEN-VALUE) - DECIMAL(F_MWST-2 :SCREEN-VALUE). FIND LAST B3MWSTAns USE-INDEX MWSTAns-k1 WHERE B3MWSTAns.MWSt_Cd = INTEGER(CB_MWST-3:SCREEN-VALUE) AND B3MWSTAns.Datum <= DATE (F_Datum :SCREEN-VALUE) NO-LOCK NO-ERROR. IF B3MWSTAns.Incl THEN DO: Betr = Saldo. Mwst = 0. END. ELSE DO: Rund = Saldo * B3MWSTAns.Ansatz / (100 + B3MWSTAns.Ansatz). RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rund ). Mwst = Rund. Betr = Saldo - Mwst. END. F_Betrag-3:SCREEN-VALUE = STRING(Betr). F_MWST-3 :SCREEN-VALUE = STRING(Mwst). END. RUN BUTTON_SPEICHERN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Betrag-1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Betrag-1 fFrameWin ON LEAVE OF F_Betrag-1 IN FRAME fMain /* Betrag */ DO: IF DECIMAL(SELF:SCREEN-VALUE) = 0 THEN DO: APPLY 'VALUE-CHANGED' TO CB_MWST-1. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Betrag-1 fFrameWin ON VALUE-CHANGED OF F_Betrag-1 IN FRAME fMain /* Betrag */ DO: DEFINE VARIABLE Saldo AS DECIMAL NO-UNDO. DEFINE VARIABLE Mwst AS DECIMAL NO-UNDO. DEFINE VARIABLE Rund AS DECIMAL DECIMALS 4 NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Saldo = DECIMAL(SELF:SCREEN-VALUE). IF B1MWSTAns.Incl THEN DO: Mwst = 0. END. ELSE DO: Rund = Saldo * B1MWSTAns.Ansatz / 100. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rund ). Mwst = Rund. END. F_MWST-1 :SCREEN-VALUE = STRING(Mwst). END. RUN BUTTON_SPEICHERN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Betrag-2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Betrag-2 fFrameWin ON LEAVE OF F_Betrag-2 IN FRAME fMain /* Betrag */ DO: IF DECIMAL(SELF:SCREEN-VALUE) = 0 THEN DO: APPLY 'VALUE-CHANGED' TO CB_MWST-2. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Betrag-2 fFrameWin ON RETURN OF F_Betrag-2 IN FRAME fMain /* Betrag */ DO: IF DECIMAL(SELF:SCREEN-VALUE) = 0 THEN DO: APPLY 'VALUE-CHANGED' TO CB_MWST-2. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Betrag-2 fFrameWin ON VALUE-CHANGED OF F_Betrag-2 IN FRAME fMain /* Betrag */ DO: DEFINE VARIABLE Saldo AS DECIMAL NO-UNDO. DEFINE VARIABLE Mwst AS DECIMAL NO-UNDO. DEFINE VARIABLE Rund AS DECIMAL DECIMALS 4 NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Saldo = DECIMAL(SELF:SCREEN-VALUE). IF B2MWSTAns.Incl THEN DO: Mwst = 0. END. ELSE DO: Rund = Saldo * B2MWSTAns.Ansatz / 100. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rund ). Mwst = Rund. END. F_MWST-2 :SCREEN-VALUE = STRING(Mwst). END. RUN BUTTON_SPEICHERN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Betrag-3 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Betrag-3 fFrameWin ON LEAVE OF F_Betrag-3 IN FRAME fMain /* Betrag */ DO: IF DECIMAL(SELF:SCREEN-VALUE) = 0 THEN DO: APPLY 'VALUE-CHANGED' TO CB_MWST-3. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Betrag-3 fFrameWin ON RETURN OF F_Betrag-3 IN FRAME fMain /* Betrag */ DO: IF DECIMAL(SELF:SCREEN-VALUE) = 0 THEN DO: APPLY 'VALUE-CHANGED' TO CB_MWST-3. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Betrag-3 fFrameWin ON VALUE-CHANGED OF F_Betrag-3 IN FRAME fMain /* Betrag */ DO: DEFINE VARIABLE Saldo AS DECIMAL NO-UNDO. DEFINE VARIABLE Mwst AS DECIMAL NO-UNDO. DEFINE VARIABLE Rund AS DECIMAL DECIMALS 4 NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Saldo = DECIMAL(SELF:SCREEN-VALUE). IF B3MWSTAns.Incl THEN DO: Mwst = 0. END. ELSE DO: Rund = Saldo * B3MWSTAns.Ansatz / 100. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rund ). Mwst = Rund. END. F_MWST-3 :SCREEN-VALUE = STRING(Mwst). END. RUN BUTTON_SPEICHERN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Datum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum fFrameWin ON LEAVE OF F_Datum IN FRAME fMain /* Datum */ DO: DO WITH FRAME {&FRAME-NAME}: ERROR-STATUS:ERROR = FALSE. ASSIGN F_Datum NO-ERROR. IF ERROR-STATUS:ERROR THEN F_Datum = TODAY. SELF :SCREEN-VALUE = STRING(F_Datum). F_Faellig:SCREEN-VALUE = STRING(F_Datum + BKondi.Faellig). END. RUN COMBO_MWST. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Fakbetr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Fakbetr fFrameWin ON ENTRY OF F_Fakbetr IN FRAME fMain /* / */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. Frw = CB_Frw:SCREEN-VALUE . IF Frw = BasFrw THEN DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Fakbetr fFrameWin ON VALUE-CHANGED OF F_Fakbetr IN FRAME fMain /* / */ DO: DO WITH FRAME {&FRAME-NAME}: IF F_FakbetrFrw = 0 THEN DO: F_FakbetrFrw:SCREEN-VALUE = STRING(DECIMAL(SELF :SCREEN-VALUE) / DECIMAL(F_Kurs :SCREEN-VALUE) * INTEGER(F_Faktor:SCREEN-VALUE)). END. ELSE DO: F_Kurs:SCREEN-VALUE = STRING(DECIMAL(F_Fakbetr :SCREEN-VALUE) * INTEGER(F_Faktor :SCREEN-VALUE) / DECIMAL(F_FakbetrFrw:SCREEN-VALUE)). END. IF F_SkberFrw = 0 THEN F_SkberFrw:SCREEN-VALUE = F_FakbetrFrw:SCREEN-VALUE. RUN RECHNEN ( INPUT 08 ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_FakbetrFrw &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_FakbetrFrw fFrameWin ON ENTRY OF F_FakbetrFrw IN FRAME fMain /* Betr/-CHF */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. Frw = CB_Frw:SCREEN-VALUE . END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_FakbetrFrw fFrameWin ON VALUE-CHANGED OF F_FakbetrFrw IN FRAME fMain /* Betr/-CHF */ DO: DO WITH FRAME {&FRAME-NAME}: IF F_FakbetrFrw = F_SkberFrw THEN F_SkberFrw:SCREEN-VALUE = F_FakbetrFrw:SCREEN-VALUE. RUN RECHNEN ( INPUT 09 ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Faknr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Faknr fFrameWin ON CURSOR-DOWN OF F_Faknr IN FRAME fMain /* Faknr */ DO: APPLY 'ENTRY' TO Br_OffenePosten. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Faknr fFrameWin ON ENTRY OF F_Faknr IN FRAME fMain /* Faknr */ DO: DO WITH FRAME {&FRAME-NAME}: IF INTEGER(F_Knr:SCREEN-VALUE) = 0 THEN DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Faknr fFrameWin ON LEAVE OF F_Faknr IN FRAME fMain /* Faknr */ DO: fTest = FALSE. IF KEYFUNCTION (LASTKEY) <> 'RETURN' AND KEYFUNCTION (LASTKEY) <> 'TAB' THEN RETURN NO-APPLY. RUN FAKNR_TEST ( INPUT FALSE ). IF RETURN-VALUE = 'ERROR' THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Knr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr fFrameWin ON END-ERROR OF F_Knr IN FRAME fMain DO: DEFINE VARIABLE hContainer AS HANDLE NO-UNDO. RUN SET_CANCEL. hContainer = DYNAMIC-FUNCTION('getContainerSource':U) NO-ERROR. IF VALID-HANDLE(hContainer) THEN RUN ENDE IN hContainer. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr fFrameWin ON ENTRY OF F_Knr IN FRAME fMain DO: IF fCancel = TRUE THEN DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr fFrameWin ON LEAVE OF F_Knr IN FRAME fMain DO: DEFINE VARIABLE hEntry AS WIDGET-HANDLE NO-UNDO. hEntry = LAST-EVENT:WIDGET-ENTER. IF NOT VALID-HANDLE(hEntry) THEN DO: fCancel = TRUE. END. ELSE IF hEntry:PRIVATE-DATA = 'SUCHEN' THEN DO: fCancel = TRUE. END. IF fCancel THEN DO: RETURN. END. IF INTEGER(SELF:SCREEN-VALUE) = 0 THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. RUN ADRESSE ( INPUT INTEGER(SELF:SCREEN-VALUE) ). IF RETURN-VALUE = 'ERROR' THEN DO: DYNAMIC-FUNCTION('FEHLER', INPUT 1015 ) NO-ERROR. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. IF RETURN-VALUE = 'ERRORDEBITOR' THEN DO: DYNAMIC-FUNCTION('FEHLER', INPUT 1019 ) NO-ERROR. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. PUBLISH 'REPOSADRESSE' ( INPUT rAdresse ). fCancel = TRUE. APPLY 'ENTRY' TO F_Faknr IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Konto_H &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto_H fFrameWin ON LEAVE OF F_Konto_H IN FRAME fMain /* Konto H */ DO: DEFINE VARIABLE cString AS CHARACTER NO-UNDO. cString = CHR(01) + CHR(01) + SELF:SCREEN-VALUE. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN SELF:BGCOLOR = 14. ELSE DO WITH FRAME {&FRAME-NAME}: SELF:SCREEN-VALUE = ENTRY(1, cString, CHR(01)) NO-ERROR. SELF:BGCOLOR = 15. IF F_Konto_H_1:SCREEN-VALUE = '' THEN F_Konto_H_1:SCREEN-VALUE = SELF:SCREEN-VALUE. IF F_Konto_H_2:SCREEN-VALUE = '' THEN F_Konto_H_2:SCREEN-VALUE = SELF:SCREEN-VALUE. IF F_Konto_H_3:SCREEN-VALUE = '' THEN F_Konto_H_3:SCREEN-VALUE = SELF:SCREEN-VALUE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Konto_H_1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto_H_1 fFrameWin ON ENTRY OF F_Konto_H_1 IN FRAME fMain DO: IF SELF:SCREEN-VALUE = '' THEN SELF:SCREEN-VALUE = F_Konto_H:SCREEN-VALUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto_H_1 fFrameWin ON LEAVE OF F_Konto_H_1 IN FRAME fMain DO: DEFINE VARIABLE cString AS CHARACTER NO-UNDO. cString = CHR(01) + CHR(01) + SELF:SCREEN-VALUE. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN SELF:BGCOLOR = 14. ELSE DO: SELF:SCREEN-VALUE = ENTRY(1, cString, CHR(01)) NO-ERROR. SELF:BGCOLOR = 15. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Konto_H_2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto_H_2 fFrameWin ON LEAVE OF F_Konto_H_2 IN FRAME fMain DO: DEFINE VARIABLE cString AS CHARACTER NO-UNDO. cString = CHR(01) + CHR(01) + SELF:SCREEN-VALUE. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN SELF:BGCOLOR = 14. ELSE DO: SELF:SCREEN-VALUE = ENTRY(1, cString, CHR(01)) NO-ERROR. SELF:BGCOLOR = 15. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Konto_H_3 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto_H_3 fFrameWin ON LEAVE OF F_Konto_H_3 IN FRAME fMain DO: DEFINE VARIABLE cString AS CHARACTER NO-UNDO. cString = CHR(01) + CHR(01) + SELF:SCREEN-VALUE. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN SELF:BGCOLOR = 14. ELSE DO: SELF:SCREEN-VALUE = ENTRY(1, cString, CHR(01)) NO-ERROR. SELF:BGCOLOR = 15. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Konto_S &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Konto_S fFrameWin ON LEAVE OF F_Konto_S IN FRAME fMain /* Konto S */ DO: DEFINE VARIABLE cString AS CHARACTER NO-UNDO. cString = CHR(01) + CHR(01) + SELF:SCREEN-VALUE. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN SELF:BGCOLOR = 14. ELSE DO: SELF:SCREEN-VALUE = ENTRY(1, cString, CHR(01)) NO-ERROR. SELF:BGCOLOR = 15. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Kurs &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kurs fFrameWin ON ENTRY OF F_Kurs IN FRAME fMain /* Kurs */ DO: IF Frw = BasFrw THEN DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kurs fFrameWin ON VALUE-CHANGED OF F_Kurs IN FRAME fMain /* Kurs */ DO: RUN RECHNEN ( INPUT 09 ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Skber &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Skber fFrameWin ON ENTRY OF F_Skber IN FRAME fMain /* / */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. Frw = CB_Frw:SCREEN-VALUE . END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_SkberFrw &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_SkberFrw fFrameWin ON ENTRY OF F_SkberFrw IN FRAME fMain /* SK Ber/-CHF */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. Frw = CB_Frw:SCREEN-VALUE . END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_SkberFrw fFrameWin ON LEAVE OF F_SkberFrw IN FRAME fMain /* SK Ber/-CHF */ DO: DO WITH FRAME {&FRAME-NAME}: RUN RECHNEN ( INPUT 08 ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK fFrameWin /* *************************** Main Block *************************** */ sAktiv = DYNAMIC-FUNCTION('getSuperaktiv':U) NO-ERROR. IF sAktiv THEN DO: Firma = DYNAMIC-FUNCTION('getMandant':U ). D1Firma = DYNAMIC-FUNCTION('getMandant':U ). AdFirma = DYNAMIC-FUNCTION('getADMandant':U ). FBFirma = DYNAMIC-FUNCTION('getFBMandant':U ). GlobFir = D1Firma. END. IF FBFirma = '' THEN FBFirma = '9999'. Datum = TODAY. SESSION:DATA-ENTRY-RETURN = TRUE. SUBSCRIBE TO 'DISPLAYDEBITOR' ANYWHERE RUN-PROCEDURE 'ADRESSE'. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE DO: Btn_Speichern:SENSITIVE = FALSE. fCancel = FALSE. APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE DO: IF Btn_Speichern:SENSITIVE = FALSE THEN RETURN NO-APPLY. RUN SPEICHERN. RETURN NO-APPLY. END. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN /* Now enable the interface if in test mode - otherwise this happens when the object is explicitly initialized from its container. */ RUN initializeObject. &ENDIF /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects fFrameWin _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 ADRESSE fFrameWin PROCEDURE ADRESSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipKnr AS INTEGER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. IF NUM-RESULTS('{&BROWSE-NAME}') <> ? THEN CLOSE QUERY Br_OffenePosten. FIND bAdresse USE-INDEX Adresse-k1 WHERE bAdresse.Firma = AdFirma AND bAdresse.Knr = ipKnr NO-LOCK NO-ERROR. IF AVAILABLE bAdresse THEN DO: rAdresse = RECID(bAdresse). VAdresse = bAdresse.Anzeig_br. END. ELSE DO: rAdresse = 0. END. DO WITH FRAME {&FRAME-NAME}: F_Knr :SCREEN-VALUE = STRING(ipKnr). F_Adresse :SCREEN-VALUE = ''. F_Saldo :SCREEN-VALUE = ''. F_SaldoFrw:SCREEN-VALUE = ''. IF NOT AVAILABLE bAdresse THEN RETURN 'ERROR'. F_Adresse :SCREEN-VALUE = bAdresse.Anzeig_br. FIND bDebst USE-INDEX Debst-k1 WHERE bDebst.Firma = Firma AND bDebst.Knr = ipKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE bDebst THEN RETURN 'ERRORDEBITOR'. F_Saldo :SCREEN-VALUE = STRING(bDebst.Saldo ). F_SaldoFrw:SCREEN-VALUE = STRING(bDebst.Saldo_Frw). CB_Kondi :SCREEN-VALUE = STRING(bDebst.Kond ,'999999') NO-ERROR. CB_Frw :SCREEN-VALUE = bDebst.Frw NO-ERROR. F_Konto_S :SCREEN-VALUE = bDebst.Konto. F_Konto_H :SCREEN-VALUE = ''. FIND bWaehrung NO-LOCK WHERE bWaehrung.Firma = bDebst.Firma AND bWaehrung.Frw = bDebst.Frw NO-ERROR. IF NOT AVAILABLE bWaehrung THEN DO: CB_Frw :SCREEN-VALUE = 'CHF' . F_Kurs :SCREEN-VALUE = STRING(1.0) . F_Faktor:SCREEN-VALUE = STRING(1) . END. ELSE DO: F_Kurs :SCREEN-VALUE = STRING(bWaehrung.Kurs ). F_Faktor:SCREEN-VALUE = STRING(bWaehrung.Faktor). END. F_Datum:SCREEN-VALUE = STRING(TODAY). FIND FIRST BKondi USE-INDEX Kondi-k1 WHERE BKondi.Kond = bDebst.Kond NO-LOCK NO-ERROR. IF NOT AVAILABLE BKondi THEN F_Faellig:SCREEN-VALUE = STRING(TODAY + 30). ELSE F_Faellig:SCREEN-VALUE = STRING(TODAY + BKondi.Faellig). Frw = CB_Frw:SCREEN-VALUE NO-ERROR. F_FakbetrFrw:SCREEN-VALUE = STRING(0). F_Fakbetr :SCREEN-VALUE = STRING(0). F_SkberFrw :SCREEN-VALUE = STRING(0). F_Skber :SCREEN-VALUE = STRING(0). F_Betrag-1 :SCREEN-VALUE = STRING(0). F_MWSt-1 :SCREEN-VALUE = STRING(0). F_Betrag-2 :SCREEN-VALUE = STRING(0). F_MWSt-2 :SCREEN-VALUE = STRING(0). F_SaldoFrw:LABEL = bDebst.Frw. END. RUN OPENQUERYDEBOP ( INPUT ipKnr ). RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BUTTON_SPEICHERN fFrameWin PROCEDURE BUTTON_SPEICHERN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE Saldo AS DECIMAL NO-UNDO. DO WITH FRAME {&FRAME-NAME}: IF DECIMAL(F_Fakbetr:SCREEN-VALUE) = 0 AND fNeu THEN DO: Btn_Speichern:SENSITIVE = FALSE. RETURN. END. Saldo = DECIMAL(F_Fakbetr :SCREEN-VALUE) - DECIMAL(F_Betrag-1:SCREEN-VALUE) - DECIMAL(F_Betrag-2:SCREEN-VALUE) - DECIMAL(F_Betrag-3:SCREEN-VALUE) - DECIMAL(F_MWSt-1 :SCREEN-VALUE) - DECIMAL(F_MWSt-2 :SCREEN-VALUE) - DECIMAL(F_MWSt-3 :SCREEN-VALUE). IF Saldo = 0 THEN Btn_Speichern:SENSITIVE = TRUE. ELSE Btn_Speichern:SENSITIVE = FALSE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_MWST fFrameWin PROCEDURE COMBO_MWST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE fDatum AS DATE NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cValue AS CHARACTER NO-UNDO. GET-KEY-VALUE SECTION 'Fehlwerte' KEY 'Mehrwertsteuer' VALUE cValue. IF cValue = ? THEN cValue = ''. DO WITH FRAME {&FRAME-NAME}: fDatum = ?. fDatum = DATE(F_Datum:SCREEN-VALUE) NO-ERROR. IF fDatum = ? THEN fDatum = TODAY. cString = ''. Datum = fDatum. FOR EACH MWSTAns WHERE MWSTAns.MWST_Cd < 12 AND MWSTAns.Datum <= Datum BREAK BY MWSTAns.MWST_Cd BY MWSTAns.Datum : IF NOT LAST-OF ( MWSTAns.MWST_Cd ) THEN NEXT. cString = cString + ';' + MWSTAns.Bez + ' (' + STRING(MWSTAns.MWST_Cd,'99') + ');' + STRING(MWSTAns.MWST_Cd,'999999'). END. IF cString = '' THEN cString = ';'. ELSE cString = SUBSTRING(cString,02). CB_MWST-1:DELIMITER = ';'. CB_MWST-2:DELIMITER = ';'. CB_MWST-3:DELIMITER = ';'. CB_MWST-1:LIST-ITEM-PAIRS = cString. CB_MWST-2:LIST-ITEM-PAIRS = cString. CB_MWST-3:LIST-ITEM-PAIRS = cString. IF cValue = '' THEN cValue = ENTRY(2, cString, ';'). cValue = STRING(INTEGER(cValue),'999999'). CB_MWST-1:SCREEN-VALUE = cValue NO-ERROR. CB_MWST-2:SCREEN-VALUE = cValue NO-ERROR. CB_MWST-3:SCREEN-VALUE = cValue NO-ERROR. FIND LAST B1MWSTAns USE-INDEX MWSTAns-k1 WHERE B1MWSTAns.MWSt_Cd = INTEGER(CB_MWST-1:SCREEN-VALUE) AND B1MWSTAns.Datum <= DATE (F_Datum :SCREEN-VALUE) NO-LOCK NO-ERROR. FIND LAST B2MWSTAns USE-INDEX MWSTAns-k1 WHERE B2MWSTAns.MWSt_Cd = INTEGER(CB_MWST-2:SCREEN-VALUE) AND B2MWSTAns.Datum <= DATE (F_Datum :SCREEN-VALUE) NO-LOCK NO-ERROR. FIND LAST B3MWSTAns USE-INDEX MWSTAns-k1 WHERE B3MWSTAns.MWSt_Cd = INTEGER(CB_MWST-3:SCREEN-VALUE) AND B3MWSTAns.Datum <= DATE (F_Datum :SCREEN-VALUE) NO-LOCK NO-ERROR. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI fFrameWin _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 fMain. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject fFrameWin PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. DO WITH FRAME {&FRAME-NAME}: F_Datum:SCREEN-VALUE = STRING(Datum). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI fFrameWin _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_Knr F_Faknr F_Datum CB_Kondi F_Faellig F_Konto_S F_Konto_H CB_Frw F_Kurs F_Adresse F_FakbetrFrw F_Fakbetr F_SkberFrw F_Saldo CB_MWST-1 F_Konto_H_1 F_Betrag-1 CB_MWST-2 F_Konto_H_2 F_Betrag-2 F_SaldoFrw CB_MWST-3 F_Konto_H_3 F_Betrag-3 F_Buchtext3 F_Faktor F_Skber F_MWSt-1 F_MWSt-2 F_MWSt-3 WITH FRAME fMain. ENABLE F_Knr Btn_SuchKunde F_Faknr F_Datum CB_Kondi F_Faellig F_Konto_S F_Konto_H CB_Frw F_Kurs F_Adresse F_FakbetrFrw F_Fakbetr F_SkberFrw F_Saldo CB_MWST-1 F_Konto_H_1 F_Betrag-1 CB_MWST-2 F_Konto_H_2 F_Betrag-2 F_SaldoFrw CB_MWST-3 F_Konto_H_3 F_Betrag-3 F_Buchtext3 F_Faktor F_Skber Br_OffenePosten F_MWSt-1 F_MWSt-2 F_MWSt-3 RECT-6 RECT-7 WITH FRAME fMain. {&OPEN-BROWSERS-IN-QUERY-fMain} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKNR_TEST fFrameWin PROCEDURE FAKNR_TEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipNeueNr AS LOG NO-UNDO. DEFINE VARIABLE Faknr AS INTEGER NO-UNDO. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: IF lView THEN RETURN. fNeu = TRUE. Faknr = INTEGER(F_Faknr:SCREEN-VALUE). /* IF Faknr = 0 AND */ /* ipNeueNr = FALSE THEN RETURN ''.*/ IF Faknr = 0 THEN DO: REPEAT TRANSACTION: FIND SteuNr USE-INDEX SteuNr-k1 WHERE SteuNr.Firma = Firma. SteuNr.Nr2 = SteuNr.Nr2 + 1. Faknr = SteuNr.Nr2. RELEASE SteuNr. LEAVE. END. F_Faknr:SCREEN-VALUE = STRING(Faknr). END. FIND Debop USE-INDEX Debop-k2 WHERE Debop.Firma = Firma AND Debop.Faknr = Faknr NO-LOCK NO-ERROR. IF NOT AVAILABLE Debop THEN RETURN ''. fNeu = FALSE. IF Debop.ZahBetr <> 0 THEN DO: DYNAMIC-FUNCTION('FEHLER', INPUT 1131) NO-ERROR. RETURN 'ERROR'. END. FOR EACH Interf USE-INDEX Interf-k1 WHERE Interf.Firma = Firma AND Interf.TrNr1 = Debop.TrNr1 AND Interf.TrNr2 = Debop.TrNr2 AND Interf.Verbucht = TRUE NO-LOCK: DYNAMIC-FUNCTION('FEHLER', INPUT 1132) NO-ERROR. RETURN 'ERROR'. END. IF fTest THEN DO: fTest = FALSE. RETURN ''. END. FIND FIRST Interf USE-INDEX Interf-k1 WHERE Interf.Firma = Firma AND Interf.TrNr1 = Debop.TrNr1 AND Interf.TrNr2 = Debop.TrNr2 NO-LOCK NO-ERROR. F_Datum :SCREEN-VALUE = STRING(Debop.FakDat) NO-ERROR. F_Faellig :SCREEN-VALUE = STRING(Debop.Faellig) NO-ERROR. CB_Kondi :SCREEN-VALUE = STRING(Debop.Kond,'999999') NO-ERROR. CB_Frw :SCREEN-VALUE = Debop.Frw NO-ERROR. F_Kurs :SCREEN-VALUE = STRING(Debop.Kurs) NO-ERROR. F_Faktor :SCREEN-VALUE = STRING(Debop.Faktor) NO-ERROR. F_FakBetr :SCREEN-VALUE = STRING(Debop.Fakbetr) NO-ERROR. F_FakBetrFrw:SCREEN-VALUE = STRING(Debop.Fakbetr_Frw) NO-ERROR. F_Skber :SCREEN-VALUE = STRING(Debop.Skber) NO-ERROR. F_SkberFrw :SCREEN-VALUE = STRING(Debop.Skber_Frw) NO-ERROR. F_Konto_S :SCREEN-VALUE = Debop.Konto NO-ERROR. F_Konto_H :SCREEN-VALUE = Interf.Kto2 NO-ERROR. DO i1 = 1 TO 11: IF Debop.FakWpfl[i1] = 0 THEN NEXT. CB_MWST-1 :SCREEN-VALUE = STRING(i1,'999999') NO-ERROR. F_Betrag-1:SCREEN-VALUE = STRING(Debop.FakWpfl[i1]) NO-ERROR. F_MWST-1 :SCREEN-VALUE = STRING(Debop.FakWust[i1]) NO-ERROR. LEAVE. END. DO i1 = i1 + 1 TO 11: IF Debop.FakWpfl[i1] = 0 THEN NEXT. CB_MWST-2 :SCREEN-VALUE = STRING(i1,'999999') NO-ERROR. F_Betrag-2:SCREEN-VALUE = STRING(Debop.FakWpfl[i1]) NO-ERROR. F_MWST-2 :SCREEN-VALUE = STRING(Debop.FakWust[i1]) NO-ERROR. LEAVE. END. DO i1 = i1 + 1 TO 11: IF Debop.FakWpfl[i1] = 0 THEN NEXT. CB_MWST-3 :SCREEN-VALUE = STRING(i1,'999999') NO-ERROR. F_Betrag-3:SCREEN-VALUE = STRING(Debop.FakWpfl[i1]) NO-ERROR. F_MWST-3 :SCREEN-VALUE = STRING(Debop.FakWust[i1]) NO-ERROR. LEAVE. END. RETURN ''. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject fFrameWin PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: IF sAktiv THEN DO: RUN COMBO_KONDITION ( CB_Kondi:HANDLE ) NO-ERROR. RUN COMBO_FRW ( CB_FRW :HANDLE ) NO-ERROR. RUN COMBO_MWST NO-ERROR. END. END. RUN SUPER. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KONTO_TEST fFrameWin PROCEDURE KONTO_TEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE xFirma AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: cString = FBFirma + CHR(01) + STRING(YEAR(F_Datum),'9999') + CHR(01) + F_Konto_S. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN DO: F_Konto_S:BGCOLOR = 14. APPLY 'ENTRY' TO F_Konto_S. RETURN 'ERROR'. END. ELSE DO: F_Konto_S:BGCOLOR = 15. F_Konto_S:SCREEN-VALUE = ENTRY(1, cString, CHR(01)). END. cString = FBFirma + CHR(01) + STRING(YEAR(F_Datum),'9999') + CHR(01) + F_Konto_H. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN DO: F_Konto_H:BGCOLOR = 14. APPLY 'ENTRY' TO F_Konto_H. RETURN 'ERROR'. END. ELSE DO: F_Konto_H:BGCOLOR = 15. F_Konto_H:SCREEN-VALUE = ENTRY(1, cString, CHR(01)). xFirma = ENTRY(7, cString, CHR(01)). END. IF xFirma <> FBFirma THEN DO: F_Konto_H:BGCOLOR = 14. APPLY 'ENTRY' TO F_Konto_H. RETURN 'ERROR'. END. IF F_Konto_H_1 <> '' THEN DO: cString = FBFirma + CHR(01) + STRING(YEAR(F_Datum),'9999') + CHR(01) + F_Konto_H_1. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN DO: F_Konto_H_1:BGCOLOR = 14. APPLY 'ENTRY' TO F_Konto_H_1. RETURN 'ERROR'. END. ELSE DO: F_Konto_H_1:BGCOLOR = 15. F_Konto_H_1:SCREEN-VALUE = ENTRY(1, cString, CHR(01)). xFirma = ENTRY(7, cString, CHR(01)). END. END. IF xFirma <> FBFirma THEN DO: F_Konto_H:BGCOLOR = 14. APPLY 'ENTRY' TO F_Konto_H_1. RETURN 'ERROR'. END. IF F_Konto_H_2 <> '' THEN DO: cString = FBFirma + CHR(01) + STRING(YEAR(F_Datum),'9999') + CHR(01) + F_Konto_H_2. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN DO: F_Konto_H_2:BGCOLOR = 14. APPLY 'ENTRY' TO F_Konto_H_2. RETURN 'ERROR'. END. ELSE DO: F_Konto_H_2:BGCOLOR = 15. F_Konto_H_2:SCREEN-VALUE = ENTRY(1, cString, CHR(01)). xFirma = ENTRY(7, cString, CHR(01)). END. END. IF xFirma <> FBFirma THEN DO: F_Konto_H:BGCOLOR = 14. APPLY 'ENTRY' TO F_Konto_H_2. RETURN 'ERROR'. END. IF F_Konto_H_3 <> '' THEN DO: cString = FBFirma + CHR(01) + STRING(YEAR(F_Datum),'9999') + CHR(01) + F_Konto_H_3. cString = DYNAMIC-FUNCTION('getKontoInfo':U, INPUT cString) NO-ERROR. IF cString = ? THEN DO: F_Konto_H_3:BGCOLOR = 14. APPLY 'ENTRY' TO F_Konto_H_3. RETURN 'ERROR'. END. ELSE DO: F_Konto_H_3:BGCOLOR = 15. F_Konto_H_3:SCREEN-VALUE = ENTRY(1, cString, CHR(01)). xFirma = ENTRY(7, cString, CHR(01)). END. END. IF xFirma <> FBFirma THEN DO: F_Konto_H:BGCOLOR = 14. APPLY 'ENTRY' TO F_Konto_H_3. RETURN 'ERROR'. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN_RECHNUNG fFrameWin PROCEDURE LOESCHEN_RECHNUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipFirma AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER ipFaknr AS INTEGER NO-UNDO. DEFINE OUTPUT PARAMETER opTrNr1 AS INTEGER NO-UNDO. DEFINE OUTPUT PARAMETER opTrNr2 AS INTEGER NO-UNDO. opTrNr1 = 0. opTrNr2 = 0. FIND Debop USE-INDEX Debop-k2 WHERE Debop.Firma = ipFirma AND Debop.Faknr = ipFaknr NO-ERROR. IF NOT AVAILABLE Debop THEN RETURN. FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Debop.Firma AND Debst.Knr = Debop.Knr NO-ERROR. ASSIGN Debst.Saldo_Frw = Debst.Saldo_Frw - Debop.Saldo_Frw Debst.Saldo = Debst.Saldo - Debop.Saldo. opTrNr1 = Debop.TrNr1. opTrNr2 = Debop.TrNr2. FOR EACH Debfa USE-INDEX Debfa-k1 WHERE Debfa.Firma = Debop.Firma AND Debfa.Knr = Debop.Knr AND Debfa.Faknr = Debop.Faknr: DELETE Debfa. END. FOR EACH Debhi USE-INDEX Debhi-k3 WHERE Debhi.Firma = Debop.Firma AND Debhi.Knr = Debop.Knr AND Debhi.Faknr = Debop.Faknr: DELETE Debhi. END. FOR EACH Debwu USE-INDEX Debwu-k1 WHERE Debwu.Firma = Debop.Firma AND Debwu.Knr = Debop.Knr AND Debwu.Faknr = Debop.Faknr: DELETE Debwu. END. FOR EACH Interf USE-INDEX Interf-k1 WHERE Interf.Firma = FBFirma AND Interf.TrNr1 = opTrNr1 AND Interf.TrNr2 = opTrNr2 : DELETE Interf. END. DELETE Debop. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPENQUERYDEBOP fFrameWin PROCEDURE OPENQUERYDEBOP : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipKnr AS INTEGER NO-UNDO. OPEN QUERY Br_OffenePosten FOR EACH Debop USE-INDEX Debop-k1 WHERE Debop.Firma = Firma AND Debop.Knr = ipKnr AND Debop.Saldo <> 0 NO-LOCK BY Debop.Fakdat DESCENDING BY Debop.Faknr DESCENDING INDEXED-REPOSITION . END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNEN fFrameWin PROCEDURE RECHNEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipArt AS INTEGER NO-UNDO. DEFINE VARIABLE BetrBas AS DECIMAL DECIMALS 8 NO-UNDO. DEFINE VARIABLE BetrFrw AS DECIMAL NO-UNDO. DEFINE VARIABLE Kurs AS DECIMAL DECIMALS 8 NO-UNDO. DEFINE VARIABLE Faktor AS INTEGER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Kurs = DECIMAL(F_Kurs :SCREEN-VALUE). Faktor = INTEGER(F_Faktor:SCREEN-VALUE). END. CASE ipArt: WHEN 08 THEN DO WITH FRAME {&FRAME-NAME}: BetrFrw = DECIMAL(F_SkberFrw:SCREEN-VALUE) NO-ERROR. IF BetrFrw <> 0 THEN BetrBas = BetrFrw * Kurs / Faktor. ELSE BetrBas = 0. F_Skber:SCREEN-VALUE = STRING(BetrBas). END. WHEN 09 THEN DO WITH FRAME {&FRAME-NAME}: BetrFrw = DECIMAL(F_FakbetrFrw:SCREEN-VALUE) NO-ERROR. IF BetrFrw <> 0 THEN BetrBas = BetrFrw * Kurs / Faktor. ELSE BetrBas = 0. F_FakBetr:SCREEN-VALUE = STRING(BetrBas). BetrFrw = DECIMAL(F_SkberFrw:SCREEN-VALUE) NO-ERROR. IF BetrFrw <> 0 THEN BetrBas = BetrFrw * Kurs / Faktor. ELSE BetrBas = 0. F_Skber:SCREEN-VALUE = STRING(BetrBas). END. END CASE. RUN BUTTON_SPEICHERN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHREIBEN_DEBITOR fFrameWin PROCEDURE SCHREIBEN_DEBITOR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE ix AS INTEGER NO-UNDO. FIND BDebop WHERE RECID(BDebop) = opRecid NO-LOCK NO-ERROR. FIND Steuer WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. CREATE Debfa. ASSIGN Debfa.Firma = BDebop.Firma Debfa.Knr = BDebop.Knr Debfa.Faknr = BDebop.Faknr Debfa.Fakdat = BDebop.Fakdat Debfa.Faellig = BDebop.Faellig Debfa.Fakbetr = BDebop.Fakbetr Debfa.Skber = BDebop.Skber Debfa.WW = BDebop.WW Debfa.Fakbetr_Frw = BDebop.Fakbetr_Frw Debfa.Skber_Frw = BDebop.Skber_Frw Debfa.WW_Frw = BDebop.WW_Frw Debfa.Transp = 0 Debfa.Porto = 0 Debfa.Verpack = 0 Debfa.Konto = BDebop.Konto Debfa.Vertr = 0 Debfa.Kte = BDebop.Kte Debfa.TrNr1 = BDebop.TrNr1 Debfa.TrNr2 = BDebop.TrNr2 Debfa.Frw = BDebop.Frw Debfa.Kurs = BDebop.Kurs Debfa.Faktor = BDebop.Faktor. DO ix = 1 TO 12: ASSIGN Debfa.FakWpfl[ix] = BDebop.FakWpfl[ix] Debfa.FakWust[ix] = BDebop.FakWust[ix]. END. FIND LAST Debhi USE-INDEX Debhi-k1 WHERE Debhi.Firma = BDebop.Firma AND Debhi.Knr = BDebop.Knr NO-LOCK NO-ERROR. IF AVAILABLE Debhi THEN ix = Debhi.Trnr + 1. ELSE ix = 1. CREATE Debhi. ASSIGN Debhi.Firma = BDebop.Firma Debhi.Knr = BDebop.Knr Debhi.Trnr = ix Debhi.Datum = BDebop.Fakdat Debhi.Faknr = BDebop.Faknr Debhi.Kte = BDebop.Kte Debhi.Soll = BDebop.Fakbetr Debhi.Soll_Frw = BDebop.Fakbetr_Frw Debhi.Transp = 0 Debhi.Porto = 0 Debhi.Verpack = 0 Debhi.Konto = BDebop.Konto Debhi.TrNr1 = BDebop.TrNr1 Debhi.TrNr2 = BDebop.TrNr2 Debhi.Frw = BDebop.Frw Debhi.Kurs = BDebop.Kurs Debhi.Faktor = BDebop.Faktor Debhi.Saldo = bDebst.Saldo_Frw + BDebop.Saldo_Frw. IF Steuer.St07 = 0 THEN DO: /* Mehrwertsteuer vereinbart */ CREATE Debwu. ASSIGN Debwu.Firma = BDebop.Firma Debwu.Knr = BDebop.Knr Debwu.Faknr = BDebop.Faknr Debwu.Trnr = 1 Debwu.Datum = BDebop.Fakdat Debwu.Betrag = BDebop.Fakbetr Debwu.Betrag_Frw = BDebop.Fakbetr_Frw Debwu.Konto = BDebop.Konto Debwu.Kte = BDebop.Kte Debwu.TrNr1 = BDebop.TrNr1 Debwu.TrNr2 = BDebop.TrNr2 Debwu.Frw = BDebop.Frw Debwu.Kurs = BDebop.Kurs Debwu.Faktor = BDebop.Faktor. DO ix = 1 TO 12: IF BDebop.FakWpfl[ix] = 0 THEN NEXT. ASSIGN Debwu.Wustpfl[ix] = BDebop.FakWpfl[ix] Debwu.Wust [ix] = BDebop.FakWust[ix]. END. END. RETURN 'io'. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_CANCEL fFrameWin PROCEDURE SET_CANCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ fCancel = TRUE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SET_FIND_KNR fFrameWin PROCEDURE SET_FIND_KNR : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipKnr AS INTEGER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: F_Knr = ipKnr. DISPLAY F_Knr. RUN ADRESSE ( ipKnr ). PUBLISH 'REPOSADRESSE' ( INPUT rAdresse ). fCancel = TRUE. APPLY 'ENTRY' TO F_Faknr. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SPEICHERN fFrameWin PROCEDURE SPEICHERN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE miKurs AS DECIMAL NO-UNDO. DEFINE VARIABLE maKurs AS DECIMAL NO-UNDO. DEFINE VARIABLE Betr AS DECIMAL NO-UNDO. DEFINE VARIABLE VBuchtxt1 AS CHARACTER NO-UNDO. DEFINE VARIABLE VBuchtxt2 AS CHARACTER NO-UNDO. DEFINE VARIABLE VBuchtxt3 AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE TrNr1 AS INTEGER NO-UNDO. DEFINE VARIABLE TrNr2 AS INTEGER NO-UNDO. DEFINE VARIABLE TrNr AS INTEGER NO-UNDO. DEFINE VARIABLE mWW AS DECIMAL EXTENT 11 NO-UNDO. DEFINE VARIABLE mMw AS DECIMAL EXTENT 11 NO-UNDO. DEFINE VARIABLE mKo AS CHARACTER EXTENT 11 NO-UNDO. DEFINE VARIABLE Kto1 AS CHARACTER NO-UNDO. DEFINE VARIABLE Kto2 AS CHARACTER NO-UNDO. DEFINE VARIABLE SaldoBas AS DECIMAL NO-UNDO. DEFINE VARIABLE SaldoFrw AS DECIMAL NO-UNDO. DEFINE VARIABLE fFehler AS LOG NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. ASSIGN F_Knr. Frw = CB_Frw:SCREEN-VALUE. IF F_Datum = ? THEN DO: APPLY 'ENTRY' TO F_Datum. RETURN NO-APPLY. END. IF F_Faellig = ? OR F_Faellig < F_Datum THEN DO: APPLY 'ENTRY' TO F_Faellig. RETURN NO-APPLY. END. IF F_Faktor = 0 THEN F_Faktor:SCREEN-VALUE = STRING(1). /* RUN KONTO_TEST. */ /* IF RETURN-VALUE = 'ERROR' THEN RETURN NO-APPLY.*/ FIND Waehrung NO-LOCK WHERE Waehrung.Firma = GlobFir AND Waehrung.Frw = Frw NO-ERROR. IF NOT AVAILABLE Waehrung THEN DO: APPLY 'ENTRY' TO CB_Frw. RETURN NO-APPLY. END. IF Waehrung.Frw = BasFrw THEN DO: miKurs = 1.0. maKurs = 1.0. END. ELSE DO: miKurs = Waehrung.Kurs * 0.7. maKurs = Waehrung.Kurs * 1.3. END. IF F_Kurs < miKurs OR F_Kurs > maKurs THEN DO: APPLY 'ENTRY' TO F_Kurs. RETURN NO-APPLY. END. IF F_Kurs <= 0 THEN DO: APPLY 'ENTRY' TO F_Kurs. RETURN NO-APPLY. END. IF F_Kurs = ? THEN DO: APPLY 'ENTRY' TO F_Kurs. RETURN NO-APPLY. END. Betr = F_Betrag-1 + F_Betrag-2 + F_Betrag-3 + F_MWST-1 + F_MWST-2 + F_MWST-3. IF Betr <> F_Fakbetr THEN DO: APPLY 'ENTRY' TO F_Betrag-1. RETURN NO-APPLY. END. fTest = TRUE. RUN FAKNR_TEST ( INPUT TRUE ). IF RETURN-VALUE = 'ERROR' THEN DO: APPLY 'ENTRY' TO F_Faknr. RETURN NO-APPLY. END. ASSIGN {&List-6}. IF bAdresse.Firma1 <> '' THEN vAdresse = TRIM(bAdresse.Firma1 + ' ' + bAdresse.Firma2 ). ELSE vAdresse = TRIM(bAdresse.Name + ' ' + bAdresse.Vorname). VBuchtxt1 = 'Debitorrechnung :' + STRING(F_Faknr," 9999999"). VBuchtxt2 = vAdresse + ", " + TRIM(bAdresse.Lkz + '-' + bAdresse.Plz + ' ' + bAdresse.Ort). VBuchtxt2 = TRIM(SUBSTRING(VBuchtxt2,01,40)). VBuchtxt3 = F_Buchtext3. PUT-KEY-VALUE SECTION 'Fehlwerte' KEY 'Mehrwertsteuer' VALUE CB_MWST-1:SCREEN-VALUE NO-ERROR. END. BUCHEN: REPEAT TRANSACTION ON ERROR UNDO, LEAVE: fFehler = FALSE. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. FIND SteuNr USE-INDEX SteuNr-k1 WHERE SteuNr.Firma = Firma NO-LOCK NO-ERROR. IF fNeu = FALSE THEN DO: RUN LOESCHEN_RECHNUNG ( INPUT Firma, INPUT F_Faknr, OUTPUT TrNr1, OUTPUT TrNr2 ). IF F_FakbetrFrw = 0 AND F_Fakbetr = 0 THEN DO: F_Saldo = Debst.Saldo. F_SaldoFrw = Debst.Saldo_Frw. RELEASE Debst. RELEASE Debop. RELEASE Debfa. RELEASE Debwu. RELEASE Debhi. RELEASE Interf. RELEASE Steuer. RELEASE SteuNr. LEAVE BUCHEN. END. END. EMPTY TEMP-TABLE tKonto. DO WHILE TRUE ON ERROR UNDO, RETRY: IF RETRY THEN . PAUSE 0 BEFORE-HIDE NO-MESSAGE. RELEASE TransNr. IF TrNr1 <> 0 THEN DO: FIND TransNr USE-INDEX TransNr-k1 WHERE TransNr.Firma = '9999' AND TransNr.TrNr1 = TrNr1 AND TransNr.TrNr2 = TrNr2 NO-ERROR. END. ELSE DO: FIND LAST TransNr USE-INDEX TransNr-k1 WHERE TransNr.Firma = '9999' NO-LOCK NO-ERROR. IF AVAILABLE TransNr THEN DO: TrNr1 = TransNr.TrNr1 + 1. TrNr2 = 1. END. ELSE DO: TrNr1 = 1. TrNr2 = 1. END. CREATE TransNr. ASSIGN TransNr.Firma = '9999' TransNr.TrNr1 = TrNr1 TransNr.TrNr2 = TrNr2. END. ASSIGN TransNr.Herk = 52 TransNr.Erf_Dat = TODAY TransNr.Erf_Zeit = TIME TransNr.Betrag = F_Fakbetr. cString = DYNAMIC-FUNCTION('getBenutzerDaten'). TransNr.SaBe = ENTRY(2, cString, CHR(01)). LEAVE. END. CREATE Debop. ASSIGN Debop.Firma = Firma Debop.Knr = F_Knr Debop.Faknr = F_Faknr Debop.Fakdat = F_Datum Debop.Faellig = F_Faellig Debop.Fakbetr = F_Fakbetr Debop.Skber = F_Skber Debop.WW = F_Betrag-1 + F_Betrag-2 + F_Betrag-3 Debop.Saldo = F_Fakbetr Debop.Fakbetr_Frw = F_FakbetrFrw Debop.Skber_Frw = F_SkberFrw Debop.WW_Frw = Debop.WW / F_Kurs * F_Faktor Debop.Saldo_Frw = F_FakbetrFrw Debop.Kond = INTEGER(CB_Kondi:SCREEN-VALUE) Debop.Transp = 0 Debop.Porto = 0 Debop.Verpack = 0 Debop.Konto = F_Konto_S Debop.Vertr = 0 Debop.Kte = "MAFA" Debop.TrNr1 = TrNr1 Debop.TrNr2 = TrNr2 Debop.Frw = Frw Debop.Kurs = F_Kurs Debop.Faktor = F_Faktor Debop.FakWpfl = 0 Debop.FakWust = 0. IF Steuer.St07 = 0 THEN Debop.WustAbr = TRUE. /* vereinbahrt */ ELSE Debop.WustAbr = FALSE. /* vereinnahmt */ opRecid = RECID(Debop). mWW = 0. mMw = 0. mKo = ''. DO ix = 1 TO 12: FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = ix AND MWSTAns.Datum <= Debop.Fakdat NO-LOCK NO-ERROR. IF AVAILABLE MWSTAns THEN DO: ASSIGN Debop.FakWPro[ix] = MWSTAns.Ansatz Debop.FakIncl[ix] = MWSTAns.Incl. END. END. IF F_Betrag-1 <> 0 THEN DO: ix = INTEGER(CB_MWST-1:SCREEN-VALUE). ASSIGN Debop.FakWpfl[ix] = Debop.FakWpfl[ix] + F_Betrag-1 Debop.FakWust[ix] = Debop.FakWust[ix] + F_MWST-1 mKo[ix] = B1MWSTAns.Konto. IF F_Konto_H_1 = '' THEN F_Konto_H_1 = F_Konto_H. FIND FIRST tKonto WHERE tKonto.Konto = F_Konto_H_1 AND tKonto.Mwst_cd = ix NO-ERROR. IF NOT AVAILABLE tKonto THEN DO: CREATE tKonto. ASSIGN tKonto.Konto = F_Konto_H_1 tKonto.Mwst_cd = ix. END. ASSIGN tKonto.Betrag = tKonto.Betrag + F_Betrag-1 tKonto.Mwst = tKonto.Mwst + F_MWST-1. END. IF F_Betrag-2 <> 0 THEN DO: ix = INTEGER(CB_MWST-2:SCREEN-VALUE). ASSIGN Debop.FakWpfl[ix] = Debop.FakWpfl[ix] + F_Betrag-2 Debop.FakWust[ix] = Debop.FakWust[ix] + F_MWST-2 mKo[ix] = B2MWSTAns.Konto. IF F_Konto_H_2 = '' THEN F_Konto_H_2 = F_Konto_H. IF F_Konto_H_2 = '' THEN F_Konto_H_2 = F_Konto_H_1. FIND FIRST tKonto WHERE tKonto.Konto = F_Konto_H_2 AND tKonto.Mwst_cd = ix NO-ERROR. IF NOT AVAILABLE tKonto THEN DO: CREATE tKonto. ASSIGN tKonto.Konto = F_Konto_H_2 tKonto.Mwst_cd = ix. END. ASSIGN tKonto.Betrag = tKonto.Betrag + F_Betrag-2 tKonto.Mwst = tKonto.Mwst + F_MWST-2. END. IF F_Betrag-3 <> 0 THEN DO: ix = INTEGER(CB_MWST-3:SCREEN-VALUE). ASSIGN Debop.FakWpfl[ix] = Debop.FakWpfl[ix] + F_Betrag-3 Debop.FakWust[ix] = Debop.FakWust[ix] + F_MWST-3 mKo[ix] = B3MWSTAns.Konto. IF F_Konto_H_3 = '' THEN F_Konto_H_3 = F_Konto_H. IF F_Konto_H_3 = '' THEN F_Konto_H_3 = F_Konto_H_1. FIND FIRST tKonto WHERE tKonto.Konto = F_Konto_H_3 AND tKonto.Mwst_cd = ix NO-ERROR. IF NOT AVAILABLE tKonto THEN DO: CREATE tKonto. ASSIGN tKonto.Konto = F_Konto_H_3 tKonto.Mwst_cd = ix. END. ASSIGN tKonto.Betrag = tKonto.Betrag + F_Betrag-3 tKonto.Mwst = tKonto.Mwst + F_MWST-3. END. DO ix = 1 TO 11: IF Debop.FakWpfl[ix] = 0 THEN NEXT. IF Debop.FakIncl[ix] = FALSE THEN DO: mWW[ix] = Debop.FakWpfl[ix]. mMw[ix] = Debop.FakWust[ix]. END. ELSE DO: mMw[ix] = Debop.FakWpfl[ix] * Debop.FakWPro[ix] / (100 + Debop.FakWPro[ix]). mWW[ix] = Debop.FakWpfl[ix] - mMw[ix]. END. END. RUN SCHREIBEN_DEBITOR. IF RETURN-VALUE <> 'io' THEN DO: fFehler = TRUE. UNDO BUCHEN, LEAVE BUCHEN. END. TrNr = 0. SaldoBas = F_Fakbetr. SaldoFrw = F_FakbetrFrw. FOR EACH tKonto BY tKonto.Mwst_Cd: IF tKonto.Betrag = 0 THEN NEXT. ix = tKonto.Mwst_Cd. Kto1 = F_Konto_S. Kto2 = tKonto.Konto. FIND LAST Interf USE-INDEX Interf-k1 WHERE Interf.Firma = FBFirma AND Interf.TrNr1 = TrNr1 AND Interf.TrNr2 = TrNr2 AND Interf.Kto1 = Kto1 AND Interf.Kto2 = Kto2 NO-ERROR. IF NOT AVAILABLE Interf THEN DO: TrNr = TrNr + 1. CREATE Interf. ASSIGN Interf.Firma = FBFirma Interf.TrNr1 = TrNr1 Interf.TrNr2 = TrNr2 Interf.TrNr = TrNr Interf.Kto1 = Kto1 Interf.Kto2 = Kto2 Interf.Herk = TransNr.Herk Interf.Datum = F_Datum Interf.Buchtxt1 = VBuchtxt1 Interf.Buchtxt2 = VBuchtxt2 Interf.Buchtxt3 = VBuchtxt3 Interf.Frw = Debop.Frw Interf.Faktor = Debop.Faktor Interf.Kurs = Debop.Kurs Interf.Verbucht = FALSE Interf.Faknr = STRING(Debop.Faknr,"9999999") Interf.Knr = Debop.Knr Interf.MWST_Nr = "" Interf.MWST_Cd = tKonto.Mwst_Cd Interf.MWST_Art = 1 Interf.HKFirma = Firma Interf.BEBU = 0 Interf.BEBU_Art = 0 Interf.Menge = 0. END. Betr = tKonto.Betrag. Interf.Betrag = Interf.Betrag + Betr. SaldoBas = SaldoBas - Betr. Betr = Betr * Interf.Faktor / Interf.Kurs. Interf.Betrag_Frw = Interf.Betrag_Frw + Betr. SaldoFrw = SaldoFrw - Betr. IF tKonto.Mwst = 0 THEN NEXT. Kto2 = mKo[ix]. FIND LAST Interf USE-INDEX Interf-k1 WHERE Interf.Firma = FBFirma AND Interf.TrNr1 = TrNr1 AND Interf.TrNr2 = TrNr2 AND Interf.Kto1 = Kto1 AND Interf.Kto2 = Kto2 NO-ERROR. IF NOT AVAILABLE Interf THEN DO: TrNr = TrNr + 1. CREATE Interf. ASSIGN Interf.Firma = FBFirma Interf.TrNr1 = TrNr1 Interf.TrNr2 = TrNr2 Interf.TrNr = TrNr Interf.Kto1 = Kto1 Interf.Kto2 = Kto2 Interf.Herk = TransNr.Herk Interf.Datum = F_Datum Interf.Buchtxt1 = VBuchtxt1 Interf.Buchtxt2 = VBuchtxt2 Interf.Buchtxt3 = VBuchtxt3 Interf.Frw = Debop.Frw Interf.Faktor = Debop.Faktor Interf.Kurs = Debop.Kurs Interf.Verbucht = FALSE Interf.Faknr = STRING(Debop.Faknr,"9999999") Interf.Knr = Debop.Knr Interf.MWST_Nr = "" Interf.MWST_Cd = 0 Interf.MWST_Art = 6 Interf.HKFirma = Firma Interf.BEBU = 0 Interf.BEBU_Art = 0 Interf.Menge = 0. END. Betr = tKonto.Mwst. Interf.Betrag = Interf.Betrag + Betr. SaldoBas = SaldoBas - Betr. Betr = Betr * Interf.Faktor / Interf.Kurs. Interf.Betrag_Frw = Interf.Betrag_Frw + Betr. SaldoFrw = SaldoFrw - Betr. END. DO WHILE TRUE: IF SaldoBas = 0 AND SaldoFrw = 0 THEN LEAVE. Kto1 = F_Konto_S. Kto2 = F_Konto_H. FIND LAST Interf USE-INDEX Interf-k1 WHERE Interf.Firma = FBFirma AND Interf.TrNr1 = TrNr1 AND Interf.TrNr2 = TrNr2 AND Interf.Kto1 = Kto1 AND Interf.Kto2 = Kto2 NO-ERROR. Interf.Betrag = Interf.Betrag + SaldoBas. Interf.Betrag_Frw = Interf.Betrag_Frw + SaldoFrw. SaldoBas = 0. SaldoFrw = 0. LEAVE. END. FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Firma AND Debst.Knr = F_Knr NO-ERROR. Debst.Saldo_Frw = Debst.Saldo_Frw + Debop.Saldo_Frw. Debst.Saldo = Debst.Saldo + Debop.Saldo . F_Saldo = Debst.Saldo. F_SaldoFrw = Debst.Saldo_Frw. RELEASE Debst. RELEASE Debop. RELEASE Debfa. RELEASE Debwu. RELEASE Debhi. RELEASE Interf. RELEASE Steuer. RELEASE SteuNr. LEAVE. END. IF fFehler THEN DO: MESSAGE 'Ein fehler ist aufgetaucht, ' 'bitte Rechnung nochmals Eingeben ' VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. RUN OPENQUERYDEBOP ( INPUT F_Knr ). fCancel = FALSE. DO WITH FRAME {&FRAME-NAME}: F_Faknr = 0. F_Datum = ?. F_Faellig = ?. F_Konto_S = ''. F_Konto_H = ''. F_Kurs = 1. F_Faktor = 1. F_Fakbetr = 0. F_FakbetrFrw = 0. F_Skber = 0. F_SkberFrw = 0. F_Betrag-1 = 0. F_Betrag-2 = 0. F_Betrag-3 = 0. F_MWST-1 = 0. F_MWST-2 = 0. F_MWST-3 = 0. Btn_Speichern:SENSITIVE = FALSE. DISPLAY {&List-6}. DISPLAY F_Saldo F_SaldoFrw. APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject fFrameWin PROCEDURE viewObject: /*------------------------------------------------------------------------------*/ /* Purpose: Super Override */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE hData AS HANDLE NO-UNDO. lView = TRUE. hData = DYNAMIC-FUNCTION ('getDataSource':U) NO-ERROR. DO WHILE VALID-HANDLE(hData): rAdresse = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hData) NO-ERROR. IF rAdresse = ? OR rAdresse = 0 THEN LEAVE. FIND bAdresse NO-LOCK WHERE RECID(bAdresse) = rAdresse. RUN ADRESSE ( bAdresse.Knr ). LEAVE. END. RUN SUPER. APPLY 'ENTRY' TO F_Knr IN FRAME {&FRAME-NAME}. APPLY 'U1'. lView = FALSE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME