| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
- &ANALYZE-RESUME
- /* Connected Databases
- anadat PROGRESS
- */
- &Scoped-define WINDOW-NAME CURRENT-WINDOW
- /* Temp-Table and Buffer definitions */
- DEFINE TEMP-TABLE RowObject
- {"d-spezprei.i"}.
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
- /*------------------------------------------------------------------------
- File:
- Description: from viewer.w - Template for SmartDataViewer objects
- Input Parameters:
- <none>
- Output Parameters:
- <none>
- ------------------------------------------------------------------------*/
- /* 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 ************************** */
- /* Komma-Trennzeichen */
- /* Keyfelder werden beim Mutieren nicht "Enabled" */
- &Scoped-define ERSTES_FELD F_Artnr
- &Scoped-define LETZTES_FELD F_Wert
- &Scoped-define KEY_FELDER F_Artnr,Inhalt,Jahr,Menge
- &Scoped-define NUR_LESEN Artikel
- /* Parameters Definitions --- */
- /* Local Variable Definitions --- */
- DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE.
- DEF VAR FNeu AS LOG NO-UNDO INIT FALSE.
- DEF VAR FMut AS LOG NO-UNDO INIT FALSE.
- DEF VAR FCopy AS LOG NO-UNDO INIT FALSE.
- DEF VAR FDisp AS LOG NO-UNDO INIT TRUE .
- DEF VAR Fenster AS HANDLE NO-UNDO.
- DEF VAR oldColValues AS CHAR NO-UNDO.
- DEF VAR oldColList AS CHAR 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 VArtnr AS INT NO-UNDO.
- DEF VAR MinNr AS INT NO-UNDO.
- DEF VAR cInput AS CHAR NO-UNDO.
- DEF VAR cOutput AS CHAR NO-UNDO.
- DEF VAR FLeave AS LOG INIT TRUE NO-UNDO.
- DEF VAR nArtnr AS INT NO-UNDO.
- DEF VAR nInhalt AS INT NO-UNDO.
- DEF VAR nJahr AS INT NO-UNDO.
- DEF VAR FSpezKol AS LOG NO-UNDO.
- DEF VAR F_Liste AS LOG NO-UNDO INIT FALSE.
- DEF VAR hDaten AS HANDLE NO-UNDO.
- DEF VAR dMenge AS DEC INIT 1 NO-UNDO.
- DEF VAR vDatum AS DATE NO-UNDO.
- DEF VAR bDatum AS DATE NO-UNDO.
- DEF VAR lProzBetr AS LOG INIT TRUE NO-UNDO.
- DEF VAR dWert AS DEC DECIMALS 4 NO-UNDO.
- DEF TEMP-TABLE TSpezPrei LIKE Spezprei.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE SmartDataViewer
- &Scoped-define DB-AWARE no
- &Scoped-define ADM-CONTAINER FRAME
- &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
- /* Include file with RowObject temp-table definition */
- &Scoped-define DATA-FIELD-DEFS "d-spezprei.i"
- /* Name of designated FRAME-NAME and/or first browse and/or first query */
- &Scoped-define FRAME-NAME F-Main
- /* Standard List Definitions */
- &Scoped-Define ENABLED-FIELDS RowObject.Inhalt RowObject.Jahr ~
- RowObject.Menge RowObject.Ab_Datum RowObject.Bis_Datum RowObject.lNetto ~
- RowObject.Wert RowObject.Artikel RowObject.VP_Normal RowObject.Marge
- &Scoped-define ENABLED-TABLES RowObject
- &Scoped-define FIRST-ENABLED-TABLE RowObject
- &Scoped-Define ENABLED-OBJECTS F_Artnr CB_Art F_Wert Btn_Kopieren ~
- Btn_Loeschen Btn_Excel RECT-1 RECT-2
- &Scoped-Define DISPLAYED-FIELDS RowObject.Inhalt RowObject.Jahr ~
- RowObject.Menge RowObject.Ab_Datum RowObject.Artnr RowObject.Bis_Datum ~
- RowObject.lNetto RowObject.Wert RowObject.Artikel RowObject.Firma ~
- RowObject.Knr RowObject.Proz_Betr RowObject.VP_Normal RowObject.Marge
- &Scoped-define DISPLAYED-TABLES RowObject
- &Scoped-define FIRST-DISPLAYED-TABLE RowObject
- &Scoped-Define DISPLAYED-OBJECTS F_Artnr F_Knr CB_Art F_Datum
- /* Custom List Definitions */
- /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
- &Scoped-define List-5 Btn_Kopieren Btn_Loeschen Btn_Excel
- &Scoped-define List-6 F_Artnr
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Definitions of the field level widgets */
- DEFINE BUTTON Btn_Excel
- IMAGE-UP FILE "grafik/results%.ico":U
- IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
- LABEL "Excel"
- SIZE 7 BY 1.81.
- DEFINE BUTTON Btn_Kopieren
- LABEL "Ko&pieren"
- SIZE 12 BY 1.
- DEFINE BUTTON Btn_Loeschen
- LABEL "&Löschen"
- SIZE 12 BY 1.
- DEFINE VARIABLE CB_Art AS CHARACTER FORMAT "X(256)":U
- LABEL "Preisart"
- VIEW-AS COMBO-BOX INNER-LINES 5
- LIST-ITEM-PAIRS "Prozent","P",
- "Betrag","B"
- DROP-DOWN-LIST
- SIZE 16 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(12)":U
- LABEL "Artikel"
- VIEW-AS FILL-IN NATIVE
- SIZE 12 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
- LABEL "bis Datum"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1 TOOLTIP "Löschen mit <RETURN>-Taste"
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Knr AS CHARACTER FORMAT "X(256)":U
- LABEL "zu Kundennummer(n)"
- VIEW-AS FILL-IN NATIVE
- SIZE 21.4 BY 1 TOOLTIP "Kopieren mit <RETURN> / <ALT-L> = Kundenlisten / rechte Maustaste zur Auswahl"
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Wert AS DECIMAL FORMAT "zzzz9.9999-":U INITIAL 0
- LABEL "Wert"
- VIEW-AS FILL-IN NATIVE
- SIZE 17 BY 1
- BGCOLOR 11 NO-UNDO.
- DEFINE RECTANGLE RECT-1
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 126 BY 4.81.
- DEFINE RECTANGLE RECT-2
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 126 BY 2.48.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME F-Main
- F_Artnr AT ROW 1.52 COL 12 COLON-ALIGNED
- RowObject.Inhalt AT ROW 1.52 COL 24 COLON-ALIGNED NO-LABEL FORMAT "9999"
- VIEW-AS FILL-IN NATIVE
- SIZE 8 BY 1
- BGCOLOR 15
- F_Knr AT ROW 7.14 COL 39.2 COLON-ALIGNED
- RowObject.Jahr AT ROW 1.52 COL 32 COLON-ALIGNED NO-LABEL FORMAT "9999"
- VIEW-AS FILL-IN NATIVE
- SIZE 8 BY 1
- BGCOLOR 15
- RowObject.Menge AT ROW 2.52 COL 24 COLON-ALIGNED
- LABEL "ab Menge" FORMAT "zzz,zz9"
- VIEW-AS FILL-IN NATIVE
- SIZE 12 BY 1
- BGCOLOR 15
- RowObject.Ab_Datum AT ROW 3.52 COL 24 COLON-ALIGNED
- LABEL "gültig ab/bis" FORMAT "99.99.9999"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15
- RowObject.Artnr AT ROW 2.52 COL 65 COLON-ALIGNED
- LABEL "Artikel" FORMAT "999999"
- VIEW-AS FILL-IN
- SIZE 4 BY 1
- BGCOLOR 15 NO-TAB-STOP
- RowObject.Bis_Datum AT ROW 3.52 COL 48 COLON-ALIGNED
- LABEL "/" FORMAT "99.99.9999"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15
- RowObject.lNetto AT ROW 3.52 COL 78 WIDGET-ID 2
- LABEL "auf Nettoartikel?"
- VIEW-AS TOGGLE-BOX
- SIZE 20.6 BY 1
- CB_Art AT ROW 4.52 COL 24 COLON-ALIGNED
- RowObject.Wert AT ROW 4.52 COL 48 COLON-ALIGNED
- LABEL "Wert" FORMAT "zzz9.9999-"
- VIEW-AS FILL-IN NATIVE
- SIZE 16 BY 1
- BGCOLOR 15
- F_Wert AT ROW 4.52 COL 76 COLON-ALIGNED
- Btn_Kopieren AT ROW 7.14 COL 6.8
- RowObject.Artikel AT ROW 1.52 COL 40 COLON-ALIGNED NO-LABEL FORMAT "x(30)"
- VIEW-AS FILL-IN NATIVE
- SIZE 32 BY 1
- BGCOLOR 15 NO-TAB-STOP
- Btn_Loeschen AT ROW 7.14 COL 65.4
- Btn_Excel AT ROW 6.76 COL 115.6
- RowObject.Firma AT ROW 2.52 COL 63 COLON-ALIGNED
- VIEW-AS FILL-IN
- SIZE 4 BY 1 NO-TAB-STOP
- RowObject.Knr AT ROW 2.52 COL 63 COLON-ALIGNED
- LABEL "Knr" FORMAT "999999"
- VIEW-AS FILL-IN
- SIZE 4 BY 1 NO-TAB-STOP
- RowObject.Proz_Betr AT ROW 2.52 COL 65
- LABEL "Proz/Betr"
- VIEW-AS TOGGLE-BOX
- SIZE 4 BY 1 NO-TAB-STOP
- RowObject.VP_Normal AT ROW 1.52 COL 103 COLON-ALIGNED
- LABEL "VP normal" FORMAT "zzzz9.9999"
- VIEW-AS FILL-IN NATIVE
- SIZE 18 BY 1
- BGCOLOR 14 NO-TAB-STOP
- RowObject.Marge AT ROW 4.52 COL 103 COLON-ALIGNED
- LABEL "Marge" FORMAT "zzzz9.9999-"
- VIEW-AS FILL-IN NATIVE
- SIZE 18 BY 1
- BGCOLOR 14 NO-TAB-STOP
- F_Datum AT ROW 7.14 COL 88 COLON-ALIGNED NO-TAB-STOP
- RECT-1 AT ROW 1.24 COL 2
- RECT-2 AT ROW 6.43 COL 2
- WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
- SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
- AT COL 1 ROW 1 SCROLLABLE .
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: SmartDataViewer
- Data Source: "d-spezprei.w"
- Allow: Basic,DB-Fields,Smart
- Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
- Frames: 1
- Add Fields to: Neither
- Other Settings: PERSISTENT-ONLY COMPILE
- Temp-Tables and Buffers:
- TABLE: RowObject D "?" ?
- ADDITIONAL-FIELDS:
- {d-spezprei.i}
- END-FIELDS.
- END-TABLES.
- */
- /* 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 vTableWin ASSIGN
- HEIGHT = 8.14
- WIDTH = 128.
- /* END WINDOW DEFINITION */
- */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
- /* ************************* Included-Libraries *********************** */
- {src/adm2/viewer.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********** Runtime Attributes and AppBuilder Settings *********** */
- &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
- /* SETTINGS FOR WINDOW vTableWin
- VISIBLE,,RUN-PERSISTENT */
- /* SETTINGS FOR FRAME F-Main
- NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */
- ASSIGN
- FRAME F-Main:SCROLLABLE = FALSE
- FRAME F-Main:HIDDEN = TRUE.
- /* SETTINGS FOR FILL-IN RowObject.Ab_Datum IN FRAME F-Main
- EXP-LABEL EXP-FORMAT */
- /* SETTINGS FOR FILL-IN RowObject.Artikel IN FRAME F-Main
- EXP-LABEL EXP-FORMAT */
- ASSIGN
- RowObject.Artikel:READ-ONLY IN FRAME F-Main = TRUE.
- /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main
- NO-ENABLE EXP-LABEL EXP-FORMAT */
- ASSIGN
- RowObject.Artnr:HIDDEN IN FRAME F-Main = TRUE
- RowObject.Artnr:READ-ONLY IN FRAME F-Main = TRUE.
- /* SETTINGS FOR FILL-IN RowObject.Bis_Datum IN FRAME F-Main
- EXP-LABEL EXP-FORMAT */
- /* SETTINGS FOR BUTTON Btn_Excel IN FRAME F-Main
- 5 */
- /* SETTINGS FOR BUTTON Btn_Kopieren IN FRAME F-Main
- 5 */
- /* SETTINGS FOR BUTTON Btn_Loeschen IN FRAME F-Main
- 5 */
- /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main
- NO-ENABLE */
- ASSIGN
- RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE
- RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE.
- /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main
- 6 */
- /* SETTINGS FOR FILL-IN F_Datum IN FRAME F-Main
- NO-ENABLE */
- /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main
- NO-ENABLE */
- /* SETTINGS FOR FILL-IN F_Wert IN FRAME F-Main
- NO-DISPLAY */
- /* SETTINGS FOR FILL-IN RowObject.Inhalt IN FRAME F-Main
- EXP-LABEL EXP-FORMAT */
- /* SETTINGS FOR FILL-IN RowObject.Jahr IN FRAME F-Main
- EXP-LABEL EXP-FORMAT */
- /* SETTINGS FOR FILL-IN RowObject.Knr IN FRAME F-Main
- NO-ENABLE EXP-LABEL EXP-FORMAT */
- ASSIGN
- RowObject.Knr:HIDDEN IN FRAME F-Main = TRUE
- RowObject.Knr:READ-ONLY IN FRAME F-Main = TRUE.
- /* SETTINGS FOR TOGGLE-BOX RowObject.lNetto IN FRAME F-Main
- EXP-LABEL */
- /* SETTINGS FOR FILL-IN RowObject.Marge IN FRAME F-Main
- EXP-LABEL EXP-FORMAT */
- ASSIGN
- RowObject.Marge:READ-ONLY IN FRAME F-Main = TRUE.
- /* SETTINGS FOR FILL-IN RowObject.Menge IN FRAME F-Main
- EXP-LABEL EXP-FORMAT */
- /* SETTINGS FOR TOGGLE-BOX RowObject.Proz_Betr IN FRAME F-Main
- NO-ENABLE EXP-LABEL */
- ASSIGN
- RowObject.Proz_Betr:HIDDEN IN FRAME F-Main = TRUE.
- /* SETTINGS FOR FILL-IN RowObject.VP_Normal IN FRAME F-Main
- EXP-LABEL EXP-FORMAT */
- ASSIGN
- RowObject.VP_Normal:READ-ONLY IN FRAME F-Main = TRUE.
- /* SETTINGS FOR FILL-IN RowObject.Wert IN FRAME F-Main
- EXP-LABEL EXP-FORMAT */
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
- /* Setting information for Queries and Browse Widgets fields */
- &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
- /* Query rebuild information for FRAME F-Main
- _Options = "NO-LOCK"
- _Query is NOT OPENED
- */ /* FRAME F-Main */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME Btn_Excel
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel vTableWin
- ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */
- DO:
- DISABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
- FSpezKol = FALSE.
- MESSAGE 'Möchten Sie die normalen Verkaufspreise als zusätzliche ' SKIP
- 'Kolonnen angefügt haben ? '
- VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
- UPDATE FSpezKol.
- RUN REPORT.
- ENABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Kopieren
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Kopieren vTableWin
- ON CHOOSE OF Btn_Kopieren IN FRAME F-Main /* Kopieren */
- DO:
- IF FMut THEN RETURN NO-APPLY.
- DO WITH FRAME {&FRAME-NAME}:
- DISABLE {&List-5}.
- F_Knr:SENSITIVE = TRUE.
- F_Knr:TAB-STOP = TRUE.
- APPLY 'ENTRY' TO F_Knr.
- RETURN NO-APPLY.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME Btn_Loeschen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen vTableWin
- ON CHOOSE OF Btn_Loeschen IN FRAME F-Main /* Löschen */
- DO:
- IF FMut THEN RETURN NO-APPLY.
- DO WITH FRAME {&FRAME-NAME}:
- SELF:SENSITIVE = FALSE.
- F_Datum:SENSITIVE = TRUE.
- F_Datum:TAB-STOP = TRUE.
- APPLY 'ENTRY' TO F_Datum.
- RETURN NO-APPLY.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME CB_Art
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Art vTableWin
- ON VALUE-CHANGED OF CB_Art IN FRAME F-Main /* Preisart */
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Proz_Betr:SCREEN-VALUE.
- rowObject.Proz_Betr:SCREEN-VALUE = SELF:SCREEN-VALUE.
- rowObject.Proz_Betr:MODIFIED = TRUE.
- IF CB_Art:SCREEN-VALUE = 'P' THEN F_Wert:LABEL = 'Preis'.
- ELSE F_Wert:LABEL = 'Prozent'.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Datum
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin
- ON END-ERROR OF F_Datum IN FRAME F-Main /* bis Datum */
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- SELF:SCREEN-VALUE = ''.
- SELF:SENSITIVE = FALSE.
- SELF:TAB-STOP = FALSE.
- ENABLE {&list-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin
- ON LEAVE OF F_Datum IN FRAME F-Main /* bis Datum */
- DO:
- RUN LOESCHEN.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin
- ON RETURN OF F_Datum IN FRAME F-Main /* bis Datum */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME F_Knr
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
- ON ALT-L OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
- DO:
- F_Liste = TRUE.
- RUN g-adresslisten.w ( INPUT SELF ).
- APPLY 'ENTRY' TO SELF.
- APPLY 'END' TO SELF.
- F_Liste = FALSE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
- ON END-ERROR OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
- DO:
- DO WITH FRAME {&FRAME-NAME}:
- SELF:SCREEN-VALUE = ''.
- SELF:SENSITIVE = FALSE.
- SELF:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
- ON LEAVE OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
- DO:
- IF F_Liste THEN RETURN.
- RUN KOPIEREN.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
- ON RETURN OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
- DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
- ON RIGHT-MOUSE-CLICK OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
- DO:
- RUN g-auswahl-adresse.w ( INPUT SELF ).
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME RowObject.lNetto
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.lNetto vTableWin
- ON VALUE-CHANGED OF RowObject.lNetto IN FRAME F-Main /* auf Nettoartikel? */
- DO:
- IF NOT FMut THEN SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN STRING(TRUE) ELSE STRING(FALSE) ).
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
- /* *************************** Main Block *************************** */
- DEF VAR ix AS INT NO-UNDO.
- SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
- MinNr = 1.
- IF SAktiv THEN DO:
- Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
- ADFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
- FIND Steuer USE-INDEX Steuer-k1
- WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
- IF AVAILABLE Steuer THEN DO:
- DO ix = 2 TO DYNAMIC-FUNCTION('GETMINARTNR':U) :
- MinNr = MinNr * 10.
- END.
- END.
- END.
- /* Triggers ------------------------------------------------------ */
- ON 'RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
- DO:
- RUN RETURN_FELD ( INPUT SELF:HANDLE ).
- IF RETURN-VALUE = 'TAB' THEN DO:
- APPLY 'TAB' TO SELF.
- RETURN NO-APPLY.
- END.
- END.
- ON 'ENTRY':U OF FRAME {&FRAME-NAME} ANYWHERE
- DO:
- RUN ENTRY_FELD_TEST ( INPUT SELF:HANDLE ).
- IF RETURN-VALUE = 'ERROR' THEN DO:
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- IF RETURN-VALUE = 'APPLY' THEN DO:
- RETURN NO-APPLY.
- END.
- END.
-
- ON 'LEAVE':U OF FRAME {&FRAME-NAME} ANYWHERE
- DO:
- IF NOT FLeave THEN RETURN.
- RUN LEAVE_FELD_TEST ( INPUT SELF:HANDLE ).
- IF RETURN-VALUE = 'ERROR' THEN DO:
- APPLY 'ENTRY' TO SELF.
- RETURN NO-APPLY.
- END.
- IF RETURN-VALUE = 'APPLY' THEN DO:
- RETURN NO-APPLY.
- END.
- END.
-
- &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
- RUN initializeObject.
- &ENDIF
-
- /************************ INTERNAL PROCEDURES ********************/
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
- PROCEDURE addRecord :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DO WITH FRAME {&FRAME-NAME}:
- F_Knr :SCREEN-VALUE = ''.
- F_Knr :SENSITIVE = FALSE.
- F_Knr :TAB-STOP = FALSE.
- F_Datum:SCREEN-VALUE = ''.
- F_Datum:SENSITIVE = FALSE.
- F_Datum:TAB-STOP = FALSE.
- END.
- Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR.
- IF Knr = 0 THEN DO:
- DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
- RETURN NO-APPLY.
- END.
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = Knr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- RUN FEHLER ( INPUT 1016 ).
- DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
- RETURN NO-APPLY.
- END.
- FNeu = TRUE.
- FMut = TRUE.
- FDisp = TRUE.
- RUN SUPER.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BERECHNEN vTableWin
- PROCEDURE BERECHNEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR FInkl AS LOG NO-UNDO.
- DEF VAR PreisGrp AS INT NO-UNDO.
- DEF VAR Marge AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR VK_Netto AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR VK_Spez AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR Ansatz AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR Wert AS DEC DECIMALS 4 NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- nArtnr = INTEGER(rowObject.Artnr :SCREEN-VALUE).
- nInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE).
- nJahr = INTEGER(rowObject.Jahr :SCREEN-VALUE).
- Wert = DECIMAL(rowObject.Wert :SCREEN-VALUE).
- Knr = INTEGER(rowObject.Knr :SCREEN-VALUE).
- END.
- FIND Artst USE-INDEX Artst-k1
- WHERE Artst.Firma = Firma
- AND Artst.Artnr = nArtnr
- AND Artst.Inhalt = nInhalt
- AND Artst.Jahr = nJahr NO-LOCK NO-ERROR.
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = Knr NO-LOCK NO-ERROR.
- PreisGrp = Debst.Preis_Grp.
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = Debst.MWST
- AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
- FInkl = Wust.Incl.
- FIND AbwPrGrp USE-INDEX AbwPrGrp-k1
- WHERE AbwPrGrp.Firma = Firma
- AND AbwPrGrp.Knr = SpezPrei.Knr
- AND AbwPrGrp.Wg_Grp = Artst.Wg_Grp NO-LOCK NO-ERROR.
- IF AVAILABLE AbwPrGrp THEN PreisGrp = AbwPrGrp.Preis_Grp.
- FIND LAST ArtPreis USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = nArtnr
- AND ArtPreis.Inhalt = nInhalt
- AND ArtPreis.Jahr = nJahr
- AND ArtPreis.Preis_Grp = PreisGrp
- AND ArtPreis.Ab_Datum <= TODAY
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Aktiv = TRUE
- NO-LOCK NO-ERROR.
- IF NOT AVAILABLE ArtPreis THEN DO:
- FIND LAST ArtPreis USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = nArtnr
- AND ArtPreis.Inhalt = nInhalt
- AND ArtPreis.Jahr = nJahr
- AND ArtPreis.Preis_Grp = Debst.Preis_Grp
- AND ArtPreis.Ab_Datum <= TODAY
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Aktiv = TRUE
- NO-LOCK NO-ERROR.
- END.
- IF NOT AVAILABLE ArtPreis THEN DO:
- FIND LAST ArtPreis USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = nArtnr
- AND ArtPreis.Inhalt = nInhalt
- AND ArtPreis.Jahr = nJahr
- AND ArtPreis.Preis_Grp = 0
- AND ArtPreis.Ab_Datum <= TODAY
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Aktiv = TRUE
- NO-LOCK NO-ERROR.
- END.
- DO WITH FRAME {&FRAME-NAME}:
- Ansatz = ArtPreis.VK_Brutto * 100 / ArtPreis.VK_Netto.
- IF FInkl THEN rowObject.VP_Normal:SCREEN-VALUE = STRING(ArtPreis.VK_Brutto).
- ELSE rowObject.VP_Normal:SCREEN-VALUE = STRING(ArtPreis.VK_Netto).
- VK_Netto = DECIMAL(rowObject.VP_Normal:SCREEN-VALUE).
- IF CB_Art:SCREEN-VALUE = 'P' THEN VK_Spez = VK_Netto * (100 - Wert) / 100.
- ELSE VK_Spez = Wert.
- IF FInkl THEN VK_Spez = VK_Spez / Ansatz * 100.
- IF Artst.Listen_EP = 0 THEN Marge = 0.
- ELSE Marge = 100 - (Artst.Listen_EP * 100 / VK_Spez).
- rowObject.Marge:SCREEN-VALUE = STRING(Marge).
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
- PROCEDURE cancelRecord :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- /* Code placed here will execute PRIOR to standard behavior. */
- RUN SUPER.
- /* Code placed here will execute AFTER standard behavior. */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
- PROCEDURE copyRecord :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DO WITH FRAME {&FRAME-NAME}:
- F_Knr :SCREEN-VALUE = ''.
- F_Knr :SENSITIVE = FALSE.
- F_Knr :TAB-STOP = FALSE.
- F_Datum:SCREEN-VALUE = ''.
- F_Datum:SENSITIVE = FALSE.
- F_Datum:TAB-STOP = FALSE.
- END.
- Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR.
- IF Knr = 0 THEN DO:
- DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
- RETURN NO-APPLY.
- END.
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = Knr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- RUN FEHLER ( INPUT 1016 ).
- DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
- RETURN NO-APPLY.
- END.
- FNeu = TRUE.
- FMut = TRUE.
- FCopy = TRUE.
- FDisp = FALSE.
- RUN SUPER.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
- PROCEDURE deleteRecord :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR Ja AS LOG NO-UNDO.
- Ja = DYNAMIC-FUNCTION( 'ANTWORT_JA':U, INPUT 1000 ).
- IF NOT Ja THEN DO:
- PUBLISH 'TOOLBAR' ( INPUT 'CANCEL':U ).
- RETURN NO-APPLY.
- END.
- RUN SUPER.
- /* Code placed here will execute AFTER standard behavior. */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
- PROCEDURE disableFields :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- END.
- RUN SUPER( INPUT pcFieldType).
- IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
- RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
- RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT TRUE ).
- IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
- RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
- END.
- DO WITH FRAME {&FRAME-NAME}:
- ENABLE {&List-5}.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _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.
- ------------------------------------------------------------------------------*/
- /* Hide all frames. */
- HIDE FRAME F-Main.
- IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
- PROCEDURE displayFields :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
- DEF VAR VP AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR Wert AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR Betrag AS DEC DECIMALS 4 NO-UNDO.
- IF NOT FDisp THEN DO:
- FDisp = TRUE.
- RETURN.
- END.
- OldColValues = pcColValues.
- OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
- IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
- DO WITH FRAME {&FRAME-NAME}:
- END.
- RUN SUPER( INPUT pcColValues).
- DO WITH FRAME {&FRAME-NAME}:
- F_Artnr:SCREEN-VALUE = rowObject.Artnr:SCREEN-VALUE.
- CB_Art:SCREEN-VALUE = rowObject.Proz_Betr:SCREEN-VALUE NO-ERROR.
- VP = DECIMAL(rowObject.VP_Normal:SCREEN-VALUE).
- Wert = DECIMAL(rowObject.Wert:SCREEN-VALUE ).
- IF CB_Art:SCREEN-VALUE = 'P' THEN DO:
- F_Wert:LABEL = 'Preis'.
- Betrag = VP * (100 - Wert) / 100.
- F_Wert:SCREEN-VALUE = STRING(Betrag).
- END.
- ELSE DO:
- F_Wert:LABEL = 'Prozent'.
- Betrag = (100 - (Wert * 100 / VP)).
- F_Wert:SCREEN-VALUE = STRING(Betrag).
- END.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
- PROCEDURE enableFields :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- /* Code placed here will execute PRIOR to standard behavior. */
- /*
- RUN SUPER.
- */
- IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
- RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
- RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT FALSE ).
- IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO:
- RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
- END.
-
- DO WITH FRAME {&FRAME-NAME}:
- IF CB_Art:SCREEN-VALUE = 'P' THEN F_Wert:LABEL = 'Preis'.
- ELSE F_Wert:LABEL = 'Prozent'.
- DISABLE {&List-5}.
- END.
-
- IF FNeu THEN RETURN.
- IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
- RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
- PROCEDURE enableObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- RUN SUPER.
- IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
- IF SAktiv THEN DO WITH FRAME {&FRAME-NAME}:
- hDaten = DYNAMIC-FUNCTION('getDataSOurce':U) NO-ERROR.
- RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
- RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT TRUE ).
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
- PROCEDURE ENTRY_FELD_TEST :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
- DEF VAR FeldName AS CHAR NO-UNDO.
- DEF VAR FeldInhalt AS CHAR NO-UNDO.
- DEF VAR nPreis AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR nWert AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR nBetrag AS DEC DECIMALS 4 NO-UNDO.
- FeldName = ''.
- FeldInhalt = ''.
- IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
- IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
- IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
-
- FeldName = ipHandle:NAME.
- IF ipHandle:TYPE = 'FILL-IN' OR
- ipHandle:TYPE = 'COMBO-BOX' OR
- ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
- IF NOT FMut THEN RETURN ''.
- DO WITH FRAME {&FRAME-NAME}:
- CASE FeldName:
- WHEN 'F_Wert' THEN DO:
- nWert = DECIMAL(rowObject.Wert:SCREEN-VALUE).
- IF nWert = 0 THEN RETURN ''.
- nPreis = DECIMAL(rowObject.VP_Normal:SCREEN-VALUE).
- IF CB_Art:SCREEN-VALUE = 'P' THEN DO:
- nBetrag = nPreis * (100 - nWert) / 100.
- ipHandle:SCREEN-VALUE = STRING(nBetrag).
- END.
- ELSE DO:
- nBetrag = 100 - (nWert * 100 / nPreis).
- ipHandle:SCREEN-VALUE = STRING(nBetrag).
- END.
- RUN BERECHNEN.
- ipHandle:MODIFIED = FALSE.
- END.
- END CASE.
- END.
- RETURN ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
- PROCEDURE FEHLWERTE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO.
- DEF VAR FwFelder AS CHAR NO-UNDO.
- DEF VAR FwFeld AS CHAR NO-UNDO.
- DEF VAR FwValue AS CHAR NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
- DEF VAR i1 AS INT NO-UNDO.
- GET-KEY-VALUE SECTION 'Fw???????' KEY ? VALUE FwFelder.
- IF NOT FCopy THEN DO:
- DO ix = 1 TO NUM-ENTRIES(FwFelder, ','):
- FwFeld = ENTRY (ix , FwFelder , ',').
- i1 = LOOKUP(FwFeld, oldColList, ',') + 1.
- IF i1 < 2 THEN NEXT.
- GET-KEY-VALUE SECTION 'Fw???????' KEY FwFeld VALUE FwValue.
- ENTRY(i1, pcColValues, CHR(1)) = FwValue NO-ERROR.
- END.
- IF vDatum = ? THEN vDatum = TODAY.
- IF bdatum = ? THEN bdatum = DATE(12,31,YEAR(TODAY)).
- i1 = LOOKUP('Menge', oldColList, ',') + 1.
- ENTRY(i1, pcColValues, CHR(01)) = STRING(dMenge) NO-ERROR.
- i1 = LOOKUP('Ab_Datum', oldColList, ',') + 1.
- ENTRY(i1, pcColValues, CHR(01)) = STRING(vDatum) NO-ERROR.
- i1 = LOOKUP('Bis_Datum', oldColList, ',') + 1.
- ENTRY(i1, pcColValues, CHR(01)) = STRING(bDatum) NO-ERROR.
- i1 = LOOKUP('Proz_Betr', oldColList, ',') + 1.
- ENTRY(i1, pcColValues, CHR(01)) = STRING(lProzBetr) NO-ERROR.
- i1 = LOOKUP('Wert', oldColList, ',') + 1.
- ENTRY(i1, pcColValues, CHR(01)) = STRING(dWert) NO-ERROR.
- ix = DYNAMIC-FUNCTION('getFWNettoRab':U) NO-ERROR.
- i1 = LOOKUP('lNetto', oldColList, ',') + 1.
- ENTRY(i1, pcColValues, CHR(01)) = (IF ix = 0 THEN STRING(TRUE) ELSE STRING(FALSE)) NO-ERROR.
- END.
- IF FCopy THEN DO:
- END.
- OldColValues = pcColValues.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF vTableWin
- PROCEDURE KOPF :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO.
- DEF VAR Zelle AS CHAR NO-UNDO.
- FIND Steuer USE-INDEX Steuer-k1
- WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
- Zelle = 'Links1'.
- eh:Range(Zelle):SELECT.
- eh:SELECTION:VALUE = Steuer.Firma1.
- Zelle = 'Mitte1'.
- eh:Range(Zelle):SELECT.
- eh:SELECTION:VALUE = 'Spezialpreise eines Kunden'.
- Zelle = 'Rechts1'.
- eh:Range(Zelle):SELECT.
- eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
- Zelle = 'Links2'.
- eh:Range(Zelle):SELECT.
- eh:SELECTION:VALUE = Steuer.Ort.
- Zelle = 'Mitte2'.
- eh:Range(Zelle):SELECT.
- eh:SELECTION:VALUE = ''.
- Zelle = 'Rechts2'.
- eh:Range(Zelle):SELECT.
- eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPIEREN vTableWin
- PROCEDURE KOPIEREN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR NeuKnr AS INT NO-UNDO.
- DEF VAR Ja AS LOG NO-UNDO.
- DEF VAR xKnr AS CHAR NO-UNDO.
- DEF VAR ii AS INT NO-UNDO.
- DEF VAR Fehl AS LOG NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- IF KEYFUNCTION(LASTKEY) <> 'RETURN' THEN DO:
- F_Knr:SCREEN-VALUE = ''.
- F_Knr:SENSITIVE = FALSE.
- F_Knr:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- Knr = ?.
- Knr = INTEGER(rowObject.Knr:SCREEN-VALUE) NO-ERROR.
- IF Knr = 0 OR
- Knr = ? THEN DO:
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- IF F_Knr:SCREEN-VALUE = '' THEN DO:
- F_Knr:SENSITIVE = FALSE.
- F_Knr:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- xKnr = F_Knr:SCREEN-VALUE.
- xKnr = REPLACE(xKnr, ';', ',').
- xKnr = REPLACE(xKnr, '.', ',').
- F_Knr = ''.
- DO ii = 1 TO NUM-ENTRIES(xKnr, ','):
- ERROR-STATUS:ERROR = FALSE.
- NeuKnr = INTEGER(ENTRY(ii, xKnr, ',')) NO-ERROR.
- IF ERROR-STATUS:ERROR THEN NEXT.
- IF NeuKnr = 0 THEN NEXT.
- IF NeuKnr = Knr THEN NEXT.
- IF F_Knr <> '' THEN F_Knr = F_Knr + ','.
- F_Knr = F_Knr + TRIM(STRING(NeuKnr,'zzzzzz')).
- END.
- xKnr = F_Knr.
- /* auf alle Kunden kopieren */
- Fehl = FALSE.
- DO ii = 1 TO NUM-ENTRIES(xKnr, ','):
- NeuKnr = INTEGER(ENTRY(ii, xKnr, ',')).
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = NeuKnr
- AND Adresse.Aktiv = TRUE NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Adresse THEN DO:
- F_Knr:SCREEN-VALUE = STRING(NeuKnr,'999999').
- RUN FEHLER ( INPUT 1015 ).
- Fehl = TRUE.
- NEXT.
- END.
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = NeuKnr
- AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- F_Knr:SCREEN-VALUE = STRING(NeuKnr,'999999').
- RUN FEHLER ( INPUT 1016 ).
- Fehl = TRUE.
- NEXT.
- END.
- FIND FIRST SpezPrei USE-INDEX SpezPrei-k1
- WHERE SpezPrei.Firma = Debst.Firma
- AND SpezPrei.Knr = Debst.Knr NO-LOCK NO-ERROR.
- IF AVAILABLE SpezPrei THEN DO:
- Ja = FALSE.
- MESSAGE 'Kunde hat bereits Spezialpreise! Sollen diese gelöscht werden?' SKIP
- VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
- UPDATE Ja.
- IF Ja THEN DO:
- FOR EACH SpezPrei USE-INDEX SpezPrei-k1
- WHERE SpezPrei.Firma = Firma
- AND SpezPrei.Knr = NeuKnr TRANSACTION:
- DELETE SpezPrei.
- END.
- END.
- END.
- Ja = TRUE.
- MESSAGE 'Wollen Sie diese Konditionen vom Kunden ' STRING(Knr,'999999')
- ' zum Kunden ' SKIP
- STRING(NeuKnr,"999999 ") Adresse.Anzeig_Br ' übertragen ? '
- VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
- UPDATE Ja.
- IF NOT Ja THEN DO:
- F_Knr:SCREEN-VALUE = ''.
- F_Knr:SENSITIVE = FALSE.
- F_Knr:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- FOR EACH TSpezPrei:
- DELETE TSpezprei.
- END.
- FOR EACH SpezPrei USE-INDEX SpezPrei-k1
- WHERE SpezPrei.Firma = Firma
- AND SpezPrei.Knr = Knr NO-LOCK:
- CREATE TSpezPrei.
- BUFFER-COPY SpezPrei EXCEPT Knr
- TO TSpezPrei
- ASSIGN TSpezPrei.Knr = NeuKnr.
- END.
- REPEAT TRANSACTION:
- FOR EACH TSpezPrei:
- FIND SpezPrei OF TSpezPrei NO-ERROR.
- IF NOT AVAILABLE SpezPrei THEN CREATE SpezPrei.
- BUFFER-COPY TSpezPrei TO SpezPrei.
- DELETE TSpezPrei.
- END.
- LEAVE.
- END.
- END.
- IF Fehl THEN DO:
- IF NUM-ENTRIES(xKnr, ',') = 1 THEN DO:
- APPLY 'ENTRY' TO F_Knr.
- RETURN NO-APPLY.
- END.
- END.
- F_Knr:SCREEN-VALUE = ''.
- F_Knr:SENSITIVE = FALSE.
- F_Knr:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
- PROCEDURE LEAVE_FELD_TEST :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
- DEF VAR FeldName AS CHAR NO-UNDO.
- DEF VAR FeldInhalt AS CHAR NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
- DEF VAR LKY AS INT NO-UNDO.
- DEF VAR hLEAVE AS HANDLE NO-UNDO.
- DEF VAR hENTER AS HANDLE NO-UNDO.
- DEF VAR Daten AS CHAR NO-UNDO.
- DEF VAR nPreis AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR nWert AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR nBetrag AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR ARecid AS RECID NO-UNDO.
- DEF VAR cSuchbe AS CHAR NO-UNDO.
- IF FMut = FALSE THEN RETURN ''.
- LKY = LASTKEY.
- hENTER = LAST-EVENT:WIDGET-ENTER.
- hLEAVE = LAST-EVENT:WIDGET-LEAVE.
- FeldName = ''.
- FeldInhalt = ''.
- IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
- IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
- IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
-
- FeldName = ipHandle:NAME.
- IF ipHandle:TYPE = 'FILL-IN' OR
- ipHandle:TYPE = 'COMBO-BOX' OR
- ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
- IF FNeu THEN DO:
- CASE FeldName:
- WHEN 'F_Artnr' THEN DO WITH FRAME {&FRAME-NAME}:
- F_Artnr = SELF:SCREEN-VALUE.
- VArtnr = INTEGER(F_Artnr) NO-ERROR.
- ARecid = ?.
- DO WHILE NOT ERROR-STATUS:ERROR:
- IF VArtnr = 0 THEN LEAVE.
- DO WHILE VArtnr < MinNr:
- VArtnr = VArtnr * 10.
- END.
- ix = 0.
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = Firma
- AND Artst.Artnr = VArtnr:
- ix = ix + 1.
- ARecid = RECID(Artst).
- END.
- IF ix = 1 THEN LEAVE.
- ARecid = ?.
- LEAVE.
- END.
- IF ARecid = ? THEN DO:
- cSuchbe = F_Artnr.
- RUN g-suchen-artikel.w ( cSuchbe, OUTPUT ARecid ).
- END.
- IF ARecid = ? OR
- ARecid = 0 THEN DO:
- RETURN 'ERROR'.
- END.
- FIND Artst NO-LOCK WHERE RECID(Artst) = ARecid.
- ipHandle:SCREEN-VALUE = STRING(Artst.Artnr ,'999999').
- rowObject.Artnr :SCREEN-VALUE = STRING(Artst.Artnr ,'999999').
- rowObject.Inhalt :SCREEN-VALUE = STRING(Artst.Inhalt,'9999').
- rowObject.Jahr :SCREEN-VALUE = STRING(Artst.Jahr ,'9999').
- rowObject.Artikel:SCREEN-VALUE = Artst.Bez.
- IF ARecid <> ? AND
- ARecid <> 0 THEN DO:
- APPLY 'ENTRY' TO rowObject.Menge.
- RETURN 'APPLY'.
- END.
- ELSE RETURN ''.
- END.
- WHEN 'Inhalt' THEN DO:
- IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
- IF VALID-HANDLE(hENTER) THEN DO:
- IF hENTER:NAME = 'F_Artnr' THEN RETURN.
- END.
- nArtnr = INTEGER(F_Artnr:SCREEN-VALUE).
- nInhalt = INTEGER(FeldInhalt).
- FIND FIRST Artst USE-INDEX Artst-k1
- WHERE Artst.Firma = Firma
- AND Artst.Artnr = nArtnr
- AND Artst.Inhalt = nInhalt NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Artst THEN DO:
- BELL.
- RETURN 'ERROR'.
- END.
- rowObject.Jahr:SCREEN-VALUE = STRING(Artst.Jahr ,'9999').
- rowObject.Artikel:SCREEN-VALUE = Artst.Bez.
- RETURN ''.
- END.
- WHEN 'Jahr' THEN DO:
- IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
- IF VALID-HANDLE(hENTER) THEN DO:
- IF hENTER:NAME = 'F_Artnr' THEN RETURN.
- IF hENTER:NAME = 'Inhalt' THEN RETURN.
- END.
- nArtnr = INTEGER(F_Artnr:SCREEN-VALUE).
- nInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE).
- nJahr = INTEGER(FeldInhalt).
- FIND Artst USE-INDEX Artst-k1
- WHERE Artst.Firma = Firma
- AND Artst.Artnr = nArtnr
- AND Artst.Inhalt = nInhalt
- AND Artst.Jahr = nJahr NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Artst THEN DO:
- RUN FEHLER ( INPUT 1042 ).
- RETURN 'ERROR'.
- END.
- rowObject.Artikel:SCREEN-VALUE = Artst.Bez.
- RUN BERECHNEN.
- RETURN ''.
- END.
- WHEN 'Menge' THEN DO:
- IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
- IF VALID-HANDLE(hENTER) THEN DO:
- IF hENTER:NAME = 'F_Artnr' THEN RETURN.
- IF hENTER:NAME = 'Inhalt' THEN RETURN.
- IF hENTER:NAME = 'Jahr' THEN RETURN.
- END.
- nArtnr = INTEGER(F_Artnr:SCREEN-VALUE).
- nInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE).
- nJahr = INTEGER(rowObject.Jahr:SCREEN-VALUE).
- FIND SpezPrei USE-INDEX SpezPrei-k1
- WHERE SpezPrei.Firma = Firma
- AND SpezPrei.Knr = Knr
- AND SpezPrei.Artnr = nArtnr
- AND SpezPrei.Inhalt = nInhalt
- AND SpezPrei.Jahr = nJahr
- AND SpezPrei.Menge = DECIMAL(FeldInhalt)
- NO-LOCK NO-ERROR.
- IF AVAILABLE SpezPrei THEN DO:
- RUN FEHLER ( INPUT 1043 ).
- RETURN 'ERROR'.
- END.
- RETURN ''.
- END.
- END CASE.
- END.
- CASE FeldName:
- WHEN 'Ab_Datum' THEN DO:
- IF FeldInhalt = ''
- THEN ipHandle:SCREEN-VALUE = STRING(DATE(01,01,YEAR(TODAY))).
- END.
- WHEN 'Bis_Datum' THEN DO:
- IF FeldInhalt = ''
- THEN ipHandle:SCREEN-VALUE = STRING(DATE(12,31,YEAR(TODAY) + 1)).
- END.
- WHEN 'F_Wert' THEN DO:
- IF ipHandle:MODIFIED = TRUE THEN DO:
- nBetrag = DECIMAL(FeldInhalt).
- nPreis = DECIMAL(rowObject.VP_Normal:SCREEN-VALUE).
- nWert = DECIMAL(rowObject.Wert:SCREEN-VALUE ).
- IF CB_Art:SCREEN-VALUE = 'P' THEN DO:
- nWert = 100 - (nBetrag * 100 / nPreis).
- rowObject.Wert:SCREEN-VALUE = STRING(nWert).
- END.
- ELSE DO:
- nWert = nPreis * (100 - nBetrag) / 100.
- rowObject.Wert:SCREEN-VALUE = STRING(nWert).
- END.
- RUN BERECHNEN.
- RETURN 'ERROR'.
- END.
- END.
- END CASE.
- IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO:
- DO WHILE TRUE:
- IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
- IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
- IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
- RETURN ''.
- END.
- APPLY 'ALT-S'.
- RETURN 'APPLY'.
- END.
- RETURN ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN vTableWin
- PROCEDURE LOESCHEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR Ja AS LOG NO-UNDO.
- DEF VAR dHandle AS HANDLE NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- IF KEYFUNCTION(LASTKEY) <> 'RETURN' THEN DO:
- F_Datum:SCREEN-VALUE = ''.
- F_Datum:SENSITIVE = FALSE.
- F_Datum:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- Knr = INTEGER(rowObject.Knr:SCREEN-VALUE).
- IF DATE(F_Datum:SCREEN-VALUE) = ? THEN DO:
- F_Datum:SCREEN-VALUE = ''.
- F_Datum:SENSITIVE = FALSE.
- F_Datum:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- FIND Adresse USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Knr
- AND Adresse.Aktiv = TRUE NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Adresse THEN DO:
- RUN FEHLER ( INPUT 1015 ).
- F_Datum:SCREEN-VALUE = ''.
- F_Datum:SENSITIVE = FALSE.
- F_Datum:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = Knr
- AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Debst THEN DO:
- RUN FEHLER ( INPUT 1016 ).
- F_Datum:SCREEN-VALUE = ''.
- F_Datum:SENSITIVE = FALSE.
- F_Datum:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- Ja = FALSE.
- F_Datum = DATE(F_Datum:SCREEN-VALUE).
- MESSAGE 'Wollen Sie alle Spezialpreise mit Gültigkeit ' SKIP
- 'bis ' STRING(F_Datum,'99.99.9999') ' dieses Kunden löschen ? '
- VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
- UPDATE Ja.
- IF NOT Ja THEN DO:
- F_Datum:SCREEN-VALUE = ''.
- F_Datum:SENSITIVE = FALSE.
- F_Datum:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- FOR EACH SpezPrei USE-INDEX SpezPrei-k1
- WHERE SpezPrei.Firma = Firma
- AND SpezPrei.Knr = Knr
- AND SpezPrei.Bis_Datum <= F_Datum TRANSACTION:
- DELETE SpezPrei.
- END.
- dHandle = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
- IF VALID-HANDLE(dHandle) THEN DYNAMIC-FUNCTION('openQuery':U IN dHandle ) NO-ERROR.
- F_Datum:SCREEN-VALUE = ''.
- F_Datum:SENSITIVE = FALSE.
- F_Datum:TAB-STOP = FALSE.
- ENABLE {&List-5}.
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT vTableWin
- PROCEDURE REPORT :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
- DEF VAR DatenName AS CHAR NO-UNDO.
- DEF VAR DateiName AS CHAR NO-UNDO.
- DEF VAR Zelle AS CHAR NO-UNDO.
- DEF VAR xText AS CHAR NO-UNDO.
- DEF VAR Ja AS LOG NO-UNDO.
- DEF VAR KGeb AS CHAR NO-UNDO.
- DEF VAR Knr AS INT NO-UNDO.
- DEF VAR Kunde AS CHAR NO-UNDO.
- DEF VAR ADatum AS DATE NO-UNDO.
- DEF VAR NDatum AS DATE NO-UNDO.
- DEF VAR APreis AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR NPreis AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR AJahr AS INT NO-UNDO.
- DEF VAR NJahr AS INT NO-UNDO.
- DEF VAR AUmsatz AS DEC DECIMALS 4 NO-UNDO.
- DEF VAR NUmsatz AS DEC DECIMALS 4 NO-UNDO.
- Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR.
- Kunde = DYNAMIC-FUNCTION('GETADRESSEANZEIGEBR':U,
- INPUT Knr, INPUT 0) NO-ERROR.
- Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
- DatenName = 'KundenSpezialPreise.txt'.
- DateiName = 'KundenSpezialPreise.xls' + CHR(01) + 'KundenSpezialPreise.xls'.
- DO WITH FRAME {&FRAME-NAME}:
- DO WHILE TRUE:
- excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
- IF NOT VALID-HANDLE(excelAppl) THEN DO:
- RUN FEHLER ( INPUT 1035 ).
- RETURN NO-APPLY.
- END.
- LEAVE.
- END.
- DO WHILE TRUE:
- RUN CREATEDATEI ( INPUT DateiName ).
- IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
- CASE RETURN-VALUE:
- WHEN 'ERROR-PARAMETER' THEN DO:
- RUN FEHLER ( INPUT 1036 ).
- RETURN NO-APPLY.
- END.
- WHEN 'ERROR-LOESCHEN' THEN DO:
- RUN FEHLER ( INPUT 1037 ).
- RETURN NO-APPLY.
- END.
- WHEN 'ERROR-VORLAGE' THEN DO:
- RUN FEHLER ( INPUT 1038 ).
- RETURN NO-APPLY.
- END.
- OTHERWISE DO:
- MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
- RETURN NO-APPLY.
- END.
- END CASE.
- LEAVE.
- END.
- DateiName = RETURN-VALUE.
- DO WHILE TRUE:
- RUN CREATEDATEI ( INPUT DatenName ).
- IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
- CASE RETURN-VALUE:
- WHEN 'ERROR-PARAMETER' THEN DO:
- RUN FEHLER ( INPUT 1036 ).
- RETURN NO-APPLY.
- END.
- WHEN 'ERROR-LOESCHEN' THEN DO:
- RUN FEHLER ( INPUT 1037 ).
- RETURN NO-APPLY.
- END.
- WHEN 'ERROR-VORLAGE' THEN DO:
- RUN FEHLER ( INPUT 1038 ).
- RETURN NO-APPLY.
- END.
- OTHERWISE DO:
- MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
- RETURN NO-APPLY.
- END.
- END CASE.
- LEAVE.
- END.
- DatenName = RETURN-VALUE.
- OUTPUT TO VALUE(DatenName) APPEND.
- NJahr = YEAR(TODAY).
- AJahr = NJahr - 1.
- FIND Debst USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = Knr NO-LOCK NO-ERROR.
- PUT CONTROL '£'
- STRING(Knr,'999999 ')
- Kunde CHR(10).
- PUT CONTROL '£Artnr£Inhalt£Jahr£Bezeichnung£Gebinde£Menge£ab£'
- 'bis£P/B£Wert'.
- IF FSpezKol THEN PUT CONTROL '£DATUM£VP£DATUM£VP£'
- 'Ums-' STRING(NJahr,'9999') '£'
- 'Ums-' STRING(AJahr,'9999').
- PUT CONTROL CHR(10)
- '£' CHR(10).
- FOR EACH SpezPrei NO-LOCK USE-INDEX SpezPrei-k1
- WHERE SpezPrei.Firma = Firma
- AND SpezPrei.Knr = Knr :
- FIND Artst OF SpezPrei NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Artst THEN NEXT.
- /*
- IF NOT Artst.Aktiv THEN NEXT.
- */
- FIND DeArUms NO-LOCK USE-INDEX DeArUms-k1
- WHERE DeArUms.Firma = Artst.Firma
- AND DeArUms.Jahr = NJahr
- AND DeArUms.Knr = Knr
- AND DeArUms.Artnr = Artst.Artnr
- AND DeArUms.Inhalt = Artst.Inhalt
- AND DeArUms.Jahrg = Artst.Jahr NO-ERROR.
- IF AVAILABLE DeArUms THEN NUmsatz = DeArUms.Vp_Kum.
- ELSE NUmsatz = 0.
- FIND DeArUms NO-LOCK USE-INDEX DeArUms-k1
- WHERE DeArUms.Firma = Artst.Firma
- AND DeArUms.Jahr = AJahr
- AND DeArUms.Knr = Knr
- AND DeArUms.Artnr = Artst.Artnr
- AND DeArUms.Inhalt = Artst.Inhalt
- AND DeArUms.Jahrg = Artst.Jahr NO-ERROR.
- IF AVAILABLE DeArUms THEN AUmsatz = DeArUms.Vp_Kum.
- ELSE AUmsatz = 0.
- FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
- WHERE KGebinde.Firma = Firma
- AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
- IF AVAILABLE KGebinde THEN KGeb = KGebinde.KBez.
- ELSE KGeb = FILL('?', 10).
- ADatum = ?.
- NDatum = ?.
- APreis = 0.
- NPreis = 0.
- FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = Artst.Artnr
- AND ArtPreis.Inhalt = Artst.Inhalt
- AND ArtPreis.Jahr = Artst.Jahr
- AND ArtPreis.Preis_Grp = Debst.Preis_Grp
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Ab_Datum <= TODAY NO-ERROR.
- IF AVAILABLE ArtPreis THEN DO:
- NDatum = ArtPreis.Ab_Datum.
- NPreis = ArtPreis.VK_Netto.
- END.
- IF NDatum <> ? THEN DO:
- FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = Artst.Artnr
- AND ArtPreis.Inhalt = Artst.Inhalt
- AND ArtPreis.Jahr = Artst.Jahr
- AND ArtPreis.Preis_Grp = Debst.Preis_Grp
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Ab_Datum < NDatum NO-ERROR.
- IF AVAILABLE ArtPreis THEN DO:
- ADatum = ArtPreis.Ab_Datum.
- APreis = ArtPreis.VK_Netto.
- END.
- END.
- PUT CONTROL '£'.
- PUT CONTROL STRING(Artst.Artnr ,'999999') '£'
- STRING(Artst.Inhalt ,'zzzz') '£'
- STRING(Artst.Jahr ,'zzzz') '£'
- Artst.Bez '£'
- KGeb '£'
- STRING(SpezPrei.Menge ,'zzzzzz') '£'
- STRING(SpezPrei.Ab_Datum ,'99.99.9999') '£'
- STRING(SpezPrei.Bis_Datum,'99.99.9999') '£'
- STRING(SpezPrei.Proz_Betr,'%/Fr') '£'
- STRING(SpezPrei.Wert ,'>>>>9.999').
- IF NOT FSpezKol THEN DO:
- PUT CONTROL CHR(10).
- NEXT.
- END.
- PUT CONTROL '£'.
- IF NDatum <> ? THEN DO:
- PUT CONTROL STRING(NDatum,'99.99.9999') '£'
- STRING(NPreis,'>>>>9.9999') '£'.
- END.
- ELSE DO:
- PUT CONTROL '££'.
- END.
- IF ADatum <> ? THEN DO:
- PUT CONTROL STRING(ADatum,'99.99.9999') '£'
- STRING(APreis,'>>>>9.9999') '£'.
- END.
- ELSE DO:
- PUT CONTROL '££'.
- END.
- PUT CONTROL STRING(NUmsatz,'->>>>>>>>>') '£'
- STRING(AUmsatz,'->>>>>>>>>') CHR(10).
- END.
- OUTPUT CLOSE.
- RUN OPENEXCEL ( INPUT excelAppl,
- INPUT DateiName,
- INPUT '',
- OUTPUT Ja ).
- IF NOT Ja THEN DO:
- RUN FEHLER ( INPUT 1040 ).
- RETURN NO-APPLY.
- END.
- Zelle = 'A3'.
- excelAppl:Range(Zelle):SELECT.
- excelAppl:Selection:FormulaR1C1 = 'TEXT;' + DatenName.
- excelAppl:Application:RUN ( 'DateiEinfügen' ).
- RUN KOPF ( INPUT excelAppl ).
- Zelle = 'A1'.
- excelAppl:Range(Zelle):SELECT.
- excelAppl:Selection:ColumnWidth = 0.3.
-
- DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
- PROCEDURE RETURN_FELD :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
- DEF VAR FeldName AS CHAR NO-UNDO.
-
- IF FMut = FALSE THEN RETURN ''.
- IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
- IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
- IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
-
- FeldName = ipHandle:NAME.
- IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
- RETURN 'TAB'.
- END.
- IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
- RETURN 'TAB'.
- END.
- FeldName = 'rowObject.' + FeldName.
- IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
- RETURN 'TAB'.
- END.
- IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
- RETURN 'TAB'.
- END.
- RETURN ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
- PROCEDURE updateMode :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
-
- CASE pcMode:
- WHEN 'updateBegin' THEN DO:
- DO WITH FRAME {&FRAME-NAME}:
- F_Knr :SCREEN-VALUE = ''.
- F_Knr :SENSITIVE = FALSE.
- F_Knr :TAB-STOP = FALSE.
- F_Datum:SCREEN-VALUE = ''.
- F_Datum:SENSITIVE = FALSE.
- F_Datum:TAB-STOP = FALSE.
- END.
- END.
- WHEN 'updateEnd' THEN DO:
- END.
- END.
- RUN SUPER( INPUT pcMode).
- CASE pcMode:
- WHEN 'updateBegin' THEN DO:
- FMut = TRUE.
- END.
- WHEN 'updateEnd' THEN DO:
- FNeu = FALSE.
- FMut = FALSE.
- FCopy = FALSE.
- END.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
- PROCEDURE updateRecord :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DO WITH FRAME {&FRAME-NAME}:
- rowObject.Artnr:SCREEN-VALUE = F_Artnr:SCREEN-VALUE.
- rowObject.Proz_Betr:SCREEN-VALUE = CB_Art:SCREEN-VALUE.
- IF FNeu THEN DO:
- rowObject.Firma :SCREEN-VALUE = Firma.
- rowObject.Knr :SCREEN-VALUE = STRING(Knr,'999999').
- rowObject.Ab_Datum :MODIFIED = TRUE.
- rowObject.Bis_Datum:MODIFIED = TRUE.
- END.
- rowObject.VP_Normal:MODIFIED = FALSE.
- rowObject.Marge :MODIFIED = FALSE.
- F_Wert :MODIFIED = FALSE.
-
- lProzBetr = (IF rowObject.Proz_Betr:SCREEN-VALUE BEGINS 'P' THEN TRUE ELSE FALSE) NO-ERROR.
- dMenge = DECIMAL(rowObject.Menge :SCREEN-VALUE) NO-ERROR.
- vDatum = DATE(rowObject.Ab_Datum :SCREEN-VALUE) NO-ERROR.
- bDatum = DATE(rowObject.Bis_Datum:SCREEN-VALUE) NO-ERROR.
- IF lProzBetr THEN dWert = DECIMAL(rowObject.Wert:SCREEN-VALUE) NO-ERROR.
- ELSE dWert = 0.
- END.
- FNeu = FALSE.
- FCopy = FALSE.
- RUN SUPER.
- RUN REPOS_TABELLE IN hDaten NO-ERROR. /* */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|