| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2
- &ANALYZE-RESUME
- &Scoped-define WINDOW-NAME wSkontoabrechnung
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wSkontoabrechnung
- /*------------------------------------------------------------------------
- File:
- Description: from cntnrwin.w - ADM SmartWindow Template
- Input Parameters:
- <none>
- Output Parameters:
- <none>
- History: New V9 Version - January 15, 1998
-
- ------------------------------------------------------------------------*/
- /* This .W file was created with the Progress AB. */
- /*----------------------------------------------------------------------*/
- /* 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 MaxPage AS INT NO-UNDO.
- DEF VAR AktSeite AS INT NO-UNDO.
- DEF VAR Fenster AS HANDLE NO-UNDO.
- DEF VAR hToolbar AS HANDLE NO-UNDO.
- DEF VAR FMutFlag AS LOG NO-UNDO INIT FALSE.
- DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE.
- DEF VAR Firma AS CHAR NO-UNDO.
- DEF VAR hData AS HANDLE NO-UNDO.
- DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
- DEF VAR VBuchen AS DEC EXTENT 10 NO-UNDO.
- DEF VAR VAnsatz AS DEC EXTENT 10 NO-UNDO.
- DEF TEMP-TABLE TWork FIELD MWST% AS DEC
- FIELD Betrag AS DEC
- FIELD Skonto AS DEC
- FIELD Abzug AS DEC
-
- INDEX TWork-k1 IS UNIQUE PRIMARY
- MWST%.
- /* _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
- &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
- /* Name of first Frame and/or Browse and/or first Query */
- &Scoped-define FRAME-NAME fMain
- /* Standard List Definitions */
- &Scoped-Define ENABLED-OBJECTS R_Status Btn_Loeschen Btn_SelLoesch T_Excel ~
- Btn_Start Btn_NeuRech T_Verbuchen
- &Scoped-Define DISPLAYED-OBJECTS R_Status T_Excel T_Verbuchen
- /* Custom List Definitions */
- /* List-1,List-2,List-3,List-4,List-5,List-6 */
- &Scoped-define List-6 R_Status T_Excel T_Verbuchen
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Define the widget handle for the window */
- DEFINE VAR wSkontoabrechnung AS WIDGET-HANDLE NO-UNDO.
- /* Definitions of handles for SmartObjects */
- DEFINE VARIABLE h_b-skontoabrechnung AS HANDLE NO-UNDO.
- DEFINE VARIABLE h_d-skontoab AS HANDLE NO-UNDO.
- DEFINE VARIABLE h_dyntoolbar AS HANDLE NO-UNDO.
- /* Definitions of the field level widgets */
- DEFINE BUTTON Btn_Loeschen
- LABEL "alle löschen"
- SIZE 21 BY 1.14.
- DEFINE BUTTON Btn_NeuRech
- LABEL "neu rechnen"
- SIZE 21 BY 1.14.
- DEFINE BUTTON Btn_SelLoesch
- LABEL "selektierte loeschen"
- SIZE 21 BY 1.14.
- DEFINE BUTTON Btn_Start
- LABEL "Start"
- SIZE 21 BY 1.14.
- DEFINE VARIABLE R_Status AS INTEGER
- VIEW-AS RADIO-SET VERTICAL
- RADIO-BUTTONS
- "offene", 0,
- "abgerechnete", 1
- SIZE 38.4 BY 1.33 NO-UNDO.
- DEFINE VARIABLE T_Excel AS LOGICAL INITIAL no
- LABEL "Excel"
- VIEW-AS TOGGLE-BOX
- SIZE 18.4 BY 1 NO-UNDO.
- DEFINE VARIABLE T_Verbuchen AS LOGICAL INITIAL no
- LABEL "Verbuchen"
- VIEW-AS TOGGLE-BOX
- SIZE 18.4 BY 1 NO-UNDO.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME fMain
- R_Status AT ROW 1.1 COL 55 NO-LABEL
- Btn_Loeschen AT ROW 10.52 COL 3
- Btn_SelLoesch AT ROW 10.52 COL 27.8
- T_Excel AT ROW 10.52 COL 55
- Btn_Start AT ROW 10.52 COL 78
- Btn_NeuRech AT ROW 10.52 COL 117.4
- T_Verbuchen AT ROW 11.52 COL 55
- WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
- SIDE-LABELS NO-UNDERLINE THREE-D
- AT COL 1 ROW 1
- SIZE 140 BY 12.05.
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: SmartWindow
- Allow: Basic,Browse,DB-Fields,Query,Smart,Window
- Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
- 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 wSkontoabrechnung ASSIGN
- HIDDEN = YES
- TITLE = "Skontoabrechnung"
- HEIGHT = 12.05
- WIDTH = 140
- MAX-HEIGHT = 48.76
- MAX-WIDTH = 256
- VIRTUAL-HEIGHT = 48.76
- VIRTUAL-WIDTH = 256
- 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 wSkontoabrechnung
- /* ************************* 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 wSkontoabrechnung
- VISIBLE,,RUN-PERSISTENT */
- /* SETTINGS FOR FRAME fMain
- */
- /* SETTINGS FOR RADIO-SET R_Status IN FRAME fMain
- 6 */
- /* SETTINGS FOR TOGGLE-BOX T_Excel IN FRAME fMain
- 6 */
- /* SETTINGS FOR TOGGLE-BOX T_Verbuchen IN FRAME fMain
- 6 */
- IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wSkontoabrechnung)
- THEN wSkontoabrechnung:HIDDEN = yes.
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME wSkontoabrechnung
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wSkontoabrechnung wSkontoabrechnung
- ON END-ERROR OF wSkontoabrechnung /* Skontoabrechnung */
- OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
- IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wSkontoabrechnung wSkontoabrechnung
- ON WINDOW-CLOSE OF wSkontoabrechnung /* Skontoabrechnung */
- DO:
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Loeschen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen wSkontoabrechnung
- ON CHOOSE OF Btn_Loeschen IN FRAME fMain /* alle löschen */
- DO:
- DEF VAR ja AS LOG NO-UNDO INIT FALSE.
- ja = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, INPUT 1000 ) NO-ERROR.
- IF NOT Ja THEN DO:
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- FOR EACH SkontoAb USE-INDEX SkontoAb-k1
- WHERE SkontoAb.Firma = Firma
- AND SkontoAb.Sko_Sta = 0 TRANSACTION:
- DELETE SkontoAb.
- END.
- DYNAMIC-FUNCTION('SETSTATUS':U IN h_d-skontoab, INPUT R_Status ) NO-ERROR.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_NeuRech
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_NeuRech wSkontoabrechnung
- ON CHOOSE OF Btn_NeuRech IN FRAME fMain /* neu rechnen */
- DO:
- RUN 'g-skontorechnen.w':U.
- DYNAMIC-FUNCTION('SETSTATUS':U IN h_d-skontoab, INPUT R_Status ) NO-ERROR.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_SelLoesch
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_SelLoesch wSkontoabrechnung
- ON CHOOSE OF Btn_SelLoesch IN FRAME fMain /* selektierte loeschen */
- DO:
- DEF VAR ja AS LOG NO-UNDO INIT FALSE.
- DEF VAR Anz AS INT NO-UNDO.
- Anz = DYNAMIC-FUNCTION('GETANZAHLSELEKTIERT':U IN h_b-skontoabrechnung) NO-ERROR.
- IF Anz = 0 THEN DO:
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- ja = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, INPUT 1000 ) NO-ERROR.
- IF NOT Ja THEN DO:
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- RUN LOESCHEN IN h_b-skontoabrechnung.
- /*
- DYNAMIC-FUNCTION('SETSTATUS':U IN h_d-skontoab, INPUT R_Status ) NO-ERROR.
- */
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Start
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start wSkontoabrechnung
- ON CHOOSE OF Btn_Start IN FRAME fMain /* Start */
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- Btn_Start:SENSITIVE = FALSE.
- ASSIGN {&List-6}.
- SESSION:SET-WAIT-STATE('GENERAL').
- IF T_Excel THEN RUN EXCEL.
- SESSION:SET-WAIT-STATE('').
- IF T_Verbuchen THEN DO:
- RUN VERBUCHEN.
- END.
- Btn_Start:SENSITIVE = TRUE.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME R_Status
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL R_Status wSkontoabrechnung
- ON VALUE-CHANGED OF R_Status IN FRAME fMain
- DO:
- R_Status = INTEGER(SELF:SCREEN-VALUE).
- DYNAMIC-FUNCTION('SETSTATUS':U IN h_d-skontoab, INPUT R_Status ) NO-ERROR.
- IF R_Status = 0 THEN DO:
- Btn_Loeschen:SENSITIVE = TRUE.
- Btn_SelLoesch:SENSITIVE = TRUE.
- Btn_NeuRech:SENSITIVE = TRUE.
- Btn_Start:SENSITIVE = TRUE.
- Btn_Start:LABEL = 'Start'.
- END.
- ELSE DO:
- Btn_Loeschen:SENSITIVE = FALSE.
- Btn_SelLoesch:SENSITIVE = FALSE.
- Btn_NeuRech:SENSITIVE = FALSE.
- Btn_Start:SENSITIVE = TRUE.
- Btn_Start:LABEL = 'Storno'.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wSkontoabrechnung
- /* *************************** Main Block *************************** */
- MaxPage = 3.
- AktSeite = 1.
- SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
- IF SAktiv THEN DO:
- Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
- END.
- SESSION:DATA-ENTRY-RETURN = TRUE.
- SUBSCRIBE TO 'TOOLBAR' ANYWHERE.
- /* TRIGGERS ------------------------------------------------------ */
- ON 'ALT-CURSOR-RIGHT':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN NEXTPAGE.
- RETURN NO-APPLY.
- END.
- ON 'ALT-CURSOR-LEFT':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN PREVPAGE.
- RETURN NO-APPLY.
- END.
- ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN ENTRY_CURSOR.
- RETURN NO-APPLY.
- END.
- ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN TOOLBAR IN hToolbar ( INPUT 'Next':U ).
- RETURN NO-APPLY.
- END.
- ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN TOOLBAR IN hToolbar ( INPUT 'Prev':U ).
- RETURN NO-APPLY.
- END.
-
- ON 'ALT-RETURN':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN TOOLBAR IN hToolbar ( INPUT 'UPDATE':U ).
- END.
- ON 'ALT-INS':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN TOOLBAR IN hToolbar ( INPUT 'ADD':U ).
- END.
- ON 'ALT-DEL':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN TOOLBAR IN hToolbar ( INPUT 'DELETE':U ).
- END.
- ON 'ALT-R':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN TOOLBAR IN hToolbar ( INPUT 'RESET':U ).
- END.
- ON 'F9':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN TOOLBAR IN hToolbar ( INPUT 'SAVE':U ).
- END.
- ON 'ALT-S':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN TOOLBAR IN hToolbar ( INPUT 'SAVE':U ).
- END.
- ON 'ALT-K':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN TOOLBAR IN hToolbar ( INPUT 'COPY':U ).
- END.
- ON 'CTRL-N':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- DEF VAR sRecid AS RECID NO-UNDO.
- DEF VAR sRowid AS ROWID NO-UNDO.
- RUN 'g-kundennr.w':U ( OUTPUT sRecid ).
- IF sRecid = ? THEN RETURN NO-APPLY.
- FIND Adresse NO-LOCK WHERE RECID(Adresse) = sRecid NO-ERROR.
- IF NOT AVAILABLE Adresse THEN RETURN NO-APPLY.
- DO WITH FRAME {&FRAME-NAME}:
- ASSIGN {&List-6}.
- END.
- FIND FIRST SkontoAb NO-LOCK USE-INDEX SkontoAb-k1
- WHERE SkontoAb.Firma = Firma
- AND SkontoAb.Sko_Sta = R_Status
- AND SkontoAb.Knr = Adresse.Knr NO-ERROR.
- IF NOT AVAILABLE SkontoAb THEN RETURN NO-APPLY.
- sRowid = ROWID(SkontoAb).
- RUN REPOS IN h_d-skontoab ( INPUT sRowid ).
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
- IF FMutFlag = FALSE THEN DO:
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- RUN TOOLBAR IN hToolbar ( INPUT 'CANCEL':U ).
- RETURN NO-APPLY.
- END.
-
- /* Include custom Main Block code for SmartWindows. */
- {src/adm2/windowmn.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wSkontoabrechnung _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: <none>
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE currentPage AS INTEGER NO-UNDO.
- ASSIGN currentPage = getCurrentPage().
- CASE currentPage:
- WHEN 1 THEN DO:
- RUN constructObject (
- INPUT 'd-skontoab.wDB-AWARE':U ,
- INPUT FRAME fMain:HANDLE ,
- INPUT 'AppServiceASUsePromptASInfoForeignFieldsRowsToBatch100CheckCurrentChangedyesRebuildOnReposyesServerOperatingModeNONEDestroyStatelessnoDisconnectAppServernoObjectNamed-skontoabUpdateFromSourceno':U ,
- OUTPUT h_d-skontoab ).
- RUN repositionObject IN h_d-skontoab ( 2.91 , 56.20 ) NO-ERROR.
- /* Size in AB: ( 1.86 , 10.80 ) */
- RUN constructObject (
- INPUT 'b-skontoabrechnung.w':U ,
- INPUT FRAME fMain:HANDLE ,
- INPUT 'ScrollRemoteyesNumDown0CalcWidthnoMaxWidth80FetchOnReposToEndyesDataSourceNamesUpdateTargetNamesHideOnInitnoDisableOnInitnoObjectLayout':U ,
- OUTPUT h_b-skontoabrechnung ).
- RUN repositionObject IN h_b-skontoabrechnung ( 2.52 , 1.00 ) NO-ERROR.
- RUN resizeObject IN h_b-skontoabrechnung ( 7.62 , 140.00 ) NO-ERROR.
- RUN constructObject (
- INPUT 'src_dlcv91c/adm2/dyntoolbar.w':U ,
- INPUT FRAME fMain:HANDLE ,
- INPUT 'FlatButtonsyesMenunoShowBorderyesToolbaryesActionGroupsNavigationSubModulesTableIOTypeUpdateSupportedLinksNavigation-sourceEdgePixels2PanelTypeToolbarNavigationTargetNameHideOnInitnoDisableOnInitnoObjectLayout':U ,
- OUTPUT h_dyntoolbar ).
- RUN repositionObject IN h_dyntoolbar ( 1.00 , 1.60 ) NO-ERROR.
- RUN resizeObject IN h_dyntoolbar ( 1.33 , 46.60 ) NO-ERROR.
- /* Links to SmartDataObject h_d-skontoab. */
- RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-skontoab ).
- /* Links to SmartDataBrowser h_b-skontoabrechnung. */
- RUN addLink ( h_d-skontoab , 'Data':U , h_b-skontoabrechnung ).
- RUN addLink ( h_b-skontoabrechnung , 'Update':U , h_d-skontoab ).
- /* Adjust the tab order of the smart objects. */
- END. /* Page 1 */
- END CASE.
- /* Select a Startup page. */
- IF currentPage eq 0
- THEN RUN selectPage IN THIS-PROCEDURE ( 1 ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage wSkontoabrechnung
- PROCEDURE changePage :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- RUN SUPER.
- AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
- CASE AktSeite:
- WHEN 1 THEN DO:
- /*
- RUN addLink ( hToolbar , 'TableIO':U , h_v-auftr ).
- RUN addLink ( hToolbar , 'Navigation':U , h_d-auftr ).
- */
- RUN ENTRY_CURSOR.
- END.
- WHEN 2 THEN DO:
- RUN ENTRY_CURSOR.
- END.
- END CASE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wSkontoabrechnung _DEFAULT-DISABLE
- PROCEDURE disable_UI :
- /*------------------------------------------------------------------------------
- Purpose: DISABLE the User Interface
- Parameters: <none>
- 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(wSkontoabrechnung)
- THEN DELETE WIDGET wSkontoabrechnung.
- IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wSkontoabrechnung
- PROCEDURE enableObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR wx AS INT NO-UNDO.
- DEF VAR wy AS INT NO-UNDO.
- DEF VAR xString AS CHAR NO-UNDO.
- GET-KEY-VALUE SECTION 'FensterPositionen'
- KEY 'Skontoabrechnung'
- VALUE xString.
- IF xString = ? THEN xString = '30;30'.
- IF xString = '' THEN xString = '30;30'.
- wx = INTEGER(ENTRY(1, xString, ';')).
- wy = INTEGER(ENTRY(2, xString, ';')).
- IF wx < 0 THEN wx = 1.
- IF wy < 0 THEN wy = 1.
-
- {&WINDOW-NAME}:X = wx.
- {&WINDOW-NAME}:Y = wy.
- RUN SUPER.
- hToolbar = h_dyntoolbar.
- IF SAktiv THEN RUN FENSTER_TITEL ( INPUT {&WINDOW-NAME}:HANDLE ) NO-ERROR.
- IF VALID-HANDLE(hToolbar) THEN DO:
- RUN SETPROGNAME IN hToolbar ( THIS-PROCEDURE ).
- RUN setButtons IN hToolbar ( INPUT 'Initial-TableIo':U ).
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wSkontoabrechnung _DEFAULT-ENABLE
- PROCEDURE enable_UI :
- /*------------------------------------------------------------------------------
- Purpose: ENABLE the User Interface
- Parameters: <none>
- 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 R_Status T_Excel T_Verbuchen
- WITH FRAME fMain IN WINDOW wSkontoabrechnung.
- ENABLE R_Status Btn_Loeschen Btn_SelLoesch T_Excel Btn_Start Btn_NeuRech
- T_Verbuchen
- WITH FRAME fMain IN WINDOW wSkontoabrechnung.
- {&OPEN-BROWSERS-IN-QUERY-fMain}
- VIEW wSkontoabrechnung.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wSkontoabrechnung
- PROCEDURE ENDE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR wx AS INT NO-UNDO.
- DEF VAR wy AS INT NO-UNDO.
- DEF VAR xString AS CHAR NO-UNDO.
- AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
- IF AktSeite > 1 THEN DO:
- RUN selectPage ( INPUT 1 ).
- RETURN NO-APPLY.
- END.
- IF Saktiv THEN RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
- wx = {&WINDOW-NAME}:X NO-ERROR.
- wy = {&WINDOW-NAME}:Y NO-ERROR.
- xString = STRING(wx) + ';' + STRING(wy).
- PUT-KEY-VALUE SECTION 'FensterPositionen'
- KEY 'Skontoabrechnung'
- VALUE xString.
- APPLY "CLOSE":U TO THIS-PROCEDURE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR wSkontoabrechnung
- PROCEDURE ENTRY_CURSOR :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
- FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U).
- CASE AktSeite:
- /* WHEN 1 THEN DO: */
- /* IF FMutFlag THEN RUN applyEntry IN h_v- ( INPUT ? ). */
- /* ELSE RUN applyEntry IN h_b- ( INPUT ? ). */
- /* END. */
- WHEN 1 THEN RUN applyEntry IN h_b-skontoabrechnung ( INPUT ? ).
- /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */
- /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */
- /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */
- /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */
- /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */
- /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */
- END CASE.
- RETURN NO-APPLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL wSkontoabrechnung
- PROCEDURE EXCEL :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cParameter AS CHAR NO-UNDO.
- DEF VAR cDaten AS CHAR NO-UNDO.
- DEF VAR cDatei AS CHAR NO-UNDO.
- DEF VAR io AS LOG NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
- DEF VAR i1 AS INT NO-UNDO.
- DEF VAR AnzZeilen AS INT NO-UNDO.
- DEF VAR Zelle AS CHAR NO-UNDO.
- DEF VAR VTotal AS DEC EXTENT 10 NO-UNDO.
- DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR Firma AS CHAR NO-UNDO.
- DEF VAR AdFirma AS CHAR NO-UNDO.
- DEF VAR Knr AS INT NO-UNDO.
- DEF VAR Sko_Sta AS INT NO-UNDO.
- DEF VAR VonDatum AS DATE NO-UNDO.
- Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR.
- AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
- DO WITH FRAME {&FRAME-NAME}:
- cParameter = 'Skonto.xls' + CHR(01)
- + 'SkontoVorlage.xls' + CHR(01)
- + ''.
- RUN CREATEDATEI ( INPUT cParameter ).
- cDatei = RETURN-VALUE.
- cDaten = SESSION:TEMP-DIR + 'Skonto.txt'.
- RUN GETSKONTODATEN IN h_b-skontoabrechnung.
- IF RETURN-VALUE = 'ERROR' THEN RETURN.
- Sko_Sta = INTEGER(ENTRY(2, RETURN-VALUE, CHR(01))).
- Knr = INTEGER(ENTRY(3, RETURN-VALUE, CHR(01))).
- VonDatum = DATE (ENTRY(4, RETURN-VALUE, CHR(01))).
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Knr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Adresse THEN RETURN.
- FIND Steuer USE-INDEX Steuer-k1
- WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
- FIND FIRST SkontoAb USE-INDEX SkontoAb-k1
- WHERE SkontoAb.Firma = Firma
- AND SkontoAb.Sko_Sta = Sko_Sta
- AND SkontoAb.Knr = Knr
- AND SkontoAb.VonDatum = VonDatum NO-LOCK NO-ERROR.
- IF NOT AVAILABLE SkontoAb THEN RETURN.
- OUTPUT TO VALUE(cDaten).
- DO ix = 1 TO 12:
- CASE ix:
- WHEN 1 THEN PUT CONTROL Steuer.Firma1.
- WHEN 2 THEN PUT CONTROL Steuer.Firma2.
- WHEN 3 THEN PUT CONTROL Steuer.Strasse.
- WHEN 4 THEN PUT CONTROL Steuer.Ort.
- END CASE.
- PUT CONTROL '££££££' Adresse.Anschrift[ix] CHR(10).
- END.
- PUT CONTROL '£' CHR(10)
- 'Skonto-Abrechnung' CHR(10)
- '£' CHR(10).
- PUT CONTROL 'MWSt-Nr.: '
- Steuer.MWST_Nr '££££££'
- 'Kunden-Nr.: '
- STRING(Adresse.Knr,'999999') CHR(10)
- Steuer.Ort
- ', '
- STRING(TODAY,'99.99.9999') '££££££'
- 'Zeitraum : '
- STRING(SkontoAb.VonDatum,'99.99.9999')
- ' - '
- STRING(SkontoAb.BisDatum,'99.99.9999') CHR(10)
- '£' CHR(10).
- PUT CONTROL '£Faktura£Skonto£Anzahl Tg£Rechnungs£Skonto£Zahlungs'
- '£Skonto£Skonto£Skonto' CHR(10)
- '£Nummer£berecht.£zu Skonto£Datum£Datum£Datum£berecht'
- '£Netto£abgez.' CHR(10)
- '£' CHR(10).
- FOR EACH TWork:
- DELETE TWork.
- END.
- AnzZeilen = 0.
- FOR EACH SkontoAb USE-INDEX SkontoAb-k1
- WHERE SkontoAb.Firma = Firma
- AND SkontoAb.Sko_Sta = Sko_Sta
- AND SkontoAb.Knr = Knr
- AND SkontoAb.VonDatum = VonDatum
- AND SkontoAb.Netto <> 0 NO-LOCK
-
- BREAK BY SkontoAb.Knr
- BY SkontoAb.Faknr :
-
- IF FIRST-OF ( SkontoAb.Faknr ) THEN DO:
- ASSIGN VTotal[01] = 0
- VTotal[02] = 0
- VTotal[03] = 0
- VTotal[04] = 0
- VTotal[05] = 0.
- END.
-
- Rundbetr = SkontoAb.Netto * SkontoAb.Sko_Proz / 100.
- VTotal[01] = VTotal[01] + SkontoAb.Netto.
- VTotal[03] = VTotal[03] + SkontoAb.Sko_Abzug.
-
- IF SkontoAb.Berechtigt THEN DO:
- VTotal[02] = VTotal[02] + Rundbetr.
- END.
-
- FIND TWork USE-INDEX TWork-k1
- WHERE TWork.MWST% = SkontoAb.MWST-% NO-ERROR.
- IF NOT AVAILABLE TWork THEN DO:
- CREATE TWork.
- ASSIGN TWork.MWST% = SkontoAb.MWST-%.
- END.
- TWork.Betrag = TWork.Betrag + SkontoAb.Netto.
- TWork.Abzug = TWork.Abzug + SkontoAb.Sko_Abzug.
- IF SkontoAb.Berechtigt THEN DO:
- TWork.Skonto = TWork.Skonto + Rundbetr.
- END.
-
- IF NOT LAST-OF ( SkontoAb.Faknr ) THEN NEXT.
- PUT CONTROL '£'
- STRING(SkontoAb.Faknr ,'999999') '£'
- STRING(SkontoAb.Berechtigt ,'J/N') '£'
- STRING(SkontoAb.Anz_Tage ,'->>9') '£'
- STRING(SkontoAb.Fak_Datum ,'99.99.9999') '£'
- STRING(SkontoAb.Sko_Datum ,'99.99.9999') '£'.
- IF SkontoAb.Zah_Datum <> ?
- THEN PUT CONTROL STRING(SkontoAb.Zah_Datum ,'99.99.9999').
- PUT CONTROL '£'
- STRING(VTotal[01] ,'->>,>>9.99') '£'.
- IF SkontoAb.Berechtig = TRUE
- THEN PUT CONTROL STRING(VTotal[02],'->>,>>9.99').
- PUT CONTROL '£'.
- IF VTotal[03] <> 0 THEN PUT CONTROL STRING(VTotal[03],'->>,>>9.99').
- VTotal[07] = VTotal[07] + VTotal[02].
- VTotal[08] = VTotal[08] + VTotal[03].
- PUT CONTROL CHR(10).
- AnzZeilen = AnzZeilen + 1.
- END.
- PUT CONTROL '£' CHR(10)
- 'Total Skonto Netto££££££££'
- STRING(VTotal[07],'->>>,>>9.99') '£'
- STRING(VTotal[08],'->>>,>>9.99') CHR(10)
- '£' CHR(10).
- VTotal = 0.
- VBuchen = 0.
- VAnsatz = 0.
- i1 = 0.
- FOR EACH TWork
- BREAK BY TWork.MWST%:
- VTotal[01] = VTotal[01] + TWork.Betrag.
- VTotal[02] = VTotal[02] + TWork.Skonto.
- VTotal[03] = VTotal[03] + TWork.Abzug.
- IF NOT LAST-OF ( TWork.MWST% ) THEN NEXT.
- i1 = i1 + 1.
- VBuchen[i1] = VTotal[02] - VTotal[03].
- VAnsatz[i1] = TWork.MWST%.
- PUT CONTROL 'Mehrwertsteuer '
- STRING(TWork.MWST%,'>9.99%') '££££££'
- STRING(VTotal[02] ,'->>>,>>9.99') '£'
- STRING(VTotal[03] ,'->>>,>>9.99') '£'.
- Rundbetr = VTotal[02] - VTotal[03].
- VTotal[09] = VTotal[09] + Rundbetr.
- PUT CONTROL STRING(Rundbetr ,'->>>,>>9.99') '£'.
- Rundbetr = Rundbetr * TWork.MWST% / 100.
- VTotal[10] = VTotal[10] + Rundbetr.
- PUT CONTROL STRING(Rundbetr ,'->>>,>>9.99') CHR(10).
- VTotal[01] = 0.
- VTotal[02] = 0.
- VTotal[03] = 0.
- END.
- Rundbetr = VTotal[09] + VTotal[10].
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- PUT CONTROL CHR(10)
- 'Total Skonto/Mehrwertsteuer-Guthaben' '££££££££'
- STRING(VTotal[09] ,'->>>,>>9.99') '£'
- STRING(VTotal[10] ,'->>>,>>9.99') CHR(10)
- 'Skontogutschrift inkl. Mehrwertsteuer' '£££££££££'
- STRING(Rundbetr ,"->>>,>>9.99") CHR(10).
- excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
- IF NOT VALID-HANDLE(excelAppl) THEN DO:
- RUN FEHLER ( INPUT 1035 ).
- RETURN NO-APPLY.
- END.
- RUN OPENEXCEL ( INPUT excelAppl,
- INPUT cDatei,
- INPUT '',
- OUTPUT io ).
- IF NOT io THEN DO:
- RUN FEHLER ( INPUT 1040 ).
- RETURN NO-APPLY.
- END.
- Zelle = 'A1'.
- excelAppl:Range(Zelle):SELECT.
- excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten.
- excelAppl:Application:RUN ( 'DateiEinfügen' ).
- Zelle = 'A1'.
- excelAppl:Range(Zelle):SELECT.
- excelAppl:Selection:ColumnWidth = 0.3.
-
- Zelle = 'A' + STRING(AnzZeilen + 21 + 2)
- + ':J' + STRING(AnzZeilen + 21 + 2).
- excelAppl:Range(Zelle):SELECT.
- excelAppl:Selection:Font:Bold = TRUE.
- Zelle = 'A' + STRING(AnzZeilen + 21 + 7)
- + ':J' + STRING(AnzZeilen + 21 + 7).
- excelAppl:Range(Zelle):SELECT.
- excelAppl:Selection:Font:Bold = TRUE.
- Zelle = 'A' + STRING(AnzZeilen + 21 + 8)
- + ':J' + STRING(AnzZeilen + 21 + 8).
- excelAppl:Range(Zelle):SELECT.
- excelAppl:Selection:Font:Bold = TRUE.
- Zelle = 'G' + STRING(AnzZeilen + 21 + 2)
- + ':J' + STRING(AnzZeilen + 21 + 8).
- excelAppl:Range(Zelle):SELECT.
- excelAppl:Selection:HorizontalAlignment = -4152.
- Zelle = 'A1'.
- excelAppl:Range(Zelle):SELECT.
- DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wSkontoabrechnung
- PROCEDURE exitObject :
- /*------------------------------------------------------------------------------
- Purpose: Window-specific override of this procedure which destroys
- its contents and itself.
- Notes:
- ------------------------------------------------------------------------------*/
- RUN ENDE.
- RETURN NO-APPLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE wSkontoabrechnung
- PROCEDURE NEXTPAGE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
- IF AktSeite = MaxPage THEN AktSeite = 1.
- ELSE AktSeite = AktSeite + 1.
- RUN selectPage ( INPUT AktSeite ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE wSkontoabrechnung
- PROCEDURE PREVPAGE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
- IF AktSeite = 1 THEN AktSeite = MaxPage.
- ELSE AktSeite = AktSeite - 1.
- RUN selectPage ( INPUT AktSeite ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage wSkontoabrechnung
- PROCEDURE selectPage :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
- DEF VAR FMutFlag AS LOG NO-UNDO.
- DEF VAR MutProg AS CHAR NO-UNDO.
- FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR.
- DO WHILE TRUE:
- IF NOT FMutFlag THEN LEAVE.
- MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U).
- IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE.
- RETURN NO-APPLY.
- END.
- CASE piPageNum:
- END CASE.
- AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U).
- CASE AktSeite:
- WHEN 1 THEN DO:
- /* RUN removeLink ( hToolbar , 'TableIO':U , h_v-auftr ). */
- /* RUN removeLink ( hToolbar , 'Navigation':U , h_d-auftr ). */
- END.
- END CASE.
- RUN SUPER( INPUT piPageNum).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR wSkontoabrechnung
- PROCEDURE TOOLBAR :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO.
-
- IF VALID-HANDLE(hToolbar) THEN RUN TOOLBAR IN hToolbar ( INPUT pcAction ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN wSkontoabrechnung
- PROCEDURE VERBUCHEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR Firma AS CHAR NO-UNDO.
- DEF VAR AdFirma AS CHAR NO-UNDO.
- DEF VAR Knr AS INT NO-UNDO.
- DEF VAR Sko_Sta AS INT NO-UNDO.
- DEF VAR VonDatum AS DATE NO-UNDO.
- DEF VAR VTotal AS DEC EXTENT 10 NO-UNDO.
- DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR cParam AS CHAR NO-UNDO.
- DEF VAR i1 AS INT NO-UNDO.
- DEF VAR iFaktor AS INT NO-UNDO.
- DEF VAR fStorno AS LOG NO-UNDO.
- Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR.
- AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
- RUN GETSKONTODATEN IN h_b-skontoabrechnung.
- IF RETURN-VALUE = 'ERROR' THEN RETURN.
- Sko_Sta = INTEGER(ENTRY(2, RETURN-VALUE, CHR(01))).
- Knr = INTEGER(ENTRY(3, RETURN-VALUE, CHR(01))).
- VonDatum = DATE (ENTRY(4, RETURN-VALUE, CHR(01))).
- iFaktor = IF Btn_Start:LABEL IN FRAME {&FRAME-NAME} = 'Storno' THEN -1 ELSE 1.
- fStorno = IF iFaktor < 0 THEN TRUE ELSE FALSE.
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Knr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Adresse THEN RETURN.
- FIND Steuer USE-INDEX Steuer-k1
- WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
- FIND FIRST SkontoAb USE-INDEX SkontoAb-k1
- WHERE SkontoAb.Firma = Firma
- AND SkontoAb.Sko_Sta = Sko_Sta
- AND SkontoAb.Knr = Knr
- AND SkontoAb.VonDatum = VonDatum NO-LOCK NO-ERROR.
- IF NOT AVAILABLE SkontoAb THEN RETURN.
- FOR EACH TWork:
- DELETE TWork.
- END.
- FOR EACH SkontoAb USE-INDEX SkontoAb-k1
- WHERE SkontoAb.Firma = Firma
- AND SkontoAb.Sko_Sta = Sko_Sta
- AND SkontoAb.Knr = Knr
- AND SkontoAb.VonDatum = VonDatum
- AND SkontoAb.Netto <> 0 NO-LOCK:
-
- Rundbetr = SkontoAb.Netto * SkontoAb.Sko_Proz / 100.
-
- FIND TWork USE-INDEX TWork-k1
- WHERE TWork.MWST% = SkontoAb.MWST-% NO-ERROR.
- IF NOT AVAILABLE TWork THEN DO:
- CREATE TWork.
- ASSIGN TWork.MWST% = SkontoAb.MWST-%.
- END.
- TWork.Betrag = TWork.Betrag + SkontoAb.Netto.
- TWork.Abzug = TWork.Abzug + SkontoAb.Sko_Abzug.
- IF SkontoAb.Berechtigt THEN DO:
- TWork.Skonto = TWork.Skonto + Rundbetr.
- END.
- END.
- VTotal = 0.
- VBuchen = 0.
- VAnsatz = 0.
- i1 = 0.
- FOR EACH TWork
- BREAK BY TWork.MWST%:
- VTotal[01] = VTotal[01] + TWork.Betrag.
- VTotal[02] = VTotal[02] + TWork.Skonto.
- VTotal[03] = VTotal[03] + TWork.Abzug.
- IF NOT LAST-OF ( TWork.MWST% ) THEN NEXT.
- i1 = i1 + 1.
- VBuchen[i1] = (VTotal[02] - VTotal[03]) * iFaktor.
- VAnsatz[i1] = TWork.MWST%.
- ASSIGN VTotal[01] = 0
- VTotal[02] = 0
- VTotal[03] = 0
- VTotal[04] = 0
- VTotal[05] = 0.
- END.
- cParam = ''.
- cParam = STRING(Knr ,'999999') + CHR(01)
- + STRING(VonDatum ,'99.99.9999') + CHR(01)
- + STRING(VBuchen[01] ,'zzzzzzzz9.99-') + CHR(01)
- + STRING(VAnsatz[01] ,'zzzzzzzzz.99-') + CHR(01)
- + STRING(VBuchen[02] ,'zzzzzzzz9.99-') + CHR(01)
- + STRING(VAnsatz[02] ,'zzzzzzzzz.99-') + CHR(01)
- + STRING(VBuchen[03] ,'zzzzzzzz9.99-') + CHR(01)
- + STRING(VAnsatz[03] ,'zzzzzzzzz.99-') + CHR(01)
- + STRING(VBuchen[04] ,'zzzzzzzz9.99-') + CHR(01)
- + STRING(VAnsatz[04] ,'zzzzzzzzz.99-').
- RUN 'g-skontobuchen.w':U ( cParam, fStorno ).
- FIND FIRST SkontoAb USE-INDEX SkontoAb-k1
- WHERE SkontoAb.Firma = Firma
- AND SkontoAb.Sko_Sta = Sko_Sta
- AND SkontoAb.Knr = Knr
- AND SkontoAb.VonDatum = VonDatum NO-LOCK NO-ERROR.
- IF AVAILABLE SkontoAb THEN RETURN.
- DYNAMIC-FUNCTION('openQuery':U IN h_d-skontoab ) NO-ERROR.
- FIND FIRST SkontoAb USE-INDEX SkontoAb-k1
- WHERE SkontoAb.Firma = Firma
- AND SkontoAb.Sko_Sta = Sko_Sta
- AND SkontoAb.Knr > Knr NO-LOCK NO-ERROR.
- IF AVAILABLE SkontoAb THEN DO:
- RUN REPOS IN h_d-skontoab ( INPUT ROWID(SkontoAb) ).
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- FIND LAST SkontoAb USE-INDEX SkontoAb-k1
- WHERE SkontoAb.Firma = Firma
- AND SkontoAb.Sko_Sta = Sko_Sta NO-LOCK NO-ERROR.
- IF AVAILABLE SkontoAb THEN DO:
- RUN REPOS IN h_d-skontoab ( INPUT ROWID(SkontoAb) ).
- END.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wSkontoabrechnung
- PROCEDURE viewObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- RUN SUPER.
- RUN ENTRY_CURSOR.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|