w_warebalc_view_new.srw 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672
  1. $PBExportHeader$w_warebalc_view_new.srw
  2. forward
  3. global type w_warebalc_view_new from w_publ_easyq
  4. end type
  5. type tv_1 from uo_tv_mtrltype within w_warebalc_view_new
  6. end type
  7. type st_2 from statictext within w_warebalc_view_new
  8. end type
  9. type ddlb_storageid from uo_ddlb_storageid within w_warebalc_view_new
  10. end type
  11. type cb_other from uo_imflatbutton within w_warebalc_view_new
  12. end type
  13. type st_1 from statictext within w_warebalc_view_new
  14. end type
  15. type em_month from editmask within w_warebalc_view_new
  16. end type
  17. type st_lastbalcdate from statictext within w_warebalc_view_new
  18. end type
  19. type ddlb_1 from dropdownlistbox within w_warebalc_view_new
  20. end type
  21. type cb_balc from uo_imflatbutton within w_warebalc_view_new
  22. end type
  23. end forward
  24. global type w_warebalc_view_new from w_publ_easyq
  25. string title = "仓库结存表"
  26. event ue_retrieve_info ( )
  27. event retrieve_pageretr ( )
  28. event ue_mtrl_info ( )
  29. event ue_retrieve_inoutmx ( )
  30. event ue_usual_query_filt ( )
  31. event ue_usual_query_retr ( )
  32. event ue_cmp_mtrlware ( )
  33. event ue_cmp_amt2 ( )
  34. event ue_cmp ( )
  35. event ue_update_inware_mtrlwareid ( )
  36. tv_1 tv_1
  37. st_2 st_2
  38. ddlb_storageid ddlb_storageid
  39. cb_other cb_other
  40. st_1 st_1
  41. em_month em_month
  42. st_lastbalcdate st_lastbalcdate
  43. ddlb_1 ddlb_1
  44. cb_balc cb_balc
  45. end type
  46. global w_warebalc_view_new w_warebalc_view_new
  47. type variables
  48. Long cur_storageid = -1
  49. Long cur_storageid_arr[]
  50. DateTime balcdate //结存日期
  51. Int cur_mtrlorigin = -1 //当前显示物料来源
  52. String ls_handtype = ''
  53. string ls_mtrltype = ''
  54. long ins_if_info = 0
  55. integer cur_billtype_in = -1
  56. integer cur_billtype_out = -1
  57. end variables
  58. forward prototypes
  59. public subroutine wf_hidecol ()
  60. public function window getparentwindow ()
  61. end prototypes
  62. event ue_retrieve_info();if ddlb_1.text = '分类统计表' then return
  63. Long ll_row
  64. Long ll_mtrlid
  65. ll_row = dw_1.GetRow()
  66. IF ll_row <= 0 THEN
  67. ll_mtrlid = 0
  68. ELSE
  69. ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_row]
  70. END IF
  71. IF IsValid(w_mtrl_info) THEN
  72. w_mtrl_info.WindowState = Normal!
  73. w_mtrl_info.ins_mtrlid = ll_mtrlid
  74. w_mtrl_info.wf_retrieve(ll_mtrlid)
  75. END IF
  76. end event
  77. event retrieve_pageretr();
  78. //Int rtr_zeronoallocqty
  79. //
  80. //IF cbx_1.Checked THEN
  81. // rtr_zeronoallocqty = -1
  82. //ELSE
  83. // rtr_zeronoallocqty = 0
  84. //END IF
  85. dw_1.Retrieve(cur_storageid_arr,ls_handtype,ls_mtrltype,cur_mtrlorigin,publ_operator)
  86. IF dw_1.RowCount() > 0 AND dw_1.GetRow() = 0 THEN dw_1.SetRow(1)
  87. //查询最后结存日期
  88. DateTime ldt_lastbalcdate
  89. SELECT max( balcdate)
  90. INTO :ldt_lastbalcdate
  91. FROM u_warebalc
  92. WHERE (storageid = :cur_storageid OR :cur_storageid = -1)
  93. And balcdateint <> 0;
  94. IF sqlca.SQLCode <> 0 THEN
  95. SetNull(ldt_lastbalcdate)
  96. END IF
  97. IF IsNull(ldt_lastbalcdate) THEN
  98. st_lastbalcdate.Text = '没有结存记录'
  99. ELSE
  100. st_lastbalcdate.Text = '最后结存日期:'+String(ldt_lastbalcdate, 'yyyy-mm-dd')
  101. END IF
  102. SetPointer(Arrow!)
  103. end event
  104. event ue_mtrl_info();if ddlb_1.text = '分类统计表' then return
  105. Long ll_row
  106. ll_row = dw_1.GetRow()
  107. IF ll_row <= 0 THEN
  108. MessageBox('提示','请选择物料',information!,OK!)
  109. RETURN
  110. END IF
  111. Long ll_mtrlid
  112. ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_row]
  113. IF IsValid(w_mtrl_info) THEN
  114. w_mtrl_info.WindowState = Normal!
  115. w_mtrl_info.ins_mtrlid = ll_mtrlid
  116. w_mtrl_info.wf_retrieve(ll_mtrlid)
  117. ELSE
  118. OpenWithParm(w_mtrl_info,ll_mtrlid)
  119. END IF
  120. end event
  121. event ue_retrieve_inoutmx();//Long ll_row
  122. //Long ll_storageid,ll_mtrlid, ll_mtrlwareid
  123. //String ls_status,ls_woodcode,ls_pcode
  124. //String ls_plancode,ls_mtrlcuscode,ls_location
  125. //Long ll_sptid
  126. //DateTime ld_fdate,ld_edate,ld_showsale_data
  127. //Int li_storagetype
  128. //
  129. //ll_row = dw_1.GetRow()
  130. //
  131. //
  132. //tab_1.tabpage_1.dw_inout.setredraw(false)
  133. //tab_1.tabpage_1.dw_inout.setfilter('')
  134. //tab_1.tabpage_1.dw_inout.filter()
  135. //
  136. //tab_1.tabpage_2.dw_out_noaudit.setredraw(false)
  137. //tab_1.tabpage_2.dw_out_noaudit.setfilter('')
  138. //tab_1.tabpage_2.dw_out_noaudit.filter()
  139. //
  140. //IF ll_row <= 0 THEN
  141. // tab_1.tabpage_1.dw_inout.Reset()
  142. // tab_1.tabpage_2.dw_out_noaudit.Reset()
  143. //ELSE
  144. // ld_fdate = DateTime(Date(tab_1.tabpage_1.em_3.Text),Time(0))
  145. // ld_edate = DateTime(Date(tab_1.tabpage_1.em_4.Text),Time('23:59:59'))
  146. //
  147. // IF ld_fdate < sys_showsaledata_mindt THEN
  148. // ld_showsale_data = sys_showsaledata_mindt
  149. // ELSE
  150. // ld_showsale_data = ld_fdate
  151. // END IF
  152. //
  153. // ll_mtrlwareid = dw_1.Object.u_mtrlware_mtrlwareid[ll_row]
  154. // ll_storageid = dw_1.Object.u_mtrlware_storageid[ll_row]
  155. // ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_row]
  156. // ls_status = dw_1.Object.u_mtrlware_status[ll_row]
  157. // ls_woodcode = dw_1.Object.u_mtrlware_woodcode[ll_row]
  158. // ls_pcode = dw_1.Object.u_mtrlware_pcode[ll_row]
  159. // ls_plancode = dw_1.Object.u_mtrlware_plancode[ll_row]
  160. // ll_sptid = dw_1.Object.u_mtrlware_sptid[ll_row]
  161. //
  162. // tab_1.tabpage_1.dw_inout.Retrieve(ll_storageid,ll_mtrlid,ld_fdate,ld_edate,ls_status,ls_woodcode,ls_pcode,ld_showsale_data,ls_plancode,ll_sptid, cur_billtype_in, cur_billtype_out)
  163. // tab_1.tabpage_2.dw_out_noaudit.Retrieve(ll_mtrlwareid)
  164. //END IF
  165. //tab_1.tabpage_1.dw_inout.setredraw(true)
  166. //tab_1.tabpage_2.dw_out_noaudit.setredraw(true)
  167. end event
  168. event ue_usual_query_filt();//String obj_expr = ''
  169. //IF ddlb_1.Text = '明细统计表' or ddlb_1.text='汇总统计表' THEN
  170. //
  171. // IF Trim(sle_usual_query.Text) <> '' THEN
  172. // IF Pos(Trim(sle_usual_query.Text),'%') = 0 THEN
  173. // obj_expr = obj_expr+' ( u_mtrldef_mtrlcode LIKE "%'+Trim(sle_usual_query.Text)+'%") '
  174. // obj_expr = obj_expr+' or ( u_mtrldef_mtrlname LIKE "%'+Trim(sle_usual_query.Text)+'%") '
  175. // ELSE
  176. // obj_expr = obj_expr+' ( u_mtrldef_mtrlcode LIKE "'+Trim(sle_usual_query.Text)+'") '
  177. // obj_expr = obj_expr+' or ( u_mtrldef_mtrlname LIKE "'+Trim(sle_usual_query.Text)+'") '
  178. // END IF
  179. // END IF
  180. //ELSE
  181. // IF Trim(sle_usual_query.Text) <> '' THEN
  182. // IF Pos(Trim(sle_usual_query.Text),'%') = 0 THEN
  183. // obj_expr = obj_expr+' ( u_mtrltype_mtrltype LIKE "%'+Trim(sle_usual_query.Text)+'%") '
  184. // ELSE
  185. // obj_expr = obj_expr+' ( u_mtrltype_mtrltype LIKE "'+Trim(sle_usual_query.Text)+'") '
  186. // END IF
  187. // END IF
  188. //END IF
  189. //
  190. //dw_1.SetFilter(obj_expr)
  191. //
  192. //dw_1.SetRedraw(FALSE)
  193. //dw_1.Filter()
  194. //IF dw_1.RowCount() >= 1 THEN
  195. // dw_1.SelectRow(0,FALSE)
  196. // dw_1.SelectRow(1,TRUE)
  197. //END IF
  198. //dw_1.SetRedraw(TRUE)
  199. //
  200. //
  201. end event
  202. event ue_usual_query_retr();//String ls_querystrpart = ''
  203. //ls_newselect = Lower(ori_oldselect)
  204. //IF Trim(sle_usual_query.Text) <> '' THEN
  205. // IF Pos(Trim(sle_usual_query.Text),'%') = 0 THEN
  206. // ls_querystrpart = ls_querystrpart + "u_mtrldef.mtrlcode like '%"+Trim(sle_usual_query.Text)+"%'"
  207. // ls_querystrpart = ls_querystrpart + " or u_mtrldef.mtrlname like '%"+Trim(sle_usual_query.Text)+"%')"
  208. // ELSE
  209. // ls_querystrpart = ls_querystrpart + " (u_mtrldef.mtrlcode like '"+Trim(sle_usual_query.Text)+"'"
  210. // ls_querystrpart = ls_querystrpart + " or u_mtrldef.mtrlname like '"+Trim(sle_usual_query.Text)+"')"
  211. // END IF
  212. //
  213. // IF Pos(ls_newselect," where ") <> 0 THEN
  214. // ls_newselect = ls_newselect+" AND ("+ls_querystrpart+')'
  215. // ELSE
  216. // ls_newselect = ls_newselect+" where ("+ls_querystrpart+')'
  217. // END IF
  218. //END IF
  219. //wf_retrieveuc(dw_pageretr,ls_newselect,1)
  220. //THIS.TriggerEvent('retrieve_pageretr')
  221. //
  222. end event
  223. event ue_cmp_mtrlware();//按库存数重算本期期初
  224. IF Not f_power_ind(1507) THEN
  225. MessageBox(publ_operator,'你没有使用权限!')
  226. RETURN
  227. END IF
  228. //IF Not dw_pageretr.DataObject = 'dw_warebalc_view' THEN
  229. // MessageBox('系统提示','必须在客户产品统计表中才能执行本功能')
  230. // RETURN
  231. //END IF
  232. IF MessageBox (publ_operator,"是否确定要执行按库存数重算结存功能?",Question!,YesNo! ) = 2 THEN RETURN
  233. IF cur_storageid = -1 THEN
  234. MessageBox('系统提示','请先选择仓库')
  235. RETURN
  236. END IF
  237. Long rslt = 1
  238. String arg_msg
  239. datastore ds_warebalc
  240. ds_warebalc = Create datastore
  241. ds_warebalc.DataObject = 'dw_warebalc_view'
  242. ds_warebalc.SetTransObject(sqlca)
  243. ds_warebalc.Retrieve(cur_storageid_arr,'','',-1,publ_operator)
  244. // //清空筛选内容
  245. //ds_warebalc.SetFilter('')
  246. //ds_warebalc.Filter()
  247. //ds_warebalc.Retrieve(cur_storageid_arr,'','',-1,publ_operator)
  248. Long ll_i
  249. Decimal ld_newcost // 最新成本价
  250. Decimal ld_bgqty,ld_bgamt,ld_incqty,ld_incamt,ld_desqty,ld_desamt
  251. Decimal ld_balcqty,ld_balcamt
  252. Long ll_mtrlid
  253. String ls_status,ls_pcode,ls_woodcode
  254. String ls_mtrlcode
  255. Decimal ld_noallocqty,ld_wareamt,ld_noallocaddqty
  256. Decimal ld_noallocqty_sum,ld_wareamt_sum,ld_noallocaddqty_sum,ld_incaddqty,ld_desaddqty
  257. Long ll_sptid_cusid,ll_sptid
  258. Open(w_sys_wait_jdt) //初始化进度条
  259. w_sys_wait_jdt.Show()
  260. //结存查库存
  261. w_sys_wait_jdt.wf_accepttol(ds_warebalc.RowCount())
  262. FOR ll_i = 1 To ds_warebalc.RowCount()
  263. ll_mtrlid = ds_warebalc.Object.u_mtrldef_mtrlid[ll_i]
  264. ls_mtrlcode = ds_warebalc.Object.u_mtrldef_mtrlcode[ll_i]
  265. ls_status = ds_warebalc.Object.u_warebalc_status[ll_i]
  266. ls_woodcode = ds_warebalc.Object.u_warebalc_woodcode[ll_i]
  267. ls_pcode = ds_warebalc.Object.u_warebalc_pcode[ll_i]
  268. ll_sptid_cusid = ds_warebalc.Object.u_warebalc_sptid_cusid[ll_i]
  269. w_sys_wait_jdt.st_msg.Text = " 正在结存重算:"+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+"..." //进度信息
  270. w_sys_wait_jdt.wf_inc(ll_i)
  271. SELECT isnull(sum(noallocqty),0),
  272. isnull(sum(wareamt),0),
  273. isnull(sum(noallocaddqty),0)
  274. INTO :ld_noallocqty,
  275. :ld_wareamt,
  276. :ld_noallocaddqty
  277. FROM u_mtrlware
  278. WHERE mtrlid = :ll_mtrlid
  279. AND storageid = :cur_storageid
  280. AND status = :ls_status
  281. AND woodcode = :ls_woodcode
  282. AND pcode = :ls_pcode
  283. And sptid = :ll_sptid_cusid;
  284. IF sqlca.SQLCode <> 0 THEN
  285. IF sqlca.SQLCode = 100 THEN
  286. ld_noallocqty = 0
  287. ld_wareamt = 0
  288. ELSE
  289. rslt = 0
  290. arg_msg = '查询库存资料失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  291. GOTO ext
  292. END IF
  293. END IF
  294. UPDATE u_warebalc
  295. SET balcqty = :ld_noallocqty,
  296. balcaddqty = :ld_noallocaddqty,
  297. balcamt = :ld_wareamt,
  298. bgqty = :ld_noallocqty + desqty - incqty,
  299. bgamt = :ld_wareamt + desamt - incamt,
  300. bgaddqty = :ld_noallocaddqty + desaddqty - incaddqty
  301. WHERE mtrlid = :ll_mtrlid
  302. AND balcdateint = 0
  303. AND Storageid = :cur_storageid
  304. AND status = :ls_status
  305. AND woodcode = :ls_woodcode
  306. AND pcode = :ls_pcode
  307. And sptid_cusid = :ll_sptid_cusid;
  308. IF sqlca.SQLCode <> 0 THEN
  309. rslt = 0
  310. arg_msg = '更新结存失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  311. GOTO ext
  312. END IF
  313. ld_noallocqty_sum += ld_noallocqty
  314. ld_wareamt_sum += ld_wareamt
  315. ld_noallocaddqty_sum += ld_noallocaddqty
  316. NEXT
  317. //库存计结存
  318. Long cnt,ll_scid
  319. datastore ds_mtrlware
  320. ds_mtrlware = Create datastore
  321. ds_mtrlware.DataObject = 'ds_warebalc_view_cmpl_mtrlware_to_balc'
  322. ds_mtrlware.SetTransObject(sqlca)
  323. ds_mtrlware.Retrieve(cur_storageid)
  324. ds_mtrlware.AcceptText()
  325. IF ld_noallocqty_sum <> ds_mtrlware.Object.sumqty[1] Or &
  326. ld_wareamt_sum <> ds_mtrlware.Object.sumamt[1] Or &
  327. ld_noallocaddqty_sum <> ds_mtrlware.Object.sumaddqty[1] THEN
  328. SELECT scid INTO :ll_scid
  329. FROM u_storage
  330. Where storageid = :cur_storageid;
  331. IF sqlca.SQLCode <> 0 THEN
  332. rslt = 0
  333. arg_msg = '查询仓库所属分部失败,操作取消'
  334. GOTO ext
  335. END IF
  336. w_sys_wait_jdt.wf_accepttol(ds_mtrlware.RowCount())
  337. FOR ll_i = 1 To ds_mtrlware.RowCount()
  338. ll_mtrlid = 0
  339. ls_mtrlcode = ''
  340. ls_status = ''
  341. ls_woodcode = ''
  342. ls_pcode = ''
  343. ld_noallocqty = 0
  344. ld_wareamt = 0
  345. ll_sptid = 0
  346. cnt = 0
  347. ls_mtrlcode = ds_mtrlware.Object.u_mtrldef_mtrlcode[ll_i]
  348. ll_mtrlid = ds_mtrlware.Object.mtrlid[ll_i]
  349. ls_status = ds_mtrlware.Object.status[ll_i]
  350. ls_woodcode = ds_mtrlware.Object.woodcode[ll_i]
  351. ls_pcode = ds_mtrlware.Object.pcode[ll_i]
  352. ld_noallocqty = ds_mtrlware.Object.qty[ll_i]
  353. ld_noallocaddqty = ds_mtrlware.Object.addqty[ll_i]
  354. ld_wareamt = ds_mtrlware.Object.amt[ll_i]
  355. ll_sptid = ds_mtrlware.Object.u_mtrlware_sptid[ll_i]
  356. w_sys_wait_jdt.st_msg.Text = " 正在库存重算:"+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+"..." //进度信息
  357. w_sys_wait_jdt.wf_inc(ll_i)
  358. SELECT count(*) INTO :cnt
  359. FROM u_warebalc
  360. WHERE mtrlid = :ll_mtrlid
  361. AND balcdateint = 0
  362. AND Storageid = :cur_storageid
  363. AND status = :ls_status
  364. AND woodcode = :ls_woodcode
  365. AND pcode = :ls_pcode
  366. And sptid_cusid = :ll_sptid;
  367. IF sqlca.SQLCode <> 0 THEN
  368. rslt = 0
  369. arg_msg = '查询结存失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  370. GOTO ext
  371. END IF
  372. IF cnt > 0 THEN CONTINUE
  373. SELECT CASE when sum(Round(u_inwaremx.qty * u_inwaremx.cost,2)) Is Null THEN 0 ELSE sum(Round(u_inwaremx.qty * u_inwaremx.cost,2)) END ,
  374. CASE when sum(u_inwaremx.qty) Is Null THEN 0 ELSE sum(u_inwaremx.qty) END,
  375. CASE when sum(u_inwaremx.addqty) Is Null THEN 0 ELSE sum(u_inwaremx.addqty) END
  376. Into :ld_incamt,:ld_incqty,:ld_incaddqty
  377. From u_inwaremx,u_inware
  378. Where u_inwaremx.scid = u_inware.scid
  379. And u_inwaremx.inwareid = u_inware.inwareid
  380. And u_inware.storageid = :cur_storageid
  381. And u_inware.balcdateint = 0
  382. And u_inwaremx.mtrlid = :ll_mtrlid
  383. And u_inwaremx.status = :ls_status
  384. And u_inwaremx.woodcode = :ls_woodcode
  385. And u_inwaremx.pcode = :ls_pcode
  386. And u_inwaremx.sptid_cusid = :ll_sptid;
  387. IF sqlca.SQLCode <> 0 THEN
  388. rslt = 0
  389. arg_msg = '查询进仓失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  390. GOTO ext
  391. END IF
  392. SELECT CASE when sum(u_outwaremx.costamt) Is Null THEN 0 ELSE sum(u_outwaremx.costamt) END ,
  393. CASE when sum(u_outwaremx.qty) Is Null THEN 0 ELSE sum(u_outwaremx.qty) END ,
  394. CASE when sum(u_outwaremx.addqty) Is Null THEN 0 ELSE sum(u_outwaremx.addqty) END
  395. Into :ld_desamt,:ld_desqty,:ld_desaddqty
  396. From u_outwaremx,u_outware
  397. Where u_outwaremx.scid = u_outware.scid
  398. And u_outwaremx.outwareid = u_outware.outwareid
  399. And u_outware.storageid = :cur_storageid
  400. And u_outware.balcdateint = 0
  401. And u_outwaremx.mtrlid = :ll_mtrlid
  402. And u_outwaremx.status = :ls_status
  403. And u_outwaremx.woodcode = :ls_woodcode
  404. And u_outwaremx.pcode = :ls_pcode
  405. And u_outwaremx.sptid = :ll_sptid;
  406. IF sqlca.SQLCode <> 0 THEN
  407. rslt = 0
  408. arg_msg = '查询出仓失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  409. GOTO ext
  410. END IF
  411. INSERT INTO u_warebalc
  412. (scid,
  413. balcdateint,
  414. storageid,
  415. mtrlid,
  416. status,
  417. woodcode,
  418. pcode,
  419. bgqty,
  420. bgamt,
  421. incqty,
  422. incamt,
  423. desqty,
  424. desamt,
  425. balcqty,
  426. balcamt,
  427. sptid_cusid,
  428. bgaddqty,
  429. balcaddqty,
  430. incaddqty,
  431. desaddqty
  432. )
  433. VALUES
  434. (:ll_scid,0,
  435. :cur_storageid,
  436. :ll_mtrlid,
  437. :ls_status,
  438. :ls_woodcode,
  439. :ls_pcode,
  440. :ld_noallocqty + :ld_desqty - :ld_incqty,
  441. :ld_wareamt + :ld_desamt - :ld_incamt,
  442. :ld_incqty,
  443. :ld_incamt,
  444. :ld_desqty,
  445. :ld_desamt,
  446. :ld_noallocqty,
  447. :ld_wareamt,
  448. :ll_sptid,
  449. :ld_noallocaddqty + :ld_desaddqty - :ld_incaddqty,
  450. :ld_noallocaddqty,
  451. :ld_incqty,
  452. :ld_desaddqty);
  453. IF sqlca.SQLCode <> 0 THEN
  454. rslt = 0
  455. arg_msg = '新加结存失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  456. GOTO ext
  457. END IF
  458. NEXT
  459. END IF
  460. //CLOSE(w_sys_wait_jdt)
  461. //COMMIT;
  462. //MessageBox('系统提示','重算成功!')
  463. //THIS.TriggerEvent('retrieve_pageretr')
  464. ext:
  465. Destroy ds_warebalc
  466. Destroy ds_mtrlware
  467. Close(w_sys_wait_jdt)
  468. IF rslt = 0 THEN
  469. ROLLBACK;
  470. MessageBox('Error',arg_msg)
  471. RETURN
  472. ELSE
  473. COMMIT;
  474. MessageBox('系统提示','重算成功!')
  475. This.TriggerEvent('retrieve_pageretr')
  476. END IF
  477. end event
  478. event ue_cmp_amt2();//按上期结存重算本期结余
  479. IF Not f_power_ind(1507) THEN
  480. MessageBox(publ_operator,'你没有使用权限!')
  481. RETURN
  482. END IF
  483. //IF Not dw_pageretr.DataObject = 'dw_warebalc_view' THEN
  484. // MessageBox('系统提示','必须在客户产品统计表中才能执行本功能')
  485. // RETURN
  486. //END IF
  487. IF cur_storageid = -1 THEN
  488. MessageBox('系统提示','请先选择仓库')
  489. RETURN
  490. END IF
  491. Long rslt = 1
  492. String arg_msg
  493. Long cnt
  494. cnt = 0
  495. SELECT count(*) INTO :cnt
  496. FROM u_mtrlware
  497. WHERE u_mtrlware.storageid = :cur_storageid
  498. AND ( u_mtrlware.plancode <> '' OR sptid <> 0 )
  499. AND u_mtrlware.noallocqty <> 0
  500. And u_mtrlware.mtrlid In (SELECT mtrlid From u_warebalc Where storageid = :cur_storageid And balcdateint = 0);
  501. IF sqlca.SQLCode <> 0 THEN
  502. MessageBox('系统提示','查询仓库物料使用了批号库存失败,'+sqlca.SQLErrText)
  503. RETURN
  504. END IF
  505. IF cnt > 0 THEN
  506. MessageBox('系统提示','仓库物料使用了批号库存,不能重算')
  507. RETURN
  508. END IF
  509. cnt = 0
  510. SELECT count(*) INTO :cnt
  511. FROM u_outware,u_outwaremx
  512. WHERE u_outware.storageid = :cur_storageid
  513. AND u_outware.scid = u_outwaremx.scid
  514. AND u_outware.outwareid = u_outwaremx.outwareid
  515. AND u_outware.flag = 1
  516. AND u_outware.balcdateint = 0
  517. AND u_outwaremx.plancode <> ''
  518. And u_outwaremx.mtrlid In (SELECT mtrlid From u_warebalc Where storageid = :cur_storageid And balcdateint = 0);
  519. IF sqlca.SQLCode <> 0 THEN
  520. MessageBox('系统提示','查询仓库物料出仓使用了批号库存失败,'+sqlca.SQLErrText)
  521. RETURN
  522. END IF
  523. IF cnt > 0 THEN
  524. MessageBox('系统提示','仓库物料出仓使用了批号库存,不能重算')
  525. RETURN
  526. END IF
  527. cnt = 0
  528. SELECT count(*) INTO :cnt
  529. FROM u_inware,u_inwaremx
  530. WHERE u_inware.storageid = :cur_storageid
  531. AND u_inware.scid = u_inwaremx.scid
  532. AND u_inware.inwareid = u_inwaremx.inwareid
  533. AND u_inware.flag = 1
  534. AND u_inware.balcdateint = 0
  535. AND u_inwaremx.plancode <> ''
  536. And u_inwaremx.mtrlid In (SELECT mtrlid From u_warebalc Where storageid = :cur_storageid And balcdateint = 0);
  537. IF sqlca.SQLCode <> 0 THEN
  538. MessageBox('系统提示','查询仓库物料进仓使用了批号库存失败,'+sqlca.SQLErrText)
  539. RETURN
  540. END IF
  541. IF cnt > 0 THEN
  542. MessageBox('系统提示','仓库物料进仓使用了批号库存,不能重算')
  543. RETURN
  544. END IF
  545. IF MessageBox (publ_operator,"是否确定要执行按上期结存重算本期结余功能?",Question!,YesNo! ) = 2 THEN RETURN
  546. //IF cur_storageid = -1 THEN
  547. // MessageBox('系统提示','请先选择仓库')
  548. // RETURN
  549. //END IF
  550. datastore ds_warebalc
  551. ds_warebalc = Create datastore
  552. ds_warebalc.DataObject = 'dw_warebalc_view'
  553. ds_warebalc.SetTransObject(sqlca)
  554. ds_warebalc.Retrieve(cur_storageid_arr,'','',-1,publ_operator)
  555. // //清空筛选内容
  556. //ds_warebalc.SetFilter('')
  557. //ds_warebalc.Filter()
  558. //ds_warebalc.Retrieve(cur_storageid_arr,'','',cur_mtrlorigin,publ_operator)
  559. Long ll_lastbalcdateint
  560. Long ll_i
  561. Decimal ld_newcost // 最新成本价
  562. Decimal ld_balcqty_last,ld_balcamt_last,ld_inamt,ld_inqty,ld_outamt,ld_outqty
  563. Decimal ld_ubalcqty_last,ld_uinqty,ld_uoutqty
  564. Decimal ld_bgqty,ld_bgamt,ld_incqty,ld_incamt,ld_desqty,ld_desamt
  565. Decimal ld_balcqty,ld_balcamt
  566. Long ll_mtrlid
  567. String ls_status,ls_pcode,ls_woodcode
  568. String ls_mtrlcode,ls_msg
  569. Long ll_sptid_cusid
  570. cnt = 0
  571. SELECT count(*) INTO :cnt
  572. FROM u_warebalc
  573. Where storageid = :cur_storageid;
  574. IF sqlca.SQLCode <> 0 THEN
  575. rslt = 0
  576. arg_msg = '查询历史结存失败,操作取消'
  577. GOTO ext
  578. END IF
  579. IF cnt > 0 THEN
  580. SELECT max(balcdateint) INTO :ll_lastbalcdateint
  581. FROM u_warebalc
  582. Where storageid = :cur_storageid;
  583. IF sqlca.SQLCode <> 0 THEN
  584. rslt = 0
  585. arg_msg = '查询上次结存失败,操作取消'
  586. GOTO ext
  587. END IF
  588. ELSE
  589. ll_lastbalcdateint = -1
  590. END IF
  591. UPDATE u_mtrlware
  592. SET noallocqty = 0,wareamt = 0
  593. Where storageid = : cur_storageid;
  594. IF sqlca.SQLCode <> 0 THEN
  595. rslt = 0
  596. arg_msg = '清除库存数量,金额失败,操作取消'
  597. GOTO ext
  598. END IF
  599. Open(w_sys_wait_jdt) //初始化进度条
  600. w_sys_wait_jdt.Show()
  601. w_sys_wait_jdt.wf_accepttol(ds_warebalc.RowCount())
  602. FOR ll_i = 1 To ds_warebalc.RowCount()
  603. ld_bgqty = ds_warebalc.Object.u_mtrldef_bgqty[ll_i]
  604. ld_bgamt = ds_warebalc.Object.u_mtrldef_bgamt[ll_i]
  605. ld_incqty = ds_warebalc.Object.u_mtrldef_incqty[ll_i]
  606. ld_incamt = ds_warebalc.Object.u_mtrldef_incamt[ll_i]
  607. ld_desqty = ds_warebalc.Object.u_mtrldef_desqty[ll_i]
  608. ld_desamt = ds_warebalc.Object.u_mtrldef_desamt[ll_i]
  609. ls_status = ds_warebalc.Object.u_warebalc_status[ll_i]
  610. ls_woodcode = ds_warebalc.Object.u_warebalc_woodcode[ll_i]
  611. ls_pcode = ds_warebalc.Object.u_warebalc_pcode[ll_i]
  612. ls_mtrlcode = ds_warebalc.Object.u_mtrldef_mtrlcode[ll_i]
  613. ll_mtrlid = ds_warebalc.Object.u_mtrldef_mtrlid[ll_i]
  614. ll_sptid_cusid = ds_warebalc.Object.u_warebalc_sptid_cusid[ll_i]
  615. // if ll_mtrlid = 9159 then
  616. // ll_mtrlid = 9159
  617. // end if
  618. w_sys_wait_jdt.st_msg.Text = " 正在重算:"+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+"..." //进度信息
  619. w_sys_wait_jdt.wf_inc(ll_i)
  620. IF IsNull(ld_bgqty) THEN ld_bgqty = 0
  621. IF IsNull(ld_incqty) THEN ld_incqty = 0
  622. IF IsNull(ld_bgamt) THEN ld_bgamt = 0
  623. IF IsNull(ld_incamt) THEN ld_incamt = 0
  624. IF IsNull(ld_desqty) THEN ld_desqty = 0
  625. IF IsNull(ld_desamt) THEN ld_desamt = 0
  626. //查期初
  627. IF ld_bgqty > 0 And ll_lastbalcdateint > 0 THEN
  628. SELECT balcqty,balcamt
  629. INTO :ld_balcqty_last,:ld_balcamt_last
  630. FROM u_warebalc
  631. WHERE storageid = :cur_storageid
  632. AND mtrlid = :ll_mtrlid
  633. AND status = :ls_status
  634. AND woodcode = :ls_woodcode
  635. AND pcode = :ls_pcode
  636. AND balcdateint = :ll_lastbalcdateint
  637. And sptid_cusid = :ll_sptid_cusid;
  638. IF sqlca.SQLCode <> 0 THEN
  639. rslt = 0
  640. arg_msg = '查询上月结存失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+','+sqlca.SQLErrText
  641. GOTO ext
  642. END IF
  643. IF ld_balcqty_last <> ld_bgqty THEN ld_bgqty = ld_balcqty_last
  644. IF ld_balcamt_last <> ld_bgamt THEN ld_bgamt = ld_balcamt_last
  645. ELSE
  646. ld_bgqty = 0
  647. ld_bgamt = 0
  648. END IF
  649. //查进仓
  650. SELECT isnull(sum(u_inwaremx.qty),0),isnull(sum(u_inwaremx.uqty),0),isnull(sum(round(u_inwaremx.cost * u_inwaremx.qty,2)),0)
  651. INTO :ld_inqty,:ld_uinqty,:ld_inamt
  652. FROM u_inware,u_inwaremx
  653. WHERE u_inware.scid = u_inwaremx.scid
  654. AND u_inware.inwareid = u_inwaremx.inwareid
  655. AND u_inwaremx.mtrlid = :ll_mtrlid
  656. AND u_inwaremx.status = :ls_status
  657. AND u_inwaremx.woodcode = :ls_woodcode
  658. AND u_inwaremx.pcode = :ls_pcode
  659. AND u_inware.storageid = :cur_storageid
  660. AND u_inware.balcdateint = 0
  661. AND u_inware.flag = 1
  662. And u_inwaremx.sptid_cusid = :ll_sptid_cusid;
  663. IF sqlca.SQLCode <> 0 THEN
  664. rslt = 0
  665. arg_msg = '查询本月进仓失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+','+sqlca.SQLErrText
  666. GOTO ext
  667. END IF
  668. IF ld_incqty <> ld_inqty THEN ld_incqty = ld_inqty
  669. IF ld_incamt <> ld_inamt THEN ld_incamt = ld_inamt
  670. //查出仓
  671. SELECT isnull(sum(u_outwaremx.qty),0),isnull(sum(u_outwaremx.uqty),0),isnull(sum(round(u_outwaremx.costamt,2)),0)
  672. INTO :ld_outqty,:ld_uoutqty,:ld_outamt
  673. FROM u_outware,u_outwaremx
  674. WHERE u_outware.scid = u_outwaremx.scid
  675. AND u_outware.outwareid = u_outwaremx.outwareid
  676. AND u_outwaremx.mtrlid = :ll_mtrlid
  677. AND u_outwaremx.status = :ls_status
  678. AND u_outwaremx.woodcode = :ls_woodcode
  679. AND u_outwaremx.pcode = :ls_pcode
  680. AND u_outware.storageid = :cur_storageid
  681. AND u_outware.balcdateint = 0
  682. AND u_outware.flag = 1
  683. And u_outwaremx.sptid = :ll_sptid_cusid;
  684. IF sqlca.SQLCode <> 0 THEN
  685. rslt = 0
  686. arg_msg = '查询本月出仓失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+','+sqlca.SQLErrText
  687. GOTO ext
  688. END IF
  689. IF ld_desqty <> ld_outqty THEN ld_desqty = ld_outqty
  690. IF ld_desamt <> ld_outamt THEN ld_desamt = ld_outamt
  691. IF IsNull(ld_bgqty) THEN ld_bgqty = 0
  692. IF IsNull(ld_bgamt) THEN ld_bgamt = 0
  693. IF IsNull(ld_incqty) THEN ld_incqty = 0
  694. IF IsNull(ld_incamt) THEN ld_incamt = 0
  695. IF IsNull(ld_desqty) THEN ld_desqty = 0
  696. IF IsNull(ld_desamt) THEN ld_desamt = 0
  697. IF ld_bgqty + ld_incqty <> 0 THEN
  698. ld_newcost = Round((ld_bgamt + ld_incamt) / (ld_bgqty + ld_incqty),10)
  699. ELSE
  700. IF ld_desqty <> 0 THEN
  701. ld_newcost = Round(ld_desamt / ld_desqty, 10)
  702. ELSE
  703. ld_newcost = 0
  704. END IF
  705. END IF
  706. IF ld_newcost < 0 THEN ld_newcost = 0
  707. //更新期间出金额,结存金额
  708. UPDATE u_warebalc
  709. SET bgqty = :ld_bgqty,
  710. bgamt = :ld_bgamt,
  711. incqty = :ld_incqty,
  712. incamt = :ld_incamt,
  713. desqty = :ld_desqty,
  714. desamt = round(:ld_desqty * :ld_newcost,2),
  715. balcqty = :ld_bgqty + :ld_incqty - :ld_desqty,
  716. balcamt = round((:ld_bgqty + :ld_incqty - :ld_desqty) * :ld_newcost,2)
  717. WHERE mtrlid = :ll_mtrlid
  718. AND balcdateint = 0
  719. AND Storageid = :cur_storageid
  720. AND status = :ls_status
  721. AND woodcode = :ls_woodcode
  722. AND pcode = :ls_pcode
  723. And sptid_cusid = :ll_sptid_cusid;
  724. IF sqlca.SQLCode <> 0 THEN
  725. rslt = 0
  726. arg_msg = '更新结存失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+','+sqlca.SQLErrText
  727. GOTO ext
  728. END IF
  729. UPDATE u_mtrlware
  730. SET cost = :ld_newcost,
  731. noallocqty = :ld_bgqty + :ld_incqty - :ld_desqty ,
  732. wareamt = round((:ld_bgqty + :ld_incqty - :ld_desqty) * :ld_newcost,2)
  733. WHERE mtrlid = :ll_mtrlid
  734. AND Storageid = :cur_storageid
  735. AND status = :ls_status
  736. AND woodcode = :ls_woodcode
  737. AND pcode = :ls_pcode
  738. AND plancode = ''
  739. And sptid = :ll_sptid_cusid;
  740. IF sqlca.SQLCode <> 0 THEN
  741. rslt = 0
  742. arg_msg = '更新库存金额失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+','+sqlca.SQLErrText
  743. GOTO ext
  744. END IF
  745. UPDATE u_outwaremx
  746. SET u_outwaremx.cost = :ld_newcost,
  747. u_outwaremx.costamt = round(u_outwaremx.qty * :ld_newcost,2)
  748. FROM u_outwaremx INNER JOIN
  749. u_outware ON u_outwaremx.scid = u_outware.scid AND
  750. u_outwaremx.outwareid = u_outware.outwareid
  751. WHERE u_outwaremx.mtrlid = :ll_mtrlid
  752. AND u_outware.storageid = :cur_storageid
  753. AND u_outwaremx.status = :ls_status
  754. AND u_outwaremx.woodcode = :ls_woodcode
  755. AND u_outwaremx.pcode = :ls_pcode
  756. AND u_outware.balcflag = 0
  757. And u_outwaremx.sptid = :ll_sptid_cusid;
  758. IF sqlca.SQLCode <> 0 THEN
  759. rslt = 0
  760. arg_msg = '更新未结存的出仓单金额失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+','+sqlca.SQLErrText
  761. GOTO ext
  762. END IF
  763. NEXT
  764. ext:
  765. Destroy ds_warebalc
  766. Close(w_sys_wait_jdt)
  767. IF rslt = 0 THEN
  768. ROLLBACK;
  769. MessageBox('Error',arg_msg)
  770. RETURN
  771. ELSE
  772. COMMIT;
  773. MessageBox('系统提示','重算成功!')
  774. This.TriggerEvent('retrieve_pageretr')
  775. END IF
  776. end event
  777. event ue_cmp();//超级重算
  778. IF Not f_power_ind(1507) THEN
  779. MessageBox(publ_operator,'你没有使用权限!')
  780. RETURN
  781. END IF
  782. //IF NOT dw_pageretr.DataObject = 'dw_warebalc_view' THEN
  783. // MessageBox('系统提示','必须在客户产品统计表中才能执行本功能')
  784. // RETURN
  785. //END IF
  786. IF MessageBox (publ_operator,"是否确定要执行超级重算结存功能?",Question!,YesNo! ) = 2 THEN RETURN
  787. IF cur_storageid = -1 THEN
  788. MessageBox('系统提示','请先选择仓库')
  789. RETURN
  790. END IF
  791. //// //清空筛选内容
  792. //dw_pageretr.SetFilter('')
  793. //dw_pageretr.Filter()
  794. //dw_pageretr.Retrieve(cur_storageid_arr,'','',-1,publ_operator)
  795. Long rslt = 1
  796. String arg_msg
  797. Long ll_i
  798. Decimal ld_newcost // 最新成本价
  799. Decimal ld_bgqty,ld_bgamt,ld_incqty,ld_incamt,ld_desqty,ld_desamt
  800. Decimal ld_balcqty,ld_balcamt
  801. Long ll_mtrlid
  802. String ls_status,ls_pcode,ls_woodcode
  803. String ls_mtrlcode
  804. Decimal ld_noallocqty,ld_wareamt
  805. Decimal ld_noallocqty_sum,ld_wareamt_sum
  806. Long ll_sptid
  807. Open(w_sys_wait_jdt) //初始化进度条
  808. w_sys_wait_jdt.Show()
  809. //
  810. ////结存查库存
  811. //库存计结存
  812. Long cnt,ll_scid
  813. datastore ds_mtrlware
  814. ds_mtrlware = Create datastore
  815. ds_mtrlware.DataObject = 'ds_warebalc_view_cmpl_mtrlware_to_balc2'
  816. ds_mtrlware.SetTransObject(sqlca)
  817. ds_mtrlware.Retrieve(cur_storageid)
  818. ds_mtrlware.AcceptText()
  819. //IF ld_noallocqty_sum <> ds_mtrlware.Object.sumqty[1] OR &
  820. // ld_wareamt_sum <> ds_mtrlware.Object.sumamt[1] THEN
  821. SELECT scid INTO :ll_scid
  822. FROM u_storage
  823. Where storageid = :cur_storageid;
  824. IF sqlca.SQLCode <> 0 THEN
  825. rslt = 0
  826. arg_msg = '查询仓库所属分部失败'
  827. GOTO ext
  828. END IF
  829. w_sys_wait_jdt.wf_accepttol(ds_mtrlware.RowCount())
  830. FOR ll_i = 1 To ds_mtrlware.RowCount()
  831. ll_mtrlid = 0
  832. ls_mtrlcode = ''
  833. ls_status = ''
  834. ls_woodcode = ''
  835. ls_pcode = ''
  836. ld_noallocqty = 0
  837. ld_wareamt = 0
  838. ll_sptid = 0
  839. cnt = 0
  840. ls_mtrlcode = ds_mtrlware.Object.u_mtrldef_mtrlcode[ll_i]
  841. ll_mtrlid = ds_mtrlware.Object.mtrlid[ll_i]
  842. ls_status = ds_mtrlware.Object.status[ll_i]
  843. ls_woodcode = ds_mtrlware.Object.woodcode[ll_i]
  844. ls_pcode = ds_mtrlware.Object.pcode[ll_i]
  845. ld_noallocqty = ds_mtrlware.Object.qty[ll_i]
  846. ld_wareamt = ds_mtrlware.Object.amt[ll_i]
  847. ll_sptid = ds_mtrlware.Object.u_mtrlware_sptid[ll_i]
  848. w_sys_wait_jdt.st_msg.Text = " 正在库存重算:"+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode+"..." //进度信息
  849. w_sys_wait_jdt.wf_inc(ll_i)
  850. SELECT sum(Round(u_inwaremx.qty * u_inwaremx.cost,2)) ,
  851. sum(u_inwaremx.qty)
  852. INTO :ld_incamt,:ld_incqty
  853. FROM u_inwaremx,u_inware
  854. WHERE u_inwaremx.scid = u_inware.scid
  855. AND u_inwaremx.inwareid = u_inware.inwareid
  856. AND u_inware.storageid = :cur_storageid
  857. AND u_inware.balcdateint = 0
  858. AND u_inwaremx.mtrlid = :ll_mtrlid
  859. AND u_inwaremx.status = :ls_status
  860. AND u_inwaremx.woodcode = :ls_woodcode
  861. AND u_inwaremx.pcode = :ls_pcode
  862. AND u_inwaremx.sptid_cusid = :ll_sptid
  863. And u_inware.flag = 1;
  864. IF sqlca.SQLCode <> 0 THEN
  865. rslt = 0
  866. arg_msg = '查询进仓失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  867. GOTO ext
  868. END IF
  869. SELECT sum(u_outwaremx.costamt) ,
  870. sum(u_outwaremx.qty)
  871. INTO :ld_desamt,:ld_desqty
  872. FROM u_outwaremx,u_outware
  873. WHERE u_outwaremx.scid = u_outware.scid
  874. AND u_outwaremx.outwareid = u_outware.outwareid
  875. AND u_outware.storageid = :cur_storageid
  876. AND u_outware.balcdateint = 0
  877. AND u_outwaremx.mtrlid = :ll_mtrlid
  878. AND u_outwaremx.status = :ls_status
  879. AND u_outwaremx.woodcode = :ls_woodcode
  880. AND u_outwaremx.pcode = :ls_pcode
  881. AND u_outwaremx.sptid = :ll_sptid
  882. And u_outware.flag = 1;
  883. IF sqlca.SQLCode <> 0 THEN
  884. rslt = 0
  885. arg_msg = '查询出仓失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  886. GOTO ext
  887. END IF
  888. IF IsNull(ld_desqty) THEN ld_desqty = 0
  889. IF IsNull(ld_incqty) THEN ld_incqty = 0
  890. IF IsNull(ld_desamt) THEN ld_desamt = 0
  891. IF IsNull(ld_incamt) THEN ld_incamt = 0
  892. UPDATE u_warebalc
  893. SET balcqty = :ld_noallocqty,
  894. balcamt = :ld_wareamt,
  895. bgqty = :ld_noallocqty + :ld_desqty - :ld_incqty,
  896. bgamt = :ld_wareamt + :ld_desamt - :ld_incamt,
  897. incqty = :ld_incqty,
  898. incamt = :ld_incamt,
  899. desqty = :ld_desqty,
  900. desamt = :ld_desamt
  901. WHERE mtrlid = :ll_mtrlid
  902. AND balcdateint = 0
  903. AND Storageid = :cur_storageid
  904. AND status = :ls_status
  905. AND woodcode = :ls_woodcode
  906. AND pcode = :ls_pcode
  907. And sptid_cusid = :ll_sptid;
  908. IF sqlca.SQLCode <> 0 THEN
  909. rslt = 0
  910. arg_msg = '更新结存失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  911. GOTO ext
  912. ELSEIF sqlca.SQLNRows = 0 THEN
  913. INSERT INTO u_warebalc
  914. (scid,
  915. balcdateint,
  916. storageid,
  917. mtrlid,
  918. status,
  919. woodcode,
  920. pcode,
  921. bgqty,
  922. bgamt,
  923. incqty,
  924. incamt,
  925. desqty,
  926. desamt,
  927. balcqty,
  928. balcamt,
  929. sptid_cusid)
  930. VALUES
  931. (:sys_scid,0,
  932. :cur_storageid,
  933. :ll_mtrlid,
  934. :ls_status,
  935. :ls_woodcode,
  936. :ls_pcode,
  937. :ld_noallocqty + :ld_desqty - :ld_incqty,
  938. :ld_wareamt + :ld_desamt - :ld_incamt,
  939. :ld_incqty,
  940. :ld_incamt,
  941. :ld_desqty,
  942. :ld_desamt,
  943. :ld_noallocqty,
  944. :ld_wareamt,
  945. :ll_sptid);
  946. IF sqlca.SQLCode <> 0 THEN
  947. rslt = 0
  948. arg_msg = '新加结存失败,物料:'+ls_mtrlcode+','+sys_option_change_status+':'+ls_status+','+sys_option_change_woodcode+':'+ls_woodcode+','+sys_option_change_pcode+':'+ls_pcode
  949. GOTO ext
  950. END IF
  951. END IF
  952. NEXT
  953. //END IF
  954. ext:
  955. Destroy ds_mtrlware
  956. Close(w_sys_wait_jdt)
  957. IF rslt = 0 THEN
  958. ROLLBACK;
  959. MessageBox('Error',arg_msg)
  960. RETURN
  961. ELSE
  962. COMMIT;
  963. MessageBox('系统提示','重算成功!')
  964. This.TriggerEvent('retrieve_pageretr')
  965. END IF
  966. end event
  967. event ue_update_inware_mtrlwareid();UPDATE u_inwaremx
  968. SET mtrlwareid = u_mtrlware.mtrlwareid
  969. FROM u_inware INNER JOIN
  970. u_inwaremx ON u_inware.scid = u_inwaremx.scid AND
  971. u_inware.inwareid = u_inwaremx.inwareid INNER JOIN
  972. u_mtrlware ON u_inwaremx.scid = u_mtrlware.scid AND
  973. u_inwaremx.mtrlid = u_mtrlware.mtrlid AND
  974. u_inwaremx.plancode = u_mtrlware.plancode AND
  975. u_inwaremx.status = u_mtrlware.Status AND
  976. u_inwaremx.woodcode = u_mtrlware.woodcode AND
  977. u_inwaremx.pcode = u_mtrlware.pcode AND
  978. u_inwaremx.sptid_cusid = u_mtrlware.Sptid AND
  979. u_inware.storageid = u_mtrlware.storageid AND
  980. u_inware.Dxflag = u_mtrlware.Dxflag
  981. Where (u_inware.flag = 1) And (u_inwaremx.mtrlwareid = 0);
  982. IF sqlca.SQLCode <> 0 THEN
  983. ROLLBACK;
  984. MessageBox('','失败')
  985. ELSE
  986. COMMIT;
  987. MessageBox('','成功')
  988. END IF
  989. end event
  990. public subroutine wf_hidecol ();s_hide_col s_col
  991. s_col.col_1 = 'u_mtrldef_bgamt'
  992. s_col.col_2 = 'u_mtrldef_incamt'
  993. s_col.col_3 = 'u_mtrldef_desamt'
  994. s_col.col_4 = 'u_mtrldef_balcamt'
  995. f_hide_col(123,dw_1,s_col)
  996. end subroutine
  997. public function window getparentwindow ();return this
  998. end function
  999. on w_warebalc_view_new.create
  1000. int iCurrent
  1001. call super::create
  1002. this.tv_1=create tv_1
  1003. this.st_2=create st_2
  1004. this.ddlb_storageid=create ddlb_storageid
  1005. this.cb_other=create cb_other
  1006. this.st_1=create st_1
  1007. this.em_month=create em_month
  1008. this.st_lastbalcdate=create st_lastbalcdate
  1009. this.ddlb_1=create ddlb_1
  1010. this.cb_balc=create cb_balc
  1011. iCurrent=UpperBound(this.Control)
  1012. this.Control[iCurrent+1]=this.tv_1
  1013. this.Control[iCurrent+2]=this.st_2
  1014. this.Control[iCurrent+3]=this.ddlb_storageid
  1015. this.Control[iCurrent+4]=this.cb_other
  1016. this.Control[iCurrent+5]=this.st_1
  1017. this.Control[iCurrent+6]=this.em_month
  1018. this.Control[iCurrent+7]=this.st_lastbalcdate
  1019. this.Control[iCurrent+8]=this.ddlb_1
  1020. this.Control[iCurrent+9]=this.cb_balc
  1021. end on
  1022. on w_warebalc_view_new.destroy
  1023. call super::destroy
  1024. destroy(this.tv_1)
  1025. destroy(this.st_2)
  1026. destroy(this.ddlb_storageid)
  1027. destroy(this.cb_other)
  1028. destroy(this.st_1)
  1029. destroy(this.em_month)
  1030. destroy(this.st_lastbalcdate)
  1031. destroy(this.ddlb_1)
  1032. destroy(this.cb_balc)
  1033. end on
  1034. event resize;call super::resize;//IF cbx_inout.Checked THEN
  1035. // tab_1.Visible = TRUE
  1036. //
  1037. // dw_1.Width = THIS.Width - dw_1.X - 40
  1038. // dw_1.Height = THIS.Height - dw_1.Y - tab_1.Height - 150
  1039. //
  1040. // tv_1.Height = THIS.Height - tv_1.Y - 150
  1041. //
  1042. //
  1043. //
  1044. // tab_1.Width = THIS.Width - tab_1.X - 40
  1045. //
  1046. // tab_1.Y = dw_1.Y + dw_1.Height + 10
  1047. // tab_1.X = dw_1.X
  1048. // tab_1.tabpage_1.dw_inout.Height = tab_1.tabpage_1.Height - tab_1.tabpage_1.dw_inout.Y - 40
  1049. // tab_1.tabpage_1.dw_inout.Width = tab_1.tabpage_1.Width - tab_1.tabpage_1.dw_inout.X - 40
  1050. // tab_1.tabpage_2.dw_out_noaudit.Height = tab_1.tabpage_2.Height - tab_1.tabpage_2.dw_out_noaudit.Y - 40
  1051. // tab_1.tabpage_2.dw_out_noaudit.Width = tab_1.tabpage_2.Width - tab_1.tabpage_2.dw_out_noaudit.X - 40
  1052. //ELSE
  1053. dw_1.Width = THIS.Width - dw_1.X - 40
  1054. dw_1.Height = THIS.Height - dw_1.Y - 150
  1055. tv_1.Height = THIS.Height - tv_1.Y - 150
  1056. // tab_1.Visible = FALSE
  1057. //
  1058. //END IF
  1059. end event
  1060. event ue_before_open;call super::ue_before_open;//cbx_1.visible = false
  1061. //cbx_inout.visible = false
  1062. ins_if_info = Long(f_ProfileString (sys_empid,This.ClassName(), "ins_if_info",'0'))
  1063. IF ins_if_info = 1 THEN
  1064. This.PostEvent('ue_mtrl_info')
  1065. END IF
  1066. end event
  1067. event ue_before_openretrieve;call super::ue_before_openretrieve;//tab_1.tabpage_1.dw_inout.settransobject(sqlca)
  1068. //tab_1.tabpage_2.dw_out_noaudit.settransobject(sqlca)
  1069. end event
  1070. event close;call super::close;IF IsValid(w_mtrl_info) THEN
  1071. ins_if_info = 1
  1072. ELSE
  1073. ins_if_info = 0
  1074. END IF
  1075. f_SetProfileString (sys_empid,This.ClassName(),"ins_if_info",String(ins_if_info))
  1076. end event
  1077. type cb_func from w_publ_easyq`cb_func within w_warebalc_view_new
  1078. end type
  1079. type cb_exit from w_publ_easyq`cb_exit within w_warebalc_view_new
  1080. integer x = 1536
  1081. end type
  1082. type cb_2 from w_publ_easyq`cb_2 within w_warebalc_view_new
  1083. integer x = 1234
  1084. boolean bringtotop = true
  1085. end type
  1086. type cb_psetup from w_publ_easyq`cb_psetup within w_warebalc_view_new
  1087. integer x = 978
  1088. boolean bringtotop = true
  1089. end type
  1090. type cb_1 from w_publ_easyq`cb_1 within w_warebalc_view_new
  1091. boolean bringtotop = true
  1092. end type
  1093. event cb_1::clicked;parent.triggerevent("retrieve_pageretr")
  1094. end event
  1095. type st_3 from w_publ_easyq`st_3 within w_warebalc_view_new
  1096. boolean visible = false
  1097. integer x = 690
  1098. integer y = 204
  1099. end type
  1100. type st_4 from w_publ_easyq`st_4 within w_warebalc_view_new
  1101. boolean visible = false
  1102. integer x = 1381
  1103. integer y = 204
  1104. end type
  1105. type em_1 from w_publ_easyq`em_1 within w_warebalc_view_new
  1106. boolean visible = false
  1107. integer x = 882
  1108. integer y = 188
  1109. integer taborder = 120
  1110. end type
  1111. type em_2 from w_publ_easyq`em_2 within w_warebalc_view_new
  1112. boolean visible = false
  1113. integer x = 1486
  1114. integer y = 188
  1115. integer taborder = 130
  1116. end type
  1117. type ddlb_yl from w_publ_easyq`ddlb_yl within w_warebalc_view_new
  1118. integer x = 2071
  1119. integer y = 8
  1120. end type
  1121. type cbx_yl from w_publ_easyq`cbx_yl within w_warebalc_view_new
  1122. integer x = 1861
  1123. integer y = 12
  1124. end type
  1125. type dw_1 from w_publ_easyq`dw_1 within w_warebalc_view_new
  1126. integer x = 805
  1127. integer y = 300
  1128. integer width = 2400
  1129. integer height = 988
  1130. string dataobject = "dw_warebalc_view_sum"
  1131. end type
  1132. event dw_1::doubleclicked;call super::doubleclicked;IF dwo.Name = 'u_mtrlware_waredscrp' THEN
  1133. Parent.TriggerEvent('ue_waredscrp_view')
  1134. END IF
  1135. end event
  1136. event dw_1::rowfocuschanged;call super::rowfocuschanged;Parent.TriggerEvent('ue_retrieve_info')
  1137. //IF cbx_inout.Checked THEN
  1138. // Parent.TriggerEvent('ue_retrieve_inoutmx')
  1139. //END IF
  1140. end event
  1141. type sle_mtrl from w_publ_easyq`sle_mtrl within w_warebalc_view_new
  1142. end type
  1143. type sle_cust from w_publ_easyq`sle_cust within w_warebalc_view_new
  1144. end type
  1145. type st_mtrl from w_publ_easyq`st_mtrl within w_warebalc_view_new
  1146. end type
  1147. type st_cust from w_publ_easyq`st_cust within w_warebalc_view_new
  1148. end type
  1149. type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_warebalc_view_new
  1150. boolean visible = true
  1151. integer x = 1861
  1152. integer y = 100
  1153. end type
  1154. type pb_em1 from w_publ_easyq`pb_em1 within w_warebalc_view_new
  1155. boolean visible = false
  1156. integer x = 1298
  1157. integer y = 188
  1158. end type
  1159. type pb_em2 from w_publ_easyq`pb_em2 within w_warebalc_view_new
  1160. boolean visible = false
  1161. integer x = 1897
  1162. integer y = 188
  1163. end type
  1164. type pb_2 from w_publ_easyq`pb_2 within w_warebalc_view_new
  1165. boolean visible = false
  1166. integer x = 2007
  1167. integer y = 188
  1168. end type
  1169. type cb_help from w_publ_easyq`cb_help within w_warebalc_view_new
  1170. integer x = 1385
  1171. end type
  1172. type cb_copyself from w_publ_easyq`cb_copyself within w_warebalc_view_new
  1173. integer x = 722
  1174. end type
  1175. type gb_1 from w_publ_easyq`gb_1 within w_warebalc_view_new
  1176. end type
  1177. type ln_bar from w_publ_easyq`ln_bar within w_warebalc_view_new
  1178. end type
  1179. type ln_bar2 from w_publ_easyq`ln_bar2 within w_warebalc_view_new
  1180. end type
  1181. type r_bar from w_publ_easyq`r_bar within w_warebalc_view_new
  1182. integer x = 2272
  1183. end type
  1184. type ln_1 from w_publ_easyq`ln_1 within w_warebalc_view_new
  1185. end type
  1186. type ln_2 from w_publ_easyq`ln_2 within w_warebalc_view_new
  1187. end type
  1188. type ln_3 from w_publ_easyq`ln_3 within w_warebalc_view_new
  1189. boolean visible = false
  1190. end type
  1191. type ln_4 from w_publ_easyq`ln_4 within w_warebalc_view_new
  1192. boolean visible = false
  1193. end type
  1194. type tv_1 from uo_tv_mtrltype within w_warebalc_view_new
  1195. integer y = 300
  1196. integer width = 800
  1197. integer height = 1808
  1198. integer taborder = 130
  1199. boolean bringtotop = true
  1200. integer textsize = -9
  1201. fontcharset fontcharset = gb2312charset!
  1202. fontfamily fontfamily = anyfont!
  1203. string facename = "宋体"
  1204. end type
  1205. event selectionchanged;call super::selectionchanged;ls_handtype = THIS.uo_cur_info.handtype
  1206. ls_mtrltype = THIS.uo_cur_info.mtrltype
  1207. IF ls_handtype <> '' THEN
  1208. ls_mtrltype = '%'+ls_handtype+'%'
  1209. ls_handtype = ls_handtype+'%'
  1210. ELSE
  1211. ls_mtrltype = ""
  1212. END IF
  1213. PARENT.TriggerEvent('retrieve_pageretr')
  1214. end event
  1215. type st_2 from statictext within w_warebalc_view_new
  1216. integer x = 5
  1217. integer y = 212
  1218. integer width = 192
  1219. integer height = 48
  1220. boolean bringtotop = true
  1221. integer textsize = -9
  1222. integer weight = 400
  1223. fontcharset fontcharset = gb2312charset!
  1224. fontpitch fontpitch = variable!
  1225. string facename = "宋体"
  1226. long textcolor = 33554432
  1227. long backcolor = 134217739
  1228. string text = "仓库:"
  1229. alignment alignment = right!
  1230. boolean focusrectangle = false
  1231. end type
  1232. type ddlb_storageid from uo_ddlb_storageid within w_warebalc_view_new
  1233. integer x = 206
  1234. integer y = 188
  1235. integer width = 635
  1236. integer height = 1232
  1237. integer taborder = 130
  1238. boolean bringtotop = true
  1239. end type
  1240. event constructor;call super::constructor;cur_storageid = this.uo_storageid
  1241. cur_storageid_arr = this.uo_storageid_arr
  1242. end event
  1243. event selectionchanged;call super::selectionchanged;cur_storageid = this.uo_storageid
  1244. cur_storageid_arr = this.uo_storageid_arr
  1245. cb_1.triggerevent(clicked!)
  1246. end event
  1247. type cb_other from uo_imflatbutton within w_warebalc_view_new
  1248. integer x = 466
  1249. integer width = 256
  1250. integer height = 164
  1251. integer taborder = 30
  1252. boolean bringtotop = true
  1253. string text = "辅助功能"
  1254. string normalpicname = "other.BMP"
  1255. integer picsize = 16
  1256. toolbaralignment pic_align = alignattop!
  1257. boolean border = false
  1258. end type
  1259. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1260. String menustr
  1261. menustr = "Text=按上期结存重算本期结余~tEvent=ue_cmp_amt2"
  1262. menustr = menustr + "|" + "Text=按库存数重算本期期初~tEvent=ue_cmp_mtrlware"
  1263. menustr = menustr + "|" + "Text=超级重算~tEvent=ue_cmp"
  1264. menustr = menustr + "|" + "Text=-"
  1265. menustr = menustr + "|" + "Text=更新进仓单明细库存ID~tEvent=ue_update_inware_mtrlwareid"
  1266. menustr = menustr + "|" + "Text=物料相关查询~tEvent=ue_mtrl_info"
  1267. IF Len(Trim(menustr)) <> 0 THEN
  1268. dmPopupMenu = CREATE m_Dfc_Control_PopupMenu
  1269. dmPopupMenu.mf_BuildMenu(THIS, menustr)
  1270. dmPopupMenu.mf_PopMenu()
  1271. DESTROY dmPopupMenu
  1272. END IF
  1273. end event
  1274. type st_1 from statictext within w_warebalc_view_new
  1275. integer x = 901
  1276. integer y = 212
  1277. integer width = 242
  1278. integer height = 48
  1279. boolean bringtotop = true
  1280. integer textsize = -9
  1281. integer weight = 400
  1282. fontcharset fontcharset = gb2312charset!
  1283. fontpitch fontpitch = variable!
  1284. string facename = "宋体"
  1285. long textcolor = 33554432
  1286. long backcolor = 134217739
  1287. string text = "结存日期"
  1288. alignment alignment = right!
  1289. boolean focusrectangle = false
  1290. end type
  1291. type em_month from editmask within w_warebalc_view_new
  1292. integer x = 1152
  1293. integer y = 188
  1294. integer width = 434
  1295. integer height = 88
  1296. integer taborder = 130
  1297. boolean bringtotop = true
  1298. integer textsize = -9
  1299. integer weight = 400
  1300. fontcharset fontcharset = gb2312charset!
  1301. fontpitch fontpitch = variable!
  1302. string facename = "宋体"
  1303. long textcolor = 33554432
  1304. string text = "none"
  1305. alignment alignment = center!
  1306. borderstyle borderstyle = stylelowered!
  1307. maskdatatype maskdatatype = datemask!
  1308. string mask = "yyyy-mm-dd"
  1309. boolean spin = true
  1310. end type
  1311. event constructor;this.text = string(today(),'yyyy-mm-dd')
  1312. end event
  1313. event rbuttondown;s_calender_arg s_calender
  1314. s_calender.PointerX = THIS.PointerX()
  1315. s_calender.PointerY = THIS.PointerY()
  1316. s_calender.X = THIS.X
  1317. s_calender.Y = THIS.Y
  1318. OpenWithParm(w_calendar,s_calender)
  1319. THIS.Text = String(id_date_selected)
  1320. end event
  1321. type st_lastbalcdate from statictext within w_warebalc_view_new
  1322. integer x = 1678
  1323. integer y = 212
  1324. integer width = 823
  1325. integer height = 48
  1326. boolean bringtotop = true
  1327. integer textsize = -9
  1328. integer weight = 400
  1329. fontcharset fontcharset = gb2312charset!
  1330. fontpitch fontpitch = variable!
  1331. string facename = "宋体"
  1332. long textcolor = 33554432
  1333. long backcolor = 134217739
  1334. string text = "最后结存日期"
  1335. boolean focusrectangle = false
  1336. end type
  1337. type ddlb_1 from dropdownlistbox within w_warebalc_view_new
  1338. integer x = 2427
  1339. integer y = 32
  1340. integer width = 745
  1341. integer height = 1100
  1342. integer taborder = 100
  1343. boolean bringtotop = true
  1344. integer textsize = -9
  1345. integer weight = 400
  1346. fontcharset fontcharset = gb2312charset!
  1347. fontpitch fontpitch = variable!
  1348. string facename = "宋体"
  1349. long textcolor = 33554432
  1350. string text = "汇总统计表"
  1351. boolean sorted = false
  1352. boolean vscrollbar = true
  1353. string item[] = {"汇总统计表","产品明细统计表","客户产品统计表","分类统计表","汇总统计表(设定售价)"}
  1354. borderstyle borderstyle = stylelowered!
  1355. end type
  1356. event selectionchanged;dw_1.SetRedraw(False)
  1357. dw_1.uf_save_profile_layout()
  1358. IF this.Text = '客户产品统计表' THEN
  1359. dw_1.DataObject = 'dw_warebalc_view'
  1360. ELSEIF this.Text = '产品明细统计表' THEN
  1361. dw_1.DataObject = 'dw_warebalc_view_sum_1'
  1362. ELSEIF this.Text = '汇总统计表' THEN
  1363. dw_1.DataObject = 'dw_warebalc_view_sum'
  1364. ELSEIF this.Text = '分类统计表' THEN
  1365. dw_1.DataObject = 'dw_warebalc_view_2'
  1366. ELSEIF this.Text = '汇总统计表(设定售价)' THEN
  1367. dw_1.DataObject = 'dw_warebalc_view_sum_saleprice'
  1368. END IF
  1369. dw_1.SetTransObject(sqlca)
  1370. dw_1.ins_INIfile_name = sys_inifilename
  1371. dw_1.ins_opemp = publ_operator
  1372. dw_1.cardw_empid = sys_empid
  1373. dw_1.cur_DataObject = dw_1.DataObject
  1374. dw_1.uf_read_profile_layout()
  1375. wf_hidecol()
  1376. f_title_change(dw_1)
  1377. dw_1.SetRedraw(True)
  1378. cb_1.TriggerEvent(Clicked!)
  1379. end event
  1380. type cb_balc from uo_imflatbutton within w_warebalc_view_new
  1381. integer x = 302
  1382. integer width = 165
  1383. integer height = 164
  1384. integer taborder = 30
  1385. boolean bringtotop = true
  1386. string text = "结存"
  1387. string normalpicname = "update2.BMP"
  1388. integer picsize = 16
  1389. toolbaralignment pic_align = alignattop!
  1390. boolean border = false
  1391. end type
  1392. event clicked;call super::clicked;IF NOT f_power_ind(75) THEN
  1393. MessageBox('提示','你没有使用权限!',information!,ok!)
  1394. RETURN
  1395. END IF
  1396. IF cur_storageid = -1 THEN
  1397. MessageBox("提示","请选择仓库结存",information!,ok!)
  1398. RETURN
  1399. END IF
  1400. balcdate = DateTime(Date(em_month.Text),Time('23:59:59'))
  1401. IF MessageBox ('询问',"是否确定要把当前日仓库进行结存操作吗?"+'~n'+&
  1402. '结存时间: '+String(balcdate,'YYYY-MM-DD HH:MM:SS')+',结存过程中不能进行其它操作!',Question!,YesNo! ) = 2 THEN RETURN
  1403. w_sys_wait.Show()
  1404. String arg_msg = '',err_msg = ''
  1405. uf_warebalc(1,0,cur_storageid,balcdate,arg_msg)
  1406. w_sys_wait.Hide()
  1407. MessageBox('提示',arg_msg,information!,ok!)
  1408. cb_1.TriggerEvent(Clicked!)
  1409. end event