f-besze.w 84 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS F-Frame-Win
  8. /*------------------------------------------------------------------------
  9. File:
  10. Description: from cntnrfrm.w - ADM SmartFrame Template
  11. Input Parameters:
  12. <none>
  13. Output Parameters:
  14. <none>
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress UIB. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEF VAR QOpen AS LOG.
  28. DEF VAR Vorhanden AS LOG NO-UNDO.
  29. DEF VAR VUpdate AS LOG NO-UNDO.
  30. DEF VAR VNeu AS LOG NO-UNDO.
  31. DEF VAR XArtnr AS INT NO-UNDO.
  32. DEF VAR VArtnr AS INT NO-UNDO.
  33. DEF VAR VInhalt AS INT NO-UNDO.
  34. DEF VAR VBez1 AS CHAR NO-UNDO.
  35. DEF VAR VBez2 AS CHAR NO-UNDO.
  36. DEF VAR VJahr AS INT NO-UNDO.
  37. DEF VAR XArtnt AS INT NO-UNDO.
  38. DEF VAR LHandle AS HANDLE NO-UNDO.
  39. DEF VAR XHandle AS HANDLE NO-UNDO.
  40. DEF VAR hDaten AS HANDLE NO-UNDO.
  41. DEF VAR hFenster AS HANDLE NO-UNDO.
  42. DEF VAR FeldName AS CHAR NO-UNDO.
  43. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  44. DEF VAR VPos AS INT NO-UNDO.
  45. DEF VAR FAlfa AS LOG NO-UNDO.
  46. DEF VAR FNeuMut AS LOG NO-UNDO.
  47. DEF VAR KGebKBez AS CHAR NO-UNDO.
  48. DEF VAR BBestand AS DEC NO-UNDO.
  49. DEF VAR VSein_Preis_FRW AS DEC DECIMALS 4 NO-UNDO.
  50. DEF VAR VSein_Preis AS DEC DECIMALS 4 NO-UNDO.
  51. DEF VAR VRabatt AS DEC DECIMALS 4 NO-UNDO.
  52. DEF VAR VSpesen AS DEC DECIMALS 4 NO-UNDO.
  53. DEF VAR VPreis AS DEC DECIMALS 4 NO-UNDO.
  54. DEF VAR VL_EP_FRW AS DEC DECIMALS 4 NO-UNDO.
  55. DEF VAR VAlter_Listen_EP AS DEC DECIMALS 4 NO-UNDO.
  56. DEF VAR VAlter_EP AS DEC DECIMALS 4 NO-UNDO.
  57. DEF VAR VFRW AS CHAR NO-UNDO.
  58. DEF VAR VKurs AS DEC DECIMALS 4 NO-UNDO.
  59. DEF VAR VFaktor AS INT NO-UNDO.
  60. DEF VAR iKnr AS INT NO-UNDO.
  61. DEF VAR iBnr AS INT NO-UNDO.
  62. DEF VAR BRecid AS RECID NO-UNDO.
  63. DEF VAR iStatus AS INT NO-UNDO.
  64. DEF VAR MinNr AS INT NO-UNDO.
  65. DEF BUFFER BBesze FOR Besze.
  66. DEF BUFFER BArtst FOR Artst.
  67. DEF TEMP-TABLE TBrowser NO-UNDO
  68. FIELD Feld AS CHAR
  69. FIELD Pos AS INT
  70. FIELD Breit AS DEC
  71. FIELD fAktiv AS LOG
  72. FIELD fVisible AS LOG
  73. FIELD PosAkt AS INT
  74. FIELD BreitAkt AS DEC
  75. FIELD hCol AS HANDLE
  76. FIELD cType AS CHAR
  77. FIELD cFormat AS CHAR
  78. FIELD cInitial AS CHAR
  79. FIELD cLabel AS CHAR.
  80. DEF TEMP-TABLE tBesze LIKE Besze.
  81. /* ---------- Globale Variablen ---------------------------------- */
  82. { v8/globvar.i" " " " "SHARED" }
  83. { v8/debivar.i " " " " "SHARED" }
  84. { v8/artivar.i " " " " "SHARED" }
  85. { v8/contvar.i " " " " "SHARED" }
  86. /* _UIB-CODE-BLOCK-END */
  87. &ANALYZE-RESUME
  88. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  89. /* ******************** Preprocessor Definitions ******************** */
  90. &Scoped-define PROCEDURE-TYPE SmartFrame
  91. &Scoped-define DB-AWARE no
  92. &Scoped-define ADM-CONTAINER FRAME
  93. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  94. &Scoped-define FRAME-NAME F-Main
  95. &Scoped-define BROWSE-NAME Br_Besze
  96. /* External Tables */
  97. &Scoped-define EXTERNAL-TABLES Besko
  98. &Scoped-define FIRST-EXTERNAL-TABLE Besko
  99. /* Need to scope the external tables to this procedure */
  100. DEFINE QUERY external_tables FOR Besko.
  101. /* Internal Tables (found by Frame, Query & Browse Queries) */
  102. &Scoped-define INTERNAL-TABLES Besze
  103. /* Definitions for BROWSE Br_Besze */
  104. &Scoped-define FIELDS-IN-QUERY-Br_Besze Besze.Artnr ~
  105. DYNAMIC-FUNCTION('getKGebindeKBez':U, KGeb_Cd) @ KGebKBez Besze.Jahr ~
  106. Besze.Bez1 Besze.Lager ~
  107. DYNAMIC-FUNCTION('getLagerBestand':U, Besze.Artnr, Besze.Inhalt, Besze.Jahr, Besze.Lager) @ BBestand ~
  108. Besze.Verbrauch Besze.Rueckstand Besze.MBest Besze.MGeli Besze.S_Artnr ~
  109. Besze.S_Preis_FRW Besze.L_EP Besze.Inhalt
  110. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Besze
  111. &Scoped-define QUERY-STRING-Br_Besze FOR EACH Besze OF Besko NO-LOCK
  112. &Scoped-define OPEN-QUERY-Br_Besze OPEN QUERY Br_Besze FOR EACH Besze OF Besko NO-LOCK.
  113. &Scoped-define TABLES-IN-QUERY-Br_Besze Besze
  114. &Scoped-define FIRST-TABLE-IN-QUERY-Br_Besze Besze
  115. /* Definitions for FRAME F-Main */
  116. /* Standard List Definitions */
  117. &Scoped-Define ENABLED-OBJECTS Br_Besze F_Bestand F_Bestand_Neu F_GGeb ~
  118. F_VGeb F_KGeb RECT-39 RECT-40
  119. &Scoped-Define DISPLAYED-FIELDS Besko.Besnr Besko.Knr Besko.Lief_Datum ~
  120. Besze.Inhalt Besze.Jahr Besze.Bez1 Besze.Bez2 Besze.S_Artnr Besze.GGeb_Me ~
  121. Besze.VGeb_Me Besze.KGeb_Me Besze.S_Preis_FRW Besze.S_Preis Besze.Rabatt ~
  122. Besze.Spesen Besze.Preis Besze.L_EP_FRW Besze.Aktion Besze.Alter_Listen_EP ~
  123. Besze.Alter_EP
  124. &Scoped-define DISPLAYED-TABLES Besko Besze
  125. &Scoped-define FIRST-DISPLAYED-TABLE Besko
  126. &Scoped-define SECOND-DISPLAYED-TABLE Besze
  127. &Scoped-Define DISPLAYED-OBJECTS F_Adresse F_Artnr F_Betrag F_Bestand ~
  128. F_Bestand_Neu F_Betrag_FRW
  129. /* Custom List Definitions */
  130. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  131. &Scoped-define List-1 Besko.Besnr Besko.Knr F_Adresse Besko.Lief_Datum
  132. &Scoped-define List-2 F_Artnr Besze.Inhalt Besze.Jahr Besze.Bez1 Besze.Bez2 ~
  133. Besze.S_Artnr Besze.GGeb_Me Besze.VGeb_Me Besze.KGeb_Me Besze.S_Preis_FRW ~
  134. Besze.S_Preis Besze.Rabatt Besze.Spesen Besze.Preis Besze.L_EP_FRW ~
  135. Besze.Aktion Besze.Alter_Listen_EP Besze.Alter_EP F_Betrag F_Betrag_FRW
  136. &Scoped-define List-3 Besze.Bez1 Besze.Bez2 Besze.S_Artnr Besze.GGeb_Me ~
  137. Besze.VGeb_Me Besze.KGeb_Me
  138. &Scoped-define List-5 Besze.S_Preis_FRW Besze.S_Preis Besze.Rabatt ~
  139. Besze.Spesen Besze.Preis Besze.L_EP_FRW Besze.Aktion Besze.Alter_Listen_EP ~
  140. Besze.Alter_EP F_Betrag F_Betrag_FRW
  141. &Scoped-define List-6 Besze.GGeb_Me Besze.VGeb_Me Besze.KGeb_Me
  142. /* _UIB-PREPROCESSOR-BLOCK-END */
  143. &ANALYZE-RESUME
  144. /* *********************** Control Definitions ********************** */
  145. /* Definitions of the field level widgets */
  146. DEFINE VARIABLE F_Adresse AS CHARACTER FORMAT "X(256)":U
  147. VIEW-AS FILL-IN NATIVE
  148. SIZE 57.6 BY 1
  149. BGCOLOR 15 NO-UNDO.
  150. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(10)"
  151. VIEW-AS FILL-IN NATIVE
  152. SIZE 12 BY 1
  153. BGCOLOR 15 .
  154. DEFINE VARIABLE F_Bestand AS DECIMAL FORMAT "z,zzz,zz9-":U INITIAL 0
  155. LABEL "Bestand"
  156. VIEW-AS FILL-IN NATIVE
  157. SIZE 16.8 BY 1
  158. BGCOLOR 14 NO-UNDO.
  159. DEFINE VARIABLE F_Bestand_Neu AS DECIMAL FORMAT "z,zzz,zz9-":U INITIAL 0
  160. LABEL "Best. neu"
  161. VIEW-AS FILL-IN NATIVE
  162. SIZE 16.8 BY 1
  163. BGCOLOR 14 NO-UNDO.
  164. DEFINE VARIABLE F_Betrag AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0
  165. LABEL "Betrag"
  166. VIEW-AS FILL-IN NATIVE
  167. SIZE 22.4 BY 1
  168. BGCOLOR 14 NO-UNDO.
  169. DEFINE VARIABLE F_Betrag_FRW AS DECIMAL FORMAT "zzz,zzz,zz9.99-":U INITIAL 0
  170. LABEL "Betrag FRW"
  171. VIEW-AS FILL-IN NATIVE
  172. SIZE 25.2 BY 1
  173. BGCOLOR 14 NO-UNDO.
  174. DEFINE VARIABLE F_GGeb AS CHARACTER FORMAT "X(256)":U
  175. VIEW-AS TEXT
  176. SIZE 14 BY 1
  177. FONT 9 NO-UNDO.
  178. DEFINE VARIABLE F_KGeb AS CHARACTER FORMAT "X(256)":U
  179. VIEW-AS TEXT
  180. SIZE 14 BY 1
  181. FONT 9 NO-UNDO.
  182. DEFINE VARIABLE F_VGeb AS CHARACTER FORMAT "X(256)":U
  183. VIEW-AS TEXT
  184. SIZE 14 BY 1
  185. FONT 9 NO-UNDO.
  186. DEFINE RECTANGLE RECT-39
  187. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  188. SIZE 132 BY 2.95.
  189. DEFINE RECTANGLE RECT-40
  190. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  191. SIZE 132 BY 10.52.
  192. /* Query definitions */
  193. &ANALYZE-SUSPEND
  194. DEFINE QUERY Br_Besze FOR
  195. Besze SCROLLING.
  196. &ANALYZE-RESUME
  197. /* Browse definitions */
  198. DEFINE BROWSE Br_Besze
  199. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Besze F-Frame-Win _STRUCTURED
  200. QUERY Br_Besze DISPLAY
  201. Besze.Artnr FORMAT "999999":U WIDTH 8
  202. DYNAMIC-FUNCTION('getKGebindeKBez':U, KGeb_Cd) @ KGebKBez COLUMN-LABEL "K-Gebinde" FORMAT "x(12)":U
  203. Besze.Jahr FORMAT "9999":U WIDTH 5
  204. Besze.Bez1 COLUMN-LABEL "Artikelbezeichnung" FORMAT "x(30)":U
  205. Besze.Lager COLUMN-LABEL "Lag" FORMAT "99":U WIDTH 4
  206. DYNAMIC-FUNCTION('getLagerBestand':U, Besze.Artnr, Besze.Inhalt, Besze.Jahr, Besze.Lager) @ BBestand COLUMN-LABEL "Bestand" FORMAT "->>>,>>9":U
  207. Besze.Verbrauch FORMAT "->>>,>>9":U WIDTH 8
  208. Besze.Rueckstand FORMAT "->>>,>>9":U WIDTH 8
  209. Besze.MBest COLUMN-LABEL "Bestellt" FORMAT "->>>,>>9":U WIDTH 8
  210. Besze.MGeli COLUMN-LABEL "Geliefert" FORMAT "->>>,>>9":U
  211. WIDTH 8
  212. Besze.S_Artnr COLUMN-LABEL "S. Nummer" FORMAT "x(10)":U WIDTH 10
  213. Besze.S_Preis_FRW COLUMN-LABEL "Sein Preis" FORMAT "zzz,zz9.999":U
  214. Besze.L_EP COLUMN-LABEL "Letzt.EP CHF" FORMAT "z,zz9.99":U
  215. WIDTH 13
  216. Besze.Inhalt FORMAT "9999":U WIDTH 6
  217. /* _UIB-CODE-BLOCK-END */
  218. &ANALYZE-RESUME
  219. WITH NO-ROW-MARKERS SEPARATORS SIZE 132 BY 6.19
  220. BGCOLOR 15 .
  221. /* ************************ Frame Definitions *********************** */
  222. DEFINE FRAME F-Main
  223. Br_Besze AT ROW 15.24 COL 2
  224. Besko.Besnr AT ROW 2.86 COL 7.2 COLON-ALIGNED NO-LABEL
  225. VIEW-AS FILL-IN NATIVE
  226. SIZE 12 BY 1
  227. BGCOLOR 15
  228. Besko.Knr AT ROW 2.86 COL 27.2 COLON-ALIGNED NO-LABEL
  229. VIEW-AS FILL-IN NATIVE
  230. SIZE 12 BY 1
  231. BGCOLOR 15
  232. F_Adresse AT ROW 2.86 COL 44.6 COLON-ALIGNED NO-LABEL
  233. Besko.Lief_Datum AT ROW 2.86 COL 107.4 COLON-ALIGNED NO-LABEL
  234. VIEW-AS FILL-IN NATIVE
  235. SIZE 20.4 BY 1
  236. BGCOLOR 15
  237. F_Artnr AT ROW 5.76 COL 3 COLON-ALIGNED NO-LABEL
  238. Besze.Inhalt AT ROW 5.76 COL 15.8 COLON-ALIGNED NO-LABEL FORMAT "9999"
  239. VIEW-AS FILL-IN NATIVE
  240. SIZE 9 BY 1
  241. BGCOLOR 15
  242. Besze.Jahr AT ROW 5.76 COL 25.8 COLON-ALIGNED NO-LABEL FORMAT "9999"
  243. VIEW-AS FILL-IN NATIVE
  244. SIZE 9 BY 1
  245. BGCOLOR 15
  246. Besze.Bez1 AT ROW 5.76 COL 35.6 COLON-ALIGNED NO-LABEL FORMAT "x(30)"
  247. VIEW-AS FILL-IN NATIVE
  248. SIZE 35 BY 1
  249. BGCOLOR 15
  250. Besze.Bez2 AT ROW 6.76 COL 35.6 COLON-ALIGNED NO-LABEL FORMAT "x(30)"
  251. VIEW-AS FILL-IN NATIVE
  252. SIZE 35 BY 1
  253. BGCOLOR 15
  254. Besze.S_Artnr AT ROW 5.76 COL 74.8 COLON-ALIGNED NO-LABEL FORMAT "x(12)"
  255. VIEW-AS FILL-IN NATIVE
  256. SIZE 24 BY 1
  257. BGCOLOR 15 NO-TAB-STOP
  258. Besze.GGeb_Me AT ROW 4.71 COL 116.2 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9-"
  259. VIEW-AS FILL-IN NATIVE
  260. SIZE 12 BY 1
  261. BGCOLOR 15
  262. Besze.VGeb_Me AT ROW 5.76 COL 116.2 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9-"
  263. VIEW-AS FILL-IN NATIVE
  264. SIZE 12 BY 1
  265. BGCOLOR 15
  266. Besze.KGeb_Me AT ROW 6.76 COL 116.2 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9-"
  267. VIEW-AS FILL-IN NATIVE
  268. SIZE 12 BY 1
  269. BGCOLOR 15
  270. Besze.S_Preis_FRW AT ROW 10.52 COL 2 COLON-ALIGNED NO-LABEL
  271. VIEW-AS FILL-IN NATIVE
  272. SIZE 26 BY 1
  273. BGCOLOR 15
  274. Besze.S_Preis AT ROW 10.52 COL 30 COLON-ALIGNED NO-LABEL FORMAT "zzz,zz9.9999"
  275. VIEW-AS FILL-IN NATIVE
  276. SIZE 20 BY 1
  277. BGCOLOR 15
  278. Besze.Rabatt AT ROW 10.52 COL 52 COLON-ALIGNED NO-LABEL
  279. VIEW-AS FILL-IN NATIVE
  280. SIZE 11 BY 1
  281. BGCOLOR 15
  282. Besze.Spesen AT ROW 10.52 COL 65 COLON-ALIGNED NO-LABEL
  283. VIEW-AS FILL-IN NATIVE
  284. SIZE 11 BY 1
  285. BGCOLOR 15
  286. Besze.Preis AT ROW 10.52 COL 77 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9.9999"
  287. VIEW-AS FILL-IN NATIVE
  288. SIZE 18 BY 1
  289. BGCOLOR 15
  290. Besze.L_EP_FRW AT ROW 10.52 COL 96 COLON-ALIGNED NO-LABEL FORMAT "zzz,zzz,zz9.9999"
  291. VIEW-AS FILL-IN NATIVE
  292. SIZE 26 BY 1
  293. BGCOLOR 15
  294. Besze.Aktion AT ROW 10.52 COL 123.4 COLON-ALIGNED NO-LABEL FORMAT "J/N"
  295. VIEW-AS FILL-IN NATIVE
  296. SIZE 5.4 BY 1
  297. BGCOLOR 15
  298. Besze.Alter_Listen_EP AT ROW 11.71 COL 30 COLON-ALIGNED NO-LABEL FORMAT "zzz,zz9.9999"
  299. VIEW-AS FILL-IN NATIVE
  300. SIZE 20 BY 1
  301. BGCOLOR 15
  302. Besze.Alter_EP AT ROW 11.71 COL 77 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9.9999"
  303. VIEW-AS FILL-IN NATIVE
  304. SIZE 18 BY 1
  305. BGCOLOR 15
  306. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  307. SIDE-LABELS NO-UNDERLINE THREE-D
  308. AT COL 1 ROW 1
  309. SIZE 134.8 BY 20.76.
  310. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */
  311. DEFINE FRAME F-Main
  312. F_Betrag AT ROW 12.14 COL 106.4 COLON-ALIGNED
  313. F_Bestand AT ROW 13.38 COL 31.2 COLON-ALIGNED
  314. F_Bestand_Neu AT ROW 13.38 COL 60.6 COLON-ALIGNED
  315. F_Betrag_FRW AT ROW 13.38 COL 103.6 COLON-ALIGNED
  316. F_GGeb AT ROW 4.62 COL 100.8 COLON-ALIGNED NO-LABEL
  317. F_VGeb AT ROW 5.76 COL 100.8 COLON-ALIGNED NO-LABEL
  318. F_KGeb AT ROW 6.76 COL 100.8 COLON-ALIGNED NO-LABEL
  319. "BestNr" VIEW-AS TEXT
  320. SIZE 13.8 BY 1 AT ROW 1.62 COL 8.2
  321. FONT 9
  322. "Sein Preis" VIEW-AS TEXT
  323. SIZE 20 BY 1 AT ROW 8.43 COL 32
  324. FONT 9
  325. "Rabatt" VIEW-AS TEXT
  326. SIZE 11 BY 1 AT ROW 8.43 COL 54
  327. FONT 9
  328. "Spesen" VIEW-AS TEXT
  329. SIZE 11 BY 1 AT ROW 8.43 COL 67
  330. FONT 9
  331. "Preis" VIEW-AS TEXT
  332. SIZE 18 BY 1 AT ROW 8.43 COL 79
  333. FONT 9
  334. "Letzter EP FRW" VIEW-AS TEXT
  335. SIZE 26 BY 1 AT ROW 8.43 COL 123 RIGHT-ALIGNED
  336. FONT 9
  337. "Aktion" VIEW-AS TEXT
  338. SIZE 9 BY 1 AT ROW 8.43 COL 125.4
  339. FONT 9
  340. "L-Listen-EP" VIEW-AS TEXT
  341. SIZE 20 BY 1 AT ROW 9.43 COL 32
  342. FONT 9
  343. "Letzter EP" VIEW-AS TEXT
  344. SIZE 18 BY 1 AT ROW 9.43 COL 79
  345. FONT 9
  346. "LiefNr" VIEW-AS TEXT
  347. SIZE 11.2 BY 1 AT ROW 1.62 COL 30.2
  348. FONT 9
  349. "Lieferant" VIEW-AS TEXT
  350. SIZE 31.6 BY 1 AT ROW 1.62 COL 46.6
  351. FONT 9
  352. "Lieferdatum" VIEW-AS TEXT
  353. SIZE 20.4 BY 1 AT ROW 1.62 COL 109
  354. FONT 9
  355. "ArtNr" VIEW-AS TEXT
  356. SIZE 11.2 BY 1 AT ROW 4.71 COL 5.4
  357. FONT 9
  358. "Inhalt" VIEW-AS TEXT
  359. SIZE 9 BY 1 AT ROW 4.71 COL 17.8
  360. FONT 9
  361. "Jahr" VIEW-AS TEXT
  362. SIZE 9 BY 1 AT ROW 4.71 COL 27.8
  363. FONT 9
  364. "Bezeichnung" VIEW-AS TEXT
  365. SIZE 35 BY 1 AT ROW 4.71 COL 37.6
  366. FONT 9
  367. "Seine ArtNr" VIEW-AS TEXT
  368. SIZE 23.2 BY 1 AT ROW 4.71 COL 76.8
  369. FONT 9
  370. "Sein Preis FRW" VIEW-AS TEXT
  371. SIZE 26 BY 1 AT ROW 8.43 COL 4
  372. FONT 9
  373. RECT-39 AT ROW 1.19 COL 2.4
  374. RECT-40 AT ROW 4.43 COL 2
  375. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  376. SIDE-LABELS NO-UNDERLINE THREE-D
  377. AT COL 1 ROW 1
  378. SIZE 134.8 BY 20.76.
  379. /* *********************** Procedure Settings ************************ */
  380. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  381. /* Settings for THIS-PROCEDURE
  382. Type: SmartFrame
  383. External Tables: AnaDat.Besko
  384. Allow: Basic,Browse,DB-Fields,Query,Smart
  385. Design Page: 1
  386. Other Settings: PERSISTENT-ONLY COMPILE
  387. */
  388. /* This procedure should always be RUN PERSISTENT. Report the error, */
  389. /* then cleanup and return. */
  390. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  391. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  392. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  393. RETURN.
  394. END.
  395. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  396. /* ************************* Create Window ************************** */
  397. &ANALYZE-SUSPEND _CREATE-WINDOW
  398. /* DESIGN Window definition (used by the UIB)
  399. CREATE WINDOW F-Frame-Win ASSIGN
  400. HEIGHT = 20.76
  401. WIDTH = 134.8.
  402. /* END WINDOW DEFINITION */
  403. */
  404. &ANALYZE-RESUME
  405. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB F-Frame-Win
  406. /* ************************* Included-Libraries *********************** */
  407. {src/adm/method/containr.i}
  408. /* _UIB-CODE-BLOCK-END */
  409. &ANALYZE-RESUME
  410. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  411. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  412. /* SETTINGS FOR WINDOW F-Frame-Win
  413. VISIBLE,,RUN-PERSISTENT */
  414. /* SETTINGS FOR FRAME F-Main
  415. NOT-VISIBLE FRAME-NAME Custom */
  416. /* BROWSE-TAB Br_Besze 1 F-Main */
  417. /* SETTINGS FOR FILL-IN Besze.Aktion IN FRAME F-Main
  418. NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */
  419. /* SETTINGS FOR FILL-IN Besze.Alter_EP IN FRAME F-Main
  420. NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */
  421. /* SETTINGS FOR FILL-IN Besze.Alter_Listen_EP IN FRAME F-Main
  422. NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */
  423. /* SETTINGS FOR FILL-IN Besko.Besnr IN FRAME F-Main
  424. NO-ENABLE 1 */
  425. /* SETTINGS FOR FILL-IN Besze.Bez1 IN FRAME F-Main
  426. NO-ENABLE 2 3 EXP-LABEL EXP-FORMAT */
  427. /* SETTINGS FOR FILL-IN Besze.Bez2 IN FRAME F-Main
  428. NO-ENABLE 2 3 EXP-LABEL EXP-FORMAT */
  429. ASSIGN
  430. Br_Besze:COLUMN-RESIZABLE IN FRAME F-Main = TRUE
  431. Br_Besze:COLUMN-MOVABLE IN FRAME F-Main = TRUE.
  432. /* SETTINGS FOR FILL-IN F_Adresse IN FRAME F-Main
  433. NO-ENABLE 1 */
  434. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main
  435. NO-ENABLE 2 */
  436. /* SETTINGS FOR FILL-IN F_Betrag IN FRAME F-Main
  437. NO-ENABLE 2 5 */
  438. /* SETTINGS FOR FILL-IN F_Betrag_FRW IN FRAME F-Main
  439. NO-ENABLE 2 5 */
  440. /* SETTINGS FOR FILL-IN F_GGeb IN FRAME F-Main
  441. NO-DISPLAY */
  442. /* SETTINGS FOR FILL-IN F_KGeb IN FRAME F-Main
  443. NO-DISPLAY */
  444. /* SETTINGS FOR FILL-IN F_VGeb IN FRAME F-Main
  445. NO-DISPLAY */
  446. /* SETTINGS FOR FILL-IN Besze.GGeb_Me IN FRAME F-Main
  447. NO-ENABLE 2 3 6 EXP-LABEL EXP-FORMAT */
  448. /* SETTINGS FOR FILL-IN Besze.Inhalt IN FRAME F-Main
  449. NO-ENABLE 2 EXP-LABEL EXP-FORMAT */
  450. /* SETTINGS FOR FILL-IN Besze.Jahr IN FRAME F-Main
  451. NO-ENABLE 2 EXP-LABEL EXP-FORMAT */
  452. /* SETTINGS FOR FILL-IN Besze.KGeb_Me IN FRAME F-Main
  453. NO-ENABLE 2 3 6 EXP-LABEL EXP-FORMAT */
  454. /* SETTINGS FOR FILL-IN Besko.Knr IN FRAME F-Main
  455. NO-ENABLE 1 */
  456. /* SETTINGS FOR FILL-IN Besko.Lief_Datum IN FRAME F-Main
  457. NO-ENABLE 1 */
  458. /* SETTINGS FOR FILL-IN Besze.L_EP_FRW IN FRAME F-Main
  459. NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */
  460. /* SETTINGS FOR FILL-IN Besze.Preis IN FRAME F-Main
  461. NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */
  462. /* SETTINGS FOR FILL-IN Besze.Rabatt IN FRAME F-Main
  463. NO-ENABLE 2 5 */
  464. /* SETTINGS FOR FILL-IN Besze.Spesen IN FRAME F-Main
  465. NO-ENABLE 2 5 */
  466. /* SETTINGS FOR FILL-IN Besze.S_Artnr IN FRAME F-Main
  467. NO-ENABLE 2 3 EXP-LABEL EXP-FORMAT */
  468. ASSIGN
  469. Besze.S_Artnr:READ-ONLY IN FRAME F-Main = TRUE.
  470. /* SETTINGS FOR FILL-IN Besze.S_Preis IN FRAME F-Main
  471. NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */
  472. /* SETTINGS FOR FILL-IN Besze.S_Preis_FRW IN FRAME F-Main
  473. NO-ENABLE 2 5 */
  474. /* SETTINGS FOR FILL-IN Besze.VGeb_Me IN FRAME F-Main
  475. NO-ENABLE 2 3 6 EXP-LABEL EXP-FORMAT */
  476. /* SETTINGS FOR TEXT-LITERAL "Letzter EP FRW"
  477. SIZE 26 BY 1 AT ROW 8.43 COL 123 RIGHT-ALIGNED */
  478. /* _RUN-TIME-ATTRIBUTES-END */
  479. &ANALYZE-RESUME
  480. /* Setting information for Queries and Browse Widgets fields */
  481. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Besze
  482. /* Query rebuild information for BROWSE Br_Besze
  483. _TblList = "AnaDat.Besze OF AnaDat.Besko"
  484. _FldNameList[1] > AnaDat.Besze.Artnr
  485. "Besze.Artnr" ? ? "integer" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  486. _FldNameList[2] > "_<CALC>"
  487. "DYNAMIC-FUNCTION('getKGebindeKBez':U, KGeb_Cd) @ KGebKBez" "K-Gebinde" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  488. _FldNameList[3] > AnaDat.Besze.Jahr
  489. "Besze.Jahr" ? ? "integer" ? ? ? ? ? ? no ? no no "5" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  490. _FldNameList[4] > AnaDat.Besze.Bez1
  491. "Besze.Bez1" "Artikelbezeichnung" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  492. _FldNameList[5] > AnaDat.Besze.Lager
  493. "Besze.Lager" "Lag" ? "integer" ? ? ? ? ? ? no ? no no "4" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  494. _FldNameList[6] > "_<CALC>"
  495. "DYNAMIC-FUNCTION('getLagerBestand':U, Besze.Artnr, Besze.Inhalt, Besze.Jahr, Besze.Lager) @ BBestand" "Bestand" "->>>,>>9" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  496. _FldNameList[7] > AnaDat.Besze.Verbrauch
  497. "Besze.Verbrauch" ? "->>>,>>9" "decimal" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  498. _FldNameList[8] > AnaDat.Besze.Rueckstand
  499. "Besze.Rueckstand" ? "->>>,>>9" "decimal" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  500. _FldNameList[9] > AnaDat.Besze.MBest
  501. "Besze.MBest" "Bestellt" "->>>,>>9" "decimal" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  502. _FldNameList[10] > AnaDat.Besze.MGeli
  503. "Besze.MGeli" "Geliefert" "->>>,>>9" "decimal" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  504. _FldNameList[11] > AnaDat.Besze.S_Artnr
  505. "Besze.S_Artnr" "S. Nummer" "x(10)" "character" ? ? ? ? ? ? no ? no no "10" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  506. _FldNameList[12] > AnaDat.Besze.S_Preis_FRW
  507. "Besze.S_Preis_FRW" "Sein Preis" "zzz,zz9.999" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  508. _FldNameList[13] > AnaDat.Besze.L_EP
  509. "Besze.L_EP" "Letzt.EP CHF" "z,zz9.99" "decimal" ? ? ? ? ? ? no ? no no "13" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  510. _FldNameList[14] > AnaDat.Besze.Inhalt
  511. "Besze.Inhalt" ? ? "integer" ? ? ? ? ? ? no ? no no "6" yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  512. _Query is NOT OPENED
  513. */ /* BROWSE Br_Besze */
  514. &ANALYZE-RESUME
  515. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  516. /* Query rebuild information for FRAME F-Main
  517. _Options = ""
  518. _Query is NOT OPENED
  519. */ /* FRAME F-Main */
  520. &ANALYZE-RESUME
  521. /* ************************ Control Triggers ************************ */
  522. &Scoped-define SELF-NAME F-Main
  523. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main F-Frame-Win
  524. ON END-ERROR OF FRAME F-Main
  525. DO:
  526. RUN new-state ( INPUT 'ENDE, MAIN':U ).
  527. RETURN NO-APPLY.
  528. END.
  529. /* _UIB-CODE-BLOCK-END */
  530. &ANALYZE-RESUME
  531. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main F-Frame-Win
  532. ON ENDKEY OF FRAME F-Main
  533. DO:
  534. RUN new-state ( INPUT 'ENDE, MAIN':U ).
  535. RETURN NO-APPLY.
  536. END.
  537. /* _UIB-CODE-BLOCK-END */
  538. &ANALYZE-RESUME
  539. &Scoped-define SELF-NAME Besze.Aktion
  540. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Aktion F-Frame-Win
  541. ON END OF Besze.Aktion IN FRAME F-Main /* Aktion */
  542. DO:
  543. IF VNeu THEN RETURN NO-APPLY.
  544. APPLY 'TAB' TO SELF.
  545. RETURN NO-APPLY.
  546. END.
  547. /* _UIB-CODE-BLOCK-END */
  548. &ANALYZE-RESUME
  549. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Aktion F-Frame-Win
  550. ON END-ERROR OF Besze.Aktion IN FRAME F-Main /* Aktion */
  551. DO:
  552. RUN ABBRECHEN.
  553. RETURN NO-APPLY.
  554. END.
  555. /* _UIB-CODE-BLOCK-END */
  556. &ANALYZE-RESUME
  557. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Aktion F-Frame-Win
  558. ON LEAVE OF Besze.Aktion IN FRAME F-Main /* Aktion */
  559. DO:
  560. IF KEYFUNCTIO(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY.
  561. IF NOT VUpdate THEN RETURN NO-APPLY.
  562. RUN SPEICHERN.
  563. RETURN NO-APPLY.
  564. END.
  565. /* _UIB-CODE-BLOCK-END */
  566. &ANALYZE-RESUME
  567. &Scoped-define SELF-NAME Besze.Alter_EP
  568. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Alter_EP F-Frame-Win
  569. ON LEAVE OF Besze.Alter_EP IN FRAME F-Main /* Alter_EP */
  570. DO:
  571. RUN ABBRECHEN.
  572. RETURN NO-APPLY.
  573. END.
  574. /* _UIB-CODE-BLOCK-END */
  575. &ANALYZE-RESUME
  576. &Scoped-define SELF-NAME Besze.Alter_Listen_EP
  577. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Alter_Listen_EP F-Frame-Win
  578. ON END-ERROR OF Besze.Alter_Listen_EP IN FRAME F-Main /* Alter_Listen_EP */
  579. DO:
  580. RUN ABBRECHEN.
  581. RETURN NO-APPLY.
  582. END.
  583. /* _UIB-CODE-BLOCK-END */
  584. &ANALYZE-RESUME
  585. &Scoped-define SELF-NAME Besze.Bez1
  586. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez1 F-Frame-Win
  587. ON CURSOR-DOWN OF Besze.Bez1 IN FRAME F-Main /* Bez1 */
  588. DO:
  589. APPLY 'ENTRY' TO Besze.S_Preis_FRW.
  590. RETURN NO-APPLY.
  591. END.
  592. /* _UIB-CODE-BLOCK-END */
  593. &ANALYZE-RESUME
  594. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez1 F-Frame-Win
  595. ON END OF Besze.Bez1 IN FRAME F-Main /* Bez1 */
  596. DO:
  597. IF VNeu THEN RETURN NO-APPLY.
  598. RUN SPEICHERN.
  599. RETURN NO-APPLY.
  600. END.
  601. /* _UIB-CODE-BLOCK-END */
  602. &ANALYZE-RESUME
  603. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez1 F-Frame-Win
  604. ON END-ERROR OF Besze.Bez1 IN FRAME F-Main /* Bez1 */
  605. DO:
  606. RUN ABBRECHEN.
  607. RETURN NO-APPLY.
  608. END.
  609. /* _UIB-CODE-BLOCK-END */
  610. &ANALYZE-RESUME
  611. &Scoped-define SELF-NAME Besze.Bez2
  612. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez2 F-Frame-Win
  613. ON END OF Besze.Bez2 IN FRAME F-Main /* Bez2 */
  614. DO:
  615. IF VNeu THEN RETURN NO-APPLY.
  616. RUN SPEICHERN.
  617. RETURN NO-APPLY.
  618. END.
  619. /* _UIB-CODE-BLOCK-END */
  620. &ANALYZE-RESUME
  621. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez2 F-Frame-Win
  622. ON END-ERROR OF Besze.Bez2 IN FRAME F-Main /* Bez2 */
  623. DO:
  624. RUN ABBRECHEN.
  625. RETURN NO-APPLY.
  626. END.
  627. /* _UIB-CODE-BLOCK-END */
  628. &ANALYZE-RESUME
  629. &Scoped-define BROWSE-NAME Br_Besze
  630. &Scoped-define SELF-NAME Br_Besze
  631. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win
  632. ON DELETE-CHARACTER OF Br_Besze IN FRAME F-Main
  633. DO:
  634. IF iStatus > 3 THEN RETURN NO-APPLY.
  635. IF VUpdate THEN RETURN NO-APPLY.
  636. RUN LOESCHEN.
  637. RETURN NO-APPLY.
  638. END.
  639. /* _UIB-CODE-BLOCK-END */
  640. &ANALYZE-RESUME
  641. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win
  642. ON END-ERROR OF Br_Besze IN FRAME F-Main
  643. DO:
  644. RUN new-state ( INPUT 'ENDE, MAIN':U ).
  645. RETURN NO-APPLY.
  646. END.
  647. /* _UIB-CODE-BLOCK-END */
  648. &ANALYZE-RESUME
  649. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win
  650. ON ENDKEY OF Br_Besze IN FRAME F-Main
  651. DO:
  652. RUN new-state ( INPUT 'ENDE, MAIN':U ).
  653. RETURN NO-APPLY.
  654. END.
  655. /* _UIB-CODE-BLOCK-END */
  656. &ANALYZE-RESUME
  657. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win
  658. ON ENTRY OF Br_Besze IN FRAME F-Main
  659. DO:
  660. RUN ABBRECHEN.
  661. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN RETURN NO-APPLY.
  662. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN RETURN NO-APPLY.
  663. BROWSE {&BROWSE-NAME}:SELECT-FOCUSED-ROW().
  664. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  665. RUN ANZEIGE.
  666. END.
  667. /* _UIB-CODE-BLOCK-END */
  668. &ANALYZE-RESUME
  669. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win
  670. ON INSERT-MODE OF Br_Besze IN FRAME F-Main
  671. DO:
  672. FIND Besko NO-LOCK
  673. WHERE Besko.Firma = GVFirma
  674. AND Besko.Besnr = LVBesnr NO-ERROR.
  675. IF NOT AVAILABLE Besko THEN RETURN NO-APPLY.
  676. IF Besko.Best_Sta > 2 THEN RETURN NO-APPLY.
  677. iKnr = Besko.Knr.
  678. RUN ERFASSEN.
  679. RETURN NO-APPLY.
  680. END.
  681. /* _UIB-CODE-BLOCK-END */
  682. &ANALYZE-RESUME
  683. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win
  684. ON RETURN OF Br_Besze IN FRAME F-Main
  685. DO:
  686. IF VUpdate THEN RETURN NO-APPLY.
  687. RUN AENDERN.
  688. RETURN NO-APPLY.
  689. END.
  690. /* _UIB-CODE-BLOCK-END */
  691. &ANALYZE-RESUME
  692. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win
  693. ON ROW-DISPLAY OF Br_Besze IN FRAME F-Main
  694. DO:
  695. IF Besko.Best_Sta > 3 THEN DO:
  696. IF Besze.Alter_EP <> Besze.Preis THEN DO:
  697. Besze.Artnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  698. Besze.Inhalt :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  699. Besze.Jahr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  700. Besze.Bez1 :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  701. Besze.S_Artnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  702. Besze.MBest :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  703. Besze.MGeli :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  704. Besze.S_Preis_FRW:BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  705. Besze.L_EP :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  706. KGebKBez :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  707. BBestand :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  708. Besze.Lager :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  709. Besze.Verbrauch :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  710. END.
  711. END.
  712. IF Besze.Aktion = TRUE THEN DO:
  713. Besze.Artnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  714. Besze.Inhalt :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  715. Besze.Jahr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  716. Besze.Bez1 :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  717. Besze.S_Artnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  718. Besze.MBest :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  719. Besze.MGeli :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  720. Besze.S_Preis_FRW:BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  721. Besze.L_EP :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  722. KGebKBez :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  723. BBestand :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14.
  724. Besze.Lager :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  725. Besze.Verbrauch :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08.
  726. END.
  727. END.
  728. /* _UIB-CODE-BLOCK-END */
  729. &ANALYZE-RESUME
  730. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win
  731. ON VALUE-CHANGED OF Br_Besze IN FRAME F-Main
  732. DO:
  733. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN RETURN NO-APPLY.
  734. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN RETURN NO-APPLY.
  735. BROWSE {&BROWSE-NAME}:SELECT-FOCUSED-ROW().
  736. BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  737. RUN ANZEIGE.
  738. END.
  739. /* _UIB-CODE-BLOCK-END */
  740. &ANALYZE-RESUME
  741. &Scoped-define SELF-NAME F_Artnr
  742. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr F-Frame-Win
  743. ON LEAVE OF F_Artnr IN FRAME F-Main
  744. DO:
  745. DEF VAR ARecid AS RECID NO-UNDO.
  746. DEF VAR iArtnr AS INT NO-UNDO.
  747. DEF VAR yy AS INT NO-UNDO.
  748. IF NOT VUpdate THEN RETURN.
  749. IF NOT VNeu THEN RETURN.
  750. DO WITH FRAME {&FRAME-NAME}:
  751. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN.
  752. IF NOT VUpdate THEN RETURN.
  753. LKY = LASTKEY.
  754. LHandle = LAST-EVENT:WIDGET-ENTER.
  755. IF VALID-HANDLE(LHandle) THEN DO:
  756. IF LHandle:TYPE = 'BUTTON' AND
  757. LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO:
  758. RETURN NO-APPLY.
  759. END.
  760. END.
  761. XHandle = SELF:HANDLE.
  762. Feldname = XHandle:NAME.
  763. FeldInhalt = TRIM(XHandle:SCREEN-VALUE).
  764. DO WHILE TRUE:
  765. iArtnr = 0.
  766. ARecid = ?.
  767. yy = 0.
  768. IF NUM-ENTRIES(FeldInhalt, ' ') = 1 THEN iArtnr = INTEGER(FeldInhalt) NO-ERROR.
  769. IF NOT ERROR-STATUS:ERROR AND
  770. iArtnr > 0 AND
  771. iArtnr < 1000000 THEN DO:
  772. DO WHILE iArtnr < MinNr:
  773. iArtnr = iArtnr * 10.
  774. yy = yy + 1.
  775. END.
  776. FOR EACH Artst NO-LOCK
  777. WHERE Artst.Firma = GVFirma
  778. AND Artst.Artnr = iArtnr:
  779. ASSIGN yy = yy + 1
  780. ARecid = RECID(Artst).
  781. END.
  782. END.
  783. IF yy = 1 THEN LEAVE.
  784. LVSuchbe = FeldInhalt.
  785. ARecid = ?.
  786. iKnr = INTEGER(Besko.Knr:SCREEN-VALUE).
  787. LVSuchbe = 'BEST,' + STRING(iKnr,'999999') + ';' + LVSuchbe.
  788. RUN g-suchen-artikel.w ( LVSuchbe, OUTPUT ARecid ).
  789. LEAVE.
  790. END.
  791. IF ARecid = ? OR
  792. ARecid = 0 THEN DO:
  793. APPLY 'ENTRY' TO SELF.
  794. RETURN NO-APPLY.
  795. END.
  796. FIND BArtst NO-LOCK WHERE RECID(BArtst) = ARecid NO-ERROR.
  797. IF AVAILABLE BArtst THEN DO:
  798. FIND FIRST ArtBez NO-LOCK USE-INDEX ArtBez-k1
  799. WHERE ArtBez.Firma = BArtst.Firma
  800. AND ArtBez.Artnr = BArtst.Artnr
  801. AND ArtBez.Inhalt = BArtst.Inhalt
  802. AND ArtBez.Jahr = BArtst.Jahr NO-ERROR.
  803. ASSIGN VArtnr = BArtst.Artnr
  804. VInhalt = BArtst.Inhalt
  805. VJahr = BArtst.Jahr
  806. F_Artnr = STRING(VArtnr ,"999999")
  807. F_Artnr:SCREEN-VALUE = STRING(VArtnr ,"999999")
  808. Besze.Inhalt:SCREEN-VALUE = STRING(VInhalt,"9999")
  809. Besze.Jahr:SCREEN-VALUE = STRING(VJahr ,"9999")
  810. Besze.Bez1:SCREEN-VALUE = Artbez.Bez1.
  811. FeldInhalt = STRING(VArtnr).
  812. IF ArtBez.Bez2_Druck THEN VBez2 = ArtBez.Bez2.
  813. FIND Steuer NO-LOCK WHERE Steuer.Firma = GVFirma NO-ERROR.
  814. IF NOT CAN-FIND(ArtLief NO-LOCK
  815. WHERE ArtLief.Firma = GVFirma
  816. AND ArtLief.Artnr = VArtnr
  817. AND ArtLief.Inhalt = VInhalt
  818. AND ArtLief.Jahr = VJahr
  819. AND ArtLief.Knr = INTEGER(Besko.Knr:SCREEN-VALUE))
  820. THEN DO:
  821. MESSAGE 'Dieser Artikel ist nicht diesem Lieferanten zugeteilt'
  822. VIEW-AS ALERT-BOX.
  823. APPLY 'ENTRY' TO F_Artnr.
  824. RETURN NO-APPLY.
  825. END.
  826. RUN ARTIKEL.
  827. END.
  828. IF Gefunden THEN DO:
  829. APPLY 'ENTRY' TO Besze.Jahr.
  830. APPLY 'LEAVE' TO Besze.Jahr.
  831. RETURN.
  832. END.
  833. APPLY 'ENTRY' TO Besze.Inhalt.
  834. RETURN NO-APPLY.
  835. END.
  836. END.
  837. /* _UIB-CODE-BLOCK-END */
  838. &ANALYZE-RESUME
  839. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr F-Frame-Win
  840. ON RETURN OF F_Artnr IN FRAME F-Main
  841. DO:
  842. APPLY 'TAB' TO SELF.
  843. RETURN NO-APPLY.
  844. END.
  845. /* _UIB-CODE-BLOCK-END */
  846. &ANALYZE-RESUME
  847. &Scoped-define SELF-NAME Besze.GGeb_Me
  848. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.GGeb_Me F-Frame-Win
  849. ON CURSOR-DOWN OF Besze.GGeb_Me IN FRAME F-Main /* GGeb_Me */
  850. DO:
  851. APPLY 'TAB' TO SELF.
  852. RETURN NO-APPLY.
  853. END.
  854. /* _UIB-CODE-BLOCK-END */
  855. &ANALYZE-RESUME
  856. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.GGeb_Me F-Frame-Win
  857. ON LEAVE OF Besze.GGeb_Me IN FRAME F-Main /* GGeb_Me */
  858. DO:
  859. DO WITH FRAME {&FRAME-NAME}:
  860. i1 = INTEGER(Besze.GGeb_Me:SCREEN-VALUE).
  861. IF i1 = 0 THEN RETURN.
  862. i2 = GGebinde.Inhalt * i1.
  863. Besze.VGeb_Me:SCREEN-VALUE = STRING(i2).
  864. i2 = VGebinde.Inhalt * i2.
  865. Besze.KGeb_Me:SCREEN-VALUE = STRING(i2).
  866. END.
  867. END.
  868. /* _UIB-CODE-BLOCK-END */
  869. &ANALYZE-RESUME
  870. &Scoped-define SELF-NAME Besze.Inhalt
  871. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Inhalt F-Frame-Win
  872. ON LEAVE OF Besze.Inhalt IN FRAME F-Main /* Inhalt */
  873. DO:
  874. IF NOT VUpdate THEN RETURN NO-APPLY.
  875. IF NOT VNeu THEN RETURN NO-APPLY.
  876. DO WITH FRAME {&FRAME-NAME}:
  877. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN DO:
  878. RETURN.
  879. END.
  880. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN DO:
  881. RUN ABBRECHEN.
  882. RETURN NO-APPLY.
  883. END.
  884. LKY = LASTKEY.
  885. LHandle = LAST-EVENT:WIDGET-ENTER.
  886. IF VALID-HANDLE(LHandle) THEN DO:
  887. IF LHandle:TYPE = 'BUTTON' AND
  888. LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO:
  889. RUN ABBRECHEN.
  890. RETURN NO-APPLY.
  891. END.
  892. END.
  893. XHandle = SELF:HANDLE.
  894. Feldname = XHandle:NAME.
  895. FeldInhalt = XHandle:SCREEN-VALUE.
  896. VInhalt = INTEGER(FeldInhalt).
  897. FIND FIRST Artst NO-LOCK USE-INDEX Artst-k1
  898. WHERE Artst.Firma = GVFirma
  899. AND Artst.Artnr = VArtnr
  900. AND Artst.Inhalt = VInhalt NO-ERROR.
  901. IF NOT AVAILABLE Artst THEN DO:
  902. BELL.
  903. APPLY 'ENTRY' TO SELF.
  904. RETURN NO-APPLY.
  905. END.
  906. Besze.Inhalt:SCREEN-VALUE = STRING(Artst.Inhalt,"9999").
  907. Besze.Jahr :SCREEN-VALUE = STRING(Artst.Jahr ,"9999").
  908. Besze.Bez1 :SCREEN-VALUE = Artst.Bez.
  909. APPLY 'ENTRY' TO Besze.Jahr.
  910. RETURN NO-APPLY.
  911. END.
  912. END.
  913. /* _UIB-CODE-BLOCK-END */
  914. &ANALYZE-RESUME
  915. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Inhalt F-Frame-Win
  916. ON RETURN OF Besze.Inhalt IN FRAME F-Main /* Inhalt */
  917. DO:
  918. APPLY 'TAB' TO SELF.
  919. RETURN NO-APPLY.
  920. END.
  921. /* _UIB-CODE-BLOCK-END */
  922. &ANALYZE-RESUME
  923. &Scoped-define SELF-NAME Besze.Jahr
  924. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Jahr F-Frame-Win
  925. ON LEAVE OF Besze.Jahr IN FRAME F-Main /* Jahr */
  926. DO:
  927. IF NOT VUpdate THEN RETURN NO-APPLY.
  928. IF NOT VNeu THEN RETURN NO-APPLY.
  929. DO WITH FRAME {&FRAME-NAME}:
  930. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN DO:
  931. RETURN.
  932. END.
  933. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN DO:
  934. RUN ABBRECHEN.
  935. RETURN NO-APPLY.
  936. END.
  937. LKY = LASTKEY.
  938. LHandle = LAST-EVENT:WIDGET-ENTER.
  939. IF VALID-HANDLE(LHandle) THEN DO:
  940. IF LHandle:TYPE = 'BUTTON' AND
  941. LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO:
  942. RUN ABBRECHEN.
  943. RETURN NO-APPLY.
  944. END.
  945. END.
  946. XHandle = SELF:HANDLE.
  947. Feldname = XHandle:NAME.
  948. FeldInhalt = XHandle:SCREEN-VALUE.
  949. VJahr = INTEGER(FeldInhalt).
  950. FIND Artst NO-LOCK USE-INDEX Artst-k1
  951. WHERE Artst.Firma = GVFirma
  952. AND Artst.Artnr = VArtnr
  953. AND Artst.Inhalt = VInhalt
  954. AND Artst.Jahr = VJahr NO-ERROR.
  955. IF NOT AVAILABLE Artst THEN DO:
  956. BELL.
  957. APPLY 'ENTRY' TO SELF.
  958. RETURN NO-APPLY.
  959. END.
  960. RUN ARTIKEL.
  961. RETURN NO-APPLY.
  962. END.
  963. END.
  964. /* _UIB-CODE-BLOCK-END */
  965. &ANALYZE-RESUME
  966. &Scoped-define SELF-NAME Besze.KGeb_Me
  967. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.KGeb_Me F-Frame-Win
  968. ON CURSOR-UP OF Besze.KGeb_Me IN FRAME F-Main /* KGeb_Me */
  969. DO:
  970. APPLY 'BACK-TAB' TO SELF.
  971. RETURN NO-APPLY.
  972. END.
  973. /* _UIB-CODE-BLOCK-END */
  974. &ANALYZE-RESUME
  975. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.KGeb_Me F-Frame-Win
  976. ON LEAVE OF Besze.KGeb_Me IN FRAME F-Main /* KGeb_Me */
  977. DO:
  978. IF NOT VUpdate THEN RETURN NO-APPLY.
  979. DO WITH FRAME {&FRAME-NAME}:
  980. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN DO:
  981. RETURN.
  982. END.
  983. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN DO:
  984. RUN ABBRECHEN.
  985. RETURN NO-APPLY.
  986. END.
  987. LKY = LASTKEY.
  988. LHandle = LAST-EVENT:WIDGET-ENTER.
  989. IF VALID-HANDLE(LHandle) THEN DO:
  990. IF LHandle:TYPE = 'BUTTON' AND
  991. LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO:
  992. RUN ABBRECHEN.
  993. RETURN NO-APPLY.
  994. END.
  995. END.
  996. XHandle = SELF:HANDLE.
  997. Feldname = XHandle:NAME.
  998. FeldInhalt = XHandle:SCREEN-VALUE.
  999. RUN SPEICHERN.
  1000. RETURN NO-APPLY.
  1001. END.
  1002. END.
  1003. /* _UIB-CODE-BLOCK-END */
  1004. &ANALYZE-RESUME
  1005. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.KGeb_Me F-Frame-Win
  1006. ON RETURN OF Besze.KGeb_Me IN FRAME F-Main /* KGeb_Me */
  1007. DO:
  1008. APPLY 'TAB' TO SELF.
  1009. RETURN NO-APPLY.
  1010. END.
  1011. /* _UIB-CODE-BLOCK-END */
  1012. &ANALYZE-RESUME
  1013. &Scoped-define SELF-NAME Besze.L_EP_FRW
  1014. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.L_EP_FRW F-Frame-Win
  1015. ON END-ERROR OF Besze.L_EP_FRW IN FRAME F-Main /* L_EP_FRW */
  1016. DO:
  1017. RUN ABBRECHEN.
  1018. RETURN NO-APPLY.
  1019. END.
  1020. /* _UIB-CODE-BLOCK-END */
  1021. &ANALYZE-RESUME
  1022. &Scoped-define SELF-NAME Besze.Preis
  1023. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Preis F-Frame-Win
  1024. ON END OF Besze.Preis IN FRAME F-Main /* Preis */
  1025. DO:
  1026. IF VNeu THEN RETURN NO-APPLY.
  1027. APPLY 'LEAVE' TO SELF.
  1028. RUN SPEICHERN.
  1029. RETURN NO-APPLY.
  1030. END.
  1031. /* _UIB-CODE-BLOCK-END */
  1032. &ANALYZE-RESUME
  1033. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Preis F-Frame-Win
  1034. ON END-ERROR OF Besze.Preis IN FRAME F-Main /* Preis */
  1035. DO:
  1036. RUN ABBRECHEN.
  1037. RETURN NO-APPLY.
  1038. END.
  1039. /* _UIB-CODE-BLOCK-END */
  1040. &ANALYZE-RESUME
  1041. &Scoped-define SELF-NAME Besze.Rabatt
  1042. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Rabatt F-Frame-Win
  1043. ON END OF Besze.Rabatt IN FRAME F-Main /* Rabatt */
  1044. DO:
  1045. IF VNeu THEN RETURN NO-APPLY.
  1046. APPLY 'LEAVE' TO SELF.
  1047. RUN SPEICHERN.
  1048. RETURN NO-APPLY.
  1049. END.
  1050. /* _UIB-CODE-BLOCK-END */
  1051. &ANALYZE-RESUME
  1052. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Rabatt F-Frame-Win
  1053. ON END-ERROR OF Besze.Rabatt IN FRAME F-Main /* Rabatt */
  1054. DO:
  1055. RUN ABBRECHEN.
  1056. RETURN NO-APPLY.
  1057. END.
  1058. /* _UIB-CODE-BLOCK-END */
  1059. &ANALYZE-RESUME
  1060. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Rabatt F-Frame-Win
  1061. ON LEAVE OF Besze.Rabatt IN FRAME F-Main /* Rabatt */
  1062. DO:
  1063. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY.
  1064. IF NOT VUpdate THEN RETURN NO-APPLY.
  1065. Rundbetr = DECIMAL(SELF:SCREEN-VALUE).
  1066. Rundbetr = DECIMAL(Besze.S_Preis:SCREEN-VALUE) * ((100 - Rundbetr) / 100)
  1067. + DECIMAL(Besze.Spesen:SCREEN-VALUE).
  1068. IF Rundbetr <> ? THEN Besze.Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.999").
  1069. END.
  1070. /* _UIB-CODE-BLOCK-END */
  1071. &ANALYZE-RESUME
  1072. &Scoped-define SELF-NAME Besze.Spesen
  1073. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Spesen F-Frame-Win
  1074. ON END OF Besze.Spesen IN FRAME F-Main /* Spesen */
  1075. DO:
  1076. IF VNeu THEN RETURN NO-APPLY.
  1077. APPLY 'LEAVE' TO SELF.
  1078. RUN SPEICHERN.
  1079. RETURN NO-APPLY.
  1080. END.
  1081. /* _UIB-CODE-BLOCK-END */
  1082. &ANALYZE-RESUME
  1083. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Spesen F-Frame-Win
  1084. ON END-ERROR OF Besze.Spesen IN FRAME F-Main /* Spesen */
  1085. DO:
  1086. RUN ABBRECHEN.
  1087. RETURN NO-APPLY.
  1088. END.
  1089. /* _UIB-CODE-BLOCK-END */
  1090. &ANALYZE-RESUME
  1091. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Spesen F-Frame-Win
  1092. ON LEAVE OF Besze.Spesen IN FRAME F-Main /* Spesen */
  1093. DO:
  1094. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY.
  1095. IF NOT VUpdate THEN RETURN NO-APPLY.
  1096. Rundbetr = DECIMAL(SELF:SCREEN-VALUE).
  1097. Rundbetr = DECIMAL(Besze.S_Preis:SCREEN-VALUE)
  1098. * ((100 - DECIMAL(Besze.Rabatt:SCREEN-VALUE)) / 100)
  1099. + Rundbetr.
  1100. IF Rundbetr <> ? THEN Besze.Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.999").
  1101. END.
  1102. /* _UIB-CODE-BLOCK-END */
  1103. &ANALYZE-RESUME
  1104. &Scoped-define SELF-NAME Besze.S_Artnr
  1105. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Artnr F-Frame-Win
  1106. ON END OF Besze.S_Artnr IN FRAME F-Main /* S_Artnr */
  1107. DO:
  1108. IF VNeu THEN RETURN NO-APPLY.
  1109. APPLY 'LEAVE' TO SELF.
  1110. RUN SPEICHERN.
  1111. RETURN NO-APPLY.
  1112. END.
  1113. /* _UIB-CODE-BLOCK-END */
  1114. &ANALYZE-RESUME
  1115. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Artnr F-Frame-Win
  1116. ON END-ERROR OF Besze.S_Artnr IN FRAME F-Main /* S_Artnr */
  1117. DO:
  1118. RUN ABBRECHEN.
  1119. RETURN NO-APPLY.
  1120. END.
  1121. /* _UIB-CODE-BLOCK-END */
  1122. &ANALYZE-RESUME
  1123. &Scoped-define SELF-NAME Besze.S_Preis
  1124. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis F-Frame-Win
  1125. ON END OF Besze.S_Preis IN FRAME F-Main /* S_Preis */
  1126. DO:
  1127. IF VNeu THEN RETURN NO-APPLY.
  1128. APPLY 'LEAVE' TO SELF.
  1129. RUN SPEICHERN.
  1130. RETURN NO-APPLY.
  1131. END.
  1132. /* _UIB-CODE-BLOCK-END */
  1133. &ANALYZE-RESUME
  1134. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis F-Frame-Win
  1135. ON END-ERROR OF Besze.S_Preis IN FRAME F-Main /* S_Preis */
  1136. DO:
  1137. RUN ABBRECHEN.
  1138. RETURN NO-APPLY.
  1139. END.
  1140. /* _UIB-CODE-BLOCK-END */
  1141. &ANALYZE-RESUME
  1142. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis F-Frame-Win
  1143. ON LEAVE OF Besze.S_Preis IN FRAME F-Main /* S_Preis */
  1144. DO:
  1145. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY.
  1146. IF NOT VUpdate THEN RETURN NO-APPLY.
  1147. Rundbetr = DECIMAL(SELF:SCREEN-VALUE).
  1148. IF Rundbetr <> 0 THEN DO:
  1149. Rundbetr = Rundbetr * ((100 - DECIMAL(Besze.Rabatt:SCREEN-VALUE)) / 100)
  1150. + DECIMAL(Besze.Spesen:SCREEN-VALUE).
  1151. END.
  1152. Besze.Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.999").
  1153. Rundbetr = DECIMAL(SELF:SCREEN-VALUE).
  1154. RUN FREMDWAEHRUNG ( INPUT 2 ).
  1155. Besze.S_Preis_FRW:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.9999").
  1156. END.
  1157. /* _UIB-CODE-BLOCK-END */
  1158. &ANALYZE-RESUME
  1159. &Scoped-define SELF-NAME Besze.S_Preis_FRW
  1160. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis_FRW F-Frame-Win
  1161. ON END OF Besze.S_Preis_FRW IN FRAME F-Main /* S_Preis_FRW */
  1162. DO:
  1163. IF VNeu THEN RETURN NO-APPLY.
  1164. APPLY 'LEAVE' TO SELF.
  1165. RUN SPEICHERN.
  1166. RETURN NO-APPLY.
  1167. END.
  1168. /* _UIB-CODE-BLOCK-END */
  1169. &ANALYZE-RESUME
  1170. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis_FRW F-Frame-Win
  1171. ON END-ERROR OF Besze.S_Preis_FRW IN FRAME F-Main /* S_Preis_FRW */
  1172. DO:
  1173. RUN ABBRECHEN.
  1174. RETURN NO-APPLY.
  1175. END.
  1176. /* _UIB-CODE-BLOCK-END */
  1177. &ANALYZE-RESUME
  1178. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis_FRW F-Frame-Win
  1179. ON LEAVE OF Besze.S_Preis_FRW IN FRAME F-Main /* S_Preis_FRW */
  1180. DO:
  1181. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY.
  1182. IF NOT VUpdate THEN RETURN NO-APPLY.
  1183. Rundbetr = DECIMAL(SELF:SCREEN-VALUE).
  1184. RUN FREMDWAEHRUNG ( INPUT 1 ).
  1185. Besze.S_Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.9999").
  1186. IF Rundbetr <> 0 THEN DO:
  1187. Rundbetr = Rundbetr * ((100 - DECIMAL(Besze.Rabatt:SCREEN-VALUE)) / 100)
  1188. + DECIMAL(Besze.Spesen:SCREEN-VALUE).
  1189. END.
  1190. Besze.Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.999").
  1191. END.
  1192. /* _UIB-CODE-BLOCK-END */
  1193. &ANALYZE-RESUME
  1194. &Scoped-define SELF-NAME Besze.VGeb_Me
  1195. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.VGeb_Me F-Frame-Win
  1196. ON CURSOR-DOWN OF Besze.VGeb_Me IN FRAME F-Main /* VGeb_Me */
  1197. DO:
  1198. APPLY 'TAB' TO SELF.
  1199. RETURN NO-APPLY.
  1200. END.
  1201. /* _UIB-CODE-BLOCK-END */
  1202. &ANALYZE-RESUME
  1203. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.VGeb_Me F-Frame-Win
  1204. ON CURSOR-UP OF Besze.VGeb_Me IN FRAME F-Main /* VGeb_Me */
  1205. DO:
  1206. APPLY 'BACK-TAB' TO SELF.
  1207. RETURN NO-APPLY.
  1208. END.
  1209. /* _UIB-CODE-BLOCK-END */
  1210. &ANALYZE-RESUME
  1211. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.VGeb_Me F-Frame-Win
  1212. ON LEAVE OF Besze.VGeb_Me IN FRAME F-Main /* VGeb_Me */
  1213. DO:
  1214. DO WITH FRAME {&FRAME-NAME}:
  1215. i1 = INTEGER(Besze.VGeb_Me:SCREEN-VALUE).
  1216. IF i1 = 0 THEN RETURN.
  1217. i2 = VGebinde.Inhalt * i1.
  1218. Besze.KGeb_Me:SCREEN-VALUE = STRING(i2).
  1219. END.
  1220. END.
  1221. /* _UIB-CODE-BLOCK-END */
  1222. &ANALYZE-RESUME
  1223. &UNDEFINE SELF-NAME
  1224. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK F-Frame-Win
  1225. /* *************************** Main Block *************************** */
  1226. FNeuMut = FALSE.
  1227. SESSION:DATA-ENTRY-RETURN = TRUE.
  1228. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  1229. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  1230. &ENDIF
  1231. ON END-ERROR OF F_Artnr, Besze.Inhalt, Besze.Jahr IN FRAME {&FRAME-NAME}
  1232. DO:
  1233. IF VUpdate THEN DO:
  1234. DISABLE F_Artnr
  1235. Besze.Inhalt
  1236. Besze.Jahr.
  1237. VUpdate = FALSE.
  1238. RUN ANZEIGE.
  1239. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  1240. RETURN NO-APPLY.
  1241. END.
  1242. ELSE DO:
  1243. RUN new-state ( INPUT 'ENDE, MAIN':U ).
  1244. RETURN NO-APPLY.
  1245. END.
  1246. END.
  1247. /* _UIB-CODE-BLOCK-END */
  1248. &ANALYZE-RESUME
  1249. /* ********************** Internal Procedures *********************** */
  1250. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABBRECHEN F-Frame-Win
  1251. PROCEDURE ABBRECHEN :
  1252. /*------------------------------------------------------------------------------
  1253. Purpose:
  1254. Parameters: <none>
  1255. Notes:
  1256. ------------------------------------------------------------------------------*/
  1257. DO WITH FRAME {&FRAME-NAME}:
  1258. DISABLE {&List-2}
  1259. {&List-3}.
  1260. DO WHILE TRUE:
  1261. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  1262. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  1263. {&BROWSE-NAME}:SELECT-FOCUSED-ROW().
  1264. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  1265. RUN ANZEIGE.
  1266. LEAVE.
  1267. END.
  1268. END.
  1269. VNeu = FALSE.
  1270. VUpdate = FALSE.
  1271. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  1272. RETURN NO-APPLY.
  1273. END PROCEDURE.
  1274. /* _UIB-CODE-BLOCK-END */
  1275. &ANALYZE-RESUME
  1276. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects F-Frame-Win _ADM-CREATE-OBJECTS
  1277. PROCEDURE adm-create-objects :
  1278. /*------------------------------------------------------------------------------
  1279. Purpose: Create handles for all SmartObjects used in this procedure.
  1280. After SmartObjects are initialized, then SmartLinks are added.
  1281. Parameters: <none>
  1282. ------------------------------------------------------------------------------*/
  1283. END PROCEDURE.
  1284. /* _UIB-CODE-BLOCK-END */
  1285. &ANALYZE-RESUME
  1286. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available F-Frame-Win _ADM-ROW-AVAILABLE
  1287. PROCEDURE adm-row-available :
  1288. /*------------------------------------------------------------------------------
  1289. Purpose: Dispatched to this procedure when the Record-
  1290. Source has a new row available. This procedure
  1291. tries to get the new row (or foriegn keys) from
  1292. the Record-Source and process it.
  1293. Parameters: <none>
  1294. ------------------------------------------------------------------------------*/
  1295. /* Define variables needed by this internal procedure. */
  1296. {src/adm/template/row-head.i}
  1297. /* Create a list of all the tables that we need to get. */
  1298. {src/adm/template/row-list.i "Besko"}
  1299. /* Get the record ROWID's from the RECORD-SOURCE. */
  1300. {src/adm/template/row-get.i}
  1301. /* FIND each record specified by the RECORD-SOURCE. */
  1302. {src/adm/template/row-find.i "Besko"}
  1303. /* Process the newly available records (i.e. display fields,
  1304. open queries, and/or pass records on to any RECORD-TARGETS). */
  1305. {src/adm/template/row-end.i}
  1306. END PROCEDURE.
  1307. /* _UIB-CODE-BLOCK-END */
  1308. &ANALYZE-RESUME
  1309. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AENDERN F-Frame-Win
  1310. PROCEDURE AENDERN :
  1311. /*------------------------------------------------------------------------------
  1312. Purpose:
  1313. Parameters: <none>
  1314. Notes:
  1315. ------------------------------------------------------------------------------*/
  1316. VUpdate = TRUE.
  1317. DO WITH FRAME {&FRAME-NAME}:
  1318. EMPTY TEMP-TABLE tBesze.
  1319. CREATE tBesze.
  1320. BUFFER-COPY Besze to tBesze.
  1321. DISABLE {&List-2}.
  1322. ENABLE {&List-3}.
  1323. IF Besko.Best_Sta > 2 THEN DO:
  1324. DISABLE {&List-6}.
  1325. ENABLE {&List-5}.
  1326. DISABLE Besze.Alter_Listen_EP
  1327. Besze.Alter_EP
  1328. Besze.L_EP_FRW.
  1329. END.
  1330. APPLY 'ENTRY' TO Besze.Bez1.
  1331. END.
  1332. RETURN NO-APPLY.
  1333. END PROCEDURE.
  1334. /* _UIB-CODE-BLOCK-END */
  1335. &ANALYZE-RESUME
  1336. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE F-Frame-Win
  1337. PROCEDURE ANZEIGE :
  1338. /*------------------------------------------------------------------------------
  1339. Purpose:
  1340. Parameters: <none>
  1341. Notes:
  1342. ------------------------------------------------------------------------------*/
  1343. DO WITH FRAME {&FRAME-NAME}:
  1344. F_KGeb = ''.
  1345. F_VGeb = ''.
  1346. F_GGeb = ''.
  1347. F_Artnr = ''.
  1348. IF AVAILABLE Besze THEN DO:
  1349. F_Artnr = STRING(Besze.Artnr,"999999").
  1350. FIND Artst NO-LOCK USE-INDEX Artst-k1
  1351. WHERE Artst.Firma = GVFirma
  1352. AND Artst.Artnr = INTEGER(F_Artnr)
  1353. AND Artst.Inhalt = Besze.Inhalt
  1354. AND Artst.Jahr = Besze.Jahr NO-ERROR.
  1355. FIND ArtLager NO-LOCK USE-INDEX ArtLager-k1
  1356. WHERE ArtLager.Firma = GVFirma
  1357. AND ArtLager.Artnr = INTEGER(F_Artnr)
  1358. AND ArtLager.Inhalt = Besze.Inhalt
  1359. AND ArtLager.Jahr = Besze.Jahr
  1360. AND ArtLager.Lager = Besze.Lager NO-ERROR.
  1361. F_Bestand = (IF AVAILABLE ArtLager THEN ArtLager.Bestand ELSE Artst.Bestand).
  1362. IF Besko.Best_Sta = 2 THEN F_Bestand_Neu = F_Bestand + Besze.MGeli.
  1363. ELSE F_Bestand_Neu = F_Bestand.
  1364. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  1365. WHERE KGebinde.Firma = GVFirma
  1366. AND KGebinde.Geb_Cd = Besze.KGeb_Cd NO-ERROR.
  1367. IF AVAILABLE KGebinde THEN F_KGeb = KGebinde.KBez.
  1368. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1
  1369. WHERE VGebinde.Firma = GVFirma
  1370. AND VGebinde.Geb_Cd = Besze.VGeb_Cd NO-ERROR.
  1371. IF AVAILABLE VGebinde THEN F_VGeb = VGebinde.KBez.
  1372. FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1
  1373. WHERE GGebinde.Firma = GVFirma
  1374. AND GGebinde.Geb_Cd = Besze.GGeb_Cd NO-ERROR.
  1375. IF AVAILABLE GGebinde THEN F_GGeb = GGebinde.KBez.
  1376. IF Besko.Best_Sta = 1 THEN DO:
  1377. F_Betrag = Besze.Preis * Besze.MBest.
  1378. F_Betrag_FRW = Besze.S_Preis_FRW * Besze.MBest.
  1379. END.
  1380. ELSE DO:
  1381. F_Betrag = Besze.Preis * Besze.MGeli.
  1382. F_Betrag_FRW = Besze.S_Preis_FRW * Besze.MGeli.
  1383. END.
  1384. DISPLAY {&List-2} {&List-3} F_Bestand.
  1385. IF Besko.Best_Sta = 2 THEN DISPLAY F_Bestand_Neu.
  1386. END.
  1387. DISPLAY F_Artnr F_GGeb F_VGeb F_KGeb.
  1388. END.
  1389. END PROCEDURE.
  1390. /* _UIB-CODE-BLOCK-END */
  1391. &ANALYZE-RESUME
  1392. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKEL F-Frame-Win
  1393. PROCEDURE ARTIKEL :
  1394. /*------------------------------------------------------------------------------
  1395. Purpose:
  1396. Parameters: <none>
  1397. Notes:
  1398. ------------------------------------------------------------------------------*/
  1399. DEF VAR cString AS CHAR NO-UNDO.
  1400. DO WITH FRAME {&FRAME-NAME}:
  1401. FIND Artst NO-LOCK USE-INDEX Artst-k1
  1402. WHERE Artst.Firma = GVFirma
  1403. AND Artst.Artnr = VArtnr
  1404. AND Artst.Inhalt = VInhalt
  1405. AND Artst.Jahr = VJahr .
  1406. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  1407. WHERE KGebinde.Firma = GVFirma
  1408. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
  1409. F_KGeb = KGebinde.KBez.
  1410. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1
  1411. WHERE VGebinde.Firma = GVFirma
  1412. AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR.
  1413. F_VGeb = VGebinde.KBez.
  1414. FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1
  1415. WHERE GGebinde.Firma = GVFirma
  1416. AND GGebinde.Geb_Cd = Artst.GGeb_Cd NO-ERROR.
  1417. F_GGeb = GGebinde.KBez.
  1418. FIND ArtBez NO-LOCK USE-INDEX ArtBez-k1
  1419. WHERE ArtBez.Firma = Artst.Firma
  1420. AND ArtBez.Artnr = Artst.Artnr
  1421. AND ArtBez.Inhalt = Artst.Inhalt
  1422. AND ArtBez.Jahr = Artst.Jahr
  1423. AND ArtBez.Sprcd = GVSprcd NO-ERROR.
  1424. IF NOT AVAILABLE ArtBez THEN DO:
  1425. FIND FIRST ArtBez NO-LOCK USE-INDEX ArtBez-k1
  1426. WHERE ArtBez.Firma = Artst.Firma
  1427. AND ArtBez.Artnr = Artst.Artnr
  1428. AND ArtBez.Inhalt = Artst.Inhalt
  1429. AND ArtBez.Jahr = Artst.Jahr NO-ERROR.
  1430. END.
  1431. FIND ArtLief NO-LOCK USE-INDEX ArtLief-k1
  1432. WHERE ArtLief.Firma = Artst.Firma
  1433. AND ArtLief.Artnr = Artst.Artnr
  1434. AND ArtLief.Inhalt = Artst.Inhalt
  1435. AND ArtLief.Jahr = Artst.Jahr
  1436. AND ArtLief.Knr = Besko.Knr NO-ERROR.
  1437. FIND Liefst NO-LOCK USE-INDEX Liefst-k1
  1438. WHERE Liefst.Firma = GVFirma
  1439. AND Liefst.Knr = Besko.Knr NO-ERROR.
  1440. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1
  1441. WHERE Waehrung.Firma = Besko.Firma
  1442. AND Waehrung.FRW = Besko.FRW NO-ERROR.
  1443. IF AVAILABLE Waehrung THEN DO:
  1444. VFRW = Waehrung.FRW.
  1445. VKurs = Waehrung.Kurs.
  1446. VFaktor = Waehrung.Faktor.
  1447. END.
  1448. ELSE DO:
  1449. VFRW = 'CHF'.
  1450. VKurs = 1.0.
  1451. VFaktor = 1.
  1452. END.
  1453. VSein_Preis_FRW = 0.
  1454. VSein_Preis = 0.
  1455. VRabatt = 0.
  1456. VSpesen = 0.
  1457. VPreis = 0.
  1458. VL_EP_FRW = 0.
  1459. VAlter_EP = 0.
  1460. VAlter_Listen_EP = Artst.Listen_EP.
  1461. IF AVAILABLE ArtLief THEN DO:
  1462. VSein_Preis_FRW = ArtLief.S_Preis_FRW.
  1463. VSein_Preis = ArtLief.S_Preis.
  1464. VRabatt = ArtLief.Rabatt.
  1465. VSpesen = ArtLief.Spesen.
  1466. VL_EP_FRW = ArtLief.L_EP_FRW.
  1467. VAlter_EP = ArtLief.L_EP.
  1468. Besze.S_Artnr:SCREEN-VALUE = ArtLief.S_Artnr.
  1469. END.
  1470. ELSE DO:
  1471. Besze.S_Artnr:SCREEN-VALUE = ''.
  1472. END.
  1473. IF VSein_Preis = 0 THEN VSein_Preis = Artst.Listen_EP.
  1474. IF VSein_Preis_FRW = 0 THEN VSein_Preis_FRW = VSein_Preis * VFaktor / VKurs.
  1475. IF VRabatt = 0 THEN VRabatt = Besko.Rabatt.
  1476. IF VSpesen = 0 THEN VSpesen = Besko.Spesen.
  1477. IF VAlter_EP = 0 THEN VAlter_EP = Artst.LEP.
  1478. IF VL_EP_FRW = 0 THEN VL_EP_FRW = VAlter_EP * VFaktor / VKurs.
  1479. VPreis = VSein_Preis * ((100 - VRabatt) / 100) + VSpesen.
  1480. Besze.Bez1:SCREEN-VALUE = ArtBez.Bez1.
  1481. Besze.Bez2:SCREEN-VALUE = ArtBez.Bez2.
  1482. F_GGeb:SCREEN-VALUE = F_GGeb.
  1483. F_VGeb:SCREEN-VALUE = F_VGeb.
  1484. F_KGeb:SCREEN-VALUE = F_KGeb.
  1485. Besze.S_Preis_FRW:SCREEN-VALUE = STRING(VSein_Preis_FRW).
  1486. Besze.S_Preis:SCREEN-VALUE = STRING(VSein_Preis).
  1487. Besze.Rabatt:SCREEN-VALUE = STRING(VRabatt).
  1488. Besze.Spesen:SCREEN-VALUE = STRING(VSpesen).
  1489. Besze.Preis:SCREEN-VALUE = STRING(VPreis).
  1490. Besze.L_EP_FRW:SCREEN-VALUE = STRING(VL_EP_FRW).
  1491. Besze.Aktion:SCREEN-VALUE = STRING(FALSE,"J/N").
  1492. Besze.Alter_Listen_EP:SCREEN-VALUE = STRING(VAlter_Listen_EP).
  1493. Besze.Alter_EP:SCREEN-VALUE = STRING(VL_EP_FRW).
  1494. FIND FIRST AktPreis NO-LOCK USE-INDEX AktPreis-k1
  1495. WHERE AktPreis.Firma = GVFirma
  1496. AND AktPreis.Artnr = Artst.Artnr
  1497. AND AktPreis.Inhalt = Artst.Inhalt
  1498. AND AktPreis.Jahr = Artst.Jahr
  1499. AND AktPreis.Ab_Datum >= (TODAY - 2) NO-ERROR.
  1500. IF AVAILABLE AktPreis AND
  1501. (AktPreis.Ab_Datum - TODAY) < 14 THEN DO:
  1502. cString = 'Dieser Artikel ist '.
  1503. IF AktPreis.Ab_Datum < TODAY THEN cString = cString + 'seit dem '.
  1504. ELSE cString = cString + 'ab dem '.
  1505. cString = cString + STRING(AktPreis.Ab_Datum,'99.99.9999')
  1506. + ' in Aktion '.
  1507. MESSAGE cString VIEW-AS ALERT-BOX INFORMATION.
  1508. END.
  1509. DISABLE {&List-2}.
  1510. ENABLE {&List-3}.
  1511. APPLY 'ENTRY' TO Besze.Bez1.
  1512. RETURN NO-APPLY.
  1513. END.
  1514. END PROCEDURE.
  1515. /* _UIB-CODE-BLOCK-END */
  1516. &ANALYZE-RESUME
  1517. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELNUMMER F-Frame-Win
  1518. PROCEDURE ARTIKELNUMMER :
  1519. /*------------------------------------------------------------------------------
  1520. Purpose:
  1521. Parameters: <none>
  1522. Notes:
  1523. ------------------------------------------------------------------------------*/
  1524. DEF VAR ARecid AS RECID NO-UNDO.
  1525. DEF VAR Anzahl AS INT NO-UNDO.
  1526. DEF VAR xWort AS CHAR NO-UNDO.
  1527. DEF VAR zWorte AS CHAR NO-UNDO.
  1528. DEF VAR yy AS INT NO-UNDO.
  1529. DEF VAR zz AS INT NO-UNDO.
  1530. DEF VAR Zahl AS INT NO-UNDO.
  1531. DEF VAR VBez1 AS CHAR NO-UNDO.
  1532. DEF VAR VBez2 AS CHAR NO-UNDO.
  1533. Zahl = 0.
  1534. Gefunden = FALSE.
  1535. Anzahl = 0.
  1536. VBez1 = ''.
  1537. VBez2 = ''.
  1538. zWorte = ''.
  1539. DO yy = 1 TO NUM-ENTRIES(FeldInhalt, ' '):
  1540. xWort = ENTRY(yy, FeldInhalt, ' ').
  1541. Zahl = INTEGER(xWort) NO-ERROR.
  1542. IF ERROR-STATUS:ERROR THEN DO:
  1543. zWorte = zWorte + (IF zWorte = '' THEN '' ELSE ' ')
  1544. + xWort.
  1545. IF yy = 1 THEN zWorte = TRIM(zWorte) + '*'.
  1546. NEXT.
  1547. END.
  1548. xWort = TRIM(STRING(Zahl,'>>>>>>>>>>>>>>>>>>9')) NO-ERROR.
  1549. IF ERROR-STATUS:ERROR THEN xWort = ENTRY(yy, FeldInhalt, ' ').
  1550. zWorte = zWorte + (IF zWorte = '' THEN '' ELSE ' ')
  1551. + xWort.
  1552. END.
  1553. zWorte = REPLACE(zWorte, '**', '*').
  1554. FOR EACH Artbez NO-LOCK
  1555. WHERE Artbez.Firma = GVFirma
  1556. AND Artbez.Sprcd = 1
  1557. AND Artbez.WortIndex CONTAINS zWorte,
  1558. FIRST BArtst NO-LOCK OF Artbez
  1559. WHERE BArtst.Aktiv = TRUE
  1560. AND BArtst.Ausverk < 9 :
  1561. Anzahl = Anzahl + 1.
  1562. IF Anzahl > 1 THEN LEAVE.
  1563. VArtnr = BArtst.Artnr.
  1564. ARecid = RECID(BArtst).
  1565. END.
  1566. IF Anzahl < 1 THEN VArtnr = -1.
  1567. IF Anzahl > 1 THEN VArtnr = -1.
  1568. IF VArtnr = -1 THEN RETURN.
  1569. FIND BArtst NO-LOCK WHERE RECID(BArtst) = ARecid NO-ERROR.
  1570. FIND Steuer NO-LOCK WHERE Steuer.Firma = GVFirma NO-ERROR.
  1571. FIND FIRST ArtBez NO-LOCK USE-INDEX ArtBez-k1
  1572. WHERE ArtBez.Firma = BArtst.Firma
  1573. AND ArtBez.Artnr = BArtst.Artnr
  1574. AND ArtBez.Inhalt = BArtst.Inhalt
  1575. AND ArtBez.Jahr = BArtst.Jahr NO-ERROR.
  1576. VInhalt = BArtst.Inhalt.
  1577. VJahr = BArtst.Jahr.
  1578. VBez1 = ArtBez.Bez1.
  1579. IF ArtBez.Bez2_Druck THEN VBez2 = ArtBez.Bez2.
  1580. Gefunden = TRUE.
  1581. RETURN.
  1582. END PROCEDURE.
  1583. /* _UIB-CODE-BLOCK-END */
  1584. &ANALYZE-RESUME
  1585. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI F-Frame-Win _DEFAULT-DISABLE
  1586. PROCEDURE disable_UI :
  1587. /*------------------------------------------------------------------------------
  1588. Purpose: DISABLE the User Interface
  1589. Parameters: <none>
  1590. Notes: Here we clean-up the user-interface by deleting
  1591. dynamic widgets we have created and/or hide
  1592. frames. This procedure is usually called when
  1593. we are ready to "clean-up" after running.
  1594. ------------------------------------------------------------------------------*/
  1595. /* Hide all frames. */
  1596. HIDE FRAME F-Main.
  1597. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  1598. END PROCEDURE.
  1599. /* _UIB-CODE-BLOCK-END */
  1600. &ANALYZE-RESUME
  1601. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI F-Frame-Win _DEFAULT-ENABLE
  1602. PROCEDURE enable_UI :
  1603. /*------------------------------------------------------------------------------
  1604. Purpose: ENABLE the User Interface
  1605. Parameters: <none>
  1606. Notes: Here we display/view/enable the widgets in the
  1607. user-interface. In addition, OPEN all queries
  1608. associated with each FRAME and BROWSE.
  1609. These statements here are based on the "Other
  1610. Settings" section of the widget Property Sheets.
  1611. ------------------------------------------------------------------------------*/
  1612. DISPLAY F_Adresse F_Artnr F_Betrag F_Bestand F_Bestand_Neu F_Betrag_FRW
  1613. WITH FRAME F-Main.
  1614. IF AVAILABLE Besko THEN
  1615. DISPLAY Besko.Besnr Besko.Knr Besko.Lief_Datum
  1616. WITH FRAME F-Main.
  1617. IF AVAILABLE Besze THEN
  1618. DISPLAY Besze.Inhalt Besze.Jahr Besze.Bez1 Besze.Bez2 Besze.S_Artnr
  1619. Besze.GGeb_Me Besze.VGeb_Me Besze.KGeb_Me Besze.S_Preis_FRW
  1620. Besze.S_Preis Besze.Rabatt Besze.Spesen Besze.Preis Besze.L_EP_FRW
  1621. Besze.Aktion Besze.Alter_Listen_EP Besze.Alter_EP
  1622. WITH FRAME F-Main.
  1623. ENABLE Br_Besze F_Bestand F_Bestand_Neu F_GGeb F_VGeb F_KGeb RECT-39 RECT-40
  1624. WITH FRAME F-Main.
  1625. {&OPEN-BROWSERS-IN-QUERY-F-Main}
  1626. END PROCEDURE.
  1627. /* _UIB-CODE-BLOCK-END */
  1628. &ANALYZE-RESUME
  1629. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ERFASSEN F-Frame-Win
  1630. PROCEDURE ERFASSEN :
  1631. /*------------------------------------------------------------------------------
  1632. Purpose:
  1633. Parameters: <none>
  1634. Notes:
  1635. ------------------------------------------------------------------------------*/
  1636. DISABLE TRIGGERS FOR LOAD OF Besze.
  1637. DEF VAR yy AS INT NO-UNDO.
  1638. DEF VAR Fenster AS HANDLE NO-UNDO.
  1639. DEF VAR VName AS CHAR NO-UNDO.
  1640. DEF VAR cFelder AS CHAR NO-UNDO
  1641. INIT 'F_Artnr,Inhalt,Jahr,Bez1,Bez2,S_Artnr,GGeb_Me,VGeb_Me,KGeb_Me,~
  1642. S_Preis_Frw,S_Preis,Alter_Listen_EP,Rabatt,Spesen,Preis,Alter_EP,L_EP_FRW,~
  1643. F_Betrag,F_Bestand,F_Bestand_Neu,F_Betrag_Frw'.
  1644. IF VUpdate THEN RETURN NO-APPLY.
  1645. DO WITH FRAME {&FRAME-NAME}:
  1646. ASSIGN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  1647. ASSIGN Fenster = Fenster:FIRST-CHILD.
  1648. DO WHILE VALID-HANDLE (Fenster) :
  1649. DO WHILE TRUE:
  1650. VName = Fenster:NAME.
  1651. IF LOOKUP(VName, cFelder, ',') = 0 THEN LEAVE.
  1652. IF Fenster:TYPE = 'LITERAL' THEN LEAVE.
  1653. IF Fenster:HIDDEN = TRUE THEN LEAVE.
  1654. Fenster:SCREEN-VALUE = '' NO-ERROR.
  1655. LEAVE.
  1656. END.
  1657. ASSIGN Fenster = Fenster:NEXT-SIBLING.
  1658. END.
  1659. ENABLE F_Artnr
  1660. Besze.Inhalt
  1661. Besze.Jahr.
  1662. VUpdate = TRUE.
  1663. VNeu = TRUE.
  1664. EMPTY TEMP-TABLE tBesze.
  1665. CREATE tBesze.
  1666. APPLY 'ENTRY' TO F_Artnr.
  1667. END.
  1668. RETURN NO-APPLY.
  1669. END PROCEDURE.
  1670. /* _UIB-CODE-BLOCK-END */
  1671. &ANALYZE-RESUME
  1672. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FREMDWAEHRUNG F-Frame-Win
  1673. PROCEDURE FREMDWAEHRUNG :
  1674. /*------------------------------------------------------------------------------
  1675. Purpose:
  1676. Parameters: <none>
  1677. Notes:
  1678. ------------------------------------------------------------------------------*/
  1679. DEF INPUT PARAMETER Art AS INT.
  1680. IF VNeu THEN DO:
  1681. VFRW = Besko.FRW.
  1682. VKurs = Besko.Kurs.
  1683. VFaktor = Besko.Faktor.
  1684. END.
  1685. ELSE DO:
  1686. VFRW = Besze.FRW.
  1687. VKurs = Besze.Kurs.
  1688. VFaktor = Besze.Faktor.
  1689. END.
  1690. IF VKurs = 0 OR
  1691. VKurs = ? OR
  1692. VFaktor = 0 OR
  1693. VFaktor = ? THEN DO:
  1694. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1
  1695. WHERE Waehrung.Firma = GVFirma
  1696. AND Waehrung.FRW = VFRW NO-ERROR.
  1697. IF AVAILABLE Waehrung THEN DO:
  1698. VFaktor = Waehrung.Faktor.
  1699. VKurs = Waehrung.Kurs.
  1700. END.
  1701. END.
  1702. DO WHILE Art = 1:
  1703. IF Rundbetr = 0 THEN LEAVE.
  1704. Rundbetr = Rundbetr * VKurs / VFaktor.
  1705. LEAVE.
  1706. END.
  1707. DO WHILE Art = 2:
  1708. IF Rundbetr = 0 THEN LEAVE.
  1709. Rundbetr = Rundbetr * VFaktor / VKurs.
  1710. LEAVE.
  1711. END.
  1712. END PROCEDURE.
  1713. /* _UIB-CODE-BLOCK-END */
  1714. &ANALYZE-RESUME
  1715. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-destroy F-Frame-Win
  1716. PROCEDURE local-destroy :
  1717. /*------------------------------------------------------------------------------
  1718. Purpose: Override standard ADM method
  1719. Notes:
  1720. ------------------------------------------------------------------------------*/
  1721. DEF VAR hBrowser AS HANDLE NO-UNDO.
  1722. DEF VAR Sektion AS CHAR NO-UNDO.
  1723. Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.').
  1724. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  1725. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser,
  1726. INPUT Sektion ) NO-ERROR.
  1727. RUN dispatch IN THIS-PROCEDURE ( INPUT 'destroy':U ) .
  1728. /* Code placed here will execute AFTER standard behavior. */
  1729. END PROCEDURE.
  1730. /* _UIB-CODE-BLOCK-END */
  1731. &ANALYZE-RESUME
  1732. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize F-Frame-Win
  1733. PROCEDURE local-initialize :
  1734. /*------------------------------------------------------------------------------
  1735. Purpose: Override standard ADM method
  1736. Notes:
  1737. ------------------------------------------------------------------------------*/
  1738. DEF VAR Sektion AS CHAR NO-UNDO.
  1739. DEF VAR hBrowser AS HANDLE NO-UNDO.
  1740. DEF VAR hTBrowser AS HANDLE NO-UNDO.
  1741. DEF VAR hMenu AS HANDLE NO-UNDO.
  1742. DEF VAR hItem_Filter AS HANDLE NO-UNDO.
  1743. DEF VAR hItem_Excel AS HANDLE NO-UNDO.
  1744. DEF VAR hItem_zurueck AS HANDLE NO-UNDO.
  1745. DEF VAR hItem_sort AS HANDLE NO-UNDO.
  1746. DEF VAR hItem_move AS HANDLE NO-UNDO.
  1747. DEF VAR hItem_Rule AS HANDLE NO-UNDO.
  1748. Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.').
  1749. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
  1750. hDaten = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
  1751. hFenster = DYNAMIC-FUNCTION('getContainerSource':U) NO-ERROR.
  1752. IF VALID-HANDLE(hFenster)
  1753. THEN Progname = DYNAMIC-FUNCTION('getProgname':U, INPUT hFenster ) NO-ERROR.
  1754. MinNr = DYNAMIC-FUNCTION('getMinArtnr':U) NO-ERROR.
  1755. IF MinNr > 1 THEN MinNr = INTEGER('1' + FILL('0', MinNr - 1)).
  1756. EMPTY TEMP-TABLE TBrowser.
  1757. hTBrowser = TEMP-TABLE TBrowser:DEFAULT-BUFFER-HANDLE.
  1758. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}.
  1759. hBrowser:COLUMN-MOVABLE = TRUE.
  1760. CREATE MENU hMenu
  1761. ASSIGN POPUP-ONLY = TRUE
  1762. TITLE = 'Browser Menu'.
  1763. CREATE MENU-ITEM hItem_Excel
  1764. ASSIGN LABEL = 'Export in Excel'
  1765. NAME = 'm_excel'
  1766. PARENT = hMenu.
  1767. CREATE MENU-ITEM hItem_Filter
  1768. ASSIGN LABEL = 'Filter setzen'
  1769. NAME = 'm_filter'
  1770. PARENT = hMenu.
  1771. CREATE MENU-ITEM hItem_Rule
  1772. ASSIGN SUBTYPE = 'RULE':U
  1773. PARENT = hMenu.
  1774. CREATE MENU-ITEM hItem_zurueck
  1775. ASSIGN LABEL = 'Spalten und Breite zurücksetzen'
  1776. NAME = 'm_zurueck'
  1777. PARENT = hMenu.
  1778. CREATE MENU-ITEM hItem_Rule
  1779. ASSIGN SUBTYPE = 'RULE':U
  1780. PARENT = hMenu.
  1781. CREATE MENU-ITEM hItem_sort
  1782. ASSIGN LABEL = 'Spalten sortierbar'
  1783. NAME = 'm_zurueck'
  1784. TOGGLE-BOX = TRUE
  1785. CHECKED = FALSE
  1786. PARENT = hMenu.
  1787. CREATE MENU-ITEM hItem_move
  1788. ASSIGN LABEL = 'Spalten verschiebbar'
  1789. NAME = 'm_move'
  1790. TOGGLE-BOX = TRUE
  1791. CHECKED = TRUE
  1792. PARENT = hMenu.
  1793. hBrowser:POPUP-MENU = hMenu NO-ERROR.
  1794. ON CHOOSE OF hItem_Filter PERSISTENT RUN FILTER_SETZEN IN TARGET-PROCEDURE.
  1795. ON CHOOSE OF hItem_Excel PERSISTENT RUN EXPORT_EXCEL IN TARGET-PROCEDURE.
  1796. ON CHOOSE OF hItem_zurueck PERSISTENT RUN ZURUECKSETZEN IN TARGET-PROCEDURE.
  1797. ON VALUE-CHANGED OF hItem_sort
  1798. PERSISTENT RUN SORTIERBAR IN TARGET-PROCEDURE ( hItem_sort, hItem_move ).
  1799. ON VALUE-CHANGED OF hItem_move
  1800. PERSISTENT RUN VERSCHIEBBAR IN TARGET-PROCEDURE ( hItem_move, hItem_sort ).
  1801. DYNAMIC-FUNCTION('getBrowserDaten':U, INPUT hTBrowser,
  1802. INPUT hBrowser,
  1803. INPUT Sektion ) NO-ERROR.
  1804. END PROCEDURE.
  1805. /* _UIB-CODE-BLOCK-END */
  1806. &ANALYZE-RESUME
  1807. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view F-Frame-Win
  1808. PROCEDURE local-view :
  1809. /*------------------------------------------------------------------------------
  1810. Purpose: Override standard ADM method
  1811. Notes:
  1812. ------------------------------------------------------------------------------*/
  1813. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  1814. FIND Besko NO-LOCK USE-INDEX Besko-k1
  1815. WHERE Besko.Firma = GVFirma
  1816. AND Besko.Besnr = LVBesnr NO-ERROR.
  1817. IF NOT AVAILABLE Besko THEN RETURN NO-APPLY.
  1818. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  1819. WHERE Adresse.Firma = AdFirma
  1820. AND Adresse.Knr = Besko.Knr NO-ERROR.
  1821. F_Adresse = Adresse.Anzeig_Br.
  1822. iKnr = Besko.Knr.
  1823. iBnr = Besko.Besnr.
  1824. BRecid = RECID(Besko).
  1825. DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}.
  1826. iStatus = Besko.Best_Sta.
  1827. IF iStatus = 2 THEN F_Bestand_Neu:HIDDEN IN FRAME {&FRAME-NAME} = FALSE.
  1828. ELSE F_Bestand_Neu:HIDDEN IN FRAME {&FRAME-NAME} = TRUE.
  1829. RUN OPEN_BESZE.
  1830. APPLY 'ENTRY' TO BROWSE Br_Besze.
  1831. RETURN NO-APPLY.
  1832. END PROCEDURE.
  1833. /* _UIB-CODE-BLOCK-END */
  1834. &ANALYZE-RESUME
  1835. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN F-Frame-Win
  1836. PROCEDURE LOESCHEN :
  1837. /*------------------------------------------------------------------------------
  1838. Purpose:
  1839. Parameters: <none>
  1840. Notes:
  1841. ------------------------------------------------------------------------------*/
  1842. DISABLE TRIGGERS FOR LOAD OF Besze.
  1843. DEF VAR fVerbucht AS LOG NO-UNDO.
  1844. DO WITH FRAME {&FRAME-NAME}:
  1845. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  1846. IF NOT AVAILABLE Besze THEN RETURN NO-APPLY.
  1847. END.
  1848. Ja = FALSE.
  1849. { v8/loeschen.i }
  1850. IF NOT Ja THEN RETURN NO-APPLY.
  1851. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}:
  1852. FIND BBesze WHERE RECID(BBesze) = RECID(Besze).
  1853. FIND Artbw USE-INDEX Artbw-k1
  1854. WHERE Artbw.Firma = BBesze.Firma
  1855. AND Artbw.Trnr = BBesze.Trnr NO-ERROR.
  1856. IF AVAILABLE Artbw THEN fVerbucht = TRUE.
  1857. ELSE fVerbucht = FALSE.
  1858. DO WHILE TRUE:
  1859. IF BBesze.Artnr = 0 THEN LEAVE.
  1860. IF Besko.Best_Sta > 3 THEN LEAVE.
  1861. FIND Artst USE-INDEX Artst-k1
  1862. WHERE Artst.Firma = GVFirma
  1863. AND Artst.Artnr = BBesze.Artnr
  1864. AND Artst.Inhalt = BBesze.Inhalt
  1865. AND Artst.Jahr = BBesze.Jahr.
  1866. FIND ArtLager USE-INDEX ArtLager-k1
  1867. WHERE ArtLager.Firma = BBesze.Firma
  1868. AND ArtLager.Artnr = BBesze.Artnr
  1869. AND ArtLager.Inhalt = BBesze.Inhalt
  1870. AND ArtLager.Jahr = BBesze.Jahr
  1871. AND ArtLager.Lager = BBesze.Lager.
  1872. IF Besko.Best_Sta < 3 THEN DO:
  1873. Artst.Bestellt = Artst.Bestellt - (BBesze.MBest - BBesze.MGeli).
  1874. ArtLager.Bestellt = ArtLager.Bestellt - (BBesze.MBest - BBesze.MGeli).
  1875. END.
  1876. ELSE DO:
  1877. IF fVerbucht THEN DO:
  1878. ArtLager.Bestand = ArtLager.Bestand - BBesze.MGeli.
  1879. ArtLager.Eingang = ArtLager.Eingang - BBesze.MGeli.
  1880. END.
  1881. END.
  1882. DO WHILE BBesze.GGeb_Me <> 0
  1883. AND Besko.Best_Sta = 3
  1884. AND fVerbucht :
  1885. FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1
  1886. WHERE GGebinde.Firma = BBesze.Firma
  1887. AND GGebinde.Geb_Cd = BBesze.GGeb_Cd NO-ERROR.
  1888. IF NOT AVAILABLE GGebinde THEN LEAVE.
  1889. IF GGebinde.Geb_Kto = '' THEN LEAVE.
  1890. FIND FIRST GebKontr USE-INDEX GebKontr-k2
  1891. WHERE GebKontr.Firma = Besko.Firma
  1892. AND GebKontr.Knr = Besko.Knr
  1893. AND GebKontr.Geb_Cd = GGebinde.Geb_Kto
  1894. AND GebKontr.Doknr = Besko.Besnr
  1895. AND GebKontr.Datum = Artbw.Datum NO-ERROR.
  1896. IF NOT AVAILABLE GebKontr THEN LEAVE.
  1897. GebKontr.Eingang = GebKontr.Eingang - BBesze.GGeb_Me.
  1898. RELEASE GebKontr.
  1899. LEAVE.
  1900. END.
  1901. DO WHILE BBesze.VGeb_Me <> 0
  1902. AND Besko.Best_Sta = 3
  1903. AND fVerbucht :
  1904. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1
  1905. WHERE VGebinde.Firma = BBesze.Firma
  1906. AND VGebinde.Geb_Cd = BBesze.VGeb_Cd NO-ERROR.
  1907. IF NOT AVAILABLE VGebinde THEN LEAVE.
  1908. IF VGebinde.Geb_Kto = '' THEN LEAVE.
  1909. FIND FIRST GebKontr USE-INDEX GebKontr-k2
  1910. WHERE GebKontr.Firma = Besko.Firma
  1911. AND GebKontr.Knr = Besko.Knr
  1912. AND GebKontr.Geb_Cd = VGebinde.Geb_Kto
  1913. AND GebKontr.Doknr = Besko.Besnr
  1914. AND GebKontr.Datum = Artbw.Datum NO-ERROR.
  1915. IF NOT AVAILABLE GebKontr THEN LEAVE.
  1916. GebKontr.Eingang = GebKontr.Eingang - BBesze.VGeb_Me.
  1917. RELEASE GebKontr.
  1918. LEAVE.
  1919. END.
  1920. DO WHILE BBesze.KGeb_Me <> 0
  1921. AND Besko.Best_Sta = 3
  1922. AND fVerbucht :
  1923. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  1924. WHERE KGebinde.Firma = BBesze.Firma
  1925. AND KGebinde.Geb_Cd = BBesze.KGeb_Cd NO-ERROR.
  1926. IF NOT AVAILABLE KGebinde THEN LEAVE.
  1927. IF KGebinde.Geb_Kto = '' THEN LEAVE.
  1928. FIND FIRST GebKontr USE-INDEX GebKontr-k2
  1929. WHERE GebKontr.Firma = Besko.Firma
  1930. AND GebKontr.Knr = Besko.Knr
  1931. AND GebKontr.Geb_Cd = KGebinde.Geb_Kto
  1932. AND GebKontr.Doknr = Besko.Besnr
  1933. AND GebKontr.Datum = Artbw.Datum NO-ERROR.
  1934. IF NOT AVAILABLE GebKontr THEN LEAVE.
  1935. GebKontr.Eingang = GebKontr.Eingang - BBesze.KGeb_Me.
  1936. RELEASE GebKontr.
  1937. LEAVE.
  1938. END.
  1939. LEAVE.
  1940. END.
  1941. FIND Artbw USE-INDEX Artbw-k1
  1942. WHERE Artbw.Firma = BBesze.Firma
  1943. AND Artbw.Trnr = BBesze.Trnr NO-ERROR.
  1944. IF AVAILABLE Artbw THEN DELETE Artbw.
  1945. DELETE BBesze.
  1946. {&BROWSE-NAME}:DELETE-SELECTED-ROW(1).
  1947. RELEASE KGebinde.
  1948. RELEASE VGebinde.
  1949. RELEASE GGebinde.
  1950. RELEASE GebKontr.
  1951. RELEASE Artbw .
  1952. RELEASE Artst .
  1953. LEAVE.
  1954. END.
  1955. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  1956. RETURN NO-APPLY.
  1957. END PROCEDURE.
  1958. /* _UIB-CODE-BLOCK-END */
  1959. &ANALYZE-RESUME
  1960. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_BESZE F-Frame-Win
  1961. PROCEDURE OPEN_BESZE :
  1962. /*------------------------------------------------------------------------------
  1963. Purpose:
  1964. Parameters: <none>
  1965. Notes:
  1966. ------------------------------------------------------------------------------*/
  1967. IF QOpen = TRUE THEN CLOSE QUERY {&BROWSE-NAME}.
  1968. QOpen = FALSE.
  1969. DO WITH FRAME {&FRAME-NAME}:
  1970. OPEN QUERY Br_Besze
  1971. FOR EACH Besze OF Besko NO-LOCK.
  1972. Br_Besze:SET-REPOSITIONED-ROW(5, "ALWAYS").
  1973. QOpen = TRUE.
  1974. END.
  1975. IF NOT FNeuMut THEN DO:
  1976. APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}.
  1977. END.
  1978. FNeuMut = FALSE.
  1979. END PROCEDURE.
  1980. /* _UIB-CODE-BLOCK-END */
  1981. &ANALYZE-RESUME
  1982. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records F-Frame-Win _ADM-SEND-RECORDS
  1983. PROCEDURE send-records :
  1984. /*------------------------------------------------------------------------------
  1985. Purpose: Send record ROWID's for all tables used by
  1986. this file.
  1987. Parameters: see template/snd-head.i
  1988. ------------------------------------------------------------------------------*/
  1989. /* Define variables needed by this internal procedure. */
  1990. {src/adm/template/snd-head.i}
  1991. /* For each requested table, put it's ROWID in the output list. */
  1992. {src/adm/template/snd-list.i "Besko"}
  1993. {src/adm/template/snd-list.i "Besze"}
  1994. /* Deal with any unexpected table requests before closing. */
  1995. {src/adm/template/snd-end.i}
  1996. END PROCEDURE.
  1997. /* _UIB-CODE-BLOCK-END */
  1998. &ANALYZE-RESUME
  1999. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SPEICHERN F-Frame-Win
  2000. PROCEDURE SPEICHERN :
  2001. /*------------------------------------------------------------------------------
  2002. Purpose:
  2003. Parameters: <none>
  2004. Notes:
  2005. ------------------------------------------------------------------------------*/
  2006. DISABLE TRIGGERS FOR LOAD OF Besze.
  2007. DEF VAR VMenge AS DEC DECIMALS 4 NO-UNDO.
  2008. DEF VAR VRecid AS RECID NO-UNDO.
  2009. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}:
  2010. DO WHILE TRUE:
  2011. IF NOT VNeu THEN DO:
  2012. VRecid = RECID(Besze).
  2013. LEAVE.
  2014. END.
  2015. FIND LAST BBesze NO-LOCK USE-INDEX Besze-k1
  2016. WHERE BBesze.Firma = GVFirma
  2017. AND BBesze.Besnr = Besko.Besnr NO-ERROR.
  2018. IF AVAILABLE BBesze THEN VPos = BBesze.Pos + 10.
  2019. ELSE VPos = 10.
  2020. CREATE Besze.
  2021. ASSIGN Besze.Firma = Besko.Firma
  2022. Besze.Besnr = Besko.Besnr
  2023. Besze.Pos = VPos
  2024. Besze.Artnr = Artst.Artnr
  2025. Besze.Inhalt = Artst.Inhalt
  2026. Besze.Jahr = Artst.Jahr
  2027. Besze.Lager = Besko.Lager
  2028. Besze.KGeb_Cd = Artst.KGeb_Cd
  2029. Besze.VGeb_Cd = Artst.VGeb_Cd
  2030. Besze.GGeb_Cd = Artst.GGeb_Cd
  2031. Besze.KGebKto = KGebinde.Geb_Kto
  2032. Besze.VGebKto = VGebinde.Geb_Kto
  2033. Besze.GGebKto = GGebinde.Geb_Kto
  2034. Besze.FRW = Besko.FRW
  2035. Besze.Kurs = Besko.Kurs
  2036. Besze.Faktor = Besko.Faktor
  2037. Besze.Alter_Listen_EP = Artst.Listen_EP.
  2038. VRecid = RECID(Besze).
  2039. IF AVAILABLE ArtLief THEN Besze.EP = ArtLief.L_EP.
  2040. ELSE Besze.EP = Artst.LEP.
  2041. RELEASE Besze.
  2042. LEAVE.
  2043. END.
  2044. FIND Besze WHERE RECID(Besze) = VRecid.
  2045. ASSIGN {&List-5}.
  2046. Besze.L_EP = Besze.Alter_Ep.
  2047. IF Besze.Alter_Listen_EP = 0 THEN Besze.Alter_Listen_EP = Artst.Listen_EP.
  2048. FIND Artst OF Besze.
  2049. IF Besko.Best_Sta < 3 THEN DO:
  2050. FIND ArtLager USE-INDEX ArtLager-k1
  2051. WHERE ArtLager.Firma = Besze.Firma
  2052. AND ArtLager.Artnr = Besze.Artnr
  2053. AND ArtLager.Inhalt = Besze.Inhalt
  2054. AND ArtLager.Jahr = Besze.Jahr
  2055. AND ArtLager.Lager = Besze.Lager.
  2056. ASSIGN {&List-3}.
  2057. IF Besko.Best_Sta = 1 THEN ASSIGN Besze.MBest = Besze.KGeb_Me.
  2058. ELSE ASSIGN Besze.MGeli = Besze.KGeb_Me.
  2059. IF Besze.MBest = 0 THEN Besze.MBest = Besze.MGeli.
  2060. IF Besze.MBest > 0 THEN DO:
  2061. IF Besze.MGeli > Besze.MBest THEN Besze.MBest = Besze.MGeli.
  2062. END.
  2063. ELSE DO:
  2064. IF Besze.MGeli < Besze.MBest THEN Besze.MBest = Besze.MGeli.
  2065. END.
  2066. FIND FIRST tBesze.
  2067. Artst.Bestellt = Artst.Bestellt - (tBesze.MBest - tBesze.MGeli)
  2068. + (Besze.MBest - Besze.MGeli).
  2069. ArtLager.Bestellt = ArtLager.Bestellt - (tBesze.MBest - tBesze.MGeli)
  2070. + (Besze.MBest - Besze.MGeli).
  2071. END.
  2072. RELEASE Besze.
  2073. RELEASE Artst.
  2074. RELEASE ArtLager.
  2075. DISABLE {&List-3}.
  2076. DISABLE {&List-5}.
  2077. LEAVE.
  2078. END.
  2079. IF VNeu THEN DO:
  2080. FNeuMut = TRUE.
  2081. RUN OPEN_BESZE.
  2082. REPOSITION Br_Besze TO RECID VRecid.
  2083. END.
  2084. ELSE {&BROWSE-NAME}:REFRESH().
  2085. DO WHILE TRUE:
  2086. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  2087. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  2088. {&BROWSE-NAME}:SELECT-FOCUSED-ROW().
  2089. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  2090. RUN ANZEIGE.
  2091. LEAVE.
  2092. END.
  2093. VUpdate = FALSE.
  2094. VNeu = FALSE.
  2095. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  2096. RETURN NO-APPLY.
  2097. END PROCEDURE.
  2098. /* _UIB-CODE-BLOCK-END */
  2099. &ANALYZE-RESUME
  2100. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed F-Frame-Win
  2101. PROCEDURE state-changed :
  2102. /* -----------------------------------------------------------
  2103. Purpose:
  2104. Parameters: <none>
  2105. Notes:
  2106. -------------------------------------------------------------*/
  2107. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  2108. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  2109. CASE p-state:
  2110. WHEN 'browser_entry' THEN DO:
  2111. APPLY 'ENTRY' TO Br_Besze IN FRAME {&FRAME-NAME}.
  2112. RETURN.
  2113. END.
  2114. END CASE.
  2115. END PROCEDURE.
  2116. /* _UIB-CODE-BLOCK-END */
  2117. &ANALYZE-RESUME