b-kunbest.w 62 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901
  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 B-table-Win
  8. /*------------------------------------------------------------------------
  9. File:
  10. Description: from BROWSER.W - Basic SmartBrowser Object 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. &Scoped-define ERSTES-FELD Pos
  26. &Scoped-define ZWEITES-FELD Pos
  27. &Scoped-define LETZTES-FELD Best
  28. &Scoped-define INPUT-FELDER KunBest.Pos,KunBest.Artnr,KunBest.Inhalt,KunBest.Jahr,~
  29. KunBest.Soll,KunBest.Best
  30. &Scoped-define DATEI-NAME KunBest
  31. /* *************************** Definitions ************************** */
  32. /* Parameters Definitions --- */
  33. /* Local Variable Definitions --- */
  34. /* --------------------------------------------------------------------------- */
  35. DEF VAR VUpdate AS LOG INIT FALSE NO-UNDO.
  36. DEF VAR VSpeichern AS LOG INIT FALSE NO-UNDO.
  37. DEF VAR VNeu AS LOG INIT FALSE NO-UNDO.
  38. DEF VAR FErfassen AS LOG INIT FALSE NO-UNDO.
  39. DEF VAR PHandle AS HANDLE NO-UNDO.
  40. DEF VAR XHandle AS HANDLE NO-UNDO.
  41. DEF VAR LHandle AS HANDLE NO-UNDO.
  42. DEF VAR ch AS CHAR NO-UNDO.
  43. DEF VAR VText AS CHAR FORMAT "x(30)" NO-UNDO.
  44. DEF VAR QOpen AS LOG INIT FALSE NO-UNDO.
  45. DEF VAR FQOpen AS LOG INIT FALSE NO-UNDO.
  46. DEF VAR Vorhanden AS LOG NO-UNDO.
  47. DEF VAR VRecid AS RECID NO-UNDO.
  48. DEF VAR VROWID AS ROWID NO-UNDO.
  49. DEF VAR Feldname AS CHAR NO-UNDO.
  50. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  51. DEF VAR BStatus AS INT INIT 0 NO-UNDO.
  52. DEF BUFFER B{&DATEI-NAME} FOR {&DATEI-NAME}.
  53. /* --------------------------------------------------------------------------- */
  54. DEF VAR VBez AS CHAR FORMAT "x(20)" NO-UNDO.
  55. DEF VAR VInhalt AS INT FORMAT "zzz9" NO-UNDO.
  56. DEF VAR VAlk_Gehalt AS DEC FORMAT "z9.99" NO-UNDO.
  57. DEF VAR VKGeb_Cd AS CHAR FORMAT "x(08)" NO-UNDO.
  58. DEF VAR VVGeb_Cd AS CHAR FORMAT "x(08)" NO-UNDO.
  59. DEF VAR VSoll AS INT FORMAT "zzz9" NO-UNDO.
  60. DEF VAR VBest AS INT FORMAT "zzz9" NO-UNDO.
  61. DEF VAR VKopie AS LOG NO-UNDO.
  62. DEF VAR FVC AS LOG INIT TRUE NO-UNDO.
  63. DEF VAR VDatum AS DATE FORMAT "99.99.9999" NO-UNDO.
  64. DEF VAR BDatum AS DATE FORMAT "99.99.9999" NO-UNDO.
  65. DEF VAR VKnr AS INT NO-UNDO.
  66. DEF VAR VPreis AS DEC DECIMALS 4 NO-UNDO.
  67. DEF VAR VBru_Betr AS DEC DECIMALS 4 NO-UNDO.
  68. DEF VAR VNet_Betr AS DEC DECIMALS 4 NO-UNDO.
  69. DEF VAR VRab_Betr AS DEC DECIMALS 4 NO-UNDO.
  70. DEF VAR VRab_Proz AS DEC DECIMALS 4 NO-UNDO.
  71. DEF VAR VRab_Wert AS DEC DECIMALS 4 NO-UNDO.
  72. DEF VAR VRab_Art AS INT NO-UNDO.
  73. DEF VAR VPGrp AS INT NO-UNDO.
  74. DEF VAR VAGrp AS INT NO-UNDO.
  75. DEF VAR PosMenge AS INT NO-UNDO.
  76. DEF VAR VInkl AS LOG NO-UNDO.
  77. DEF BUFFER BWust FOR Wust.
  78. DEF TEMP-TABLE tKunBest NO-UNDO LIKE KunBest
  79. FIELD cSort AS CHAR
  80. INDEX tKunBest-tk Artnr Inhalt Jahr
  81. INDEX tKunBest-k1 Firma Knr Pos
  82. INDEX tKunBest-k2 Firma cSort.
  83. DEF TEMP-TABLE tAufze LIKE Aufze
  84. FIELD Knr AS INT
  85. FIELD Datum AS DATE.
  86. DEF VAR htAufze AS HANDLE NO-UNDO.
  87. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  88. /* ---------- Globale Variablen ---------------------------------- */
  89. { v8/globvar.i " " " " "SHARED" }
  90. { v8/debivar.i " " " " "SHARED" }
  91. { v8/artivar.i " " " " "SHARED" }
  92. { v8/contvar.i " " " " "SHARED" }
  93. /* _UIB-CODE-BLOCK-END */
  94. &ANALYZE-RESUME
  95. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  96. /* ******************** Preprocessor Definitions ******************** */
  97. &Scoped-define PROCEDURE-TYPE SmartBrowser
  98. &Scoped-define DB-AWARE no
  99. &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
  100. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  101. &Scoped-define FRAME-NAME F-Main
  102. &Scoped-define BROWSE-NAME br_table
  103. /* Internal Tables (found by Frame, Query & Browse Queries) */
  104. &Scoped-define INTERNAL-TABLES KunBest
  105. /* Definitions for BROWSE br_table */
  106. &Scoped-define FIELDS-IN-QUERY-br_table KunBest.Pos KunBest.Artnr ~
  107. KunBest.Inhalt KunBest.Jahr VBez @ VBez VInhalt @ VInhalt ~
  108. VAlk_Gehalt @ VAlk_Gehalt VKGeb_Cd @ VKGeb_Cd VVGeb_Cd @ VVGeb_Cd ~
  109. KunBest.Soll KunBest.Best
  110. &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table KunBest.Pos KunBest.Artnr ~
  111. KunBest.Inhalt KunBest.Jahr KunBest.Soll
  112. &Scoped-define ENABLED-TABLES-IN-QUERY-br_table KunBest
  113. &Scoped-define FIRST-ENABLED-TABLE-IN-QUERY-br_table KunBest
  114. &Scoped-define QUERY-STRING-br_table FOR EACH KunBest ~
  115. WHERE KunBest.Firma = GVFirma ~
  116. AND KunBest.Knr = LVKnr NO-LOCK ~
  117. BY KunBest.Pos
  118. &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH KunBest ~
  119. WHERE KunBest.Firma = GVFirma ~
  120. AND KunBest.Knr = LVKnr NO-LOCK ~
  121. BY KunBest.Pos.
  122. &Scoped-define TABLES-IN-QUERY-br_table KunBest
  123. &Scoped-define FIRST-TABLE-IN-QUERY-br_table KunBest
  124. /* Definitions for FRAME F-Main */
  125. /* Standard List Definitions */
  126. &Scoped-Define ENABLED-OBJECTS RECT-9 br_table Btn_Erfassen Btn_Speichern ~
  127. Btn_Loeschen Btn_Nummer Btn_Excel Btn_Neu
  128. /* Custom List Definitions */
  129. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  130. &Scoped-define List-6 Btn_Erfassen Btn_Speichern Btn_Loeschen Btn_Nummer ~
  131. Btn_Excel
  132. /* _UIB-PREPROCESSOR-BLOCK-END */
  133. &ANALYZE-RESUME
  134. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE
  135. /* Actions: ? adm/support/keyedit.w ? ? ? */
  136. /* STRUCTURED-DATA
  137. <KEY-OBJECT>
  138. &BROWSE-NAME
  139. </KEY-OBJECT>
  140. <FOREIGN-KEYS>
  141. </FOREIGN-KEYS>
  142. <EXECUTING-CODE>
  143. **************************
  144. * Set attributes related to FOREIGN KEYS
  145. */
  146. RUN set-attribute-list (
  147. 'Keys-Accepted = "",
  148. Keys-Supplied = ""':U).
  149. /**************************
  150. </EXECUTING-CODE> */
  151. /* _UIB-CODE-BLOCK-END */
  152. &ANALYZE-RESUME
  153. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE
  154. /* Actions: ? adm/support/advqedit.w ? ? ? */
  155. /* STRUCTURED-DATA
  156. <KEY-OBJECT>
  157. &BROWSE-NAME
  158. </KEY-OBJECT>
  159. <SORTBY-OPTIONS>
  160. </SORTBY-OPTIONS>
  161. <SORTBY-RUN-CODE>
  162. ************************
  163. * Set attributes related to SORTBY-OPTIONS */
  164. RUN set-attribute-list (
  165. 'SortBy-Options = ""':U).
  166. /************************
  167. </SORTBY-RUN-CODE>
  168. <FILTER-ATTRIBUTES>
  169. </FILTER-ATTRIBUTES> */
  170. /* _UIB-CODE-BLOCK-END */
  171. &ANALYZE-RESUME
  172. /* *********************** Control Definitions ********************** */
  173. /* Menu Definitions */
  174. DEFINE MENU POPUP-MENU-Btn_Excel
  175. MENU-ITEM m_Sortierung_nach_Position LABEL "Sortierung nach Position"
  176. MENU-ITEM m_Sortierung_nach_Artikelnumm LABEL "Sortierung nach Artikelnummer"
  177. MENU-ITEM m_Sortierung_nach_Bezeichnung LABEL "Sortierung nach Bezeichnung".
  178. /* Definitions of the field level widgets */
  179. DEFINE BUTTON Btn_Erfassen
  180. LABEL "&Erfassen"
  181. SIZE 19.8 BY 1.
  182. DEFINE BUTTON Btn_Excel
  183. LABEL "Excel"
  184. SIZE 9.6 BY 1.
  185. DEFINE BUTTON Btn_Loeschen
  186. LABEL "&Löschen"
  187. SIZE 19.8 BY 1.
  188. DEFINE BUTTON Btn_Neu
  189. LABEL "&Neu"
  190. SIZE 9.6 BY 1.
  191. DEFINE BUTTON Btn_Nummer
  192. LABEL "Neue Nummer"
  193. SIZE 19.8 BY 1.
  194. DEFINE BUTTON Btn_Speichern
  195. LABEL "&Speichern"
  196. SIZE 19.8 BY 1.
  197. DEFINE RECTANGLE RECT-9
  198. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  199. SIZE 132 BY 6.43.
  200. /* Query definitions */
  201. &ANALYZE-SUSPEND
  202. DEFINE QUERY br_table FOR
  203. KunBest SCROLLING.
  204. &ANALYZE-RESUME
  205. /* Browse definitions */
  206. DEFINE BROWSE br_table
  207. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table B-table-Win _STRUCTURED
  208. QUERY br_table NO-LOCK DISPLAY
  209. KunBest.Pos FORMAT "zzz9":U
  210. KunBest.Artnr FORMAT "999999":U
  211. KunBest.Inhalt FORMAT "9999":U
  212. KunBest.Jahr FORMAT "9999":U
  213. VBez @ VBez COLUMN-LABEL "Bezeichnung" FORMAT "x(20)":U
  214. VInhalt @ VInhalt COLUMN-LABEL "Inhalt" FORMAT "zzz9":U
  215. VAlk_Gehalt @ VAlk_Gehalt COLUMN-LABEL "Vol%" FORMAT "z9.99":U
  216. VKGeb_Cd @ VKGeb_Cd COLUMN-LABEL "Klein-G" FORMAT "x(08)":U
  217. COLUMN-FONT 12
  218. VVGeb_Cd @ VVGeb_Cd COLUMN-LABEL "Verk-G" FORMAT "x(08)":U
  219. KunBest.Soll FORMAT "zzz,zz9":U
  220. KunBest.Best COLUMN-LABEL "Bestellt" FORMAT "zzz,zz9":U
  221. ENABLE
  222. KunBest.Pos
  223. KunBest.Artnr
  224. KunBest.Inhalt
  225. KunBest.Jahr
  226. KunBest.Soll
  227. /* _UIB-CODE-BLOCK-END */
  228. &ANALYZE-RESUME
  229. WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 98 BY 5.95
  230. BGCOLOR 15 .
  231. /* ************************ Frame Definitions *********************** */
  232. DEFINE FRAME F-Main
  233. br_table AT ROW 1.48 COL 3
  234. Btn_Erfassen AT ROW 1.62 COL 104
  235. Btn_Speichern AT ROW 2.62 COL 104
  236. Btn_Loeschen AT ROW 3.62 COL 104
  237. Btn_Nummer AT ROW 4.62 COL 104
  238. Btn_Excel AT ROW 6.33 COL 104
  239. Btn_Neu AT ROW 6.33 COL 114
  240. RECT-9 AT ROW 1.24 COL 2
  241. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  242. SIDE-LABELS NO-UNDERLINE THREE-D
  243. AT COL 1 ROW 1 SCROLLABLE
  244. DEFAULT-BUTTON Btn_Speichern.
  245. /* *********************** Procedure Settings ************************ */
  246. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  247. /* Settings for THIS-PROCEDURE
  248. Type: SmartBrowser
  249. Allow: Basic,Browse
  250. Frames: 1
  251. Add Fields to: EXTERNAL-TABLES
  252. Other Settings: PERSISTENT-ONLY COMPILE
  253. */
  254. /* This procedure should always be RUN PERSISTENT. Report the error, */
  255. /* then cleanup and return. */
  256. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  257. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  258. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  259. RETURN.
  260. END.
  261. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  262. /* ************************* Create Window ************************** */
  263. &ANALYZE-SUSPEND _CREATE-WINDOW
  264. /* DESIGN Window definition (used by the UIB)
  265. CREATE WINDOW B-table-Win ASSIGN
  266. HEIGHT = 7.29
  267. WIDTH = 137.2.
  268. /* END WINDOW DEFINITION */
  269. */
  270. &ANALYZE-RESUME
  271. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win
  272. /* ************************* Included-Libraries *********************** */
  273. {src/adm/method/browser.i}
  274. /* _UIB-CODE-BLOCK-END */
  275. &ANALYZE-RESUME
  276. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  277. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  278. /* SETTINGS FOR WINDOW B-table-Win
  279. NOT-VISIBLE,,RUN-PERSISTENT */
  280. /* SETTINGS FOR FRAME F-Main
  281. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  282. /* BROWSE-TAB br_table RECT-9 F-Main */
  283. ASSIGN
  284. FRAME F-Main:SCROLLABLE = FALSE
  285. FRAME F-Main:HIDDEN = TRUE
  286. FRAME F-Main:RESIZABLE = TRUE.
  287. ASSIGN
  288. br_table:NUM-LOCKED-COLUMNS IN FRAME F-Main = 5.
  289. /* SETTINGS FOR BUTTON Btn_Erfassen IN FRAME F-Main
  290. 6 */
  291. ASSIGN
  292. Btn_Erfassen:PRIVATE-DATA IN FRAME F-Main =
  293. "Abbrechen".
  294. /* SETTINGS FOR BUTTON Btn_Excel IN FRAME F-Main
  295. 6 */
  296. ASSIGN
  297. Btn_Excel:POPUP-MENU IN FRAME F-Main = MENU POPUP-MENU-Btn_Excel:HANDLE.
  298. /* SETTINGS FOR BUTTON Btn_Loeschen IN FRAME F-Main
  299. 6 */
  300. /* SETTINGS FOR BUTTON Btn_Nummer IN FRAME F-Main
  301. 6 */
  302. /* SETTINGS FOR BUTTON Btn_Speichern IN FRAME F-Main
  303. 6 */
  304. /* _RUN-TIME-ATTRIBUTES-END */
  305. &ANALYZE-RESUME
  306. /* Setting information for Queries and Browse Widgets fields */
  307. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table
  308. /* Query rebuild information for BROWSE br_table
  309. _TblList = "AnaDat.KunBest"
  310. _Options = "NO-LOCK"
  311. _OrdList = "AnaDat.KunBest.Pos|yes"
  312. _Where[1] = "KunBest.Firma = GVFirma
  313. AND KunBest.Knr = LVKnr"
  314. _FldNameList[1] > AnaDat.KunBest.Pos
  315. "KunBest.Pos" ? ? "integer" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  316. _FldNameList[2] > AnaDat.KunBest.Artnr
  317. "KunBest.Artnr" ? ? "integer" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  318. _FldNameList[3] > AnaDat.KunBest.Inhalt
  319. "KunBest.Inhalt" ? ? "integer" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  320. _FldNameList[4] > AnaDat.KunBest.Jahr
  321. "KunBest.Jahr" ? ? "integer" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  322. _FldNameList[5] > "_<CALC>"
  323. "VBez @ VBez" "Bezeichnung" "x(20)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  324. _FldNameList[6] > "_<CALC>"
  325. "VInhalt @ VInhalt" "Inhalt" "zzz9" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  326. _FldNameList[7] > "_<CALC>"
  327. "VAlk_Gehalt @ VAlk_Gehalt" "Vol%" "z9.99" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  328. _FldNameList[8] > "_<CALC>"
  329. "VKGeb_Cd @ VKGeb_Cd" "Klein-G" "x(08)" ? ? ? 12 ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  330. _FldNameList[9] > "_<CALC>"
  331. "VVGeb_Cd @ VVGeb_Cd" "Verk-G" "x(08)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  332. _FldNameList[10] > AnaDat.KunBest.Soll
  333. "KunBest.Soll" ? ? "integer" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  334. _FldNameList[11] > AnaDat.KunBest.Best
  335. "KunBest.Best" "Bestellt" ? "integer" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  336. _Query is NOT OPENED
  337. */ /* BROWSE br_table */
  338. &ANALYZE-RESUME
  339. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  340. /* Query rebuild information for FRAME F-Main
  341. _Options = "NO-LOCK"
  342. _Query is NOT OPENED
  343. */ /* FRAME F-Main */
  344. &ANALYZE-RESUME
  345. /* ************************ Control Triggers ************************ */
  346. &Scoped-define BROWSE-NAME br_table
  347. &Scoped-define SELF-NAME br_table
  348. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  349. ON ROW-DISPLAY OF br_table IN FRAME F-Main
  350. DO:
  351. RUN ANZEIGE.
  352. END.
  353. /* _UIB-CODE-BLOCK-END */
  354. &ANALYZE-RESUME
  355. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  356. ON ROW-ENTRY OF br_table IN FRAME F-Main
  357. DO:
  358. {src/adm/template/brsentry.i}
  359. END.
  360. /* _UIB-CODE-BLOCK-END */
  361. &ANALYZE-RESUME
  362. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  363. ON ROW-LEAVE OF br_table IN FRAME F-Main
  364. DO:
  365. LKY = LASTKEY.
  366. LHandle = LAST-EVENT:WIDGET-LEAVE.
  367. XHandle = LAST-EVENT:WIDGET-ENTER.
  368. DO WHILE VUpdate AND NOT FErfassen WITH FRAME {&FRAME-NAME}:
  369. IF KEYFUNCTION(LKY) = 'END-ERROR' THEN DO:
  370. VSpeichern = FALSE.
  371. RUN ERFASSEN.
  372. RETURN NO-APPLY.
  373. END.
  374. IF {&BROWSE-NAME}:CURRENT-ROW-MODIFIED = FALSE THEN DO:
  375. VSpeichern = FALSE.
  376. VUpdate = FALSE.
  377. RUN ERFASSEN.
  378. RETURN NO-APPLY.
  379. END.
  380. IF LKY = KEYCODE('RETURN') THEN DO:
  381. RUN SPEICHERN.
  382. RETURN NO-APPLY.
  383. END.
  384. IF LKY = KEYCODE('TAB') AND
  385. LHandle:NAME = '{&LETZTES-FELD}' THEN DO:
  386. RUN SPEICHERN.
  387. RETURN NO-APPLY.
  388. END.
  389. IF VALID-HANDLE(XHandle) THEN DO:
  390. DO WHILE XHandle:TYPE = 'BUTTON':
  391. IF XHandle:NAME = 'Btn_Erfassen' THEN RETURN.
  392. IF XHandle:NAME = 'Btn_Speichern' THEN RETURN.
  393. APPLY 'ENTRY' TO LHandle.
  394. RETURN NO-APPLY.
  395. END.
  396. END.
  397. RETURN NO-APPLY.
  398. END.
  399. FErfassen = FALSE.
  400. {src/adm/template/brsleave.i}
  401. END.
  402. /* _UIB-CODE-BLOCK-END */
  403. &ANALYZE-RESUME
  404. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  405. ON VALUE-CHANGED OF br_table IN FRAME F-Main
  406. DO:
  407. RUN ANZEIGE.
  408. {src/adm/template/brschnge.i}
  409. END.
  410. /* _UIB-CODE-BLOCK-END */
  411. &ANALYZE-RESUME
  412. &Scoped-define SELF-NAME Btn_Erfassen
  413. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Erfassen B-table-Win
  414. ON CHOOSE OF Btn_Erfassen IN FRAME F-Main /* Erfassen */
  415. DO:
  416. IF VUpdate THEN VSpeichern = FALSE.
  417. VUpdate = FALSE.
  418. RUN ERFASSEN.
  419. END.
  420. /* _UIB-CODE-BLOCK-END */
  421. &ANALYZE-RESUME
  422. &Scoped-define SELF-NAME Btn_Excel
  423. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel B-table-Win
  424. ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */
  425. DO:
  426. IF NOT AVAILABLE KunBest THEN RETURN NO-APPLY.
  427. DEF VAR Vorlage AS CHAR NO-UNDO.
  428. DEF VAR Datei AS CHAR NO-UNDO.
  429. DEF VAR cParam AS CHAR NO-UNDO.
  430. DEF VAR Zelle AS CHAR NO-UNDO.
  431. DEF VAR io AS LOG NO-UNDO.
  432. DEF VAR excelAppl AS COM-HANDLE NO-UNDO.
  433. DEF VAR xSort AS CHAR NO-UNDO.
  434. DEF VAR Kol AS INT NO-UNDO.
  435. DEF VAR Bez AS CHAR NO-UNDO.
  436. DEF VAR iPreisArt AS INT NO-UNDO.
  437. FIND Steuer USE-INDEX Steuer-k1
  438. WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR.
  439. CASE Steuer.Fwc10:
  440. WHEN 'RAUCH' THEN DO:
  441. Vorlage = 'Bestell_Rauch.xls'.
  442. Datei = 'Bestell_Rauch.xls'.
  443. END.
  444. OTHERWISE DO:
  445. Vorlage = 'Bestell.xls'.
  446. Datei = 'Bestell.xls'.
  447. END.
  448. END CASE.
  449. cParam = Datei + CHR(01) + Vorlage.
  450. RUN CREATEDATEI ( INPUT cParam ).
  451. IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY.
  452. Datei = RETURN-VALUE.
  453. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR.
  454. IF NOT VALID-HANDLE(excelAppl) THEN DO:
  455. MESSAGE 'Die Applikation Excel konnte nicht gestartet werden ! '
  456. VIEW-AS ALERT-BOX ERROR.
  457. RETURN NO-APPLY.
  458. END.
  459. RUN OPENEXCEL ( INPUT excelAppl, INPUT Datei, INPUT '', OUTPUT io).
  460. IF NOT io THEN DO:
  461. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  462. RETURN NO-APPLY.
  463. END.
  464. VKnr = KunBest.Knr.
  465. FIND Adresse USE-INDEX Adresse-k1
  466. WHERE Adresse.Firma = AdFirma
  467. AND Adresse.Knr = VKnr NO-LOCK NO-ERROR.
  468. FIND Debst USE-INDEX Debst-k1
  469. WHERE Debst.Firma = GVFirma
  470. AND Debst.Knr = VKnr NO-LOCK NO-ERROR.
  471. FIND BWust USE-INDEX Wust-k1
  472. WHERE BWust.CodeK = Debst.MWST
  473. AND BWust.CodeA = 99 NO-LOCK NO-ERROR.
  474. VInkl = BWust.Incl.
  475. GET-KEY-VALUE SECTION 'FaxListe'
  476. KEY 'Sortierung'
  477. VALUE xSort.
  478. IF xSort = ? THEN xSort = '1'.
  479. xSort = '1'.
  480. EMPTY TEMP-TABLE tKunBest.
  481. FOR EACH bKunBest NO-LOCK USE-INDEX KunBest-k1
  482. WHERE BKunBest.Firma = GVFirma
  483. AND BKunBest.Knr = Adresse.Knr
  484. AND BKunBest.Artnr > 0,
  485. FIRST Artst OF BKunBest NO-LOCK :
  486. CREATE tKunBest.
  487. BUFFER-COPY BKunBest TO tKunBest.
  488. CASE xSort:
  489. WHEN '1' THEN tKunBest.cSort = STRING(BKunBest.Pos ,'999999').
  490. WHEN '2' THEN tKunBest.cSort = STRING(BKunBest.Artnr ,'999999')
  491. + STRING(BKunBest.Inhalt,'9999')
  492. + STRING(BKunBest.Jahr ,'9999').
  493. OTHERWISE DO:
  494. tKunBest.cSort = Artst.Bez.
  495. END.
  496. END CASE.
  497. END.
  498. i1 = 0.
  499. DO ix = 4 TO 11:
  500. IF Adresse.Anschrift[ix] = '' THEN NEXT.
  501. i1 = i1 + 1.
  502. Zelle = 'B' + TRIM(STRING(i1 + 4,"zzz9")).
  503. excelAppl:Range(Zelle):Select.
  504. excelAppl:ActiveCell:FormulaR1C1 = Adresse.Anschrift[ix].
  505. END.
  506. IF Adresse.Tel-1 <> '' THEN DO:
  507. i1 = i1 + 1.
  508. Zelle = 'B' + TRIM(STRING(i1 + 4,"zzz9")).
  509. excelAppl:Range(Zelle):Select.
  510. excelAppl:ActiveCell:FormulaR1C1 = 'Tel'.
  511. Zelle = 'C' + TRIM(STRING(i1 + 4,"zzz9")).
  512. excelAppl:Range(Zelle):Select.
  513. excelAppl:ActiveCell:FormulaR1C1 = Adresse.Tel-1.
  514. END.
  515. IF Adresse.Tel-3 <> '' THEN DO:
  516. i1 = i1 + 1.
  517. Zelle = 'B' + TRIM(STRING(i1 + 4,"zzz9")).
  518. excelAppl:Range(Zelle):Select.
  519. excelAppl:ActiveCell:FormulaR1C1 = 'Fax'.
  520. Zelle = 'C' + TRIM(STRING(i1 + 4,"zzz9")).
  521. excelAppl:Range(Zelle):Select.
  522. excelAppl:ActiveCell:FormulaR1C1 = Adresse.Tel-3.
  523. END.
  524. Zelle = 'F5'.
  525. excelAppl:Range(Zelle):Select.
  526. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Firma1.
  527. Zelle = 'F6'.
  528. excelAppl:Range(Zelle):Select.
  529. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Strasse.
  530. Zelle = 'F7'.
  531. excelAppl:Range(Zelle):Select.
  532. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Ort.
  533. Zelle = 'G8'.
  534. excelAppl:Range(Zelle):Select.
  535. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Tel-1.
  536. Zelle = 'G9'.
  537. excelAppl:Range(Zelle):Select.
  538. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Fax-1.
  539. Zelle = 'A12'.
  540. excelAppl:Range(Zelle):Select.
  541. excelAppl:ActiveCell:FormulaR1C1 = 'Kunden-Nr.: ' + TRIM(STRING(Adresse.Knr,'>>>>>>')).
  542. i1 = 17.
  543. FOR EACH tKunBest USE-INDEX tKunBest-k2 NO-LOCK:
  544. EMPTY TEMP-TABLE tAufze.
  545. CREATE tAufze.
  546. FIND Artst OF tKunBest NO-LOCK NO-ERROR.
  547. Bez = Artst.Bez.
  548. FIND FIRST tAufze.
  549. ASSIGN tAufze.Artnr = tKunBest.Artnr
  550. tAufze.Inhalt = tKunBest.Inhalt
  551. tAufze.Jahr = tKunBest.Jahr
  552. tAufze.MBest = 1
  553. tAufze.MGeli = 1
  554. tAufze.Netto = Artst.Netto
  555. tAufze.Rab_Art = Debst.Zei_Rab_Art
  556. tAufze.Rab_Wert = Debst.Zei_Rab_Wert
  557. tAufze.Rab_Betr = 0
  558. tAufze.Zus_Art = Debst.Zuschl_Art
  559. tAufze.Zus_Wert = Debst.Zuschl_Wert
  560. tAufze.Zus_Betr = 0
  561. tAufze.Bru_Betr = 0
  562. tAufze.Net_Betr = 0
  563. tAufze.WuCd = bWust.WuCd
  564. tAufze.WC = Artst.Mwst
  565. tAufze.Knr = Debst.Knr
  566. tAufze.Firma = KunBest.Firma
  567. tAufze.KGeb_Me = 1
  568. tAufze.VGeb_Me = 0
  569. tAufze.GGeb_Me = 0
  570. tAufze.Netto = Artst.Netto
  571. tAufze.Datum = TODAY.
  572. iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze ).
  573. FIND FIRST tAufze.
  574. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  575. WHERE KGebinde.Firma = GVFirma
  576. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
  577. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1
  578. WHERE VGebinde.Firma = GVFirma
  579. AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR.
  580. Kol = 65.
  581. i1 = i1 + 1.
  582. Zelle = CHR(Kol) + TRIM(STRING(i1,">>>9")).
  583. excelAppl:Range(Zelle):Select.
  584. excelAppl:ActiveCell:FormulaR1C1 = STRING(tKunBest.Pos,"zzz9").
  585. Kol = Kol + 1.
  586. Zelle = CHR(Kol) + TRIM(STRING(i1,">>>9")).
  587. excelAppl:Range(Zelle):Select.
  588. excelAppl:ActiveCell:FormulaR1C1 = STRING(tKunBest.Artnr,"999999").
  589. IF Steuer.Fwc10 = 'RAUCH' THEN DO:
  590. IF Artst.Ausverk = 2 THEN Bez = Bez + ' **'.
  591. IF Artst.Ausverk = 8 THEN Bez = Bez + ' *'.
  592. END.
  593. Kol = Kol + 1.
  594. Zelle = CHR(Kol) + TRIM(STRING(i1,">>>9")).
  595. excelAppl:Range(Zelle):Select.
  596. excelAppl:ActiveCell:FormulaR1C1 = Bez.
  597. Kol = Kol + 1.
  598. Zelle = chr(Kol) + TRIM(STRING(i1,">>>9")).
  599. excelAppl:Range(Zelle):Select.
  600. excelAppl:ActiveCell:FormulaR1C1 = KGebinde.KBez.
  601. IF Steuer.Fwc10 <> 'RAUCH' THEN DO:
  602. Kol = Kol + 1.
  603. IF Artst.Jahr <> 0 THEN DO:
  604. Zelle = CHR(Kol) + TRIM(STRING(i1,">>>9")).
  605. excelAppl:Range(Zelle):Select.
  606. excelAppl:ActiveCell:FormulaR1C1 = STRING(Artst.Jahr,"zzz9").
  607. END.
  608. Kol = Kol + 1.
  609. IF Artst.Alk_Gehalt <> 0 THEN DO:
  610. Zelle = CHR(Kol) + TRIM(STRING(i1,">>>9")).
  611. excelAppl:Range(Zelle):Select.
  612. excelAppl:ActiveCell:FormulaR1C1 = STRING(Artst.Alk_Gehalt,"z9.99").
  613. END.
  614. Kol = Kol + 1.
  615. Zelle = CHR(Kol) + TRIM(STRING(i1,">>>9")).
  616. excelAppl:Range(Zelle):Select.
  617. excelAppl:ActiveCell:FormulaR1C1 = TRIM(STRING(tAufze.Net_Betr,'->>>>>>9.999')).
  618. END.
  619. Kol = Kol + 1.
  620. Zelle = CHR(Kol) + TRIM(STRING(i1,">>>9")).
  621. excelAppl:Range(Zelle):Select.
  622. excelAppl:ActiveCell:FormulaR1C1 = VGebinde.KBez.
  623. Kol = Kol + 1.
  624. Zelle = CHR(Kol) + TRIM(STRING(i1,">>>9")).
  625. excelAppl:Range(Zelle):Select.
  626. excelAppl:ActiveCell:FormulaR1C1 = STRING(tKunBest.Soll,"zzzz").
  627. Kol = Kol + 1.
  628. Zelle = CHR(Kol) + TRIM(STRING(i1,">>>9")).
  629. excelAppl:Range(Zelle):Select.
  630. excelAppl:ActiveCell:FormulaR1C1 = STRING(tKunBest.Best,"zzzz").
  631. END.
  632. i1 = i1 + 2.
  633. Zelle = 'A' + STRING(i1).
  634. excelAppl:Range(Zelle):Select.
  635. excelAppl:ActiveCell:FormulaR1C1 = '*'.
  636. Zelle = 'B' + STRING(i1).
  637. excelAppl:Range(Zelle):Select.
  638. excelAppl:Selection:HorizontalAlignment = -4131.
  639. excelAppl:ActiveCell:FormulaR1C1 = 'Beschaffungsartikel, 5 - 10 Arbeitstage bis zur Auslieferung'.
  640. i1 = i1 + 1.
  641. Zelle = 'A' + STRING(i1).
  642. excelAppl:Range(Zelle):Select.
  643. excelAppl:ActiveCell:FormulaR1C1 = '**'.
  644. Zelle = 'B' + STRING(i1).
  645. excelAppl:Range(Zelle):Select.
  646. excelAppl:Selection:HorizontalAlignment = -4131.
  647. excelAppl:ActiveCell:FormulaR1C1 = 'Restposten'.
  648. Zelle = 'A1'.
  649. excelAppl:Range(Zelle):Select.
  650. DEF VAR SaveName AS CHAR NO-UNDO.
  651. IF Adresse.Firma1 <> '' THEN SaveName = TRIM(SUBSTR(Adresse.Firma1,01,12)).
  652. ELSE SaveName = TRIM(SUBSTR(Adresse.NAME ,01,12)).
  653. IF SaveName = '' THEN SaveName = 'FaxListe'.
  654. SaveName = session:TEMP-DIR + SaveName + '.xls'.
  655. excelAppl:ActiveWorkbook:SaveAs(SaveName,,,,,,TRUE) NO-ERROR.
  656. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR.
  657. END.
  658. /* _UIB-CODE-BLOCK-END */
  659. &ANALYZE-RESUME
  660. &Scoped-define SELF-NAME Btn_Loeschen
  661. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen B-table-Win
  662. ON CHOOSE OF Btn_Loeschen IN FRAME F-Main /* Löschen */
  663. DO:
  664. RUN LOESCHEN.
  665. END.
  666. /* _UIB-CODE-BLOCK-END */
  667. &ANALYZE-RESUME
  668. &Scoped-define SELF-NAME Btn_Neu
  669. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Neu B-table-Win
  670. ON CHOOSE OF Btn_Neu IN FRAME F-Main /* Neu */
  671. DO:
  672. DEF VAR cSort AS CHAR NO-UNDO.
  673. DEF VAR iRecid AS RECID NO-UNDO.
  674. DEF VAR cRetValue AS CHAR NO-UNDO.
  675. DEF VAR lOK AS LOG NO-UNDO.
  676. IF VUpdate THEN RETURN NO-APPLY.
  677. GET-KEY-VALUE SECTION 'Faxliste'
  678. KEY 'vonDatum'
  679. VALUE cRetValue.
  680. IF ERROR-STATUS:ERROR OR
  681. cRetValue = ? THEN cRetValue = ''.
  682. IF cRetValue = '' THEN cRetValue = STRING((TODAY - 180),'99.99.9999').
  683. VDatum = DATE(cRetValue) NO-ERROR.
  684. IF ERROR-STATUS:ERROR OR
  685. VDatum = ? THEN DO:
  686. VDatum = (TODAY - 180) .
  687. END.
  688. VDatum = DATE(MONTH(VDatum),01,YEAR(VDatum)).
  689. GET-KEY-VALUE SECTION 'Faxliste'
  690. KEY 'NeuSort'
  691. VALUE cRetValue.
  692. IF ERROR-STATUS:ERROR OR
  693. cRetValue = ? THEN cRetValue = ''.
  694. IF cRetValue = '' THEN cRetValue = '1'.
  695. cSort = cRetValue.
  696. DO WITH FRAME {&FRAME-NAME}:
  697. DISABLE {&List-6}.
  698. BDatum = TODAY.
  699. lOK = FALSE.
  700. RUN "g-faxlist-datum.w" ( INPUT-OUTPUT LVKnr,
  701. INPUT-OUTPUT VDatum,
  702. INPUT-OUTPUT BDatum,
  703. INPUT-OUTPUT cSort ,
  704. INPUT-OUTPUT lOK ).
  705. DO TRANSACTION WHILE lOK:
  706. EMPTY TEMP-TABLE tKunBest.
  707. FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k3
  708. WHERE Artbw.Firma = GVFirma
  709. AND Artbw.Knr = LVKnr
  710. AND Artbw.Datum >= VDatum
  711. AND Artbw.Datum <= BDatum
  712. AND Artbw.Menge > 0
  713. AND Artbw.Tr_Art = 01,
  714. FIRST Artst OF Artbw NO-LOCK
  715. BREAK BY Artbw.Artnr
  716. BY Artbw.Inhalt
  717. BY Artbw.Jahr
  718. BY Artbw.Datum :
  719. IF FIRST-OF ( Artbw.Jahr ) THEN DO:
  720. CREATE tKunBest.
  721. ASSIGN tKunBest.Firma = Artbw.Firma
  722. tKunBest.Knr = Artbw.Knr
  723. tKunBest.Pos = 0
  724. tKunBest.Artnr = Artbw.Artnr
  725. tKunBest.Inhalt = Artbw.Inhalt
  726. tKunBest.Jahr = Artbw.Jahr
  727. tKunBest.Soll = 0
  728. tKunBest.KGeb_Cd = Artst.KGeb_Cd
  729. tKunBest.VGeb_Cd = Artst.VGeb_Cd
  730. tKunBest.GGeb_Cd = Artst.GGeb_Cd
  731. tKunBest.Best = 0
  732. tKunBest.KGeb_Me = 0
  733. tKunBest.VGeb_Me = 0
  734. tKunBest.GGeb_Me = 0.
  735. CASE cSort:
  736. WHEN '1' THEN tKunBest.cSort = STRING(Artbw.Artnr ,'999999')
  737. + STRING(Artbw.Inhalt,'9999')
  738. + STRING(Artbw.Jahr ,'9999').
  739. WHEN '2' THEN tKunBest.cSort = STRING(Artst.Suchbe,'x(12)')
  740. + STRING(Artbw.Artnr ,'999999')
  741. + STRING(Artbw.Inhalt,'9999')
  742. + STRING(Artbw.Jahr ,'9999').
  743. WHEN '3' THEN tKunBest.cSort = STRING(Artst.Wg_Grp,'9999')
  744. + STRING(Artbw.Artnr ,'999999')
  745. + STRING(Artbw.Inhalt,'9999')
  746. + STRING(Artbw.Jahr ,'9999').
  747. WHEN '4' THEN tKunBest.cSort = STRING(Artst.Wg_Grp,'9999')
  748. + STRING(Artst.Suchbe,'x(12)')
  749. + STRING(Artbw.Artnr ,'999999')
  750. + STRING(Artbw.Inhalt,'9999')
  751. + STRING(Artbw.Jahr ,'9999').
  752. END CASE.
  753. iRecid = RECID(tKunBest).
  754. RELEASE tKunBest.
  755. END.
  756. IF LAST-OF ( Artbw.Jahr ) THEN DO:
  757. FIND tKunBest WHERE RECID(tKunBest) = iRecid.
  758. tKunBest.Soll = Artbw.Menge.
  759. RELEASE KunBest.
  760. END.
  761. END.
  762. FOR EACH KunBest
  763. WHERE KunBest.Firma = GVFirma
  764. AND KunBest.Knr = LVKnr:
  765. DELETE KunBest.
  766. END.
  767. i1 = 0.
  768. FOR EACH tKunBest BY tKunBest.cSort:
  769. i1 = i1 + 10.
  770. CREATE KunBest.
  771. BUFFER-COPY tKunBest EXCEPT Pos TO KunBest
  772. ASSIGN KunBest.Pos = i1.
  773. DELETE tKunBest.
  774. END.
  775. LEAVE.
  776. END.
  777. ENABLE {&List-6}.
  778. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  779. APPLY 'ENTRY' TO {&BROWSE-NAME}.
  780. RETURN NO-APPLY.
  781. END.
  782. END.
  783. /* _UIB-CODE-BLOCK-END */
  784. &ANALYZE-RESUME
  785. &Scoped-define SELF-NAME Btn_Nummer
  786. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Nummer B-table-Win
  787. ON CHOOSE OF Btn_Nummer IN FRAME F-Main /* Neue Nummer */
  788. DO:
  789. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN RETURN NO-APPLY.
  790. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN RETURN NO-APPLY.
  791. REPEAT TRANSACTION:
  792. EMPTY TEMP-TABLE tKunBest.
  793. i1 = 0.
  794. FOR EACH KunBest
  795. WHERE KunBest.Firma = GVFirma
  796. AND KunBest.Knr = LVKnr.
  797. i1 = i1 + 10.
  798. CREATE tKunBest.
  799. BUFFER-COPY KunBest EXCEPT Pos
  800. TO tKunBest
  801. ASSIGN tKunBest.Pos = i1.
  802. DELETE KunBest.
  803. END.
  804. i1 = 0.
  805. FOR EACH tKunBest:
  806. CREATE KunBest.
  807. BUFFER-COPY tKunBest TO KunBest.
  808. END.
  809. LEAVE.
  810. END.
  811. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  812. DO WITH FRAME {&FRAME-NAME}:
  813. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN RETURN.
  814. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN RETURN.
  815. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  816. {&BROWSE-NAME}:SELECT-ROW(1).
  817. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  818. END.
  819. RETURN NO-APPLY.
  820. END.
  821. /* _UIB-CODE-BLOCK-END */
  822. &ANALYZE-RESUME
  823. &Scoped-define SELF-NAME Btn_Speichern
  824. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Speichern B-table-Win
  825. ON CHOOSE OF Btn_Speichern IN FRAME F-Main /* Speichern */
  826. DO:
  827. VUpdate = FALSE.
  828. RUN SPEICHERN.
  829. END.
  830. /* _UIB-CODE-BLOCK-END */
  831. &ANALYZE-RESUME
  832. &Scoped-define SELF-NAME m_Sortierung_nach_Artikelnumm
  833. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Sortierung_nach_Artikelnumm B-table-Win
  834. ON CHOOSE OF MENU-ITEM m_Sortierung_nach_Artikelnumm /* Sortierung nach Artikelnummer */
  835. DO:
  836. PUT-KEY-VALUE SECTION 'FaxListe'
  837. KEY 'Sortierung'
  838. VALUE '2' NO-ERROR.
  839. END.
  840. /* _UIB-CODE-BLOCK-END */
  841. &ANALYZE-RESUME
  842. &Scoped-define SELF-NAME m_Sortierung_nach_Bezeichnung
  843. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Sortierung_nach_Bezeichnung B-table-Win
  844. ON CHOOSE OF MENU-ITEM m_Sortierung_nach_Bezeichnung /* Sortierung nach Bezeichnung */
  845. DO:
  846. PUT-KEY-VALUE SECTION 'FaxListe'
  847. KEY 'Sortierung'
  848. VALUE '3' NO-ERROR.
  849. END.
  850. /* _UIB-CODE-BLOCK-END */
  851. &ANALYZE-RESUME
  852. &Scoped-define SELF-NAME m_Sortierung_nach_Position
  853. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Sortierung_nach_Position B-table-Win
  854. ON CHOOSE OF MENU-ITEM m_Sortierung_nach_Position /* Sortierung nach Position */
  855. DO:
  856. PUT-KEY-VALUE SECTION 'FaxListe'
  857. KEY 'Sortierung'
  858. VALUE '1' NO-ERROR.
  859. END.
  860. /* _UIB-CODE-BLOCK-END */
  861. &ANALYZE-RESUME
  862. &UNDEFINE SELF-NAME
  863. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win
  864. /* *************************** Main Block *************************** */
  865. VKopie = FALSE.
  866. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  867. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  868. &ENDIF
  869. /* ------ Triggers ---------------------------------------------------- */
  870. ON INSERT-MODE OF BROWSE {&BROWSE-NAME}
  871. DO:
  872. IF VUpdate THEN RETURN NO-APPLY.
  873. RUN ERFASSEN.
  874. END.
  875. ON RETURN OF BROWSE {&BROWSE-NAME}
  876. DO:
  877. IF VUpdate THEN RETURN NO-APPLY.
  878. RUN SPEICHERN.
  879. END.
  880. ON DELETE-CHARACTER OF BROWSE {&BROWSE-NAME}
  881. DO:
  882. IF VUpdate THEN RETURN NO-APPLY.
  883. RUN LOESCHEN.
  884. END.
  885. ON CTRL-CURSOR-RIGHT OF {&WINDOW-NAME}
  886. OR CTRL-CURSOR-RIGHT OF BROWSE {&BROWSE-NAME}
  887. DO:
  888. IF VUpdate THEN RETURN NO-APPLY.
  889. RUN new-state ( INPUT 'Next_Page, MAIN':U ).
  890. RETURN NO-APPLY.
  891. END.
  892. ON CTRL-CURSOR-LEFT OF {&WINDOW-NAME}
  893. OR CTRL-CURSOR-LEFT OF BROWSE {&BROWSE-NAME}
  894. DO:
  895. IF VUpdate THEN RETURN NO-APPLY.
  896. RUN new-state ( INPUT 'Prev_Page, MAIN':U ).
  897. RETURN NO-APPLY.
  898. END.
  899. ON ENTRY OF {&DATEI-NAME}.{&ERSTES-FELD} IN BROWSE {&BROWSE-NAME}
  900. DO:
  901. IF NOT VNeu THEN DO:
  902. APPLY 'ENTRY' TO {&DATEI-NAME}.{&ZWEITES-FELD} IN BROWSE {&BROWSE-NAME}.
  903. RETURN NO-APPLY.
  904. END.
  905. END.
  906. ON RETURN OF {&DATEI-NAME}.{&ERSTES-FELD} IN BROWSE {&BROWSE-NAME}
  907. DO:
  908. IF NOT VUpdate THEN RETURN.
  909. APPLY 'TAB' TO SELF.
  910. RETURN NO-APPLY.
  911. END.
  912. ON CURSOR-UP OF {&INPUT-FELDER} IN BROWSE {&BROWSE-NAME}
  913. DO:
  914. IF NOT VUpdate THEN RETURN.
  915. APPLY 'BACK-TAB' TO SELF.
  916. RETURN NO-APPLY.
  917. END.
  918. ON CURSOR-DOWN OF {&INPUT-FELDER} IN BROWSE {&BROWSE-NAME}
  919. DO:
  920. IF NOT VUpdate THEN RETURN.
  921. APPLY 'TAB' TO SELF.
  922. RETURN NO-APPLY.
  923. END.
  924. ON END-ERROR OF {&INPUT-FELDER} IN BROWSE {&BROWSE-NAME}
  925. DO:
  926. VSpeichern = FALSE.
  927. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  928. END.
  929. ON LEFT-MOUSE-DOWN, RIGHT-MOUSE-DOWN, MIDDLE-MOUSE-DOWN OF BROWSE {&BROWSE-NAME}
  930. DO:
  931. DO WHILE TRUE:
  932. IF NOT VUpdate THEN LEAVE.
  933. XHandle = {&BROWSE-NAME}:CURRENT-COLUMN IN FRAME {&FRAME-NAME}.
  934. IF NOT VALID-HANDLE(XHandle) THEN XHandle = LAST-EVENT:WIDGET-LEAVE.
  935. IF VALID-HANDLE(XHandle) THEN DO:
  936. APPLY 'LEAVE' TO XHandle.
  937. RETURN.
  938. END.
  939. LEAVE.
  940. END.
  941. END.
  942. ON LEAVE OF {&DATEI-NAME}.{&ERSTES-FELD} IN BROWSE {&BROWSE-NAME}
  943. DO:
  944. IF NOT VUpdate THEN RETURN.
  945. LKY = LASTKEY.
  946. LHandle = LAST-EVENT:WIDGET-ENTER.
  947. IF VALID-HANDLE(LHandle) THEN DO:
  948. IF LHandle:TYPE = 'BUTTON' AND
  949. LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO:
  950. VSpeichern = FALSE.
  951. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  952. RETURN NO-APPLY.
  953. END.
  954. END.
  955. IF NOT VSpeichern THEN RETURN.
  956. /*
  957. XHandle = {&BROWSE-NAME}:CURRENT-COLUMN IN FRAME {&FRAME-NAME}.
  958. Feldname = XHandle:NAME.
  959. Feldinhalt = XHandle:SCREEN-VALUE.
  960. */
  961. FIND BKunBest USE-INDEX KunBest-k1
  962. WHERE BKunBest.Firma = GVFirma
  963. AND BKunBest.Knr = LVKnr
  964. AND BKunBest.Pos = INTEGER(FeldInhalt) NO-LOCK NO-ERROR.
  965. IF AVAILABLE BKunBest THEN DO:
  966. { v8/fehler.i "0009" }
  967. APPLY 'ENTRY' TO XHandle.
  968. RETURN NO-APPLY.
  969. END.
  970. END.
  971. /* _UIB-CODE-BLOCK-END */
  972. &ANALYZE-RESUME
  973. /* ********************** Internal Procedures *********************** */
  974. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _ADM-ROW-AVAILABLE
  975. PROCEDURE adm-row-available :
  976. /*------------------------------------------------------------------------------
  977. Purpose: Dispatched to this procedure when the Record-
  978. Source has a new row available. This procedure
  979. tries to get the new row (or foriegn keys) from
  980. the Record-Source and process it.
  981. Parameters: <none>
  982. ------------------------------------------------------------------------------*/
  983. /* Define variables needed by this internal procedure. */
  984. {src/adm/template/row-head.i}
  985. /* Process the newly available records (i.e. display fields,
  986. open queries, and/or pass records on to any RECORD-TARGETS). */
  987. {src/adm/template/row-end.i}
  988. END PROCEDURE.
  989. /* _UIB-CODE-BLOCK-END */
  990. &ANALYZE-RESUME
  991. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE B-table-Win
  992. PROCEDURE ANZEIGE :
  993. /*------------------------------------------------------------------------------
  994. Purpose:
  995. Parameters: <none>
  996. Notes:
  997. ------------------------------------------------------------------------------*/
  998. VText = ''.
  999. VBez = ''.
  1000. VKGeb_Cd = ''.
  1001. VVGeb_Cd = ''.
  1002. VAlk_Gehalt = 0.
  1003. VInhalt = 0.
  1004. IF NOT AVAILABLE {&DATEI-NAME} THEN RETURN.
  1005. VRecid = RECID({&DATEI-NAME}).
  1006. VROWID = ROWID({&DATEI-NAME}).
  1007. FIND Artst USE-INDEX Artst-k1
  1008. WHERE Artst.Firma = GVFirma
  1009. AND Artst.Artnr = KunBest.Artnr
  1010. AND Artst.Inhalt = KunBest.Inhalt
  1011. AND Artst.Jahr = KunBest.Jahr NO-LOCK NO-ERROR.
  1012. IF NOT AVAILABLE Artst THEN RETURN.
  1013. VBez = Artst.Bez.
  1014. VVGeb_Cd = Artst.VGeb_Cd.
  1015. VAlk_Gehalt = Artst.Alk_Gehalt.
  1016. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1
  1017. WHERE KGebinde.Firma = GVFirma
  1018. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
  1019. IF NOT AVAILABLE KGebinde THEN RETURN.
  1020. VKGeb_Cd = KGebinde.KBez.
  1021. VInhalt = KGebinde.Inhalt.
  1022. FIND VGebinde USE-INDEX VGebinde-k1
  1023. WHERE VGebinde.Firma = GVFirma
  1024. AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-LOCK NO-ERROR.
  1025. IF NOT AVAILABLE VGebinde THEN RETURN.
  1026. VVGeb_Cd = VGebinde.KBez.
  1027. END PROCEDURE.
  1028. /* _UIB-CODE-BLOCK-END */
  1029. &ANALYZE-RESUME
  1030. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BUTTON_ENABLE B-table-Win
  1031. PROCEDURE BUTTON_ENABLE :
  1032. /*------------------------------------------------------------------------------
  1033. Purpose:
  1034. Parameters: <none>
  1035. Notes:
  1036. ------------------------------------------------------------------------------*/
  1037. DEF INPUT PARAMETER Art AS INT NO-UNDO.
  1038. DO WITH FRAME {&FRAME-NAME}:
  1039. IF Art < 90 THEN BStatus = Art.
  1040. IF Art = 98 THEN Art = 9.
  1041. IF Art = 99 THEN Art = BStatus.
  1042. CASE Art:
  1043. WHEN 1 THEN DO:
  1044. ENABLE Btn_Erfassen.
  1045. DISABLE Btn_Speichern Btn_Loeschen.
  1046. END.
  1047. WHEN 2 THEN DO:
  1048. ENABLE Btn_Erfassen Btn_Speichern Btn_Loeschen.
  1049. END.
  1050. WHEN 3 THEN DO:
  1051. DISABLE Btn_Loeschen.
  1052. ENABLE Btn_Speichern.
  1053. END.
  1054. WHEN 9 THEN DO:
  1055. DISABLE Btn_Erfassen Btn_Speichern Btn_Loeschen.
  1056. END.
  1057. END CASE.
  1058. END.
  1059. END PROCEDURE.
  1060. /* _UIB-CODE-BLOCK-END */
  1061. &ANALYZE-RESUME
  1062. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI B-table-Win _DEFAULT-DISABLE
  1063. PROCEDURE disable_UI :
  1064. /*------------------------------------------------------------------------------
  1065. Purpose: DISABLE the User Interface
  1066. Parameters: <none>
  1067. Notes: Here we clean-up the user-interface by deleting
  1068. dynamic widgets we have created and/or hide
  1069. frames. This procedure is usually called when
  1070. we are ready to "clean-up" after running.
  1071. ------------------------------------------------------------------------------*/
  1072. /* Hide all frames. */
  1073. HIDE FRAME F-Main.
  1074. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  1075. END PROCEDURE.
  1076. /* _UIB-CODE-BLOCK-END */
  1077. &ANALYZE-RESUME
  1078. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ERFASSEN B-table-Win
  1079. PROCEDURE ERFASSEN :
  1080. /*------------------------------------------------------------------------------
  1081. Purpose:
  1082. Parameters: <none>
  1083. Notes:
  1084. ------------------------------------------------------------------------------*/
  1085. DO WITH FRAME {&FRAME-NAME}:
  1086. IF Btn_Erfassen:SENSITIVE = FALSE THEN RETURN NO-APPLY.
  1087. APPLY 'ENTRY' TO Btn_Erfassen.
  1088. CASE Btn_Erfassen:LABEL:
  1089. WHEN '&Erfassen' THEN DO:
  1090. IF VKopie THEN DO:
  1091. RUN KOPIEREN.
  1092. RETURN NO-APPLY.
  1093. END.
  1094. RUN adm-add-record.
  1095. VUpdate = TRUE.
  1096. VNeu = TRUE.
  1097. VSpeichern = TRUE.
  1098. FErfassen = TRUE.
  1099. VText = ''.
  1100. VBez = ''.
  1101. VKGeb_Cd = ''.
  1102. VVGeb_Cd = ''.
  1103. VAlk_Gehalt = 0.
  1104. VInhalt = 0.
  1105. Btn_Erfassen:LABEL = '&Abbrechen'.
  1106. Btn_Speichern:LABEL = '&Speichern'.
  1107. RUN BUTTON_ENABLE ( 3 ).
  1108. END.
  1109. WHEN '&Abbrechen' THEN DO:
  1110. VSpeichern = FALSE.
  1111. RUN adm-disable-fields.
  1112. RUN adm-cancel-record.
  1113. VUpdate = FALSE.
  1114. VNeu = FALSE.
  1115. FErfassen = FALSE.
  1116. Btn_Erfassen:LABEL = '&Erfassen'.
  1117. Btn_Speichern:LABEL = '&Aendern'.
  1118. IF Vorhanden THEN RUN BUTTON_ENABLE ( 2 ).
  1119. ELSE RUN BUTTON_ENABLE ( 1 ).
  1120. END.
  1121. END CASE.
  1122. END.
  1123. IF NOT VUpdate THEN RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  1124. END PROCEDURE.
  1125. /* _UIB-CODE-BLOCK-END */
  1126. &ANALYZE-RESUME
  1127. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPFLAG B-table-Win
  1128. PROCEDURE KOPFLAG :
  1129. /*------------------------------------------------------------------------------
  1130. Purpose:
  1131. Parameters: <none>
  1132. Notes:
  1133. ------------------------------------------------------------------------------*/
  1134. DEF INPUT PARAMETER FKop AS LOG.
  1135. VKopie = FKop.
  1136. END PROCEDURE.
  1137. /* _UIB-CODE-BLOCK-END */
  1138. &ANALYZE-RESUME
  1139. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPIEREN B-table-Win
  1140. PROCEDURE KOPIEREN :
  1141. /*------------------------------------------------------------------------------
  1142. Purpose:
  1143. Parameters: <none>
  1144. Notes:
  1145. ------------------------------------------------------------------------------*/
  1146. DEF VAR VPos AS INT NO-UNDO.
  1147. DO WITH FRAME {&FRAME-NAME}:
  1148. VPos = 10.
  1149. IF AVAILABLE KunBest THEN DO:
  1150. VPos = KunBest.Pos.
  1151. FIND LAST BKunBest USE-INDEX KunBest-k1
  1152. WHERE BKunBest.Firma = GVFirma
  1153. AND BKunBest.Knr = LVKnr NO-LOCK NO-ERROR.
  1154. IF VPos = BKunBest.Pos THEN VPos = VPos + 10.
  1155. ELSE VPos = VPos + 1.
  1156. DO WHILE TRUE:
  1157. FIND BKunBest USE-INDEX KunBest-k1
  1158. WHERE BKunBest.Firma = GVFirma
  1159. AND BKunBest.Knr = LVKnr
  1160. AND BKunBest.Pos = VPos NO-LOCK NO-ERROR.
  1161. IF NOT AVAILABLE BKunBest THEN LEAVE.
  1162. VPos = VPos + 1.
  1163. END.
  1164. END.
  1165. FIND Artst USE-INDEX Artst-k1
  1166. WHERE Artst.Firma = GVFirma
  1167. AND Artst.Artnr = LVArtnr
  1168. AND Artst.Inhalt = LVInhalt
  1169. AND Artst.Jahr = LVJahr NO-LOCK.
  1170. CREATE BKunBest.
  1171. ASSIGN BKunBest.Firma = GVFirma
  1172. BKunBest.Knr = LVKnr
  1173. BKunBest.Pos = VPos
  1174. BKunBest.Artnr = Artst.Artnr
  1175. BKunBest.Inhalt = Artst.Inhalt
  1176. BKunBest.Jahr = Artst.Jahr
  1177. BKunBest.KGeb_Cd = Artst.KGeb_Cd
  1178. BKunBest.GGeb_Cd = Artst.GGeb_Cd
  1179. BKunBest.VGeb_Cd = Artst.VGeb_Cd.
  1180. FVC = FALSE.
  1181. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  1182. REPOSITION {&BROWSE-NAME} TO RECID RECID(BKunBest).
  1183. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  1184. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  1185. END.
  1186. END PROCEDURE.
  1187. /* _UIB-CODE-BLOCK-END */
  1188. &ANALYZE-RESUME
  1189. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-assign-record B-table-Win
  1190. PROCEDURE local-assign-record :
  1191. /*------------------------------------------------------------------------------
  1192. Purpose: Override standard ADM method
  1193. Notes:
  1194. ------------------------------------------------------------------------------*/
  1195. RUN dispatch IN THIS-PROCEDURE ( INPUT 'assign-record':U ) .
  1196. IF VNeu THEN DO:
  1197. ASSIGN KunBest.Firma = GVFirma
  1198. KunBest.Knr = LVKnr.
  1199. END.
  1200. ELSE DO:
  1201. END.
  1202. END PROCEDURE.
  1203. /* _UIB-CODE-BLOCK-END */
  1204. &ANALYZE-RESUME
  1205. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide B-table-Win
  1206. PROCEDURE local-hide :
  1207. /*------------------------------------------------------------------------------
  1208. Purpose: Override standard ADM method
  1209. Notes:
  1210. ------------------------------------------------------------------------------*/
  1211. IF VUpdate THEN DO:
  1212. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  1213. RUN ERFASSEN.
  1214. END.
  1215. RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':U ) .
  1216. FQOpen = FALSE.
  1217. RUN BUTTON_ENABLE ( INPUT 98 ).
  1218. END PROCEDURE.
  1219. /* _UIB-CODE-BLOCK-END */
  1220. &ANALYZE-RESUME
  1221. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win
  1222. PROCEDURE local-open-query :
  1223. /*------------------------------------------------------------------------------
  1224. Purpose: Override standard ADM method
  1225. Notes:
  1226. ------------------------------------------------------------------------------*/
  1227. IF QOpen THEN CLOSE QUERY {&BROWSE-NAME}.
  1228. QOpen = FALSE.
  1229. Vorhanden = FALSE.
  1230. RUN dispatch IN THIS-PROCEDURE ( INPUT 'open-query':U ).
  1231. QOpen = TRUE.
  1232. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  1233. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  1234. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  1235. {&BROWSE-NAME}:SET-REPOSITIONED-ROW(4, "ALWAYS").
  1236. Vorhanden = TRUE.
  1237. LEAVE.
  1238. END.
  1239. DO WITH FRAME {&FRAME-NAME}:
  1240. IF Vorhanden THEN DO:
  1241. RUN BUTTON_ENABLE ( 2 ).
  1242. IF FVC THEN APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}.
  1243. END.
  1244. ELSE DO:
  1245. RUN BUTTON_ENABLE ( 1 ).
  1246. END.
  1247. END.
  1248. FVC = TRUE.
  1249. END PROCEDURE.
  1250. /* _UIB-CODE-BLOCK-END */
  1251. &ANALYZE-RESUME
  1252. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win
  1253. PROCEDURE local-view :
  1254. /*------------------------------------------------------------------------------
  1255. Purpose: Override standard ADM method
  1256. Notes:
  1257. ------------------------------------------------------------------------------*/
  1258. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  1259. FQOpen = TRUE.
  1260. RUN BUTTON_ENABLE ( INPUT 99 ).
  1261. DO WITH FRAME {&FRAME-NAME}:
  1262. Btn_Erfassen:LABEL IN FRAME {&FRAME-NAME} = '&Erfassen'.
  1263. Btn_Speichern:LABEL IN FRAME {&FRAME-NAME} = '&Aendern'.
  1264. RUN dispatch IN THIS-PROCEDURE ('disable-fields':U).
  1265. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  1266. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  1267. {&BROWSE-NAME}:SELECT-FOCUSED-ROW().
  1268. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  1269. RETURN NO-APPLY.
  1270. END.
  1271. END PROCEDURE.
  1272. /* _UIB-CODE-BLOCK-END */
  1273. &ANALYZE-RESUME
  1274. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN B-table-Win
  1275. PROCEDURE LOESCHEN :
  1276. /*------------------------------------------------------------------------------
  1277. Purpose:
  1278. Parameters: <none>
  1279. Notes:
  1280. ------------------------------------------------------------------------------*/
  1281. IF Btn_Loeschen:SENSITIVE IN FRAME {&FRAME-NAME} = FALSE THEN RETURN NO-APPLY.
  1282. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  1283. RUN BUTTON_ENABLE ( 9 ).
  1284. Ja = FALSE.
  1285. { v8/loeschen.i }
  1286. IF NOT Ja THEN DO:
  1287. RUN BUTTON_ENABLE ( 2 ).
  1288. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  1289. RETURN.
  1290. END.
  1291. RUN dispatch IN THIS-PROCEDURE ('delete-record':U).
  1292. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  1293. Vorhanden = FALSE.
  1294. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  1295. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  1296. Vorhanden = TRUE.
  1297. LEAVE.
  1298. END.
  1299. IF Vorhanden THEN RUN BUTTON_ENABLE ( 2 ).
  1300. ELSE RUN BUTTON_ENABLE ( 1 ).
  1301. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  1302. END PROCEDURE.
  1303. /* _UIB-CODE-BLOCK-END */
  1304. &ANALYZE-RESUME
  1305. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREISFINDUNG B-table-Win
  1306. PROCEDURE PREISFINDUNG :
  1307. /*------------------------------------------------------------------------------
  1308. Purpose:
  1309. Parameters: <none>
  1310. Notes:
  1311. ------------------------------------------------------------------------------*/
  1312. VPreis = 0.
  1313. VRab_Betr = 0.
  1314. VRab_Proz = 0.
  1315. VRab_Art = 0.
  1316. VPGrp = Debst.Preis_Grp.
  1317. VAGrp = Debst.Preis_Grp.
  1318. PosMenge = 1.
  1319. FIND AbwPrGrp NO-LOCK USE-INDEX AbwPrGrp-k1
  1320. WHERE AbwPrGrp.Firma = Artst.Firma
  1321. AND AbwPrGrp.Knr = VKnr
  1322. AND AbwPrGrp.Wg_Grp = Artst.Wg_Grp NO-ERROR.
  1323. IF AVAILABLE AbwPrGrp THEN DO:
  1324. VAGrp = AbwPrGrp.Preis_Grp.
  1325. END.
  1326. DO WHILE TRUE:
  1327. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  1328. WHERE ArtPreis.Firma = GVFirma
  1329. AND ArtPreis.Artnr = Artst.Artnr
  1330. AND ArtPreis.Inhalt = Artst.Inhalt
  1331. AND ArtPreis.Jahr = Artst.Jahr
  1332. AND ArtPreis.Preis_Grp = VAGrp
  1333. AND ArtPreis.Aktion = FALSE
  1334. AND ArtPreis.Ab_Datum <= TODAY NO-ERROR.
  1335. DO WHILE TRUE:
  1336. IF AVAILABLE ArtPreis THEN LEAVE.
  1337. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  1338. WHERE ArtPreis.Firma = GVFirma
  1339. AND ArtPreis.Artnr = Artst.Artnr
  1340. AND ArtPreis.Inhalt = Artst.Inhalt
  1341. AND ArtPreis.Jahr = Artst.Jahr
  1342. AND ArtPreis.Preis_Grp = VPGrp
  1343. AND ArtPreis.Aktion = FALSE
  1344. AND ArtPreis.Ab_Datum <= TODAY NO-ERROR.
  1345. IF AVAILABLE ArtPreis THEN LEAVE.
  1346. FIND LAST ArtPreis USE-INDEX ArtPreis-k1
  1347. WHERE ArtPreis.Firma = GVFirma
  1348. AND ArtPreis.Artnr = Artst.Artnr
  1349. AND ArtPreis.Inhalt = Artst.Inhalt
  1350. AND ArtPreis.Jahr = Artst.Jahr
  1351. AND ArtPreis.Preis_Grp = 0
  1352. AND ArtPreis.Aktion = FALSE
  1353. AND ArtPreis.Ab_Datum <= TODAY NO-LOCK NO-ERROR.
  1354. LEAVE.
  1355. END.
  1356. IF AVAILABLE ArtPreis THEN DO:
  1357. IF VInkl THEN VPreis = ArtPreis.VK_Brutto.
  1358. ELSE VPreis = ArtPreis.VK_Netto.
  1359. END.
  1360. FIND LAST SpezPrei USE-INDEX SpezPrei-k1
  1361. WHERE SpezPrei.Firma = GVFirma
  1362. AND SpezPrei.Knr = VKnr
  1363. AND SpezPrei.Artnr = Artst.Artnr
  1364. AND SpezPrei.Inhalt = Artst.Inhalt
  1365. AND SpezPrei.Jahr = Artst.Jahr
  1366. AND SpezPrei.Menge <= PosMenge
  1367. AND SpezPrei.Ab_Datum <= TODAY
  1368. AND SpezPrei.Bis_Datum >= TODAY NO-LOCK NO-ERROR.
  1369. IF AVAILABLE SpezPrei THEN DO:
  1370. IF SpezPrei.Proz_Betr THEN DO.
  1371. VRab_Proz = SpezPrei.Wert.
  1372. VRab_Betr = 0.
  1373. END.
  1374. ELSE DO:
  1375. VPreis = SpezPrei.Wert.
  1376. VRab_Betr = 0.
  1377. VRab_Proz = 0.
  1378. END.
  1379. LEAVE.
  1380. END.
  1381. FIND LAST SpPrRab USE-INDEX SpPrRab-k1
  1382. WHERE SpPrRab.Firma = GVFirma
  1383. AND SpPrRab.Knr = VKnr
  1384. AND SpPrRab.Rab_Grp = Artst.Rab_Grp
  1385. AND SpPrRab.Menge <= PosMenge
  1386. AND SpPrRab.Ab_Datum <= TODAY
  1387. AND SpPrRab.Bis_Datum >= TODAY NO-LOCK NO-ERROR.
  1388. IF AVAILABLE SpPrRab THEN DO:
  1389. IF SpPrRab.Proz_Betr THEN DO.
  1390. VRab_Proz = SpPrRab.Wert.
  1391. VRab_Betr = 0.
  1392. END.
  1393. ELSE DO:
  1394. VPreis = SpPrRab.Wert.
  1395. VRab_Betr = 0.
  1396. VRab_Proz = 0.
  1397. END.
  1398. LEAVE.
  1399. END.
  1400. LEAVE.
  1401. END.
  1402. IF VRab_Proz <> 0 THEN DO:
  1403. ASSIGN VRab_Art = 1
  1404. VRab_Wert = VRab_Proz.
  1405. END.
  1406. IF VRab_Betr <> 0 THEN DO:
  1407. ASSIGN VRab_Art = 2
  1408. VRab_Wert = VRab_Betr.
  1409. END.
  1410. DO WHILE TRUE:
  1411. IF VRab_Art = 1 THEN DO: /* Prozente */
  1412. VBru_Betr = VPreis.
  1413. VRab_Betr = VRab_Wert * VBru_Betr / 100.
  1414. LEAVE.
  1415. END.
  1416. IF VRab_Art = 2 THEN DO: /* Rabattbetrag */
  1417. VBru_Betr = VPreis.
  1418. VRab_Betr = VRab_Wert.
  1419. LEAVE.
  1420. END.
  1421. VBru_Betr = VPreis.
  1422. VRab_Betr = 0.
  1423. LEAVE.
  1424. END.
  1425. IF VInkl THEN DO:
  1426. Rundbetr = VRab_Betr.
  1427. Rundcode = 1.
  1428. RUN "v8/runden.p".
  1429. VRab_Betr = Rundbetr.
  1430. END.
  1431. VNet_Betr = VBru_Betr - VRab_Betr.
  1432. IF VInkl THEN DO:
  1433. Rundbetr = VNet_Betr.
  1434. Rundcode = 1.
  1435. RUN "v8/runden.p".
  1436. VNet_Betr = Rundbetr.
  1437. END.
  1438. END PROCEDURE.
  1439. /* _UIB-CODE-BLOCK-END */
  1440. &ANALYZE-RESUME
  1441. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS
  1442. PROCEDURE send-records :
  1443. /*------------------------------------------------------------------------------
  1444. Purpose: Send record ROWID's for all tables used by
  1445. this file.
  1446. Parameters: see template/snd-head.i
  1447. ------------------------------------------------------------------------------*/
  1448. /* Define variables needed by this internal procedure. */
  1449. {src/adm/template/snd-head.i}
  1450. /* For each requested table, put it's ROWID in the output list. */
  1451. {src/adm/template/snd-list.i "KunBest"}
  1452. /* Deal with any unexpected table requests before closing. */
  1453. {src/adm/template/snd-end.i}
  1454. END PROCEDURE.
  1455. /* _UIB-CODE-BLOCK-END */
  1456. &ANALYZE-RESUME
  1457. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SPEICHERN B-table-Win
  1458. PROCEDURE SPEICHERN :
  1459. /*------------------------------------------------------------------------------
  1460. Purpose:
  1461. Parameters: <none>
  1462. Notes:
  1463. ------------------------------------------------------------------------------*/
  1464. DEF VAR XROWID AS ROWID NO-UNDO.
  1465. DO WITH FRAME {&FRAME-NAME}:
  1466. IF Btn_Speichern:SENSITIVE = FALSE THEN RETURN NO-APPLY.
  1467. APPLY 'ENTRY' TO Btn_Speichern.
  1468. CASE Btn_Speichern:LABEL:
  1469. WHEN '&Aendern' THEN DO:
  1470. RUN adm-enable-fields.
  1471. APPLY 'ENTRY' TO {&DATEI-NAME}.{&ZWEITES-FELD} IN BROWSE {&BROWSE-NAME}.
  1472. VUpdate = TRUE.
  1473. VNeu = FALSE.
  1474. VSpeichern = TRUE.
  1475. Btn_Erfassen:LABEL = '&Abbrechen'.
  1476. Btn_Speichern:LABEL = '&Speichern'.
  1477. RUN BUTTON_ENABLE ( 3 ).
  1478. END.
  1479. WHEN '&Speichern' THEN DO:
  1480. VUpdate = FALSE.
  1481. RUN adm-disable-fields.
  1482. RUN adm-update-record.
  1483. RUN adm-end-update.
  1484. VNeu = FALSE.
  1485. VSpeichern = FALSE.
  1486. Btn_Erfassen:LABEL = '&Erfassen'.
  1487. Btn_Speichern:LABEL = '&Aendern'.
  1488. IF Vorhanden THEN RUN BUTTON_ENABLE ( 2 ).
  1489. ELSE RUN BUTTON_ENABLE ( 1 ).
  1490. END.
  1491. END CASE.
  1492. END.
  1493. IF NOT VUpdate THEN RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  1494. END PROCEDURE.
  1495. /* _UIB-CODE-BLOCK-END */
  1496. &ANALYZE-RESUME
  1497. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win
  1498. PROCEDURE state-changed :
  1499. /* -----------------------------------------------------------
  1500. Purpose:
  1501. Parameters: <none>
  1502. Notes:
  1503. -------------------------------------------------------------*/
  1504. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  1505. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  1506. DEF VAR VRecid AS RECID NO-UNDO.
  1507. CASE p-state:
  1508. WHEN 'browser_entry' THEN DO:
  1509. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  1510. RETURN NO-APPLY.
  1511. END.
  1512. WHEN 'wechsel' THEN DO:
  1513. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  1514. RETURN NO-APPLY.
  1515. END.
  1516. WHEN 'Zugang' THEN DO WITH FRAME {&FRAME-NAME}:
  1517. i1 = {&BROWSE-NAME}:NUM-SELECTED-ROWS.
  1518. REPEAT TRANSACTION:
  1519. IF i1 > 0 THEN DO:
  1520. {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  1521. i1 = KunBest.Pos.
  1522. END.
  1523. ELSE i1 = 0.
  1524. i1 = i1 + 1.
  1525. FIND BKunBest USE-INDEX KunBest-k1
  1526. WHERE BKunBest.Firma = GVFirma
  1527. AND BKunBest.Knr = LVKnr
  1528. AND BKunbest.Pos = i1 NO-LOCK NO-ERROR.
  1529. IF AVAILABLE BKunBest THEN RETURN NO-APPLY.
  1530. FIND Artst USE-INDEX Artst-k1
  1531. WHERE Artst.Firma = GVFirma
  1532. AND Artst.Artnr = LVArtnr
  1533. AND Artst.Inhalt = LVInhalt
  1534. AND Artst.Jahr = LVJahr NO-LOCK.
  1535. CREATE KunBest.
  1536. ASSIGN KunBest.Firma = GVFirma
  1537. KunBest.Knr = LVKnr
  1538. KunBest.Pos = i1
  1539. KunBest.Artnr = LVArtnr
  1540. KunBest.Inhalt = LVInhalt
  1541. KunBest.Jahr = LVJahr
  1542. KunBest.KGeb_Cd = Artst.KGeb_Cd
  1543. KunBest.VGeb_Cd = Artst.VGeb_Cd
  1544. KunBest.GGeb_Cd = Artst.GGeb_Cd.
  1545. VRecid = RECID(KunBest).
  1546. RUN dispatch IN THIS-PROCEDURE ('open-query':U).
  1547. REPOSITION {&BROWSE-NAME} TO RECID VRecid.
  1548. LEAVE.
  1549. END.
  1550. RETURN NO-APPLY.
  1551. END.
  1552. WHEN 'first-record' THEN DO:
  1553. RUN ANZEIGE.
  1554. RETURN NO-APPLY.
  1555. END.
  1556. {src/adm/template/bstates.i}
  1557. END CASE.
  1558. END PROCEDURE.
  1559. /* _UIB-CODE-BLOCK-END */
  1560. &ANALYZE-RESUME