v-besze.w 83 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332
  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. {adecomm/appserv.i}
  8. /* Temp-Table and Buffer definitions */
  9. DEFINE TEMP-TABLE RowObject NO-UNDO
  10. {"d-besze.i"}.
  11. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
  12. /*------------------------------------------------------------------------
  13. File:
  14. Description: from viewer.w - Template for SmartDataViewer objects
  15. Input Parameters:
  16. <none>
  17. Output Parameters:
  18. <none>
  19. ------------------------------------------------------------------------*/
  20. /* This .W file was created with the Progress AppBuilder. */
  21. /*----------------------------------------------------------------------*/
  22. /* Create an unnamed pool to store all the widgets created
  23. by this procedure. This is a good default which assures
  24. that this procedure's triggers and internal procedures
  25. will execute in this procedure's storage, and that proper
  26. cleanup will occur on deletion of the procedure. */
  27. CREATE WIDGET-POOL.
  28. /* *************************** Definitions ************************** */
  29. /* Komma-Trennzeichen */
  30. /* Keyfelder werden beim Mutieren nicht "Enabled" */
  31. &Scoped-define ERSTES_FELD F_Artnr
  32. &Scoped-define LETZTES_FELD Aktion
  33. &Scoped-define KEY_FELDER F_Artnr,Inhalt,Jahr
  34. &Scoped-define NUR_LESEN Bez1,Bez2,Firma,Besnr,Preis,S_Preis,Alter_Listen_EP,L_EP_FRW,L_EP,lLotnr,lVerfall,S_Artnr
  35. &Scoped-define DISABLE_1 S_Preis_Frw,Rabatt,ZusRab,Spesen,Aktion
  36. &Scoped-define DISABLE_2 GGeb_Me,VGeb_Me,KGeb_Me,GGeb_EG,VGeb_EG,KGeb_EG
  37. &Scoped-define KOMMENTAR S_Bez1,S_Bez2
  38. { incl/viwdefinition.i }
  39. DEFINE VARIABLE iStatus AS INTEGER NO-UNDO.
  40. DEFINE VARIABLE nTotale AS DECIMAL NO-UNDO EXTENT 10.
  41. DEFINE VARIABLE lNew AS LOGICAL NO-UNDO.
  42. DEFINE VARIABLE lLeave AS LOG NO-UNDO.
  43. DEFINE VARIABLE lVorEntry AS LOG NO-UNDO.
  44. DEFINE VARIABLE iLKY AS INTEGER NO-UNDO.
  45. DEFINE VARIABLE hLastField AS HANDLE NO-UNDO.
  46. DEFINE VARIABLE cAktRowId AS CHARACTER NO-UNDO.
  47. DEFINE VARIABLE lALT-F AS LOGICAL NO-UNDO INIT FALSE.
  48. DEFINE VARIABLE hFocus AS WIDGET-HANDLE NO-UNDO.
  49. DEFINE VARIABLE cFrwLief AS CHARACTER NO-UNDO.
  50. DEFINE VARIABLE nKursLief AS DECIMAL NO-UNDO DECIMALS 4.
  51. DEFINE TEMP-TABLE tBesko LIKE Besko.
  52. DEFINE TEMP-TABLE tBesze LIKE Besze
  53. FIELD GGebinde AS CHARACTER
  54. FIELD VGebinde AS CHARACTER
  55. FIELD kGebinde AS CHARACTER
  56. FIELD iStatus AS INTEGER INIT 0.
  57. DEFINE VARIABLE htBesze AS HANDLE NO-UNDO.
  58. htBesze = TEMP-TABLE tBesze:DEFAULT-BUFFER-HANDLE.
  59. DEFINE BUFFER bArtst FOR Artst.
  60. {src/adm2/widgetprto.i}
  61. /* _UIB-CODE-BLOCK-END */
  62. &ANALYZE-RESUME
  63. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  64. /* ******************** Preprocessor Definitions ******************** */
  65. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  66. &Scoped-define DB-AWARE no
  67. &Scoped-define ADM-CONTAINER FRAME
  68. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  69. /* Include file with RowObject temp-table definition */
  70. &Scoped-define DATA-FIELD-DEFS "d-besze.i"
  71. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  72. &Scoped-define FRAME-NAME F-Main
  73. /* Standard List Definitions */
  74. &Scoped-Define ENABLED-FIELDS RowObject.Inhalt RowObject.Jahr ~
  75. RowObject.S_Artnr RowObject.S_Bez1 RowObject.S_Bez2 RowObject.GGeb_Me ~
  76. RowObject.Bez1 RowObject.VGeb_Me RowObject.KGeb_Me RowObject.S_Preis_FRW ~
  77. RowObject.lVerfall RowObject.Rabatt RowObject.lLotnr RowObject.ZusRab ~
  78. RowObject.Spesen RowObject.Aktion RowObject.Bez2 RowObject.GGeb_EG ~
  79. RowObject.VGeb_EG RowObject.KGeb_EG RowObject.MRuek RowObject.Preis ~
  80. RowObject.S_Preis RowObject.Alter_Listen_EP RowObject.L_EP_FRW ~
  81. RowObject.L_EP RowObject.Netto_Bas RowObject.Spesen_Bas
  82. &Scoped-define ENABLED-TABLES RowObject
  83. &Scoped-define FIRST-ENABLED-TABLE RowObject
  84. &Scoped-Define ENABLED-OBJECTS F_Artnr RECT-2 RECT-3 RECT-4
  85. &Scoped-Define DISPLAYED-FIELDS RowObject.Inhalt RowObject.Jahr ~
  86. RowObject.S_Artnr RowObject.S_Bez1 RowObject.S_Bez2 RowObject.GGeb_Me ~
  87. RowObject.Bez1 RowObject.VGeb_Me RowObject.KGeb_Me RowObject.S_Preis_FRW ~
  88. RowObject.lVerfall RowObject.Rabatt RowObject.lLotnr RowObject.ZusRab ~
  89. RowObject.Besnr RowObject.Firma RowObject.Spesen RowObject.Aktion ~
  90. RowObject.FRW RowObject.MGeli RowObject.Kurs RowObject.Pos ~
  91. RowObject.VGeb_Cd RowObject.KGeb_Cd RowObject.Artnr RowObject.GGeb_Cd ~
  92. RowObject.MBest RowObject.Eingang RowObject.Bez2 RowObject.GGebinde ~
  93. RowObject.VGebinde RowObject.KGebinde RowObject.GGeb_EG RowObject.VGeb_EG ~
  94. RowObject.KGeb_EG RowObject.MRuek RowObject.Preis RowObject.S_Preis ~
  95. RowObject.Alter_Listen_EP RowObject.L_EP_FRW RowObject.L_EP ~
  96. RowObject.Bestand RowObject.Netto RowObject.Netto_Bas RowObject.SpesenBetr ~
  97. RowObject.Spesen_Bas
  98. &Scoped-define DISPLAYED-TABLES RowObject
  99. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  100. &Scoped-Define DISPLAYED-OBJECTS F_Artnr CB_Waehrung
  101. /* Custom List Definitions */
  102. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  103. &Scoped-define List-4 RowObject.GGeb_EG RowObject.VGeb_EG RowObject.KGeb_EG
  104. &Scoped-define List-5 RowObject.S_Bez1 RowObject.S_Bez2 RowObject.GGeb_Me ~
  105. RowObject.VGeb_Me RowObject.KGeb_Me
  106. &Scoped-define List-6 RowObject.S_Preis_FRW RowObject.Rabatt ~
  107. RowObject.ZusRab RowObject.Spesen RowObject.Aktion RowObject.Preis
  108. /* _UIB-PREPROCESSOR-BLOCK-END */
  109. &ANALYZE-RESUME
  110. /* ************************ Function Prototypes ********************** */
  111. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getArtikel vTableWin
  112. FUNCTION getArtikel RETURNS RECID
  113. ( ipiArt AS INTEGER, ipiRecid AS RECID, ipiArtnr AS INTEGER, ipiInhalt AS INTEGER, ipiJahr AS INTEGER ) FORWARD.
  114. /* _UIB-CODE-BLOCK-END */
  115. &ANALYZE-RESUME
  116. /* *********************** Control Definitions ********************** */
  117. /* Definitions of the field level widgets */
  118. DEFINE VARIABLE CB_Waehrung AS CHARACTER FORMAT "X(256)":U
  119. LABEL "Währung"
  120. VIEW-AS COMBO-BOX INNER-LINES 5
  121. LIST-ITEM-PAIRS "Item 1","Item 1"
  122. DROP-DOWN-LIST
  123. SIZE 40 BY 1
  124. BGCOLOR 15 NO-UNDO.
  125. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "X(256)":U
  126. LABEL "Artikel"
  127. VIEW-AS FILL-IN NATIVE
  128. SIZE 14 BY 1
  129. BGCOLOR 15 NO-UNDO.
  130. DEFINE RECTANGLE RECT-2
  131. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  132. SIZE 204 BY 13.33.
  133. DEFINE RECTANGLE RECT-3
  134. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  135. SIZE 204 BY .1.
  136. DEFINE RECTANGLE RECT-4
  137. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  138. SIZE 204 BY .1.
  139. /* ************************ Frame Definitions *********************** */
  140. DEFINE FRAME F-Main
  141. F_Artnr AT ROW 1.52 COL 9 COLON-ALIGNED WIDGET-ID 114
  142. RowObject.Inhalt AT ROW 1.52 COL 24 COLON-ALIGNED NO-LABEL WIDGET-ID 16
  143. VIEW-AS FILL-IN NATIVE
  144. SIZE 8 BY 1
  145. BGCOLOR 15
  146. RowObject.Jahr AT ROW 1.52 COL 33 COLON-ALIGNED NO-LABEL WIDGET-ID 18
  147. VIEW-AS FILL-IN NATIVE
  148. SIZE 8 BY 1
  149. BGCOLOR 15
  150. RowObject.S_Artnr AT ROW 1.52 COL 92 COLON-ALIGNED WIDGET-ID 30
  151. LABEL "Seine Artnr"
  152. VIEW-AS FILL-IN NATIVE
  153. SIZE 18 BY 1
  154. BGCOLOR 15
  155. RowObject.S_Bez1 AT ROW 1.52 COL 114 COLON-ALIGNED WIDGET-ID 32
  156. LABEL "/"
  157. VIEW-AS FILL-IN NATIVE
  158. SIZE 32 BY 1
  159. BGCOLOR 15
  160. RowObject.S_Bez2 AT ROW 2.52 COL 114 COLON-ALIGNED NO-LABEL WIDGET-ID 34
  161. VIEW-AS FILL-IN NATIVE
  162. SIZE 32 BY 1
  163. BGCOLOR 15
  164. RowObject.GGeb_Me AT ROW 5 COL 60 COLON-ALIGNED NO-LABEL WIDGET-ID 66
  165. VIEW-AS FILL-IN NATIVE
  166. SIZE 17 BY 1
  167. BGCOLOR 15
  168. RowObject.Bez1 AT ROW 1.52 COL 45 COLON-ALIGNED WIDGET-ID 10
  169. LABEL "/"
  170. VIEW-AS FILL-IN NATIVE
  171. SIZE 32 BY 1
  172. BGCOLOR 15 NO-TAB-STOP
  173. RowObject.VGeb_Me AT ROW 5 COL 97 COLON-ALIGNED NO-LABEL WIDGET-ID 74
  174. VIEW-AS FILL-IN NATIVE
  175. SIZE 17 BY 1
  176. BGCOLOR 15
  177. RowObject.KGeb_Me AT ROW 5 COL 134 COLON-ALIGNED NO-LABEL WIDGET-ID 70
  178. VIEW-AS FILL-IN NATIVE
  179. SIZE 17 BY 1
  180. BGCOLOR 15
  181. RowObject.S_Preis_FRW AT ROW 8 COL 18 COLON-ALIGNED WIDGET-ID 38
  182. LABEL "Sein Preis FRW"
  183. VIEW-AS FILL-IN NATIVE
  184. SIZE 25 BY 1
  185. BGCOLOR 15
  186. RowObject.lVerfall AT ROW 1.52 COL 155 WIDGET-ID 84
  187. LABEL "MHD"
  188. VIEW-AS TOGGLE-BOX
  189. SIZE 15 BY 1 NO-TAB-STOP
  190. RowObject.Rabatt AT ROW 8 COL 66.2 COLON-ALIGNED WIDGET-ID 26
  191. VIEW-AS FILL-IN NATIVE
  192. SIZE 11 BY 1
  193. BGCOLOR 15
  194. RowObject.lLotnr AT ROW 1.52 COL 175 WIDGET-ID 82
  195. LABEL "Lot/Charge"
  196. VIEW-AS TOGGLE-BOX
  197. SIZE 16 BY 1 NO-TAB-STOP
  198. RowObject.ZusRab AT ROW 8 COL 105 COLON-ALIGNED WIDGET-ID 62
  199. VIEW-AS FILL-IN NATIVE
  200. SIZE 11 BY 1
  201. BGCOLOR 15
  202. RowObject.Besnr AT ROW 2 COL 100 COLON-ALIGNED WIDGET-ID 8
  203. VIEW-AS FILL-IN NATIVE
  204. SIZE 4 BY 1
  205. BGCOLOR 15 NO-TAB-STOP
  206. RowObject.Firma AT ROW 2 COL 100 COLON-ALIGNED WIDGET-ID 14
  207. VIEW-AS FILL-IN NATIVE
  208. SIZE 4 BY 1
  209. BGCOLOR 15 NO-TAB-STOP
  210. RowObject.Spesen AT ROW 8 COL 133 COLON-ALIGNED WIDGET-ID 28
  211. LABEL "Spesen %"
  212. VIEW-AS FILL-IN NATIVE
  213. SIZE 11 BY 1
  214. BGCOLOR 15
  215. RowObject.Aktion AT ROW 8 COL 181 WIDGET-ID 2
  216. LABEL "Aktion"
  217. VIEW-AS TOGGLE-BOX
  218. SIZE 15 BY 1
  219. RowObject.FRW AT ROW 2 COL 100 COLON-ALIGNED WIDGET-ID 78
  220. VIEW-AS FILL-IN NATIVE
  221. SIZE 4 BY 1
  222. BGCOLOR 15 NO-TAB-STOP
  223. RowObject.MGeli AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 110
  224. VIEW-AS FILL-IN NATIVE
  225. SIZE 4 BY 1
  226. BGCOLOR 15 NO-TAB-STOP
  227. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  228. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  229. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  230. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */
  231. DEFINE FRAME F-Main
  232. RowObject.Kurs AT ROW 2 COL 100 COLON-ALIGNED WIDGET-ID 80
  233. VIEW-AS FILL-IN NATIVE
  234. SIZE 4 BY 1
  235. BGCOLOR 15 NO-TAB-STOP
  236. RowObject.Pos AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 96
  237. VIEW-AS FILL-IN NATIVE
  238. SIZE 4 BY 1
  239. BGCOLOR 15 NO-TAB-STOP
  240. RowObject.VGeb_Cd AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 106
  241. VIEW-AS FILL-IN NATIVE
  242. SIZE 4 BY 1
  243. BGCOLOR 15 NO-TAB-STOP
  244. RowObject.KGeb_Cd AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 104
  245. VIEW-AS FILL-IN NATIVE
  246. SIZE 4 BY 1
  247. BGCOLOR 15 NO-TAB-STOP
  248. RowObject.Artnr AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 6
  249. VIEW-AS FILL-IN NATIVE
  250. SIZE 4 BY 1
  251. BGCOLOR 15 NO-TAB-STOP
  252. RowObject.GGeb_Cd AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 102
  253. VIEW-AS FILL-IN NATIVE
  254. SIZE 4 BY 1
  255. BGCOLOR 15 NO-TAB-STOP
  256. RowObject.MBest AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 108
  257. VIEW-AS FILL-IN NATIVE
  258. SIZE 4 BY 1
  259. BGCOLOR 15 NO-TAB-STOP
  260. RowObject.Eingang AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 122
  261. VIEW-AS FILL-IN NATIVE
  262. SIZE 4 BY 1
  263. BGCOLOR 15 NO-TAB-STOP
  264. RowObject.Bez2 AT ROW 2.52 COL 45 COLON-ALIGNED NO-LABEL WIDGET-ID 12
  265. VIEW-AS FILL-IN NATIVE
  266. SIZE 32 BY 1
  267. BGCOLOR 15 NO-TAB-STOP
  268. RowObject.GGebinde AT ROW 4 COL 78 RIGHT-ALIGNED NO-LABEL WIDGET-ID 64
  269. VIEW-AS FILL-IN
  270. SIZE 17 BY 1
  271. FONT 6 NO-TAB-STOP
  272. RowObject.VGebinde AT ROW 4 COL 115 RIGHT-ALIGNED NO-LABEL WIDGET-ID 72
  273. VIEW-AS FILL-IN
  274. SIZE 17 BY 1
  275. FONT 6 NO-TAB-STOP
  276. RowObject.KGebinde AT ROW 4 COL 152 RIGHT-ALIGNED NO-LABEL WIDGET-ID 68
  277. VIEW-AS FILL-IN
  278. SIZE 17 BY 1
  279. FONT 6 NO-TAB-STOP
  280. RowObject.GGeb_EG AT ROW 6 COL 60 COLON-ALIGNED NO-LABEL WIDGET-ID 116
  281. VIEW-AS FILL-IN NATIVE
  282. SIZE 17 BY 1
  283. BGCOLOR 15 NO-TAB-STOP
  284. RowObject.VGeb_EG AT ROW 6 COL 97 COLON-ALIGNED NO-LABEL WIDGET-ID 120
  285. VIEW-AS FILL-IN NATIVE
  286. SIZE 17 BY 1
  287. BGCOLOR 15 NO-TAB-STOP
  288. RowObject.KGeb_EG AT ROW 6 COL 134 COLON-ALIGNED NO-LABEL WIDGET-ID 118
  289. VIEW-AS FILL-IN NATIVE
  290. SIZE 17 BY 1
  291. BGCOLOR 15 NO-TAB-STOP
  292. RowObject.MRuek AT ROW 6 COL 170 COLON-ALIGNED WIDGET-ID 112
  293. LABEL "Rückstand" FORMAT "zzz,zz9.99-"
  294. VIEW-AS FILL-IN NATIVE
  295. SIZE 17 BY 1
  296. BGCOLOR 14 NO-TAB-STOP
  297. RowObject.Preis AT ROW 8 COL 153 COLON-ALIGNED WIDGET-ID 24
  298. VIEW-AS FILL-IN NATIVE
  299. SIZE 18 BY 1
  300. BGCOLOR 15 NO-TAB-STOP
  301. RowObject.S_Preis AT ROW 10 COL 18 COLON-ALIGNED WIDGET-ID 36
  302. LABEL "Sein Preis" FORMAT "zzz,zzz,zz9.9999"
  303. VIEW-AS FILL-IN NATIVE
  304. SIZE 25 BY 1
  305. BGCOLOR 15 NO-TAB-STOP
  306. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  307. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  308. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  309. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */
  310. DEFINE FRAME F-Main
  311. RowObject.Alter_Listen_EP AT ROW 10 COL 58.4 COLON-ALIGNED WIDGET-ID 4
  312. LABEL "Listen-EP alt"
  313. VIEW-AS FILL-IN NATIVE
  314. SIZE 19 BY 1
  315. BGCOLOR 15 NO-TAB-STOP
  316. RowObject.L_EP_FRW AT ROW 10 COL 91.2 COLON-ALIGNED WIDGET-ID 22
  317. LABEL "L-EP (Frw)"
  318. VIEW-AS FILL-IN NATIVE
  319. SIZE 25 BY 1
  320. BGCOLOR 15 NO-TAB-STOP
  321. RowObject.L_EP AT ROW 10 COL 125 COLON-ALIGNED WIDGET-ID 20
  322. LABEL "L-EP"
  323. VIEW-AS FILL-IN NATIVE
  324. SIZE 19 BY 1
  325. BGCOLOR 15 NO-TAB-STOP
  326. RowObject.Bestand AT ROW 12 COL 67.8 COLON-ALIGNED WIDGET-ID 76
  327. VIEW-AS FILL-IN NATIVE
  328. SIZE 23 BY 1
  329. BGCOLOR 14 NO-TAB-STOP
  330. CB_Waehrung AT ROW 12 COL 103.8 COLON-ALIGNED WIDGET-ID 90 NO-TAB-STOP
  331. RowObject.Netto AT ROW 12 COL 163 COLON-ALIGNED WIDGET-ID 86
  332. VIEW-AS FILL-IN NATIVE
  333. SIZE 17 BY 1
  334. BGCOLOR 14 NO-TAB-STOP
  335. RowObject.Netto_Bas AT ROW 12 COL 183 COLON-ALIGNED WIDGET-ID 92
  336. LABEL "/"
  337. VIEW-AS FILL-IN NATIVE
  338. SIZE 17 BY 1
  339. BGCOLOR 14 NO-TAB-STOP
  340. RowObject.SpesenBetr AT ROW 13 COL 163 COLON-ALIGNED WIDGET-ID 88
  341. VIEW-AS FILL-IN NATIVE
  342. SIZE 17 BY 1
  343. BGCOLOR 14 NO-TAB-STOP
  344. RowObject.Spesen_Bas AT ROW 13 COL 183 COLON-ALIGNED WIDGET-ID 94
  345. LABEL "/"
  346. VIEW-AS FILL-IN NATIVE
  347. SIZE 17 BY 1
  348. BGCOLOR 14 NO-TAB-STOP
  349. RECT-2 AT ROW 1.24 COL 2 WIDGET-ID 40
  350. RECT-3 AT ROW 7.33 COL 2 WIDGET-ID 98
  351. RECT-4 AT ROW 9.43 COL 2 WIDGET-ID 100
  352. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  353. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  354. AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100.
  355. /* *********************** Procedure Settings ************************ */
  356. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  357. /* Settings for THIS-PROCEDURE
  358. Type: SmartDataViewer
  359. Data Source: "d-besze.w"
  360. Allow: Basic,DB-Fields,Smart
  361. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  362. Frames: 1
  363. Add Fields to: Neither
  364. Other Settings: PERSISTENT-ONLY COMPILE APPSERVER
  365. Temp-Tables and Buffers:
  366. TABLE: RowObject D "?" NO-UNDO
  367. ADDITIONAL-FIELDS:
  368. {d-besze.i}
  369. END-FIELDS.
  370. END-TABLES.
  371. */
  372. /* This procedure should always be RUN PERSISTENT. Report the error, */
  373. /* then cleanup and return. */
  374. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  375. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  376. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  377. RETURN.
  378. END.
  379. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  380. /* ************************* Create Window ************************** */
  381. &ANALYZE-SUSPEND _CREATE-WINDOW
  382. /* DESIGN Window definition (used by the UIB)
  383. CREATE WINDOW vTableWin ASSIGN
  384. HEIGHT = 13.81
  385. WIDTH = 206.
  386. /* END WINDOW DEFINITION */
  387. */
  388. &ANALYZE-RESUME
  389. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  390. /* ************************* Included-Libraries *********************** */
  391. {src/adm2/viewer.i}
  392. /* _UIB-CODE-BLOCK-END */
  393. &ANALYZE-RESUME
  394. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  395. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  396. /* SETTINGS FOR WINDOW vTableWin
  397. VISIBLE,,RUN-PERSISTENT */
  398. /* SETTINGS FOR FRAME F-Main
  399. NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */
  400. ASSIGN
  401. FRAME F-Main:SCROLLABLE = FALSE
  402. FRAME F-Main:HIDDEN = TRUE.
  403. /* SETTINGS FOR TOGGLE-BOX RowObject.Aktion IN FRAME F-Main
  404. 6 EXP-LABEL */
  405. /* SETTINGS FOR FILL-IN RowObject.Alter_Listen_EP IN FRAME F-Main
  406. EXP-LABEL */
  407. ASSIGN
  408. RowObject.Alter_Listen_EP:READ-ONLY IN FRAME F-Main = TRUE.
  409. /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main
  410. NO-ENABLE */
  411. ASSIGN
  412. RowObject.Artnr:HIDDEN IN FRAME F-Main = TRUE
  413. RowObject.Artnr:READ-ONLY IN FRAME F-Main = TRUE.
  414. /* SETTINGS FOR FILL-IN RowObject.Besnr IN FRAME F-Main
  415. NO-ENABLE */
  416. ASSIGN
  417. RowObject.Besnr:HIDDEN IN FRAME F-Main = TRUE
  418. RowObject.Besnr:READ-ONLY IN FRAME F-Main = TRUE.
  419. /* SETTINGS FOR FILL-IN RowObject.Bestand IN FRAME F-Main
  420. NO-ENABLE */
  421. ASSIGN
  422. RowObject.Bestand:READ-ONLY IN FRAME F-Main = TRUE.
  423. /* SETTINGS FOR FILL-IN RowObject.Bez1 IN FRAME F-Main
  424. EXP-LABEL */
  425. ASSIGN
  426. RowObject.Bez1:READ-ONLY IN FRAME F-Main = TRUE.
  427. ASSIGN
  428. RowObject.Bez2:READ-ONLY IN FRAME F-Main = TRUE.
  429. /* SETTINGS FOR COMBO-BOX CB_Waehrung IN FRAME F-Main
  430. NO-ENABLE */
  431. /* SETTINGS FOR FILL-IN RowObject.Eingang IN FRAME F-Main
  432. NO-ENABLE */
  433. ASSIGN
  434. RowObject.Eingang:HIDDEN IN FRAME F-Main = TRUE
  435. RowObject.Eingang:READ-ONLY IN FRAME F-Main = TRUE.
  436. /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main
  437. NO-ENABLE */
  438. ASSIGN
  439. RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE
  440. RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE.
  441. /* SETTINGS FOR FILL-IN RowObject.FRW IN FRAME F-Main
  442. NO-ENABLE */
  443. ASSIGN
  444. RowObject.FRW:HIDDEN IN FRAME F-Main = TRUE
  445. RowObject.FRW:READ-ONLY IN FRAME F-Main = TRUE.
  446. /* SETTINGS FOR FILL-IN RowObject.GGebinde IN FRAME F-Main
  447. NO-ENABLE ALIGN-R EXP-LABEL */
  448. ASSIGN
  449. RowObject.GGebinde:READ-ONLY IN FRAME F-Main = TRUE.
  450. /* SETTINGS FOR FILL-IN RowObject.GGeb_Cd IN FRAME F-Main
  451. NO-ENABLE */
  452. ASSIGN
  453. RowObject.GGeb_Cd:HIDDEN IN FRAME F-Main = TRUE
  454. RowObject.GGeb_Cd:READ-ONLY IN FRAME F-Main = TRUE.
  455. /* SETTINGS FOR FILL-IN RowObject.GGeb_EG IN FRAME F-Main
  456. 4 */
  457. ASSIGN
  458. RowObject.GGeb_EG:READ-ONLY IN FRAME F-Main = TRUE.
  459. /* SETTINGS FOR FILL-IN RowObject.GGeb_Me IN FRAME F-Main
  460. 5 */
  461. /* SETTINGS FOR FILL-IN RowObject.KGebinde IN FRAME F-Main
  462. NO-ENABLE ALIGN-R */
  463. ASSIGN
  464. RowObject.KGebinde:READ-ONLY IN FRAME F-Main = TRUE.
  465. /* SETTINGS FOR FILL-IN RowObject.KGeb_Cd IN FRAME F-Main
  466. NO-ENABLE */
  467. ASSIGN
  468. RowObject.KGeb_Cd:HIDDEN IN FRAME F-Main = TRUE
  469. RowObject.KGeb_Cd:READ-ONLY IN FRAME F-Main = TRUE.
  470. /* SETTINGS FOR FILL-IN RowObject.KGeb_EG IN FRAME F-Main
  471. 4 */
  472. ASSIGN
  473. RowObject.KGeb_EG:READ-ONLY IN FRAME F-Main = TRUE.
  474. /* SETTINGS FOR FILL-IN RowObject.KGeb_Me IN FRAME F-Main
  475. 5 */
  476. /* SETTINGS FOR FILL-IN RowObject.Kurs IN FRAME F-Main
  477. NO-ENABLE */
  478. ASSIGN
  479. RowObject.Kurs:HIDDEN IN FRAME F-Main = TRUE
  480. RowObject.Kurs:READ-ONLY IN FRAME F-Main = TRUE.
  481. /* SETTINGS FOR TOGGLE-BOX RowObject.lLotnr IN FRAME F-Main
  482. EXP-LABEL */
  483. /* SETTINGS FOR TOGGLE-BOX RowObject.lVerfall IN FRAME F-Main
  484. EXP-LABEL */
  485. /* SETTINGS FOR FILL-IN RowObject.L_EP IN FRAME F-Main
  486. EXP-LABEL */
  487. ASSIGN
  488. RowObject.L_EP:READ-ONLY IN FRAME F-Main = TRUE.
  489. /* SETTINGS FOR FILL-IN RowObject.L_EP_FRW IN FRAME F-Main
  490. EXP-LABEL */
  491. ASSIGN
  492. RowObject.L_EP_FRW:READ-ONLY IN FRAME F-Main = TRUE.
  493. /* SETTINGS FOR FILL-IN RowObject.MBest IN FRAME F-Main
  494. NO-ENABLE */
  495. ASSIGN
  496. RowObject.MBest:HIDDEN IN FRAME F-Main = TRUE
  497. RowObject.MBest:READ-ONLY IN FRAME F-Main = TRUE.
  498. /* SETTINGS FOR FILL-IN RowObject.MGeli IN FRAME F-Main
  499. NO-ENABLE */
  500. ASSIGN
  501. RowObject.MGeli:HIDDEN IN FRAME F-Main = TRUE
  502. RowObject.MGeli:READ-ONLY IN FRAME F-Main = TRUE.
  503. /* SETTINGS FOR FILL-IN RowObject.MRuek IN FRAME F-Main
  504. EXP-LABEL EXP-FORMAT */
  505. ASSIGN
  506. RowObject.MRuek:READ-ONLY IN FRAME F-Main = TRUE.
  507. /* SETTINGS FOR FILL-IN RowObject.Netto IN FRAME F-Main
  508. NO-ENABLE */
  509. ASSIGN
  510. RowObject.Netto:READ-ONLY IN FRAME F-Main = TRUE.
  511. /* SETTINGS FOR FILL-IN RowObject.Netto_Bas IN FRAME F-Main
  512. EXP-LABEL */
  513. ASSIGN
  514. RowObject.Netto_Bas:READ-ONLY IN FRAME F-Main = TRUE.
  515. /* SETTINGS FOR FILL-IN RowObject.Pos IN FRAME F-Main
  516. NO-ENABLE */
  517. ASSIGN
  518. RowObject.Pos:HIDDEN IN FRAME F-Main = TRUE
  519. RowObject.Pos:READ-ONLY IN FRAME F-Main = TRUE.
  520. /* SETTINGS FOR FILL-IN RowObject.Preis IN FRAME F-Main
  521. 6 */
  522. ASSIGN
  523. RowObject.Preis:READ-ONLY IN FRAME F-Main = TRUE.
  524. /* SETTINGS FOR FILL-IN RowObject.Rabatt IN FRAME F-Main
  525. 6 */
  526. /* SETTINGS FOR FILL-IN RowObject.Spesen IN FRAME F-Main
  527. 6 EXP-LABEL */
  528. /* SETTINGS FOR FILL-IN RowObject.SpesenBetr IN FRAME F-Main
  529. NO-ENABLE */
  530. ASSIGN
  531. RowObject.SpesenBetr:READ-ONLY IN FRAME F-Main = TRUE.
  532. /* SETTINGS FOR FILL-IN RowObject.Spesen_Bas IN FRAME F-Main
  533. EXP-LABEL */
  534. ASSIGN
  535. RowObject.Spesen_Bas:READ-ONLY IN FRAME F-Main = TRUE.
  536. /* SETTINGS FOR FILL-IN RowObject.S_Artnr IN FRAME F-Main
  537. EXP-LABEL */
  538. ASSIGN
  539. RowObject.S_Artnr:READ-ONLY IN FRAME F-Main = TRUE.
  540. /* SETTINGS FOR FILL-IN RowObject.S_Bez1 IN FRAME F-Main
  541. 5 EXP-LABEL */
  542. /* SETTINGS FOR FILL-IN RowObject.S_Bez2 IN FRAME F-Main
  543. 5 */
  544. /* SETTINGS FOR FILL-IN RowObject.S_Preis IN FRAME F-Main
  545. EXP-LABEL EXP-FORMAT */
  546. ASSIGN
  547. RowObject.S_Preis:READ-ONLY IN FRAME F-Main = TRUE.
  548. /* SETTINGS FOR FILL-IN RowObject.S_Preis_FRW IN FRAME F-Main
  549. 6 EXP-LABEL */
  550. /* SETTINGS FOR FILL-IN RowObject.VGebinde IN FRAME F-Main
  551. NO-ENABLE ALIGN-R */
  552. ASSIGN
  553. RowObject.VGebinde:READ-ONLY IN FRAME F-Main = TRUE.
  554. /* SETTINGS FOR FILL-IN RowObject.VGeb_Cd IN FRAME F-Main
  555. NO-ENABLE */
  556. ASSIGN
  557. RowObject.VGeb_Cd:HIDDEN IN FRAME F-Main = TRUE
  558. RowObject.VGeb_Cd:READ-ONLY IN FRAME F-Main = TRUE.
  559. /* SETTINGS FOR FILL-IN RowObject.VGeb_EG IN FRAME F-Main
  560. 4 */
  561. ASSIGN
  562. RowObject.VGeb_EG:READ-ONLY IN FRAME F-Main = TRUE.
  563. /* SETTINGS FOR FILL-IN RowObject.VGeb_Me IN FRAME F-Main
  564. 5 */
  565. /* SETTINGS FOR FILL-IN RowObject.ZusRab IN FRAME F-Main
  566. 6 */
  567. /* _RUN-TIME-ATTRIBUTES-END */
  568. &ANALYZE-RESUME
  569. /* Setting information for Queries and Browse Widgets fields */
  570. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  571. /* Query rebuild information for FRAME F-Main
  572. _Options = "NO-LOCK"
  573. _Query is NOT OPENED
  574. */ /* FRAME F-Main */
  575. &ANALYZE-RESUME
  576. /* ************************ Control Triggers ************************ */
  577. &Scoped-define SELF-NAME RowObject.Aktion
  578. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Aktion vTableWin
  579. ON VALUE-CHANGED OF RowObject.Aktion IN FRAME F-Main /* Aktion */
  580. DO:
  581. IF NOT FMut THEN SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN 'J' ELSE 'N').
  582. IF lNew THEN SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN 'J' ELSE 'N').
  583. END.
  584. /* _UIB-CODE-BLOCK-END */
  585. &ANALYZE-RESUME
  586. &Scoped-define SELF-NAME F_Artnr
  587. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr vTableWin
  588. ON ALT-F OF F_Artnr IN FRAME F-Main /* Artikel */
  589. DO:
  590. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  591. DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO.
  592. DEFINE VARIABLE cSuch AS CHARACTER NO-UNDO.
  593. DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
  594. DEFINE VARIABLE iBesnr AS INTEGER NO-UNDO.
  595. DEFINE BUFFER bBesko FOR Besko.
  596. IF NOT lNew THEN RETURN.
  597. iBesnr = INTEGER(rowObject.Besnr:SCREEN-VALUE).
  598. FIND bBesko NO-LOCK
  599. WHERE bBesko.Firma = Firma
  600. AND bBesko.Besnr = iBesnr NO-ERROR.
  601. iKnr = bBesko.Knr.
  602. cSuch = SUBSTITUTE('BEST,&1;&2', iKnr, F_Artnr:SCREEN-VALUE ).
  603. RUN 'g-suchen-artikel.w':U ( cSuch, OUTPUT iRecid ) NO-ERROR.
  604. IF iRecid = ? OR
  605. iRecid = 0 THEN
  606. DO:
  607. /* APPLY 'ENTRY' TO F_Artnr.*/
  608. RETURN 'ERROR'.
  609. END.
  610. RUN ARTIKEL_DEFINIERT( iRecid, OUTPUT iRetVal ).
  611. IF iRetVal > 0 THEN
  612. DO:
  613. APPLY 'ENTRY' TO F_Artnr.
  614. RETURN 'APPLY'.
  615. END.
  616. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid.
  617. ASSIGN
  618. rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  619. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  620. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr)
  621. F_Artnr :SCREEN-VALUE = STRING(bArtst.Artnr).
  622. lALT-F = TRUE.
  623. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  624. RETURN NO-APPLY.
  625. END.
  626. /* _UIB-CODE-BLOCK-END */
  627. &ANALYZE-RESUME
  628. &Scoped-define SELF-NAME RowObject.lLotnr
  629. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.lLotnr vTableWin
  630. ON VALUE-CHANGED OF RowObject.lLotnr IN FRAME F-Main /* Lot/Charge */
  631. DO:
  632. SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN STRING(TRUE) ELSE STRING(FALSE)).
  633. END.
  634. /* _UIB-CODE-BLOCK-END */
  635. &ANALYZE-RESUME
  636. &Scoped-define SELF-NAME RowObject.lVerfall
  637. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.lVerfall vTableWin
  638. ON VALUE-CHANGED OF RowObject.lVerfall IN FRAME F-Main /* MHD */
  639. DO:
  640. SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN STRING(TRUE) ELSE STRING(FALSE)).
  641. END.
  642. /* _UIB-CODE-BLOCK-END */
  643. &ANALYZE-RESUME
  644. &Scoped-define SELF-NAME RowObject.S_Artnr
  645. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.S_Artnr vTableWin
  646. ON LEFT-MOUSE-DBLCLICK OF RowObject.S_Artnr IN FRAME F-Main /* Seine Artnr */
  647. DO:
  648. SELF:READ-ONLY = FALSE.
  649. END.
  650. /* _UIB-CODE-BLOCK-END */
  651. &ANALYZE-RESUME
  652. &UNDEFINE SELF-NAME
  653. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  654. /* *************************** Main Block *************************** */
  655. { incl/viwmainblock.i }
  656. ON 'ENTRY' OF F_Artnr IN FRAME {&FRAME-NAME}
  657. DO:
  658. IF lNew THEN
  659. DO:
  660. SELF:SET-SELECTION (1, 9999).
  661. RETURN.
  662. END.
  663. IF FNeu THEN
  664. DO:
  665. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  666. RETURN NO-APPLY.
  667. END.
  668. IF FMut THEN
  669. DO:
  670. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  671. RETURN NO-APPLY.
  672. END.
  673. APPLY 'U1'.
  674. RETURN NO-APPLY.
  675. END.
  676. ON 'ENTRY' OF rowObject.Inhalt IN FRAME {&FRAME-NAME}
  677. DO:
  678. IF lNew THEN
  679. DO:
  680. SELF:SET-SELECTION (1, 9999).
  681. RETURN.
  682. END.
  683. IF FNeu THEN
  684. DO:
  685. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  686. RETURN NO-APPLY.
  687. END.
  688. IF FMut THEN
  689. DO:
  690. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  691. RETURN NO-APPLY.
  692. END.
  693. APPLY 'U1'.
  694. RETURN NO-APPLY.
  695. END.
  696. ON 'ENTRY' OF rowObject.Jahr IN FRAME {&FRAME-NAME}
  697. DO:
  698. IF lNew THEN
  699. DO:
  700. SELF:SET-SELECTION (1, 9999).
  701. RETURN.
  702. END.
  703. IF FNeu THEN
  704. DO:
  705. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  706. RETURN NO-APPLY.
  707. END.
  708. IF FMut THEN
  709. DO:
  710. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  711. RETURN NO-APPLY.
  712. END.
  713. APPLY 'U1'.
  714. RETURN NO-APPLY.
  715. END.
  716. ON 'ENTRY' OF rowObject.GGeb_Me IN FRAME {&FRAME-NAME}
  717. DO:
  718. IF NOT FMut THEN RETURN.
  719. FIND FIRST tBesko.
  720. IF tBesko.Best_Sta = 3 THEN
  721. DO:
  722. APPLY 'ENTRY' TO rowObject.S_Preis_FRW.
  723. RETURN NO-APPLY.
  724. END.
  725. DEFINE VARIABLE cGeb_Cd AS CHAR NO-UNDO.
  726. cGeb_Cd = rowObject.GGeb_Cd:SCREEN-VALUE.
  727. FIND GGebinde NO-LOCK
  728. WHERE GGebinde.FIrma = Firma
  729. AND GGebinde.Geb_Cd = cGeb_Cd NO-ERROR.
  730. IF NOT AVAILABLE GGebinde OR
  731. GGebinde.Inhalt = 0 THEN
  732. DO:
  733. APPLY 'TAB' TO SELF.
  734. RETURN NO-APPLY.
  735. END.
  736. END.
  737. ON 'VALUE-CHANGED':U OF FRAME {&FRAME-NAME} ANYWHERE
  738. DO:
  739. CASE SELF:NAME:
  740. WHEN 'S_Preis_Frw' OR
  741. WHEN 'Rabatt' OR
  742. WHEN 'ZusRab' OR
  743. WHEN 'Spesen' THEN
  744. DO:
  745. RUN RECHNE_PREIS.
  746. END.
  747. END CASE.
  748. END.
  749. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  750. RUN initializeObject.
  751. &ENDIF
  752. /************************ INTERNAL PROCEDURES ********************/
  753. /* _UIB-CODE-BLOCK-END */
  754. &ANALYZE-RESUME
  755. /* ********************** Internal Procedures *********************** */
  756. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  757. PROCEDURE addRecord :
  758. /* ------------------------------------------------------------------------------ */
  759. /* Purpose: */
  760. /* Parameters: <none> */
  761. /* Notes: */
  762. /* ------------------------------------------------------------------------------ */
  763. DEFINE VARIABLE cRowId AS CHARACTER NO-UNDO.
  764. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  765. DEFINE VARIABLE iBesnr AS INTEGER NO-UNDO.
  766. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  767. DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
  768. DEFINE VARIABLE lJa AS LOG NO-UNDO.
  769. DEFINE BUFFER bBesko FOR Besko.
  770. PUBLISH 'GET_CURRENT_BESKO' ( OUTPUT iRecid, OUTPUT iBesnr ).
  771. DO WITH FRAME {&FRAME-NAME}:
  772. IF iBesnr = 0 THEN
  773. DO:
  774. RUN TOOLBAR IN hKontainer ( 'ABBRUCH' ).
  775. RUN TOOLBAR IN hKontainer ( 'CANCEL' ).
  776. RETURN NO-APPLY.
  777. END.
  778. END.
  779. FIND bBesko NO-LOCK
  780. WHERE bBesko.Firma = Firma
  781. AND bBesko.Besnr = iBesnr.
  782. IF bBesko.Best_Sta > 2 THEN
  783. DO:
  784. RELEASE bBesko.
  785. RUN TOOLBAR IN hKontainer ( 'ABBRUCH' ).
  786. RUN TOOLBAR IN hKontainer ( 'CANCEL' ).
  787. RETURN NO-APPLY.
  788. END.
  789. EMPTY TEMP-TABLE tBesko.
  790. CREATE tBesko.
  791. BUFFER-COPY bBesko TO tBesko.
  792. lNew = TRUE.
  793. FNeu = TRUE.
  794. FMut = TRUE.
  795. FDisp = TRUE.
  796. RUN SUPER.
  797. DO WITH FRAME {&FRAME-NAME}:
  798. EMPTY TEMP-TABLE tBesze.
  799. CREATE tBesze.
  800. ASSIGN
  801. tBesze.Firma = Firma
  802. tBesze.Besnr = iBesnr
  803. tBesze.Pos = 0
  804. tBesze.Artnr = 0
  805. tBesze.Inhalt = 0
  806. tBesze.Jahr = 0
  807. tBesze.iStatus = 0
  808. tBesze.Frw = bBesko.Frw
  809. tBesze.Kurs = bBesko.Kurs
  810. tBesze.Faktor = bBesko.Faktor
  811. tBesze.Spesen = bBesko.Spesen
  812. tBesze.Rabatt = bBesko.Rabatt
  813. tBesze.ZusRab = bBesko.ZusRab
  814. tBesze.Best_Sta = bBesko.Best_Sta
  815. tBesze.Lager = bBesko.Lager.
  816. RUN TEMP_TABLE_TO_SCREEN ( htBesze ).
  817. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT FALSE ).
  818. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT TRUE ).
  819. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT TRUE ).
  820. END.
  821. RELEASE bBesko.
  822. END PROCEDURE.
  823. /* _UIB-CODE-BLOCK-END */
  824. &ANALYZE-RESUME
  825. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKEL_DEFINIERT vTableWin
  826. PROCEDURE ARTIKEL_DEFINIERT :
  827. /* ------------------------------------------------------------------------------ */
  828. /* Purpose: */
  829. /* Parameters: <none> */
  830. /* Notes: */
  831. /* ------------------------------------------------------------------------------ */
  832. DEFINE INPUT PARAMETER ipiRecid AS RECID NO-UNDO.
  833. DEFINE OUTPUT PARAMETER opiRetVal AS INTEGER NO-UNDO.
  834. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  835. DEFINE BUFFER bArtst FOR Artst.
  836. DEFINE BUFFER bArtLief FOR ArtLief.
  837. opiRetVal = 0.
  838. FIND bArtst NO-LOCK WHERE RECID(bArtst) = ipiRecid.
  839. IF NOT bArtst.Aktiv THEN
  840. DO WITH FRAME {&FRAME-NAME}:
  841. opiRetVal = 1052.
  842. DYNAMIC-FUNCTION('fehlerMeldung':U, opiRetVal, '' ) NO-ERROR.
  843. APPLY 'ENTRY' TO F_Artnr.
  844. RETURN.
  845. END.
  846. IF bArtst.Ausverk = 9 THEN
  847. DO WITH FRAME {&FRAME-NAME}:
  848. opiRetVal = 1053.
  849. DYNAMIC-FUNCTION('fehlerMeldung':U, opiRetVal, '' ) NO-ERROR.
  850. APPLY 'ENTRY' TO F_Artnr.
  851. RETURN.
  852. END.
  853. FIND FIRST tBesko.
  854. FIND FIRST bArtLief NO-LOCK
  855. WHERE bArtlief.Firma = tBesko.Firma
  856. AND bArtLief.Artnr = bArtst.Artnr
  857. AND bArtLief.Inhalt = bArtst.Inhalt
  858. AND bArtLief.Jahr = bArtst.Jahr
  859. AND bArtLief.Knr = tBesko.Knr NO-ERROR.
  860. IF NOT AVAILABLE bArtLief THEN
  861. DO WITH FRAME {&FRAME-NAME}:
  862. opiRetVal = 218.
  863. DYNAMIC-FUNCTION('fehlerMeldung':U, opiRetVal, STRING(tBesko.Knr) ) NO-ERROR.
  864. RETURN NO-APPLY.
  865. END.
  866. FIND FIRST tBesze.
  867. ASSIGN
  868. tBesze.Artnr = bArtst.Artnr
  869. tBesze.Inhalt = bArtst.Inhalt
  870. tBesze.Jahr = bArtst.Jahr
  871. tBesze.iStatus = 0
  872. tBesze.lLotnr = bArtst.lLotnr
  873. tBesze.lVerfall = bArtst.lVerfall.
  874. RELEASE bArtst.
  875. RELEASE bArtLief.
  876. END PROCEDURE.
  877. /* _UIB-CODE-BLOCK-END */
  878. &ANALYZE-RESUME
  879. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  880. PROCEDURE cancelRecord :
  881. /* ------------------------------------------------------------------------------ */
  882. /* Purpose: */
  883. /* Parameters: <none> */
  884. /* Notes: */
  885. /* ------------------------------------------------------------------------------ */
  886. FCancel = TRUE.
  887. lNew = FALSE.
  888. RUN SUPER.
  889. /* Code placed here will execute AFTER standard behavior. */
  890. END PROCEDURE.
  891. /* _UIB-CODE-BLOCK-END */
  892. &ANALYZE-RESUME
  893. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  894. PROCEDURE copyRecord :
  895. /* ------------------------------------------------------------------------------ */
  896. /* Purpose: */
  897. /* Parameters: <none> */
  898. /* Notes: */
  899. /* ------------------------------------------------------------------------------ */
  900. RUN TOOLBAR IN hKontainer ('ABBRUCH') NO-ERROR.
  901. /* FNeu = TRUE. */
  902. /* FMut = TRUE. */
  903. /* FCopy = TRUE. */
  904. /* FDisp = TRUE. */
  905. /* */
  906. /* RUN SUPER. */
  907. END PROCEDURE.
  908. /* _UIB-CODE-BLOCK-END */
  909. &ANALYZE-RESUME
  910. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  911. PROCEDURE deleteRecord :
  912. /* ------------------------------------------------------------------------------ */
  913. /* Purpose: */
  914. /* Parameters: <none> */
  915. /* Notes: */
  916. /* ------------------------------------------------------------------------------ */
  917. DEFINE VARIABLE Ja AS LOG NO-UNDO.
  918. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  919. DEFINE VARIABLE iBesnr AS INTEGER NO-UNDO.
  920. iRecid = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hDaten) NO-ERROR.
  921. IF iRecid = ? OR
  922. iRecid = 0 THEN
  923. DO:
  924. RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR.
  925. RETURN NO-APPLY.
  926. END.
  927. Ja = TRUE.
  928. FIND Besze NO-LOCK WHERE RECID(Besze) = iRecid.
  929. IF Besze.Best_Sta > 2 THEN Ja = FALSE.
  930. iBesnr = Besze.Besnr.
  931. FIND FIRST BesEing OF Besze NO-LOCK NO-ERROR.
  932. IF AVAILABLE BesEing THEN Ja = FALSE.
  933. IF NOT Ja THEN
  934. DO:
  935. RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR.
  936. RETURN NO-APPLY.
  937. END.
  938. RELEASE Besze.
  939. Ja = DYNAMIC-FUNCTION( 'ANTWORT_NEIN':U, INPUT 1000 ).
  940. IF NOT Ja THEN
  941. DO:
  942. RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR.
  943. RETURN NO-APPLY.
  944. END.
  945. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  946. RUN SUPER.
  947. LEAVE.
  948. END.
  949. DYNAMIC-FUNCTION ('calculateBeskoTotal':U, Firma, iBesnr, OUTPUT nTotale ) NO-ERROR.
  950. END PROCEDURE.
  951. /* _UIB-CODE-BLOCK-END */
  952. &ANALYZE-RESUME
  953. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  954. PROCEDURE disableFields :
  955. /* ------------------------------------------------------------------------------ */
  956. /* Purpose: */
  957. /* Parameters: <none> */
  958. /* Notes: */
  959. /* ------------------------------------------------------------------------------ */
  960. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  961. DO WITH FRAME {&FRAME-NAME}:
  962. END.
  963. RUN SUPER( INPUT pcFieldType).
  964. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  965. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  966. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN
  967. DO:
  968. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  969. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&DISABLE_1}' , INPUT 15 ).
  970. END.
  971. DO WITH FRAME {&FRAME-NAME}:
  972. END.
  973. END PROCEDURE.
  974. /* _UIB-CODE-BLOCK-END */
  975. &ANALYZE-RESUME
  976. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  977. PROCEDURE disable_UI :
  978. /*------------------------------------------------------------------------------
  979. Purpose: DISABLE the User Interface
  980. Parameters: <none>
  981. Notes: Here we clean-up the user-interface by deleting
  982. dynamic widgets we have created and/or hide
  983. frames. This procedure is usually called when
  984. we are ready to "clean-up" after running.
  985. ------------------------------------------------------------------------------*/
  986. /* Hide all frames. */
  987. HIDE FRAME F-Main.
  988. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  989. END PROCEDURE.
  990. /* _UIB-CODE-BLOCK-END */
  991. &ANALYZE-RESUME
  992. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  993. PROCEDURE displayFields :
  994. /* ------------------------------------------------------------------------------ */
  995. /* Purpose: */
  996. /* Parameters: <none> */
  997. /* Notes: */
  998. /* ------------------------------------------------------------------------------ */
  999. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  1000. IF NOT FDisp THEN
  1001. DO:
  1002. FDisp = TRUE.
  1003. RETURN.
  1004. END.
  1005. IF FCancel THEN pcColValues = OldColValues.
  1006. IF NOT FNeu THEN OldColValues = pcColValues.
  1007. cAktRowid = ENTRY(01, pcColValues, CHR(01)).
  1008. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  1009. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  1010. DO WHILE FMut WITH FRAME {&FRAME-NAME}:
  1011. FIND FIRST tBesko NO-ERROR.
  1012. rowObject.FRW :SCREEN-VALUE = tBesko.FRW.
  1013. rowObject.Kurs :SCREEN-VALUE = STRING(tBesko.Kurs).
  1014. LEAVE.
  1015. END.
  1016. RUN SUPER( INPUT pcColValues).
  1017. FCancel = FALSE.
  1018. DO WITH FRAME {&FRAME-NAME}:
  1019. F_Artnr:SCREEN-VALUE = STRING(INTEGER(rowObject.Artnr:SCREEN-VALUE),'zzzzzzz').
  1020. IF rowObject.S_Bez1:SCREEN-VALUE = '' THEN rowObject.S_Bez1:SCREEN-VALUE = rowObject.Bez1:SCREEN-VALUE.
  1021. IF rowObject.S_Bez2:SCREEN-VALUE = '' THEN rowObject.S_Bez2:SCREEN-VALUE = rowObject.Bez2:SCREEN-VALUE.
  1022. CB_Waehrung:SCREEN-VALUE = rowObject.Frw:SCREEN-VALUE.
  1023. rowObject.S_Artnr:READ-ONLY = TRUE.
  1024. END.
  1025. IF NOT FMut THEN RETURN.
  1026. FIND FIRST tBesko.
  1027. DO WITH FRAME {&FRAME-NAME}:
  1028. CASE tBesko.Best_Sta:
  1029. WHEN 3 THEN
  1030. APPLY 'ENTRY' TO rowObject.S_Preis_Frw.
  1031. END CASE.
  1032. END.
  1033. RETURN .
  1034. END PROCEDURE.
  1035. /* _UIB-CODE-BLOCK-END */
  1036. &ANALYZE-RESUME
  1037. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  1038. PROCEDURE enableFields :
  1039. /* ------------------------------------------------------------------------------ */
  1040. /* Purpose: */
  1041. /* Parameters: <none> */
  1042. /* Notes: */
  1043. /* ------------------------------------------------------------------------------ */
  1044. iStatus = DYNAMIC-FUNCTION ('getStatus':U IN hKontainer ) NO-ERROR.
  1045. /*
  1046. RUN SUPER.
  1047. */
  1048. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  1049. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  1050. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN
  1051. DO:
  1052. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  1053. END.
  1054. CASE iStatus:
  1055. WHEN 1 THEN RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&DISABLE_1}', INPUT TRUE ).
  1056. WHEN 2 THEN RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&DISABLE_1}', INPUT TRUE ).
  1057. END.
  1058. IF FNeu THEN RETURN.
  1059. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN
  1060. DO:
  1061. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  1062. END.
  1063. END PROCEDURE.
  1064. /* _UIB-CODE-BLOCK-END */
  1065. &ANALYZE-RESUME
  1066. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  1067. PROCEDURE enableObject :
  1068. /* ------------------------------------------------------------------------------ */
  1069. /* Purpose: */
  1070. /* Parameters: <none> */
  1071. /* Notes: */
  1072. /* ------------------------------------------------------------------------------ */
  1073. DO WITH FRAME {&FRAME-NAME}:
  1074. RUN COMBO_FRW ( CB_Waehrung:HANDLE ) NO-ERROR.
  1075. END.
  1076. RUN SUPER.
  1077. { incl/viwenableobject.i }
  1078. END PROCEDURE.
  1079. /* _UIB-CODE-BLOCK-END */
  1080. &ANALYZE-RESUME
  1081. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  1082. PROCEDURE ENTRY_FELD_TEST :
  1083. /* ------------------------------------------------------------------------------ */
  1084. /* Purpose: */
  1085. /* Parameters: <none> */
  1086. /* Notes: */
  1087. /* ------------------------------------------------------------------------------ */
  1088. { incl/viwentryfeldtest.i }
  1089. RETURN ''.
  1090. END PROCEDURE.
  1091. /* _UIB-CODE-BLOCK-END */
  1092. &ANALYZE-RESUME
  1093. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  1094. PROCEDURE FEHLWERTE :
  1095. /* ------------------------------------------------------------------------------ */
  1096. /* Purpose: */
  1097. /* Parameters: <none> */
  1098. /* Notes: */
  1099. /* ------------------------------------------------------------------------------ */
  1100. DEFINE INPUT-OUTPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  1101. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  1102. IF FCancel THEN RETURN.
  1103. IF NOT FCopy THEN
  1104. DO WITH FRAME {&FRAME-NAME}:
  1105. /* i1 = LOOKUP('Feld', oldColList, ',') + 1. */
  1106. /* ENTRY(i1, pcColValues, CHR(1)) = 'Fehlwert' NO-ERROR. */
  1107. END.
  1108. IF FCopy THEN
  1109. DO:
  1110. END.
  1111. END PROCEDURE.
  1112. /* _UIB-CODE-BLOCK-END */
  1113. &ANALYZE-RESUME
  1114. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_ARTNR vTableWin
  1115. PROCEDURE LEAVE_ARTNR :
  1116. /* ------------------------------------------------------------------------------ */
  1117. /* Purpose: */
  1118. /* Parameters: <none> */
  1119. /* Notes: */
  1120. /* ------------------------------------------------------------------------------ */
  1121. DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1122. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  1123. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  1124. DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO.
  1125. DEFINE VARIABLE iRetVal AS INTEGER INIT 0 NO-UNDO.
  1126. DEFINE VARIABLE cSuch AS CHARACTER NO-UNDO.
  1127. DEFINE BUFFER bArtst FOR Artst.
  1128. DEFINE BUFFER bArtbez FOR Artbez.
  1129. iLKY = LASTKEY.
  1130. iAnzArt = 0.
  1131. iRecid = 0.
  1132. FIND FIRST tBesko.
  1133. IF lALT-F THEN
  1134. DO WITH FRAME {&FRAME-NAME}:
  1135. FIND FIRST tBesze.
  1136. IF FNeu THEN tBesze.iStatus = 0.
  1137. iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR.
  1138. FIND FIRST tBesze.
  1139. RUN TEMP_TABLE_TO_SCREEN ( htBesze ).
  1140. lNew = FALSE.
  1141. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  1142. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT FALSE ).
  1143. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  1144. RETURN 'APPLY'.
  1145. END.
  1146. DO WITH FRAME {&FRAME-NAME}:
  1147. /* ---------------------------------------------------------- */
  1148. /* Artikelnummer = Leer -> Nur Text-Eingabe */
  1149. /* und Feld mit Tab verlassen */
  1150. /* ---------------------------------------------------------- */
  1151. IF ipHandle:SCREEN-VALUE = '' AND
  1152. iLKY = 09 /* TAB */ THEN
  1153. DO WITH FRAME {&FRAME-NAME}:
  1154. EMPTY TEMP-TABLE tBesze.
  1155. CREATE tBesze.
  1156. ASSIGN
  1157. tBesze.Firma = Firma
  1158. tBesze.Besnr = tBesko.Besnr
  1159. tBesze.Pos = 0
  1160. tBesze.Artnr = 0
  1161. tBesze.Inhalt = 0
  1162. tBesze.Jahr = 0.
  1163. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&KOMMENTAR}' , INPUT FALSE ).
  1164. iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR .
  1165. FIND FIRST tBesze.
  1166. RUN TEMP_TABLE_TO_SCREEN ( htBesze ) NO-ERROR.
  1167. lNew = FALSE.
  1168. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  1169. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&KOMMENTAR}' , INPUT FALSE ).
  1170. APPLY 'ENTRY' TO rowObject.S_Bez1.
  1171. RETURN 'APPLY'.
  1172. END.
  1173. FIND FIRST tBesze.
  1174. ASSIGN
  1175. tBesze.Firma = Firma
  1176. tBesze.Besnr = tBesko.Besnr
  1177. tBesze.Pos = 0
  1178. tBesze.Artnr = 0
  1179. tBesze.Inhalt = 0
  1180. tBesze.Jahr = 0
  1181. tBesze.iStatus = 0.
  1182. A000:
  1183. REPEAT WHILE TRUE:
  1184. iArtnr = INTEGER(ipHandle:SCREEN-VALUE) NO-ERROR.
  1185. IF ERROR-STATUS:ERROR THEN LEAVE.
  1186. IF iArtnr = 0 THEN LEAVE.
  1187. FOR EACH bArtst NO-LOCK
  1188. WHERE bArtst.Firma = Firma
  1189. AND bArtst.Artnr = iArtnr
  1190. AND bArtst.Aktiv = TRUE
  1191. AND bArtst.Ausverk < 9 :
  1192. iAnzArt = iAnzArt + 1.
  1193. IF iAnzArt > 1 THEN LEAVE A000.
  1194. ASSIGN
  1195. iRecid = RECID(bArtst).
  1196. RELEASE bArtst.
  1197. END.
  1198. LEAVE.
  1199. END.
  1200. DO WHILE TRUE:
  1201. IF iAnzArt = 1 OR
  1202. (iAnzArt > 0 AND iLKY = 9) THEN /* 09 = TAB - Key */
  1203. DO:
  1204. RUN ARTIKEL_DEFINIERT ( iRecid, OUTPUT iRetVal ).
  1205. IF iRetVal > 0 THEN
  1206. DO:
  1207. APPLY 'ENTRY' TO F_Artnr.
  1208. RETURN 'APPLY'.
  1209. END.
  1210. LEAVE.
  1211. END.
  1212. cSuch = SUBSTITUTE('BEST,&1;&2', tBesko.Knr, F_Artnr:SCREEN-VALUE ).
  1213. RUN 'g-suchen-artikel.w':U ( cSuch, OUTPUT iRecid ) NO-ERROR.
  1214. IF iRecid = ? OR
  1215. iRecid = 0 THEN
  1216. DO:
  1217. APPLY 'ENTRY' TO F_Artnr.
  1218. RETURN 'APPLY'.
  1219. END.
  1220. iAnzArt = 1.
  1221. END.
  1222. lALT-F = FALSE.
  1223. FIND FIRST tBesze.
  1224. iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR.
  1225. FIND FIRST tBesze.
  1226. RUN TEMP_TABLE_TO_SCREEN ( htBesze ).
  1227. ipHandle:SCREEN-VALUE = STRING(tBesze.Artnr).
  1228. DO WITH FRAME {&FRAME-NAME}:
  1229. IF iLKY = 09 THEN
  1230. DO:
  1231. APPLY 'ENTRY' TO rowObject.Inhalt.
  1232. RETURN 'APPLY'.
  1233. END.
  1234. lNew = FALSE.
  1235. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  1236. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT FALSE ).
  1237. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  1238. RETURN 'APPLY'.
  1239. END.
  1240. END.
  1241. END PROCEDURE.
  1242. /* _UIB-CODE-BLOCK-END */
  1243. &ANALYZE-RESUME
  1244. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  1245. PROCEDURE LEAVE_FELD_TEST :
  1246. /* ------------------------------------------------------------------------------ */
  1247. /* Purpose: */
  1248. /* Parameters: <none> */
  1249. /* Notes: */
  1250. /* ------------------------------------------------------------------------------ */
  1251. { incl/viwleavefeldtest.i }
  1252. FeldName = ipHandle:NAME.
  1253. hLastField = hLEAVE.
  1254. FIND FIRST tBesze.
  1255. DO WHILE FNeu WITH FRAME {&FRAME-NAME}:
  1256. CASE FeldName:
  1257. WHEN 'F_Artnr' THEN
  1258. DO:
  1259. RUN LEAVE_ARTNR (SELF:HANDLE).
  1260. RETURN RETURN-VALUE.
  1261. END.
  1262. WHEN 'Inhalt' THEN
  1263. DO:
  1264. /* IF LKY = 509 THEN RETURN. /* BACK-TAB */*/
  1265. RUN LEAVE_INHALT (SELF:HANDLE).
  1266. RETURN RETURN-VALUE.
  1267. END.
  1268. WHEN 'Jahr' THEN
  1269. DO:
  1270. /* IF LKY = 509 THEN RETURN. /* BACK-TAB */*/
  1271. RUN LEAVE_JAHR (SELF:HANDLE).
  1272. RETURN RETURN-VALUE.
  1273. END.
  1274. END CASE.
  1275. LEAVE.
  1276. END.
  1277. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  1278. IF NOT ipHandle:MODIFIED THEN LEAVE.
  1279. CASE FeldName:
  1280. WHEN 'GGeb_Me' THEN RUN RECHNE_MENGE ( 'GGeb' ).
  1281. WHEN 'VGeb_Me' THEN RUN RECHNE_MENGE ( 'VGeb' ).
  1282. WHEN 'S_Preis_FRW' THEN RUN RECHNE_PREIS.
  1283. WHEN 'Rabatt' THEN RUN RECHNE_PREIS.
  1284. WHEN 'ZusRab' THEN RUN RECHNE_PREIS.
  1285. WHEN 'Spesen' THEN RUN RECHNE_PREIS.
  1286. END CASE.
  1287. LEAVE.
  1288. END.
  1289. CASE iStatus:
  1290. WHEN 1 THEN
  1291. DO:
  1292. IF FeldName = 'KGeb_Me' THEN
  1293. DO:
  1294. DO WHILE TRUE:
  1295. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  1296. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  1297. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  1298. RETURN 'APPLY'.
  1299. END.
  1300. APPLY 'ALT-S'.
  1301. RETURN 'APPLY'.
  1302. END.
  1303. END.
  1304. END.
  1305. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN
  1306. DO:
  1307. DO WHILE TRUE:
  1308. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  1309. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  1310. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  1311. RETURN ''.
  1312. END.
  1313. APPLY 'ALT-S'.
  1314. RETURN 'APPLY'.
  1315. END.
  1316. IF tBesze.Artnr = 0 AND
  1317. LOOKUP(FeldName, '{&KOMMENTAR}', ',') = NUM-ENTRIES('{&KOMMENTAR}') THEN
  1318. DO:
  1319. DO WHILE TRUE:
  1320. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  1321. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  1322. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  1323. RETURN ''.
  1324. END.
  1325. APPLY 'ALT-S'.
  1326. RETURN 'APPLY'.
  1327. END.
  1328. RETURN ''.
  1329. END PROCEDURE.
  1330. /* _UIB-CODE-BLOCK-END */
  1331. &ANALYZE-RESUME
  1332. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_INHALT vTableWin
  1333. PROCEDURE LEAVE_INHALT :
  1334. /* ------------------------------------------------------------------------------ */
  1335. /* Purpose: */
  1336. /* Parameters: <none> */
  1337. /* Notes: */
  1338. /* ------------------------------------------------------------------------------ */
  1339. DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1340. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  1341. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO.
  1342. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  1343. DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO.
  1344. DEFINE VARIABLE iRetVal AS INTEGER INIT 0 NO-UNDO.
  1345. DEFINE VARIABLE cSuch AS CHARACTER NO-UNDO.
  1346. DEFINE BUFFER bArtst FOR Artst.
  1347. DEFINE BUFFER bArtbez FOR Artbez.
  1348. iLKY = LASTKEY.
  1349. iAnzArt = 0.
  1350. iRecid = 0.
  1351. FIND FIRST tBesko.
  1352. DO WITH FRAME {&FRAME-NAME}:
  1353. FIND FIRST tBesze.
  1354. ASSIGN
  1355. tBesze.Firma = Firma
  1356. tBesze.Besnr = tBesko.Besnr
  1357. tBesze.Pos = 0
  1358. tBesze.Artnr = 0
  1359. tBesze.Inhalt = 0
  1360. tBesze.Jahr = 0
  1361. tBesze.iStatus = 0.
  1362. A000:
  1363. REPEAT WHILE TRUE:
  1364. iArtnr = INTEGER(F_Artnr :SCREEN-VALUE) NO-ERROR.
  1365. iInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE) NO-ERROR.
  1366. IF ERROR-STATUS:ERROR THEN LEAVE.
  1367. FOR EACH bArtst NO-LOCK
  1368. WHERE bArtst.Firma = Firma
  1369. AND bArtst.Artnr = iArtnr
  1370. AND bArtst.Inhalt = iInhalt
  1371. AND bArtst.Aktiv = TRUE
  1372. AND bArtst.Ausverk < 9 :
  1373. iAnzArt = iAnzArt + 1.
  1374. IF iAnzArt > 1 THEN LEAVE A000.
  1375. ASSIGN
  1376. iRecid = RECID(bArtst).
  1377. RELEASE bArtst.
  1378. END.
  1379. LEAVE.
  1380. END.
  1381. DO WHILE TRUE:
  1382. IF iAnzArt = 1 OR
  1383. (iAnzArt > 0 AND iLKY = 9) THEN /* 09 = TAB - Key */
  1384. DO:
  1385. RUN ARTIKEL_DEFINIERT ( iRecid, OUTPUT iRetVal ).
  1386. IF iRetVal > 0 THEN
  1387. DO:
  1388. APPLY 'ENTRY' TO rowObject.Inhalt.
  1389. RETURN 'APPLY'.
  1390. END.
  1391. LEAVE.
  1392. END.
  1393. cSuch = SUBSTITUTE('BEST,&1;&2', tBesko.Knr, (F_Artnr:SCREEN-VALUE + ' ' + rowObject.Inhalt:SCREEN-VALUE) ).
  1394. RUN 'g-suchen-artikel.w':U ( cSuch, OUTPUT iRecid ) NO-ERROR.
  1395. IF iRecid = ? OR
  1396. iRecid = 0 THEN
  1397. DO:
  1398. APPLY 'ENTRY' TO rowObject.Inhalt.
  1399. RETURN 'APPLY'.
  1400. END.
  1401. iAnzArt = 1.
  1402. END.
  1403. lALT-F = FALSE.
  1404. FIND FIRST tBesze.
  1405. iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR.
  1406. FIND FIRST tBesze.
  1407. RUN TEMP_TABLE_TO_SCREEN ( htBesze ).
  1408. ipHandle:SCREEN-VALUE = STRING(tBesze.Inhalt).
  1409. DO WITH FRAME {&FRAME-NAME}:
  1410. IF iLKY = 09 THEN
  1411. DO:
  1412. APPLY 'ENTRY' TO rowObject.Jahr.
  1413. RETURN 'APPLY'.
  1414. END.
  1415. lNew = FALSE.
  1416. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  1417. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT FALSE ).
  1418. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  1419. RETURN 'APPLY'.
  1420. END.
  1421. END.
  1422. END PROCEDURE.
  1423. /* _UIB-CODE-BLOCK-END */
  1424. &ANALYZE-RESUME
  1425. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_JAHR vTableWin
  1426. PROCEDURE LEAVE_JAHR :
  1427. /* ------------------------------------------------------------------------------ */
  1428. /* Purpose: */
  1429. /* Parameters: <none> */
  1430. /* Notes: */
  1431. /* ------------------------------------------------------------------------------ */
  1432. DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1433. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  1434. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO.
  1435. DEFINE VARIABLE iJahr AS INTEGER NO-UNDO.
  1436. DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO.
  1437. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  1438. DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO.
  1439. DEFINE BUFFER bArtst FOR Artst.
  1440. DEFINE BUFFER bArtbez FOR Artbez.
  1441. FIND FIRST tBesko.
  1442. DO WITH FRAME {&FRAME-NAME}:
  1443. iLKY = LASTKEY.
  1444. iAnzArt = 0.
  1445. iRecid = 0.
  1446. A000:
  1447. REPEAT WHILE TRUE:
  1448. iArtnr = INTEGER(F_Artnr :SCREEN-VALUE) NO-ERROR.
  1449. iInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE) NO-ERROR.
  1450. iJahr = INTEGER(ipHandle :SCREEN-VALUE) NO-ERROR.
  1451. IF ERROR-STATUS:ERROR THEN LEAVE.
  1452. FOR EACH bArtst NO-LOCK
  1453. WHERE bArtst.Firma = Firma
  1454. AND bArtst.Artnr = iArtnr
  1455. AND bArtst.Inhalt = iInhalt
  1456. AND bArtst.Jahr = iJahr
  1457. AND bArtst.Aktiv = TRUE
  1458. AND bArtst.Ausverk < 9 :
  1459. iAnzArt = iAnzArt + 1.
  1460. IF iAnzArt > 1 THEN LEAVE A000.
  1461. ASSIGN
  1462. iRecid = RECID(bArtst).
  1463. RELEASE bArtst.
  1464. END.
  1465. LEAVE.
  1466. END.
  1467. DO WHILE TRUE:
  1468. IF iAnzArt = 1 THEN LEAVE.
  1469. APPLY 'ENTRY' TO ipHandle.
  1470. RETURN 'APPLY'.
  1471. END.
  1472. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid.
  1473. ASSIGN
  1474. rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  1475. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  1476. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr)
  1477. F_Artnr :SCREEN-VALUE = STRING(bArtst.Artnr).
  1478. FIND FIRST tBesze NO-ERROR.
  1479. ASSIGN
  1480. tBesze.Firma = Firma
  1481. tBesze.Besnr = tBesko.Besnr
  1482. tBesze.Artnr = bArtst.Artnr
  1483. tBesze.Inhalt = bArtst.Inhalt
  1484. tBesze.Jahr = bArtst.Jahr .
  1485. RELEASE bArtst.
  1486. iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR.
  1487. IF iRetVal > 0 THEN
  1488. DO:
  1489. DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR.
  1490. APPLY 'ENTRY' TO ipHandle.
  1491. RETURN 'APPLY'.
  1492. END.
  1493. FIND FIRST tBesze.
  1494. RUN TEMP_TABLE_TO_SCREEN ( htBesze ).
  1495. DO WITH FRAME {&FRAME-NAME}:
  1496. lNew = FALSE.
  1497. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  1498. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT FALSE ).
  1499. APPLY 'ENTRY' TO rowObject.GGeb_Me.
  1500. RETURN 'APPLY'.
  1501. END.
  1502. END.
  1503. END PROCEDURE.
  1504. /* _UIB-CODE-BLOCK-END */
  1505. &ANALYZE-RESUME
  1506. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNE_MENGE vTableWin
  1507. PROCEDURE RECHNE_MENGE :
  1508. /* ------------------------------------------------------------------------------ */
  1509. /* Purpose: */
  1510. /* Parameters: <none> */
  1511. /* Notes: */
  1512. /* ------------------------------------------------------------------------------ */
  1513. DEFINE INPUT PARAMETER ipcCode AS CHARACTER NO-UNDO.
  1514. DEFINE VARIABLE cGeb_Cd AS CHARACTER NO-UNDO.
  1515. DEFINE VARIABLE iGGeb_Me AS INTEGER NO-UNDO.
  1516. DEFINE VARIABLE iVGeb_Me AS INTEGER NO-UNDO.
  1517. DEFINE VARIABLE iKGeb_Me AS INTEGER NO-UNDO.
  1518. DO WITH FRAME {&FRAME-NAME}:
  1519. iGGeb_Me = INTEGER(rowObject.GGeb_Me:SCREEN-VALUE).
  1520. iVGeb_Me = INTEGER(rowObject.VGeb_Me:SCREEN-VALUE).
  1521. iKGeb_Me = INTEGER(rowObject.KGeb_Me:SCREEN-VALUE).
  1522. CASE ipcCode:
  1523. WHEN 'GGeb' THEN
  1524. DO:
  1525. IF iGGeb_Me = 0 THEN RETURN.
  1526. cGeb_Cd = rowObject.GGeb_Cd:SCREEN-VALUE.
  1527. FIND GGebinde NO-LOCK
  1528. WHERE GGebinde.Firma = Firma
  1529. AND GGebinde.Geb_Cd = cGeb_Cd.
  1530. iVGeb_Me = iGGeb_Me * GGebinde.Inhalt.
  1531. cGeb_Cd = rowObject.VGeb_Cd:SCREEN-VALUE.
  1532. FIND VGebinde NO-LOCK
  1533. WHERE VGebinde.Firma = Firma
  1534. AND VGebinde.Geb_Cd = cGeb_Cd.
  1535. iKGeb_Me = iVGeb_Me * VGebinde.Inhalt.
  1536. END.
  1537. WHEN 'VGeb' THEN
  1538. DO:
  1539. IF iVGeb_Me = 0 THEN RETURN.
  1540. cGeb_Cd = rowObject.VGeb_Cd:SCREEN-VALUE.
  1541. FIND VGebinde NO-LOCK
  1542. WHERE VGebinde.Firma = Firma
  1543. AND VGebinde.Geb_Cd = cGeb_Cd.
  1544. iKGeb_Me = iVGeb_Me * VGebinde.Inhalt.
  1545. END.
  1546. END.
  1547. ASSIGN
  1548. rowObject.GGeb_Me:SCREEN-VALUE = STRING(iGGeb_Me)
  1549. rowObject.VGeb_Me:SCREEN-VALUE = STRING(iVGeb_Me)
  1550. rowObject.KGeb_Me:SCREEN-VALUE = STRING(iKGeb_Me).
  1551. END.
  1552. END PROCEDURE.
  1553. /* _UIB-CODE-BLOCK-END */
  1554. &ANALYZE-RESUME
  1555. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNE_PREIS vTableWin
  1556. PROCEDURE RECHNE_PREIS :
  1557. /* ------------------------------------------------------------------------------ */
  1558. /* Purpose: */
  1559. /* Parameters: <none> */
  1560. /* Notes: */
  1561. /* ------------------------------------------------------------------------------ */
  1562. DEFINE VARIABLE nS_Preis_Frw AS DECIMAL NO-UNDO DECIMALS 4.
  1563. DEFINE VARIABLE nRabatt AS DECIMAL NO-UNDO DECIMALS 4.
  1564. DEFINE VARIABLE nZusRab AS DECIMAL NO-UNDO DECIMALS 4.
  1565. DEFINE VARIABLE nSpesen AS DECIMAL NO-UNDO DECIMALS 4.
  1566. DEFINE VARIABLE nPreis AS DECIMAL NO-UNDO DECIMALS 4.
  1567. DEFINE VARIABLE nKurs AS DECIMAL NO-UNDO DECIMALS 4.
  1568. DEFINE VARIABLE nS_Preis AS DECIMAL NO-UNDO DECIMALS 4.
  1569. FIND FIRST tBesko.
  1570. nKurs = tBesko.Kurs.
  1571. DO WITH FRAME {&FRAME-NAME}:
  1572. nS_Preis_Frw = DECIMAL(rowObject.S_Preis_Frw:SCREEN-VALUE).
  1573. nRabatt = DECIMAL(rowObject.Rabatt :SCREEN-VALUE).
  1574. nZusRab = DECIMAL(rowObject.ZusRab :SCREEN-VALUE).
  1575. nSpesen = DECIMAL(rowObject.Spesen :SCREEN-VALUE).
  1576. END.
  1577. nPreis = nS_Preis_Frw * (100 - nRabatt) / 100 * (100 - nZusRab) / 100 * (1 + (nSpesen / 100)).
  1578. nS_Preis = nS_Preis_Frw * nKurs.
  1579. IF tBesko.Frw <> cFrwLief THEN nS_Preis = nS_Preis / nKursLief.
  1580. DO WITH FRAME {&FRAME-NAME}:
  1581. ASSIGN
  1582. rowObject.Preis :SCREEN-VALUE = STRING(nPreis)
  1583. rowObject.S_Preis:SCREEN-VALUE = STRING(nS_Preis).
  1584. END.
  1585. END PROCEDURE.
  1586. /* _UIB-CODE-BLOCK-END */
  1587. &ANALYZE-RESUME
  1588. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REFRESH_BESZE vTableWin
  1589. PROCEDURE REFRESH_BESZE :
  1590. /*------------------------------------------------------------------------------
  1591. Purpose:
  1592. Notes:
  1593. ------------------------------------------------------------------------------*/
  1594. RUN refreshRow IN hDaten NO-ERROR.
  1595. END PROCEDURE.
  1596. /* _UIB-CODE-BLOCK-END */
  1597. &ANALYZE-RESUME
  1598. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  1599. PROCEDURE RETURN_FELD :
  1600. /* ------------------------------------------------------------------------------ */
  1601. /* Purpose: */
  1602. /* Parameters: <none> */
  1603. /* Notes: */
  1604. /* ------------------------------------------------------------------------------ */
  1605. { incl/viwreturnfeld.i }
  1606. END PROCEDURE.
  1607. /* _UIB-CODE-BLOCK-END */
  1608. &ANALYZE-RESUME
  1609. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMP_TABLE_TO_SCREEN vTableWin
  1610. PROCEDURE TEMP_TABLE_TO_SCREEN :
  1611. /* ------------------------------------------------------------------------------ */
  1612. /* Purpose: */
  1613. /* Parameters: <none> */
  1614. /* Notes: */
  1615. /* ------------------------------------------------------------------------------ */
  1616. DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  1617. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  1618. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  1619. DEFINE VARIABLE cColList AS CHARACTER NO-UNDO.
  1620. DEFINE VARIABLE cColValues AS CHARACTER NO-UNDO.
  1621. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  1622. DEFINE VARIABLE cInhalt AS CHARACTER NO-UNDO.
  1623. cColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  1624. ii = NUM-ENTRIES(cColList, ',') + 1.
  1625. cColValues = FILL(CHR(01), ii).
  1626. DO ii = 1 TO ipHandle:NUM-FIELDS:
  1627. cFeld = ipHandle:BUFFER-FIELD(ii):NAME.
  1628. i1 = LOOKUP(cFeld, cColList, ',') + 1 NO-ERROR.
  1629. IF i1 < 2 THEN NEXT.
  1630. cInhalt = ipHandle:BUFFER-FIELD(ii):BUFFER-VALUE.
  1631. ENTRY(i1, cColValues, CHR(1)) = (IF cInhalt = ? THEN '' ELSE cInhalt) NO-ERROR.
  1632. END.
  1633. ENTRY(1, cColValues, CHR(01)) = cAktRowId.
  1634. RUN displayFields ( cColValues ).
  1635. END PROCEDURE.
  1636. /* _UIB-CODE-BLOCK-END */
  1637. &ANALYZE-RESUME
  1638. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEST_EINGABEN vTableWin
  1639. PROCEDURE TEST_EINGABEN :
  1640. /* ------------------------------------------------------------------------------ */
  1641. /* Purpose: */
  1642. /* Parameters: <none> */
  1643. /* Notes: */
  1644. /* ------------------------------------------------------------------------------ */
  1645. DEFINE OUTPUT PARAMETER opJa AS LOG NO-UNDO.
  1646. DEFINE VARIABLE eHandle AS HANDLE NO-UNDO.
  1647. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1648. DEFINE VARIABLE iNummer AS INTEGER NO-UNDO.
  1649. DEFINE VARIABLE nBestellt AS DECIMAL NO-UNDO.
  1650. DEFINE VARIABLE nGeliefert AS DECIMAL NO-UNDO.
  1651. DEFINE VARIABLE nEingang AS DECIMAL NO-UNDO.
  1652. DEFINE VARIABLE nRueckstand AS DECIMAL NO-UNDO.
  1653. opJa = FALSE.
  1654. eHandle = ?.
  1655. IF NOT FMut THEN RETURN.
  1656. IF lNew THEN RETURN.
  1657. AAA000:
  1658. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  1659. nBestellt = DECIMAL(rowObject.MBest :SCREEN-VALUE).
  1660. nGeliefert = DECIMAL(rowObject.MGeli :SCREEN-VALUE).
  1661. nEingang = DECIMAL(rowObject.Eingang:SCREEN-VALUE).
  1662. nRueckstand = nBestellt - nGeliefert - nEingang.
  1663. rowObject.MRuek:SCREEN-VALUE = STRING(nRueckstand).
  1664. LEAVE.
  1665. END.
  1666. IF VALID-HANDLE(eHandle) THEN
  1667. DO:
  1668. APPLY 'ENTRY' TO eHandle.
  1669. RETURN NO-APPLY.
  1670. END.
  1671. opJa = TRUE.
  1672. END PROCEDURE.
  1673. /* _UIB-CODE-BLOCK-END */
  1674. &ANALYZE-RESUME
  1675. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  1676. PROCEDURE updateMode :
  1677. /*------------------------------------------------------------------------------*/
  1678. /*Purpose: Super Override */
  1679. /*Parameters: */
  1680. /*Notes: */
  1681. /*------------------------------------------------------------------------------*/
  1682. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  1683. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  1684. DEFINE BUFFER bBesko FOR Besko.
  1685. DEFINE BUFFER bBesze FOR Besze.
  1686. CASE pcMode:
  1687. WHEN 'updateBegin' THEN
  1688. DO:
  1689. iRecid = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hDaten) NO-ERROR.
  1690. IF iRecid = ? OR
  1691. iRecid = 0 THEN RETURN.
  1692. FIND bBesze NO-LOCK WHERE RECID(bBesze) = iRecid.
  1693. EMPTY TEMP-TABLE tBesze.
  1694. CREATE tBesze.
  1695. BUFFER-COPY bBesze TO tBesze.
  1696. FIND bBesko NO-LOCK
  1697. WHERE bBesko.Firma = Firma
  1698. AND bBesko.Besnr = bBesze.Besnr NO-ERROR.
  1699. EMPTY TEMP-TABLE tBesko.
  1700. CREATE tBesko.
  1701. BUFFER-COPY bBesko TO tBesko.
  1702. RELEASE bBesko.
  1703. RELEASE bBesze.
  1704. END.
  1705. WHEN 'updateEnd' THEN
  1706. DO:
  1707. END.
  1708. END.
  1709. RUN SUPER( INPUT pcMode).
  1710. CASE pcMode:
  1711. WHEN 'updateBegin' THEN
  1712. DO:
  1713. FMut = TRUE.
  1714. FIND FIRST tBesko.
  1715. IF tBesko.Best_Sta = 3 THEN
  1716. DO WITH FRAME {&FRAME-NAME}:
  1717. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}' , INPUT TRUE ).
  1718. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT TRUE ).
  1719. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT FALSE ).
  1720. FIND Liefst NO-LOCK
  1721. WHERE Liefst.Firma = Firma
  1722. AND Liefst.Knr = tBesko.Knr.
  1723. cFrwLief = Liefst.Frw.
  1724. FIND Waehrung NO-LOCK
  1725. WHERE Waehrung.Firma = Firma
  1726. AND Waehrung.Frw = cFrwLief.
  1727. nKursLief = Waehrung.Kurs.
  1728. RELEASE Liefst.
  1729. RELEASE Waehrung.
  1730. END.
  1731. END.
  1732. WHEN 'updateEnd' THEN
  1733. DO:
  1734. FNeu = FALSE.
  1735. FMut = FALSE.
  1736. FCopy = FALSE.
  1737. END.
  1738. END.
  1739. END PROCEDURE.
  1740. /* _UIB-CODE-BLOCK-END */
  1741. &ANALYZE-RESUME
  1742. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  1743. PROCEDURE updateRecord :
  1744. /* ------------------------------------------------------------------------------ */
  1745. /* Purpose: */
  1746. /* Parameters: <none> */
  1747. /* Notes: */
  1748. /* ------------------------------------------------------------------------------ */
  1749. DEFINE VARIABLE iBesnr AS INTEGER NO-UNDO.
  1750. DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
  1751. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  1752. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  1753. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  1754. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  1755. DEFINE VARIABLE hbFeld AS HANDLE NO-UNDO.
  1756. DEFINE VARIABLE hbBesze AS HANDLE NO-UNDO.
  1757. DEFINE BUFFER bBesze FOR Besze .
  1758. DEFINE BUFFER bArtLief FOR ArtLief.
  1759. FIND FIRST tBesko.
  1760. DO WITH FRAME {&FRAME-NAME}:
  1761. IF FNeu THEN
  1762. DO:
  1763. DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE).
  1764. END.
  1765. iBesnr = INTEGER(rowObject.Besnr:SCREEN-VALUE).
  1766. iPos = INTEGER(rowObject.Pos :SCREEN-VALUE).
  1767. rowObject.MBest:SCREEN-VALUE = rowObject.KGeb_Me:SCREEN-VALUE.
  1768. END.
  1769. FNeu = FALSE.
  1770. FCopy = FALSE.
  1771. REPEAT TRANSACTION:
  1772. RUN SUPER.
  1773. FIND FIRST tBesze.
  1774. FIND bBesze
  1775. WHERE bBesze.Firma = Firma
  1776. AND bBesze.Besnr = iBesnr
  1777. AND bBesze.Pos = iPos.
  1778. ASSIGN
  1779. bBesze.S_Artnr = RowObject.S_Artnr:SCREEN-VALUE
  1780. bBesze.S_Bez1 = RowObject.S_Bez1 :SCREEN-VALUE
  1781. bBesze.S_Bez2 = RowObject.S_Bez2 :SCREEN-VALUE.
  1782. iRecid = RECID(bBesze).
  1783. hbBesze = BUFFER bBesze:HANDLE.
  1784. /* ------------------------------------------------------ */
  1785. /* Alle Felder auf Buffer, welche nicht auf Screen sind */
  1786. /* in die Tabelle Besze schreiben */
  1787. /* ------------------------------------------------------ */
  1788. DO ii = 1 TO htBesze:NUM-FIELDS:
  1789. hFeld = htBesze:BUFFER-FIELD(ii) NO-ERROR.
  1790. IF hFeld:EXTENT > 0 THEN NEXT.
  1791. cFeld = 'rowObject.' + hFeld:NAME.
  1792. IF LOOKUP(cFeld, '{&DISPLAYED-FIELDS}', ' ') > 0 THEN NEXT.
  1793. cFeld = ENTRY(2, cFeld, '.').
  1794. hbFeld = hbBesze:BUFFER-FIELD(cFeld) NO-ERROR.
  1795. IF NOT VALID-HANDLE (hbFeld) THEN NEXT.
  1796. hbFeld:BUFFER-VALUE = hFeld:BUFFER-VALUE.
  1797. END.
  1798. FIND bArtLief
  1799. WHERE bArtLief.Firma = tBesko.Firma
  1800. AND bArtLief.Knr = tBesko.Knr
  1801. AND bArtLief.Artnr = bBesze.Artnr
  1802. AND bArtLief.Inhalt = bBesze.Inhalt
  1803. AND bArtLief.Jahr = bBesze.Jahr.
  1804. ASSIGN
  1805. bArtLief.S_Artnr = RowObject.S_Artnr:SCREEN-VALUE
  1806. bArtLief.S_Bez1 = RowObject.S_Bez1 :SCREEN-VALUE
  1807. bArtLief.S_Bez2 = RowObject.S_Bez2 :SCREEN-VALUE.
  1808. RELEASE bBesze.
  1809. RELEASE bArtLief.
  1810. LEAVE.
  1811. END.
  1812. DYNAMIC-FUNCTION ('calculateBeszeNetto':U, Firma, iBesnr, iPos, iRecid ).
  1813. DYNAMIC-FUNCTION ('calculateBeskoTotal':U, Firma, iBesnr, OUTPUT nTotale ).
  1814. RUN refreshRow IN hDaten NO-ERROR.
  1815. PUBLISH 'REFRESHBESKO'.
  1816. END PROCEDURE.
  1817. /* _UIB-CODE-BLOCK-END */
  1818. &ANALYZE-RESUME
  1819. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject vTableWin
  1820. PROCEDURE viewObject :
  1821. /* ------------------------------------------------------------------------------ */
  1822. /* Purpose: */
  1823. /* Parameters: <none> */
  1824. /* Notes: */
  1825. /* ------------------------------------------------------------------------------ */
  1826. /* Code placed here will execute PRIOR to standard behavior. */
  1827. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  1828. DEFINE BUFFER bBesze FOR Besze.
  1829. RUN SUPER.
  1830. iStatus = DYNAMIC-FUNCTION ('getStatus':U IN hKontainer ) NO-ERROR.
  1831. RUN refreshRow IN hDaten NO-ERROR.
  1832. END PROCEDURE.
  1833. /* _UIB-CODE-BLOCK-END */
  1834. &ANALYZE-RESUME
  1835. /* ************************ Function Implementations ***************** */
  1836. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getArtikel vTableWin
  1837. FUNCTION getArtikel RETURNS RECID
  1838. ( ipiArt AS INTEGER, ipiRecid AS RECID, ipiArtnr AS INTEGER, ipiInhalt AS INTEGER, ipiJahr AS INTEGER ) :
  1839. /* ------------------------------------------------------------------------------ */
  1840. /* Purpose: */
  1841. /* Parameters: <none> */
  1842. /* Notes: */
  1843. /* ------------------------------------------------------------------------------ */
  1844. DEFINE VARIABLE iRecid AS RECID NO-UNDO INIT ?.
  1845. DEFINE BUFFER bArtst FOR Artst.
  1846. DEFINE BUFFER bArtbez FOR Artbez.
  1847. DEFINE BUFFER bArtLief FOR ArtLief.
  1848. CASE ipiArt:
  1849. WHEN 1 THEN
  1850. DO:
  1851. FIND bArtst NO-LOCK WHERE RECID(bArtst) = ipiRecid NO-ERROR.
  1852. END.
  1853. WHEN 2 THEN
  1854. DO:
  1855. FIND FIRST bArtst NO-LOCK
  1856. WHERE bArtst.Firma = Firma
  1857. AND bArtst.Artnr = ipiArtnr NO-ERROR.
  1858. END.
  1859. WHEN 3 THEN
  1860. DO:
  1861. FIND FIRST bArtst NO-LOCK
  1862. WHERE bArtst.Firma = Firma
  1863. AND bArtst.Artnr = ipiArtnr
  1864. AND bArtst.Inhalt = ipiInhalt NO-ERROR.
  1865. END.
  1866. WHEN 4 THEN
  1867. DO:
  1868. FIND FIRST bArtst NO-LOCK
  1869. WHERE bArtst.Firma = Firma
  1870. AND bArtst.Artnr = ipiArtnr
  1871. AND bArtst.Inhalt = ipiInhalt
  1872. AND bArtst.Jahr = ipiJahr NO-ERROR.
  1873. END.
  1874. END CASE.
  1875. IF NOT AVAILABLE bArtst THEN RETURN iRecid.
  1876. iRecid = RECID(bArtst).
  1877. FIND FIRST bArtbez OF bArtst NO-ERROR.
  1878. FIND FIRST bArtLief
  1879. WHERE bArtLief.Firma = bArtst.Firma
  1880. AND bArtLief.Knr = Besko.Knr
  1881. AND bArtLief.Artnr = bArtst.Artnr
  1882. AND bArtLief.Inhalt = bArtst.Inhalt
  1883. AND bArtLief.Jahr = bArtst.Jahr NO-ERROR.
  1884. DO WITH FRAME {&FRAME-NAME}:
  1885. ASSIGN
  1886. rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr)
  1887. rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt)
  1888. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr).
  1889. IF AVAILABLE bArtbez THEN
  1890. DO:
  1891. ASSIGN
  1892. rowObject.Bez1:SCREEN-VALUE = bArtbez.Bez1
  1893. rowObject.Bez2:SCREEN-VALUE = bArtbez.Bez2.
  1894. END.
  1895. IF AVAILABLE bArtLief THEN
  1896. DO:
  1897. ASSIGN
  1898. rowObject.S_Artnr :SCREEN-VALUE = bArtLief.S_Artnr
  1899. rowObject.S_Bez1 :SCREEN-VALUE = bArtLief.S_Bez1
  1900. rowObject.S_Bez2 :SCREEN-VALUE = bArtLief.S_Bez2
  1901. rowObject.S_Preis_Frw:SCREEN-VALUE = STRING(bArtLief.S_Preis_Frw)
  1902. rowObject.S_Preis :SCREEN-VALUE = STRING(bArtLief.S_Preis)
  1903. rowObject.Rabatt :SCREEN-VALUE = STRING(bArtLief.Rabatt)
  1904. rowObject.Spesen :SCREEN-VALUE = STRING(bArtLief.Spesen)
  1905. rowObject.L_EP_FRW :SCREEN-VALUE = STRING(bArtLief.L_EP_Frw)
  1906. rowObject.L_EP :SCREEN-VALUE = STRING(bArtLief.L_EP )
  1907. .
  1908. END.
  1909. END.
  1910. RETURN iRecid.
  1911. END FUNCTION.
  1912. /* _UIB-CODE-BLOCK-END */
  1913. &ANALYZE-RESUME