w_ware_pdb.srw 65 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635
  1. $PBExportHeader$w_ware_pdb.srw
  2. forward
  3. global type w_ware_pdb from w_publ_easyq
  4. end type
  5. type st_1 from statictext within w_ware_pdb
  6. end type
  7. type em_3 from editmask within w_ware_pdb
  8. end type
  9. type st_2 from statictext within w_ware_pdb
  10. end type
  11. type cb_3 from uo_imflatbutton within w_ware_pdb
  12. end type
  13. type cb_edit from uo_imflatbutton within w_ware_pdb
  14. end type
  15. type cb_del from uo_imflatbutton within w_ware_pdb
  16. end type
  17. type cb_5 from uo_imflatbutton within w_ware_pdb
  18. end type
  19. type st_5 from statictext within w_ware_pdb
  20. end type
  21. type cb_mx from uo_imflatbutton within w_ware_pdb
  22. end type
  23. type ddlb_storageid from uo_ddlb_storageid within w_ware_pdb
  24. end type
  25. type ddlb_1 from dropdownlistbox within w_ware_pdb
  26. end type
  27. type tv_1 from uo_tv_mtrltype within w_ware_pdb
  28. end type
  29. type cb_audit from uo_imflatbutton within w_ware_pdb
  30. end type
  31. type cb_caudit from uo_imflatbutton within w_ware_pdb
  32. end type
  33. type cb_8 from uo_imflatbutton within w_ware_pdb
  34. end type
  35. type p_resize from picture within w_ware_pdb
  36. end type
  37. type cbx_1 from checkbox within w_ware_pdb
  38. end type
  39. type cbx_packqty_cmpl from checkbox within w_ware_pdb
  40. end type
  41. type dw_2 from datawindow within w_ware_pdb
  42. end type
  43. end forward
  44. global type w_ware_pdb from w_publ_easyq
  45. integer width = 3611
  46. integer height = 2380
  47. string title = "盘点表"
  48. boolean resizable = false
  49. event ue_f8 ( )
  50. event ue_copy_qty ( )
  51. event ue_copy_addqty ( )
  52. event ue_delmx ( )
  53. event ue_create_outware_scll ( )
  54. event ue_audit ( )
  55. event ue_audit_c ( )
  56. event ue_update_scllflag ( )
  57. event ue_set_dytitle ( )
  58. event ue_insert_execltodw ( )
  59. event ue_sentdataout_ware ( )
  60. st_1 st_1
  61. em_3 em_3
  62. st_2 st_2
  63. cb_3 cb_3
  64. cb_edit cb_edit
  65. cb_del cb_del
  66. cb_5 cb_5
  67. st_5 st_5
  68. cb_mx cb_mx
  69. ddlb_storageid ddlb_storageid
  70. ddlb_1 ddlb_1
  71. tv_1 tv_1
  72. cb_audit cb_audit
  73. cb_caudit cb_caudit
  74. cb_8 cb_8
  75. p_resize p_resize
  76. cbx_1 cbx_1
  77. cbx_packqty_cmpl cbx_packqty_cmpl
  78. dw_2 dw_2
  79. end type
  80. global w_ware_pdb w_ware_pdb
  81. type variables
  82. Long cur_storageid = 0
  83. Long cur_storageid_arr[]
  84. String ins_pdbdate = ''
  85. boolean ins_dispmtrltype
  86. String ls_handtype = ''
  87. int ii_packqty_cmpl
  88. end variables
  89. forward prototypes
  90. public function integer wf_face ()
  91. public function integer wf_instorage ()
  92. public subroutine wf_del ()
  93. public function integer wf_init_pdb ()
  94. public function integer wf_check_ifmtrlware (ref string arg_msg)
  95. public subroutine wf_face_change ()
  96. public function integer wf_openfile (datawindow arg_dw)
  97. end prototypes
  98. event ue_f8();IF NOT dw_edit_mode THEN RETURN
  99. Long child_row
  100. String ls_storagename = ''
  101. Long ls_warepdbid
  102. child_row = dw_1.GetRow()
  103. IF cur_storageid = 0 OR IsNull(cur_storageid) THEN
  104. MessageBox('提示','请先选择仓库',information!,ok!)
  105. RETURN
  106. END IF
  107. IF ins_pdbdate = '' OR IsNull(ins_pdbdate) THEN
  108. MessageBox('提示','请先选择盘点日',information!,ok!)
  109. RETURN
  110. END IF
  111. SELECT storagename
  112. INTO :ls_storagename
  113. FROM u_storage
  114. Where storageid = :cur_storageid USING sqlca;
  115. IF sqlca.SQLCode <> 0 THEN
  116. MessageBox('错误','查询仓库操作失败!',stopsign!,ok!)
  117. RETURN
  118. END IF
  119. IF NOT IsValid(w_add_mtrlware) THEN
  120. s_edit_index_tran s_ch_tran //传递参数使用
  121. s_ch_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  122. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  123. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  124. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  125. s_ch_tran.if_select_all = TRUE
  126. s_ch_tran.b_long = -1
  127. s_ch_tran.c_long = cur_storageid
  128. OpenWithParm(w_add_mtrlware,s_ch_tran)
  129. s_mtrlware_noalloc_array S_INSCUST
  130. S_INSCUST = Message.PowerObjectParm
  131. IF UpperBound(S_INSCUST.mtrlwareid[]) > 0 THEN
  132. IF S_INSCUST.mtrlwareid[1] > 0 THEN
  133. child_row = dw_1.InsertRow( 0)
  134. dw_1.Object.u_warepdb_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[1]
  135. dw_1.Object.mtrlid[child_row] = S_INSCUST.mtrlid[1]
  136. dw_1.Object.u_warepdb_plancode[child_row] = S_INSCUST.plancode[1]
  137. dw_1.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[1]
  138. dw_1.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[1]
  139. dw_1.Object.u_warepdb_storageid[child_row] = cur_storageid
  140. dw_1.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[1]
  141. dw_1.Object.u_warepdb_status[child_row] = S_INSCUST.status[1]
  142. dw_1.Object.u_warepdb_woodcode[child_row] = S_INSCUST.woodcode[1]
  143. dw_1.Object.u_warepdb_pcode[child_row] = S_INSCUST.pcode[1]
  144. dw_1.Object.u_storage_storagename[child_row]= ls_storagename
  145. dw_1.Object.factqty[child_row] = S_INSCUST.noallocqty[1]
  146. dw_1.Object.u_warepdb_factaddqty[child_row] = S_INSCUST.allocqty[1]
  147. dw_1.Object.u_warepdb_pdbdate[child_row] = ins_pdbdate
  148. dw_1.Object.u_warepdb_cost[child_row] = S_INSCUST.cost[1]
  149. dw_1.Object.u_warepdb_Sptid[child_row] = S_INSCUST.sptid[1]
  150. dw_1.Object.sptcode[child_row] = S_INSCUST.sptcode[1]
  151. dw_1.Object.sptname[child_row] = S_INSCUST.sptname[1]
  152. END IF
  153. END IF
  154. dw_1.SetFocus()
  155. END IF
  156. end event
  157. event ue_copy_qty();IF dw_edit_mode THEN
  158. IF MessageBox ("询问","是否要复制盘点数量等于库存数量?",question!,yesno! ) = 2 THEN RETURN
  159. dw_1.accepttext()
  160. long i
  161. for i = 1 to dw_1.rowcount()
  162. dw_1.object.factqty[i] = dw_1.object.qty[i]
  163. next
  164. END IF
  165. end event
  166. event ue_copy_addqty();IF dw_edit_mode THEN
  167. IF MessageBox ("询问","是否要复制盘点辅数等于库存辅数?",question!,yesno! ) = 2 THEN RETURN
  168. dw_1.accepttext()
  169. long i
  170. for i = 1 to dw_1.rowcount()
  171. dw_1.object.u_warepdb_factaddqty[i] = dw_1.object.u_warepdb_addqty[i]
  172. next
  173. END IF
  174. end event
  175. event ue_delmx();IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN
  176. IF dw_1.GETROW()=0 THEN
  177. MESSAGEBOX('提示','请选择删除的行对象!',information!,ok!)
  178. RETURN
  179. END IF
  180. dw_1.DeleteRow (0)
  181. dw_1.TriggerEvent (rowfocuschanged!)
  182. end event
  183. event ue_create_outware_scll();////无用了
  184. //IF Not f_power_ind(246) THEN
  185. // MessageBox('提示','你没有使用权限!',information!,ok!)
  186. // RETURN
  187. //END IF
  188. //
  189. //Int rslt = 1
  190. //Long i
  191. //String arg_msg
  192. //Int cnt = 0
  193. //Decimal ld_cost
  194. //String ls_unit
  195. //
  196. //String ls_outwarecode
  197. //Long ll_printid
  198. //Long ls_wrkgrpid
  199. //Long ls_mtrlwareid,ls_scid,ls_mtrlid,ls_scllflag //,ls_storageid,ls_dxflag,ls_warepdbid,ls_sptid
  200. //String ls_mtrlcode
  201. ////String ls_plancode
  202. ////String ls_status,ls_woodcode,ls_pcode
  203. ////Decimal ls_qty
  204. //String ls_dscrp
  205. //
  206. //IF MessageBox ("询问","是否要辅助生成领料单?",question!,yesno! ) = 2 THEN RETURN
  207. //
  208. //dw_1.SetRedraw( FALSE )
  209. //dw_1.SetFilter('')
  210. //dw_1.Filter()
  211. //dw_1.SetRedraw( TRUE )
  212. //
  213. //IF cur_storageid <= 0 THEN
  214. // arg_msg = '请选择要盘点的仓库'
  215. // rslt = 0
  216. // GOTO ext
  217. //END IF
  218. //
  219. //IF ins_pdbdate = '' THEN
  220. // arg_msg = '请选择盘点日'
  221. // rslt = 0
  222. // GOTO ext
  223. //END IF
  224. //
  225. //SELECT count(*)
  226. // INTO :cnt
  227. // FROM u_warepdb
  228. // Where u_warepdb.storageid = :cur_storageid
  229. // And u_warepdb.pdbdate = :ins_pdbdate
  230. // And flag = 0 Using sqlca;
  231. //IF sqlca.SQLCode < 0 THEN
  232. // arg_msg = '查询操作失败,在盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!'
  233. // rslt = 0
  234. // GOTO ext
  235. //ELSE
  236. // IF cnt <= 0 THEN
  237. // arg_msg = '盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核!'
  238. // rslt = 0
  239. // GOTO ext
  240. // END IF
  241. //END IF
  242. //
  243. //
  244. //
  245. //SELECT scid INTO :ls_scid
  246. // FROM u_storage
  247. // Where storageid = :cur_storageid;
  248. //IF sqlca.SQLCode <> 0 THEN
  249. // arg_msg = '盘点日:'+'查询仓库所属分部失败'
  250. // rslt = 0
  251. // GOTO ext
  252. //END IF
  253. //
  254. //SELECT top 1 wrkgrpid INTO :ls_wrkgrpid
  255. // From u_sc_workgroup;
  256. //IF sqlca.SQLCode <> 0 THEN
  257. // arg_msg = '盘点日:'+'查询工组失败'
  258. // rslt = 0
  259. // GOTO ext
  260. //END IF
  261. //
  262. //ls_dscrp = '盘点日:'+String(ins_pdbdate)+',盘亏辅助生成领料单'
  263. //
  264. //cnt = 0
  265. //SELECT top 1 outwareid , outwarecode
  266. // INTO :cnt, :ls_outwarecode
  267. // FROM u_outware
  268. // WHERE storageid = :cur_storageid
  269. // AND dscrp = :ls_dscrp
  270. // And billtype = 3;
  271. //IF sqlca.SQLCode <> 0 THEN
  272. // cnt = 0
  273. //END IF
  274. //
  275. //IF cnt > 0 THEN
  276. // IF MessageBox ("系统提示","已经建立相关领料单,单号["+ls_outwarecode+"],是否继续生成?",question!,yesno! ) = 2 THEN RETURN
  277. //END IF
  278. //
  279. //uo_outware uo_ware_scll
  280. //uo_ware_scll = Create uo_outware
  281. //uo_ware_scll.commit_transaction = sqlca
  282. //uo_ware_scll.if_getid_ture = False
  283. //
  284. //IF uo_ware_scll.newbegin(ls_scid,3,arg_msg) = 0 THEN
  285. // rslt = 0
  286. // GOTO ext
  287. //END IF
  288. //
  289. //
  290. //uo_ware_scll.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0))
  291. //uo_ware_scll.outrep = publ_operator
  292. //uo_ware_scll.part = ''
  293. //uo_ware_scll.dscrp = ls_dscrp
  294. //uo_ware_scll.storageid = cur_storageid
  295. //uo_ware_scll.relid = ls_wrkgrpid
  296. //
  297. //
  298. //Open(w_sys_wait_jdt) //初始化进度条
  299. //w_sys_wait_jdt.Show()
  300. //w_sys_wait_jdt.wf_accepttol(dw_1.RowCount()) //初始化进度条1
  301. //
  302. //
  303. //
  304. //FOR i = 1 To dw_1.RowCount()
  305. // ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i]
  306. // ls_unit = dw_1.Object.u_mtrldef_unit[i]
  307. // w_sys_wait_jdt.st_msg.Text = "处理:"+ls_mtrlcode //进度信息
  308. // w_sys_wait_jdt.wf_inc(i) //进度
  309. //
  310. // ls_mtrlwareid = dw_1.Object.u_warepdb_mtrlwareid[i]
  311. // ls_mtrlid = dw_1.Object.mtrlid[i]
  312. // // ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i]
  313. //
  314. //
  315. // // ls_plancode = dw_1.Object.u_warepdb_plancode[i]
  316. // // ls_dxflag = dw_1.Object.u_warepdb_dxflag[i]
  317. // // ls_sptid= dw_1.Object.u_warepdb_sptid[i]
  318. //
  319. // // ls_status = dw_1.Object.u_warepdb_status[i]
  320. // // ls_woodcode = dw_1.Object.u_warepdb_woodcode[i]
  321. // // ls_pcode = dw_1.Object.u_warepdb_pcode[i]
  322. //
  323. // // ls_qty = dw_1.Object.qty[i]
  324. //
  325. // ls_scllflag = dw_1.Object.u_warepdb_scllflag[i]
  326. //
  327. // IF ls_scllflag = 0 Or ls_mtrlid = 0 Or ls_mtrlwareid = 0 THEN CONTINUE
  328. //
  329. // IF dw_1.Object.pypkqty[i] < 0 THEN //只有盘亏的才生成领料单
  330. // ll_printid++
  331. // IF uo_ware_scll.acceptmx(ls_mtrlwareid,&
  332. // Abs(dw_1.Object.pypkqty[i]),&
  333. // Abs(dw_1.Object.pypkaddqty[i]),&
  334. // ld_cost,&
  335. // 1,&
  336. // '',&
  337. // ll_printid,&
  338. // arg_msg,0,0,0,0,0,0,0,&
  339. // dw_1.Object.u_mtrldef_unit[i],1,'','') = 0 THEN
  340. // arg_msg = "行["+String(i)+"],"+arg_msg
  341. // rslt = 0
  342. // GOTO ext
  343. // END IF
  344. // END IF
  345. //
  346. //NEXT
  347. //
  348. //
  349. //
  350. //IF uo_ware_scll.Save(False,arg_msg) = 0 THEN
  351. // rslt = 0
  352. // GOTO ext
  353. //END IF
  354. //
  355. //
  356. //IF uo_ware_scll.getinfo(ls_scid,uo_ware_scll.outwareid,arg_msg) = 0 THEN
  357. // rslt = 0
  358. // GOTO ext
  359. //END IF
  360. //
  361. //IF uo_ware_scll.auditing(False,arg_msg) = 0 THEN
  362. // rslt = 0
  363. // GOTO ext
  364. //END IF
  365. //
  366. //ext:
  367. //IF rslt = 0 THEN
  368. // ROLLBACK;
  369. //ELSE
  370. // arg_msg = '生成领料单成功!领料单号['+uo_ware_scll.outwarecode+']'
  371. // COMMIT;
  372. //END IF
  373. //
  374. //Close(w_sys_wait_jdt)
  375. //
  376. //Destroy uo_ware_scll
  377. //MessageBox('提示',arg_msg,information!,ok!)
  378. //
  379. //
  380. //
  381. //
  382. //
  383. //
  384. //
  385. //
  386. //
  387. //
  388. //
  389. //
  390. //
  391. //
  392. //
  393. end event
  394. event ue_audit();IF Not f_power_ind(1034) THEN
  395. MessageBox('提示','你没有使用权限!',information!,ok!)
  396. RETURN
  397. END IF
  398. Int rslt = 1
  399. Long i,ls_storageid,ls_warepdbid,ls_mtrlid
  400. String arg_msg
  401. Long cnt = 0
  402. Decimal ld_cost,ld_cost_mtrlware, ld_cost_pdb
  403. String ls_status,ls_plancode,ls_mtrlcode,ls_unit
  404. Long ll_scid,ls_dxflag, ll_wrkgrpid
  405. Long ls_mtrlwareid,ls_sptid
  406. String ls_woodcode,ls_pcode
  407. Decimal ls_planprice,ls_qty
  408. Int li_mtrlprp, li_ifbalc
  409. String ld_waredscrp
  410. DateTime ld_inworkdate
  411. DateTime ldt_balcdate
  412. string ls_u_warepdb_waredscrp
  413. dw_1.AcceptText()
  414. ldt_balcdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(23:59:59))
  415. IF cur_storageid <= 0 THEN
  416. arg_msg = '请选择要盘点的仓库'
  417. rslt = 0
  418. GOTO ext
  419. END IF
  420. IF ins_pdbdate = '' THEN
  421. arg_msg = '请选择盘点日'
  422. rslt = 0
  423. GOTO ext
  424. END IF
  425. SELECT scid, mtrlprp, ifbalc
  426. INTO :ll_scid, :li_mtrlprp, :li_ifbalc
  427. FROM u_storage
  428. Where storageid = :cur_storageid;
  429. IF sqlca.SQLCode <> 0 THEN
  430. arg_msg = '查询仓库所属分部失败'
  431. rslt = 0
  432. GOTO ext
  433. END IF
  434. IF li_ifbalc = 0 THEN
  435. IF MessageBox ("询问","是否确定要审核当前盘点?",question!,yesno! ) = 2 THEN RETURN
  436. ELSE
  437. IF MessageBox ("询问","是否确定要审核当前盘点并且按盘点日期自动结存当前仓库?",question!,yesno! ) = 2 THEN RETURN
  438. END IF
  439. uo_inware uo_ware_py
  440. uo_ware_py = Create uo_inware
  441. uo_ware_py.commit_transaction = sqlca
  442. uo_ware_py.if_getid_ture = False
  443. uo_ware_py.sysautobuild = True
  444. uo_outware uo_ware_pk
  445. uo_ware_pk = Create uo_outware
  446. uo_ware_pk.commit_transaction = sqlca
  447. uo_ware_pk.if_getid_ture = False
  448. uo_ware_pk.sysautobuild = True
  449. uo_outware_scll uo_ware_scll
  450. uo_ware_scll = Create uo_outware_scll
  451. uo_ware_scll.commit_transaction = sqlca
  452. uo_ware_scll.if_getid_ture = False
  453. uo_ware_scll.sysautobuild = True
  454. uo_ware_pdb_balc uo_pdb
  455. uo_pdb = Create uo_ware_pdb_balc
  456. datastore ds_1
  457. ds_1 = Create datastore
  458. ds_1.DataObject = dw_1.DataObject
  459. ds_1.SetTransObject(sqlca)
  460. cnt = 0
  461. SELECT count(*)
  462. INTO :cnt
  463. FROM u_warepdb_bill
  464. WHERE storageid = :cur_storageid
  465. AND (CONVERT(Char(8), billdate, 112) = :ins_pdbdate)
  466. AND flag = 1
  467. Using sqlca ;
  468. IF sqlca.SQLCode < 0 THEN
  469. arg_msg = '盘点单查询操作失败,在盘点日:'+ins_pdbdate+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!'
  470. rslt = 0
  471. GOTO ext
  472. ELSE
  473. IF cnt > 0 THEN
  474. arg_msg = '盘点单,盘点日:'+ins_pdbdate+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核!'
  475. rslt = 0
  476. GOTO ext
  477. END IF
  478. END IF
  479. cnt = 0
  480. SELECT count(*)
  481. INTO :cnt
  482. FROM u_warepdb
  483. WHERE u_warepdb.storageid = :cur_storageid
  484. AND u_warepdb.pdbdate = :ins_pdbdate
  485. AND flag = 0
  486. Using sqlca;
  487. IF sqlca.SQLCode < 0 THEN
  488. arg_msg = '盘点表查询操作失败,在盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!'
  489. rslt = 0
  490. GOTO ext
  491. END IF
  492. IF cnt <= 0 THEN
  493. arg_msg = '盘点表,盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核!'
  494. rslt = 0
  495. GOTO ext
  496. END IF
  497. ds_1.Retrieve(cur_storageid_arr,ins_pdbdate,'',0)
  498. //ds_1.SetFilter('')
  499. //ds_1.Filter( )
  500. //pypkqty[i] < 0 Or ds_1.Object.pypkaddqty < 0
  501. IF ds_1.Find("u_warepdb_scllflag = 1", 1, ds_1.RowCount()) > 0 THEN
  502. SELECT top 1 wrkgrpid INTO :ll_wrkgrpid
  503. From u_sc_workgroup;
  504. IF sqlca.SQLCode <> 0 THEN
  505. arg_msg = '盘点日:'+'查询领料工作中心失败'
  506. rslt = 0
  507. GOTO ext
  508. END IF
  509. END IF
  510. IF uo_ware_py.newbegin(ll_scid,9,arg_msg) = 0 THEN
  511. arg_msg = 'error!/盘盈单'+arg_msg
  512. rslt = 0
  513. GOTO ext
  514. END IF
  515. IF uo_ware_pk.newbegin(ll_scid,9,arg_msg) = 0 THEN
  516. arg_msg = 'error!/盘亏单'+arg_msg
  517. rslt = 0
  518. GOTO ext
  519. END IF
  520. IF uo_ware_scll.newbegin(ll_scid,3,arg_msg) = 0 THEN
  521. arg_msg = 'error!/生产领料单'+arg_msg
  522. rslt = 0
  523. GOTO ext
  524. END IF
  525. //以下3个dscrp均用作删除的主键信息,要修改时必须同步修改ue_audit_c()
  526. uo_ware_py.indate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0))
  527. uo_ware_py.inrep = publ_operator
  528. uo_ware_py.part = String(ins_pdbdate)
  529. uo_ware_py.dscrp = '盘点表审核自动生成盘盈单'
  530. uo_ware_py.storageid = cur_storageid
  531. uo_ware_pk.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0))
  532. uo_ware_pk.outrep = publ_operator
  533. uo_ware_pk.part = String(ins_pdbdate)
  534. uo_ware_pk.dscrp = '盘点表审核自动生成盘亏单'
  535. uo_ware_pk.storageid = cur_storageid
  536. uo_ware_scll.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0))
  537. uo_ware_scll.outrep = publ_operator
  538. uo_ware_scll.part = String(ins_pdbdate)
  539. uo_ware_scll.dscrp = '盘点表审核盘亏自动生成生产领料单'
  540. uo_ware_scll.storageid = cur_storageid
  541. uo_ware_scll.relid = ll_wrkgrpid
  542. Open(w_sys_wait_jdt) //初始化进度条
  543. w_sys_wait_jdt.Show()
  544. w_sys_wait_jdt.wf_accepttol(ds_1.RowCount()) //初始化进度条1
  545. FOR i = 1 To ds_1.RowCount()
  546. ls_mtrlcode = ds_1.Object.u_mtrldef_mtrlcode[i]
  547. ls_unit = ds_1.Object.u_mtrldef_unit[i]
  548. w_sys_wait_jdt.st_msg.Text = "正在处理:"+ls_mtrlcode //进度信息
  549. IF ds_1.Object.mtrlid[i] <= 0 THEN CONTINUE
  550. IF ds_1.Object.pypkqty[i] = 0 And ds_1.Object.pypkaddqty[i] = 0 THEN CONTINUE
  551. //IF ds_1.Object.u_warepdb_scllflag[i] = 1 And ds_1.Object.pypkqty[i] < 0 THEN CONTINUE //只有盘亏的领料才不考虑
  552. ls_mtrlwareid = ds_1.Object.u_warepdb_mtrlwareid[i]
  553. ls_mtrlid = ds_1.Object.mtrlid[i]
  554. ls_sptid = ds_1.Object.u_warepdb_sptid[i]
  555. ls_plancode = ds_1.Object.u_warepdb_plancode[i]
  556. ls_dxflag = ds_1.Object.u_warepdb_dxflag[i]
  557. ls_status = ds_1.Object.u_warepdb_status[i]
  558. ls_woodcode = ds_1.Object.u_warepdb_woodcode[i]
  559. ls_pcode = ds_1.Object.u_warepdb_pcode[i]
  560. ls_qty = ds_1.Object.qty[i]
  561. ld_cost_pdb = ds_1.Object.u_warepdb_cost[i]
  562. SELECT cost ,
  563. waredscrp,
  564. inworkdate
  565. INTO :ld_cost_mtrlware,
  566. :ld_waredscrp,
  567. :ld_inworkdate
  568. FROM u_mtrlware
  569. WHERE scid = :ll_scid
  570. And mtrlwareid = :ls_mtrlwareid;
  571. IF sqlca.SQLCode <> 0 THEN
  572. arg_msg = '物料:'+ls_mtrlcode+',查询库存成本价失败'+sqlca.SQLErrText
  573. rslt = 0
  574. GOTO ext
  575. END IF
  576. SELECT planprice INTO :ls_planprice
  577. FROM u_mtrldef
  578. Where mtrlid = :ls_mtrlid;
  579. IF sqlca.SQLCode <> 0 THEN
  580. arg_msg = '物料:'+ls_mtrlcode+',查询计划价失败'+sqlca.SQLErrText
  581. rslt = 0
  582. GOTO ext
  583. END IF
  584. IF li_mtrlprp = 0 Or li_mtrlprp = 1 Or li_mtrlprp = 2 THEN
  585. IF ld_cost_mtrlware = 0 THEN
  586. ld_cost = ls_planprice
  587. ELSE
  588. ld_cost = ld_cost_mtrlware
  589. END IF
  590. ELSE
  591. ld_cost = 0
  592. END IF
  593. if ld_cost = 0 then
  594. ld_cost = ld_cost_pdb
  595. end if
  596. IF ds_1.Object.pypkqty[i] > 0 Or ds_1.Object.pypkaddqty[i] > 0 THEN
  597. // IF uo_ware_py.acceptmx(i,&
  598. // ds_1.Object.mtrlid[i],&
  599. // ds_1.Object.u_mtrldef_mtrlcode[i],&
  600. // ls_plancode,&
  601. // ls_status,&
  602. // ds_1.Object.pypkqty[i],&
  603. // ds_1.Object.pypkaddqty[i],&
  604. // ld_cost,&
  605. // 1,&
  606. // '',&
  607. // arg_msg,0,0,0,0,ls_woodcode,ls_pcode,'',ls_sptid,ls_unit,1,'',ld_waredscrp,ld_inworkdate) = 0 THEN
  608. IF uo_ware_py.acceptmx(i,&
  609. ds_1.Object.mtrlid[i],&
  610. ds_1.Object.u_mtrldef_mtrlcode[i],&
  611. ls_plancode,&
  612. ls_status,&
  613. ds_1.Object.pypkqty[i],&
  614. ds_1.Object.pypkaddqty[i],&
  615. ld_cost,&
  616. 1,&
  617. '',&
  618. arg_msg,0,0,0,0,ls_woodcode,ls_pcode,'',ls_sptid,ls_unit,1,'',ds_1.Object.u_warepdb_waredscrp[i],ld_inworkdate,0) = 0 THEN
  619. arg_msg = "行["+String(i)+"],盘盈单,接受明细,"+arg_msg
  620. rslt = 0
  621. GOTO ext
  622. END IF
  623. ELSEIF ds_1.Object.u_warepdb_scllflag[i] = 0 And ( ds_1.Object.pypkqty[i] < 0 Or ds_1.Object.pypkaddqty[i] < 0 ) THEN
  624. IF uo_ware_pk.acceptmx(ls_mtrlwareid,&
  625. Abs(ds_1.Object.pypkqty[i]),&
  626. Abs(ds_1.Object.pypkaddqty[i]),&
  627. ld_cost_mtrlware,&
  628. 1,&
  629. '',&
  630. i,&
  631. arg_msg,0,0,0,0,0,0,0,&
  632. ds_1.Object.u_mtrldef_unit[i],1,'','') = 0 THEN
  633. arg_msg = "行["+String(i)+"],盘亏单,接受明细,"+arg_msg
  634. rslt = 0
  635. GOTO ext
  636. END IF
  637. ELSEIF ds_1.Object.u_warepdb_scllflag[i] = 1 And ( ds_1.Object.pypkqty[i] < 0 Or ds_1.Object.pypkaddqty[i] < 0 ) THEN
  638. IF uo_ware_scll.acceptmx(ls_mtrlwareid,&
  639. Abs(ds_1.Object.pypkqty[i]),&
  640. Abs(ds_1.Object.pypkaddqty[i]),&
  641. ld_cost_mtrlware,&
  642. 1,&
  643. '',&
  644. i,&
  645. arg_msg,0,0,0,0,0,0,0,&
  646. ds_1.Object.u_mtrldef_unit[i],1,'','') = 0 THEN
  647. arg_msg = "行["+String(i)+"],生产领料单,接受明细,"+arg_msg
  648. rslt = 0
  649. GOTO ext
  650. END IF
  651. END IF
  652. w_sys_wait_jdt.wf_inc(i) //进度
  653. NEXT
  654. //自动生成盘盈单
  655. IF uo_ware_py.it_mxbt > 0 THEN
  656. w_sys_wait_jdt.st_msg.Text = "正在保存盘盈单..." //进度信息
  657. IF uo_ware_py.Save(False,arg_msg) = 0 THEN
  658. arg_msg = 'error!/盘盈单'+arg_msg
  659. rslt = 0
  660. GOTO ext
  661. END IF
  662. IF uo_ware_py.getinfo(ll_scid,uo_ware_py.inwareid,arg_msg) = 0 THEN
  663. arg_msg = 'error!/盘盈单'+arg_msg
  664. rslt = 0
  665. GOTO ext
  666. END IF
  667. w_sys_wait_jdt.st_msg.Text = "正在审核盘盈单..." //进度信息
  668. IF uo_ware_py.auditing(False,arg_msg) = 0 THEN
  669. arg_msg = 'error!/盘盈单'+arg_msg
  670. rslt = 0
  671. GOTO ext
  672. END IF
  673. END IF
  674. //自动生成盘亏单
  675. IF uo_ware_pk.it_mxbt > 0 THEN
  676. w_sys_wait_jdt.st_msg.Text = "正在保存盘亏单..." //进度信息
  677. IF uo_ware_pk.Save(False,arg_msg) = 0 THEN
  678. arg_msg = 'error!/盘亏单'+arg_msg
  679. rslt = 0
  680. GOTO ext
  681. END IF
  682. IF uo_ware_pk.getinfo(ll_scid,uo_ware_pk.outwareid,arg_msg) = 0 THEN
  683. arg_msg = 'error!/盘亏单'+arg_msg
  684. rslt = 0
  685. GOTO ext
  686. END IF
  687. w_sys_wait_jdt.st_msg.Text = "正在审核盘亏单..." //进度信息
  688. IF uo_ware_pk.auditing(False,arg_msg) = 0 THEN
  689. arg_msg = 'error!/盘亏单'+arg_msg
  690. rslt = 0
  691. GOTO ext
  692. END IF
  693. END IF
  694. //自动生成领料单
  695. IF uo_ware_scll.it_mxbt > 0 THEN
  696. w_sys_wait_jdt.st_msg.Text = "正在保存生产领料单..." //进度信息
  697. IF uo_ware_scll.Save(False,arg_msg) = 0 THEN
  698. arg_msg = '保存生产领料单,'+arg_msg
  699. rslt = 0
  700. GOTO ext
  701. END IF
  702. IF uo_ware_scll.getinfo(ll_scid,uo_ware_scll.outwareid,arg_msg) = 0 THEN
  703. rslt = 0
  704. GOTO ext
  705. END IF
  706. w_sys_wait_jdt.st_msg.Text = "正在审核生产领料单..." //进度信息
  707. IF uo_ware_scll.auditing(False,arg_msg) = 0 THEN
  708. rslt = 0
  709. GOTO ext
  710. END IF
  711. END IF
  712. //更新库存摘要 20180831
  713. for i = 1 to ds_1.RowCount()
  714. ls_mtrlwareid = ds_1.Object.u_warepdb_mtrlwareid[i]
  715. ls_u_warepdb_waredscrp = ds_1.Object.u_warepdb_waredscrp[i]
  716. UPDATE u_mtrlware
  717. SET u_mtrlware.waredscrp = :ls_u_warepdb_waredscrp
  718. WHERE ( scid = :ll_scid ) AND
  719. ( mtrlwareid = :ls_mtrlwareid ) ;
  720. IF sqlca.SQLCode <> 0 THEN
  721. rslt = 0
  722. arg_msg = "因网络或其它原因导致更新库存摘要操作失败"+"~n"+sqlca.SQLErrText
  723. GOTO ext
  724. END IF
  725. next
  726. //自动审核盘点表
  727. w_sys_wait_jdt.st_msg.Text = "正在审核盘点表..." //进度信息
  728. IF uo_pdb.uof_pdb_audit(cur_storageid,ins_pdbdate,publ_operator,arg_msg,False) = 0 THEN
  729. arg_msg = '审核盘点表失败,'+arg_msg
  730. rslt = 0
  731. GOTO ext
  732. END IF
  733. //自动结存仓库
  734. IF li_ifbalc = 1 THEN
  735. w_sys_wait_jdt.st_msg.Text = "正在结存仓库..." //进度信息
  736. IF uf_warebalc(1,0,cur_storageid,ldt_balcdate,arg_msg) = 0 THEN
  737. arg_msg = '审核盘点表自动结存仓库失败,'+arg_msg
  738. rslt = 0
  739. GOTO ext
  740. END IF
  741. END IF
  742. ext:
  743. IF rslt = 0 THEN
  744. ROLLBACK;
  745. ELSE
  746. arg_msg = '生成盘盈单/盘亏单成功!'
  747. COMMIT;
  748. wf_init_pdb()
  749. cb_1.TriggerEvent(Clicked!)
  750. END IF
  751. Close(w_sys_wait_jdt)
  752. Destroy uo_ware_py
  753. Destroy uo_ware_pk
  754. Destroy uo_ware_scll
  755. Destroy uo_pdb
  756. Destroy ds_1
  757. MessageBox('提示',arg_msg,information!,ok!)
  758. end event
  759. event ue_audit_c();IF NOT f_power_ind(1035) THEN
  760. MessageBox('提示','你没有使用权限!',information!,ok!)
  761. RETURN
  762. END IF
  763. Int rslt = 1
  764. IF MessageBox ("询问","是否确定要撤审当前盘点表?",question!,yesno! ) = 2 THEN RETURN
  765. uo_inware uo_ware_py
  766. uo_ware_py = CREATE uo_inware
  767. uo_ware_py.commit_transaction = sqlca
  768. uo_ware_py.if_getid_ture = FALSE
  769. uo_ware_py.sysautobuild = true
  770. uo_outware uo_ware_pk
  771. uo_ware_pk = CREATE uo_outware
  772. uo_ware_pk.commit_transaction = sqlca
  773. uo_ware_pk.if_getid_ture = FALSE
  774. uo_ware_pk.sysautobuild = true
  775. uo_outware_scll uo_ware_scll
  776. uo_ware_scll = CREATE uo_outware_scll
  777. uo_ware_scll.commit_transaction = sqlca
  778. uo_ware_scll.if_getid_ture = FALSE
  779. uo_ware_scll.sysautobuild = true
  780. uo_ware_pdb_balc uo_pdb
  781. uo_pdb = CREATE uo_ware_pdb_balc
  782. Long cnt
  783. String arg_msg
  784. Long ll_scid, ll_inwareid, ll_outwareid
  785. String ls_inwarecode, ls_outwarecode
  786. String ls_part, ls_dscrp, ls_tmpdscrp
  787. ls_part = ins_pdbdate
  788. ls_dscrp = '盘点表审核自动生成盘盈单'
  789. //兼容旧的,以后可删 20120713
  790. ls_tmpdscrp = '电脑生成的'+ins_pdbdate+'的盘亏单'
  791. //1.撤审,删除盘盈单,
  792. SELECT count(*)
  793. INTO :cnt
  794. FROM u_inware
  795. WHERE storageid = :cur_storageid
  796. AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp)
  797. AND billtype = 9;
  798. IF sqlca.SQLCode <> 0 THEN
  799. cnt = 0
  800. END IF
  801. IF cnt > 1 THEN
  802. rslt = 0
  803. arg_msg = "当前盘点表已生成多张盘盈单,请先手动删除"
  804. GOTO ext
  805. ELSEIF cnt = 1 THEN
  806. SELECT scid, inwareid , inwarecode
  807. INTO :ll_scid, :ll_inwareid, :ls_inwarecode
  808. FROM u_inware
  809. WHERE storageid = :cur_storageid
  810. AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp)
  811. AND billtype = 9;
  812. IF sqlca.SQLCode <> 0 THEN
  813. rslt = 0
  814. arg_msg = "查询当前盘点表相关盘盈单失败,"+sqlca.SQLErrText
  815. GOTO ext
  816. END IF
  817. IF uo_ware_py.getinfo(ll_scid,ll_inwareid,arg_msg) = 0 THEN
  818. arg_msg = 'error!/盘盈单'+arg_msg
  819. rslt = 0
  820. GOTO ext
  821. END IF
  822. IF uo_ware_py.c_auditing(FALSE,arg_msg) = 0 THEN
  823. arg_msg = 'error!/盘盈单'+arg_msg
  824. rslt = 0
  825. GOTO ext
  826. END IF
  827. IF uo_ware_py.del(ll_scid,ll_inwareid,arg_msg,FALSE) = 0 THEN
  828. arg_msg = 'error!/盘盈单'+arg_msg
  829. rslt = 0
  830. GOTO ext
  831. END IF
  832. END IF
  833. //2.撤审,删除盘亏单
  834. ls_part = ins_pdbdate
  835. ls_dscrp = '盘点表审核自动生成盘亏单'
  836. ls_tmpdscrp = '电脑生成的'+ins_pdbdate+'的盘亏单'
  837. SELECT count(*)
  838. INTO :cnt
  839. FROM u_outware
  840. WHERE storageid = :cur_storageid
  841. AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp)
  842. AND billtype = 9;
  843. IF sqlca.SQLCode <> 0 THEN
  844. cnt = 0
  845. END IF
  846. IF cnt > 1 THEN
  847. rslt = 0
  848. arg_msg = "当前盘点表已生成多张盘亏单,请先手动删除"
  849. GOTO ext
  850. ELSEIF cnt = 1 THEN
  851. SELECT scid, outwareid , outwarecode
  852. INTO :ll_scid, :ll_outwareid, :ls_outwarecode
  853. FROM u_outware
  854. WHERE storageid = :cur_storageid
  855. AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp)
  856. AND billtype = 9;
  857. IF sqlca.SQLCode <> 0 THEN
  858. rslt = 0
  859. arg_msg = "查询当前盘点表相关盘亏单失败,"+sqlca.SQLErrText
  860. GOTO ext
  861. END IF
  862. IF uo_ware_pk.getinfo(ll_scid,ll_outwareid,arg_msg) = 0 THEN
  863. arg_msg = 'error!/盘亏单'+arg_msg
  864. rslt = 0
  865. GOTO ext
  866. END IF
  867. IF uo_ware_pk.c_auditing(FALSE,arg_msg) = 0 THEN
  868. arg_msg = 'error!/盘亏单'+arg_msg
  869. rslt = 0
  870. GOTO ext
  871. END IF
  872. IF uo_ware_pk.del(ll_scid,ll_outwareid,arg_msg,FALSE) = 0 THEN
  873. arg_msg = 'error!/盘亏单'+arg_msg
  874. rslt = 0
  875. GOTO ext
  876. END IF
  877. END IF
  878. //uo_ware_scll.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0))
  879. //uo_ware_scll.outrep = publ_operator
  880. //uo_ware_scll.part = ''
  881. //uo_ware_scll.dscrp = '盘点日:'+String(ins_pdbdate)+',盘亏辅助生成领料单'
  882. //uo_ware_scll.storageid = cur_storageid
  883. //uo_ware_scll.relid = ll_wrkgrpid
  884. //撤审删除生产领料单
  885. ls_part = ins_pdbdate
  886. ls_dscrp = '盘点表审核盘亏自动生成生产领料单'
  887. ls_tmpdscrp = '盘点日:'+String(ins_pdbdate)+',盘亏辅助生产领料单'
  888. SELECT count(*)
  889. INTO :cnt
  890. FROM u_outware
  891. WHERE storageid = :cur_storageid
  892. AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp)
  893. AND billtype = 3;
  894. IF sqlca.SQLCode <> 0 THEN
  895. cnt = 0
  896. END IF
  897. IF cnt > 1 THEN
  898. rslt = 0
  899. arg_msg = "当前盘点表已生成多张生产领料单,请先手动删除"
  900. GOTO ext
  901. ELSEIF cnt = 1 THEN
  902. SELECT scid, outwareid , outwarecode
  903. INTO :ll_scid, :ll_outwareid, :ls_outwarecode
  904. FROM u_outware
  905. WHERE storageid = :cur_storageid
  906. AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp)
  907. AND billtype = 3;
  908. IF sqlca.SQLCode <> 0 THEN
  909. rslt = 0
  910. arg_msg = "查询当前盘点表相关盘亏单失败,"+sqlca.SQLErrText
  911. GOTO ext
  912. END IF
  913. IF uo_ware_pk.getinfo(ll_scid,ll_outwareid,arg_msg) = 0 THEN
  914. arg_msg = 'error!/生产领料单'+arg_msg
  915. rslt = 0
  916. GOTO ext
  917. END IF
  918. IF uo_ware_pk.c_auditing(FALSE,arg_msg) = 0 THEN
  919. arg_msg = 'error!/生产领料单'+arg_msg
  920. rslt = 0
  921. GOTO ext
  922. END IF
  923. IF uo_ware_pk.del(ll_scid,ll_outwareid,arg_msg,FALSE) = 0 THEN
  924. arg_msg = 'error!/生产领料单'+arg_msg
  925. rslt = 0
  926. GOTO ext
  927. END IF
  928. END IF
  929. //3.撤审盘点表
  930. IF uo_pdb.uof_pdb_caudit(cur_storageid,ins_pdbdate,arg_msg,FALSE) = 0 THEN
  931. rslt = 0
  932. arg_msg = '撤审盘点表失败,'+arg_msg
  933. GOTO ext
  934. END IF
  935. ext:
  936. IF rslt = 0 THEN
  937. ROLLBACK;
  938. MessageBox('ERROR',arg_msg,information!,ok!)
  939. ELSE
  940. COMMIT;
  941. MessageBox('提示','撤审盘点表成功',information!,ok!)
  942. cb_1.TriggerEvent(Clicked!)
  943. END IF
  944. DESTROY uo_ware_py
  945. DESTROY uo_ware_pk
  946. DESTROY uo_ware_scll
  947. DESTROY uo_pdb
  948. end event
  949. event ue_update_scllflag();
  950. IF MessageBox ("询问","是否要更新当前盘点表盘亏领料标记",question!,yesno! ) = 2 THEN RETURN
  951. DateTime ld_balcdate
  952. String ls_balcdate
  953. Int li_ifbalc
  954. Int rst
  955. Long ll_balcdateint
  956. String arg_msg
  957. ls_balcdate = Left(String(ins_pdbdate),4) + '-' + Left(Right(String(ins_pdbdate),4),2) +'-'+ Right(String(ins_pdbdate),2)
  958. ld_balcdate = DateTime(Date(ls_balcdate),Time(0))
  959. ll_balcdateint = Year(Date(ld_balcdate)) * 10000 + Month(Date(ld_balcdate)) * 100 + Day(Date(ld_balcdate))
  960. uo_ware_pdb_balc uo_pdb
  961. uo_pdb = CREATE uo_ware_pdb_balc
  962. IF uo_pdb.uof_pdb_update_scllflag(cur_storageid,ins_pdbdate,arg_msg,true) = 0 THEN
  963. MessageBox('错误','更新当前盘点表盘亏领料标记失败,'+arg_msg,stopsign!,ok!)
  964. RETURN
  965. END IF
  966. DESTROY uo_pdb
  967. MessageBox('提示','更新当前盘点表盘亏领料标记成功',information!,ok!)
  968. //wf_init_pdb()
  969. cb_1.TriggerEvent(Clicked!)
  970. end event
  971. event ue_set_dytitle();Long ll_d_col_count,i,j = 1
  972. String ls_col_name
  973. s_dytitle_ware_pdb ss_dytitle_ware_pdb //col_name
  974. ll_d_col_count = Long(dw_2.Object.datawindow.Column.Count)
  975. FOR i = 1 To ll_d_col_count
  976. ls_col_name = dw_2.Describe('#' + String(i) + '.Name')
  977. ss_dytitle_ware_pdb.col_name[j] = ls_col_name
  978. ss_dytitle_ware_pdb.title_name[j] = dw_2.describe(ls_col_name + '_t.Text')
  979. j++
  980. //END IF
  981. NEXT
  982. openwithparm(w_dytitle_ware_pdb,ss_dytitle_ware_pdb)
  983. end event
  984. event ue_insert_execltodw();Long i,ll_cnt,j
  985. SELECT count(*) Into :ll_cnt From u_dytitle_ware_pdb;
  986. IF ll_cnt = 0 THEN
  987. MessageBox('Error','明细标题与execl标题对应关系没有设置,请先执行设置')
  988. This.TriggerEvent('ue_set_dytitle')
  989. RETURN
  990. END IF
  991. dw_2.setredraw(false)
  992. wf_openfile(dw_2)
  993. dw_2.AcceptText()
  994. Long row
  995. String arg_msg
  996. String mtrlcode,status,woodcode,pcode,plancode
  997. FOR i = 1 To dw_2.RowCount()
  998. mtrlcode = String(dw_2.Object.u_mtrldef_mtrlcode[i])
  999. status = String(dw_2.Object.u_warepdb_status[i])
  1000. woodcode = String(dw_2.Object.u_warepdb_woodcode[i])
  1001. pcode = String(dw_2.Object.u_warepdb_pcode[i])
  1002. plancode = String(dw_2.Object.u_warepdb_plancode[i])
  1003. row = dw_1.find(' u_mtrldef_mtrlcode = "' + mtrlcode + '" and u_warepdb_status ="'+status + '" and u_warepdb_woodcode = "'+ woodcode+ '" and u_warepdb_pcode = "'+ pcode + '" and u_warepdb_plancode = "'+ plancode+'"' ,1,dw_1.rowcount())
  1004. IF row > 0 THEN
  1005. dw_1.object.factqty[row] = dw_2.Object.factqty[i]
  1006. dw_1.object.u_warepdb_packqty[row] = dw_2.Object.u_warepdb_packqty[i]
  1007. dw_1.object.u_warepdb_factaddqty[row] = dw_2.Object.u_warepdb_factaddqty[i]
  1008. dw_1.object.u_warepdb_waredscrp[row] = dw_2.Object.u_warepdb_waredscrp[i]
  1009. END IF
  1010. NEXT
  1011. end event
  1012. event ue_sentdataout_ware();IF NOT if_power_sendout THEN
  1013. MessageBox(publ_operator,'你没有使用权限!')
  1014. RETURN
  1015. END IF
  1016. int rtr_zeronoallocqty
  1017. IF cbx_1.Checked THEN
  1018. rtr_zeronoallocqty = 0
  1019. ELSE
  1020. rtr_zeronoallocqty = 1
  1021. END IF
  1022. dw_2.retrieve(cur_storageid_arr,ins_pdbdate,ls_handtype,rtr_zeronoallocqty)
  1023. OpenWithParm(w_sentdataout,DW_2)
  1024. end event
  1025. public function integer wf_face ();IF dw_edit_mode THEN
  1026. dw_1.SetFocus()
  1027. dw_1.SetTabOrder("factqty",10)
  1028. dw_1.SetTabOrder("u_warepdb_factaddqty",20)
  1029. dw_1.SetTabOrder("u_warepdb_packqty",30)
  1030. dw_1.SetTabOrder("u_warepdb_waredscrp",40)
  1031. // dw_1.SetTabOrder("u_warepdb_scllflag",30)
  1032. cb_edit.enabled = true
  1033. cb_edit.Text = '保存'
  1034. cb_edit.normalpicname = 'Save.bmp'
  1035. cb_del.Enabled = TRUE
  1036. cb_mx.Enabled = TRUE
  1037. cb_3.Enabled = FALSE
  1038. cb_5.Enabled = FALSE
  1039. cb_audit.Enabled = FALSE
  1040. cb_caudit.Enabled = FALSE
  1041. ddlb_storageid.Enabled = FALSE
  1042. ddlb_1.Enabled = FALSE
  1043. ELSE
  1044. dw_1.SetTabOrder("factqty",0)
  1045. dw_1.SetTabOrder("u_warepdb_factaddqty",0)
  1046. dw_1.SetTabOrder("u_warepdb_packqty",0)
  1047. dw_1.SetTabOrder("u_warepdb_waredscrp",0)
  1048. // dw_1.SetTabOrder("u_warepdb_scllflag",0)
  1049. cb_edit.Text = '修改'
  1050. cb_edit.normalpicname = 'open.bmp'
  1051. cb_del.Enabled = FALSE
  1052. cb_mx.Enabled = TRUE
  1053. cb_3.Enabled = TRUE
  1054. cb_5.Enabled = TRUE
  1055. cb_audit.Enabled = TRUE
  1056. cb_caudit.Enabled = TRUE
  1057. ddlb_storageid.Enabled = TRUE
  1058. ddlb_1.Enabled = TRUE
  1059. IF dw_1.RowCount() > 0 THEN
  1060. IF dw_1.Object.u_warepdb_flag[1] = 0 THEN
  1061. cb_audit.Enabled = TRUE
  1062. cb_caudit.Enabled = FALSE
  1063. cb_edit.enabled = true
  1064. cb_5.enabled = true
  1065. ELSE
  1066. cb_audit.Enabled = FALSE
  1067. cb_caudit.Enabled = TRUE
  1068. cb_edit.enabled = FALSE
  1069. cb_5.enabled = FALSE
  1070. END IF
  1071. ELSE
  1072. cb_audit.Enabled = FALSE
  1073. cb_caudit.Enabled = FALSE
  1074. cb_edit.enabled = FALSE
  1075. cb_5.enabled = FALSE
  1076. END IF
  1077. END IF
  1078. cb_edit.of_init_draw()
  1079. cb_edit.of_paint()
  1080. cb_edit.TriggerEvent('ue_textchange')
  1081. RETURN 1
  1082. end function
  1083. public function integer wf_instorage ();String ls_waredate
  1084. String arg_msg
  1085. Long ls_scid
  1086. DateTime st_date,ed_date,ls_serverdate
  1087. Date ls_enddate
  1088. IF MessageBox("询问","你是否要盘点"+Trim(em_3.Text)+"的库存吗?",Exclamation!, yesno!, 2) = 2 THEN
  1089. GOTO ext
  1090. END IF
  1091. ls_waredate = String(Date(Trim(em_3.Text)),'yyyymmdd')
  1092. IF cur_storageid <= 0 THEN
  1093. MessageBox('提示','请选择要盘点的仓库?',information!,ok!)
  1094. RETURN 0
  1095. END IF
  1096. SELECT scid INTO :ls_scid
  1097. FROM u_storage
  1098. Where storageid = :cur_storageid;
  1099. IF sqlca.SQLCode <> 0 THEN
  1100. MessageBox('系统提示:','查询仓库分部失败'+sqlca.SQLErrText)
  1101. RETURN 0
  1102. END IF
  1103. datetime ldt_pdbdate
  1104. long cnt
  1105. ldt_pdbdate = datetime(Date(Trim(em_3.Text)),Time('23:59:59'))
  1106. cnt = 0
  1107. SELECT count(*)
  1108. INTO :cnt
  1109. FROM u_warepdb_bill
  1110. Where storageid = :cur_storageid And billdate = :ldt_pdbdate USING sqlca ;
  1111. IF sqlca.SQLCode = -1 THEN
  1112. MessageBox('错误','盘点单查询操作失败,在盘点日:'+String(ldt_pdbdate,"yyyy-mm-dd")+',仓库:'+String(cur_storageid)+'的数据资料!',stopsign!,ok!)
  1113. return 1
  1114. ELSE
  1115. IF cnt > 0 THEN
  1116. MessageBox('错误','盘点单,已存在盘点日:'+String(ldt_pdbdate,"yyyy-mm-dd")+',仓库:'+String(cur_storageid)+'的盘点数据!',stopsign!,ok!)
  1117. return 1
  1118. END IF
  1119. END IF
  1120. SELECT Top 1 getdate() INTO :ls_serverdate FROM u_user ;
  1121. //取得系统时间,借用操作员表
  1122. IF sqlca.SQLCode <> 0 THEN
  1123. MessageBox('错误','查询操作失败,日期'+sqlca.SQLErrText,stopsign!,ok!)
  1124. RETURN 0
  1125. END IF
  1126. //**********************************************************
  1127. ls_enddate = Date(em_3.Text)
  1128. st_date = DateTime(RelativeDate(date(ls_enddate),1),Time('0:0'))
  1129. ed_date = DateTime(RelativeDate(date(ls_serverdate),1),Time('0:0'))
  1130. IF st_date > ed_date THEN
  1131. MessageBox('提示','盘点日期不能大过于当前日期'+sqlca.SQLErrText,information!,ok!)
  1132. RETURN 0
  1133. END IF
  1134. DELETE u_parm_balcdate ;
  1135. IF sqlca.SQLCode <> 0 THEN
  1136. ROLLBACK ;
  1137. MessageBox('错误',"因网络或其它原因导致操作失败,请重试!",stopsign!,ok!)
  1138. RETURN 0
  1139. END IF
  1140. INSERT INTO u_parm_balcdate (first_date,end_date) Values (:st_date,:ed_date) ;
  1141. IF sqlca.SQLCode <> 0 THEN
  1142. ROLLBACK ;
  1143. MessageBox('错误',"因网络或其它原因导致操作失败,请重试!",stopsign!,ok!)
  1144. RETURN 0
  1145. ELSE
  1146. COMMIT ;
  1147. END IF
  1148. //**********************************************************
  1149. //INSERT INTO u_warepdb (
  1150. // flag,
  1151. // pdbdate,
  1152. // storageid,
  1153. // mtrlid,
  1154. // plancode,
  1155. // status,
  1156. // woodcode,
  1157. // pcode,
  1158. // dxflag,
  1159. // sptid,
  1160. // scid,
  1161. // mtrlwareid,
  1162. // qty,
  1163. // factqty)
  1164. // SELECT
  1165. // :ls_scid,
  1166. // :ls_waredate,
  1167. // storageid,
  1168. // mtrlid,
  1169. // plancode,
  1170. // status,
  1171. // woodcode,
  1172. // pcode,
  1173. // dxflag,
  1174. // sptid,
  1175. // scid,
  1176. // mtrlwareid,
  1177. // noallocqty,
  1178. // 0
  1179. // FROM u_mtrlware
  1180. // WHERE u_mtrlware.storageid = :cur_storageid AND
  1181. // u_mtrlware.scid = 0;
  1182. INSERT INTO u_warepdb (
  1183. flag,
  1184. pdbdate,
  1185. scid,
  1186. mtrlwareid,
  1187. mtrlid,
  1188. storageid,
  1189. plancode,
  1190. Status,
  1191. planprice,
  1192. Sptid,
  1193. Dxflag,
  1194. newprice,
  1195. woodcode,
  1196. pcode,
  1197. cost,
  1198. qty,
  1199. addqty,
  1200. factqty,
  1201. wareamt,
  1202. scllflag,
  1203. sys_changetime,waredscrp)
  1204. SELECT 0, :ls_waredate ,
  1205. u_mtrlware.scid, u_mtrlware.mtrlwareid, u_mtrlware.mtrlid, u_mtrlware.storageid,
  1206. u_mtrlware.plancode, u_mtrlware.Status, u_mtrldef.planprice,
  1207. u_mtrlware.Sptid, u_mtrlware.Dxflag, u_mtrlware.newprice, u_mtrlware.woodcode,
  1208. u_mtrlware.pcode, u_mtrlware.cost, u_mtrlware.noallocqty +
  1209. ISNULL(uv_pdb_outware.desqty, 0) - ISNULL(uv_pdb_inware.incqty, 0)
  1210. ,u_mtrlware.noallocaddqty,0,u_mtrlware.wareamt + ISNULL(uv_pdb_outware.desamt, 0) - ISNULL(uv_pdb_inware.incamt,0)
  1211. ,u_mtrldef.scllflag,getdate(),u_mtrlware.waredscrp
  1212. FROM uv_pdb_inware RIGHT OUTER JOIN
  1213. u_mtrlware ON uv_pdb_inware.storageid = u_mtrlware.storageid AND
  1214. uv_pdb_inware.mtrlid = u_mtrlware.mtrlid AND
  1215. uv_pdb_inware.plancode = u_mtrlware.plancode AND
  1216. uv_pdb_inware.status = u_mtrlware.Status AND
  1217. uv_pdb_inware.cusid = u_mtrlware.Sptid AND
  1218. uv_pdb_inware.Dxflag = u_mtrlware.Dxflag AND
  1219. uv_pdb_inware.pcode = u_mtrlware.pcode AND
  1220. uv_pdb_inware.woodcode = u_mtrlware.woodcode LEFT OUTER JOIN
  1221. uv_pdb_outware ON u_mtrlware.storageid = uv_pdb_outware.StorageID AND
  1222. u_mtrlware.mtrlid = uv_pdb_outware.mtrlid AND
  1223. u_mtrlware.plancode = uv_pdb_outware.plancode AND
  1224. u_mtrlware.Status = uv_pdb_outware.status AND
  1225. u_mtrlware.Sptid = uv_pdb_outware.Sptid AND
  1226. u_mtrlware.Dxflag = uv_pdb_outware.Dxflag AND
  1227. u_mtrlware.woodcode = uv_pdb_outware.woodcode AND
  1228. u_mtrlware.pcode = uv_pdb_outware.pcode,
  1229. u_mtrldef
  1230. Where u_mtrldef.mtrlid=u_mtrlware.mtrlid and
  1231. u_mtrlware.storageid = :cur_storageid AND u_mtrlware.scid = :ls_scid;
  1232. IF sqlca.SQLCode <> 0 THEN
  1233. IF Pos(sqlca.SQLErrText,'Cannot insert duplicate key in') > 0 THEN
  1234. arg_msg = '该仓库当前日期的盘点表已经存!'
  1235. ELSE
  1236. arg_msg = ''
  1237. END IF
  1238. MessageBox('错误','生成当前期的盘点表失败!~n原因是:'+sqlca.sqlerrtext,information!,ok!)
  1239. ROLLBACK;
  1240. GOTO ext
  1241. END IF
  1242. COMMIT;
  1243. MessageBox('提示','生成'+Trim(em_3.Text)+'的盘点表成功!',information!,ok!)
  1244. ext:
  1245. RETURN 1
  1246. end function
  1247. public subroutine wf_del ();String arg_msg
  1248. Int cnt = 0
  1249. IF MessageBox("询问","你是否要删除盘点"+ins_pdbdate+"的库存吗?",Exclamation!, YESNO!, 2) = 2 THEN
  1250. RETURN
  1251. END IF
  1252. SELECT count(*)
  1253. INTO :cnt
  1254. FROM u_warepdb
  1255. WHERE u_warepdb.storageid = :cur_storageid
  1256. AND u_warepdb.pdbdate = :ins_pdbdate
  1257. AND flag = 1 USING sqlca;
  1258. IF sqlca.SQLCode <> 0 THEN
  1259. MessageBox('错误','查询操作失败,在盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!',stopsign!,ok!)
  1260. RETURN
  1261. ELSE
  1262. IF cnt > 0 THEN
  1263. MessageBox('提示','盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核,不能删除!',information!,ok!)
  1264. RETURN
  1265. END IF
  1266. END IF
  1267. IF cur_storageid <= 0 THEN
  1268. MessageBox('提示','请选择要盘点的仓库?',information!,ok!)
  1269. RETURN
  1270. END IF
  1271. DELETE FROM u_warepdb Where pdbdate = :ins_pdbdate AND storageid = :cur_storageid;
  1272. IF sqlca.SQLCode <> 0 THEN
  1273. MessageBox('错误','删除当前期的盘点表失败!',stopsign!,ok!)
  1274. ROLLBACK;
  1275. RETURN
  1276. END IF
  1277. COMMIT;
  1278. MessageBox('提示','删除'+Trim(ddlb_1.Text)+'的盘点表成功!',information!,ok!)
  1279. end subroutine
  1280. public function integer wf_init_pdb ();String ls_pdbdate
  1281. ddlb_1.setredraw(false)
  1282. ddlb_1.reset()
  1283. DECLARE pdbdate_cur CURSOR FOR
  1284. SELECT DISTINCT (pdbdate)
  1285. FROM u_warepdb
  1286. Where u_warepdb.storageid = :cur_storageid
  1287. order by pdbdate desc;
  1288. OPEN pdbdate_cur;
  1289. FETCH pdbdate_cur INTO :ls_pdbdate;
  1290. ins_pdbdate = ls_pdbdate
  1291. DO WHILE sqlca.SQLCode = 0 //循环读取明细数据
  1292. ddlb_1.AddItem (ls_pdbdate)
  1293. FETCH pdbdate_cur INTO :ls_pdbdate;
  1294. LOOP
  1295. CLOSE pdbdate_cur;
  1296. ddlb_1.Text = ins_pdbdate
  1297. ddlb_1.setredraw(true)
  1298. return 1
  1299. end function
  1300. public function integer wf_check_ifmtrlware (ref string arg_msg);//
  1301. Long i,rowcnt,rslt = 1
  1302. Long ls_mtrlwareid,ls_mtrlid,ls_storageid,ls_dxflag
  1303. String ls_mtrlcode
  1304. String ls_plancode
  1305. String ls_status,ls_woodcode,ls_pcode
  1306. Decimal ls_qty
  1307. Long ls_sptid
  1308. rowcnt = dw_1.RowCount( )
  1309. ls_storageid = cur_storageid
  1310. Open(w_sys_wait_jdt) //初始化进度条
  1311. w_sys_wait_jdt.Show()
  1312. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount()) //初始化进度条1
  1313. FOR i = 1 TO rowcnt
  1314. w_sys_wait_jdt.st_msg.Text = "处理:"+ls_mtrlcode //进度信息
  1315. w_sys_wait_jdt.wf_inc(i) //进度
  1316. ls_mtrlwareid = dw_1.Object.u_warepdb_mtrlwareid[i]
  1317. ls_mtrlid = dw_1.Object.mtrlid[i]
  1318. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i]
  1319. ls_plancode = dw_1.Object.u_warepdb_plancode[i]
  1320. ls_dxflag = dw_1.Object.u_warepdb_dxflag[i]
  1321. ls_sptid = dw_1.Object.u_warepdb_sptid[i]
  1322. ls_status = dw_1.Object.u_warepdb_status[i]
  1323. ls_woodcode = dw_1.Object.u_warepdb_woodcode[i]
  1324. ls_pcode = dw_1.Object.u_warepdb_pcode[i]
  1325. ls_qty = dw_1.Object.qty[i]
  1326. if ls_mtrlwareid>0 then continue
  1327. IF f_insert_0_mtrlware(ls_mtrlwareid,ls_mtrlid,ls_mtrlcode,ls_storageid,ls_sptid,ls_status,ls_woodcode,ls_pcode,ls_plancode,0,arg_msg) = 0 THEN
  1328. rslt = 0
  1329. GOTO ext
  1330. ELSE
  1331. dw_1.Object.u_warepdb_mtrlwareid[i] = ls_mtrlwareid
  1332. END IF
  1333. NEXT
  1334. dw_1.AcceptText( )
  1335. ext:
  1336. Close(w_sys_wait_jdt)
  1337. RETURN rslt
  1338. end function
  1339. public subroutine wf_face_change ();
  1340. IF p_resize.PictureName = 'w_resize_2.bmp' THEN
  1341. tv_1.Visible = TRUE
  1342. p_resize.X = tv_1.X+tv_1.Width+5
  1343. ELSE
  1344. tv_1.Visible = FALSE
  1345. p_resize.X = 0
  1346. END IF
  1347. dw_1.X = p_resize.X + p_resize.Width + 5
  1348. dw_1.Width = THIS.Width - dw_1.X - 40
  1349. end subroutine
  1350. public function integer wf_openfile (datawindow arg_dw);
  1351. String str_savename,named,s_grxh
  1352. Int excelok,li_net
  1353. Long li_count,i,ll_hang
  1354. oleobject excelserver
  1355. excelserver = Create oleobject
  1356. excelok = excelserver.ConnectToNewObject("excel.application")
  1357. //检查返回值,以确保已成功地连接到了Excel
  1358. IF excelok <> 0 THEN
  1359. MessageBox("提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!", Information!, OK! )
  1360. RETURN -1
  1361. END IF
  1362. li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls")
  1363. IF li_net > 0 THEN
  1364. IF str_savename = "" THEN RETURN -1
  1365. arg_dw.SetTransObject(sqlca)
  1366. arg_dw.InsertRow(0)
  1367. arg_dw.Reset()
  1368. excelserver.workbooks.Open(str_savename)
  1369. excelserver.activesheet.cells.Copy
  1370. datastore ds_col100
  1371. /////////////建立映射//////////////////// //
  1372. ds_col100 = Create datastore
  1373. ds_col100.DataObject = 'dw_col100'
  1374. ds_col100.ImportClipboard(1)
  1375. Long ll_s_col_count = 100
  1376. Long ll_d_col_count
  1377. String ls_execltitlename,ls_filtername
  1378. s_dytitle_filter ss_dytitle_filter[]
  1379. Long k = 1,m
  1380. Long li_argcnt = 1
  1381. String ls_cmd,ls_arg[]
  1382. ll_d_col_count = Long(arg_dw.Object.datawindow.Column.Count)
  1383. Long ll_map[] // 目标表与原表的映射,0为没有映射
  1384. String ls_colType[] // 目标表列类型
  1385. Long col_d, col_s
  1386. SELECT Top 1 hang Into :ll_hang From u_dytitle_ware_pdb;
  1387. FOR col_d = 1 To ll_d_col_count
  1388. String ls_col_title, ls_col_name
  1389. ls_col_name = arg_dw.Describe('#' + String(col_d) + '.Name')
  1390. ls_colType[col_d] = arg_dw.Describe('#' + String(col_d) + '.ColType')
  1391. ls_col_title = arg_dw.Describe(ls_col_name + '_t.Text') //数据窗口的标题名称
  1392. ll_map[col_d] = 0
  1393. FOR col_s = 1 To ll_s_col_count
  1394. String ls_s_title
  1395. ls_s_title = ds_col100.GetItemString(ll_hang , col_s) //execl表的标题名称
  1396. //
  1397. SELECT execltitlename,filtername Into :ls_execltitlename,:ls_filtername From u_dytitle_ware_pdb Where Name = :ls_col_name;
  1398. //
  1399. // if lower(trim(ls_col_title)) = lower(trim(ls_s_title)) then
  1400. IF Lower(Trim(ls_execltitlename)) = Lower(Trim(ls_s_title)) THEN
  1401. ll_map[col_d] = col_s
  1402. IF ls_filtername <> '' THEN //记录过滤
  1403. ss_dytitle_filter[k].num = col_s
  1404. ss_dytitle_filter[k].filtername = ls_filtername
  1405. k++
  1406. END IF
  1407. EXIT
  1408. END IF
  1409. NEXT
  1410. NEXT
  1411. // TODO: 人工干预,设置映射
  1412. Long row_s, row_d
  1413. String lk_temp
  1414. FOR row_s = ll_hang + 1 To ds_col100.RowCount( ) //ll_hang + 1
  1415. //过滤
  1416. FOR k = 1 To UpperBound(ss_dytitle_filter)
  1417. lk_temp = String( Trim(ds_col100.GetItemString(row_s, ss_dytitle_filter[k].num)))
  1418. //
  1419. ls_cmd = ss_dytitle_filter[k].filtername
  1420. IF Pos(ls_cmd,',') > 0 THEN //如果是多少个过滤字眼
  1421. DO WHILE Len(ls_cmd) > 0
  1422. i = Pos( ls_cmd, ",")
  1423. IF i = 0 THEN i = Len(ls_cmd) + 1
  1424. ls_arg[li_argcnt] = Left(ls_cmd, i - 1)
  1425. li_argcnt = li_argcnt + 1
  1426. ls_cmd = Replace(ls_cmd, 1, i, "")
  1427. LOOP
  1428. FOR m = 1 To UpperBound(ls_arg)
  1429. IF Pos(lk_temp,ls_arg[m]) > 0 THEN
  1430. GOTO ext
  1431. END IF
  1432. NEXT
  1433. ELSE //一个过滤字眼
  1434. IF Pos(lk_temp,ss_dytitle_filter[k].filtername) > 0 THEN
  1435. GOTO ext
  1436. END IF
  1437. END IF
  1438. //
  1439. NEXT
  1440. //过滤
  1441. row_d = arg_dw.InsertRow(0)
  1442. FOR col_d = 1 To ll_d_col_count
  1443. IF ll_map[col_d] = 0 THEN CONTINUE
  1444. Any Value
  1445. String ls_value
  1446. ls_value = Trim(ds_col100.GetItemString(row_s, ll_map[col_d]))
  1447. IF Lower(Left(ls_colType[col_d], 4)) = 'char' THEN
  1448. Value = ls_value
  1449. ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'long' &
  1450. Or Lower(Left(ls_colType[col_d], 3)) = 'int' &
  1451. Or Lower(Left(ls_colType[col_d], 3)) = 'num' &
  1452. Or Lower(Left(ls_colType[col_d], 5)) = 'ulong' THEN
  1453. Value = Long(ls_value)
  1454. ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'deci' &
  1455. Or Lower(Left(ls_colType[col_d], 4)) = 'real' THEN
  1456. Value = Dec(ls_value)
  1457. ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'date' THEN
  1458. Value = DateTime(Date(Left(ls_value, 10)), Time(Mid(ls_value, 12)))
  1459. END IF
  1460. arg_dw.SetItem(row_d, col_d, Value)
  1461. NEXT
  1462. ext:
  1463. NEXT
  1464. Destroy ds_col100
  1465. ///////////////////////////////////// //
  1466. // li_count = arg_dw.ImportClipboard(2) //导入数据 (从第几行开始导入)
  1467. Clipboard("")
  1468. excelserver.quit()
  1469. excelserver.DisconnectObject()
  1470. Destroy excelserver
  1471. FOR i = 1 To arg_dw.RowCount( )
  1472. // arg_dw.Object.repeat[i] = 0
  1473. NEXT
  1474. arg_dw.AcceptText( )
  1475. RETURN 1
  1476. ELSE
  1477. MessageBox('提示','没有指定导入文件!', Information!, OK! )
  1478. RETURN -1
  1479. END IF
  1480. end function
  1481. on w_ware_pdb.create
  1482. int iCurrent
  1483. call super::create
  1484. this.st_1=create st_1
  1485. this.em_3=create em_3
  1486. this.st_2=create st_2
  1487. this.cb_3=create cb_3
  1488. this.cb_edit=create cb_edit
  1489. this.cb_del=create cb_del
  1490. this.cb_5=create cb_5
  1491. this.st_5=create st_5
  1492. this.cb_mx=create cb_mx
  1493. this.ddlb_storageid=create ddlb_storageid
  1494. this.ddlb_1=create ddlb_1
  1495. this.tv_1=create tv_1
  1496. this.cb_audit=create cb_audit
  1497. this.cb_caudit=create cb_caudit
  1498. this.cb_8=create cb_8
  1499. this.p_resize=create p_resize
  1500. this.cbx_1=create cbx_1
  1501. this.cbx_packqty_cmpl=create cbx_packqty_cmpl
  1502. this.dw_2=create dw_2
  1503. iCurrent=UpperBound(this.Control)
  1504. this.Control[iCurrent+1]=this.st_1
  1505. this.Control[iCurrent+2]=this.em_3
  1506. this.Control[iCurrent+3]=this.st_2
  1507. this.Control[iCurrent+4]=this.cb_3
  1508. this.Control[iCurrent+5]=this.cb_edit
  1509. this.Control[iCurrent+6]=this.cb_del
  1510. this.Control[iCurrent+7]=this.cb_5
  1511. this.Control[iCurrent+8]=this.st_5
  1512. this.Control[iCurrent+9]=this.cb_mx
  1513. this.Control[iCurrent+10]=this.ddlb_storageid
  1514. this.Control[iCurrent+11]=this.ddlb_1
  1515. this.Control[iCurrent+12]=this.tv_1
  1516. this.Control[iCurrent+13]=this.cb_audit
  1517. this.Control[iCurrent+14]=this.cb_caudit
  1518. this.Control[iCurrent+15]=this.cb_8
  1519. this.Control[iCurrent+16]=this.p_resize
  1520. this.Control[iCurrent+17]=this.cbx_1
  1521. this.Control[iCurrent+18]=this.cbx_packqty_cmpl
  1522. this.Control[iCurrent+19]=this.dw_2
  1523. end on
  1524. on w_ware_pdb.destroy
  1525. call super::destroy
  1526. destroy(this.st_1)
  1527. destroy(this.em_3)
  1528. destroy(this.st_2)
  1529. destroy(this.cb_3)
  1530. destroy(this.cb_edit)
  1531. destroy(this.cb_del)
  1532. destroy(this.cb_5)
  1533. destroy(this.st_5)
  1534. destroy(this.cb_mx)
  1535. destroy(this.ddlb_storageid)
  1536. destroy(this.ddlb_1)
  1537. destroy(this.tv_1)
  1538. destroy(this.cb_audit)
  1539. destroy(this.cb_caudit)
  1540. destroy(this.cb_8)
  1541. destroy(this.p_resize)
  1542. destroy(this.cbx_1)
  1543. destroy(this.cbx_packqty_cmpl)
  1544. destroy(this.dw_2)
  1545. end on
  1546. event open;call super::open;
  1547. s_hide_col s_col
  1548. s_col.col_1 = 'u_warepdb_wareamt'
  1549. s_col.col_2 = 'u_warepdb_cost'
  1550. s_col.col_3 = 'pypkamt'
  1551. f_hide_col(123,dw_1,s_col)
  1552. s_hide_col s_col_mtrlsectype
  1553. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  1554. f_hide_col(1308,dw_1,s_col_mtrlsectype)
  1555. s_hide_col s_col_zxmtrlmode
  1556. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  1557. f_hide_col(1309,dw_1,s_col_zxmtrlmode)
  1558. wf_init_pdb()
  1559. em_3.text=string(today(),'yyyy-mm-dd')
  1560. p_resize.PictureName = ProfileString(SYS_INIFILENAME, this.classname(), "p_resize", 'w_resize_2.bmp')
  1561. wf_face_change()
  1562. cb_1.triggerevent(clicked!)
  1563. end event
  1564. event ue_before_open;call super::ue_before_open;
  1565. if_ue_filter=true
  1566. if_ue_sort=true
  1567. if_ue_sentdataout=true
  1568. dw_2.SetTransObject (sqlca)
  1569. end event
  1570. event resize;ln_bar.EndX = THIS.Width
  1571. ln_bar2.EndX = THIS.Width
  1572. ln_1.EndX = THIS.Width
  1573. ln_2.EndX = THIS.Width
  1574. r_bar.Width = THIS.Width
  1575. tv_1.y = dw_1.Y
  1576. p_resize.y = dw_1.Y
  1577. IF p_resize.PictureName = 'w_resize_2.bmp' THEN
  1578. tv_1.Visible = TRUE
  1579. p_resize.X = tv_1.X+tv_1.Width+5
  1580. ELSE
  1581. tv_1.Visible = FALSE
  1582. p_resize.X = 0
  1583. END IF
  1584. dw_1.X = p_resize.X + p_resize.Width + 5
  1585. dw_1.Width = THIS.Width - dw_1.X - 40
  1586. dw_1.Height = THIS.Height - dw_1.Y - 110
  1587. tv_1.Height = dw_1.Height
  1588. p_resize.Height = dw_1.Height
  1589. end event
  1590. event close;call super::close;SetProfileString(SYS_INIFILENAME,this.classname(),"p_resize",p_resize.PictureName)
  1591. end event
  1592. type cb_func from w_publ_easyq`cb_func within w_ware_pdb
  1593. end type
  1594. type cb_exit from w_publ_easyq`cb_exit within w_ware_pdb
  1595. integer x = 2725
  1596. end type
  1597. type cb_2 from w_publ_easyq`cb_2 within w_ware_pdb
  1598. integer x = 2167
  1599. integer taborder = 100
  1600. boolean bringtotop = true
  1601. end type
  1602. type cb_psetup from w_publ_easyq`cb_psetup within w_ware_pdb
  1603. integer x = 2318
  1604. boolean bringtotop = true
  1605. end type
  1606. type cb_1 from w_publ_easyq`cb_1 within w_ware_pdb
  1607. boolean bringtotop = true
  1608. end type
  1609. event cb_1::clicked;call super::clicked;int rtr_zeronoallocqty
  1610. IF cbx_1.Checked THEN
  1611. rtr_zeronoallocqty = 0
  1612. ELSE
  1613. rtr_zeronoallocqty = 1
  1614. END IF
  1615. //此处增加参数, 要考虑 ue_audit.ds_1
  1616. dw_1.retrieve(cur_storageid_arr,ins_pdbdate,ls_handtype,rtr_zeronoallocqty)
  1617. //
  1618. wf_face()
  1619. end event
  1620. type st_3 from w_publ_easyq`st_3 within w_ware_pdb
  1621. boolean visible = false
  1622. integer x = 0
  1623. integer y = 396
  1624. end type
  1625. type st_4 from w_publ_easyq`st_4 within w_ware_pdb
  1626. boolean visible = false
  1627. integer x = 617
  1628. integer y = 572
  1629. end type
  1630. type em_1 from w_publ_easyq`em_1 within w_ware_pdb
  1631. boolean visible = false
  1632. integer x = 210
  1633. integer y = 388
  1634. integer taborder = 110
  1635. end type
  1636. type em_2 from w_publ_easyq`em_2 within w_ware_pdb
  1637. boolean visible = false
  1638. integer x = 667
  1639. integer y = 380
  1640. integer taborder = 120
  1641. end type
  1642. type ddlb_yl from w_publ_easyq`ddlb_yl within w_ware_pdb
  1643. integer x = 3122
  1644. integer y = 44
  1645. end type
  1646. type cbx_yl from w_publ_easyq`cbx_yl within w_ware_pdb
  1647. integer x = 2917
  1648. integer y = 44
  1649. end type
  1650. type dw_1 from w_publ_easyq`dw_1 within w_ware_pdb
  1651. integer x = 1051
  1652. integer y = 308
  1653. integer width = 2226
  1654. integer height = 1548
  1655. string dataobject = "dw_rp_warepdb"
  1656. end type
  1657. event dw_1::rowfocuschanged;call super::rowfocuschanged;IF currentrow <=0 THEN RETURN
  1658. this.selectrow(0,false)
  1659. this.selectrow(currentrow,true)
  1660. end event
  1661. event dw_1::itemchanged;call super::itemchanged;IF NOT DW_EDIT_MODE THEN RETURN
  1662. THIS.ACCEPTTEXT()
  1663. IF dwo.Name = 'u_warepdb_packqty' THEN
  1664. Long ll_mtrlid
  1665. Decimal lde_packqty_single, lde_packqty, lde_rate
  1666. IF ii_packqty_cmpl = 1 THEN
  1667. ll_mtrlid = This.Object.mtrlid[row]
  1668. lde_packqty_single = f_get_packqty(ll_mtrlid)
  1669. lde_packqty = This.Object.u_warepdb_packqty[row]
  1670. //lde_rate = This.Object.u_warepdb_billmx_rate[row]
  1671. //if lde_rate = 0 then lde_rate = 1
  1672. This.Object.u_warepdb_factqty[row] = lde_packqty * lde_packqty_single
  1673. //This.Object.u_warepdb_billmx_buyqty[row] = lde_packqty * lde_packqty_single / lde_rate
  1674. //This.Object.u_warepdb_billmx_saleqty[row] = lde_packqty * lde_packqty_single / lde_rate
  1675. END IF
  1676. END IF
  1677. end event
  1678. type sle_mtrl from w_publ_easyq`sle_mtrl within w_ware_pdb
  1679. end type
  1680. type sle_cust from w_publ_easyq`sle_cust within w_ware_pdb
  1681. end type
  1682. type st_mtrl from w_publ_easyq`st_mtrl within w_ware_pdb
  1683. end type
  1684. type st_cust from w_publ_easyq`st_cust within w_ware_pdb
  1685. end type
  1686. type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_ware_pdb
  1687. end type
  1688. type pb_em1 from w_publ_easyq`pb_em1 within w_ware_pdb
  1689. boolean visible = false
  1690. end type
  1691. type pb_em2 from w_publ_easyq`pb_em2 within w_ware_pdb
  1692. boolean visible = false
  1693. end type
  1694. type pb_2 from w_publ_easyq`pb_2 within w_ware_pdb
  1695. boolean visible = false
  1696. end type
  1697. type cb_help from w_publ_easyq`cb_help within w_ware_pdb
  1698. integer x = 2574
  1699. end type
  1700. type cb_copyself from w_publ_easyq`cb_copyself within w_ware_pdb
  1701. end type
  1702. type gb_1 from w_publ_easyq`gb_1 within w_ware_pdb
  1703. end type
  1704. type ln_bar from w_publ_easyq`ln_bar within w_ware_pdb
  1705. end type
  1706. type ln_bar2 from w_publ_easyq`ln_bar2 within w_ware_pdb
  1707. end type
  1708. type r_bar from w_publ_easyq`r_bar within w_ware_pdb
  1709. integer x = 3086
  1710. end type
  1711. type ln_1 from w_publ_easyq`ln_1 within w_ware_pdb
  1712. end type
  1713. type ln_2 from w_publ_easyq`ln_2 within w_ware_pdb
  1714. end type
  1715. type ln_3 from w_publ_easyq`ln_3 within w_ware_pdb
  1716. boolean visible = false
  1717. integer beginy = 304
  1718. integer endy = 304
  1719. end type
  1720. type ln_4 from w_publ_easyq`ln_4 within w_ware_pdb
  1721. boolean visible = false
  1722. integer beginy = 308
  1723. integer endy = 308
  1724. end type
  1725. type st_1 from statictext within w_ware_pdb
  1726. integer x = 1193
  1727. integer y = 212
  1728. integer width = 256
  1729. integer height = 48
  1730. boolean bringtotop = true
  1731. integer textsize = -9
  1732. integer weight = 400
  1733. fontcharset fontcharset = gb2312charset!
  1734. fontpitch fontpitch = variable!
  1735. string facename = "宋体"
  1736. long textcolor = 33554432
  1737. long backcolor = 134217739
  1738. string text = "盘点日期"
  1739. alignment alignment = right!
  1740. boolean focusrectangle = false
  1741. end type
  1742. type em_3 from editmask within w_ware_pdb
  1743. integer x = 1467
  1744. integer y = 192
  1745. integer width = 434
  1746. integer height = 92
  1747. integer taborder = 80
  1748. boolean bringtotop = true
  1749. integer textsize = -9
  1750. integer weight = 400
  1751. fontcharset fontcharset = gb2312charset!
  1752. fontpitch fontpitch = variable!
  1753. string facename = "宋体"
  1754. long textcolor = 33554432
  1755. string text = "none"
  1756. alignment alignment = center!
  1757. borderstyle borderstyle = stylelowered!
  1758. maskdatatype maskdatatype = datetimemask!
  1759. string mask = "yyyy-mm-dd"
  1760. boolean spin = true
  1761. end type
  1762. event rbuttondown;s_calender_arg s_calender
  1763. s_calender.PointerX = THIS.PointerX()
  1764. s_calender.PointerY = THIS.PointerY()
  1765. s_calender.X = THIS.X
  1766. s_calender.Y = THIS.Y
  1767. OpenWithParm(w_calendar,s_calender)
  1768. THIS.Text = String(id_date_selected)
  1769. end event
  1770. type st_2 from statictext within w_ware_pdb
  1771. integer x = 9
  1772. integer y = 212
  1773. integer width = 128
  1774. integer height = 48
  1775. boolean bringtotop = true
  1776. integer textsize = -9
  1777. integer weight = 400
  1778. fontcharset fontcharset = gb2312charset!
  1779. fontpitch fontpitch = variable!
  1780. string facename = "宋体"
  1781. long textcolor = 33554432
  1782. long backcolor = 134217739
  1783. string text = "仓库"
  1784. alignment alignment = right!
  1785. boolean focusrectangle = false
  1786. end type
  1787. type cb_3 from uo_imflatbutton within w_ware_pdb
  1788. integer x = 562
  1789. integer width = 251
  1790. integer height = 164
  1791. integer taborder = 20
  1792. boolean bringtotop = true
  1793. string text = "建盘点表"
  1794. string normalpicname = "new.BMP"
  1795. integer picsize = 16
  1796. toolbaralignment pic_align = alignattop!
  1797. boolean border = false
  1798. end type
  1799. event clicked;call super::clicked;
  1800. IF NOT f_power_ind(246) THEN
  1801. MessageBox('提示','你没有使用权限!',information!,ok!)
  1802. RETURN
  1803. END IF
  1804. Date ld_pdbdate
  1805. DateTime ldt_pdbdate
  1806. Long cnt
  1807. ld_pdbdate = Date(Trim(em_3.Text))
  1808. ldt_pdbdate = DateTime(ld_pdbdate,Time('23:59:59'))
  1809. IF Year(ld_pdbdate) < 2000 OR IsNull(ld_pdbdate) THEN
  1810. MessageBox('提示',"缺少盘点发生时间或不合理",information!,ok!)
  1811. RETURN
  1812. END IF
  1813. if cur_storageid <= 0 then
  1814. MessageBox('提示',"请选择仓库",information!,ok!)
  1815. RETURN
  1816. END IF
  1817. cnt = 0
  1818. SELECT count(*) INTO :cnt
  1819. FROM u_inware
  1820. WHERE storageid = :cur_storageid
  1821. AND indate > :ldt_pdbdate
  1822. AND flag = 1;
  1823. IF sqlca.SQLCode <> 0 THEN
  1824. MessageBox('错误',"查询盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后是否有进仓单审核操作失败",stopsign!,ok!)
  1825. RETURN
  1826. END IF
  1827. IF cnt > 0 THEN
  1828. IF MessageBox ("询问","盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后有进仓单已审核,是否继续盘点?",Question!,YesNo! ) = 2 THEN RETURN
  1829. END IF
  1830. cnt = 0
  1831. SELECT count(*) INTO :cnt
  1832. FROM u_outware
  1833. WHERE storageid = :cur_storageid
  1834. AND outdate > :ldt_pdbdate
  1835. AND flag = 1;
  1836. IF sqlca.SQLCode <> 0 THEN
  1837. MessageBox('错误',"查询盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后是否有出仓单审核操作失败",stopsign!,ok!)
  1838. RETURN
  1839. END IF
  1840. IF cnt > 0 THEN
  1841. IF MessageBox ("询问","盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后有出仓单已审核,是否继续盘点?",Question!,YesNo! ) = 2 THEN RETURN
  1842. END IF
  1843. //检查单据
  1844. String arg_msg
  1845. IF uf_warebalc_check_inoutflag(cur_storageid,ldt_pdbdate,arg_msg) = 0 THEN
  1846. MessageBox('系统提示',arg_msg)
  1847. RETURN
  1848. END IF
  1849. wf_instorage()
  1850. wf_init_pdb()
  1851. cb_1.triggerevent(clicked!)
  1852. end event
  1853. type cb_edit from uo_imflatbutton within w_ware_pdb
  1854. integer x = 1061
  1855. integer width = 151
  1856. integer height = 164
  1857. integer taborder = 30
  1858. boolean bringtotop = true
  1859. string text = "修改"
  1860. string normalpicname = "open.bmp"
  1861. integer picsize = 16
  1862. toolbaralignment pic_align = alignattop!
  1863. boolean border = false
  1864. end type
  1865. event clicked;call super::clicked;IF Not f_power_ind(246) THEN
  1866. MessageBox('提示','你没有使用权限!',information!,ok!)
  1867. RETURN
  1868. END IF
  1869. Int cnt = 0
  1870. String arg_msg
  1871. SELECT count(*)
  1872. INTO :cnt
  1873. FROM u_warepdb
  1874. WHERE u_warepdb.storageid = :cur_storageid
  1875. AND u_warepdb.pdbdate = :ins_pdbdate
  1876. And flag = 1 Using sqlca;
  1877. IF sqlca.SQLCode < 0 THEN
  1878. MessageBox('错误','查询操作失败,在盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!',stopsign!,ok!)
  1879. RETURN
  1880. ELSE
  1881. IF cnt > 0 THEN
  1882. MessageBox('提示','盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核,不能修改!',information!,ok!)
  1883. RETURN
  1884. END IF
  1885. END IF
  1886. IF dw_edit_mode THEN
  1887. IF wf_check_ifmtrlware( arg_msg) = 0 THEN
  1888. MessageBox('错误',arg_msg,stopsign!,ok!)
  1889. RETURN
  1890. END IF
  1891. IF dw_1.Update() = -1 THEN
  1892. ROLLBACK;
  1893. MessageBox('错误','当前盘点表保存失败!',stopsign!,ok!)
  1894. RETURN
  1895. ELSE
  1896. COMMIT;
  1897. MessageBox('提示','当前盘点表保存成功!',information!,ok!)
  1898. END IF
  1899. END IF
  1900. dw_edit_mode = Not dw_edit_mode
  1901. wf_face()
  1902. IF Not dw_edit_mode THEN cb_1.TriggerEvent(Clicked!)
  1903. end event
  1904. type cb_del from uo_imflatbutton within w_ware_pdb
  1905. integer x = 1211
  1906. integer width = 151
  1907. integer height = 164
  1908. integer taborder = 40
  1909. boolean bringtotop = true
  1910. boolean enabled = false
  1911. string text = "取消"
  1912. string normalpicname = "undo.bmp"
  1913. integer picsize = 16
  1914. toolbaralignment pic_align = alignattop!
  1915. boolean border = false
  1916. end type
  1917. event clicked;call super::clicked;dw_edit_mode=false
  1918. wf_face()
  1919. cb_1.triggerevent(clicked!)
  1920. end event
  1921. type cb_5 from uo_imflatbutton within w_ware_pdb
  1922. integer x = 809
  1923. integer width = 251
  1924. integer height = 164
  1925. integer taborder = 90
  1926. boolean bringtotop = true
  1927. string text = "删盘点表"
  1928. string normalpicname = "delete.bmp"
  1929. integer picsize = 16
  1930. toolbaralignment pic_align = alignattop!
  1931. boolean border = false
  1932. end type
  1933. event clicked;call super::clicked;string arg_msg
  1934. IF NOT f_power_ind(1821) THEN
  1935. MessageBox('提示','你没有使用权限!',information!,ok!)
  1936. RETURN
  1937. END IF
  1938. IF MessageBox ("询问","是否确定要删除当前盘点表?",question!,yesno! ) = 2 THEN RETURN
  1939. //wf_del()
  1940. uo_ware_pdb_balc uo_pdb
  1941. uo_pdb = CREATE uo_ware_pdb_balc
  1942. IF uo_pdb.uof_pdb_del(cur_storageid,ins_pdbdate,arg_msg,TRUE) = 0 THEN
  1943. MessageBox('错误','删除盘点表失败,'+arg_msg,stopsign!,ok!)
  1944. RETURN
  1945. END IF
  1946. DESTROY uo_pdb
  1947. wf_init_pdb()
  1948. cb_1.triggerevent(clicked!)
  1949. end event
  1950. type st_5 from statictext within w_ware_pdb
  1951. integer x = 1915
  1952. integer y = 212
  1953. integer width = 288
  1954. integer height = 60
  1955. boolean bringtotop = true
  1956. integer textsize = -9
  1957. integer weight = 400
  1958. fontcharset fontcharset = gb2312charset!
  1959. fontpitch fontpitch = variable!
  1960. string facename = "宋体"
  1961. long textcolor = 33554432
  1962. long backcolor = 134217739
  1963. string text = "盘点日列表"
  1964. alignment alignment = right!
  1965. boolean focusrectangle = false
  1966. end type
  1967. type cb_mx from uo_imflatbutton within w_ware_pdb
  1968. integer x = 1664
  1969. integer width = 251
  1970. integer height = 164
  1971. integer taborder = 80
  1972. boolean bringtotop = true
  1973. string text = "明细功能"
  1974. string normalpicname = "mx1.bmp"
  1975. integer picsize = 16
  1976. toolbaralignment pic_align = alignattop!
  1977. boolean border = false
  1978. end type
  1979. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1980. String menustr
  1981. IF dw_edit_mode THEN
  1982. menustr += "Text=增明细~tEvent=ue_f8"
  1983. menustr += "|" + "Text=删明细~tEvent=ue_delmx"
  1984. menustr += "|" + "Text=从execl导入到盘点表~tEvent=ue_insert_execltodw"
  1985. END IF
  1986. menustr += "|" + "Text=明细标题与execl标题对应关系设置~tEvent=ue_set_dytitle"
  1987. menustr += "|" + "Text=从盘点表导出到execl~tEvent=ue_sentdataout_ware"
  1988. IF Len(Trim(menustr)) <> 0 THEN
  1989. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1990. dmPopupMenu.mf_BuildMenu(This, menustr)
  1991. dmPopupMenu.mf_PopMenu()
  1992. Destroy dmPopupMenu
  1993. END IF
  1994. end event
  1995. type ddlb_storageid from uo_ddlb_storageid within w_ware_pdb
  1996. integer x = 146
  1997. integer y = 196
  1998. integer width = 1015
  1999. integer height = 1428
  2000. integer taborder = 20
  2001. boolean bringtotop = true
  2002. end type
  2003. event constructor;call super::constructor;cur_storageid = this.uo_storageid
  2004. cur_storageid_arr = this.uo_storageid_arr
  2005. end event
  2006. event selectionchanged;call super::selectionchanged;cur_storageid = this.uo_storageid
  2007. cur_storageid_arr = this.uo_storageid_arr
  2008. wf_init_pdb()
  2009. cb_1.triggerevent(clicked!)
  2010. end event
  2011. type ddlb_1 from dropdownlistbox within w_ware_pdb
  2012. integer x = 2226
  2013. integer y = 196
  2014. integer width = 475
  2015. integer height = 860
  2016. integer taborder = 130
  2017. boolean bringtotop = true
  2018. integer textsize = -10
  2019. integer weight = 400
  2020. fontcharset fontcharset = gb2312charset!
  2021. fontpitch fontpitch = variable!
  2022. string facename = "宋体"
  2023. long textcolor = 33554432
  2024. boolean sorted = false
  2025. borderstyle borderstyle = stylelowered!
  2026. end type
  2027. event selectionchanged;ins_pdbdate = Trim(ddlb_1.Text)
  2028. cb_1.triggerevent(clicked!)
  2029. end event
  2030. type tv_1 from uo_tv_mtrltype within w_ware_pdb
  2031. integer y = 308
  2032. integer width = 887
  2033. integer height = 1068
  2034. integer taborder = 120
  2035. integer textsize = -9
  2036. fontcharset fontcharset = gb2312charset!
  2037. fontfamily fontfamily = anyfont!
  2038. string facename = "宋体"
  2039. end type
  2040. event selectionchanged;call super::selectionchanged;ls_handtype = THIS.uo_cur_info.handtype
  2041. ls_handtype = ls_handtype + '%'
  2042. cb_1.triggerevent(clicked!)
  2043. end event
  2044. type cb_audit from uo_imflatbutton within w_ware_pdb
  2045. integer x = 1362
  2046. integer width = 151
  2047. integer height = 164
  2048. integer taborder = 50
  2049. boolean bringtotop = true
  2050. string text = "审核"
  2051. string normalpicname = "audit.bmp"
  2052. integer picsize = 16
  2053. toolbaralignment pic_align = alignattop!
  2054. boolean border = false
  2055. end type
  2056. event clicked;call super::clicked;parent.triggerevent("ue_audit")
  2057. end event
  2058. type cb_caudit from uo_imflatbutton within w_ware_pdb
  2059. integer x = 1513
  2060. integer width = 151
  2061. integer height = 164
  2062. integer taborder = 60
  2063. boolean bringtotop = true
  2064. string text = "撤审"
  2065. string normalpicname = "caudit.bmp"
  2066. integer picsize = 16
  2067. toolbaralignment pic_align = alignattop!
  2068. boolean border = false
  2069. end type
  2070. event clicked;call super::clicked;parent.triggerevent("ue_audit_c")
  2071. end event
  2072. type cb_8 from uo_imflatbutton within w_ware_pdb
  2073. integer x = 1915
  2074. integer width = 251
  2075. integer height = 164
  2076. integer taborder = 100
  2077. boolean bringtotop = true
  2078. string text = "辅助功能"
  2079. string normalpicname = "other.bmp"
  2080. integer picsize = 16
  2081. toolbaralignment pic_align = alignattop!
  2082. boolean border = false
  2083. end type
  2084. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  2085. String menustr
  2086. IF dw_edit_mode THEN
  2087. menustr = "Text=盘点数量等于库存数量~tEvent=ue_copy_qty"
  2088. menustr = menustr + "|" + "Text=盘点辅数等于库存辅数~tEvent=ue_copy_addqty"
  2089. ELSE
  2090. //menustr = menustr + "|" + "Text=-"
  2091. menustr = menustr + "|" + "Text=按物料资料【盘亏生成领料】更新盘亏领料属性~tEvent=ue_update_scllflag"
  2092. //menustr = menustr + "|" + "Text=设置【盘亏生成领料】的盘亏物料辅助生成领料出仓单~tEvent=ue_create_outware_scll"
  2093. END IF
  2094. IF Len(Trim(menustr)) <> 0 THEN
  2095. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  2096. dmPopupMenu.mf_BuildMenu(This, menustr)
  2097. dmPopupMenu.mf_PopMenu()
  2098. Destroy dmPopupMenu
  2099. END IF
  2100. end event
  2101. type p_resize from picture within w_ware_pdb
  2102. integer x = 896
  2103. integer y = 412
  2104. integer width = 32
  2105. integer height = 1020
  2106. boolean bringtotop = true
  2107. string pointer = "HyperLink!"
  2108. string picturename = "w_resize_2.bmp"
  2109. boolean focusrectangle = false
  2110. end type
  2111. event clicked;IF THIS.picturename = 'w_resize_1.bmp' THEN
  2112. THIS.picturename = 'w_resize_2.bmp'
  2113. // THIS.X = 891
  2114. // dw_1.X = 928
  2115. // tv_1.Visible = TRUE
  2116. ELSE
  2117. THIS.picturename = 'w_resize_1.bmp'
  2118. // THIS.X = 0
  2119. // dw_1.X = p_resize.Width + 5
  2120. // tv_1.Visible = FALSE
  2121. END IF
  2122. wf_face_change()
  2123. //PARENT.TriggerEvent(Resize!)
  2124. end event
  2125. type cbx_1 from checkbox within w_ware_pdb
  2126. integer x = 2821
  2127. integer y = 212
  2128. integer width = 411
  2129. integer height = 60
  2130. boolean bringtotop = true
  2131. integer textsize = -9
  2132. integer weight = 400
  2133. fontcharset fontcharset = gb2312charset!
  2134. fontpitch fontpitch = variable!
  2135. string facename = "宋体"
  2136. long textcolor = 33554432
  2137. long backcolor = 134217739
  2138. string text = "显示 0 数量"
  2139. end type
  2140. event clicked;cb_1.TriggerEvent(Clicked!)
  2141. end event
  2142. type cbx_packqty_cmpl from checkbox within w_ware_pdb
  2143. integer x = 3241
  2144. integer y = 212
  2145. integer width = 576
  2146. integer height = 60
  2147. boolean bringtotop = true
  2148. integer textsize = -9
  2149. integer weight = 400
  2150. fontcharset fontcharset = gb2312charset!
  2151. fontpitch fontpitch = variable!
  2152. string facename = "宋体"
  2153. long textcolor = 33554432
  2154. long backcolor = 134217739
  2155. string text = "录入包装数计算数量"
  2156. end type
  2157. event clicked;IF THIS.Checked THEN
  2158. ii_packqty_cmpl = 1
  2159. ELSE
  2160. ii_packqty_cmpl = 0
  2161. END IF
  2162. f_SetProfileString (sys_empid,publ_userid+'_'+dw_1.DataObject, "packqty_cmpl",String(ii_packqty_cmpl))
  2163. end event
  2164. event constructor;//this.backcolor = 14215660
  2165. ii_packqty_cmpl = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_1.DataObject, "packqty_cmpl",'0'))
  2166. IF ii_packqty_cmpl = 1 THEN
  2167. THIS.Checked = TRUE
  2168. ELSE
  2169. THIS.Checked = FALSE
  2170. END IF
  2171. //this.y = cbx_enamt_edit.y
  2172. //this.x = cbx_enamt_edit.x + cbx_enamt_edit.width + 10
  2173. end event
  2174. type dw_2 from datawindow within w_ware_pdb
  2175. boolean visible = false
  2176. integer x = 1531
  2177. integer y = 896
  2178. integer width = 1038
  2179. integer height = 1628
  2180. integer taborder = 90
  2181. boolean bringtotop = true
  2182. string title = "none"
  2183. string dataobject = "dw_rp_warepdb_xls"
  2184. boolean hscrollbar = true
  2185. boolean vscrollbar = true
  2186. boolean hsplitscroll = true
  2187. boolean livescroll = true
  2188. borderstyle borderstyle = stylelowered!
  2189. end type