v-spezprei-deb.w 68 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE TEMP-TABLE RowObject
  9. {"d-spezprei.i"}.
  10. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
  11. /*------------------------------------------------------------------------
  12. File:
  13. Description: from viewer.w - Template for SmartDataViewer objects
  14. Input Parameters:
  15. <none>
  16. Output Parameters:
  17. <none>
  18. ------------------------------------------------------------------------*/
  19. /* This .W file was created with the Progress AppBuilder. */
  20. /*----------------------------------------------------------------------*/
  21. /* Create an unnamed pool to store all the widgets created
  22. by this procedure. This is a good default which assures
  23. that this procedure's triggers and internal procedures
  24. will execute in this procedure's storage, and that proper
  25. cleanup will occur on deletion of the procedure. */
  26. CREATE WIDGET-POOL.
  27. /* *************************** Definitions ************************** */
  28. /* Komma-Trennzeichen */
  29. /* Keyfelder werden beim Mutieren nicht "Enabled" */
  30. &Scoped-define ERSTES_FELD F_Artnr
  31. &Scoped-define LETZTES_FELD F_Wert
  32. &Scoped-define KEY_FELDER F_Artnr,Inhalt,Jahr,Menge
  33. &Scoped-define NUR_LESEN Artikel
  34. /* Parameters Definitions --- */
  35. /* Local Variable Definitions --- */
  36. DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE.
  37. DEF VAR FNeu AS LOG NO-UNDO INIT FALSE.
  38. DEF VAR FMut AS LOG NO-UNDO INIT FALSE.
  39. DEF VAR FCopy AS LOG NO-UNDO INIT FALSE.
  40. DEF VAR FDisp AS LOG NO-UNDO INIT TRUE .
  41. DEF VAR Fenster AS HANDLE NO-UNDO.
  42. DEF VAR oldColValues AS CHAR NO-UNDO.
  43. DEF VAR oldColList AS CHAR NO-UNDO.
  44. DEF VAR Firma AS CHAR NO-UNDO.
  45. DEF VAR ADFirma AS CHAR NO-UNDO.
  46. DEF VAR Knr AS INT NO-UNDO.
  47. DEF VAR VArtnr AS INT NO-UNDO.
  48. DEF VAR MinNr AS INT NO-UNDO.
  49. DEF VAR cInput AS CHAR NO-UNDO.
  50. DEF VAR cOutput AS CHAR NO-UNDO.
  51. DEF VAR FLeave AS LOG INIT TRUE NO-UNDO.
  52. DEF VAR nArtnr AS INT NO-UNDO.
  53. DEF VAR nInhalt AS INT NO-UNDO.
  54. DEF VAR nJahr AS INT NO-UNDO.
  55. DEF VAR FSpezKol AS LOG NO-UNDO.
  56. DEF VAR F_Liste AS LOG NO-UNDO INIT FALSE.
  57. DEF VAR hDaten AS HANDLE NO-UNDO.
  58. DEF VAR dMenge AS DEC INIT 1 NO-UNDO.
  59. DEF VAR vDatum AS DATE NO-UNDO.
  60. DEF VAR bDatum AS DATE NO-UNDO.
  61. DEF VAR lProzBetr AS LOG INIT TRUE NO-UNDO.
  62. DEF VAR dWert AS DEC DECIMALS 4 NO-UNDO.
  63. DEF TEMP-TABLE TSpezPrei LIKE Spezprei.
  64. /* _UIB-CODE-BLOCK-END */
  65. &ANALYZE-RESUME
  66. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  67. /* ******************** Preprocessor Definitions ******************** */
  68. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  69. &Scoped-define DB-AWARE no
  70. &Scoped-define ADM-CONTAINER FRAME
  71. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  72. /* Include file with RowObject temp-table definition */
  73. &Scoped-define DATA-FIELD-DEFS "d-spezprei.i"
  74. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  75. &Scoped-define FRAME-NAME F-Main
  76. /* Standard List Definitions */
  77. &Scoped-Define ENABLED-FIELDS RowObject.Inhalt RowObject.Jahr ~
  78. RowObject.Menge RowObject.Ab_Datum RowObject.Bis_Datum RowObject.lNetto ~
  79. RowObject.Wert RowObject.Artikel RowObject.VP_Normal RowObject.Marge
  80. &Scoped-define ENABLED-TABLES RowObject
  81. &Scoped-define FIRST-ENABLED-TABLE RowObject
  82. &Scoped-Define ENABLED-OBJECTS F_Artnr CB_Art F_Wert Btn_Kopieren ~
  83. Btn_Loeschen Btn_Excel RECT-1 RECT-2
  84. &Scoped-Define DISPLAYED-FIELDS RowObject.Inhalt RowObject.Jahr ~
  85. RowObject.Menge RowObject.Ab_Datum RowObject.Artnr RowObject.Bis_Datum ~
  86. RowObject.lNetto RowObject.Wert RowObject.Artikel RowObject.Firma ~
  87. RowObject.Knr RowObject.Proz_Betr RowObject.VP_Normal RowObject.Marge
  88. &Scoped-define DISPLAYED-TABLES RowObject
  89. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  90. &Scoped-Define DISPLAYED-OBJECTS F_Artnr F_Knr CB_Art F_Datum
  91. /* Custom List Definitions */
  92. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  93. &Scoped-define List-5 Btn_Kopieren Btn_Loeschen Btn_Excel
  94. &Scoped-define List-6 F_Artnr
  95. /* _UIB-PREPROCESSOR-BLOCK-END */
  96. &ANALYZE-RESUME
  97. /* *********************** Control Definitions ********************** */
  98. /* Definitions of the field level widgets */
  99. DEFINE BUTTON Btn_Excel
  100. IMAGE-UP FILE "grafik/results%.ico":U
  101. IMAGE-INSENSITIVE FILE "grafik/results%.ico":U
  102. LABEL "Excel"
  103. SIZE 7 BY 1.81.
  104. DEFINE BUTTON Btn_Kopieren
  105. LABEL "Ko&pieren"
  106. SIZE 12 BY 1.
  107. DEFINE BUTTON Btn_Loeschen
  108. LABEL "&Löschen"
  109. SIZE 12 BY 1.
  110. DEFINE VARIABLE CB_Art AS CHARACTER FORMAT "X(256)":U
  111. LABEL "Preisart"
  112. VIEW-AS COMBO-BOX INNER-LINES 5
  113. LIST-ITEM-PAIRS "Prozent","P",
  114. "Betrag","B"
  115. DROP-DOWN-LIST
  116. SIZE 16 BY 1
  117. BGCOLOR 15 NO-UNDO.
  118. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(12)":U
  119. LABEL "Artikel"
  120. VIEW-AS FILL-IN NATIVE
  121. SIZE 12 BY 1
  122. BGCOLOR 15 NO-UNDO.
  123. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  124. LABEL "bis Datum"
  125. VIEW-AS FILL-IN NATIVE
  126. SIZE 16 BY 1 TOOLTIP "Löschen mit <RETURN>-Taste"
  127. BGCOLOR 15 NO-UNDO.
  128. DEFINE VARIABLE F_Knr AS CHARACTER FORMAT "X(256)":U
  129. LABEL "zu Kundennummer(n)"
  130. VIEW-AS FILL-IN NATIVE
  131. SIZE 21.4 BY 1 TOOLTIP "Kopieren mit <RETURN> / <ALT-L> = Kundenlisten / rechte Maustaste zur Auswahl"
  132. BGCOLOR 15 NO-UNDO.
  133. DEFINE VARIABLE F_Wert AS DECIMAL FORMAT "zzzz9.9999-":U INITIAL 0
  134. LABEL "Wert"
  135. VIEW-AS FILL-IN NATIVE
  136. SIZE 17 BY 1
  137. BGCOLOR 11 NO-UNDO.
  138. DEFINE RECTANGLE RECT-1
  139. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  140. SIZE 126 BY 4.81.
  141. DEFINE RECTANGLE RECT-2
  142. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  143. SIZE 126 BY 2.48.
  144. /* ************************ Frame Definitions *********************** */
  145. DEFINE FRAME F-Main
  146. F_Artnr AT ROW 1.52 COL 12 COLON-ALIGNED
  147. RowObject.Inhalt AT ROW 1.52 COL 24 COLON-ALIGNED NO-LABEL FORMAT "9999"
  148. VIEW-AS FILL-IN NATIVE
  149. SIZE 8 BY 1
  150. BGCOLOR 15
  151. F_Knr AT ROW 7.14 COL 39.2 COLON-ALIGNED
  152. RowObject.Jahr AT ROW 1.52 COL 32 COLON-ALIGNED NO-LABEL FORMAT "9999"
  153. VIEW-AS FILL-IN NATIVE
  154. SIZE 8 BY 1
  155. BGCOLOR 15
  156. RowObject.Menge AT ROW 2.52 COL 24 COLON-ALIGNED
  157. LABEL "ab Menge" FORMAT "zzz,zz9"
  158. VIEW-AS FILL-IN NATIVE
  159. SIZE 12 BY 1
  160. BGCOLOR 15
  161. RowObject.Ab_Datum AT ROW 3.52 COL 24 COLON-ALIGNED
  162. LABEL "gültig ab/bis" FORMAT "99.99.9999"
  163. VIEW-AS FILL-IN NATIVE
  164. SIZE 16 BY 1
  165. BGCOLOR 15
  166. RowObject.Artnr AT ROW 2.52 COL 65 COLON-ALIGNED
  167. LABEL "Artikel" FORMAT "999999"
  168. VIEW-AS FILL-IN
  169. SIZE 4 BY 1
  170. BGCOLOR 15 NO-TAB-STOP
  171. RowObject.Bis_Datum AT ROW 3.52 COL 48 COLON-ALIGNED
  172. LABEL "/" FORMAT "99.99.9999"
  173. VIEW-AS FILL-IN NATIVE
  174. SIZE 16 BY 1
  175. BGCOLOR 15
  176. RowObject.lNetto AT ROW 3.52 COL 78 WIDGET-ID 2
  177. LABEL "auf Nettoartikel?"
  178. VIEW-AS TOGGLE-BOX
  179. SIZE 20.6 BY 1
  180. CB_Art AT ROW 4.52 COL 24 COLON-ALIGNED
  181. RowObject.Wert AT ROW 4.52 COL 48 COLON-ALIGNED
  182. LABEL "Wert" FORMAT "zzz9.9999-"
  183. VIEW-AS FILL-IN NATIVE
  184. SIZE 16 BY 1
  185. BGCOLOR 15
  186. F_Wert AT ROW 4.52 COL 76 COLON-ALIGNED
  187. Btn_Kopieren AT ROW 7.14 COL 6.8
  188. RowObject.Artikel AT ROW 1.52 COL 40 COLON-ALIGNED NO-LABEL FORMAT "x(30)"
  189. VIEW-AS FILL-IN NATIVE
  190. SIZE 32 BY 1
  191. BGCOLOR 15 NO-TAB-STOP
  192. Btn_Loeschen AT ROW 7.14 COL 65.4
  193. Btn_Excel AT ROW 6.76 COL 115.6
  194. RowObject.Firma AT ROW 2.52 COL 63 COLON-ALIGNED
  195. VIEW-AS FILL-IN
  196. SIZE 4 BY 1 NO-TAB-STOP
  197. RowObject.Knr AT ROW 2.52 COL 63 COLON-ALIGNED
  198. LABEL "Knr" FORMAT "999999"
  199. VIEW-AS FILL-IN
  200. SIZE 4 BY 1 NO-TAB-STOP
  201. RowObject.Proz_Betr AT ROW 2.52 COL 65
  202. LABEL "Proz/Betr"
  203. VIEW-AS TOGGLE-BOX
  204. SIZE 4 BY 1 NO-TAB-STOP
  205. RowObject.VP_Normal AT ROW 1.52 COL 103 COLON-ALIGNED
  206. LABEL "VP normal" FORMAT "zzzz9.9999"
  207. VIEW-AS FILL-IN NATIVE
  208. SIZE 18 BY 1
  209. BGCOLOR 14 NO-TAB-STOP
  210. RowObject.Marge AT ROW 4.52 COL 103 COLON-ALIGNED
  211. LABEL "Marge" FORMAT "zzzz9.9999-"
  212. VIEW-AS FILL-IN NATIVE
  213. SIZE 18 BY 1
  214. BGCOLOR 14 NO-TAB-STOP
  215. F_Datum AT ROW 7.14 COL 88 COLON-ALIGNED NO-TAB-STOP
  216. RECT-1 AT ROW 1.24 COL 2
  217. RECT-2 AT ROW 6.43 COL 2
  218. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  219. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  220. AT COL 1 ROW 1 SCROLLABLE .
  221. /* *********************** Procedure Settings ************************ */
  222. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  223. /* Settings for THIS-PROCEDURE
  224. Type: SmartDataViewer
  225. Data Source: "d-spezprei.w"
  226. Allow: Basic,DB-Fields,Smart
  227. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  228. Frames: 1
  229. Add Fields to: Neither
  230. Other Settings: PERSISTENT-ONLY COMPILE
  231. Temp-Tables and Buffers:
  232. TABLE: RowObject D "?" ?
  233. ADDITIONAL-FIELDS:
  234. {d-spezprei.i}
  235. END-FIELDS.
  236. END-TABLES.
  237. */
  238. /* This procedure should always be RUN PERSISTENT. Report the error, */
  239. /* then cleanup and return. */
  240. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  241. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  242. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  243. RETURN.
  244. END.
  245. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  246. /* ************************* Create Window ************************** */
  247. &ANALYZE-SUSPEND _CREATE-WINDOW
  248. /* DESIGN Window definition (used by the UIB)
  249. CREATE WINDOW vTableWin ASSIGN
  250. HEIGHT = 8.14
  251. WIDTH = 128.
  252. /* END WINDOW DEFINITION */
  253. */
  254. &ANALYZE-RESUME
  255. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  256. /* ************************* Included-Libraries *********************** */
  257. {src/adm2/viewer.i}
  258. /* _UIB-CODE-BLOCK-END */
  259. &ANALYZE-RESUME
  260. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  261. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  262. /* SETTINGS FOR WINDOW vTableWin
  263. VISIBLE,,RUN-PERSISTENT */
  264. /* SETTINGS FOR FRAME F-Main
  265. NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */
  266. ASSIGN
  267. FRAME F-Main:SCROLLABLE = FALSE
  268. FRAME F-Main:HIDDEN = TRUE.
  269. /* SETTINGS FOR FILL-IN RowObject.Ab_Datum IN FRAME F-Main
  270. EXP-LABEL EXP-FORMAT */
  271. /* SETTINGS FOR FILL-IN RowObject.Artikel IN FRAME F-Main
  272. EXP-LABEL EXP-FORMAT */
  273. ASSIGN
  274. RowObject.Artikel:READ-ONLY IN FRAME F-Main = TRUE.
  275. /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main
  276. NO-ENABLE EXP-LABEL EXP-FORMAT */
  277. ASSIGN
  278. RowObject.Artnr:HIDDEN IN FRAME F-Main = TRUE
  279. RowObject.Artnr:READ-ONLY IN FRAME F-Main = TRUE.
  280. /* SETTINGS FOR FILL-IN RowObject.Bis_Datum IN FRAME F-Main
  281. EXP-LABEL EXP-FORMAT */
  282. /* SETTINGS FOR BUTTON Btn_Excel IN FRAME F-Main
  283. 5 */
  284. /* SETTINGS FOR BUTTON Btn_Kopieren IN FRAME F-Main
  285. 5 */
  286. /* SETTINGS FOR BUTTON Btn_Loeschen IN FRAME F-Main
  287. 5 */
  288. /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main
  289. NO-ENABLE */
  290. ASSIGN
  291. RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE
  292. RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE.
  293. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main
  294. 6 */
  295. /* SETTINGS FOR FILL-IN F_Datum IN FRAME F-Main
  296. NO-ENABLE */
  297. /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main
  298. NO-ENABLE */
  299. /* SETTINGS FOR FILL-IN F_Wert IN FRAME F-Main
  300. NO-DISPLAY */
  301. /* SETTINGS FOR FILL-IN RowObject.Inhalt IN FRAME F-Main
  302. EXP-LABEL EXP-FORMAT */
  303. /* SETTINGS FOR FILL-IN RowObject.Jahr IN FRAME F-Main
  304. EXP-LABEL EXP-FORMAT */
  305. /* SETTINGS FOR FILL-IN RowObject.Knr IN FRAME F-Main
  306. NO-ENABLE EXP-LABEL EXP-FORMAT */
  307. ASSIGN
  308. RowObject.Knr:HIDDEN IN FRAME F-Main = TRUE
  309. RowObject.Knr:READ-ONLY IN FRAME F-Main = TRUE.
  310. /* SETTINGS FOR TOGGLE-BOX RowObject.lNetto IN FRAME F-Main
  311. EXP-LABEL */
  312. /* SETTINGS FOR FILL-IN RowObject.Marge IN FRAME F-Main
  313. EXP-LABEL EXP-FORMAT */
  314. ASSIGN
  315. RowObject.Marge:READ-ONLY IN FRAME F-Main = TRUE.
  316. /* SETTINGS FOR FILL-IN RowObject.Menge IN FRAME F-Main
  317. EXP-LABEL EXP-FORMAT */
  318. /* SETTINGS FOR TOGGLE-BOX RowObject.Proz_Betr IN FRAME F-Main
  319. NO-ENABLE EXP-LABEL */
  320. ASSIGN
  321. RowObject.Proz_Betr:HIDDEN IN FRAME F-Main = TRUE.
  322. /* SETTINGS FOR FILL-IN RowObject.VP_Normal IN FRAME F-Main
  323. EXP-LABEL EXP-FORMAT */
  324. ASSIGN
  325. RowObject.VP_Normal:READ-ONLY IN FRAME F-Main = TRUE.
  326. /* SETTINGS FOR FILL-IN RowObject.Wert IN FRAME F-Main
  327. EXP-LABEL EXP-FORMAT */
  328. /* _RUN-TIME-ATTRIBUTES-END */
  329. &ANALYZE-RESUME
  330. /* Setting information for Queries and Browse Widgets fields */
  331. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  332. /* Query rebuild information for FRAME F-Main
  333. _Options = "NO-LOCK"
  334. _Query is NOT OPENED
  335. */ /* FRAME F-Main */
  336. &ANALYZE-RESUME
  337. /* ************************ Control Triggers ************************ */
  338. &Scoped-define SELF-NAME Btn_Excel
  339. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel vTableWin
  340. ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */
  341. DO:
  342. DISABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
  343. FSpezKol = FALSE.
  344. MESSAGE 'Möchten Sie die normalen Verkaufspreise als zusätzliche ' SKIP
  345. 'Kolonnen angefügt haben ? '
  346. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
  347. UPDATE FSpezKol.
  348. RUN REPORT.
  349. ENABLE Btn_Excel WITH FRAME {&FRAME-NAME}.
  350. END.
  351. /* _UIB-CODE-BLOCK-END */
  352. &ANALYZE-RESUME
  353. &Scoped-define SELF-NAME Btn_Kopieren
  354. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Kopieren vTableWin
  355. ON CHOOSE OF Btn_Kopieren IN FRAME F-Main /* Kopieren */
  356. DO:
  357. IF FMut THEN RETURN NO-APPLY.
  358. DO WITH FRAME {&FRAME-NAME}:
  359. DISABLE {&List-5}.
  360. F_Knr:SENSITIVE = TRUE.
  361. F_Knr:TAB-STOP = TRUE.
  362. APPLY 'ENTRY' TO F_Knr.
  363. RETURN NO-APPLY.
  364. END.
  365. END.
  366. /* _UIB-CODE-BLOCK-END */
  367. &ANALYZE-RESUME
  368. &Scoped-define SELF-NAME Btn_Loeschen
  369. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen vTableWin
  370. ON CHOOSE OF Btn_Loeschen IN FRAME F-Main /* Löschen */
  371. DO:
  372. IF FMut THEN RETURN NO-APPLY.
  373. DO WITH FRAME {&FRAME-NAME}:
  374. SELF:SENSITIVE = FALSE.
  375. F_Datum:SENSITIVE = TRUE.
  376. F_Datum:TAB-STOP = TRUE.
  377. APPLY 'ENTRY' TO F_Datum.
  378. RETURN NO-APPLY.
  379. END.
  380. END.
  381. /* _UIB-CODE-BLOCK-END */
  382. &ANALYZE-RESUME
  383. &Scoped-define SELF-NAME CB_Art
  384. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Art vTableWin
  385. ON VALUE-CHANGED OF CB_Art IN FRAME F-Main /* Preisart */
  386. DO:
  387. DO WITH FRAME {&FRAME-NAME}:
  388. IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Proz_Betr:SCREEN-VALUE.
  389. rowObject.Proz_Betr:SCREEN-VALUE = SELF:SCREEN-VALUE.
  390. rowObject.Proz_Betr:MODIFIED = TRUE.
  391. IF CB_Art:SCREEN-VALUE = 'P' THEN F_Wert:LABEL = 'Preis'.
  392. ELSE F_Wert:LABEL = 'Prozent'.
  393. END.
  394. END.
  395. /* _UIB-CODE-BLOCK-END */
  396. &ANALYZE-RESUME
  397. &Scoped-define SELF-NAME F_Datum
  398. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin
  399. ON END-ERROR OF F_Datum IN FRAME F-Main /* bis Datum */
  400. DO:
  401. DO WITH FRAME {&FRAME-NAME}:
  402. SELF:SCREEN-VALUE = ''.
  403. SELF:SENSITIVE = FALSE.
  404. SELF:TAB-STOP = FALSE.
  405. ENABLE {&list-5}.
  406. APPLY 'U1'.
  407. RETURN NO-APPLY.
  408. END.
  409. END.
  410. /* _UIB-CODE-BLOCK-END */
  411. &ANALYZE-RESUME
  412. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin
  413. ON LEAVE OF F_Datum IN FRAME F-Main /* bis Datum */
  414. DO:
  415. RUN LOESCHEN.
  416. RETURN NO-APPLY.
  417. END.
  418. /* _UIB-CODE-BLOCK-END */
  419. &ANALYZE-RESUME
  420. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin
  421. ON RETURN OF F_Datum IN FRAME F-Main /* bis Datum */
  422. DO:
  423. APPLY 'TAB' TO SELF.
  424. RETURN NO-APPLY.
  425. END.
  426. /* _UIB-CODE-BLOCK-END */
  427. &ANALYZE-RESUME
  428. &Scoped-define SELF-NAME F_Knr
  429. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
  430. ON ALT-L OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
  431. DO:
  432. F_Liste = TRUE.
  433. RUN g-adresslisten.w ( INPUT SELF ).
  434. APPLY 'ENTRY' TO SELF.
  435. APPLY 'END' TO SELF.
  436. F_Liste = FALSE.
  437. RETURN NO-APPLY.
  438. END.
  439. /* _UIB-CODE-BLOCK-END */
  440. &ANALYZE-RESUME
  441. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
  442. ON END-ERROR OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
  443. DO:
  444. DO WITH FRAME {&FRAME-NAME}:
  445. SELF:SCREEN-VALUE = ''.
  446. SELF:SENSITIVE = FALSE.
  447. SELF:TAB-STOP = FALSE.
  448. ENABLE {&List-5}.
  449. APPLY 'U1'.
  450. RETURN NO-APPLY.
  451. END.
  452. END.
  453. /* _UIB-CODE-BLOCK-END */
  454. &ANALYZE-RESUME
  455. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
  456. ON LEAVE OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
  457. DO:
  458. IF F_Liste THEN RETURN.
  459. RUN KOPIEREN.
  460. RETURN NO-APPLY.
  461. END.
  462. /* _UIB-CODE-BLOCK-END */
  463. &ANALYZE-RESUME
  464. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
  465. ON RETURN OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
  466. DO:
  467. APPLY 'TAB' TO SELF.
  468. RETURN NO-APPLY.
  469. END.
  470. /* _UIB-CODE-BLOCK-END */
  471. &ANALYZE-RESUME
  472. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin
  473. ON RIGHT-MOUSE-CLICK OF F_Knr IN FRAME F-Main /* zu Kundennummer(n) */
  474. DO:
  475. RUN g-auswahl-adresse.w ( INPUT SELF ).
  476. END.
  477. /* _UIB-CODE-BLOCK-END */
  478. &ANALYZE-RESUME
  479. &Scoped-define SELF-NAME RowObject.lNetto
  480. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.lNetto vTableWin
  481. ON VALUE-CHANGED OF RowObject.lNetto IN FRAME F-Main /* auf Nettoartikel? */
  482. DO:
  483. IF NOT FMut THEN SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN STRING(TRUE) ELSE STRING(FALSE) ).
  484. END.
  485. /* _UIB-CODE-BLOCK-END */
  486. &ANALYZE-RESUME
  487. &UNDEFINE SELF-NAME
  488. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  489. /* *************************** Main Block *************************** */
  490. DEF VAR ix AS INT NO-UNDO.
  491. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  492. MinNr = 1.
  493. IF SAktiv THEN DO:
  494. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  495. ADFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  496. FIND Steuer USE-INDEX Steuer-k1
  497. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  498. IF AVAILABLE Steuer THEN DO:
  499. DO ix = 2 TO DYNAMIC-FUNCTION('GETMINARTNR':U) :
  500. MinNr = MinNr * 10.
  501. END.
  502. END.
  503. END.
  504. /* Triggers ------------------------------------------------------ */
  505. ON 'RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  506. DO:
  507. RUN RETURN_FELD ( INPUT SELF:HANDLE ).
  508. IF RETURN-VALUE = 'TAB' THEN DO:
  509. APPLY 'TAB' TO SELF.
  510. RETURN NO-APPLY.
  511. END.
  512. END.
  513. ON 'ENTRY':U OF FRAME {&FRAME-NAME} ANYWHERE
  514. DO:
  515. RUN ENTRY_FELD_TEST ( INPUT SELF:HANDLE ).
  516. IF RETURN-VALUE = 'ERROR' THEN DO:
  517. APPLY 'ENTRY' TO SELF.
  518. RETURN NO-APPLY.
  519. END.
  520. IF RETURN-VALUE = 'APPLY' THEN DO:
  521. RETURN NO-APPLY.
  522. END.
  523. END.
  524. ON 'LEAVE':U OF FRAME {&FRAME-NAME} ANYWHERE
  525. DO:
  526. IF NOT FLeave THEN RETURN.
  527. RUN LEAVE_FELD_TEST ( INPUT SELF:HANDLE ).
  528. IF RETURN-VALUE = 'ERROR' THEN DO:
  529. APPLY 'ENTRY' TO SELF.
  530. RETURN NO-APPLY.
  531. END.
  532. IF RETURN-VALUE = 'APPLY' THEN DO:
  533. RETURN NO-APPLY.
  534. END.
  535. END.
  536. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  537. RUN initializeObject.
  538. &ENDIF
  539. /************************ INTERNAL PROCEDURES ********************/
  540. /* _UIB-CODE-BLOCK-END */
  541. &ANALYZE-RESUME
  542. /* ********************** Internal Procedures *********************** */
  543. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  544. PROCEDURE addRecord :
  545. /*------------------------------------------------------------------------------
  546. Purpose: Super Override
  547. Parameters:
  548. Notes:
  549. ------------------------------------------------------------------------------*/
  550. DO WITH FRAME {&FRAME-NAME}:
  551. F_Knr :SCREEN-VALUE = ''.
  552. F_Knr :SENSITIVE = FALSE.
  553. F_Knr :TAB-STOP = FALSE.
  554. F_Datum:SCREEN-VALUE = ''.
  555. F_Datum:SENSITIVE = FALSE.
  556. F_Datum:TAB-STOP = FALSE.
  557. END.
  558. Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR.
  559. IF Knr = 0 THEN DO:
  560. DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
  561. RETURN NO-APPLY.
  562. END.
  563. FIND Debst USE-INDEX Debst-k1
  564. WHERE Debst.Firma = Firma
  565. AND Debst.Knr = Knr NO-LOCK NO-ERROR.
  566. IF NOT AVAILABLE Debst THEN DO:
  567. RUN FEHLER ( INPUT 1016 ).
  568. DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
  569. RETURN NO-APPLY.
  570. END.
  571. FNeu = TRUE.
  572. FMut = TRUE.
  573. FDisp = TRUE.
  574. RUN SUPER.
  575. END PROCEDURE.
  576. /* _UIB-CODE-BLOCK-END */
  577. &ANALYZE-RESUME
  578. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BERECHNEN vTableWin
  579. PROCEDURE BERECHNEN :
  580. /*------------------------------------------------------------------------------
  581. Purpose:
  582. Parameters: <none>
  583. Notes:
  584. ------------------------------------------------------------------------------*/
  585. DEF VAR FInkl AS LOG NO-UNDO.
  586. DEF VAR PreisGrp AS INT NO-UNDO.
  587. DEF VAR Marge AS DEC DECIMALS 4 NO-UNDO.
  588. DEF VAR VK_Netto AS DEC DECIMALS 4 NO-UNDO.
  589. DEF VAR VK_Spez AS DEC DECIMALS 4 NO-UNDO.
  590. DEF VAR Ansatz AS DEC DECIMALS 4 NO-UNDO.
  591. DEF VAR Wert AS DEC DECIMALS 4 NO-UNDO.
  592. DO WITH FRAME {&FRAME-NAME}:
  593. nArtnr = INTEGER(rowObject.Artnr :SCREEN-VALUE).
  594. nInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE).
  595. nJahr = INTEGER(rowObject.Jahr :SCREEN-VALUE).
  596. Wert = DECIMAL(rowObject.Wert :SCREEN-VALUE).
  597. Knr = INTEGER(rowObject.Knr :SCREEN-VALUE).
  598. END.
  599. FIND Artst USE-INDEX Artst-k1
  600. WHERE Artst.Firma = Firma
  601. AND Artst.Artnr = nArtnr
  602. AND Artst.Inhalt = nInhalt
  603. AND Artst.Jahr = nJahr NO-LOCK NO-ERROR.
  604. FIND Debst USE-INDEX Debst-k1
  605. WHERE Debst.Firma = Firma
  606. AND Debst.Knr = Knr NO-LOCK NO-ERROR.
  607. PreisGrp = Debst.Preis_Grp.
  608. FIND Wust USE-INDEX Wust-k1
  609. WHERE Wust.CodeK = Debst.MWST
  610. AND Wust.CodeA = 99 NO-LOCK NO-ERROR.
  611. FInkl = Wust.Incl.
  612. FIND AbwPrGrp USE-INDEX AbwPrGrp-k1
  613. WHERE AbwPrGrp.Firma = Firma
  614. AND AbwPrGrp.Knr = SpezPrei.Knr
  615. AND AbwPrGrp.Wg_Grp = Artst.Wg_Grp NO-LOCK NO-ERROR.
  616. IF AVAILABLE AbwPrGrp THEN PreisGrp = AbwPrGrp.Preis_Grp.
  617. FIND LAST ArtPreis USE-INDEX ArtPreis-k1
  618. WHERE ArtPreis.Firma = Firma
  619. AND ArtPreis.Artnr = nArtnr
  620. AND ArtPreis.Inhalt = nInhalt
  621. AND ArtPreis.Jahr = nJahr
  622. AND ArtPreis.Preis_Grp = PreisGrp
  623. AND ArtPreis.Ab_Datum <= TODAY
  624. AND ArtPreis.Aktion = FALSE
  625. AND ArtPreis.Aktiv = TRUE
  626. NO-LOCK NO-ERROR.
  627. IF NOT AVAILABLE ArtPreis THEN DO:
  628. FIND LAST ArtPreis USE-INDEX ArtPreis-k1
  629. WHERE ArtPreis.Firma = Firma
  630. AND ArtPreis.Artnr = nArtnr
  631. AND ArtPreis.Inhalt = nInhalt
  632. AND ArtPreis.Jahr = nJahr
  633. AND ArtPreis.Preis_Grp = Debst.Preis_Grp
  634. AND ArtPreis.Ab_Datum <= TODAY
  635. AND ArtPreis.Aktion = FALSE
  636. AND ArtPreis.Aktiv = TRUE
  637. NO-LOCK NO-ERROR.
  638. END.
  639. IF NOT AVAILABLE ArtPreis THEN DO:
  640. FIND LAST ArtPreis USE-INDEX ArtPreis-k1
  641. WHERE ArtPreis.Firma = Firma
  642. AND ArtPreis.Artnr = nArtnr
  643. AND ArtPreis.Inhalt = nInhalt
  644. AND ArtPreis.Jahr = nJahr
  645. AND ArtPreis.Preis_Grp = 0
  646. AND ArtPreis.Ab_Datum <= TODAY
  647. AND ArtPreis.Aktion = FALSE
  648. AND ArtPreis.Aktiv = TRUE
  649. NO-LOCK NO-ERROR.
  650. END.
  651. DO WITH FRAME {&FRAME-NAME}:
  652. Ansatz = ArtPreis.VK_Brutto * 100 / ArtPreis.VK_Netto.
  653. IF FInkl THEN rowObject.VP_Normal:SCREEN-VALUE = STRING(ArtPreis.VK_Brutto).
  654. ELSE rowObject.VP_Normal:SCREEN-VALUE = STRING(ArtPreis.VK_Netto).
  655. VK_Netto = DECIMAL(rowObject.VP_Normal:SCREEN-VALUE).
  656. IF CB_Art:SCREEN-VALUE = 'P' THEN VK_Spez = VK_Netto * (100 - Wert) / 100.
  657. ELSE VK_Spez = Wert.
  658. IF FInkl THEN VK_Spez = VK_Spez / Ansatz * 100.
  659. IF Artst.Listen_EP = 0 THEN Marge = 0.
  660. ELSE Marge = 100 - (Artst.Listen_EP * 100 / VK_Spez).
  661. rowObject.Marge:SCREEN-VALUE = STRING(Marge).
  662. END.
  663. END PROCEDURE.
  664. /* _UIB-CODE-BLOCK-END */
  665. &ANALYZE-RESUME
  666. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  667. PROCEDURE cancelRecord :
  668. /*------------------------------------------------------------------------------
  669. Purpose: Super Override
  670. Parameters:
  671. Notes:
  672. ------------------------------------------------------------------------------*/
  673. /* Code placed here will execute PRIOR to standard behavior. */
  674. RUN SUPER.
  675. /* Code placed here will execute AFTER standard behavior. */
  676. END PROCEDURE.
  677. /* _UIB-CODE-BLOCK-END */
  678. &ANALYZE-RESUME
  679. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  680. PROCEDURE copyRecord :
  681. /*------------------------------------------------------------------------------
  682. Purpose: Super Override
  683. Parameters:
  684. Notes:
  685. ------------------------------------------------------------------------------*/
  686. DO WITH FRAME {&FRAME-NAME}:
  687. F_Knr :SCREEN-VALUE = ''.
  688. F_Knr :SENSITIVE = FALSE.
  689. F_Knr :TAB-STOP = FALSE.
  690. F_Datum:SCREEN-VALUE = ''.
  691. F_Datum:SENSITIVE = FALSE.
  692. F_Datum:TAB-STOP = FALSE.
  693. END.
  694. Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR.
  695. IF Knr = 0 THEN DO:
  696. DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
  697. RETURN NO-APPLY.
  698. END.
  699. FIND Debst USE-INDEX Debst-k1
  700. WHERE Debst.Firma = Firma
  701. AND Debst.Knr = Knr NO-LOCK NO-ERROR.
  702. IF NOT AVAILABLE Debst THEN DO:
  703. RUN FEHLER ( INPUT 1016 ).
  704. DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR.
  705. RETURN NO-APPLY.
  706. END.
  707. FNeu = TRUE.
  708. FMut = TRUE.
  709. FCopy = TRUE.
  710. FDisp = FALSE.
  711. RUN SUPER.
  712. END PROCEDURE.
  713. /* _UIB-CODE-BLOCK-END */
  714. &ANALYZE-RESUME
  715. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  716. PROCEDURE deleteRecord :
  717. /*------------------------------------------------------------------------------
  718. Purpose: Super Override
  719. Parameters:
  720. Notes:
  721. ------------------------------------------------------------------------------*/
  722. DEF VAR Ja AS LOG NO-UNDO.
  723. Ja = DYNAMIC-FUNCTION( 'ANTWORT_JA':U, INPUT 1000 ).
  724. IF NOT Ja THEN DO:
  725. PUBLISH 'TOOLBAR' ( INPUT 'CANCEL':U ).
  726. RETURN NO-APPLY.
  727. END.
  728. RUN SUPER.
  729. /* Code placed here will execute AFTER standard behavior. */
  730. END PROCEDURE.
  731. /* _UIB-CODE-BLOCK-END */
  732. &ANALYZE-RESUME
  733. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  734. PROCEDURE disableFields :
  735. /*------------------------------------------------------------------------------
  736. Purpose: Super Override
  737. Parameters:
  738. Notes:
  739. ------------------------------------------------------------------------------*/
  740. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  741. DO WITH FRAME {&FRAME-NAME}:
  742. END.
  743. RUN SUPER( INPUT pcFieldType).
  744. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  745. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  746. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT TRUE ).
  747. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  748. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  749. END.
  750. DO WITH FRAME {&FRAME-NAME}:
  751. ENABLE {&List-5}.
  752. END.
  753. END PROCEDURE.
  754. /* _UIB-CODE-BLOCK-END */
  755. &ANALYZE-RESUME
  756. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  757. PROCEDURE disable_UI :
  758. /*------------------------------------------------------------------------------
  759. Purpose: DISABLE the User Interface
  760. Parameters: <none>
  761. Notes: Here we clean-up the user-interface by deleting
  762. dynamic widgets we have created and/or hide
  763. frames. This procedure is usually called when
  764. we are ready to "clean-up" after running.
  765. ------------------------------------------------------------------------------*/
  766. /* Hide all frames. */
  767. HIDE FRAME F-Main.
  768. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  769. END PROCEDURE.
  770. /* _UIB-CODE-BLOCK-END */
  771. &ANALYZE-RESUME
  772. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  773. PROCEDURE displayFields :
  774. /*------------------------------------------------------------------------------
  775. Purpose: Super Override
  776. Parameters:
  777. Notes:
  778. ------------------------------------------------------------------------------*/
  779. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  780. DEF VAR VP AS DEC DECIMALS 4 NO-UNDO.
  781. DEF VAR Wert AS DEC DECIMALS 4 NO-UNDO.
  782. DEF VAR Betrag AS DEC DECIMALS 4 NO-UNDO.
  783. IF NOT FDisp THEN DO:
  784. FDisp = TRUE.
  785. RETURN.
  786. END.
  787. OldColValues = pcColValues.
  788. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  789. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  790. DO WITH FRAME {&FRAME-NAME}:
  791. END.
  792. RUN SUPER( INPUT pcColValues).
  793. DO WITH FRAME {&FRAME-NAME}:
  794. F_Artnr:SCREEN-VALUE = rowObject.Artnr:SCREEN-VALUE.
  795. CB_Art:SCREEN-VALUE = rowObject.Proz_Betr:SCREEN-VALUE NO-ERROR.
  796. VP = DECIMAL(rowObject.VP_Normal:SCREEN-VALUE).
  797. Wert = DECIMAL(rowObject.Wert:SCREEN-VALUE ).
  798. IF CB_Art:SCREEN-VALUE = 'P' THEN DO:
  799. F_Wert:LABEL = 'Preis'.
  800. Betrag = VP * (100 - Wert) / 100.
  801. F_Wert:SCREEN-VALUE = STRING(Betrag).
  802. END.
  803. ELSE DO:
  804. F_Wert:LABEL = 'Prozent'.
  805. Betrag = (100 - (Wert * 100 / VP)).
  806. F_Wert:SCREEN-VALUE = STRING(Betrag).
  807. END.
  808. END.
  809. END PROCEDURE.
  810. /* _UIB-CODE-BLOCK-END */
  811. &ANALYZE-RESUME
  812. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  813. PROCEDURE enableFields :
  814. /*------------------------------------------------------------------------------
  815. Purpose: Super Override
  816. Parameters:
  817. Notes:
  818. ------------------------------------------------------------------------------*/
  819. /* Code placed here will execute PRIOR to standard behavior. */
  820. /*
  821. RUN SUPER.
  822. */
  823. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  824. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  825. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT FALSE ).
  826. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO:
  827. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  828. END.
  829. DO WITH FRAME {&FRAME-NAME}:
  830. IF CB_Art:SCREEN-VALUE = 'P' THEN F_Wert:LABEL = 'Preis'.
  831. ELSE F_Wert:LABEL = 'Prozent'.
  832. DISABLE {&List-5}.
  833. END.
  834. IF FNeu THEN RETURN.
  835. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  836. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  837. END.
  838. END PROCEDURE.
  839. /* _UIB-CODE-BLOCK-END */
  840. &ANALYZE-RESUME
  841. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  842. PROCEDURE enableObject :
  843. /*------------------------------------------------------------------------------
  844. Purpose: Super Override
  845. Parameters:
  846. Notes:
  847. ------------------------------------------------------------------------------*/
  848. RUN SUPER.
  849. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  850. IF SAktiv THEN DO WITH FRAME {&FRAME-NAME}:
  851. hDaten = DYNAMIC-FUNCTION('getDataSOurce':U) NO-ERROR.
  852. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  853. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT TRUE ).
  854. END.
  855. END PROCEDURE.
  856. /* _UIB-CODE-BLOCK-END */
  857. &ANALYZE-RESUME
  858. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  859. PROCEDURE ENTRY_FELD_TEST :
  860. /*------------------------------------------------------------------------------
  861. Purpose:
  862. Parameters: <none>
  863. Notes:
  864. ------------------------------------------------------------------------------*/
  865. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  866. DEF VAR FeldName AS CHAR NO-UNDO.
  867. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  868. DEF VAR nPreis AS DEC DECIMALS 4 NO-UNDO.
  869. DEF VAR nWert AS DEC DECIMALS 4 NO-UNDO.
  870. DEF VAR nBetrag AS DEC DECIMALS 4 NO-UNDO.
  871. FeldName = ''.
  872. FeldInhalt = ''.
  873. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  874. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  875. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  876. FeldName = ipHandle:NAME.
  877. IF ipHandle:TYPE = 'FILL-IN' OR
  878. ipHandle:TYPE = 'COMBO-BOX' OR
  879. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  880. IF NOT FMut THEN RETURN ''.
  881. DO WITH FRAME {&FRAME-NAME}:
  882. CASE FeldName:
  883. WHEN 'F_Wert' THEN DO:
  884. nWert = DECIMAL(rowObject.Wert:SCREEN-VALUE).
  885. IF nWert = 0 THEN RETURN ''.
  886. nPreis = DECIMAL(rowObject.VP_Normal:SCREEN-VALUE).
  887. IF CB_Art:SCREEN-VALUE = 'P' THEN DO:
  888. nBetrag = nPreis * (100 - nWert) / 100.
  889. ipHandle:SCREEN-VALUE = STRING(nBetrag).
  890. END.
  891. ELSE DO:
  892. nBetrag = 100 - (nWert * 100 / nPreis).
  893. ipHandle:SCREEN-VALUE = STRING(nBetrag).
  894. END.
  895. RUN BERECHNEN.
  896. ipHandle:MODIFIED = FALSE.
  897. END.
  898. END CASE.
  899. END.
  900. RETURN ''.
  901. END PROCEDURE.
  902. /* _UIB-CODE-BLOCK-END */
  903. &ANALYZE-RESUME
  904. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  905. PROCEDURE FEHLWERTE :
  906. /*------------------------------------------------------------------------------
  907. Purpose:
  908. Parameters: <none>
  909. Notes:
  910. ------------------------------------------------------------------------------*/
  911. DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO.
  912. DEF VAR FwFelder AS CHAR NO-UNDO.
  913. DEF VAR FwFeld AS CHAR NO-UNDO.
  914. DEF VAR FwValue AS CHAR NO-UNDO.
  915. DEF VAR ix AS INT NO-UNDO.
  916. DEF VAR i1 AS INT NO-UNDO.
  917. GET-KEY-VALUE SECTION 'Fw???????' KEY ? VALUE FwFelder.
  918. IF NOT FCopy THEN DO:
  919. DO ix = 1 TO NUM-ENTRIES(FwFelder, ','):
  920. FwFeld = ENTRY (ix , FwFelder , ',').
  921. i1 = LOOKUP(FwFeld, oldColList, ',') + 1.
  922. IF i1 < 2 THEN NEXT.
  923. GET-KEY-VALUE SECTION 'Fw???????' KEY FwFeld VALUE FwValue.
  924. ENTRY(i1, pcColValues, CHR(1)) = FwValue NO-ERROR.
  925. END.
  926. IF vDatum = ? THEN vDatum = TODAY.
  927. IF bdatum = ? THEN bdatum = DATE(12,31,YEAR(TODAY)).
  928. i1 = LOOKUP('Menge', oldColList, ',') + 1.
  929. ENTRY(i1, pcColValues, CHR(01)) = STRING(dMenge) NO-ERROR.
  930. i1 = LOOKUP('Ab_Datum', oldColList, ',') + 1.
  931. ENTRY(i1, pcColValues, CHR(01)) = STRING(vDatum) NO-ERROR.
  932. i1 = LOOKUP('Bis_Datum', oldColList, ',') + 1.
  933. ENTRY(i1, pcColValues, CHR(01)) = STRING(bDatum) NO-ERROR.
  934. i1 = LOOKUP('Proz_Betr', oldColList, ',') + 1.
  935. ENTRY(i1, pcColValues, CHR(01)) = STRING(lProzBetr) NO-ERROR.
  936. i1 = LOOKUP('Wert', oldColList, ',') + 1.
  937. ENTRY(i1, pcColValues, CHR(01)) = STRING(dWert) NO-ERROR.
  938. ix = DYNAMIC-FUNCTION('getFWNettoRab':U) NO-ERROR.
  939. i1 = LOOKUP('lNetto', oldColList, ',') + 1.
  940. ENTRY(i1, pcColValues, CHR(01)) = (IF ix = 0 THEN STRING(TRUE) ELSE STRING(FALSE)) NO-ERROR.
  941. END.
  942. IF FCopy THEN DO:
  943. END.
  944. OldColValues = pcColValues.
  945. END PROCEDURE.
  946. /* _UIB-CODE-BLOCK-END */
  947. &ANALYZE-RESUME
  948. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF vTableWin
  949. PROCEDURE KOPF :
  950. /*------------------------------------------------------------------------------
  951. Purpose:
  952. Parameters: <none>
  953. Notes:
  954. ------------------------------------------------------------------------------*/
  955. DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO.
  956. DEF VAR Zelle AS CHAR NO-UNDO.
  957. FIND Steuer USE-INDEX Steuer-k1
  958. WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR.
  959. Zelle = 'Links1'.
  960. eh:Range(Zelle):SELECT.
  961. eh:SELECTION:VALUE = Steuer.Firma1.
  962. Zelle = 'Mitte1'.
  963. eh:Range(Zelle):SELECT.
  964. eh:SELECTION:VALUE = 'Spezialpreise eines Kunden'.
  965. Zelle = 'Rechts1'.
  966. eh:Range(Zelle):SELECT.
  967. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999').
  968. Zelle = 'Links2'.
  969. eh:Range(Zelle):SELECT.
  970. eh:SELECTION:VALUE = Steuer.Ort.
  971. Zelle = 'Mitte2'.
  972. eh:Range(Zelle):SELECT.
  973. eh:SELECTION:VALUE = ''.
  974. Zelle = 'Rechts2'.
  975. eh:Range(Zelle):SELECT.
  976. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS').
  977. END PROCEDURE.
  978. /* _UIB-CODE-BLOCK-END */
  979. &ANALYZE-RESUME
  980. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPIEREN vTableWin
  981. PROCEDURE KOPIEREN :
  982. /*------------------------------------------------------------------------------
  983. Purpose:
  984. Parameters: <none>
  985. Notes:
  986. ------------------------------------------------------------------------------*/
  987. DEF VAR NeuKnr AS INT NO-UNDO.
  988. DEF VAR Ja AS LOG NO-UNDO.
  989. DEF VAR xKnr AS CHAR NO-UNDO.
  990. DEF VAR ii AS INT NO-UNDO.
  991. DEF VAR Fehl AS LOG NO-UNDO.
  992. DO WITH FRAME {&FRAME-NAME}:
  993. IF KEYFUNCTION(LASTKEY) <> 'RETURN' THEN DO:
  994. F_Knr:SCREEN-VALUE = ''.
  995. F_Knr:SENSITIVE = FALSE.
  996. F_Knr:TAB-STOP = FALSE.
  997. ENABLE {&List-5}.
  998. APPLY 'U1'.
  999. RETURN NO-APPLY.
  1000. END.
  1001. Knr = ?.
  1002. Knr = INTEGER(rowObject.Knr:SCREEN-VALUE) NO-ERROR.
  1003. IF Knr = 0 OR
  1004. Knr = ? THEN DO:
  1005. ENABLE {&List-5}.
  1006. APPLY 'U1'.
  1007. RETURN NO-APPLY.
  1008. END.
  1009. IF F_Knr:SCREEN-VALUE = '' THEN DO:
  1010. F_Knr:SENSITIVE = FALSE.
  1011. F_Knr:TAB-STOP = FALSE.
  1012. ENABLE {&List-5}.
  1013. APPLY 'U1'.
  1014. RETURN NO-APPLY.
  1015. END.
  1016. xKnr = F_Knr:SCREEN-VALUE.
  1017. xKnr = REPLACE(xKnr, ';', ',').
  1018. xKnr = REPLACE(xKnr, '.', ',').
  1019. F_Knr = ''.
  1020. DO ii = 1 TO NUM-ENTRIES(xKnr, ','):
  1021. ERROR-STATUS:ERROR = FALSE.
  1022. NeuKnr = INTEGER(ENTRY(ii, xKnr, ',')) NO-ERROR.
  1023. IF ERROR-STATUS:ERROR THEN NEXT.
  1024. IF NeuKnr = 0 THEN NEXT.
  1025. IF NeuKnr = Knr THEN NEXT.
  1026. IF F_Knr <> '' THEN F_Knr = F_Knr + ','.
  1027. F_Knr = F_Knr + TRIM(STRING(NeuKnr,'zzzzzz')).
  1028. END.
  1029. xKnr = F_Knr.
  1030. /* auf alle Kunden kopieren */
  1031. Fehl = FALSE.
  1032. DO ii = 1 TO NUM-ENTRIES(xKnr, ','):
  1033. NeuKnr = INTEGER(ENTRY(ii, xKnr, ',')).
  1034. FIND Adresse USE-INDEX Adresse-k1
  1035. WHERE Adresse.Firma = AdFirma
  1036. AND Adresse.Knr = NeuKnr
  1037. AND Adresse.Aktiv = TRUE NO-LOCK NO-ERROR.
  1038. IF NOT AVAILABLE Adresse THEN DO:
  1039. F_Knr:SCREEN-VALUE = STRING(NeuKnr,'999999').
  1040. RUN FEHLER ( INPUT 1015 ).
  1041. Fehl = TRUE.
  1042. NEXT.
  1043. END.
  1044. FIND Debst USE-INDEX Debst-k1
  1045. WHERE Debst.Firma = Firma
  1046. AND Debst.Knr = NeuKnr
  1047. AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
  1048. IF NOT AVAILABLE Debst THEN DO:
  1049. F_Knr:SCREEN-VALUE = STRING(NeuKnr,'999999').
  1050. RUN FEHLER ( INPUT 1016 ).
  1051. Fehl = TRUE.
  1052. NEXT.
  1053. END.
  1054. FIND FIRST SpezPrei USE-INDEX SpezPrei-k1
  1055. WHERE SpezPrei.Firma = Debst.Firma
  1056. AND SpezPrei.Knr = Debst.Knr NO-LOCK NO-ERROR.
  1057. IF AVAILABLE SpezPrei THEN DO:
  1058. Ja = FALSE.
  1059. MESSAGE 'Kunde hat bereits Spezialpreise! Sollen diese gelöscht werden?' SKIP
  1060. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
  1061. UPDATE Ja.
  1062. IF Ja THEN DO:
  1063. FOR EACH SpezPrei USE-INDEX SpezPrei-k1
  1064. WHERE SpezPrei.Firma = Firma
  1065. AND SpezPrei.Knr = NeuKnr TRANSACTION:
  1066. DELETE SpezPrei.
  1067. END.
  1068. END.
  1069. END.
  1070. Ja = TRUE.
  1071. MESSAGE 'Wollen Sie diese Konditionen vom Kunden ' STRING(Knr,'999999')
  1072. ' zum Kunden ' SKIP
  1073. STRING(NeuKnr,"999999 ") Adresse.Anzeig_Br ' übertragen ? '
  1074. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
  1075. UPDATE Ja.
  1076. IF NOT Ja THEN DO:
  1077. F_Knr:SCREEN-VALUE = ''.
  1078. F_Knr:SENSITIVE = FALSE.
  1079. F_Knr:TAB-STOP = FALSE.
  1080. ENABLE {&List-5}.
  1081. APPLY 'U1'.
  1082. RETURN NO-APPLY.
  1083. END.
  1084. FOR EACH TSpezPrei:
  1085. DELETE TSpezprei.
  1086. END.
  1087. FOR EACH SpezPrei USE-INDEX SpezPrei-k1
  1088. WHERE SpezPrei.Firma = Firma
  1089. AND SpezPrei.Knr = Knr NO-LOCK:
  1090. CREATE TSpezPrei.
  1091. BUFFER-COPY SpezPrei EXCEPT Knr
  1092. TO TSpezPrei
  1093. ASSIGN TSpezPrei.Knr = NeuKnr.
  1094. END.
  1095. REPEAT TRANSACTION:
  1096. FOR EACH TSpezPrei:
  1097. FIND SpezPrei OF TSpezPrei NO-ERROR.
  1098. IF NOT AVAILABLE SpezPrei THEN CREATE SpezPrei.
  1099. BUFFER-COPY TSpezPrei TO SpezPrei.
  1100. DELETE TSpezPrei.
  1101. END.
  1102. LEAVE.
  1103. END.
  1104. END.
  1105. IF Fehl THEN DO:
  1106. IF NUM-ENTRIES(xKnr, ',') = 1 THEN DO:
  1107. APPLY 'ENTRY' TO F_Knr.
  1108. RETURN NO-APPLY.
  1109. END.
  1110. END.
  1111. F_Knr:SCREEN-VALUE = ''.
  1112. F_Knr:SENSITIVE = FALSE.
  1113. F_Knr:TAB-STOP = FALSE.
  1114. ENABLE {&List-5}.
  1115. APPLY 'U1'.
  1116. RETURN NO-APPLY.
  1117. END.
  1118. END PROCEDURE.
  1119. /* _UIB-CODE-BLOCK-END */
  1120. &ANALYZE-RESUME
  1121. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  1122. PROCEDURE LEAVE_FELD_TEST :
  1123. /*------------------------------------------------------------------------------
  1124. Purpose:
  1125. Parameters: <none>
  1126. Notes:
  1127. ------------------------------------------------------------------------------*/
  1128. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1129. DEF VAR FeldName AS CHAR NO-UNDO.
  1130. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  1131. DEF VAR ix AS INT NO-UNDO.
  1132. DEF VAR LKY AS INT NO-UNDO.
  1133. DEF VAR hLEAVE AS HANDLE NO-UNDO.
  1134. DEF VAR hENTER AS HANDLE NO-UNDO.
  1135. DEF VAR Daten AS CHAR NO-UNDO.
  1136. DEF VAR nPreis AS DEC DECIMALS 4 NO-UNDO.
  1137. DEF VAR nWert AS DEC DECIMALS 4 NO-UNDO.
  1138. DEF VAR nBetrag AS DEC DECIMALS 4 NO-UNDO.
  1139. DEF VAR ARecid AS RECID NO-UNDO.
  1140. DEF VAR cSuchbe AS CHAR NO-UNDO.
  1141. IF FMut = FALSE THEN RETURN ''.
  1142. LKY = LASTKEY.
  1143. hENTER = LAST-EVENT:WIDGET-ENTER.
  1144. hLEAVE = LAST-EVENT:WIDGET-LEAVE.
  1145. FeldName = ''.
  1146. FeldInhalt = ''.
  1147. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  1148. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  1149. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  1150. FeldName = ipHandle:NAME.
  1151. IF ipHandle:TYPE = 'FILL-IN' OR
  1152. ipHandle:TYPE = 'COMBO-BOX' OR
  1153. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  1154. IF FNeu THEN DO:
  1155. CASE FeldName:
  1156. WHEN 'F_Artnr' THEN DO WITH FRAME {&FRAME-NAME}:
  1157. F_Artnr = SELF:SCREEN-VALUE.
  1158. VArtnr = INTEGER(F_Artnr) NO-ERROR.
  1159. ARecid = ?.
  1160. DO WHILE NOT ERROR-STATUS:ERROR:
  1161. IF VArtnr = 0 THEN LEAVE.
  1162. DO WHILE VArtnr < MinNr:
  1163. VArtnr = VArtnr * 10.
  1164. END.
  1165. ix = 0.
  1166. FOR EACH Artst NO-LOCK
  1167. WHERE Artst.Firma = Firma
  1168. AND Artst.Artnr = VArtnr:
  1169. ix = ix + 1.
  1170. ARecid = RECID(Artst).
  1171. END.
  1172. IF ix = 1 THEN LEAVE.
  1173. ARecid = ?.
  1174. LEAVE.
  1175. END.
  1176. IF ARecid = ? THEN DO:
  1177. cSuchbe = F_Artnr.
  1178. RUN g-suchen-artikel.w ( cSuchbe, OUTPUT ARecid ).
  1179. END.
  1180. IF ARecid = ? OR
  1181. ARecid = 0 THEN DO:
  1182. RETURN 'ERROR'.
  1183. END.
  1184. FIND Artst NO-LOCK WHERE RECID(Artst) = ARecid.
  1185. ipHandle:SCREEN-VALUE = STRING(Artst.Artnr ,'999999').
  1186. rowObject.Artnr :SCREEN-VALUE = STRING(Artst.Artnr ,'999999').
  1187. rowObject.Inhalt :SCREEN-VALUE = STRING(Artst.Inhalt,'9999').
  1188. rowObject.Jahr :SCREEN-VALUE = STRING(Artst.Jahr ,'9999').
  1189. rowObject.Artikel:SCREEN-VALUE = Artst.Bez.
  1190. IF ARecid <> ? AND
  1191. ARecid <> 0 THEN DO:
  1192. APPLY 'ENTRY' TO rowObject.Menge.
  1193. RETURN 'APPLY'.
  1194. END.
  1195. ELSE RETURN ''.
  1196. END.
  1197. WHEN 'Inhalt' THEN DO:
  1198. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
  1199. IF VALID-HANDLE(hENTER) THEN DO:
  1200. IF hENTER:NAME = 'F_Artnr' THEN RETURN.
  1201. END.
  1202. nArtnr = INTEGER(F_Artnr:SCREEN-VALUE).
  1203. nInhalt = INTEGER(FeldInhalt).
  1204. FIND FIRST Artst USE-INDEX Artst-k1
  1205. WHERE Artst.Firma = Firma
  1206. AND Artst.Artnr = nArtnr
  1207. AND Artst.Inhalt = nInhalt NO-LOCK NO-ERROR.
  1208. IF NOT AVAILABLE Artst THEN DO:
  1209. BELL.
  1210. RETURN 'ERROR'.
  1211. END.
  1212. rowObject.Jahr:SCREEN-VALUE = STRING(Artst.Jahr ,'9999').
  1213. rowObject.Artikel:SCREEN-VALUE = Artst.Bez.
  1214. RETURN ''.
  1215. END.
  1216. WHEN 'Jahr' THEN DO:
  1217. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
  1218. IF VALID-HANDLE(hENTER) THEN DO:
  1219. IF hENTER:NAME = 'F_Artnr' THEN RETURN.
  1220. IF hENTER:NAME = 'Inhalt' THEN RETURN.
  1221. END.
  1222. nArtnr = INTEGER(F_Artnr:SCREEN-VALUE).
  1223. nInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE).
  1224. nJahr = INTEGER(FeldInhalt).
  1225. FIND Artst USE-INDEX Artst-k1
  1226. WHERE Artst.Firma = Firma
  1227. AND Artst.Artnr = nArtnr
  1228. AND Artst.Inhalt = nInhalt
  1229. AND Artst.Jahr = nJahr NO-LOCK NO-ERROR.
  1230. IF NOT AVAILABLE Artst THEN DO:
  1231. RUN FEHLER ( INPUT 1042 ).
  1232. RETURN 'ERROR'.
  1233. END.
  1234. rowObject.Artikel:SCREEN-VALUE = Artst.Bez.
  1235. RUN BERECHNEN.
  1236. RETURN ''.
  1237. END.
  1238. WHEN 'Menge' THEN DO:
  1239. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN.
  1240. IF VALID-HANDLE(hENTER) THEN DO:
  1241. IF hENTER:NAME = 'F_Artnr' THEN RETURN.
  1242. IF hENTER:NAME = 'Inhalt' THEN RETURN.
  1243. IF hENTER:NAME = 'Jahr' THEN RETURN.
  1244. END.
  1245. nArtnr = INTEGER(F_Artnr:SCREEN-VALUE).
  1246. nInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE).
  1247. nJahr = INTEGER(rowObject.Jahr:SCREEN-VALUE).
  1248. FIND SpezPrei USE-INDEX SpezPrei-k1
  1249. WHERE SpezPrei.Firma = Firma
  1250. AND SpezPrei.Knr = Knr
  1251. AND SpezPrei.Artnr = nArtnr
  1252. AND SpezPrei.Inhalt = nInhalt
  1253. AND SpezPrei.Jahr = nJahr
  1254. AND SpezPrei.Menge = DECIMAL(FeldInhalt)
  1255. NO-LOCK NO-ERROR.
  1256. IF AVAILABLE SpezPrei THEN DO:
  1257. RUN FEHLER ( INPUT 1043 ).
  1258. RETURN 'ERROR'.
  1259. END.
  1260. RETURN ''.
  1261. END.
  1262. END CASE.
  1263. END.
  1264. CASE FeldName:
  1265. WHEN 'Ab_Datum' THEN DO:
  1266. IF FeldInhalt = ''
  1267. THEN ipHandle:SCREEN-VALUE = STRING(DATE(01,01,YEAR(TODAY))).
  1268. END.
  1269. WHEN 'Bis_Datum' THEN DO:
  1270. IF FeldInhalt = ''
  1271. THEN ipHandle:SCREEN-VALUE = STRING(DATE(12,31,YEAR(TODAY) + 1)).
  1272. END.
  1273. WHEN 'F_Wert' THEN DO:
  1274. IF ipHandle:MODIFIED = TRUE THEN DO:
  1275. nBetrag = DECIMAL(FeldInhalt).
  1276. nPreis = DECIMAL(rowObject.VP_Normal:SCREEN-VALUE).
  1277. nWert = DECIMAL(rowObject.Wert:SCREEN-VALUE ).
  1278. IF CB_Art:SCREEN-VALUE = 'P' THEN DO:
  1279. nWert = 100 - (nBetrag * 100 / nPreis).
  1280. rowObject.Wert:SCREEN-VALUE = STRING(nWert).
  1281. END.
  1282. ELSE DO:
  1283. nWert = nPreis * (100 - nBetrag) / 100.
  1284. rowObject.Wert:SCREEN-VALUE = STRING(nWert).
  1285. END.
  1286. RUN BERECHNEN.
  1287. RETURN 'ERROR'.
  1288. END.
  1289. END.
  1290. END CASE.
  1291. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO:
  1292. DO WHILE TRUE:
  1293. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  1294. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  1295. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  1296. RETURN ''.
  1297. END.
  1298. APPLY 'ALT-S'.
  1299. RETURN 'APPLY'.
  1300. END.
  1301. RETURN ''.
  1302. END PROCEDURE.
  1303. /* _UIB-CODE-BLOCK-END */
  1304. &ANALYZE-RESUME
  1305. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN vTableWin
  1306. PROCEDURE LOESCHEN :
  1307. /*------------------------------------------------------------------------------
  1308. Purpose:
  1309. Parameters: <none>
  1310. Notes:
  1311. ------------------------------------------------------------------------------*/
  1312. DEF VAR Ja AS LOG NO-UNDO.
  1313. DEF VAR dHandle AS HANDLE NO-UNDO.
  1314. DO WITH FRAME {&FRAME-NAME}:
  1315. IF KEYFUNCTION(LASTKEY) <> 'RETURN' THEN DO:
  1316. F_Datum:SCREEN-VALUE = ''.
  1317. F_Datum:SENSITIVE = FALSE.
  1318. F_Datum:TAB-STOP = FALSE.
  1319. ENABLE {&List-5}.
  1320. APPLY 'U1'.
  1321. RETURN NO-APPLY.
  1322. END.
  1323. Knr = INTEGER(rowObject.Knr:SCREEN-VALUE).
  1324. IF DATE(F_Datum:SCREEN-VALUE) = ? THEN DO:
  1325. F_Datum:SCREEN-VALUE = ''.
  1326. F_Datum:SENSITIVE = FALSE.
  1327. F_Datum:TAB-STOP = FALSE.
  1328. ENABLE {&List-5}.
  1329. APPLY 'U1'.
  1330. RETURN NO-APPLY.
  1331. END.
  1332. FIND Adresse USE-INDEX Adresse-k1
  1333. WHERE Adresse.Firma = AdFirma
  1334. AND Adresse.Knr = Knr
  1335. AND Adresse.Aktiv = TRUE NO-LOCK NO-ERROR.
  1336. IF NOT AVAILABLE Adresse THEN DO:
  1337. RUN FEHLER ( INPUT 1015 ).
  1338. F_Datum:SCREEN-VALUE = ''.
  1339. F_Datum:SENSITIVE = FALSE.
  1340. F_Datum:TAB-STOP = FALSE.
  1341. ENABLE {&List-5}.
  1342. APPLY 'U1'.
  1343. RETURN NO-APPLY.
  1344. END.
  1345. FIND Debst USE-INDEX Debst-k1
  1346. WHERE Debst.Firma = Firma
  1347. AND Debst.Knr = Knr
  1348. AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR.
  1349. IF NOT AVAILABLE Debst THEN DO:
  1350. RUN FEHLER ( INPUT 1016 ).
  1351. F_Datum:SCREEN-VALUE = ''.
  1352. F_Datum:SENSITIVE = FALSE.
  1353. F_Datum:TAB-STOP = FALSE.
  1354. ENABLE {&List-5}.
  1355. APPLY 'U1'.
  1356. RETURN NO-APPLY.
  1357. END.
  1358. Ja = FALSE.
  1359. F_Datum = DATE(F_Datum:SCREEN-VALUE).
  1360. MESSAGE 'Wollen Sie alle Spezialpreise mit Gültigkeit ' SKIP
  1361. 'bis ' STRING(F_Datum,'99.99.9999') ' dieses Kunden löschen ? '
  1362. VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
  1363. UPDATE Ja.
  1364. IF NOT Ja THEN DO:
  1365. F_Datum:SCREEN-VALUE = ''.
  1366. F_Datum:SENSITIVE = FALSE.
  1367. F_Datum:TAB-STOP = FALSE.
  1368. ENABLE {&List-5}.
  1369. APPLY 'U1'.
  1370. RETURN NO-APPLY.
  1371. END.
  1372. FOR EACH SpezPrei USE-INDEX SpezPrei-k1
  1373. WHERE SpezPrei.Firma = Firma
  1374. AND SpezPrei.Knr = Knr
  1375. AND SpezPrei.Bis_Datum <= F_Datum TRANSACTION:
  1376. DELETE SpezPrei.
  1377. END.
  1378. dHandle = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
  1379. IF VALID-HANDLE(dHandle) THEN DYNAMIC-FUNCTION('openQuery':U IN dHandle ) NO-ERROR.
  1380. F_Datum:SCREEN-VALUE = ''.
  1381. F_Datum:SENSITIVE = FALSE.
  1382. F_Datum:TAB-STOP = FALSE.
  1383. ENABLE {&List-5}.
  1384. APPLY 'U1'.
  1385. RETURN NO-APPLY.
  1386. END.
  1387. END PROCEDURE.
  1388. /* _UIB-CODE-BLOCK-END */
  1389. &ANALYZE-RESUME
  1390. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT vTableWin
  1391. PROCEDURE REPORT :
  1392. /*------------------------------------------------------------------------------
  1393. Purpose:
  1394. Parameters: <none>
  1395. Notes:
  1396. ------------------------------------------------------------------------------*/
  1397. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  1398. DEF VAR DatenName AS CHAR NO-UNDO.
  1399. DEF VAR DateiName AS CHAR NO-UNDO.
  1400. DEF VAR Zelle AS CHAR NO-UNDO.
  1401. DEF VAR xText AS CHAR NO-UNDO.
  1402. DEF VAR Ja AS LOG NO-UNDO.
  1403. DEF VAR KGeb AS CHAR NO-UNDO.
  1404. DEF VAR Knr AS INT NO-UNDO.
  1405. DEF VAR Kunde AS CHAR NO-UNDO.
  1406. DEF VAR ADatum AS DATE NO-UNDO.
  1407. DEF VAR NDatum AS DATE NO-UNDO.
  1408. DEF VAR APreis AS DEC DECIMALS 4 NO-UNDO.
  1409. DEF VAR NPreis AS DEC DECIMALS 4 NO-UNDO.
  1410. DEF VAR AJahr AS INT NO-UNDO.
  1411. DEF VAR NJahr AS INT NO-UNDO.
  1412. DEF VAR AUmsatz AS DEC DECIMALS 4 NO-UNDO.
  1413. DEF VAR NUmsatz AS DEC DECIMALS 4 NO-UNDO.
  1414. Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR.
  1415. Kunde = DYNAMIC-FUNCTION('GETADRESSEANZEIGEBR':U,
  1416. INPUT Knr, INPUT 0) NO-ERROR.
  1417. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  1418. DatenName = 'KundenSpezialPreise.txt'.
  1419. DateiName = 'KundenSpezialPreise.xls' + CHR(01) + 'KundenSpezialPreise.xls'.
  1420. DO WITH FRAME {&FRAME-NAME}:
  1421. DO WHILE TRUE:
  1422. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  1423. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  1424. RUN FEHLER ( INPUT 1035 ).
  1425. RETURN NO-APPLY.
  1426. END.
  1427. LEAVE.
  1428. END.
  1429. DO WHILE TRUE:
  1430. RUN CREATEDATEI ( INPUT DateiName ).
  1431. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  1432. CASE RETURN-VALUE:
  1433. WHEN 'ERROR-PARAMETER' THEN DO:
  1434. RUN FEHLER ( INPUT 1036 ).
  1435. RETURN NO-APPLY.
  1436. END.
  1437. WHEN 'ERROR-LOESCHEN' THEN DO:
  1438. RUN FEHLER ( INPUT 1037 ).
  1439. RETURN NO-APPLY.
  1440. END.
  1441. WHEN 'ERROR-VORLAGE' THEN DO:
  1442. RUN FEHLER ( INPUT 1038 ).
  1443. RETURN NO-APPLY.
  1444. END.
  1445. OTHERWISE DO:
  1446. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  1447. RETURN NO-APPLY.
  1448. END.
  1449. END CASE.
  1450. LEAVE.
  1451. END.
  1452. DateiName = RETURN-VALUE.
  1453. DO WHILE TRUE:
  1454. RUN CREATEDATEI ( INPUT DatenName ).
  1455. IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE.
  1456. CASE RETURN-VALUE:
  1457. WHEN 'ERROR-PARAMETER' THEN DO:
  1458. RUN FEHLER ( INPUT 1036 ).
  1459. RETURN NO-APPLY.
  1460. END.
  1461. WHEN 'ERROR-LOESCHEN' THEN DO:
  1462. RUN FEHLER ( INPUT 1037 ).
  1463. RETURN NO-APPLY.
  1464. END.
  1465. WHEN 'ERROR-VORLAGE' THEN DO:
  1466. RUN FEHLER ( INPUT 1038 ).
  1467. RETURN NO-APPLY.
  1468. END.
  1469. OTHERWISE DO:
  1470. MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR.
  1471. RETURN NO-APPLY.
  1472. END.
  1473. END CASE.
  1474. LEAVE.
  1475. END.
  1476. DatenName = RETURN-VALUE.
  1477. OUTPUT TO VALUE(DatenName) APPEND.
  1478. NJahr = YEAR(TODAY).
  1479. AJahr = NJahr - 1.
  1480. FIND Debst USE-INDEX Debst-k1
  1481. WHERE Debst.Firma = Firma
  1482. AND Debst.Knr = Knr NO-LOCK NO-ERROR.
  1483. PUT CONTROL '£'
  1484. STRING(Knr,'999999 ')
  1485. Kunde CHR(10).
  1486. PUT CONTROL '£Artnr£Inhalt£Jahr£Bezeichnung£Gebinde£Menge£ab£'
  1487. 'bis£P/B£Wert'.
  1488. IF FSpezKol THEN PUT CONTROL '£DATUM£VP£DATUM£VP£'
  1489. 'Ums-' STRING(NJahr,'9999') '£'
  1490. 'Ums-' STRING(AJahr,'9999').
  1491. PUT CONTROL CHR(10)
  1492. '£' CHR(10).
  1493. FOR EACH SpezPrei NO-LOCK USE-INDEX SpezPrei-k1
  1494. WHERE SpezPrei.Firma = Firma
  1495. AND SpezPrei.Knr = Knr :
  1496. FIND Artst OF SpezPrei NO-LOCK NO-ERROR.
  1497. IF NOT AVAILABLE Artst THEN NEXT.
  1498. /*
  1499. IF NOT Artst.Aktiv THEN NEXT.
  1500. */
  1501. FIND DeArUms NO-LOCK USE-INDEX DeArUms-k1
  1502. WHERE DeArUms.Firma = Artst.Firma
  1503. AND DeArUms.Jahr = NJahr
  1504. AND DeArUms.Knr = Knr
  1505. AND DeArUms.Artnr = Artst.Artnr
  1506. AND DeArUms.Inhalt = Artst.Inhalt
  1507. AND DeArUms.Jahrg = Artst.Jahr NO-ERROR.
  1508. IF AVAILABLE DeArUms THEN NUmsatz = DeArUms.Vp_Kum.
  1509. ELSE NUmsatz = 0.
  1510. FIND DeArUms NO-LOCK USE-INDEX DeArUms-k1
  1511. WHERE DeArUms.Firma = Artst.Firma
  1512. AND DeArUms.Jahr = AJahr
  1513. AND DeArUms.Knr = Knr
  1514. AND DeArUms.Artnr = Artst.Artnr
  1515. AND DeArUms.Inhalt = Artst.Inhalt
  1516. AND DeArUms.Jahrg = Artst.Jahr NO-ERROR.
  1517. IF AVAILABLE DeArUms THEN AUmsatz = DeArUms.Vp_Kum.
  1518. ELSE AUmsatz = 0.
  1519. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  1520. WHERE KGebinde.Firma = Firma
  1521. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
  1522. IF AVAILABLE KGebinde THEN KGeb = KGebinde.KBez.
  1523. ELSE KGeb = FILL('?', 10).
  1524. ADatum = ?.
  1525. NDatum = ?.
  1526. APreis = 0.
  1527. NPreis = 0.
  1528. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  1529. WHERE ArtPreis.Firma = Firma
  1530. AND ArtPreis.Artnr = Artst.Artnr
  1531. AND ArtPreis.Inhalt = Artst.Inhalt
  1532. AND ArtPreis.Jahr = Artst.Jahr
  1533. AND ArtPreis.Preis_Grp = Debst.Preis_Grp
  1534. AND ArtPreis.Aktion = FALSE
  1535. AND ArtPreis.Ab_Datum <= TODAY NO-ERROR.
  1536. IF AVAILABLE ArtPreis THEN DO:
  1537. NDatum = ArtPreis.Ab_Datum.
  1538. NPreis = ArtPreis.VK_Netto.
  1539. END.
  1540. IF NDatum <> ? THEN DO:
  1541. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  1542. WHERE ArtPreis.Firma = Firma
  1543. AND ArtPreis.Artnr = Artst.Artnr
  1544. AND ArtPreis.Inhalt = Artst.Inhalt
  1545. AND ArtPreis.Jahr = Artst.Jahr
  1546. AND ArtPreis.Preis_Grp = Debst.Preis_Grp
  1547. AND ArtPreis.Aktion = FALSE
  1548. AND ArtPreis.Ab_Datum < NDatum NO-ERROR.
  1549. IF AVAILABLE ArtPreis THEN DO:
  1550. ADatum = ArtPreis.Ab_Datum.
  1551. APreis = ArtPreis.VK_Netto.
  1552. END.
  1553. END.
  1554. PUT CONTROL '£'.
  1555. PUT CONTROL STRING(Artst.Artnr ,'999999') '£'
  1556. STRING(Artst.Inhalt ,'zzzz') '£'
  1557. STRING(Artst.Jahr ,'zzzz') '£'
  1558. Artst.Bez '£'
  1559. KGeb '£'
  1560. STRING(SpezPrei.Menge ,'zzzzzz') '£'
  1561. STRING(SpezPrei.Ab_Datum ,'99.99.9999') '£'
  1562. STRING(SpezPrei.Bis_Datum,'99.99.9999') '£'
  1563. STRING(SpezPrei.Proz_Betr,'%/Fr') '£'
  1564. STRING(SpezPrei.Wert ,'>>>>9.999').
  1565. IF NOT FSpezKol THEN DO:
  1566. PUT CONTROL CHR(10).
  1567. NEXT.
  1568. END.
  1569. PUT CONTROL '£'.
  1570. IF NDatum <> ? THEN DO:
  1571. PUT CONTROL STRING(NDatum,'99.99.9999') '£'
  1572. STRING(NPreis,'>>>>9.9999') '£'.
  1573. END.
  1574. ELSE DO:
  1575. PUT CONTROL '££'.
  1576. END.
  1577. IF ADatum <> ? THEN DO:
  1578. PUT CONTROL STRING(ADatum,'99.99.9999') '£'
  1579. STRING(APreis,'>>>>9.9999') '£'.
  1580. END.
  1581. ELSE DO:
  1582. PUT CONTROL '££'.
  1583. END.
  1584. PUT CONTROL STRING(NUmsatz,'->>>>>>>>>') '£'
  1585. STRING(AUmsatz,'->>>>>>>>>') CHR(10).
  1586. END.
  1587. OUTPUT CLOSE.
  1588. RUN OPENEXCEL ( INPUT excelAppl,
  1589. INPUT DateiName,
  1590. INPUT '',
  1591. OUTPUT Ja ).
  1592. IF NOT Ja THEN DO:
  1593. RUN FEHLER ( INPUT 1040 ).
  1594. RETURN NO-APPLY.
  1595. END.
  1596. Zelle = 'A3'.
  1597. excelAppl:Range(Zelle):SELECT.
  1598. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + DatenName.
  1599. excelAppl:Application:RUN ( 'DateiEinfügen' ).
  1600. RUN KOPF ( INPUT excelAppl ).
  1601. Zelle = 'A1'.
  1602. excelAppl:Range(Zelle):SELECT.
  1603. excelAppl:Selection:ColumnWidth = 0.3.
  1604. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  1605. END.
  1606. END PROCEDURE.
  1607. /* _UIB-CODE-BLOCK-END */
  1608. &ANALYZE-RESUME
  1609. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  1610. PROCEDURE RETURN_FELD :
  1611. /*------------------------------------------------------------------------------
  1612. Purpose:
  1613. Parameters: <none>
  1614. Notes:
  1615. ------------------------------------------------------------------------------*/
  1616. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1617. DEF VAR FeldName AS CHAR NO-UNDO.
  1618. IF FMut = FALSE THEN RETURN ''.
  1619. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  1620. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  1621. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  1622. FeldName = ipHandle:NAME.
  1623. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  1624. RETURN 'TAB'.
  1625. END.
  1626. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  1627. RETURN 'TAB'.
  1628. END.
  1629. FeldName = 'rowObject.' + FeldName.
  1630. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  1631. RETURN 'TAB'.
  1632. END.
  1633. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  1634. RETURN 'TAB'.
  1635. END.
  1636. RETURN ''.
  1637. END PROCEDURE.
  1638. /* _UIB-CODE-BLOCK-END */
  1639. &ANALYZE-RESUME
  1640. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  1641. PROCEDURE updateMode :
  1642. /*------------------------------------------------------------------------------
  1643. Purpose: Super Override
  1644. Parameters:
  1645. Notes:
  1646. ------------------------------------------------------------------------------*/
  1647. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  1648. CASE pcMode:
  1649. WHEN 'updateBegin' THEN DO:
  1650. DO WITH FRAME {&FRAME-NAME}:
  1651. F_Knr :SCREEN-VALUE = ''.
  1652. F_Knr :SENSITIVE = FALSE.
  1653. F_Knr :TAB-STOP = FALSE.
  1654. F_Datum:SCREEN-VALUE = ''.
  1655. F_Datum:SENSITIVE = FALSE.
  1656. F_Datum:TAB-STOP = FALSE.
  1657. END.
  1658. END.
  1659. WHEN 'updateEnd' THEN DO:
  1660. END.
  1661. END.
  1662. RUN SUPER( INPUT pcMode).
  1663. CASE pcMode:
  1664. WHEN 'updateBegin' THEN DO:
  1665. FMut = TRUE.
  1666. END.
  1667. WHEN 'updateEnd' THEN DO:
  1668. FNeu = FALSE.
  1669. FMut = FALSE.
  1670. FCopy = FALSE.
  1671. END.
  1672. END.
  1673. END PROCEDURE.
  1674. /* _UIB-CODE-BLOCK-END */
  1675. &ANALYZE-RESUME
  1676. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  1677. PROCEDURE updateRecord :
  1678. /*------------------------------------------------------------------------------
  1679. Purpose: Super Override
  1680. Parameters:
  1681. Notes:
  1682. ------------------------------------------------------------------------------*/
  1683. DO WITH FRAME {&FRAME-NAME}:
  1684. rowObject.Artnr:SCREEN-VALUE = F_Artnr:SCREEN-VALUE.
  1685. rowObject.Proz_Betr:SCREEN-VALUE = CB_Art:SCREEN-VALUE.
  1686. IF FNeu THEN DO:
  1687. rowObject.Firma :SCREEN-VALUE = Firma.
  1688. rowObject.Knr :SCREEN-VALUE = STRING(Knr,'999999').
  1689. rowObject.Ab_Datum :MODIFIED = TRUE.
  1690. rowObject.Bis_Datum:MODIFIED = TRUE.
  1691. END.
  1692. rowObject.VP_Normal:MODIFIED = FALSE.
  1693. rowObject.Marge :MODIFIED = FALSE.
  1694. F_Wert :MODIFIED = FALSE.
  1695. lProzBetr = (IF rowObject.Proz_Betr:SCREEN-VALUE BEGINS 'P' THEN TRUE ELSE FALSE) NO-ERROR.
  1696. dMenge = DECIMAL(rowObject.Menge :SCREEN-VALUE) NO-ERROR.
  1697. vDatum = DATE(rowObject.Ab_Datum :SCREEN-VALUE) NO-ERROR.
  1698. bDatum = DATE(rowObject.Bis_Datum:SCREEN-VALUE) NO-ERROR.
  1699. IF lProzBetr THEN dWert = DECIMAL(rowObject.Wert:SCREEN-VALUE) NO-ERROR.
  1700. ELSE dWert = 0.
  1701. END.
  1702. FNeu = FALSE.
  1703. FCopy = FALSE.
  1704. RUN SUPER.
  1705. RUN REPOS_TABELLE IN hDaten NO-ERROR. /* */
  1706. END PROCEDURE.
  1707. /* _UIB-CODE-BLOCK-END */
  1708. &ANALYZE-RESUME