w_dangus.srw 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319
  1. $PBExportHeader$w_dangus.srw
  2. forward
  3. global type w_dangus from w_publ_base
  4. end type
  5. type cb_2 from commandbutton within w_dangus
  6. end type
  7. type st_1 from statictext within w_dangus
  8. end type
  9. type cb_7 from commandbutton within w_dangus
  10. end type
  11. type p_1 from picture within w_dangus
  12. end type
  13. type cb_12 from commandbutton within w_dangus
  14. end type
  15. type cb_13 from commandbutton within w_dangus
  16. end type
  17. type cb_14 from commandbutton within w_dangus
  18. end type
  19. type cb_1 from uo_imflatbutton within w_dangus
  20. end type
  21. type cb_3 from commandbutton within w_dangus
  22. end type
  23. type cb_4 from commandbutton within w_dangus
  24. end type
  25. type cb_5 from commandbutton within w_dangus
  26. end type
  27. type cb_6 from commandbutton within w_dangus
  28. end type
  29. type cb_8 from commandbutton within w_dangus
  30. end type
  31. type cb_9 from commandbutton within w_dangus
  32. end type
  33. type cb_10 from commandbutton within w_dangus
  34. end type
  35. type cb_11 from commandbutton within w_dangus
  36. end type
  37. type cb_16 from commandbutton within w_dangus
  38. end type
  39. type cb_17 from commandbutton within w_dangus
  40. end type
  41. type cb_18 from uo_imflatbutton within w_dangus
  42. end type
  43. type cb_19 from commandbutton within w_dangus
  44. end type
  45. type cb_20 from commandbutton within w_dangus
  46. end type
  47. type cb_21 from commandbutton within w_dangus
  48. end type
  49. type cb_22 from commandbutton within w_dangus
  50. end type
  51. type cb_23 from commandbutton within w_dangus
  52. end type
  53. type cb_24 from commandbutton within w_dangus
  54. end type
  55. type cb_25 from commandbutton within w_dangus
  56. end type
  57. type cb_26 from commandbutton within w_dangus
  58. end type
  59. type cb_15 from commandbutton within w_dangus
  60. end type
  61. end forward
  62. global type w_dangus from w_publ_base
  63. integer width = 2299
  64. integer height = 1252
  65. string title = "危险功能"
  66. cb_2 cb_2
  67. st_1 st_1
  68. cb_7 cb_7
  69. p_1 p_1
  70. cb_12 cb_12
  71. cb_13 cb_13
  72. cb_14 cb_14
  73. cb_1 cb_1
  74. cb_3 cb_3
  75. cb_4 cb_4
  76. cb_5 cb_5
  77. cb_6 cb_6
  78. cb_8 cb_8
  79. cb_9 cb_9
  80. cb_10 cb_10
  81. cb_11 cb_11
  82. cb_16 cb_16
  83. cb_17 cb_17
  84. cb_18 cb_18
  85. cb_19 cb_19
  86. cb_20 cb_20
  87. cb_21 cb_21
  88. cb_22 cb_22
  89. cb_23 cb_23
  90. cb_24 cb_24
  91. cb_25 cb_25
  92. cb_26 cb_26
  93. cb_15 cb_15
  94. end type
  95. global w_dangus w_dangus
  96. on w_dangus.create
  97. int iCurrent
  98. call super::create
  99. this.cb_2=create cb_2
  100. this.st_1=create st_1
  101. this.cb_7=create cb_7
  102. this.p_1=create p_1
  103. this.cb_12=create cb_12
  104. this.cb_13=create cb_13
  105. this.cb_14=create cb_14
  106. this.cb_1=create cb_1
  107. this.cb_3=create cb_3
  108. this.cb_4=create cb_4
  109. this.cb_5=create cb_5
  110. this.cb_6=create cb_6
  111. this.cb_8=create cb_8
  112. this.cb_9=create cb_9
  113. this.cb_10=create cb_10
  114. this.cb_11=create cb_11
  115. this.cb_16=create cb_16
  116. this.cb_17=create cb_17
  117. this.cb_18=create cb_18
  118. this.cb_19=create cb_19
  119. this.cb_20=create cb_20
  120. this.cb_21=create cb_21
  121. this.cb_22=create cb_22
  122. this.cb_23=create cb_23
  123. this.cb_24=create cb_24
  124. this.cb_25=create cb_25
  125. this.cb_26=create cb_26
  126. this.cb_15=create cb_15
  127. iCurrent=UpperBound(this.Control)
  128. this.Control[iCurrent+1]=this.cb_2
  129. this.Control[iCurrent+2]=this.st_1
  130. this.Control[iCurrent+3]=this.cb_7
  131. this.Control[iCurrent+4]=this.p_1
  132. this.Control[iCurrent+5]=this.cb_12
  133. this.Control[iCurrent+6]=this.cb_13
  134. this.Control[iCurrent+7]=this.cb_14
  135. this.Control[iCurrent+8]=this.cb_1
  136. this.Control[iCurrent+9]=this.cb_3
  137. this.Control[iCurrent+10]=this.cb_4
  138. this.Control[iCurrent+11]=this.cb_5
  139. this.Control[iCurrent+12]=this.cb_6
  140. this.Control[iCurrent+13]=this.cb_8
  141. this.Control[iCurrent+14]=this.cb_9
  142. this.Control[iCurrent+15]=this.cb_10
  143. this.Control[iCurrent+16]=this.cb_11
  144. this.Control[iCurrent+17]=this.cb_16
  145. this.Control[iCurrent+18]=this.cb_17
  146. this.Control[iCurrent+19]=this.cb_18
  147. this.Control[iCurrent+20]=this.cb_19
  148. this.Control[iCurrent+21]=this.cb_20
  149. this.Control[iCurrent+22]=this.cb_21
  150. this.Control[iCurrent+23]=this.cb_22
  151. this.Control[iCurrent+24]=this.cb_23
  152. this.Control[iCurrent+25]=this.cb_24
  153. this.Control[iCurrent+26]=this.cb_25
  154. this.Control[iCurrent+27]=this.cb_26
  155. this.Control[iCurrent+28]=this.cb_15
  156. end on
  157. on w_dangus.destroy
  158. call super::destroy
  159. destroy(this.cb_2)
  160. destroy(this.st_1)
  161. destroy(this.cb_7)
  162. destroy(this.p_1)
  163. destroy(this.cb_12)
  164. destroy(this.cb_13)
  165. destroy(this.cb_14)
  166. destroy(this.cb_1)
  167. destroy(this.cb_3)
  168. destroy(this.cb_4)
  169. destroy(this.cb_5)
  170. destroy(this.cb_6)
  171. destroy(this.cb_8)
  172. destroy(this.cb_9)
  173. destroy(this.cb_10)
  174. destroy(this.cb_11)
  175. destroy(this.cb_16)
  176. destroy(this.cb_17)
  177. destroy(this.cb_18)
  178. destroy(this.cb_19)
  179. destroy(this.cb_20)
  180. destroy(this.cb_21)
  181. destroy(this.cb_22)
  182. destroy(this.cb_23)
  183. destroy(this.cb_24)
  184. destroy(this.cb_25)
  185. destroy(this.cb_26)
  186. destroy(this.cb_15)
  187. end on
  188. type cb_func from w_publ_base`cb_func within w_dangus
  189. integer x = 9
  190. integer width = 329
  191. boolean enabled = false
  192. string text = "升级数据库"
  193. end type
  194. event cb_func::clicked;call super::clicked;//uo_version uo_ver
  195. //uo_ver.uof_createtable(FALSE)
  196. //
  197. //MessageBox('提示','ok',information!,ok!)
  198. end event
  199. type cb_exit from w_publ_base`cb_exit within w_dangus
  200. integer x = 1943
  201. integer y = 1040
  202. end type
  203. type cb_2 from commandbutton within w_dangus
  204. integer x = 50
  205. integer y = 784
  206. integer width = 329
  207. integer height = 96
  208. integer taborder = 20
  209. boolean bringtotop = true
  210. integer textsize = -9
  211. integer weight = 400
  212. fontcharset fontcharset = gb2312charset!
  213. fontpitch fontpitch = variable!
  214. string facename = "宋体"
  215. boolean enabled = false
  216. string text = "重整结存"
  217. end type
  218. event clicked;open(w_cmpl_balc)
  219. end event
  220. type st_1 from statictext within w_dangus
  221. integer x = 14
  222. integer y = 1096
  223. integer width = 1714
  224. integer height = 76
  225. boolean bringtotop = true
  226. integer textsize = -9
  227. integer weight = 400
  228. fontcharset fontcharset = gb2312charset!
  229. fontpitch fontpitch = variable!
  230. string facename = "宋体"
  231. long textcolor = 33554432
  232. long backcolor = 67108864
  233. boolean focusrectangle = false
  234. end type
  235. type cb_7 from commandbutton within w_dangus
  236. integer x = 50
  237. integer y = 684
  238. integer width = 434
  239. integer height = 84
  240. integer taborder = 40
  241. boolean bringtotop = true
  242. integer textsize = -9
  243. integer weight = 400
  244. fontcharset fontcharset = gb2312charset!
  245. fontpitch fontpitch = variable!
  246. string facename = "宋体"
  247. boolean enabled = false
  248. string text = "调整现结存[all]"
  249. end type
  250. event clicked;Int rslt = 1
  251. String ls_msg
  252. DELETE FROM u_warebalc Where balcdateint = 0;
  253. IF sqlca.SQLCode <> 0 THEN
  254. ls_msg = '删除结存失败,'+sqlca.SQLErrText
  255. rslt = 0
  256. GOTO ext
  257. END IF
  258. INSERT INTO u_warebalc
  259. (scid,
  260. balcdateint,
  261. mtrlid,
  262. storageid,
  263. status,
  264. woodcode,
  265. pcode,
  266. balcqty,
  267. balcamt)
  268. SELECT
  269. u_storage.scid,
  270. 0,
  271. u_mtrlware.mtrlid,
  272. u_mtrlware.storageid,
  273. u_mtrlware.status,
  274. u_mtrlware.woodcode,
  275. u_mtrlware.pcode,
  276. sum(u_mtrlware.noallocqty),
  277. sum(u_mtrlware.wareamt)
  278. FROM u_mtrlware inner join u_storage on
  279. u_mtrlware.storageid = u_storage.storageid
  280. GROUP BY
  281. u_storage.scid,
  282. u_mtrlware.mtrlid,
  283. u_mtrlware.storageid,
  284. u_mtrlware.status,
  285. u_mtrlware.woodcode,
  286. u_mtrlware.pcode;
  287. IF sqlca.SQLCode <> 0 THEN
  288. ls_msg = '库存->结存失败,'+sqlca.SQLErrText
  289. rslt = 0
  290. GOTO ext
  291. END IF
  292. commit;
  293. Long ll_i,ll_count
  294. Long ll_mtrlid,ll_storageid
  295. String ls_woodcode,ls_status,ls_pcode
  296. Decimal ld_balcqty,ld_balcamt
  297. Decimal ld_inqty,ld_inamt
  298. Decimal ld_decqty,ld_decamt
  299. Decimal ld_bgqty,ld_bgamt
  300. datastore ds
  301. ds = CREATE datastore
  302. ds.DataObject = 'ds_balc_all'
  303. ds.SetTransObject(sqlca)
  304. ll_count = ds.Retrieve()
  305. FOR ll_i = 1 TO ll_count
  306. st_1.Text = String(ll_i)+'/'+String(ll_count)
  307. ll_mtrlid = ds.Object.mtrlid[ll_i]
  308. ll_storageid = ds.Object.storageid[ll_i]
  309. ls_status = ds.Object.status[ll_i]
  310. ls_woodcode = ds.Object.woodcode[ll_i]
  311. ls_pcode = ds.Object.pcode[ll_i]
  312. ld_balcqty = ds.Object.balcqty[ll_i]
  313. ld_balcamt = ds.Object.balcamt[ll_i]
  314. SELECT isnull(sum(qty),0),isnull(sum(round(cost * qty,2)),0)
  315. INTO :ld_inqty,:ld_inamt
  316. FROM u_inware,u_inwaremx
  317. WHERE u_inware.scid = u_inwaremx.scid
  318. AND u_inware.inwareid = u_inwaremx.inwareid
  319. AND u_inwaremx.mtrlid = :ll_mtrlid
  320. AND u_inwaremx.status = :ls_status
  321. AND u_inwaremx.woodcode = :ls_woodcode
  322. AND u_inwaremx.pcode = :ls_pcode
  323. AND u_inware.storageid = :ll_storageid
  324. and u_inware.balcdateint = 0
  325. AND u_inware.flag = 1;
  326. IF sqlca.SQLCode <> 0 THEN
  327. ls_msg = '进仓失败,'+sqlca.SQLErrText
  328. rslt = 0
  329. GOTO ext
  330. END IF
  331. SELECT isnull(sum(qty),0),isnull(sum(costamt),0)
  332. INTO :ld_decqty,:ld_decamt
  333. FROM u_outware,u_outwaremx
  334. WHERE u_outware.scid = u_outwaremx.scid
  335. AND u_outware.outwareid = u_outwaremx.outwareid
  336. AND u_outwaremx.mtrlid = :ll_mtrlid
  337. AND u_outwaremx.status = :ls_status
  338. AND u_outwaremx.woodcode = :ls_woodcode
  339. AND u_outwaremx.pcode = :ls_pcode
  340. AND u_outware.storageid = :ll_storageid
  341. and u_outware.balcdateint = 0
  342. AND u_outware.flag = 1;
  343. IF sqlca.SQLCode <> 0 THEN
  344. ls_msg = '出仓失败,'+sqlca.SQLErrText
  345. rslt = 0
  346. GOTO ext
  347. END IF
  348. ld_bgqty = ld_balcqty + ld_decqty - ld_inqty
  349. ld_bgamt = ld_balcamt + ld_decamt - ld_inamt
  350. UPDATE u_warebalc
  351. SET bgqty = :ld_bgqty,
  352. bgamt = :ld_bgamt,
  353. incqty = :ld_inqty,
  354. incamt = :ld_inamt,
  355. desqty = :ld_decqty,
  356. desamt = :ld_decamt
  357. WHERE balcdateint = 0
  358. AND mtrlid = :ll_mtrlid
  359. AND storageid = :ll_storageid
  360. AND status = :ls_status
  361. AND woodcode = :ls_woodcode
  362. AND pcode = :ls_pcode;
  363. IF sqlca.SQLCode <> 0 THEN
  364. ls_msg = 'u结存失败,'+sqlca.SQLErrText
  365. rslt = 0
  366. GOTO ext
  367. END IF
  368. NEXT
  369. ls_msg = 'ok'
  370. ext:
  371. IF rslt = 0 THEN
  372. ROLLBACK;
  373. ELSE
  374. COMMIT;
  375. END IF
  376. MessageBox('提示',ls_msg,information!,ok!)
  377. end event
  378. type p_1 from picture within w_dangus
  379. integer x = 73
  380. integer y = 912
  381. integer width = 210
  382. integer height = 160
  383. boolean bringtotop = true
  384. boolean originalsize = true
  385. boolean focusrectangle = false
  386. end type
  387. event clicked;cb_7.Enabled = NOT cb_7.Enabled
  388. cb_12.Enabled = NOT cb_12.Enabled
  389. cb_2.Enabled = NOT cb_2.Enabled
  390. cb_3.Enabled = NOT cb_3.Enabled
  391. end event
  392. type cb_12 from commandbutton within w_dangus
  393. end type
  394. type cb_13 from commandbutton within w_dangus
  395. integer x = 46
  396. integer y = 464
  397. integer width = 439
  398. integer height = 96
  399. integer taborder = 30
  400. boolean bringtotop = true
  401. integer textsize = -9
  402. integer weight = 400
  403. fontcharset fontcharset = gb2312charset!
  404. fontpitch fontpitch = variable!
  405. string facename = "宋体"
  406. boolean enabled = false
  407. string text = "升级附件数据库"
  408. end type
  409. event clicked;Long ll_ConnectionID,ll_suc
  410. String arg_msg
  411. Transaction fj_sqlca
  412. fj_sqlca = CREATE Transaction
  413. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 1 THEN
  414. IF f_connect_db(ll_ConnectionID,fj_sqlca,arg_msg) = 0 THEN
  415. MessageBox('错误','文件数据库连接失败,请检查设置.'+arg_msg,stopsign!,ok!)
  416. RETURN
  417. END IF
  418. ELSE
  419. MessageBox('错误','附件数据库不存在',stopsign!,ok!)
  420. RETURN
  421. END IF
  422. String createsql_string
  423. createsql_string = ''
  424. createsql_string = "alter table U_File add relid_mx int default(0) not null"
  425. EXECUTE IMMEDIATE :createsql_string USING fj_sqlca;
  426. IF fj_sqlca.SQLCode = 0 THEN
  427. ll_suc += 1
  428. END IF
  429. COMMIT USING fj_sqlca;
  430. createsql_string = ''
  431. createsql_string = "alter table U_File add relcode char(50) default('') not null"
  432. EXECUTE IMMEDIATE :createsql_string USING fj_sqlca;
  433. IF fj_sqlca.SQLCode = 0 THEN
  434. ll_suc += 1
  435. END IF
  436. COMMIT USING fj_sqlca;
  437. createsql_string = ''
  438. createsql_string = "alter table U_File add relcode_mx char(50) default('') not null"
  439. EXECUTE IMMEDIATE :createsql_string USING fj_sqlca;
  440. IF fj_sqlca.SQLCode = 0 THEN
  441. ll_suc += 1
  442. END IF
  443. COMMIT USING fj_sqlca;
  444. createsql_string = ''
  445. createsql_string = "alter table U_File add scid int default(0) not null"
  446. EXECUTE IMMEDIATE :createsql_string USING fj_sqlca;
  447. IF fj_sqlca.SQLCode = 0 THEN
  448. ll_suc += 1
  449. END IF
  450. COMMIT USING fj_sqlca;
  451. createsql_string = ''
  452. createsql_string = "ALTER TABLE [dbo].[U_File] DROP CONSTRAINT [IX_U_File]"
  453. EXECUTE IMMEDIATE :createsql_string USING fj_sqlca;
  454. IF fj_sqlca.SQLCode = 0 THEN
  455. ll_suc += 1
  456. END IF
  457. COMMIT USING fj_sqlca;
  458. createsql_string = ''
  459. createsql_string = "alter table U_File ALTER COLUMN DisplayName char(100) not null "
  460. EXECUTE IMMEDIATE :createsql_string USING fj_sqlca;
  461. IF fj_sqlca.SQLCode = 0 THEN
  462. ll_suc += 1
  463. END IF
  464. COMMIT USING fj_sqlca;
  465. createsql_string = ''
  466. createsql_string = "alter table U_File ALTER COLUMN FileName char(150) not null "
  467. EXECUTE IMMEDIATE :createsql_string USING fj_sqlca;
  468. IF fj_sqlca.SQLCode = 0 THEN
  469. ll_suc += 1
  470. END IF
  471. COMMIT USING fj_sqlca;
  472. createsql_string = ''
  473. createsql_string = "alter table U_File add billtype int default(201) not null"
  474. EXECUTE IMMEDIATE :createsql_string USING fj_sqlca;
  475. IF fj_sqlca.SQLCode = 0 THEN
  476. ll_suc += 1
  477. END IF
  478. COMMIT USING fj_sqlca;
  479. DESTROY fj_sqlca
  480. MessageBox('提示','ok,'+string(ll_suc),information!,ok!)
  481. end event
  482. type cb_14 from commandbutton within w_dangus
  483. boolean visible = false
  484. integer x = 1755
  485. integer y = 20
  486. integer width = 521
  487. integer height = 96
  488. integer taborder = 20
  489. boolean bringtotop = true
  490. integer textsize = -9
  491. integer weight = 400
  492. fontcharset fontcharset = gb2312charset!
  493. fontpitch fontpitch = variable!
  494. string facename = "宋体"
  495. boolean enabled = false
  496. string text = "更新版本0822"
  497. end type
  498. event clicked;String ls_cur_version
  499. ls_cur_version = f_psw_bczh('1.0.070925',0,sys_power_key)
  500. //ls_cur_version = f_psw_bczh('1.0.070903',0,sys_power_key)
  501. UPDATE sys_msg Set cur_version = :ls_cur_version;
  502. IF sqlca.SQLCode <> 0 THEN
  503. MessageBox('error',sqlca.SQLErrText)
  504. ROLLBACK;
  505. RETURN
  506. END IF
  507. COMMIT;
  508. MessageBox('提示','ok',information!,ok!)
  509. end event
  510. type cb_1 from uo_imflatbutton within w_dangus
  511. boolean visible = false
  512. integer x = 567
  513. integer width = 494
  514. integer taborder = 40
  515. boolean bringtotop = true
  516. boolean enabled = false
  517. string text = "销售订单增加0库存"
  518. end type
  519. event clicked;call super::clicked;datastore ds_task
  520. ds_task = CREATE datastore
  521. ds_task.DataObject = 'ds_saletask'
  522. ds_task.SetTransObject(sqlca)
  523. ds_task.Retrieve()
  524. Long ll_i
  525. Long rslt = 1
  526. Long ll_storageid_arr[],ll_storageid
  527. Long ll_scid_arr[],ll_scid
  528. String ll_storagename_arr[],ls_storagename
  529. Long ll_j,count
  530. Int li_balctype_arr[],li_balctype
  531. Long ll_cusid
  532. String ls_status,ls_mtrlcode,ls_pcode,ls_woodcode,ls_plancode
  533. Long ll_mtrlwareid,ll_mtrlid
  534. String arg_msg
  535. long ll_cnt
  536. ll_cnt = 0
  537. DECLARE pf_cur CURSOR FOR
  538. SELECT u_storage.storageid,
  539. u_storage.storagename,
  540. u_storage.scid,
  541. u_storage.balctype
  542. FROM u_storage
  543. Where ( u_storage.mtrlprp = 0 );
  544. OPEN pf_cur;
  545. FETCH pf_cur INTO :ll_storageid,:ls_storagename,:ll_scid,:li_balctype;
  546. DO WHILE sqlca.SQLCode = 0
  547. count++
  548. ll_storageid_arr[count] = ll_storageid
  549. ll_storagename_arr[count] = ls_storagename
  550. ll_scid_arr[count] = ll_scid
  551. li_balctype_arr[count] = li_balctype
  552. FETCH pf_cur INTO :ll_storageid,:ls_storagename,:ll_scid,:li_balctype;
  553. LOOP
  554. CLOSE pf_cur;
  555. Open(w_sys_wait_jdt) //初始化进度条
  556. w_sys_wait_jdt.Show()
  557. w_sys_wait_jdt.wf_accepttol(ds_task.RowCount())
  558. FOR ll_i = 1 TO ds_task.RowCount()
  559. w_sys_wait_jdt.st_msg.Text = "正在执行操作..." //进度信息
  560. w_sys_wait_jdt.wf_inc(ll_i)
  561. ll_mtrlid = ds_task.Object.u_saletaskmx_mtrlid[ll_i]
  562. ls_mtrlcode = ds_task.Object.u_mtrldef_mtrlcode[ll_i]
  563. ls_status = ds_task.Object.u_saletaskmx_status[ll_i]
  564. ls_pcode = ds_task.Object.u_saletaskmx_pcode[ll_i]
  565. ls_woodcode = ds_task.Object.u_saletaskmx_woodcode[ll_i]
  566. ls_plancode = ds_task.Object.u_saletaskmx_mtrlcuscode[ll_i]
  567. FOR ll_j = 1 TO count
  568. IF li_balctype_arr[ll_j] = 1 THEN
  569. ll_cusid = ds_task.Object.u_saletask_cusid[ll_i]
  570. ELSE
  571. ll_cusid = 0
  572. END IF
  573. SELECT top 1 mtrlwareid INTO :ll_mtrlwareid
  574. FROM u_mtrlware
  575. WHERE mtrlid = :ll_mtrlid
  576. AND status = :ls_status
  577. AND storageid = :ll_storageid_arr[ll_j]
  578. AND woodcode = :ls_woodcode
  579. AND plancode = :ls_plancode
  580. AND pcode = :ls_pcode
  581. AND sptid = :ll_cusid;
  582. IF sqlca.SQLCode = -1 THEN
  583. // arg_msg = '查询:'+ls_mtrlcode+'仓库:'+ll_storagename_arr[ll_j]+'库存失败'
  584. // rslt = 0
  585. // GOTO ext
  586. ll_cnt++
  587. CONTINUE
  588. ELSEIF sqlca.SQLCode = 100 THEN
  589. ll_mtrlwareid = 0
  590. ll_mtrlwareid = f_sys_scidentity(ll_scid_arr[ll_j],"u_mtrlware","mtrlwareid",arg_msg,FALSE,sqlca)
  591. IF ll_mtrlwareid <= 0 THEN
  592. // rslt = 0
  593. // GOTO ext
  594. ll_cnt++
  595. ROLLBACK;
  596. CONTINUE
  597. END IF
  598. INSERT INTO u_mtrlware(scid,mtrlwareid,mtrlid,storageid,noallocqty,status,plancode,woodcode,pcode,sptid)
  599. Values(:ll_scid_arr[ll_j],:ll_mtrlwareid,:ll_mtrlid,:ll_storageid_arr[ll_j],0,:ls_status,:ls_plancode,:ls_woodcode,:ls_pcode,:ll_cusid);
  600. IF sqlca.SQLCode <> 0 THEN
  601. // arg_msg = '产品:'+ls_mtrlcode+'仓库:'+ll_storagename_arr[ll_j]+'加0库存失败或物料已经有库存,请检查'
  602. // rslt = 0
  603. // GOTO ext
  604. ll_cnt++
  605. ROLLBACK;
  606. CONTINUE
  607. ELSE
  608. COMMIT;
  609. END IF
  610. END IF
  611. NEXT
  612. NEXT
  613. //ext:
  614. Close(w_sys_wait_jdt)
  615. MessageBox('提示','操作完成!失败:'+string(ll_cnt)+'条',information!,ok!)
  616. end event
  617. type cb_3 from commandbutton within w_dangus
  618. end type
  619. type cb_4 from commandbutton within w_dangus
  620. boolean visible = false
  621. integer x = 567
  622. integer y = 256
  623. integer width = 389
  624. integer height = 88
  625. integer taborder = 40
  626. boolean bringtotop = true
  627. integer textsize = -9
  628. integer weight = 400
  629. fontcharset fontcharset = gb2312charset!
  630. fontpitch fontpitch = variable!
  631. string facename = "宋体"
  632. boolean enabled = false
  633. string text = "合并库存"
  634. end type
  635. event clicked;IF Not sys_power_issuper THEN
  636. MessageBox('系统提示','非管理员不可以操作')
  637. RETURN
  638. END IF
  639. Long rslt = 1
  640. Long li_row
  641. Long li_mtrlwareid
  642. Long li_mtrlid
  643. Long li_storageid
  644. IF MessageBox ("if","是否确定要对各物料不同批号的库存进行合并?合并后将不能恢复!",question!,yesno! ) = 2 THEN RETURN
  645. Long mtrlwareid[],storageid[],cnt = 0,ll_mtrlwareid,ll_storageid,i,mtrlid[],ll_mtrlid
  646. Decimal noallocqty[],ld_noallocqty
  647. DECLARE cur CURSOR FOR
  648. SELECT mtrlwareid,storageid,mtrlid,noallocqty
  649. FROM u_mtrlware
  650. Where plancode <> '' Or Status <> '' Or woodcode <> '' Or pcode <> '' ;
  651. OPEN cur;
  652. FETCH cur Into :ll_mtrlwareid,:ll_storageid,:ll_mtrlid,:ld_noallocqty;
  653. DO WHILE sqlca.SQLCode = 0
  654. cnt ++
  655. mtrlwareid[cnt ] = ll_mtrlwareid
  656. storageid[cnt] = ll_storageid
  657. mtrlid[cnt] = ll_mtrlid
  658. noallocqty[cnt] = ld_noallocqty
  659. FETCH cur Into :ll_mtrlwareid,:ll_storageid,:ll_mtrlid,:ld_noallocqty;
  660. LOOP
  661. CLOSE cur;
  662. FOR i = 1 To cnt
  663. SELECT mtrlwareid
  664. INTO :ll_mtrlwareid
  665. FROM u_mtrlware
  666. WHERE plancode = '' AND Status = '' AND woodcode = '' AND pcode = '' AND
  667. storageid = :storageid[i] And mtrlid = :mtrlid[i];
  668. IF sqlca.SQLCode = -1 THEN
  669. rslt = 0
  670. GOTO ext
  671. ELSEIF sqlca.SQLCode = 100 THEN
  672. UPDATE u_mtrlware
  673. SET plancode = '',
  674. Status = '',
  675. woodcode = '',
  676. pcode = ''
  677. Where mtrlwareid = :mtrlwareid[i] ;
  678. IF sqlca.SQLCode <> 0 THEN
  679. rslt = 0
  680. GOTO ext
  681. END IF
  682. UPDATE u_outwaremx
  683. SET plancode = '',
  684. Status = '',
  685. woodcode = '',
  686. pcode = ''
  687. Where mtrlwareid = :mtrlwareid[i] ;
  688. IF sqlca.SQLCode <> 0 THEN
  689. rslt = 0
  690. GOTO ext
  691. END IF
  692. ELSE
  693. UPDATE u_mtrlware
  694. SET noallocqty = noallocqty + :noallocqty[i]
  695. Where mtrlwareid = :ll_mtrlwareid;
  696. IF sqlca.SQLCode <> 0 THEN
  697. rslt = 0
  698. GOTO ext
  699. END IF
  700. UPDATE u_outwaremx
  701. SET mtrlwareid = :ll_mtrlwareid,
  702. plancode = '',
  703. Status = '',
  704. woodcode = '',
  705. pcode = ''
  706. Where mtrlwareid = :mtrlwareid[i] ;
  707. IF sqlca.SQLCode <> 0 THEN
  708. rslt = 0
  709. GOTO ext
  710. END IF
  711. DELETE FROM u_mtrlware
  712. Where mtrlwareid = :mtrlwareid[i] ;
  713. IF sqlca.SQLCode <> 0 THEN
  714. rslt = 0
  715. GOTO ext
  716. END IF
  717. END IF
  718. NEXT
  719. UPDATE u_inwaremx
  720. SET plancode = '',
  721. Status = '',
  722. woodcode = '',
  723. pcode = '' ;
  724. IF sqlca.SQLCode <> 0 THEN
  725. rslt = 0
  726. GOTO ext
  727. END IF
  728. UPDATE u_outwaremx
  729. SET plancode = '',
  730. Status = '',
  731. woodcode = '',
  732. pcode = '' ;
  733. IF sqlca.SQLCode <> 0 THEN
  734. rslt = 0
  735. GOTO ext
  736. END IF
  737. ext:
  738. IF rslt = 1 THEN
  739. COMMIT;
  740. MessageBox('提示','合并成功',information!,ok!)
  741. ELSE
  742. ROLLBACK;
  743. MessageBox('错误','合并失败~n'+sqlca.sqlerrtext,stopsign!,ok!)
  744. RETURN
  745. END IF
  746. end event
  747. type cb_5 from commandbutton within w_dangus
  748. end type
  749. type cb_6 from commandbutton within w_dangus
  750. boolean visible = false
  751. integer x = 567
  752. integer y = 380
  753. integer width = 603
  754. integer height = 84
  755. integer taborder = 40
  756. boolean bringtotop = true
  757. integer textsize = -9
  758. integer weight = 400
  759. fontcharset fontcharset = gb2312charset!
  760. fontpitch fontpitch = variable!
  761. string facename = "宋体"
  762. boolean enabled = false
  763. string text = "修复外协订单已收货数"
  764. end type
  765. event clicked;datastore ds_sumqty
  766. ds_sumqty = CREATE datastore
  767. ds_sumqty.DataObject = 'ds_ow_inwarewfjg_sumqty'
  768. ds_sumqty.SetTransObject(sqlca)
  769. datastore ds_try
  770. ds_try = CREATE datastore
  771. ds_try.DataObject = 'ds_try_wfjg_cmp'
  772. ds_try.SetTransObject(sqlca)
  773. ds_sumqty.Retrieve()
  774. Long ll_i,ll_j
  775. Long ll_scid,ll_relid,ll_relprintid
  776. Decimal ld_sumqty
  777. Long ll_orderid ,ll_wrkGrpid,ll_mtrlid
  778. String ls_status,ls_woodcode,ls_pcode
  779. Int li_mtrlkind
  780. Boolean if_finish
  781. if_finish = TRUE
  782. Open(w_sys_wait_jdt) //初始化进度条
  783. w_sys_wait_jdt.Show()
  784. w_sys_wait_jdt.wf_accepttol(ds_sumqty.RowCount())
  785. FOR ll_i = 1 TO ds_sumqty.RowCount()
  786. ll_scid = ds_sumqty.Object.ow_wfjgmx_in_aft_scid[ll_i]
  787. ll_relid = ds_sumqty.Object.ow_wfjgmx_in_aft_relid[ll_i]
  788. ll_relprintid = ds_sumqty.Object.ow_wfjgmx_in_aft_relprintid[ll_i]
  789. ld_sumqty = ds_sumqty.Object.sumqty[ll_i]
  790. w_sys_wait_jdt.st_msg.Text = " 第"+String(ll_i)+'个,共'+String(ds_sumqty.RowCount())+'个' //进度信息
  791. w_sys_wait_jdt.wf_inc(ll_i)
  792. UPDATE u_order_wfjgMx
  793. SET consignedqty = :ld_sumqty
  794. WHERE ( u_order_wfjgMx.wfjgid = :ll_relid ) AND
  795. ( u_order_wfjgMx.printid = :ll_relprintid ) AND
  796. ( u_order_wfjgMx.scid = :ll_scid) ;
  797. IF sqlca.SQLCode <> 0 THEN CONTINUE
  798. SELECT u_mtrldef.mtrlkind,
  799. u_order_wfjgMx.orderid,
  800. u_order_wfjgMx.wrkGrpid,
  801. u_order_wfjgMx.mtrlid,
  802. u_order_wfjgMx.status,
  803. u_order_wfjgMx.woodcode,
  804. u_order_wfjgMx.pcode
  805. INTO :li_mtrlkind,
  806. :ll_orderid,
  807. :ll_wrkGrpid,
  808. :ll_mtrlid,
  809. :ls_status,
  810. :ls_woodcode,
  811. :ls_pcode
  812. FROM u_mtrldef,u_order_wfjgMx
  813. WHERE u_mtrldef.mtrlid = u_order_wfjgMx.mtrlid
  814. AND u_order_wfjgMx.scid = :ll_scid
  815. AND u_order_wfjgMx.wfjgid = :ll_relid
  816. AND u_order_wfjgMx.printid = :ll_relprintid;
  817. IF sqlca.SQLCode <> 0 THEN CONTINUE
  818. IF li_mtrlkind = 1 THEN CONTINUE
  819. UPDATE u_OrderRqMtrl
  820. SET inqty = :ld_sumqty
  821. WHERE orderid = :ll_orderid
  822. AND wrkGrpid = :ll_wrkGrpid
  823. AND mtrlid = :ll_mtrlid
  824. AND status = :ls_status
  825. AND woodcode = :ls_woodcode
  826. AND pcode = :ls_pcode
  827. AND scid = :ll_scid
  828. And (plantype = 3);
  829. IF sqlca.SQLCode <> 0 THEN CONTINUE
  830. ds_try.Retrieve(ll_relid,ll_scid)
  831. FOR ll_j = 1 TO ds_try.RowCount()
  832. IF ds_try.Object.qty[ll_j] > 0 AND if_finish THEN
  833. if_finish = FALSE
  834. END IF
  835. NEXT
  836. IF if_finish THEN
  837. UPDATE u_order_wfjg
  838. SET status = 5,
  839. accomplishdate = getdate(),
  840. finishemp = :publ_operator
  841. WHERE ( u_order_wfjg.wfjgid = :ll_relid )
  842. AND ( u_order_wfjg.scid = :ll_scid )
  843. And (u_order_wfjg.status = 1);
  844. IF sqlca.SQLCode <> 0 THEN CONTINUE
  845. END IF
  846. NEXT
  847. Close(w_sys_wait_jdt)
  848. COMMIT;
  849. MessageBox('提示','更新成功',information!,ok!)
  850. end event
  851. type cb_8 from commandbutton within w_dangus
  852. boolean visible = false
  853. integer x = 1600
  854. integer y = 500
  855. integer width = 503
  856. integer height = 84
  857. integer taborder = 50
  858. boolean bringtotop = true
  859. integer textsize = -9
  860. integer weight = 400
  861. fontcharset fontcharset = gb2312charset!
  862. fontpitch fontpitch = variable!
  863. string facename = "宋体"
  864. boolean enabled = false
  865. string text = "生产计划->指令单"
  866. end type
  867. event clicked;IF MessageBox ("if","是否确定要按原有生产计划生成指令单?执行前请选定义好产品的计划属性及生产车间",question!,yesno! ) = 2 THEN RETURN
  868. Long rslt = 1
  869. datastore ds_order
  870. ds_order = CREATE datastore
  871. ds_order.DataObject = 'ds_tmp_order_ml_type'
  872. ds_order.SetTransObject(sqlca)
  873. ds_order.Retrieve()
  874. Long ll_row
  875. Long ll_i
  876. Long ll_mxpkid
  877. Long ll_scid,ll_orderid,ll_mtrlid,ll_produce_wrkGrpid,ll_scid_mtrlid
  878. String ls_status,ls_woodcode,ls_pcode,ls_ordercode,ls_pfcode
  879. Decimal ld_orderqty,ld_acmpqty
  880. DateTime ld_orderdate,ld_requiredate
  881. Long ll_flag
  882. Long ll_tmp_orderid
  883. String ls_sccode,ls_tmp_ordercode,ls_billcode,ls_relcode
  884. String ls_opemp,ls_assign_emp,ls_permit_emp
  885. DateTime ld_opdate,ld_permit_date
  886. String ls_dscrp
  887. DateTime server_dt
  888. String arg_msg
  889. long ll_cnt
  890. SELECT Top 1 getdate() INTO :server_dt FROM u_user ;
  891. IF sqlca.SQLCode <> 0 THEN
  892. rslt = 0
  893. arg_msg = "查询操作失败,日期 "
  894. GOTO ext
  895. END IF
  896. ll_row = ds_order.RowCount()
  897. Open(w_sys_wait_jdt) //初始化进度条
  898. w_sys_wait_jdt.Show()
  899. w_sys_wait_jdt.wf_accepttol(ds_order.RowCount())
  900. FOR ll_i = 1 TO ll_row
  901. //插入需求表
  902. w_sys_wait_jdt.st_msg.Text = ds_order.Object.ordercode[ll_i] + " 正在执行操作..." //进度信息
  903. w_sys_wait_jdt.wf_inc(ll_i) //进度
  904. ll_scid = ds_order.Object.scid[ll_i]
  905. ll_orderid = ds_order.Object.orderid[ll_i]
  906. ll_mtrlid = ds_order.Object.mtrlid[ll_i]
  907. ll_produce_wrkGrpid = ds_order.Object.u_mtrldef_dftwrkgrpid[ll_i]
  908. ll_scid_mtrlid = ds_order.Object.u_mtrldef_scid[ll_i]
  909. ls_status = ds_order.Object.status_mode[ll_i]
  910. ls_woodcode = ds_order.Object.woodcode[ll_i]
  911. ls_pcode = ds_order.Object.pcode[ll_i]
  912. ls_ordercode = ds_order.Object.ordercode[ll_i]
  913. ld_orderqty = ds_order.Object.orderqty[ll_i]
  914. ld_acmpqty = ds_order.Object.acmpqty[ll_i]
  915. ls_pfcode = ds_order.Object.u_order_ml_pfcode[ll_i]
  916. ld_orderdate = ds_order.Object.orderdate[ll_i]
  917. ld_requiredate = ds_order.Object.requiredate[ll_i]
  918. ls_relcode = ds_order.Object.u_order_ml_relcode[ll_i]
  919. ls_opemp = ds_order.Object.opemp[ll_i]
  920. ld_opdate = ds_order.Object.opdate[ll_i]
  921. ls_assign_emp = ds_order.Object.assign_emp[ll_i]
  922. ls_permit_emp = ds_order.Object.permit_emp[ll_i]
  923. ld_permit_date = ds_order.Object.permit_date[ll_i]
  924. ls_dscrp = ds_order.Object.dscrp[ll_i]
  925. ll_flag = ds_order.Object.status[ll_i]
  926. ll_cnt = 0
  927. select count(*) into :ll_cnt
  928. from u_orderRqMtrl
  929. where orderid = :ll_orderid
  930. and mtrlid = :ll_mtrlid;
  931. if sqlca.sqlcode <> 0 then
  932. rslt = 0
  933. arg_msg = '查询操作失败,第'+string(ll_i)+'行'
  934. goto ext
  935. end if
  936. if ll_cnt > 0 then continue
  937. ll_mxpkid = f_sys_scidentity(ll_scid,"u_OrderRqMtrl","mxpkid",arg_msg,FALSE,sqlca)
  938. if isnull(ld_orderdate) then ld_orderdate = datetime(today())
  939. if isnull(ld_requiredate) then ld_requiredate = datetime(today())
  940. INSERT INTO u_orderRqMtrl
  941. ( scid ,
  942. orderid ,
  943. mtrlid ,
  944. rqqty ,
  945. truerqqty ,
  946. plantype ,
  947. rqdate ,
  948. edate ,
  949. wrkgrpid ,
  950. produce_scid ,
  951. produce_wrkgrpid ,
  952. pfcode ,
  953. status ,
  954. woodcode ,
  955. pcode ,
  956. mxpkid ,
  957. consignedqty)
  958. VALUES
  959. (:ll_scid,
  960. :ll_orderid,
  961. :ll_mtrlid,
  962. :ld_orderqty,
  963. :ld_orderqty,
  964. 0,
  965. :ld_orderdate,
  966. :ld_requiredate,
  967. 0,
  968. :ll_scid_mtrlid,
  969. :ll_produce_wrkGrpid,
  970. :ls_pfcode,
  971. :ls_status,
  972. :ls_woodcode,
  973. :ls_pcode,
  974. :ll_mxpkid,
  975. :ld_orderqty);
  976. IF sqlca.SQLCode <> 0 THEN
  977. rslt = 0
  978. arg_msg = ls_ordercode+'插入需求失败'+sqlca.SQLErrText
  979. GOTO ext
  980. END IF
  981. //加入生产指令单
  982. IF f_get_sccode(ll_scid,sqlca,ls_sccode,arg_msg) = 0 THEN
  983. rslt = 0
  984. GOTO ext
  985. END IF
  986. ls_billcode = getid(ll_scid,ls_sccode+"PC",Date(server_dt),FALSE,sqlca)
  987. IF ls_billcode = "err" THEN
  988. rslt = 0
  989. arg_msg = "无法获取排产编号"+"~n"+sqlca.SQLErrText
  990. GOTO ext
  991. END IF
  992. ll_tmp_orderid = f_sys_scidentity(ll_scid,"u_order_ml","orderid",arg_msg,FALSE,sqlca)
  993. ls_tmp_ordercode = getid(ll_scid,ls_sccode+"ZL",Date(server_dt),FALSE,sqlca) //取得新单据编号
  994. INSERT INTO u_order_ml
  995. (scid,
  996. orderid,
  997. ordercode,
  998. billcode,
  999. relcode,
  1000. orderdate,
  1001. mtrlid,
  1002. status_mode,
  1003. woodcode,
  1004. pcode,
  1005. requiredate,
  1006. orderqty,
  1007. Opemp,
  1008. opdate,
  1009. dscrp,
  1010. Assign_emp,
  1011. ordertype,
  1012. taskrelcode,
  1013. pfcode,
  1014. taskid,
  1015. taskcode,
  1016. taskmxid,
  1017. cusid,
  1018. porderid,
  1019. pordercode,
  1020. wrkGrpid,
  1021. gydscrp,
  1022. pfklmode,
  1023. pfqty,
  1024. status,
  1025. acmpqty,
  1026. permit_emp,
  1027. permit_date)
  1028. VALUES
  1029. (:ll_scid,
  1030. :ll_tmp_orderid,
  1031. :ls_tmp_ordercode,
  1032. :ls_billcode,
  1033. :ls_relcode,
  1034. :ld_orderdate,
  1035. :ll_mtrlid,
  1036. :ls_status,
  1037. :ls_woodcode,
  1038. :ls_pcode,
  1039. :ld_requiredate,
  1040. :ld_orderqty,
  1041. :ls_opemp,
  1042. :ld_opdate,
  1043. :ls_dscrp,
  1044. :ls_Assign_emp,
  1045. 4,
  1046. '',
  1047. :ls_pfcode,
  1048. 0,
  1049. :ls_ordercode,
  1050. :ll_mxpkid,
  1051. 0,
  1052. :ll_orderid,
  1053. :ls_ordercode,
  1054. :ll_produce_wrkGrpid,
  1055. '',
  1056. '',
  1057. 0,
  1058. :ll_flag,
  1059. :ld_acmpqty,
  1060. :ls_permit_emp,
  1061. :ld_permit_date);
  1062. IF sqlca.SQLCode <> 0 THEN
  1063. arg_msg = ls_ordercode+'插入生产指令单失败,原因:'+sqlca.SQLErrText
  1064. rslt = 0
  1065. GOTO ext
  1066. END IF
  1067. INSERT INTO u_order_ml_mx
  1068. (scid, orderid, taskid, taskcode, qty, cusid, taskmxid)
  1069. VALUES
  1070. (:ll_scid,:ll_tmp_orderid,:ll_orderid,:ls_ordercode,:ld_orderqty,0,:ll_mxpkid);
  1071. IF sqlca.SQLCode <> 0 THEN
  1072. rslt = 0
  1073. arg_msg = ls_ordercode+'插入指令单明细失败,原因:'+sqlca.SQLErrText
  1074. GOTO ext
  1075. END IF
  1076. //复制相关明细(领料明细,工组明细,工序明细)
  1077. //1.领料明细
  1078. INSERT INTO u_OrderRqMtrl_scll
  1079. (scid, OrderID, MtrlID, wrkGrpid, trueRqqty, DstrQty, costamt, status, woodcode,
  1080. pcode, ctmint, ifchanged)
  1081. SELECT scid,:ll_tmp_orderid, MtrlID, wrkGrpid, trueRqqty, DstrQty, costamt, status, woodcode,
  1082. pcode, ctmint, ifchanged
  1083. FROM u_OrderRqMtrl_scll
  1084. WHERE orderid = :ll_orderid
  1085. AND scid = :ll_scid;
  1086. IF sqlca.SQLCode <> 0 THEN
  1087. rslt = 0
  1088. arg_msg = ls_ordercode+'插入领料明细失败,原因:'+sqlca.SQLErrText
  1089. GOTO ext
  1090. END IF
  1091. //2.工序明细
  1092. INSERT INTO U_OrderRqwp
  1093. (scid, Mtrlid, Procode, Proname, Proorder, proqty, finishqty, printnum, orderid,
  1094. wrkGrpid, lsxtype, ctmint, finishemp, finishdate, finishflag, workPrice)
  1095. SELECT scid, Mtrlid, Procode, Proname, Proorder, proqty, finishqty, printnum, :ll_tmp_orderid,
  1096. wrkGrpid, lsxtype, ctmint, finishemp, finishdate, finishflag, workPrice
  1097. FROM U_OrderRqwp
  1098. WHERE orderid = :ll_orderid
  1099. AND scid = :ll_scid;
  1100. IF sqlca.SQLCode <> 0 THEN
  1101. rslt = 0
  1102. arg_msg = ls_ordercode+'插入工序明细失败,原因:'+sqlca.SQLErrText
  1103. GOTO ext
  1104. END IF
  1105. //3.工组明细
  1106. INSERT INTO u_OrderMtrl_workgroup
  1107. (scid, mtrlid, wrkGrpid, owrkGrpid, orderqty, requiredate, lastdays, finishqty,
  1108. finishdate, finishflag, ifjd, orderid, ctmint, wkpname, printid, dscrp)
  1109. SELECT scid, mtrlid, wrkGrpid, owrkGrpid, orderqty, requiredate, lastdays, finishqty,
  1110. finishdate, finishflag, ifjd, :ll_tmp_orderid, ctmint, wkpname, printid, dscrp
  1111. FROM u_OrderMtrl_workgroup
  1112. WHERE orderid = :ll_orderid
  1113. AND scid = :ll_scid;
  1114. IF sqlca.SQLCode <> 0 THEN
  1115. rslt = 0
  1116. arg_msg = ls_ordercode+'插入工组明细失败,原因:'+sqlca.SQLErrText
  1117. GOTO ext
  1118. END IF
  1119. NEXT
  1120. ext:
  1121. Close(w_sys_wait_jdt)
  1122. IF rslt = 1 THEN
  1123. COMMIT;
  1124. messagebox('提示','操作成功!',information!,ok!)
  1125. ELSE
  1126. ROLLBACK;
  1127. messagebox('错误',arg_msg,stopsign!,ok!)
  1128. END IF
  1129. end event
  1130. type cb_9 from commandbutton within w_dangus
  1131. end type
  1132. type cb_10 from commandbutton within w_dangus
  1133. boolean visible = false
  1134. integer x = 1586
  1135. integer y = 604
  1136. integer width = 658
  1137. integer height = 88
  1138. integer taborder = 60
  1139. boolean bringtotop = true
  1140. integer textsize = -9
  1141. integer weight = 400
  1142. fontcharset fontcharset = gb2312charset!
  1143. fontpitch fontpitch = variable!
  1144. string facename = "宋体"
  1145. boolean enabled = false
  1146. string text = "生成工组计件单相关人员"
  1147. end type
  1148. event clicked;Long billid[],wrkgrpid[]
  1149. Long ll_i,i,ll_j,l
  1150. String relempstr
  1151. String ls_empname[]
  1152. w_sys_wait.Show()
  1153. w_sys_wait.wf_set_msg('正在修复数据...')
  1154. ll_i = 1
  1155. l = 1
  1156. //更新月计件单
  1157. DECLARE cur_scwg CURSOR FOR
  1158. SELECT billid, wrkGrpid
  1159. FROM u_scwg_taskwork_2
  1160. WHERE (billtype = 0) OR
  1161. (billtype = 2);
  1162. OPEN cur_scwg;
  1163. FETCH cur_scwg INTO :billid[ll_i],:wrkgrpid[ll_i];
  1164. DO WHILE sqlca.SQLCode = 0
  1165. ll_i++
  1166. FETCH cur_scwg INTO :billid[ll_i],:wrkgrpid[ll_i];
  1167. LOOP
  1168. CLOSE cur_scwg;
  1169. FOR i = 1 TO ll_i - 1
  1170. l = 1
  1171. DECLARE cur_emp CURSOR FOR
  1172. SELECT
  1173. u_rs_empinfo.Empname
  1174. FROM u_rs_empinfo,
  1175. u_workgroupmx
  1176. WHERE
  1177. ( u_rs_empinfo.empid = u_workgroupmx.empid ) AND
  1178. (u_workgroupmx.workgroupid = :wrkgrpid[i]);
  1179. OPEN cur_emp;
  1180. FETCH cur_emp INTO :ls_empname[l];
  1181. DO WHILE sqlca.SQLCode = 0
  1182. l++
  1183. FETCH cur_emp INTO :ls_empname[l];
  1184. LOOP
  1185. CLOSE cur_emp;
  1186. FOR ll_j = 1 TO l - 1
  1187. relempstr = relempstr + ls_empname[ll_j] + ','
  1188. NEXT
  1189. UPDATE u_scwg_taskwork_2
  1190. SET relempstr = :relempstr
  1191. Where billid = :billid[i];
  1192. IF sqlca.SQLCode <> 0 THEN
  1193. ROLLBACK;
  1194. w_sys_wait.Hide()
  1195. MessageBox('错误','更新失败'+'~n'+sqlca.SQLErrText,stopsign!,ok!)
  1196. RETURN
  1197. END IF
  1198. relempstr = ''
  1199. NEXT
  1200. Long billid_day[]
  1201. Long ll_k,k,ll_l,p
  1202. p = 1
  1203. ll_k = 1
  1204. //更新日计件单
  1205. DECLARE cur_day CURSOR FOR
  1206. SELECT billid
  1207. FROM u_scwg_taskwork_day;
  1208. OPEN cur_day;
  1209. FETCH cur_day INTO :billid_day[ll_k];
  1210. DO WHILE sqlca.SQLCode = 0
  1211. ll_k++
  1212. FETCH cur_day INTO :billid_day[ll_k];
  1213. LOOP
  1214. CLOSE cur_day;
  1215. FOR k = 1 TO ll_k - 1
  1216. p= 1
  1217. DECLARE cur_emp_day CURSOR FOR
  1218. SELECT
  1219. u_rs_empinfo.Empname
  1220. FROM u_scwg_taskwork_day_mx_emp,
  1221. u_rs_empinfo
  1222. WHERE
  1223. (u_rs_empinfo.empid = u_scwg_taskwork_day_mx_emp.empid) AND
  1224. (u_scwg_taskwork_day_mx_emp.billid = :billid_day[k]);
  1225. OPEN cur_emp_day;
  1226. FETCH cur_emp_day INTO :ls_empname[p];
  1227. DO WHILE sqlca.SQLCode = 0
  1228. p++
  1229. FETCH cur_emp_day INTO :ls_empname[p];
  1230. LOOP
  1231. CLOSE cur_emp_day;
  1232. FOR ll_l = 1 TO p - 1
  1233. relempstr = relempstr + ls_empname[ll_l] + ','
  1234. NEXT
  1235. UPDATE u_scwg_taskwork_day
  1236. SET relempstr = :relempstr
  1237. Where billid = :billid_day[k];
  1238. IF sqlca.SQLCode <> 0 THEN
  1239. ROLLBACK;
  1240. w_sys_wait.Hide()
  1241. MessageBox('错误','更新失败'+'~n'+sqlca.SQLErrText,stopsign!,ok!)
  1242. RETURN
  1243. END IF
  1244. relempstr = ''
  1245. NEXT
  1246. commit;
  1247. w_sys_wait.Hide()
  1248. messagebox('提示','更新成功!',information!,ok!)
  1249. end event
  1250. type cb_11 from commandbutton within w_dangus
  1251. boolean visible = false
  1252. integer x = 567
  1253. integer y = 136
  1254. integer width = 603
  1255. integer height = 84
  1256. integer taborder = 50
  1257. boolean bringtotop = true
  1258. integer textsize = -9
  1259. integer weight = 400
  1260. fontcharset fontcharset = gb2312charset!
  1261. fontpitch fontpitch = variable!
  1262. string facename = "宋体"
  1263. boolean enabled = false
  1264. string text = "合并外协订单发出明细"
  1265. end type
  1266. event clicked;IF Not sys_power_issuper THEN
  1267. MessageBox('系统提示','非管理员不可以操作')
  1268. RETURN
  1269. END IF
  1270. Long rslt = 1
  1271. Long li_row
  1272. Long li_mtrlwareid
  1273. Long li_mtrlid
  1274. Long li_storageid
  1275. IF MessageBox ("if","是否确定要对外协订单发出明细进行合并?合并后将不能恢复!",question!,yesno! ) = 2 THEN RETURN
  1276. Long mtrlwareid[],storageid[],cnt = 0,ll_mtrlwareid,ll_storageid,i,mtrlid[],ll_mtrlid
  1277. Decimal noallocqty[],ld_noallocqty
  1278. DECLARE cur CURSOR FOR
  1279. SELECT mtrlwareid,storageid,mtrlid,noallocqty
  1280. FROM u_mtrlware
  1281. Where plancode <> '' Or Status <> '' Or woodcode <> '' Or pcode <> '' ;
  1282. OPEN cur;
  1283. FETCH cur Into :ll_mtrlwareid,:ll_storageid,:ll_mtrlid,:ld_noallocqty;
  1284. DO WHILE sqlca.SQLCode = 0
  1285. cnt ++
  1286. mtrlwareid[cnt ] = ll_mtrlwareid
  1287. storageid[cnt] = ll_storageid
  1288. mtrlid[cnt] = ll_mtrlid
  1289. noallocqty[cnt] = ld_noallocqty
  1290. FETCH cur Into :ll_mtrlwareid,:ll_storageid,:ll_mtrlid,:ld_noallocqty;
  1291. LOOP
  1292. CLOSE cur;
  1293. FOR i = 1 To cnt
  1294. SELECT mtrlwareid
  1295. INTO :ll_mtrlwareid
  1296. FROM u_mtrlware
  1297. WHERE plancode = '' AND Status = '' AND woodcode = '' AND pcode = '' AND
  1298. storageid = :storageid[i] And mtrlid = :mtrlid[i];
  1299. IF sqlca.SQLCode = -1 THEN
  1300. rslt = 0
  1301. GOTO ext
  1302. ELSEIF sqlca.SQLCode = 100 THEN
  1303. UPDATE u_mtrlware
  1304. SET plancode = '',
  1305. Status = '',
  1306. woodcode = '',
  1307. pcode = ''
  1308. Where mtrlwareid = :mtrlwareid[i] ;
  1309. IF sqlca.SQLCode <> 0 THEN
  1310. rslt = 0
  1311. GOTO ext
  1312. END IF
  1313. UPDATE u_outwaremx
  1314. SET plancode = '',
  1315. Status = '',
  1316. woodcode = '',
  1317. pcode = ''
  1318. Where mtrlwareid = :mtrlwareid[i] ;
  1319. IF sqlca.SQLCode <> 0 THEN
  1320. rslt = 0
  1321. GOTO ext
  1322. END IF
  1323. ELSE
  1324. UPDATE u_mtrlware
  1325. SET noallocqty = noallocqty + :noallocqty[i]
  1326. Where mtrlwareid = :ll_mtrlwareid;
  1327. IF sqlca.SQLCode <> 0 THEN
  1328. rslt = 0
  1329. GOTO ext
  1330. END IF
  1331. UPDATE u_outwaremx
  1332. SET mtrlwareid = :ll_mtrlwareid,
  1333. plancode = '',
  1334. Status = '',
  1335. woodcode = '',
  1336. pcode = ''
  1337. Where mtrlwareid = :mtrlwareid[i] ;
  1338. IF sqlca.SQLCode <> 0 THEN
  1339. rslt = 0
  1340. GOTO ext
  1341. END IF
  1342. DELETE FROM u_mtrlware
  1343. Where mtrlwareid = :mtrlwareid[i] ;
  1344. IF sqlca.SQLCode <> 0 THEN
  1345. rslt = 0
  1346. GOTO ext
  1347. END IF
  1348. END IF
  1349. NEXT
  1350. UPDATE u_inwaremx
  1351. SET plancode = '',
  1352. Status = '',
  1353. woodcode = '',
  1354. pcode = '' ;
  1355. IF sqlca.SQLCode <> 0 THEN
  1356. rslt = 0
  1357. GOTO ext
  1358. END IF
  1359. UPDATE u_outwaremx
  1360. SET plancode = '',
  1361. Status = '',
  1362. woodcode = '',
  1363. pcode = '' ;
  1364. IF sqlca.SQLCode <> 0 THEN
  1365. rslt = 0
  1366. GOTO ext
  1367. END IF
  1368. ext:
  1369. IF rslt = 1 THEN
  1370. COMMIT;
  1371. MessageBox('提示','合并成功',information!,ok!)
  1372. ELSE
  1373. ROLLBACK;
  1374. MessageBox('错误','合并失败~n'+sqlca.sqlerrtext,stopsign!,ok!)
  1375. RETURN
  1376. END IF
  1377. end event
  1378. type cb_16 from commandbutton within w_dangus
  1379. boolean visible = false
  1380. integer x = 1650
  1381. integer y = 148
  1382. integer width = 658
  1383. integer height = 84
  1384. integer taborder = 50
  1385. boolean bringtotop = true
  1386. integer textsize = -9
  1387. integer weight = 400
  1388. fontcharset fontcharset = gb2312charset!
  1389. fontpitch fontpitch = variable!
  1390. string facename = "宋体"
  1391. boolean enabled = false
  1392. string text = "更新发货单结存(软体版)"
  1393. end type
  1394. event clicked;Long balcdateint[]
  1395. DateTime balcdate[]
  1396. Long Storageid[]
  1397. Long ll_i,i
  1398. UPDATE u_outware
  1399. SET flag = 1
  1400. Where (flag = 5);
  1401. IF sqlca.SQLCode <> 0 THEN
  1402. MessageBox('错误','更新单据仓审标记失败',stopsign!,ok!)
  1403. ROLLBACK;
  1404. RETURN
  1405. END IF
  1406. ll_i = 1
  1407. DECLARE cur_mx CURSOR FOR
  1408. SELECT DISTINCT balcdateint, balcdate, Storageid
  1409. FROM u_warebalc
  1410. WHERE (balcdateint > 0) AND (Storageid IN
  1411. (SELECT DISTINCT u_outware.StorageID
  1412. FROM u_outware INNER JOIN
  1413. u_storage ON u_outware.StorageID = u_storage.storageid
  1414. WHERE (u_outware.billtype = 1)))
  1415. Order By Storageid, balcdateint;
  1416. OPEN cur_mx;
  1417. FETCH cur_mx INTO :balcdateint[ll_i],:balcdate[ll_i],:Storageid[ll_i];
  1418. DO WHILE sqlca.SQLCode = 0
  1419. ll_i++
  1420. FETCH cur_mx INTO :balcdateint[ll_i],:balcdate[ll_i],:Storageid[ll_i];
  1421. LOOP
  1422. CLOSE cur_mx;
  1423. Open(w_sys_wait_jdt) //初始化进度条
  1424. w_sys_wait_jdt.Show()
  1425. w_sys_wait_jdt.wf_accepttol(ll_i - 1)
  1426. FOR i = 1 TO ll_i - 1
  1427. w_sys_wait_jdt.st_msg.Text = string(i)+'/'+string(ll_i - 1) + " 正在执行操作..." //进度信息
  1428. w_sys_wait_jdt.wf_inc(i) //进度
  1429. UPDATE u_outware
  1430. SET balcflag = 1 ,
  1431. u_outware.balcdateint = :balcdateint[i]
  1432. WHERE ( u_outware.flag = 1 ) AND
  1433. ( u_outware.balcflag = 0 ) AND
  1434. ( u_outware.storageid = :Storageid[i] ) AND
  1435. ( u_outware.balcdateint = 0 ) AND
  1436. ( year(u_outware.outdate) = year(:balcdate[i]) ) AND
  1437. ( Month(u_outware.outdate) = Month(:balcdate[i])) and
  1438. ( u_outware.billtype = 1 );
  1439. IF sqlca.SQLCode <> 0 THEN
  1440. ROLLBACK;
  1441. MessageBox('错误','更新失败',stopsign!,ok!)
  1442. RETURN
  1443. END IF
  1444. NEXT
  1445. Close(w_sys_wait_jdt)
  1446. commit;
  1447. messagebox('提示','操作成功!',information!,ok!)
  1448. end event
  1449. type cb_17 from commandbutton within w_dangus
  1450. boolean visible = false
  1451. integer x = 1541
  1452. integer y = 392
  1453. integer width = 878
  1454. integer height = 84
  1455. integer taborder = 50
  1456. boolean bringtotop = true
  1457. integer textsize = -9
  1458. integer weight = 400
  1459. fontcharset fontcharset = gb2312charset!
  1460. fontpitch fontpitch = variable!
  1461. string facename = "宋体"
  1462. boolean enabled = false
  1463. string text = "修复软件版升L1导数据后结存错误"
  1464. end type
  1465. event clicked;open(w_repair_balc)
  1466. end event
  1467. type cb_18 from uo_imflatbutton within w_dangus
  1468. boolean visible = false
  1469. integer x = 1554
  1470. integer y = 272
  1471. integer width = 686
  1472. integer taborder = 50
  1473. boolean bringtotop = true
  1474. boolean enabled = false
  1475. string text = "销售订单成品仓增加0库存"
  1476. end type
  1477. event clicked;call super::clicked;datastore ds_task
  1478. ds_task = CREATE datastore
  1479. ds_task.DataObject = 'ds_saletask'
  1480. ds_task.SetTransObject(sqlca)
  1481. ds_task.Retrieve()
  1482. Long ll_i
  1483. Long rslt = 1
  1484. Long ll_storageid_arr[],ll_storageid
  1485. Long ll_scid_arr[],ll_scid
  1486. String ll_storagename_arr[],ls_storagename
  1487. Long ll_j,count
  1488. Int li_balctype_arr[],li_balctype
  1489. Long ll_cusid
  1490. String ls_status,ls_mtrlcode,ls_pcode,ls_woodcode,ls_plancode
  1491. Long ll_mtrlwareid,ll_mtrlid
  1492. String arg_msg
  1493. Long ll_cnt
  1494. ll_cnt = 0
  1495. SELECT u_storage.storageid,
  1496. u_storage.storagename,
  1497. u_storage.scid,
  1498. u_storage.balctype
  1499. INTO :ll_storageid,
  1500. :ls_storagename,
  1501. :ll_scid,
  1502. :li_balctype
  1503. FROM u_storage
  1504. Where ( u_storage.storageid = 11 );
  1505. IF sqlca.SQLCode <> 0 THEN
  1506. MessageBox('Error','查询成品仓失败')
  1507. RETURN
  1508. END IF
  1509. Open(w_sys_wait_jdt) //初始化进度条
  1510. w_sys_wait_jdt.Show()
  1511. w_sys_wait_jdt.wf_accepttol(ds_task.RowCount())
  1512. FOR ll_i = 1 TO ds_task.RowCount()
  1513. w_sys_wait_jdt.st_msg.Text = "正在执行操作..." //进度信息
  1514. w_sys_wait_jdt.wf_inc(ll_i)
  1515. ll_mtrlid = ds_task.Object.u_saletaskmx_mtrlid[ll_i]
  1516. ls_mtrlcode = ds_task.Object.u_mtrldef_mtrlcode[ll_i]
  1517. ls_status = ds_task.Object.u_saletaskmx_status[ll_i]
  1518. ls_pcode = ds_task.Object.u_saletaskmx_pcode[ll_i]
  1519. ls_woodcode = ds_task.Object.u_saletaskmx_woodcode[ll_i]
  1520. ls_plancode = ds_task.Object.u_saletaskmx_mtrlcuscode[ll_i]
  1521. IF li_balctype = 1 THEN
  1522. ll_cusid = ds_task.Object.u_saletask_cusid[ll_i]
  1523. ELSE
  1524. ll_cusid = 0
  1525. END IF
  1526. SELECT top 1 mtrlwareid INTO :ll_mtrlwareid
  1527. FROM u_mtrlware
  1528. WHERE mtrlid = :ll_mtrlid
  1529. AND status = :ls_status
  1530. AND storageid = :ll_storageid
  1531. AND woodcode = :ls_woodcode
  1532. AND plancode = :ls_plancode
  1533. AND pcode = :ls_pcode
  1534. AND sptid = :ll_cusid;
  1535. IF sqlca.SQLCode = -1 THEN
  1536. // arg_msg = '查询:'+ls_mtrlcode+'仓库:'+ll_storagename_arr[ll_j]+'库存失败'
  1537. // rslt = 0
  1538. // GOTO ext
  1539. ll_cnt++
  1540. CONTINUE
  1541. ELSEIF sqlca.SQLCode = 100 THEN
  1542. ll_mtrlwareid = 0
  1543. ll_mtrlwareid = f_sys_scidentity(ll_scid,"u_mtrlware","mtrlwareid",arg_msg,FALSE,sqlca)
  1544. IF ll_mtrlwareid <= 0 THEN
  1545. // rslt = 0
  1546. // GOTO ext
  1547. ll_cnt++
  1548. ROLLBACK;
  1549. CONTINUE
  1550. END IF
  1551. INSERT INTO u_mtrlware(scid,mtrlwareid,mtrlid,storageid,noallocqty,status,plancode,woodcode,pcode,sptid)
  1552. Values(:ll_scid,:ll_mtrlwareid,:ll_mtrlid,:ll_storageid,0,:ls_status,:ls_plancode,:ls_woodcode,:ls_pcode,:ll_cusid);
  1553. IF sqlca.SQLCode <> 0 THEN
  1554. // arg_msg = '产品:'+ls_mtrlcode+'仓库:'+ll_storagename_arr[ll_j]+'加0库存失败或物料已经有库存,请检查'
  1555. // rslt = 0
  1556. // GOTO ext
  1557. ll_cnt++
  1558. ROLLBACK;
  1559. CONTINUE
  1560. ELSE
  1561. COMMIT;
  1562. END IF
  1563. END IF
  1564. NEXT
  1565. //ext:
  1566. Close(w_sys_wait_jdt)
  1567. MessageBox('提示','操作完成!失败:'+String(ll_cnt)+'条',information!,ok!)
  1568. end event
  1569. type cb_19 from commandbutton within w_dangus
  1570. integer x = 46
  1571. integer y = 580
  1572. integer width = 439
  1573. integer height = 96
  1574. integer taborder = 70
  1575. boolean bringtotop = true
  1576. integer textsize = -9
  1577. integer weight = 400
  1578. fontcharset fontcharset = gb2312charset!
  1579. fontpitch fontpitch = variable!
  1580. string facename = "宋体"
  1581. boolean enabled = false
  1582. string text = "修复历史库存表"
  1583. end type
  1584. event clicked;Long ll_mtrlid[],ll_storageid[],ll_sptid_cusid[]
  1585. String ls_status[],ls_woodcode[],ls_pcode[]
  1586. Long ll_scid
  1587. Long i,ll_i,j,ll_j
  1588. Long cnt
  1589. Long ls_mtrlwareid
  1590. String arg_msg
  1591. Long ll_mtrlid_out[],ll_storageid_out[],ll_sptid_cusid_out[]
  1592. String ls_status_out[],ls_woodcode_out[],ls_pcode_out[]
  1593. i = 1
  1594. j = 1
  1595. DECLARE cur_in CURSOR FOR
  1596. SELECT mtrlid, storageid, status, woodcode, pcode, sptid_cusid
  1597. FROM v_ware_inc;
  1598. OPEN cur_in;
  1599. FETCH cur_in INTO :ll_mtrlid[i],:ll_storageid[i],:ls_status[i],:ls_woodcode[i],:ls_pcode[i],:ll_sptid_cusid[i];
  1600. DO WHILE sqlca.SQLCode = 0
  1601. i++
  1602. FETCH cur_in INTO :ll_mtrlid[i],:ll_storageid[i],:ls_status[i],:ls_woodcode[i],:ls_pcode[i],:ll_sptid_cusid[i];
  1603. LOOP
  1604. CLOSE cur_in;
  1605. Open(w_sys_wait_jdt) //初始化进度条
  1606. w_sys_wait_jdt.Show()
  1607. w_sys_wait_jdt.wf_accepttol(i - 1)
  1608. FOR ll_i = 1 TO i - 1
  1609. w_sys_wait_jdt.st_msg.Text = '1.更新进仓'
  1610. w_sys_wait_jdt.wf_inc(ll_i) //进度
  1611. cnt = 0
  1612. SELECT count(*) INTO :cnt
  1613. FROM u_mtrlware
  1614. WHERE mtrlid = :ll_mtrlid[ll_i]
  1615. AND storageid = :ll_storageid[ll_i]
  1616. AND status = :ls_status[ll_i]
  1617. AND woodcode = :ls_woodcode[ll_i]
  1618. AND pcode = :ls_pcode[ll_i]
  1619. AND Sptid = :ll_sptid_cusid[ll_i];
  1620. IF sqlca.SQLCode <> 0 THEN CONTINUE
  1621. IF cnt = 0 THEN
  1622. IF f_insert_0_mtrlware(ls_mtrlwareid,ll_mtrlid[ll_i],'',ll_storageid[ll_i],ll_sptid_cusid[ll_i],ls_status[ll_i],ls_woodcode[ll_i],ls_pcode[ll_i],'',0,arg_msg) = 0 THEN
  1623. CONTINUE
  1624. END IF
  1625. END IF
  1626. NEXT
  1627. Close(w_sys_wait_jdt)
  1628. DECLARE cur_out CURSOR FOR
  1629. SELECT mtrlid, storageid, status, woodcode, pcode, sptid
  1630. FROM v_ware_des;
  1631. OPEN cur_out;
  1632. FETCH cur_out INTO :ll_mtrlid_out[j],:ll_storageid_out[j],:ls_status_out[j],:ls_woodcode_out[j],:ls_pcode_out[j],:ll_sptid_cusid_out[j];
  1633. DO WHILE sqlca.SQLCode = 0
  1634. j++
  1635. FETCH cur_out INTO :ll_mtrlid_out[j],:ll_storageid_out[j],:ls_status_out[j],:ls_woodcode_out[j],:ls_pcode_out[j],:ll_sptid_cusid_out[j];
  1636. LOOP
  1637. CLOSE cur_out;
  1638. Open(w_sys_wait_jdt) //初始化进度条
  1639. w_sys_wait_jdt.Show()
  1640. w_sys_wait_jdt.wf_accepttol(j - 1)
  1641. FOR ll_j = 1 TO j - 1
  1642. w_sys_wait_jdt.st_msg.Text = '1.更新出仓'
  1643. w_sys_wait_jdt.wf_inc(ll_j) //进度
  1644. cnt = 0
  1645. SELECT count(*) INTO :cnt
  1646. FROM u_mtrlware
  1647. WHERE mtrlid = :ll_mtrlid_out[ll_j]
  1648. AND storageid = :ll_storageid_out[ll_j]
  1649. AND status = :ls_status_out[ll_j]
  1650. AND woodcode = :ls_woodcode_out[ll_j]
  1651. AND pcode = :ls_pcode_out[ll_j]
  1652. AND Sptid = :ll_sptid_cusid_out[ll_j];
  1653. IF sqlca.SQLCode <> 0 THEN CONTINUE
  1654. IF cnt = 0 THEN
  1655. IF f_insert_0_mtrlware(ls_mtrlwareid,ll_mtrlid_out[ll_j],'',ll_storageid_out[ll_j],ll_sptid_cusid_out[ll_j],ls_status_out[ll_j],ls_woodcode_out[ll_j],ls_pcode_out[ll_j],'',0,arg_msg) = 0 THEN
  1656. CONTINUE
  1657. END IF
  1658. END IF
  1659. NEXT
  1660. Close(w_sys_wait_jdt)
  1661. MessageBox('提示','执行完毕',information!,ok!)
  1662. end event
  1663. type cb_20 from commandbutton within w_dangus
  1664. integer x = 613
  1665. integer y = 952
  1666. integer width = 329
  1667. integer height = 84
  1668. integer taborder = 20
  1669. boolean bringtotop = true
  1670. integer textsize = -9
  1671. integer weight = 400
  1672. fontcharset fontcharset = gb2312charset!
  1673. fontpitch fontpitch = variable!
  1674. string facename = "宋体"
  1675. boolean enabled = false
  1676. string text = "更新出纳帐"
  1677. end type
  1678. event clicked;Long accountid[]
  1679. Long i,j,k
  1680. Long it_max
  1681. Long rapmoneyid[]
  1682. Dec msttakeamt[]
  1683. Dec takeamt[]
  1684. Dec balcamt[]
  1685. Long rslt
  1686. rslt = 1
  1687. accountid[1] = 15
  1688. accountid[2] = 16
  1689. accountid[3] = 12
  1690. accountid[4] = 11
  1691. Transaction commit_transaction
  1692. commit_transaction = sqlca
  1693. Open(w_sys_wait) //初始化进度条
  1694. w_sys_wait.Show()
  1695. FOR i = 1 TO 4
  1696. it_max = 1
  1697. DECLARE cur CURSOR FOR
  1698. SELECT rapmoneyid,
  1699. msttakeamt,
  1700. takeamt,
  1701. balcamt
  1702. FROM u_rap_money
  1703. WHERE (accountid = :accountid[i])
  1704. Order By printid USING commit_transaction;
  1705. OPEN cur;
  1706. FETCH cur INTO :rapmoneyid[it_max],
  1707. :msttakeamt[it_max],
  1708. :takeamt[it_max],
  1709. :balcamt[it_max];
  1710. DO WHILE commit_transaction.SQLCode = 0
  1711. j++
  1712. w_sys_wait.st_2.Text = '系统正在处理,请稍候...' + String(j)
  1713. it_max ++
  1714. FETCH cur INTO :rapmoneyid[it_max],
  1715. :msttakeamt[it_max],
  1716. :takeamt[it_max],
  1717. :balcamt[it_max];
  1718. LOOP
  1719. CLOSE cur;
  1720. FOR k = 2 TO it_max
  1721. balcamt[k] = balcamt[k - 1 ] + msttakeamt[k] - takeamt[k]
  1722. UPDATE u_rap_money
  1723. SET balcamt = :balcamt[k]
  1724. Where rapmoneyid = :rapmoneyid[k];
  1725. IF sqlca.SQLCode <> 0 THEN
  1726. rslt = 0
  1727. GOTO ext
  1728. END IF
  1729. NEXT
  1730. NEXT
  1731. ext:
  1732. IF rslt = 0 THEN
  1733. ROLLBACK;
  1734. MessageBox('错误','失败',stopsign!,ok!)
  1735. ELSE
  1736. COMMIT;
  1737. MessageBox('提示','成功',information!,ok!)
  1738. END IF
  1739. Close(w_sys_wait)
  1740. end event
  1741. type cb_21 from commandbutton within w_dangus
  1742. integer x = 576
  1743. integer y = 28
  1744. integer width = 603
  1745. integer height = 84
  1746. integer taborder = 50
  1747. boolean bringtotop = true
  1748. integer textsize = -9
  1749. integer weight = 400
  1750. fontcharset fontcharset = gb2312charset!
  1751. fontpitch fontpitch = variable!
  1752. string facename = "宋体"
  1753. string text = "更新销售订单单据金额"
  1754. end type
  1755. event clicked;long rslt = 1
  1756. string arg_msg
  1757. decimal lde_msttakeamt
  1758. IF sys_option_mst_multimoney = 1 THEN //使用多币种
  1759. UPDATE u_SaleTask
  1760. SET msttakeamt = a.billamt
  1761. FROM u_SaleTask INNER JOIN
  1762. (SELECT SUM(ROUND(u_SaleTaskMx.enprice * u_SaleTaskMx.usaleqty * u_SaleTaskMx.rebate,
  1763. 2)) AS billamt, u_SaleTask.scid, u_SaleTask.TaskID
  1764. FROM u_SaleTask INNER JOIN
  1765. u_SaleTaskMx ON u_SaleTask.scid = u_SaleTaskMx.scid AND
  1766. u_SaleTask.TaskID = u_SaleTaskMx.TaskID
  1767. GROUP BY u_SaleTask.scid, u_SaleTask.TaskID) a ON
  1768. u_SaleTask.scid = a.scid AND u_SaleTask.TaskID = a.TaskID
  1769. WHERE msttakeamt = 0;
  1770. ELSE // 系统不使用多币种,转换为人民币
  1771. UPDATE u_SaleTask
  1772. SET msttakeamt = a.billamt
  1773. FROM u_SaleTask INNER JOIN
  1774. (SELECT SUM(ROUND(u_SaleTask.mrate * u_SaleTaskMx.enprice * u_SaleTaskMx.usaleqty * u_SaleTaskMx.rebate,
  1775. 2)) AS billamt, u_SaleTask.scid, u_SaleTask.TaskID
  1776. FROM u_SaleTask INNER JOIN
  1777. u_SaleTaskMx ON u_SaleTask.scid = u_SaleTaskMx.scid AND
  1778. u_SaleTask.TaskID = u_SaleTaskMx.TaskID
  1779. GROUP BY u_SaleTask.scid, u_SaleTask.TaskID) a ON
  1780. u_SaleTask.scid = a.scid AND u_SaleTask.TaskID = a.TaskID
  1781. WHERE msttakeamt = 0;
  1782. END IF
  1783. if sqlca.sqlcode <> 0 then
  1784. rslt = 0
  1785. arg_msg = '更新失败,'+sqlca.sqlerrtext
  1786. end if
  1787. if rslt = 1 then
  1788. commit;
  1789. messagebox('','更新成功')
  1790. else
  1791. rollback;
  1792. messagebox('',arg_msg)
  1793. end if
  1794. end event
  1795. type cb_22 from commandbutton within w_dangus
  1796. integer x = 571
  1797. integer y = 380
  1798. integer width = 603
  1799. integer height = 84
  1800. integer taborder = 60
  1801. boolean bringtotop = true
  1802. integer textsize = -9
  1803. integer weight = 400
  1804. fontcharset fontcharset = gb2312charset!
  1805. fontpitch fontpitch = variable!
  1806. string facename = "宋体"
  1807. string text = "允许用户更新开"
  1808. end type
  1809. event clicked;Long ll_count
  1810. SELECT count(*) Into :ll_count From sys_msg Using sqlca;
  1811. IF ll_count > 1 THEN
  1812. DELETE sys_msg;
  1813. COMMIT;
  1814. INSERT Into sys_msg (allow_update) Values (1) ;
  1815. COMMIT;
  1816. ELSE
  1817. UPDATE sys_msg Set allow_update = 1;
  1818. COMMIT;
  1819. END IF
  1820. end event
  1821. type cb_23 from commandbutton within w_dangus
  1822. integer x = 1202
  1823. integer y = 32
  1824. integer width = 658
  1825. integer height = 84
  1826. integer taborder = 60
  1827. boolean bringtotop = true
  1828. integer textsize = -9
  1829. integer weight = 400
  1830. fontcharset fontcharset = gb2312charset!
  1831. fontpitch fontpitch = variable!
  1832. string facename = "宋体"
  1833. string text = "更新进仓明细mtrlwareid"
  1834. end type
  1835. event clicked;UPDATE u_inwaremx
  1836. SET mtrlwareid = u_mtrlware.mtrlwareid
  1837. FROM u_inware INNER JOIN
  1838. u_inwaremx ON u_inware.scid = u_inwaremx.scid AND
  1839. u_inware.inwareid = u_inwaremx.inwareid INNER JOIN
  1840. u_mtrlware ON u_inwaremx.scid = u_mtrlware.scid AND
  1841. u_inwaremx.mtrlid = u_mtrlware.mtrlid AND
  1842. u_inwaremx.plancode = u_mtrlware.plancode AND
  1843. u_inwaremx.status = u_mtrlware.Status AND
  1844. u_inwaremx.woodcode = u_mtrlware.woodcode AND
  1845. u_inwaremx.pcode = u_mtrlware.pcode AND
  1846. u_inwaremx.sptid_cusid = u_mtrlware.Sptid AND
  1847. u_inware.storageid = u_mtrlware.storageid AND
  1848. u_inware.Dxflag = u_mtrlware.Dxflag
  1849. Where (u_inware.flag = 1) And (u_inwaremx.mtrlwareid = 0);
  1850. IF sqlca.SQLCode <> 0 THEN
  1851. ROLLBACK;
  1852. MessageBox('','失败')
  1853. ELSE
  1854. COMMIT;
  1855. MessageBox('','成功')
  1856. END IF
  1857. end event
  1858. type cb_24 from commandbutton within w_dangus
  1859. integer x = 1211
  1860. integer y = 124
  1861. integer width = 658
  1862. integer height = 84
  1863. integer taborder = 70
  1864. boolean bringtotop = true
  1865. integer textsize = -9
  1866. integer weight = 400
  1867. fontcharset fontcharset = gb2312charset!
  1868. fontpitch fontpitch = variable!
  1869. string facename = "宋体"
  1870. string text = "更新进仓明细costamt"
  1871. end type
  1872. event clicked;UPDATE u_inwaremx
  1873. SET costamt = ROUND(cost * qty, 2);
  1874. if sqlca.sqlcode <> 0 then
  1875. rollback;
  1876. messagebox('', '更新失败,'+sqlca.sqlerrtext)
  1877. else
  1878. commit;
  1879. messagebox('','更新成功')
  1880. end if
  1881. end event
  1882. type cb_25 from commandbutton within w_dangus
  1883. integer x = 576
  1884. integer y = 140
  1885. integer width = 603
  1886. integer height = 84
  1887. integer taborder = 60
  1888. boolean bringtotop = true
  1889. integer textsize = -9
  1890. integer weight = 400
  1891. fontcharset fontcharset = gb2312charset!
  1892. fontpitch fontpitch = variable!
  1893. string facename = "宋体"
  1894. string text = "更新销售发货单据金额"
  1895. end type
  1896. event clicked;Long rslt = 1
  1897. String arg_msg
  1898. Decimal lde_msttakeamt
  1899. IF sys_option_outware_if_saleqty = 0 THEN
  1900. UPDATE u_outwaremx
  1901. SET saleqty = u_outwaremx.uqty,
  1902. enamt = ROUND(u_outwaremx.uqty * u_outwaremx.enprice * u_outwaremx.rebate, 2),
  1903. bsamt = ROUND(u_outwaremx.uqty * u_outwaremx.enprice * u_outwaremx.rebate * u_outware.mrate, 2)
  1904. FROM u_outwaremx INNER JOIN
  1905. u_outware ON u_outwaremx.scid = u_outware.scid AND
  1906. u_outwaremx.outwareid = u_outware.outwareid
  1907. Where u_outware.billtype = 1 And u_outwaremx.saleqty = 0 ;
  1908. ELSE
  1909. UPDATE u_outwaremx
  1910. SET enamt = ROUND(u_outwaremx.saleqty * u_outwaremx.enprice * u_outwaremx.rebate, 2),
  1911. bsamt = ROUND(u_outwaremx.saleqty * u_outwaremx.enprice * u_outwaremx.rebate * u_outware.mrate, 2)
  1912. FROM u_outwaremx INNER JOIN
  1913. u_outware ON u_outwaremx.scid = u_outware.scid AND
  1914. u_outwaremx.outwareid = u_outware.outwareid
  1915. Where u_outware.billtype = 1;
  1916. END IF
  1917. IF sqlca.SQLCode <> 0 THEN
  1918. rslt = 0
  1919. arg_msg = '更新失败,'+sqlca.SQLErrText
  1920. END IF
  1921. IF rslt = 1 THEN
  1922. COMMIT;
  1923. MessageBox('','更新成功')
  1924. ELSE
  1925. ROLLBACK;
  1926. MessageBox('',arg_msg)
  1927. END IF
  1928. end event
  1929. type cb_26 from commandbutton within w_dangus
  1930. integer x = 576
  1931. integer y = 224
  1932. integer width = 603
  1933. integer height = 84
  1934. integer taborder = 70
  1935. boolean bringtotop = true
  1936. integer textsize = -9
  1937. integer weight = 400
  1938. fontcharset fontcharset = gb2312charset!
  1939. fontpitch fontpitch = variable!
  1940. string facename = "宋体"
  1941. string text = "更新采购收货单据金额"
  1942. end type
  1943. event clicked;Long rslt = 1
  1944. String arg_msg
  1945. Decimal lde_msttakeamt
  1946. IF sys_option_outware_if_buyqty = 0 THEN
  1947. UPDATE u_inwaremx
  1948. SET buyqty = u_inwaremx.uqty,
  1949. uamt = ROUND(u_inwaremx.uqty * u_inwaremx.uprice * u_inwaremx.rebate,2),
  1950. bsamt = ROUND(u_inwaremx.uqty * u_inwaremx.uprice * u_inwaremx.rebate * u_inware.mrate,2)
  1951. FROM u_inwaremx INNER JOIN
  1952. u_inware ON u_inwaremx.scid = u_inware.scid AND
  1953. u_inwaremx.inwareid = u_inware.inwareid
  1954. Where u_inware.billtype = 1 And u_inwaremx.buyqty = 0;
  1955. ELSE
  1956. UPDATE u_inwaremx
  1957. SET uamt = ROUND(u_inwaremx.buyqty * u_inwaremx.uprice * u_inwaremx.rebate,2),
  1958. bsamt = ROUND(u_inwaremx.buyqty * u_inwaremx.uprice * u_inwaremx.rebate * u_inware.mrate,2)
  1959. FROM u_inwaremx INNER JOIN
  1960. u_inware ON u_inwaremx.scid = u_inware.scid AND
  1961. u_inwaremx.inwareid = u_inware.inwareid
  1962. Where u_inware.billtype = 1;
  1963. END IF
  1964. IF sqlca.SQLCode <> 0 THEN
  1965. rslt = 0
  1966. arg_msg = '更新失败,'+sqlca.SQLErrText
  1967. END IF
  1968. IF rslt = 1 THEN
  1969. COMMIT;
  1970. MessageBox('','更新成功')
  1971. ELSE
  1972. ROLLBACK;
  1973. MessageBox('',arg_msg)
  1974. END IF
  1975. end event
  1976. type cb_15 from commandbutton within w_dangus
  1977. integer x = 1234
  1978. integer y = 656
  1979. integer width = 603
  1980. integer height = 84
  1981. integer taborder = 50
  1982. boolean bringtotop = true
  1983. integer textsize = -9
  1984. integer weight = 400
  1985. fontcharset fontcharset = gb2312charset!
  1986. fontpitch fontpitch = variable!
  1987. string facename = "宋体"
  1988. string text = "先进先出 仓库初始化"
  1989. end type
  1990. event clicked;open(w_temp_storage_inout)
  1991. end event