CreateViperGebindeTabelle.p 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. DEF VAR cText AS CHAR NO-UNDO.
  2. DEF VAR lStart AS LOG INIT FALSE NO-UNDO.
  3. DEF VAR lFound AS LOG INIT FALSE NO-UNDO.
  4. DEF VAR iObj AS INT NO-UNDO.
  5. DEF VAR ii AS INT NO-UNDO.
  6. DEF VAR i1 AS INT NO-UNDO.
  7. DEF VAR iX AS INT NO-UNDO.
  8. DEF VAR iY AS INT NO-UNDO.
  9. DEF VAR iW AS INT NO-UNDO.
  10. DEF VAR iH AS INT NO-UNDO.
  11. DEF VAR iStart AS INT EXTENT 10 NO-UNDO
  12. INIT [160,0,0,0,0,0,960,0,0,0].
  13. DEF VAR iBreit AS INT EXTENT 10 NO-UNDO
  14. INIT [130,90,150,120,120,130,130,460,150,120].
  15. DEF VAR cText01 AS CHAR EXTENT 20 NO-UNDO
  16. INIT ["","","","","","","","","","","","","","","","","","","",""].
  17. DEF VAR cText02 AS CHAR EXTENT 20 NO-UNDO
  18. INIT ["Har.","Har.","Har.","Har.","Har.","Har.","Har.","Har.","Har."~
  19. ,"","","","","","","","","","",""].
  20. DEF VAR cText03 AS CHAR EXTENT 20 NO-UNDO
  21. INIT ["6 FL.","10 Fl.","12 Fl.","15 Fl.","16 Fl.","20 Fl.","24 Fl."~
  22. ,"15 Fl.","20 Fl.","10 Fl.","15 Fl.","20 Fl.","24 Fl.","27 Fl."~
  23. ,"28 Fl.","30 Fl.","","","",""].
  24. DEF VAR cText04 AS CHAR EXTENT 20 NO-UNDO
  25. INIT ["0.50","0.50","0.50","0.50","0.50","0.50","0.50","1.00","1.00","0.30","0.30","0.30","0.30","0.30","0.30","0.30","","","",""].
  26. /*DEF VAR cText05 AS CHAR EXTENT 20 NO-UNDO */
  27. /* INIT ["8.00","10.00","11.00","12.50,13.00,15.00,17.00,20.00,25.00~*/
  28. /* ,8.00,9.50,11.00,12.20,13.10,13.40,14.00,,,,]. */
  29. DEF VAR cText06 AS CHAR EXTENT 20 NO-UNDO
  30. INIT ["","","","","","","","","","","","","","","","","","","",""].
  31. DEF VAR cText07 AS CHAR EXTENT 20 NO-UNDO
  32. INIT ["","","","","","","","","","","","","","","","","","","",""].
  33. DEF VAR cText08 AS CHAR EXTENT 20 NO-UNDO
  34. INIT ["Flaschen","Flaschen","Flaschen","Harasse","Wein Harasse","Gallone","Wein Container~
  35. ","Container / Fass","Propangas","CO2 / Kohlensäure","Partyfass","Cool Keg","EHG Blau~
  36. ","Glasbehälter Dunkelgrau","Glasbehälter Gross","Paletten retour","Paletten geliefert","","",""].
  37. DEF VAR cText09 AS CHAR EXTENT 20 NO-UNDO
  38. INIT ["0.30","0.50","1.00","5.00","0.00","10.00","50.00","50.00","65.00","100.00","100.00","150.00","50.00","","","","","","",""].
  39. DEF VAR cText10 AS CHAR EXTENT 20 NO-UNDO
  40. INIT ["","","","","","","","","","","","","","","","","","","",""].
  41. DEF TEMP-TABLE tTextObj
  42. FIELD iObj AS INT
  43. FIELD cBeginObject AS CHAR
  44. FIELD cName AS CHAR
  45. FIELD cX-mm AS CHAR
  46. FIELD cY-mm AS CHAR
  47. FIELD cWidth-mm AS CHAR
  48. FIELD cHeight-mm AS CHAR
  49. FIELD cTextValue AS CHAR
  50. FIELD cAutowrap AS CHAR
  51. FIELD cAutoResize AS CHAR
  52. FIELD cFGColour AS CHAR
  53. FIELD cBGColour AS CHAR
  54. FIELD cFontNo AS CHAR
  55. FIELD czOrder AS CHAR
  56. FIELD cKeeptext AS CHAR
  57. FIELD cEndObject AS CHAR
  58. FIELD iX-mm AS INT
  59. FIELD iY-mm AS INT
  60. .
  61. DO ii = 1 TO 10:
  62. IF ii > 1 THEN DO:
  63. IF iStart[ii] = 0 THEN iStart[ii] = iStart[ii - 1] + iBreit[ii].
  64. END.
  65. END.
  66. INPUT FROM 'N:\20_Temp\LieferFak.vfr' NO-MAP NO-CONVERT.
  67. REPEAT TRANSACTION ON STOP UNDO, LEAVE:
  68. IMPORT UNFORMATTED cText.
  69. cText = TRIM(cText).
  70. IF NOT lFound THEN DO:
  71. IF INDEX(cText, 'Gebindetabelle') > 0 THEN lFound = TRUE.
  72. NEXT.
  73. END.
  74. IF INDEX(cText, 'BeginObject=Rectangle') > 0 THEN DO:
  75. lStart = FALSE.
  76. NEXT.
  77. END.
  78. IF INDEX(cText, 'BeginObject=Text') > 0 OR
  79. INDEX(cText, 'BeginObject=Cell') > 0 THEN DO:
  80. iObj = iObj + 1.
  81. CREATE tTextObj.
  82. ASSIGN tTextObj.iObj = iObj
  83. ttextObj.cBeginObject = 'BeginObject=Text'
  84. tTextObj.cAutoWrap = 'AutoWrap=false'
  85. tTextObj.cAutoResize = 'AutoResize=no'
  86. tTextObj.cFgColour = 'FgColour=255,255,255'
  87. tTextObj.cBgColour = 'BgColour=255,255,255'
  88. tTextObj.cFontNo = 'FontNo=8'
  89. tTextObj.czOrder = 'zOrder=0'
  90. /* tTextObj.cKeeptext = 'Keeptext=yes' */
  91. tTextObj.cEndObject = 'EndObject=Text'.
  92. lStart = TRUE.
  93. NEXT.
  94. END.
  95. IF NOT lStart THEN NEXT.
  96. FIND FIRST tTextObj WHERE tTextObj.iObj = iObj.
  97. IF INDEX(cText, 'Name=') > 0 THEN DO:
  98. tTextObj.cName = cText.
  99. NEXT.
  100. END.
  101. IF INDEX(cText, 'X-mm=') > 0 THEN DO:
  102. tTextObj.cX-mm = cText.
  103. tTextObj.iX-mm = INTEGER(ENTRY(2, cText, '=')).
  104. NEXT.
  105. END.
  106. IF INDEX(cText, 'Y-mm=') > 0 THEN DO:
  107. tTextObj.cY-mm = cText.
  108. tTextObj.iY-mm = INTEGER(ENTRY(2, cText, '=')).
  109. NEXT.
  110. END.
  111. IF INDEX(cText, 'Width-mm=') > 0 THEN DO:
  112. tTextObj.cWidth-mm = cText.
  113. NEXT.
  114. END.
  115. IF INDEX(cText, 'Height-mm=') > 0 THEN DO:
  116. tTextObj.cHeight-mm = cText.
  117. NEXT.
  118. END.
  119. IF INDEX(cText, 'TextValue=') > 0 THEN DO:
  120. tTextObj.cTextValue = cText.
  121. NEXT.
  122. END.
  123. IF INDEX(cText, 'BgColour=') > 0 THEN DO:
  124. tTextObj.cBgColour = cText.
  125. NEXT.
  126. END.
  127. IF INDEX(cText, 'FgColour=') > 0 THEN DO:
  128. tTextObj.cFgColour = cText.
  129. NEXT.
  130. END.
  131. IF INDEX(cText, 'FontNo=') > 0 THEN DO:
  132. tTextObj.cFontNo = cText.
  133. NEXT.
  134. END.
  135. IF INDEX(tTextObj.cName, '101') > 0 THEN DO:
  136. DISPLAY tTextObj.
  137. MESSAGE cX-mm iX-mm cY-mm iY-mm
  138. VIEW-AS ALERT-BOX.
  139. END.
  140. IF INDEX(cText, 'EndObject=Group') > 0 THEN LEAVE.
  141. END.
  142. INPUT CLOSE.
  143. i1 = 0.
  144. iX = 0.
  145. FOR EACH tTextObj
  146. BREAK BY tTextObj.iX-mm
  147. BY tTextObj.iY-mm:
  148. IF INDEX(tTextObj.cName, '101') > 0 THEN DO:
  149. MESSAGE '101' iX iY iH iW i1 ii
  150. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  151. END.
  152. IF tTextObj.iY-mm > 2500 THEN NEXT.
  153. IF ABS(iX - tTextObj.iX-mm) > 20 THEN DO:
  154. CASE i1:
  155. WHEN 0 THEN ASSIGN iX = 160
  156. iY = 1750
  157. iH = 45
  158. iW = 130
  159. i1 = 1
  160. ii = 100.
  161. WHEN 1 THEN ASSIGN iX = iX + iW
  162. iY = 1750
  163. iH = 45
  164. iW = 90
  165. i1 = 2
  166. ii = 120.
  167. WHEN 2 THEN ASSIGN iX = iX + iW
  168. iY = 1750
  169. iH = 45
  170. iW = 150
  171. i1 = 3
  172. ii = 140.
  173. WHEN 3 THEN ASSIGN iX = iX + iW
  174. iY = 1750
  175. iH = 45
  176. iW = 120
  177. i1 = 4
  178. ii = 160.
  179. WHEN 4 THEN ASSIGN iX = iX + iW
  180. iY = 1750
  181. iH = 45
  182. iW = 120
  183. i1 = 5
  184. ii = 180.
  185. WHEN 5 THEN ASSIGN iX = iX + iW
  186. iY = 1750
  187. iH = 45
  188. iW = 130
  189. i1 = 6
  190. ii = 200.
  191. WHEN 6 THEN ASSIGN iX = 960
  192. iY = 1750
  193. iH = 45
  194. iW = 130
  195. i1 = 7
  196. ii = 220.
  197. WHEN 7 THEN ASSIGN iX = iX + iW
  198. iY = 1750
  199. iH = 45
  200. iW = 460
  201. i1 = 8
  202. ii = 240.
  203. WHEN 8 THEN ASSIGN iX = iX + iW
  204. iY = 1750
  205. iH = 45
  206. iW = 150
  207. i1 = 9
  208. ii = 260.
  209. WHEN 9 THEN ASSIGN iX = iX + iW
  210. iY = 1750
  211. iH = 45
  212. iW = 120
  213. i1 = 10
  214. ii = 280.
  215. END CASE.
  216. END.
  217. ASSIGN tTextObj.iX-mm = iX
  218. tTextObj.iY-mm = iY.
  219. ii = ii + 1.
  220. tTextObj.cName = SUBSTITUTE('Name=Text_&1' , TRIM(STRING(ii,'zz9'))).
  221. tTextObj.cX-mm = SUBSTITUTE('X-mm=&1' , TRIM(STRING(iX,'zzz9'))).
  222. tTextObj.cY-mm = SUBSTITUTE('Y-mm=&1' , TRIM(STRING(iY,'zzz9'))).
  223. tTextObj.cWidth-mm = SUBSTITUTE('Width=&1' , TRIM(STRING(iW,'zzz9'))).
  224. tTextObj.cHeight-mm = SUBSTITUTE('Height=&1' , TRIM(STRING(iH,'zzz9'))).
  225. IF tTextObj.cTextValue = '' OR
  226. INDEX(tTextObj.cTextValue, '=Text') > 0 THEN tTextObj.cTextValue = SUBSTITUTE('TextValue=Text_&1', TRIM(STRING(ii,'zz9'))).
  227. IF ii MOD 2 = 1 THEN tTextObj.cBgColour = 'BgColour=255,255,255'.
  228. ELSE tTextObj.cBgColour = 'BgColour=225,225,225'.
  229. iY = iY + iH.
  230. END.
  231. OUTPUT TO 'N:\20_Temp\Gebinde.vfr' NO-MAP NO-CONVERT.
  232. FOR EACH tTextObj
  233. BY tTextObj.iX
  234. BY tTextObj.iY:
  235. PUT CONTROL ' ' tTextObj.cBeginObject CHR(10)
  236. ' ' tTextObj.cName CHR(10)
  237. ' ' tTextObj.cX-mm CHR(10)
  238. ' ' tTextObj.cY-mm CHR(10)
  239. ' ' tTextObj.cWidth-mm CHR(10)
  240. ' ' tTextObj.cHeight-mm CHR(10)
  241. ' ' tTextObj.cTextValue CHR(10)
  242. ' ' tTextObj.cAutoWrap CHR(10)
  243. ' ' tTextObj.cAutoResize CHR(10)
  244. ' ' tTextObj.cFgColour CHR(10)
  245. ' ' tTextObj.cBgColour CHR(10)
  246. ' ' tTextObj.cFontNo CHR(10)
  247. /* ' ' tTextObj.cKeeptext CHR(10) */
  248. ' ' tTextObj.cZOrder CHR(10)
  249. ' ' tTextObj.cEndObject CHR(10) CHR(10).
  250. END.
  251. OUTPUT CLOSE.