| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
- &ANALYZE-RESUME
- &Scoped-define WINDOW-NAME wProvisionsabrechnung
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wProvisionsabrechnung
- /*------------------------------------------------------------------------
- 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 Progname AS CHAR NO-UNDO.
- DEF VAR Vertr AS INT NO-UNDO.
- DEF VAR iMaxPer AS INT NO-UNDO.
- DEF VAR cVorlage AS CHAR NO-UNDO.
- DEF VAR cDokument AS CHAR NO-UNDO.
- DEF VAR cDaten AS CHAR NO-UNDO.
- DEF VAR cDateiName AS CHAR NO-UNDO.
- DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
- DEF TEMP-TABLE TProv FIELD Vertr AS INT
- FIELD Knr AS INT
- FIELD Artnr AS INT
- FIELD Inhalt AS INT
- FIELD Jahr AS INT
- FIELD Wgr AS INT
- FIELD Datum AS DATE
- FIELD Menge AS DEC
- FIELD Netto AS DEC
- FIELD Liter AS DEC
- FIELD Prov_Summ AS INT
- FIELD Prov_Art AS INT
-
- INDEX TProv-k1 AS PRIMARY
- Vertr
- Knr
- Artnr
- Inhalt
- Jahr
- INDEX TProv-k2
- Vertr
- Prov_Summ
- Artnr
- Inhalt
- Jahr.
- DEF TEMP-TABLE tProvMonat
- FIELD Vertr AS INT
- FIELD Knr AS INT
- FIELD Artnr AS INT
- FIELD Inhalt AS INT
- FIELD Jahr AS INT
- FIELD iJahr AS INT
- FIELD iMonat AS INT
- FIELD Menge AS DEC
- FIELD Netto AS DEC
- FIELD Liter AS DEC
-
- INDEX tProvMonat-k1 IS PRIMARY
- Vertr
- Knr
- Artnr
- Inhalt
- Jahr
- iJahr
- iMonat.
-
- DEF TEMP-TABLE tPerioden
- FIELD Periode AS INT
- FIELD Jahr AS INT
- FIELD Monat AS INT
-
- INDEX tPerioden-k1 IS PRIMARY
- Jahr
- Monat
- .
- /* _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 designated FRAME-NAME and/or first browse and/or first query */
- &Scoped-define FRAME-NAME fMain
- /* Standard List Definitions */
- &Scoped-Define ENABLED-OBJECTS RECT-13 CB_Vertreter F_VonKnr F_BisKnr ~
- F_VonArtnr F_BisArtnr F_VonDatum F_BisDatum R_Vertr T_Monat Btn_OK ~
- Btn_Cancel
- &Scoped-Define DISPLAYED-OBJECTS CB_Vertreter F_VonKnr F_BisKnr F_VonArtnr ~
- F_BisArtnr F_VonDatum F_BisDatum R_Vertr T_Monat
- /* Custom List Definitions */
- /* List-1,List-2,List-3,List-4,List-5,List-6 */
- &Scoped-define List-6 F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr F_VonDatum ~
- F_BisDatum R_Vertr T_Monat
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Prototypes ********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD XGET_VERTRETER wProvisionsabrechnung
- FUNCTION XGET_VERTRETER RETURNS INTEGER
- ( ipKnr AS INT ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD XGET_WARENGRUPPE wProvisionsabrechnung
- FUNCTION XGET_WARENGRUPPE RETURNS INTEGER
- ( ipArtnr AS INT ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Define the widget handle for the window */
- DEFINE VAR wProvisionsabrechnung AS WIDGET-HANDLE NO-UNDO.
- /* Definitions of the field level widgets */
- DEFINE BUTTON Btn_Cancel AUTO-END-KEY
- LABEL "&abbrechen"
- SIZE 14 BY 1.
- DEFINE BUTTON Btn_OK
- IMAGE-UP FILE "grafik/results%.ico":U
- IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
- LABEL "Excel"
- SIZE 7 BY 1.71.
- DEFINE VARIABLE CB_Vertreter AS CHARACTER FORMAT "X(256)":U
- LABEL "Vertreter"
- VIEW-AS COMBO-BOX INNER-LINES 5
- LIST-ITEM-PAIRS "Item 1","Item 1"
- DROP-DOWN-LIST
- SIZE 40 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_BisArtnr AS INTEGER FORMAT "999999":U INITIAL 0
- LABEL "-"
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U
- LABEL "-"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0
- LABEL "-"
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0
- LABEL "von - bis Artikelnummer"
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U
- LABEL "von - bis Fakturadatum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0
- LABEL "von - bis Kundennummer"
- VIEW-AS FILL-IN NATIVE
- SIZE 11 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE R_Vertr AS INTEGER
- VIEW-AS RADIO-SET VERTICAL
- RADIO-BUTTONS
- "Vertreter aus Auftrag", 1,
- "Vertreter aus Debitorstamm", 2
- SIZE 36.8 BY 1.43 NO-UNDO.
- DEFINE RECTANGLE RECT-13
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 72 BY 10.
- DEFINE VARIABLE T_Monat AS LOGICAL INITIAL no
- LABEL "Monatsspalten"
- VIEW-AS TOGGLE-BOX
- SIZE 38.2 BY 1 NO-UNDO.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME fMain
- CB_Vertreter AT ROW 1.52 COL 26 COLON-ALIGNED
- F_VonKnr AT ROW 2.52 COL 26 COLON-ALIGNED
- F_BisKnr AT ROW 2.52 COL 44 COLON-ALIGNED
- F_VonArtnr AT ROW 3.52 COL 26 COLON-ALIGNED
- F_BisArtnr AT ROW 3.52 COL 44 COLON-ALIGNED
- F_VonDatum AT ROW 4.52 COL 26 COLON-ALIGNED
- F_BisDatum AT ROW 4.52 COL 44 COLON-ALIGNED
- R_Vertr AT ROW 5.86 COL 28 NO-LABEL
- T_Monat AT ROW 7.62 COL 28 WIDGET-ID 2
- Btn_OK AT ROW 9 COL 28.4
- Btn_Cancel AT ROW 9.48 COL 52
- RECT-13 AT ROW 1.24 COL 2
- WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
- SIDE-LABELS NO-UNDERLINE THREE-D
- AT COL 1 ROW 1
- SIZE 74 BY 11.14.
- /* *********************** 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 wProvisionsabrechnung ASSIGN
- HIDDEN = YES
- TITLE = "Provisionsabrechnung"
- HEIGHT = 11.14
- WIDTH = 74
- 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 wProvisionsabrechnung
- /* ************************* 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 wProvisionsabrechnung
- VISIBLE,,RUN-PERSISTENT */
- /* SETTINGS FOR FRAME fMain
- FRAME-NAME */
- /* SETTINGS FOR FILL-IN F_BisArtnr IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_VonArtnr IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME fMain
- 6 */
- /* SETTINGS FOR RADIO-SET R_Vertr IN FRAME fMain
- 6 */
- /* SETTINGS FOR TOGGLE-BOX T_Monat IN FRAME fMain
- 6 */
- IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wProvisionsabrechnung)
- THEN wProvisionsabrechnung:HIDDEN = yes.
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME wProvisionsabrechnung
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wProvisionsabrechnung wProvisionsabrechnung
- ON END-ERROR OF wProvisionsabrechnung /* Provisionsabrechnung */
- 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 wProvisionsabrechnung wProvisionsabrechnung
- ON WINDOW-CLOSE OF wProvisionsabrechnung /* Provisionsabrechnung */
- DO:
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Cancel
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel wProvisionsabrechnung
- ON CHOOSE OF Btn_Cancel IN FRAME fMain /* abbrechen */
- DO:
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_OK
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK wProvisionsabrechnung
- ON CHOOSE OF Btn_OK IN FRAME fMain /* Excel */
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- Btn_OK:SENSITIVE = FALSE.
- Btn_Cancel:SENSITIVE = FALSE.
- SESSION:SET-WAIT-STATE ('GENERAL').
- END.
- RUN REPORT.
- DO WITH FRAME {&FRAME-NAME}:
- Btn_OK:SENSITIVE = TRUE.
- Btn_Cancel:SENSITIVE = TRUE.
- SESSION:SET-WAIT-STATE('').
- END.
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wProvisionsabrechnung
- /* *************************** Main Block *************************** */
- MaxPage = 1.
- AktSeite = 1.
- Progname = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') NO-ERROR.
- SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
- IF SAktiv THEN DO:
- Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
- END.
- SESSION:DATA-ENTRY-RETURN = TRUE.
- /* TRIGGERS ------------------------------------------------------ */
- ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN ENDE.
- 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 wProvisionsabrechnung _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>
- ------------------------------------------------------------------------------*/
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wProvisionsabrechnung _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(wProvisionsabrechnung)
- THEN DELETE WIDGET wProvisionsabrechnung.
- IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wProvisionsabrechnung
- 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.
- DO WITH FRAME {&FRAME-NAME}:
- RUN COMBO_VERTRETER ( INPUT CB_Vertreter:HANDLE ) NO-ERROR.
- Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION NO-ERROR.
- DYNAMIC-FUNCTION('GET_FEHLWERTE':U, INPUT Progname, INPUT Fenster ) NO-ERROR.
- ASSIGN {&List-6}.
- END.
- GET-KEY-VALUE SECTION 'FensterPositionen'
- KEY Progname
- 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.
- IF SAktiv THEN RUN FENSTER_TITEL ( INPUT {&WINDOW-NAME}:HANDLE ) NO-ERROR.
- DO WITH FRAME {&FRAME-NAME}:
- DISPLAY {&List-6}.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wProvisionsabrechnung _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 CB_Vertreter F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr F_VonDatum
- F_BisDatum R_Vertr T_Monat
- WITH FRAME fMain IN WINDOW wProvisionsabrechnung.
- ENABLE RECT-13 CB_Vertreter F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr
- F_VonDatum F_BisDatum R_Vertr T_Monat Btn_OK Btn_Cancel
- WITH FRAME fMain IN WINDOW wProvisionsabrechnung.
- {&OPEN-BROWSERS-IN-QUERY-fMain}
- VIEW wProvisionsabrechnung.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wProvisionsabrechnung
- 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.
- 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 Progname
- VALUE xString.
- APPLY "CLOSE":U TO THIS-PROCEDURE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wProvisionsabrechnung
- 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 KOPF wProvisionsabrechnung
- PROCEDURE KOPF :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO.
- DEF VAR Zelle AS CHAR NO-UNDO.
- DEF VAR ii AS INT INIT 74 NO-UNDO.
- FIND Steuer USE-INDEX Steuer-k1
- WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
- Zelle = 'B1'.
- eh:Range(Zelle):Select.
- eh:Selection:VALUE = Steuer.Firma1.
- Zelle = 'F1'.
- eh:Range(Zelle):Select.
- eh:Selection:VALUE = 'Provisionsabrechnung Vertreter'.
- Zelle = 'J1'.
- eh:Range(Zelle):Select.
- eh:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
- Zelle = 'B2'.
- eh:Range(Zelle):Select.
- eh:Selection:VALUE = Steuer.Ort.
- Zelle = 'F2'.
- eh:Range(Zelle):Select.
- eh:Selection:VALUE = STRING(F_VonDatum,'99.99.9999')
- + ' - '
- + STRING(F_BisDatum,'99.99.9999').
- Zelle = 'J2'.
- eh:Range(Zelle):Select.
- eh:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
-
- IF NOT T_Monat THEN RETURN.
-
- FOR EACH tPerioden BY tPerioden.Periode:
- Zelle = CHR(ii + tPerioden.Periode) + '3'.
- eh:Range(Zelle):Select.
- eh:Selection:VALUE = STRING(tPerioden.Monat,'99') + '.' + STRING(tPerioden.Jahr,'9999').
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT wProvisionsabrechnung
- PROCEDURE REPORT :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR VBetrag AS DEC NO-UNDO.
- DEF VAR VMenge AS DEC NO-UNDO.
- DEF VAR VLiter AS DEC NO-UNDO.
- DEF VAR PBetrag AS DEC NO-UNDO.
- DEF VAR PMenge AS DEC NO-UNDO.
- DEF VAR PLiter AS DEC NO-UNDO.
- DEF VAR ABetrag AS DEC NO-UNDO.
- DEF VAR AMenge AS DEC NO-UNDO.
- DEF VAR ALiter AS DEC NO-UNDO.
- DEF VAR Betrag AS DEC NO-UNDO.
- DEF VAR Menge AS DEC NO-UNDO.
- DEF VAR Liter AS DEC NO-UNDO.
- DEF VAR Multi AS DEC NO-UNDO.
- DEF VAR Wert AS DEC NO-UNDO.
- DEF VAR Prov AS DEC NO-UNDO.
- DEF VAR TProv AS DEC NO-UNDO.
-
- DEF VAR iMonMax AS INT NO-UNDO.
- DEF VAR iMon AS INT NO-UNDO.
- DEF VAR nPTotal AS DEC EXTENT 36 NO-UNDO.
- DEF VAR nVTotal AS DEC EXTENT 36 NO-UNDO.
- DEF VAR Bez1 AS CHAR NO-UNDO.
- DEF VAR Bez2 AS CHAR NO-UNDO.
- DEF VAR ja AS LOG NO-UNDO.
- DEF VAR Zelle AS CHAR NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- ASSIGN {&List-6}.
- Vertr = INTEGER(CB_Vertreter:SCREEN-VALUE) NO-ERROR.
- IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,YEAR(TODAY)).
- IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)).
- IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_BisDatum.
- IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999.
- IF F_VonArtnr = 0 AND F_BisArtnr = 0 THEN F_BisArtnr = 999999.
- IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr .
- IF F_VonArtnr > F_BisArtnr THEN F_BisArtnr = F_VonArtnr.
- DISPLAY {&List-6}.
- DYNAMIC-FUNCTION('PUT_FEHLWERTE':U, INPUT Progname, INPUT Fenster) NO-ERROR.
- END.
- RUN TEMPFILE_FUELLEN.
- FIND FIRST TProv NO-LOCK NO-ERROR.
- IF NOT AVAILABLE TProv THEN DO:
- MESSAGE 'Keine Daten Selektiert ! ' VIEW-AS ALERT-BOX INFORMATION.
- RETURN ''.
- END.
- cVorlage = 'Provisionsabrechnung.xls'.
- cDokument = 'Provisionsabrechnung.xls'.
- cDaten = 'Provisionsabrechnung.txt'.
- cDateiName = cDokument + CHR(01) + cVorlage.
- RUN CREATEDATEI ( INPUT cDateiName ).
- IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
- cDokument = RETURN-VALUE.
- cDateiName = cDaten.
- RUN CREATEDATEI ( INPUT cDateiName ).
- IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
- cDaten = RETURN-VALUE.
- OUTPUT TO VALUE(cDaten).
- FOR EACH TProv USE-INDEX TProv-k2
- BREAK BY TProv.Vertr
- BY TProv.Prov_Summ
- BY TProv.Artnr
- BY TProv.Inhalt
- BY TProv.Jahr :
- IF FIRST-OF ( TProv.Vertr ) THEN DO:
- VBetrag = 0.
- VMenge = 0.
- VLiter = 0.
- nVTotal = 0.
- TProv = 0.
- FIND Tabel USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'VERTR'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = TProv.Vertr
- AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR.
- PUT CONTROL STRING(TProv.Vertr,'999 ').
- IF AVAILABLE Tabel THEN PUT CONTROL Tabel.Bez1.
- ELSE PUT CONTROL '??????????'.
- PUT CONTROL CHR(10).
- END.
- IF FIRST-OF ( TProv.Prov_Summ ) THEN DO:
- PBetrag = 0.
- PMenge = 0.
- PLiter = 0.
- nPTotal = 0.
- FIND FIRST ProvSumm USE-INDEX ProvSumm-k1
- WHERE ProvSumm.Firma = Firma
- AND ProvSumm.Prov_Summ = TProv.Prov_Summ NO-LOCK NO-ERROR.
- PUT CONTROL '£'
- STRING(TProv.Prov_Summ,'999 ').
- IF AVAILABLE ProvSumm THEN PUT CONTROL ProvSumm.Bez.
- ELSE PUT CONTROL '??????????'.
- PUT CONTROL CHR(10).
- END.
- IF FIRST-OF ( TProv.Jahr ) THEN DO:
- ABetrag = 0.
- AMenge = 0.
- ALiter = 0.
- END.
- ASSIGN ABetrag = ABetrag + TProv.Netto
- AMenge = AMenge + TProv.Menge
- ALiter = ALiter + TProv.Liter.
- ASSIGN PBetrag = PBetrag + TProv.Netto
- PMenge = PMenge + TProv.Menge
- PLiter = PLiter + TProv.Liter.
- ASSIGN VBetrag = VBetrag + TProv.Netto
- VMenge = VMenge + TProv.Menge
- VLiter = VLiter + TProv.Liter.
- IF NOT LAST-OF ( TProv.Jahr ) THEN NEXT.
- FIND FIRST Artbez USE-INDEX Artbez-k1
- WHERE Artbez.Firma = Firma
- AND Artbez.Artnr = TProv.Artnr
- AND Artbez.Inhalt = TProv.Inhalt
- AND Artbez.Jahr = TProv.Jahr NO-LOCK NO-ERROR.
- IF AVAILABLE Artbez THEN DO:
- ASSIGN Bez1 = ArtBez.Bez1
- Bez2 = Artbez.Bez2.
- END.
- ELSE DO:
- ASSIGN Bez1 = '??????????'
- Bez2 = ''.
- END.
- ALiter = ALiter / 100.
- PUT CONTROL '££'
- STRING(TProv.Artnr ,'999999') '£'
- STRING(TProv.Inhalt,'9999') '£'
- STRING(TProv.Jahr ,'9999') '£'
- Bez1 '£'
- TRIM(STRING(ABetrag,'->>>>>>>9')) '£'
- TRIM(STRING(AMenge ,'->>>>>>>9')) '£'
- TRIM(STRING(ALiter ,'->>>>>>>9')) '£'.
- IF T_Monat THEN DO:
- FOR EACH tPerioden BY tPerioden.Periode:
- FIND FIRST tProvMonat
- WHERE tProvMonat.Vertr = tProv.Vertr
- AND tProvMonat.Knr = tProv.Knr
- AND tProvMonat.Artnr = tProv.Artnr
- AND tProvMonat.Inhalt = tProv.Inhalt
- AND tProvMonat.Jahr = tProv.Jahr
- AND tProvMonat.iJahr = tPerioden.Jahr
- AND tProvMonat.iMonat = tPerioden.Monat NO-ERROR.
- IF AVAILABLE tProvMonat THEN DO:
- CASE TProv.Prov_Art:
- WHEN 0 THEN Multi = tProvMonat.Menge.
- WHEN 1 THEN Multi = tProvMonat.Netto.
- WHEN 2 THEN Multi = tProvMonat.Liter / 100.
- END CASE.
- PUT CONTROL '£'
- TRIM(STRING(Multi,'->>>>>>>>9')).
- ASSIGN nPTotal[tPerioden.Periode] = nPTotal[tPerioden.Periode] + Multi
- nVTotal[tPerioden.Periode] = nVTotal[tPerioden.Periode] + Multi.
- END.
- ELSE PUT CONTROL '£'.
- END.
- END.
- PUT CONTROL CHR(10).
- IF Bez2 <> '' THEN PUT CONTROL '£££££'
- Bez2 CHR(10).
- IF NOT LAST-OF ( TProv.Prov_Summ ) THEN NEXT.
- PUT CONTROL '£' CHR(10)
- '£Total ProvisionssummenGruppe '
- STRING(TProv.Prov_Summ,'999') '£££££'
- TRIM(STRING(PBetrag,'->>>>>>>9')) '£'
- TRIM(STRING(PMenge ,'->>>>>>>9')) '£'
- TRIM(STRING(PLiter ,'->>>>>>>9')) '£'.
- IF T_Monat THEN DO:
- FOR EACH tPerioden BY tPerioden.Periode:
- Multi = nPTotal[tPerioden.Periode].
- PUT CONTROL '£'
- TRIM(STRING(Multi,'->>>>>>>>9')).
- END.
- END.
- PUT CONTROL CHR(10).
- ASSIGN Betrag = 0
- Menge = 0
- Liter = 0.
- CASE TProv.Prov_Art:
- WHEN 0 THEN Menge = PMenge.
- WHEN 1 THEN Betrag = PBetrag.
- WHEN 2 THEN Liter = PLiter / 100.
- END CASE.
- FIND LAST ProvSumm USE-INDEX ProvSumm-k1
- WHERE ProvSumm.Firma = Firma
- AND ProvSumm.Prov_Summ = TProv.Prov_Summ
- AND ProvSumm.Menge <= Menge
- AND ProvSumm.Betrag <= Betrag
- AND ProvSumm.Inhalt <= Liter NO-LOCK NO-ERROR.
- IF AVAILABLE ProvSumm THEN Wert = ProvSumm.Prov_Wert.
- ELSE Wert = 0.
- CASE TProv.Prov_Art:
- WHEN 0 THEN Multi = Menge.
- WHEN 1 THEN Multi = Betrag.
- WHEN 2 THEN Multi = Liter.
- END CASE.
- CASE TProv.Prov_Art:
- WHEN 0 THEN Prov = Multi * Wert.
- WHEN 1 THEN Prov = Multi * Wert / 100.
- WHEN 2 THEN Prov = Multi * Wert.
- END CASE.
- TProv = TProv + Prov.
- PUT CONTROL '£££££'
- 'Provision' '££'
- TRIM(STRING(Multi,'->>>>>>>>9.99')) '£'
- TRIM(STRING(Wert ,'->>>>>>>>9.99')) '£'
- TRIM(STRING(Prov ,'->>>>>>>>9.99')) CHR(10)
- '£' CHR(10).
- IF NOT LAST-OF ( TProv.Vertr ) THEN NEXT.
- PUT CONTROL 'Total Vertreter/Provision ' '££££££'
- TRIM(STRING(VBetrag,'->>>>>>>9')) '£'
- TRIM(STRING(VMenge ,'->>>>>>>9')) '£'
- TRIM(STRING(VLiter ,'->>>>>>>9')) '£'
- TRIM(STRING(TProv ,'->>>>>>>9.99')).
- IF T_Monat THEN DO:
- FOR EACH tPerioden BY tPerioden.Periode:
- Multi = nVTotal[tPerioden.Periode].
- PUT CONTROL '£'
- TRIM(STRING(Multi,'->>>>>>>>9')).
- END.
- END.
- PUT CONTROL CHR(10).
- END.
- OUTPUT CLOSE.
- excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
- IF NOT VALID-HANDLE(excelAppl) THEN DO:
- RUN FEHLER ( INPUT 1035 ).
- RETURN.
- END.
- RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ).
- IF NOT ja THEN DO:
- RUN FEHLER ( INPUT 1040 ).
- DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
- RETURN NO-APPLY.
- END.
- Zelle = 'A5'.
- excelAppl:Range(Zelle):SELECT.
- excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten.
- excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ).
- RUN KOPF ( INPUT excelAppl ).
- Zelle = 'A1'.
- excelAppl:Range(Zelle):SELECT.
- DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMPFILE_FUELLEN wProvisionsabrechnung
- PROCEDURE TEMPFILE_FUELLEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR kVertr AS INT NO-UNDO.
- DEF VAR Wgr AS INT NO-UNDO.
- DEF VAR Prov_Summ AS INT NO-UNDO.
- DEF VAR Prov_Art AS INT NO-UNDO.
- DEF VAR iJahr AS INT NO-UNDO.
- DEF VAR iMonat AS INT NO-UNDO.
- DEF VAR dStart AS DATE NO-UNDO.
- EMPTY TEMP-TABLE TProv.
- EMPTY TEMP-TABLE tProvMonat.
- EMPTY TEMP-TABLE tPerioden.
- iMaxPer = 1.
- iJahr = YEAR (F_VonDatum).
- iMonat = MONTH(F_VonDatum).
- dStart = F_VonDatum.
- CREATE tPerioden.
- ASSIGN tPerioden.Periode = iMaxPer
- tPerioden.Jahr = iJahr
- tPerioden.Monat = iMonat.
-
- DO WHILE dStart < F_BisDatum:
- IF MONTH(dStart + 1) = MONTH(dStart) THEN DO:
- dStart = dStart + 1.
- NEXT.
- END.
- dStart = dStart + 1.
- iMaxPer = iMaxPer + 1.
- iJahr = YEAR (dStart).
- iMonat = MONTH(dStart).
- CREATE tPerioden.
- ASSIGN tPerioden.Periode = iMaxPer
- tPerioden.Jahr = iJahr
- tPerioden.Monat = iMonat.
- IF iMaxPer = 36 THEN LEAVE.
- END.
- FOR EACH Artbw USE-INDEX Artbw-k10
- WHERE Artbw.Firma = Firma
- AND Artbw.Knr >= F_VonKnr
- AND Artbw.Knr <= F_BisKnr
- AND Artbw.Fak_Dat <> ?
- AND Artbw.Fak_Dat >= F_VonDatum
- AND Artbw.Fak_Dat <= F_BisDatum
- AND Artbw.Artnr >= F_VonArtnr
- AND Artbw.Artnr <= F_BisArtnr
- AND Artbw.Tr_Art = 01 NO-LOCK
- BREAK BY Artbw.Knr
- BY Artbw.Artnr:
- IF R_Vertr = 1 THEN kVertr = Artbw.Vertr.
- ELSE DO:
- IF FIRST-OF ( Artbw.Knr ) THEN
- kVertr = DYNAMIC-FUNCTION('XGET_VERTRETER':U, INPUT Artbw.Knr) NO-ERROR.
- END.
- IF FIRST-OF ( Artbw.Artnr ) THEN
- Wgr = DYNAMIC-FUNCTION('XGET_WARENGRUPPE':U, INPUT Artbw.Artnr) NO-ERROR.
- IF kVertr = ? THEN NEXT.
- IF kVertr <> Vertr THEN NEXT.
- CREATE TProv.
- ASSIGN TProv.Vertr = Vertr
- TProv.Knr = Artbw.Knr
- TProv.Artnr = Artbw.Artnr
- TProv.Inhalt = Artbw.Inhalt
- TProv.Jahr = Artbw.Jahr
- TProv.Wgr = Wgr
- TProv.Datum = Artbw.Fak_Dat
- TProv.Menge = Artbw.Menge
- TProv.Liter = Artbw.Liter
- TProv.Netto = Artbw.Net_Betr
- - Artbw.Auf_Rab
- - Artbw.Abh_Rab
- - Artbw.Auf_Sp_Rab.
- IF Artbw.MWST_Inkl THEN DO:
- TProv.Netto = TProv.Netto / (100 + Artbw.MWST%) * 100.
- END.
- iJahr = YEAR (Artbw.Fak_Dat).
- iMonat = MONTH(Artbw.Fak_Dat).
- FIND FIRST tProvMonat
- WHERE tProvMonat.Vertr = tProv.Vertr
- AND tProvMonat.Knr = tProv.Knr
- AND tProvMonat.Artnr = tProv.Artnr
- AND tProvMonat.Inhalt = tProv.Inhalt
- AND tProvMonat.Jahr = tProv.Jahr
- AND tProvMonat.iJahr = iJahr
- AND tProvMonat.iMonat = iMonat NO-ERROR.
- IF NOT AVAILABLE tProvMonat THEN DO:
- CREATE tProvMonat.
- ASSIGN tProvMonat.Vertr = tProv.Vertr
- tProvMonat.Knr = tProv.Knr
- tProvMonat.Artnr = tProv.Artnr
- tProvMonat.Inhalt = tProv.Inhalt
- tProvMonat.Jahr = tProv.Jahr
- tProvMonat.iJahr = iJahr
- tProvMonat.iMonat = iMonat.
- END.
- ASSIGN tProvMonat.Menge = tProvMonat.Menge + tProv.Menge
- tProvMonat.Liter = tProvMonat.Menge + tProv.Liter
- tProvMonat.Netto = tProvMonat.Menge + tProv.Netto.
- END.
- FOR EACH TProv BREAK BY TProv.Vertr
- BY TProv.Wgr :
- IF FIRST-OF ( TProv.Wgr ) THEN DO:
- FIND ProvTab USE-INDEX ProvTab-k1
- WHERE ProvTab.Firma = Firma
- AND ProvTab.Vertr = TProv.Vertr
- AND ProvTab.Art_Wgr = TProv.Wgr NO-LOCK NO-ERROR.
- IF AVAILABLE ProvTab THEN Prov_Summ = ProvTab.Prov_Summ.
- ELSE Prov_Summ = 999.
- FIND FIRST ProvSumm USE-INDEX ProvSumm-k1
- WHERE ProvSumm.Firma = Firma
- AND ProvSumm.Prov_Summ = Prov_Summ NO-LOCK NO-ERROR.
- IF AVAILABLE ProvSumm THEN Prov_Art = ProvSumm.Prov_Art.
- ELSE Prov_Art = 1.
- END.
- ASSIGN TProv.Prov_Summ = Prov_Summ
- TProv.Prov_Art = Prov_Art.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Implementations ***************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION XGET_VERTRETER wProvisionsabrechnung
- FUNCTION XGET_VERTRETER RETURNS INTEGER
- ( ipKnr AS INT ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = ipKnr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debst THEN RETURN ?.
- RETURN Debst.Vertr.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION XGET_WARENGRUPPE wProvisionsabrechnung
- FUNCTION XGET_WARENGRUPPE RETURNS INTEGER
- ( ipArtnr AS INT ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- FIND FIRST Artst USE-INDEX Artst-k1
- WHERE Artst.Firma = Firma
- AND Artst.Artnr = ipArtnr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Artst THEN RETURN ?.
- RETURN Artst.Wg_Grp.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|