w_dismantle_install.srw 93 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218
  1. $PBExportHeader$w_dismantle_install.srw
  2. forward
  3. global type w_dismantle_install from w_publ_1ton_share_detail
  4. end type
  5. type ddlb_status from dropdownlistbox within w_dismantle_install
  6. end type
  7. type st_3 from statictext within w_dismantle_install
  8. end type
  9. type st_2 from statictext within w_dismantle_install
  10. end type
  11. type ddlb_1 from dropdownlistbox within w_dismantle_install
  12. end type
  13. type cbx_di from checkbox within w_dismantle_install
  14. end type
  15. end forward
  16. shared variables
  17. end variables
  18. global type w_dismantle_install from w_publ_1ton_share_detail
  19. string title = "拆装单"
  20. boolean maxbox = true
  21. windowstate windowstate = maximized!
  22. long dw_pageretr_w = 33831092
  23. long dw_child_h = 33892296
  24. long dw_child_w = 33894040
  25. event insert_childrow ( )
  26. event ue_cmpl_qty ( )
  27. event ue_cmpl ( )
  28. event ue_check_qty ( )
  29. event ue_fj_edit ( )
  30. event ue_fj_view ( )
  31. event ue_view_pz ( )
  32. ddlb_status ddlb_status
  33. st_3 st_3
  34. st_2 st_2
  35. ddlb_1 ddlb_1
  36. cbx_di cbx_di
  37. end type
  38. global w_dismantle_install w_dismantle_install
  39. type variables
  40. Int cur_flag = -1
  41. int cur_billtype = 0
  42. long cur_mtrlwareid = 0
  43. uo_dismantle_install uo_ware
  44. String ol_cdw_str = ''
  45. end variables
  46. forward prototypes
  47. public function integer wf_refresh_curuc (long arg_billid)
  48. public function integer wf_flagstatus_rf ()
  49. public function integer wf_init_data (long arg_mtrlwareid)
  50. public function integer wf_checkqty (ref string arg_msg)
  51. public subroutine wf_check_billfj ()
  52. public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg)
  53. public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg)
  54. public function integer wf_checkstorageid (integer arg_id)
  55. end prototypes
  56. event insert_childrow();long li_row
  57. li_row=dw_child.insertrow(0)
  58. dw_child.scrolltorow(li_row)
  59. dw_child.SetColumn ('storageid')
  60. if li_row > 2 then
  61. dw_child.object.storageid[li_row] = dw_child.object.storageid[li_row - 1]
  62. end if
  63. end event
  64. event ue_cmpl_qty();IF NOT dw_edit_mode THEN
  65. MessageBox('提示',"非编辑状态下不可以使用!",information!,OK!)
  66. RETURN
  67. END IF
  68. IF cbx_di.Checked THEN
  69. IF NOT f_power_ind(1323) THEN
  70. MessageBox('提示','你没有跨仓库计算拆装权限!',information!,OK!)
  71. RETURN
  72. END IF
  73. END IF
  74. Long ll_SonMtrlid[],ll_mtrlid,ll_storageid
  75. String ls_pf_status[],ls_status_uc,ls_status_find
  76. Decimal ld_Sonscale[]
  77. Long it_mxt = 1
  78. Long uc_row
  79. Decimal ld_qty
  80. Long ll_i,ll_row
  81. dw_uc.AcceptText()
  82. uc_row = dw_uc.GetRow()
  83. ll_mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[uc_row]
  84. ll_storageid = dw_uc.Object.u_dismantle_install_storageid[uc_row]
  85. ls_status_uc = dw_uc.Object.u_dismantle_install_status[uc_row]
  86. IF cur_billtype = 1 THEN
  87. MessageBox('提示','不是装单不能计算可装数量',information!,OK!)
  88. RETURN
  89. END IF
  90. IF ll_storageid <= 0 THEN
  91. MessageBox('提示','请选择仓库',information!,OK!)
  92. RETURN
  93. END IF
  94. DECLARE cur_pf CURSOR FOR
  95. SELECT u_PrdPF.SonMtrlid,
  96. u_PrdPF.Sonscale,
  97. u_PrdPF.status
  98. FROM u_PrdPF
  99. Where u_PrdPF.mtrlid = :ll_mtrlid;
  100. OPEN cur_pf;
  101. FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt];
  102. DO WHILE sqlca.SQLCode = 0
  103. it_mxt++
  104. FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt];
  105. LOOP
  106. it_mxt = it_mxt - 1
  107. CLOSE cur_pf;
  108. IF it_mxt = 0 THEN
  109. MessageBox('提示','该产品没有建立组装结构,不能计算',information!,OK!)
  110. RETURN
  111. END IF
  112. String ls_mtrlcode,ls_mtrlname
  113. Decimal ld_noallocqty,ld_allqty,ld_maxqty
  114. IF cbx_di.Checked THEN
  115. ll_storageid = -1
  116. END IF
  117. ld_maxqty = 1000000
  118. FOR ll_i = 1 TO it_mxt
  119. SELECT mtrlcode,
  120. mtrlname
  121. INTO :ls_mtrlcode,
  122. :ls_mtrlname
  123. FROM u_mtrldef
  124. Where mtrlid = :ll_SonMtrlid[ll_i];
  125. IF sqlca.SQLCode <> 0 THEN
  126. MessageBox('错误','查询产品资料失败',stopsign!,OK!)
  127. RETURN
  128. END IF
  129. IF sys_option_if_color = 1 THEN
  130. ls_status_find = ls_status_uc
  131. ELSE
  132. ls_status_find = ls_pf_status[ll_i]
  133. END IF
  134. ld_noallocqty = 0
  135. ld_allqty = 0
  136. SELECT sum(noallocqty) INTO :ld_noallocqty
  137. FROM u_mtrlware
  138. WHERE (storageid = :ll_storageid OR :ll_storageid = -1)
  139. AND (mtrlid = :ll_SonMtrlid[ll_i])
  140. And (status = :ls_status_find);
  141. IF sqlca.SQLCode <> 0 THEN
  142. MessageBox('错误','查询该产品组装材料'+ls_mtrlname+'的库存资料失败',stopsign!,OK!)
  143. RETURN
  144. END IF
  145. ld_allqty = ld_noallocqty/ld_Sonscale[ll_i]
  146. ld_maxqty = Min(ld_maxqty,ld_allqty)
  147. IF IsNull(ld_maxqty) THEN ld_maxqty = 0
  148. NEXT
  149. ld_qty = Truncate ( ld_maxqty, 0 )
  150. dw_uc.Object.u_dismantle_install_allocqty[uc_row] = ld_qty
  151. dw_uc.Object.u_dismantle_install_qty[uc_row] = ld_qty
  152. end event
  153. event ue_cmpl();IF NOT dw_edit_mode THEN
  154. MessageBox('提示',"非编辑状态下不可以使用!",information!,OK!)
  155. RETURN
  156. END IF
  157. IF cbx_di.Checked THEN
  158. IF NOT f_power_ind(1323) THEN
  159. MessageBox('提示','你没有跨仓库计算拆装权限!',information!,OK!)
  160. RETURN
  161. END IF
  162. END IF
  163. Long ll_SonMtrlid[],ll_mtrlid,ll_storageid
  164. String ls_pf_status[],ls_status_uc,ls_status_find
  165. String ls_pf_woodcode[],ls_woodcode_uc,ls_woodcode_find
  166. String ls_pf_pcode[],ls_pcode_uc,ls_pcode_find
  167. Decimal ld_Sonscale[]
  168. Long it_mxt = 1
  169. Long uc_row,count
  170. Decimal ld_qty,ins_qty,ins_planprice,r_qty,i_qty,ins_cost
  171. Long ll_i,ll_row,ins_storageid,ins_mtrlwareid
  172. String ins_plancode,ins_woodcode,ins_pcode,ins_status
  173. Boolean lb_find = TRUE
  174. dw_uc.AcceptText()
  175. dw_child.Reset()
  176. uc_row = dw_uc.GetRow()
  177. ll_mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[uc_row]
  178. ll_storageid = dw_uc.Object.u_dismantle_install_storageid[uc_row]
  179. ld_qty = dw_uc.Object.u_dismantle_install_qty[uc_row]
  180. ls_status_uc = dw_uc.Object.u_dismantle_install_status[uc_row]
  181. IF ll_storageid <= 0 THEN
  182. MessageBox('提示','请选择仓库',information!,OK!)
  183. RETURN
  184. END IF
  185. DECLARE cur_pf CURSOR FOR
  186. SELECT u_PrdPF.SonMtrlid,
  187. u_PrdPF.Sonscale,
  188. u_PrdPF.status,
  189. u_PrdPF.woodcode,
  190. u_PrdPF.status
  191. FROM u_PrdPF
  192. WHERE u_PrdPF.mtrlid = :ll_mtrlid
  193. AND u_PrdPF.pfcode = '组装';
  194. OPEN cur_pf;
  195. FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],
  196. :ld_Sonscale[it_mxt],
  197. :ls_pf_status[it_mxt],
  198. :ls_pf_woodcode[it_mxt],
  199. :ls_pf_status[it_mxt];
  200. DO WHILE sqlca.SQLCode = 0
  201. it_mxt++
  202. FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],
  203. :ld_Sonscale[it_mxt],
  204. :ls_pf_status[it_mxt],
  205. :ls_pf_woodcode[it_mxt],
  206. :ls_pf_status[it_mxt];
  207. LOOP
  208. it_mxt = it_mxt - 1
  209. CLOSE cur_pf;
  210. IF it_mxt = 0 THEN
  211. MessageBox('提示','该产品没有建立组装结构,不能计算',information!,OK!)
  212. RETURN
  213. END IF
  214. Long ll_mtrlwareid
  215. Decimal ld_cost,ld_noallocqty,ld_planprice
  216. String ls_status,ls_woodcode,ls_plancode,ls_pcode
  217. String ls_mtrlcode,ls_mtrlname,ls_mtrlmode
  218. String ls_unit
  219. Long ll_sptid
  220. Int li_dxflag
  221. Long ll_storageid_f
  222. IF cur_billtype = 0 THEN
  223. FOR ll_i = 1 TO it_mxt
  224. r_qty = 0
  225. lb_find = TRUE
  226. SELECT mtrlcode,
  227. mtrlname,
  228. mtrlmode,
  229. unit,
  230. planprice
  231. INTO :ls_mtrlcode,
  232. :ls_mtrlname,
  233. :ls_mtrlmode,
  234. :ls_unit,
  235. :ld_planprice
  236. FROM u_mtrldef
  237. Where mtrlid = :ll_SonMtrlid[ll_i];
  238. IF sqlca.SQLCode <> 0 THEN
  239. MessageBox('错误','查询产品默认仓库资料失败',stopsign!,OK!)
  240. RETURN
  241. END IF
  242. IF sys_option_if_color = 1 THEN
  243. ls_status_find = ls_status_uc
  244. ELSE
  245. ls_status_find = ls_pf_status[ll_i]
  246. END IF
  247. IF cbx_di.Checked THEN
  248. Decimal ld_rqty
  249. ld_rqty = ld_Sonscale[ll_i] * ld_qty
  250. ll_mtrlwareid = 0
  251. ls_status = ''
  252. ls_woodcode = ''
  253. ls_plancode = ''
  254. ls_pcode = ''
  255. li_dxflag = 0
  256. ll_sptid = 0
  257. ld_noallocqty = 0
  258. ld_cost = 0
  259. ll_storageid_f = 0
  260. DECLARE m_cur CURSOR FOR
  261. SELECT mtrlwareid,
  262. status,
  263. woodcode,
  264. plancode,
  265. pcode,
  266. dxflag,
  267. sptid,
  268. noallocqty,
  269. cost,
  270. storageid
  271. FROM u_mtrlware
  272. WHERE mtrlid = :ll_SonMtrlid[ll_i]
  273. AND storageid = :ll_storageid
  274. AND ( status = :ls_status_find )
  275. Order By noallocqty Desc;
  276. OPEN m_cur;
  277. FETCH m_cur INTO
  278. :ll_mtrlwareid,
  279. :ls_status,
  280. :ls_woodcode,
  281. :ls_plancode,
  282. :ls_pcode,
  283. :li_dxflag,
  284. :ll_sptid,
  285. :ld_noallocqty,
  286. :ld_cost,
  287. :ll_storageid_f;
  288. DO WHILE sqlca.SQLCode = 0
  289. ll_row = dw_child.InsertRow(0)
  290. dw_child.Object.mtrlwareid[ll_row] = ll_mtrlwareid
  291. dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i]
  292. dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode
  293. dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname
  294. dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode
  295. dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit
  296. dw_child.Object.price[ll_row] = ld_cost
  297. dw_child.Object.storageid[ll_row] = ll_storageid_f
  298. dw_child.Object.plancode[ll_row] = ls_plancode
  299. dw_child.Object.status[ll_row] = ls_status
  300. dw_child.Object.woodcode[ll_row] = ls_woodcode
  301. dw_child.Object.u_dismantle_installmx_pcode[ll_row] = ls_pcode
  302. dw_child.Object.u_dismantle_installmx_dxflag[ll_row] = li_dxflag
  303. dw_child.Object.u_dismantle_installmx_sptid[ll_row] = ll_sptid
  304. dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i]
  305. dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = ld_noallocqty
  306. IF ld_noallocqty >= ld_rqty THEN
  307. dw_child.Object.qty[ll_row] = ld_rqty
  308. ld_rqty = 0
  309. EXIT
  310. ELSE
  311. dw_child.Object.qty[ll_row] = ld_noallocqty
  312. ld_rqty = ld_rqty - ld_noallocqty
  313. END IF
  314. FETCH m_cur INTO
  315. :ll_mtrlwareid,
  316. :ls_status,
  317. :ls_woodcode,
  318. :ls_plancode,
  319. :ls_pcode,
  320. :li_dxflag,
  321. :ll_sptid,
  322. :ld_noallocqty,
  323. :ld_cost,
  324. :ll_storageid_f;
  325. LOOP
  326. CLOSE m_cur;
  327. //吾够数量
  328. IF ld_rqty > 0 AND cbx_di.Checked THEN
  329. ll_mtrlwareid = 0
  330. ls_status = ''
  331. ls_woodcode = ''
  332. ls_plancode = ''
  333. ls_pcode = ''
  334. li_dxflag = 0
  335. ll_sptid = 0
  336. ld_noallocqty = 0
  337. ld_cost = 0
  338. ll_storageid_f = 0
  339. DECLARE o_cur CURSOR FOR
  340. SELECT mtrlwareid,
  341. status,
  342. woodcode,
  343. plancode,
  344. pcode,
  345. dxflag,
  346. sptid,
  347. noallocqty,
  348. cost,
  349. storageid
  350. FROM u_mtrlware
  351. WHERE mtrlid = :ll_SonMtrlid[ll_i]
  352. AND storageid <> :ll_storageid
  353. AND ( status = :ls_status_find )
  354. Order By noallocqty Desc;
  355. OPEN o_cur;
  356. FETCH o_cur INTO
  357. :ll_mtrlwareid,
  358. :ls_status,
  359. :ls_woodcode,
  360. :ls_plancode,
  361. :ls_pcode,
  362. :li_dxflag,
  363. :ll_sptid,
  364. :ld_noallocqty,
  365. :ld_cost,
  366. :ll_storageid_f;
  367. DO WHILE sqlca.SQLCode = 0
  368. ll_row = dw_child.InsertRow(0)
  369. dw_child.Object.mtrlwareid[ll_row] = ll_mtrlwareid
  370. dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i]
  371. dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode
  372. dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname
  373. dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode
  374. dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit
  375. dw_child.Object.price[ll_row] = ld_cost
  376. dw_child.Object.storageid[ll_row] = ll_storageid_f
  377. dw_child.Object.plancode[ll_row] = ls_plancode
  378. dw_child.Object.status[ll_row] = ls_status
  379. dw_child.Object.woodcode[ll_row] = ls_woodcode
  380. dw_child.Object.u_dismantle_installmx_pcode[ll_row] = ls_pcode
  381. dw_child.Object.u_dismantle_installmx_dxflag[ll_row] = li_dxflag
  382. dw_child.Object.u_dismantle_installmx_sptid[ll_row] = ll_sptid
  383. dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i]
  384. dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = ld_noallocqty
  385. IF ld_noallocqty >= ld_rqty THEN
  386. dw_child.Object.qty[ll_row] = ld_rqty
  387. ld_rqty = 0
  388. EXIT
  389. ELSE
  390. dw_child.Object.qty[ll_row] = ld_noallocqty
  391. ld_rqty = ld_rqty - ld_noallocqty
  392. END IF
  393. FETCH o_cur INTO
  394. :ll_mtrlwareid,
  395. :ls_status,
  396. :ls_woodcode,
  397. :ls_plancode,
  398. :ls_pcode,
  399. :li_dxflag,
  400. :ll_sptid,
  401. :ld_noallocqty,
  402. :ld_cost,
  403. :ll_storageid_f;
  404. LOOP
  405. END IF
  406. CLOSE o_cur;
  407. ELSE //////不调用其他仓库的保持原来一样
  408. SELECT top 1 mtrlwareid,
  409. status,
  410. woodcode,
  411. plancode,
  412. pcode,
  413. dxflag,
  414. sptid,
  415. noallocqty,
  416. cost = case u_mtrlware.noallocqty when 0 then 0 else u_mtrlware.wareamt/u_mtrlware.noallocqty END
  417. INTO :ll_mtrlwareid,
  418. :ls_status,
  419. :ls_woodcode,
  420. :ls_plancode,
  421. :ls_pcode,
  422. :li_dxflag,
  423. :ll_sptid,
  424. :ld_noallocqty,
  425. :ld_cost
  426. FROM u_mtrlware
  427. WHERE mtrlid = :ll_SonMtrlid[ll_i]
  428. AND storageid = :ll_storageid
  429. AND status = :ls_status_find;
  430. IF sqlca.SQLCode = 0 THEN
  431. ELSEIF sqlca.SQLCode = 100 THEN
  432. lb_find = FALSE
  433. ELSE
  434. MessageBox('错误','查询该产品组装材料的库存资料失败>>'+sqlca.SQLErrText,stopsign!,OK!)
  435. RETURN
  436. END IF
  437. IF lb_find = FALSE THEN
  438. ll_row = dw_child.InsertRow(0)
  439. dw_child.Object.mtrlwareid[ll_row] = 0
  440. dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i]
  441. dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode
  442. dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname
  443. dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode
  444. dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit
  445. dw_child.Object.qty[ll_row] = ld_Sonscale[ll_i] * ld_qty
  446. dw_child.Object.price[ll_row] = 0
  447. dw_child.Object.storageid[ll_row] = 0
  448. dw_child.Object.plancode[ll_row] = ''
  449. dw_child.Object.status[ll_row] = ''
  450. dw_child.Object.woodcode[ll_row] = ''
  451. dw_child.Object.u_dismantle_installmx_pcode[ll_row] = ''
  452. dw_child.Object.u_dismantle_installmx_dxflag[ll_row] = 0
  453. dw_child.Object.u_dismantle_installmx_sptid[ll_row] = 0
  454. dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i]
  455. dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = ld_noallocqty
  456. ELSE
  457. DECLARE pf_cur CURSOR FOR
  458. SELECT u_mtrlware.storageid,
  459. u_mtrlware.mtrlwareid,
  460. u_mtrlware.plancode,
  461. u_mtrlware.noallocqty,
  462. u_mtrlware.planprice,
  463. cost = case u_mtrlware.noallocqty when 0 then 0 else u_mtrlware.wareamt/u_mtrlware.noallocqty END,
  464. u_mtrlware.woodcode,
  465. u_mtrlware.pcode
  466. FROM u_mtrlware
  467. WHERE ( u_mtrlware.mtrlid = :ll_SonMtrlid[ll_i] ) AND
  468. ( u_mtrlware.storageid = :ll_storageid ) AND
  469. ( u_mtrlware.status = :ls_status_find )
  470. ORDER BY u_mtrlware.storageid ASC,
  471. u_mtrlware.noallocqty Asc ;
  472. OPEN pf_cur;
  473. count = 1
  474. FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  475. :ins_qty,:ins_planprice,:ins_cost ,:ins_woodcode,:ins_pcode ;
  476. DO WHILE sqlca.SQLCode = 0 AND r_qty < ld_Sonscale[ll_i] * ld_qty
  477. i_qty = ins_qty
  478. r_qty = r_qty+i_qty
  479. IF r_qty > ld_Sonscale[ll_i] * ld_qty THEN
  480. i_qty = ins_qty - (r_qty - ld_Sonscale[ll_i] * ld_qty)
  481. END IF
  482. ll_row = dw_child.InsertRow(0)
  483. dw_child.Object.mtrlwareid[ll_row] = ll_mtrlwareid
  484. dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i]
  485. dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode
  486. dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname
  487. dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode
  488. dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit
  489. dw_child.Object.price[ll_row] = ins_cost
  490. dw_child.Object.storageid[ll_row] = ll_storageid
  491. dw_child.Object.plancode[ll_row] = ins_plancode
  492. dw_child.Object.status[ll_row] = ls_status_find
  493. dw_child.Object.woodcode[ll_row] = ls_woodcode
  494. dw_child.Object.u_dismantle_installmx_pcode[ll_row] = ls_pcode
  495. dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i]
  496. dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = ins_qty
  497. Dec TEMP_INSQTY
  498. TEMP_INSQTY = ins_qty
  499. FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  500. :ins_qty,:ins_planprice,:ins_cost ,:ins_woodcode,:ins_pcode ;
  501. IF TEMP_INSQTY <= ld_Sonscale[ll_i] * ld_qty THEN
  502. IF sqlca.SQLCode = 0 THEN
  503. dw_child.Object.qty[ll_row] = i_qty //
  504. ELSE
  505. IF count > 1 THEN
  506. dw_child.Object.qty[ll_row] = i_qty
  507. ELSE
  508. dw_child.Object.qty[ll_row] = ld_Sonscale[ll_i] * ld_qty
  509. END IF
  510. END IF
  511. ELSE
  512. dw_child.Object.qty[ll_row] = ld_Sonscale[ll_i] * ld_qty
  513. END IF
  514. count++
  515. LOOP
  516. count = count - 1
  517. CLOSE pf_cur;
  518. END IF
  519. END IF
  520. NEXT
  521. ELSE
  522. FOR ll_i = 1 TO it_mxt
  523. SELECT mtrlcode,
  524. mtrlname,
  525. mtrlmode,
  526. unit,
  527. planprice
  528. INTO
  529. :ls_mtrlcode,
  530. :ls_mtrlname,
  531. :ls_mtrlmode,
  532. :ls_unit,
  533. :ld_planprice
  534. FROM u_mtrldef
  535. Where mtrlid = :ll_SonMtrlid[ll_i];
  536. IF sqlca.SQLCode <> 0 THEN
  537. MessageBox('错误','查询产品默认仓库资料失败',stopsign!,OK!)
  538. RETURN
  539. END IF
  540. ll_row = dw_child.InsertRow(0)
  541. dw_child.Object.mtrlwareid[ll_row] = 0
  542. dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i]
  543. dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode
  544. dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname
  545. dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode
  546. dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit
  547. IF sys_option_if_color = 1 THEN
  548. ls_status_find = ls_status_uc
  549. ELSE
  550. ls_status_find = ls_pf_status[ll_i]
  551. END IF
  552. dw_child.Object.qty[ll_row] = ld_Sonscale[ll_i] * ld_qty
  553. dw_child.Object.price[ll_row] = ld_planprice
  554. dw_child.Object.storageid[ll_row] = ll_storageid
  555. dw_child.Object.plancode[ll_row] = ''
  556. dw_child.Object.status[ll_row] = ls_status_find
  557. dw_child.Object.woodcode[ll_row] = ''
  558. dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i]
  559. dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = 0
  560. NEXT
  561. END IF
  562. end event
  563. event ue_check_qty();IF NOT dw_edit_mode THEN
  564. MessageBox('提示',"非编辑状态下不可以使用!",information!,OK!)
  565. RETURN
  566. END IF
  567. string argmsg
  568. if wf_checkqty(argmsg)=0 then
  569. messagebox('错误',argmsg,stopsign!,OK!)
  570. else
  571. Messagebox('提示','检查成功!合理的拆装数量!',information!,OK!)
  572. end if
  573. end event
  574. event ue_fj_edit();IF dw_edit_mode THEN
  575. MessageBox('提示','编辑状态下不可用',information!,OK!)
  576. RETURN
  577. END IF
  578. //IF NOT f_power_ind(1098) THEN
  579. // MessageBox(publ_operator,'你没有使用权限!')
  580. // RETURN
  581. //END IF
  582. s_edit_index_tran s_pic
  583. Long ll_ConnectionID
  584. String arg_msg
  585. Long ls_row
  586. ls_row = dw_uc.GetRow()
  587. IF ls_row <= 0 THEN
  588. RETURN
  589. END IF
  590. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  591. MessageBox('错误','没有指定附件数据库连接'+arg_msg,stopsign!,OK!)
  592. RETURN
  593. END IF
  594. s_pic.f_long = 314 //销售订单的mainID
  595. s_pic.f_string = dw_uc.Object.u_dismantle_install_billcode[ls_row]
  596. s_pic.g_long = dw_uc.Object.u_dismantle_install_billid[ls_row]
  597. s_pic.e_long = 0
  598. s_pic.sqltransaction = sys_filedb_sqlca
  599. OpenWithParm(w_fj_bill_mng,s_pic)
  600. wf_check_billfj()
  601. end event
  602. event ue_fj_view();IF dw_edit_mode THEN
  603. MessageBox('提示','编辑状态下不可用',information!,OK!)
  604. RETURN
  605. END IF
  606. s_edit_index_tran s_pic
  607. Long ll_ConnectionID
  608. String arg_msg
  609. Long ls_row
  610. ls_row = dw_uc.GetRow()
  611. IF ls_row <= 0 THEN
  612. RETURN
  613. END IF
  614. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  615. MessageBox('错误','没有指定附件数据库连接'+arg_msg,stopsign!,OK!)
  616. RETURN
  617. END IF
  618. s_pic.f_long = 314 //销售订单的mainID
  619. s_pic.f_string = dw_uc.Object.u_dismantle_install_billcode[ls_row]
  620. s_pic.g_long = dw_uc.Object.u_dismantle_install_billid[ls_row]
  621. s_pic.e_long = 0
  622. s_pic.sqltransaction = sys_filedb_sqlca
  623. OpenWithParm(w_fj_bill_view,s_pic)
  624. end event
  625. event ue_view_pz();s_view_dscrp s_view,s_return
  626. dw_uc.AcceptText()
  627. string arg_name
  628. String ls_dscrp
  629. long ll_statusflag , ll_woodcodeflag, ll_pcodeflag , ll_mtrlid
  630. ll_mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[dw_uc.GetRow()]
  631. arg_name = dw_uc.GetColumnName( )
  632. select statusflag,woodcodeflag,pcodeflag Into :ll_statusflag , :ll_woodcodeflag, :ll_pcodeflag
  633. From u_mtrldef where mtrlid=:ll_mtrlid ;
  634. IF sqlca.sqlcode<>0 then
  635. ll_statusflag = 3
  636. ll_woodcodeflag = 3
  637. ll_pcodeflag = 3
  638. end if
  639. IF arg_name = 'u_dismantle_install_status' AND (ll_statusflag = 0 OR ll_statusflag =5) THEN
  640. ls_dscrp = dw_uc.Object.u_dismantle_install_status[dw_uc.GetRow()]
  641. s_view.Title = '拆装单配置'
  642. s_view.dscrp = ls_dscrp
  643. s_view.editmode = dw_edit_mode
  644. OpenWithParm(w_view_dscrp_log,s_view)
  645. IF dw_edit_mode THEN
  646. s_return = Message.PowerObjectParm
  647. dw_uc.Object.u_dismantle_install_status[dw_uc.GetRow()] = s_return.dscrp
  648. END IF
  649. ELSEIF arg_name = 'u_dismantle_install_woodcode' AND (ll_woodcodeflag = 0 OR ll_woodcodeflag =5) THEN
  650. ls_dscrp = dw_uc.Object.u_dismantle_install_woodcode[dw_uc.GetRow()]
  651. s_view.Title = '拆装单配置1'
  652. s_view.dscrp = ls_dscrp
  653. s_view.editmode = dw_edit_mode
  654. OpenWithParm(w_view_dscrp_log,s_view)
  655. IF dw_edit_mode THEN
  656. s_return = Message.PowerObjectParm
  657. dw_uc.Object.u_dismantle_install_woodcode[dw_uc.GetRow()] = s_return.dscrp
  658. END IF
  659. ELSEIF arg_name = 'u_dismantle_install_pcode' AND (ll_pcodeflag = 0 OR ll_pcodeflag =5) THEN
  660. ls_dscrp = dw_uc.Object.u_dismantle_install_pcode[dw_uc.GetRow()]
  661. s_view.Title = '拆装单配置2'
  662. s_view.dscrp = ls_dscrp
  663. s_view.editmode = dw_edit_mode
  664. OpenWithParm(w_view_dscrp_log,s_view)
  665. IF dw_edit_mode THEN
  666. s_return = Message.PowerObjectParm
  667. dw_uc.Object.u_dismantle_install_pcode[dw_uc.GetRow()] = s_return.dscrp
  668. END IF
  669. END IF
  670. end event
  671. public function integer wf_refresh_curuc (long arg_billid);IF arg_billid <= 0 OR IsNull(arg_billid) THEN RETURN 0
  672. Long uc_row
  673. uc_row = dw_pageretr.GetRow()
  674. IF uc_row <= 0 THEN RETURN 0
  675. Long billid
  676. String rep
  677. String dscrp
  678. Int balcflag
  679. String billcode
  680. DateTime opdate
  681. String opemp
  682. String modemp
  683. DateTime moddate
  684. Int flag ,buildtype
  685. DateTime Auditingdate
  686. String Auditingrep
  687. DateTime billdate
  688. Int storageid
  689. String mtrlcode
  690. String status
  691. String woodcode
  692. String pcode
  693. String plancode
  694. Decimal qty
  695. Decimal addqty
  696. Decimal price
  697. String reason
  698. String mtrlmode
  699. Long relid
  700. Long mtrlid
  701. Long mtrlwareid
  702. Long Auditingflag
  703. Long billtype
  704. String storagename
  705. String mtrlname
  706. String unit
  707. Int dxflag
  708. Long sptid
  709. String mtrlsectype
  710. String zxmtrlmode
  711. string Auditingemp
  712. SELECT u_dismantle_install.billid,
  713. u_dismantle_install.billdate,
  714. u_dismantle_install.rep,
  715. u_dismantle_install.storageid,
  716. u_mtrldef.mtrlcode,
  717. u_dismantle_install.status,
  718. u_dismantle_install.woodcode,
  719. u_dismantle_install.pcode,
  720. u_dismantle_install.plancode,
  721. u_dismantle_install.qty,
  722. u_dismantle_install.addqty,
  723. u_dismantle_install.price,
  724. u_dismantle_install.reason,
  725. u_dismantle_install.dscrp,
  726. u_dismantle_install.billcode,
  727. u_mtrldef.mtrlmode,
  728. u_dismantle_install.relid,
  729. u_dismantle_install.mtrlid,
  730. u_dismantle_install.mtrlwareid,
  731. u_dismantle_install.Auditingflag,
  732. u_dismantle_install.Auditingemp,
  733. u_dismantle_install.Auditingdate,
  734. u_dismantle_install.opdate,
  735. u_dismantle_install.opemp,
  736. u_dismantle_install.moddate,
  737. u_dismantle_install.modemp,
  738. u_dismantle_install.buildtype,
  739. u_dismantle_install.billtype,
  740. u_storage.storagename,
  741. u_mtrldef.mtrlname,
  742. u_mtrldef.unit,
  743. u_dismantle_install.dxflag,
  744. u_dismantle_install.sptid,
  745. u_mtrldef.mtrlsectype,
  746. u_mtrldef.zxmtrlmode
  747. INTO
  748. :billid,
  749. :billdate,
  750. :rep,
  751. :storageid,
  752. :mtrlcode,
  753. :status,
  754. :woodcode,
  755. :pcode,
  756. :plancode,
  757. :qty,
  758. :addqty,
  759. :price,
  760. :reason,
  761. :dscrp,
  762. :billcode,
  763. :mtrlmode,
  764. :relid,
  765. :mtrlid,
  766. :mtrlwareid,
  767. :Auditingflag,
  768. :Auditingemp,
  769. :Auditingdate,
  770. :opdate,
  771. :opemp,
  772. :moddate,
  773. :modemp,
  774. :buildtype,
  775. :billtype,
  776. :storagename,
  777. :mtrlname,
  778. :unit,
  779. :dxflag,
  780. :sptid,
  781. :mtrlsectype,
  782. :zxmtrlmode
  783. FROM u_dismantle_install INNER JOIN
  784. u_mtrldef ON u_dismantle_install.mtrlid = u_mtrldef.mtrlid INNER JOIN
  785. u_storage ON u_dismantle_install.storageid = u_storage.storageid
  786. Where ( u_dismantle_install.billid = :arg_billid );
  787. IF sqlca.SQLCode <> 0 THEN
  788. MessageBox('错误',"查询操作失败(错误单据唯一码)",stopsign!,OK!)
  789. RETURN 0
  790. END IF
  791. dw_pageretr.Object.u_dismantle_install_billid[uc_row] = billid
  792. dw_pageretr.Object.u_dismantle_install_billdate[uc_row] = billdate
  793. dw_pageretr.Object.u_dismantle_install_rep[uc_row] = rep
  794. dw_pageretr.Object.u_dismantle_install_storageid[uc_row] = storageid
  795. dw_pageretr.Object.u_mtrldef_mtrlcode[uc_row] = mtrlcode
  796. dw_pageretr.Object.u_dismantle_install_status[uc_row] = status
  797. dw_pageretr.Object.u_dismantle_install_woodcode[uc_row] = woodcode
  798. dw_pageretr.Object.u_dismantle_install_pcode[uc_row] = pcode
  799. dw_pageretr.Object.u_dismantle_install_plancode[uc_row] = plancode
  800. dw_pageretr.Object.u_dismantle_install_qty[uc_row] = qty
  801. dw_pageretr.Object.u_dismantle_install_addqty[uc_row] = addqty
  802. dw_pageretr.Object.u_dismantle_install_price[uc_row] = price
  803. dw_pageretr.Object.u_dismantle_install_reason[uc_row] = reason
  804. dw_pageretr.Object.u_dismantle_install_dscrp[uc_row] = dscrp
  805. dw_pageretr.Object.u_dismantle_install_billcode[uc_row] = billcode
  806. dw_pageretr.Object.u_mtrldef_mtrlmode[uc_row] = mtrlmode
  807. dw_pageretr.Object.u_dismantle_install_relid[uc_row] = relid
  808. dw_pageretr.Object.u_dismantle_install_mtrlid[uc_row] = mtrlid
  809. dw_pageretr.Object.u_dismantle_install_mtrlwareid[uc_row] = mtrlwareid
  810. dw_pageretr.Object.u_dismantle_install_auditingflag[uc_row] = Auditingflag
  811. dw_pageretr.Object.u_dismantle_install_auditingemp[uc_row] = Auditingemp
  812. dw_pageretr.Object.u_dismantle_install_auditingdate[uc_row] = Auditingdate
  813. dw_pageretr.Object.u_dismantle_install_opdate[uc_row] = opdate
  814. dw_pageretr.Object.u_dismantle_install_opemp[uc_row] = opemp
  815. dw_pageretr.Object.u_dismantle_install_moddate[uc_row] = moddate
  816. dw_pageretr.Object.u_dismantle_install_modemp[uc_row] = modemp
  817. dw_pageretr.Object.u_dismantle_install_buildtype[uc_row] = buildtype
  818. dw_pageretr.Object.u_dismantle_install_billtype[uc_row] = billtype
  819. dw_pageretr.Object.u_storage_storagename[uc_row] = storagename
  820. dw_pageretr.Object.u_mtrldef_mtrlname[uc_row] = mtrlname
  821. dw_pageretr.Object.u_mtrldef_unit[uc_row] = unit
  822. dw_pageretr.Object.u_dismantle_install_dxflag[uc_row] = dxflag
  823. dw_pageretr.Object.u_dismantle_install_sptid[uc_row] = sptid
  824. dw_pageretr.Object.u_mtrldef_mtrlsectype[uc_row] = mtrlsectype
  825. dw_pageretr.Object.u_mtrldef_zxmtrlmode[uc_row] = zxmtrlmode
  826. dw_uc.Reset()
  827. dw_pageretr.RowsCopy(dw_pageretr.GetRow(),dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!)
  828. dw_uc.ResetUpdate()
  829. dw_uc.SetRedraw(TRUE)
  830. wf_flagstatus_rf()
  831. RETURN 1
  832. end function
  833. public function integer wf_flagstatus_rf ();Long pagerert_row
  834. pagerert_row = dw_pageretr.GetRow()
  835. IF pagerert_row <= 0 THEN
  836. cb_auditing.Enabled = FALSE
  837. GOTO ext
  838. END IF
  839. IF dw_edit_mode THEN
  840. cb_auditing.Enabled = FALSE
  841. cb_auditing_cancel.Enabled = FALSE
  842. ELSE
  843. IF dw_pageretr.Object.u_dismantle_install_auditingflag[pagerert_row] = 0 THEN
  844. cb_auditing.Enabled = TRUE
  845. cb_auditing_cancel.Enabled = FALSE
  846. ELSEIF dw_pageretr.Object.u_dismantle_install_auditingflag[pagerert_row] = 1 THEN
  847. cb_auditing.Enabled = FALSE
  848. cb_auditing_cancel.Enabled = TRUE
  849. END IF
  850. END IF
  851. ext:
  852. RETURN 0
  853. end function
  854. public function integer wf_init_data (long arg_mtrlwareid);Int rslt = 1
  855. Long ucrow
  856. String ls_mtrlcode,ls_mtrlname,ls_mtrlmode, ls_mtrlsectype, ls_zxmtrlmode
  857. String ls_plancode,ls_status,ls_woodcode,ls_pcode
  858. Long ls_mtrlwareid,ls_mtrlid,ls_storageid
  859. Dec ls_noallocqty,ls_planprice,ls_cost,ls_noauditingqty
  860. dw_uc.accepttext()
  861. ucrow = dw_uc.GetRow()
  862. IF ucrow <= 0 THEN
  863. rslt = 0
  864. GOTO ext
  865. END IF
  866. SELECT u_mtrlware.mtrlwareid ,
  867. u_mtrlware.mtrlid,
  868. u_mtrldef.mtrlcode,
  869. u_mtrldef.mtrlname,
  870. u_mtrlware.noallocqty,
  871. u_mtrlware.planprice,
  872. u_mtrlware.storageid,
  873. u_mtrlware.plancode,
  874. u_mtrldef.mtrlmode,
  875. isnull(uv_mtrlware_noauditingqty.noauditingqty,0),
  876. u_mtrlware.status,
  877. u_mtrlware.woodcode,
  878. u_mtrlware.pcode,
  879. u_mtrldef.mtrlsectype,
  880. u_mtrldef.zxmtrlmode
  881. INTO :ls_mtrlwareid,
  882. :ls_mtrlid,
  883. :ls_mtrlcode,
  884. :ls_mtrlname,
  885. :ls_noallocqty,
  886. :ls_planprice,
  887. :ls_storageid,
  888. :ls_plancode,
  889. :ls_mtrlmode,
  890. :ls_noauditingqty,
  891. :ls_status,
  892. :ls_woodcode,
  893. :ls_pcode,
  894. :ls_mtrlsectype,
  895. :ls_zxmtrlmode
  896. FROM u_mtrldef,
  897. u_mtrlware left OUTER join u_storage
  898. on ( u_mtrlware.storageid = u_storage.storageid)
  899. left OUTER join uv_mtrlware_noauditingqty
  900. on ( u_mtrlware.mtrlwareid = uv_mtrlware_noauditingqty.mtrlwareid)
  901. WHERE ( u_mtrldef.mtrlid = u_mtrlware.mtrlid )
  902. And ( u_mtrlware.mtrlwareid = :arg_mtrlwareid );
  903. IF sqlca.SQLCode <> 0 THEN
  904. rslt = 0
  905. GOTO ext
  906. END IF
  907. dw_uc.setredraw(false)
  908. IF cur_billtype = 0 THEN
  909. dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = ls_mtrlid
  910. dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = ls_mtrlcode
  911. dw_uc.Object.u_mtrldef_mtrlname[ucrow] = ls_mtrlname
  912. dw_uc.Object.u_dismantle_install_qty[ucrow] = ls_noallocqty
  913. dw_uc.Object.u_dismantle_install_price[ucrow] = ls_cost
  914. dw_uc.Object.u_dismantle_install_storageid[ucrow] = ls_storageid
  915. dw_uc.Object.u_dismantle_install_plancode[ucrow] = ls_plancode
  916. dw_uc.Object.u_dismantle_install_status[ucrow] = ls_status
  917. dw_uc.Object.u_dismantle_install_woodcode[ucrow] = ls_woodcode
  918. dw_uc.Object.u_dismantle_install_pcode[ucrow] = ls_pcode
  919. dw_uc.Object.u_dismantle_install_noallocqty[ucrow] = ls_noallocqty
  920. dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = ls_mtrlmode
  921. dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = ls_mtrlsectype
  922. dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = ls_zxmtrlmode
  923. this.triggerevent('ue_cmpl_qty')
  924. ELSE
  925. dw_uc.Object.u_dismantle_install_mtrlwareid[ucrow] = ls_mtrlwareid
  926. dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = ls_mtrlid
  927. dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = ls_mtrlcode
  928. dw_uc.Object.u_mtrldef_mtrlname[ucrow] = ls_mtrlname
  929. dw_uc.Object.u_dismantle_install_qty[ucrow] = ls_noallocqty
  930. dw_uc.Object.u_dismantle_install_price[ucrow] = ls_cost
  931. dw_uc.Object.u_dismantle_install_storageid[ucrow] = ls_storageid
  932. dw_uc.Object.u_dismantle_install_plancode[ucrow] = ls_plancode
  933. dw_uc.Object.u_dismantle_install_status[ucrow] = ls_status
  934. dw_uc.Object.u_dismantle_install_woodcode[ucrow] = ls_woodcode
  935. dw_uc.Object.u_dismantle_install_pcode[ucrow] = ls_pcode
  936. dw_uc.Object.u_dismantle_install_noallocqty[ucrow] = ls_noallocqty
  937. dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = ls_mtrlmode
  938. dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = ls_mtrlsectype
  939. dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = ls_zxmtrlmode
  940. END IF
  941. this.triggerevent('ue_cmpl')
  942. dw_uc.setredraw(true)
  943. ext:
  944. RETURN rslt
  945. end function
  946. public function integer wf_checkqty (ref string arg_msg);Dec uc_qty,child_qty,ld_Sonscale[],ld_child_qty[]
  947. Long ll_mtrlid,ll_storageid,uc_row,it_mxt,ll_SonMtrlid[]
  948. String ls_status_uc,ls_pf_status[],ls_child_status[],ls_child_mtrlcode[],ls_child_mtrlname[]
  949. Long ll_child_mtrlid[],i,j,mx,u_dismantle_install_qty
  950. int rslt=1
  951. dw_pageretr.AcceptText()
  952. dw_child.AcceptText()
  953. uc_row = dw_uc.GetRow()
  954. ll_mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[uc_row]
  955. ll_storageid = dw_uc.Object.u_dismantle_install_storageid[uc_row]
  956. ls_status_uc = dw_uc.Object.u_dismantle_install_status[uc_row]
  957. u_dismantle_install_qty = dw_uc.Object.u_dismantle_install_qty[uc_row]
  958. IF cur_billtype = 1 THEN
  959. arg_msg='不是装单不能计算可装数量'
  960. rslt=0
  961. goto ext
  962. END IF
  963. IF ll_storageid <= 0 THEN
  964. arg_msg='请选择仓库'
  965. rslt=0
  966. goto ext
  967. END IF
  968. it_mxt = 1
  969. DECLARE cur_pf CURSOR FOR
  970. SELECT u_PrdPF.SonMtrlid,
  971. u_PrdPF.Sonscale,
  972. u_PrdPF.status
  973. FROM u_PrdPF
  974. Where u_PrdPF.mtrlid = :ll_mtrlid;
  975. OPEN cur_pf;
  976. FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt];
  977. DO WHILE sqlca.SQLCode = 0
  978. it_mxt++
  979. FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt];
  980. LOOP
  981. it_mxt = it_mxt - 1
  982. CLOSE cur_pf;
  983. IF it_mxt = 0 THEN
  984. arg_msg='该产品没有建立组装结构,不能检查已装数量.'
  985. rslt=0
  986. goto ext
  987. END IF
  988. Boolean lb_find = FALSE
  989. FOR i = 1 TO dw_child.RowCount()
  990. lb_find = FALSE
  991. IF dw_child.Object.mtrlid[i] > 0 THEN
  992. mx++
  993. FOR j = 1 TO UpperBound(ll_child_mtrlid)
  994. IF ll_child_mtrlid[j] = dw_child.Object.mtrlid[i] AND ls_child_status[j] = dw_child.Object.status[i] THEN
  995. ld_child_qty[j] = ld_child_qty[j]+dw_child.Object.qty[i]
  996. lb_find = TRUE
  997. EXIT
  998. END IF
  999. NEXT
  1000. IF lb_find = TRUE THEN CONTINUE
  1001. ll_child_mtrlid[mx] = dw_child.Object.mtrlid[i]
  1002. ls_child_status[mx] = dw_child.Object.status[i]
  1003. ld_child_qty[mx] = dw_child.Object.qty[i]
  1004. ls_child_mtrlcode[mx] = dw_child.Object.u_mtrldef_mtrlcode[i]
  1005. ls_child_mtrlname[mx] = dw_child.Object.u_mtrldef_mtrlname[i]
  1006. END IF
  1007. NEXT
  1008. FOR i = 1 TO UpperBound(ll_child_mtrlid)
  1009. lb_find=false
  1010. FOR j = 1 TO UpperBound(ll_SonMtrlid)
  1011. IF ll_child_mtrlid[i] = ll_SonMtrlid[j] AND ls_child_status[i] = ls_pf_status[j] THEN
  1012. lb_find =true
  1013. exit
  1014. end if
  1015. NEXT
  1016. if lb_find=false then
  1017. arg_msg='产品编号:'+ls_child_mtrlcode[i]+' 名称:'+ls_child_mtrlname[i]+'不是组成部分。'
  1018. rslt=0
  1019. goto ext
  1020. end if
  1021. NEXT
  1022. FOR i = 1 TO UpperBound(ll_child_mtrlid)
  1023. FOR j = 1 TO UpperBound(ll_SonMtrlid)
  1024. IF ll_child_mtrlid[i] = ll_SonMtrlid[j] AND ls_child_status[i] = ls_pf_status[j] THEN
  1025. IF ld_child_qty[i] <> u_dismantle_install_qty*ld_Sonscale[j] THEN
  1026. arg_msg='产品编号:'+ls_child_mtrlcode[i]+' 名称:'+ls_child_mtrlname[i]+' 拆装数量不正确。应拆装数量['+ String(u_dismantle_install_qty*ld_Sonscale[j],'#,##0.####')+']。'
  1027. rslt=0
  1028. goto ext
  1029. END IF
  1030. end if
  1031. NEXT
  1032. NEXT
  1033. ext:
  1034. return rslt
  1035. end function
  1036. public subroutine wf_check_billfj ();String arg_msg
  1037. Long ll_ConnectionID
  1038. Long cur_billtype_fj
  1039. long ll_relid,ll_relid_mx,ll_scid
  1040. Long ls_filecount = 0
  1041. Int rslt = 1
  1042. uo_fj_mng_billtype ls_uo_fjbt
  1043. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  1044. Long row,uc_relid
  1045. row = dw_pageretr.GetRow()
  1046. IF row > 0 THEN
  1047. ll_relid = dw_pageretr.Object.u_dismantle_install_billid[row]
  1048. ll_scid = 0
  1049. ll_relid_mx = 0
  1050. ELSE
  1051. rslt = 0
  1052. GOTO ext
  1053. END IF
  1054. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  1055. rslt = 0
  1056. GOTO ext
  1057. END IF
  1058. cur_billtype_fj = 314 //客户投拆单的 mainiD
  1059. ls_uo_fjbt.uf_check_billfj( cur_billtype_fj, ll_relid,ll_relid_mx,ll_scid, sys_fileDB_sqlca, arg_msg, ls_filecount)
  1060. IF ls_filecount > 0 THEN
  1061. rslt = 1
  1062. GOTO ext
  1063. ELSE
  1064. rslt = 0
  1065. GOTO ext
  1066. END IF
  1067. ext:
  1068. wf_encl(rslt)
  1069. DESTROY ls_uo_fjbt
  1070. end subroutine
  1071. public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg);//==============================================================================
  1072. // 函数: w_publ_1ton_share_detail::wf_xls_retrievedata()
  1073. //------------------------------------------------------------------------------
  1074. // 描述: 此函数需要 重载,复制祖先范例代码,然后修改retrieve参数部分两处即可
  1075. //------------------------------------------------------------------------------
  1076. Long LS_ROW,ll_id,i,ll_scid
  1077. LS_ROW = dw_uc.GetRow()
  1078. IF LS_ROW <= 0 THEN
  1079. arg_msg = '没有目标单据!'
  1080. RETURN 0
  1081. END IF
  1082. //修改点:获取 指定retriev参数
  1083. ll_id = dw_uc.Object.#1[LS_ROW]
  1084. ll_scid = 0
  1085. //查询所选模版是否含有图片信息
  1086. Long ll_ifpic
  1087. Long ll_classid
  1088. SELECT ifpic
  1089. INTO :ll_ifpic
  1090. FROM U_XLS_Templates
  1091. Where id = :ll_xls_Templatesid;
  1092. IF sqlca.SQLCode <> 0 THEN
  1093. ll_ifpic = 0
  1094. END IF
  1095. Long ll_i,ll_j
  1096. Long ll_mtrlid
  1097. Long ll_fileid
  1098. Blob ls_filedata
  1099. SetNull(ls_filedata)
  1100. String Pathname,ls_filename,ls_filetype
  1101. String errmsg
  1102. uo_fj_mng_billtype ls_uo_fjbt
  1103. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  1104. s_xls_pic_list s_pic //结构数组-用于保存图片路径
  1105. IF ll_ifpic = 1 THEN //如果含有图片信息,则查询本类型单据需要带出哪类附件
  1106. SELECT classid
  1107. INTO :ll_classid
  1108. FROM u_billpic_fileclass
  1109. Where (billtype = 314);
  1110. IF sqlca.SQLCode <> 0 THEN
  1111. ll_classid = 0
  1112. END IF
  1113. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  1114. FOR ll_i = 1 TO dw_child.RowCount()
  1115. ll_mtrlid = dw_child.Object.mtrlid[ll_i]
  1116. //取该附件类型中的第一个附件.
  1117. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  1118. FROM u_file
  1119. WHERE relid = :ll_mtrlid
  1120. AND classid = :ll_classid
  1121. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  1122. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  1123. USING sys_fileDB_sqlca;
  1124. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  1125. ll_fileid = 0
  1126. END IF
  1127. IF ll_fileid > 0 THEN
  1128. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  1129. IF Trim(Pathname) <> '' THEN
  1130. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  1131. RETURN 0
  1132. END IF
  1133. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  1134. RETURN 0
  1135. ELSE
  1136. s_pic.path[ll_i] = Pathname
  1137. //记录临时文件位置,本窗口退出后删除
  1138. wf_addlog_tempfilepathname(Pathname)
  1139. END IF
  1140. ELSE
  1141. s_pic.path[ll_i] = ''
  1142. END IF
  1143. ELSE
  1144. s_pic.path[ll_i] = ''
  1145. END IF
  1146. NEXT
  1147. END IF
  1148. //
  1149. END IF
  1150. ////可选设置///
  1151. arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码
  1152. if sys_option_xls_ifuse_passwd = 1 then arg_obj_st.uo_const.pwd = trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码
  1153. boolean xls_locked
  1154. xls_locked = not (sys_option_xls_lock = 1)
  1155. /// Excel 的可选设置
  1156. if arg_obj_st.of_setoption(arg_ationid, xls_locked,true,arg_msg) <> 1 then
  1157. return 0
  1158. end if
  1159. for i = 1 to arg_str_billlist.count
  1160. ////可选操作///
  1161. arg_str_billlist.bill[i].ds_data = create datastore //
  1162. arg_str_billlist.bill[i].ds_data.dataobject = arg_str_billlist.bill[i].datawindow //
  1163. arg_str_billlist.bill[i].ds_data.settransobject(sqlca)
  1164. //修改点:注意retrieve 参数与上文对应
  1165. arg_str_billlist.bill[i].ds_data.retrieve(ll_scid,ll_id)
  1166. next
  1167. return 1
  1168. end function
  1169. public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg);Long LS_ROW,ll_id,i,ll_scid
  1170. LS_ROW = dw_pageretr.GetRow()
  1171. IF LS_ROW <= 0 THEN
  1172. arg_msg = '没有目标单据!'
  1173. RETURN 0
  1174. END IF
  1175. //修改点:获取 指定retriev参数
  1176. ll_id = dw_pageretr.Object.#1[LS_ROW]
  1177. ll_scid = 0
  1178. Long ll_i,ll_j
  1179. Long ll_mtrlid
  1180. Long ll_fileid
  1181. Blob ls_filedata
  1182. SetNull(ls_filedata)
  1183. String Pathname,ls_filename,ls_filetype
  1184. String errmsg
  1185. uo_fj_mng_billtype ls_uo_fjbt
  1186. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  1187. Long ll_classid
  1188. SELECT classid
  1189. INTO :ll_classid
  1190. FROM u_billpic_fileclass
  1191. Where (billtype = 102);
  1192. IF sqlca.SQLCode <> 0 THEN
  1193. ll_classid = 0
  1194. END IF
  1195. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  1196. FOR ll_i = 1 TO dw_child.RowCount()
  1197. ll_mtrlid = dw_child.Object.mtrlid[ll_i]
  1198. arg_s_pic.mtrlid[ll_i] = ll_mtrlid
  1199. //取该附件类型中的第一个附件.
  1200. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  1201. FROM u_file
  1202. WHERE relid = :ll_mtrlid
  1203. AND classid = :ll_classid
  1204. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  1205. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  1206. USING sys_fileDB_sqlca;
  1207. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  1208. ll_fileid = 0
  1209. END IF
  1210. IF ll_fileid > 0 THEN
  1211. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  1212. IF Trim(Pathname) <> '' THEN
  1213. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  1214. RETURN 0
  1215. END IF
  1216. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  1217. RETURN 0
  1218. ELSE
  1219. arg_s_pic.path[ll_i] = Pathname
  1220. //记录临时文件位置,本窗口退出后删除
  1221. wf_addlog_tempfilepathname(Pathname)
  1222. END IF
  1223. ELSE
  1224. arg_s_pic.path[ll_i] = ''
  1225. END IF
  1226. ELSE
  1227. arg_s_pic.path[ll_i] = ''
  1228. END IF
  1229. NEXT
  1230. END IF
  1231. RETURN 1
  1232. end function
  1233. public function integer wf_checkstorageid (integer arg_id);int i
  1234. int reslt = 1
  1235. //if (arg_id in sys_all_storageid[]) then
  1236. // i =1
  1237. //end if
  1238. for i = 1 to upperbound(sys_all_storageid)
  1239. if arg_id = sys_all_storageid[i] then reslt = 0
  1240. next
  1241. return reslt
  1242. end function
  1243. on w_dismantle_install.create
  1244. int iCurrent
  1245. call super::create
  1246. this.ddlb_status=create ddlb_status
  1247. this.st_3=create st_3
  1248. this.st_2=create st_2
  1249. this.ddlb_1=create ddlb_1
  1250. this.cbx_di=create cbx_di
  1251. iCurrent=UpperBound(this.Control)
  1252. this.Control[iCurrent+1]=this.ddlb_status
  1253. this.Control[iCurrent+2]=this.st_3
  1254. this.Control[iCurrent+3]=this.st_2
  1255. this.Control[iCurrent+4]=this.ddlb_1
  1256. this.Control[iCurrent+5]=this.cbx_di
  1257. end on
  1258. on w_dismantle_install.destroy
  1259. call super::destroy
  1260. destroy(this.ddlb_status)
  1261. destroy(this.st_3)
  1262. destroy(this.st_2)
  1263. destroy(this.ddlb_1)
  1264. destroy(this.cbx_di)
  1265. end on
  1266. event retrieve_childdw;call super::retrieve_childdw;long row,uc_relid
  1267. row=dw_pageretr.getrow()
  1268. if row>0 then
  1269. uc_relid=dw_pageretr.object.u_dismantle_install_billid[row]
  1270. dw_child.SetRedraw (false)
  1271. dw_child.retrieve(uc_relid)
  1272. dw_child.SetRedraw (true)
  1273. else
  1274. dw_child.reset()
  1275. end if
  1276. end event
  1277. event open;THIS.TriggerEvent('ue_before_open')
  1278. wf_movetocenter()
  1279. ds_copy_bill = CREATE datastore
  1280. ds_copy_bill.DataObject = dw_child.dataobject
  1281. ds_copy_bill.SetTransObject(sqlca)
  1282. OLD_TITLE = THIS.Title
  1283. s_tran = Message.PowerObjectParm
  1284. IF NOT IsNull(s_tran) THEN
  1285. retrieve_all = s_tran.if_retrieve_all
  1286. mode = s_tran.work_mode
  1287. arg_pkid = s_tran.arg_pkid
  1288. arg_string_code = s_tran.arg_string_code
  1289. if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效
  1290. ds_share = s_tran.ds_share
  1291. END IF
  1292. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  1293. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  1294. dw_pageretr.SetTransObject (sqlca)
  1295. pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字
  1296. ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select")
  1297. //====================================================================
  1298. // Script - w_inware_py inherited from w_publ_1ton_share_detail for open
  1299. // Reason:
  1300. //--------------------------------------------------------------------
  1301. // Modified By: yyx Date: 2003.12.01
  1302. //--------------------------------------------------------------------
  1303. ori_oldselect = f_modify_selectstr(ori_oldselect)//只显示所管的仓库单据
  1304. //====================================================================
  1305. ls_newselect = ori_oldselect
  1306. ds_curquery = CREATE DATASTORE
  1307. ds_curquery.DataObject = 'd_extr_find'
  1308. ds_curquery.SetTransObject (sqlca)
  1309. wf_editindex_lockf()
  1310. IF s_tran.d_long = 1 THEN
  1311. cur_billtype = s_tran.e_long
  1312. cur_mtrlwareid = s_tran.f_long
  1313. Int li_item
  1314. li_item = ddlb_1.FindItem(s_tran.e_string,0)
  1315. IF li_item > 0 THEN
  1316. ddlb_1.SelectItem(li_item)
  1317. END IF
  1318. END IF
  1319. sle_usual_query.Text = Trim(arg_string_code)
  1320. IF NOT retrieve_all THEN
  1321. THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve
  1322. ELSE
  1323. IF if_sharedata THEN
  1324. ds_share.ShareData(dw_pageretr)
  1325. ELSE
  1326. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  1327. THIS.TriggerEvent('RETRIEVE_pageretr')
  1328. END IF
  1329. END IF
  1330. IF retrieve_all THEN
  1331. THIS.TriggerEvent("ue_usual_query_filt")
  1332. END IF
  1333. uc_column_int = 14 //uc dw前6列可以编辑
  1334. child_column_int = 12 //子dw前5列可以编辑
  1335. uo_ware = CREATE uo_dismantle_install
  1336. IF s_tran.d_long = 1 THEN
  1337. cb_add.TriggerEvent(Clicked!)
  1338. wf_init_data(cur_mtrlwareid)
  1339. END IF
  1340. s_hide_col s_col
  1341. s_col.col_1 = 'price'
  1342. s_col.col_2 = 'allsum'
  1343. f_hide_col(1473,dw_child,s_col)
  1344. s_hide_col s_col_mtrlsectype
  1345. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  1346. f_hide_col(1308,dw_child,s_col_mtrlsectype)
  1347. s_hide_col s_col_zxmtrlmode
  1348. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  1349. f_hide_col(1309,dw_child,s_col_zxmtrlmode)
  1350. s_hide_col s_col_price_uc
  1351. s_col_price_uc.col_1 = 'u_dismantle_install_price'
  1352. s_col_price_uc.col_2 = 'u_dismantle_install_price_t'
  1353. s_col_price_uc.col_3 = 'amt'
  1354. s_col_price_uc.col_4 = 'amt_t'
  1355. f_hide_col(1510,dw_uc,s_col_price_uc)
  1356. s_hide_col s_col_price_par
  1357. s_col_price_par.col_1 = 'u_dismantle_install_price'
  1358. f_hide_col(1510,dw_pageretr,s_col_price_par)
  1359. end event
  1360. event ue_f8;//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  1361. IF NOT dw_edit_mode THEN RETURN
  1362. Long child_row,ucrow
  1363. Long ins_storageid = 0
  1364. Long ls_j
  1365. dw_uc.AcceptText()
  1366. child_row = dw_child.GetRow()
  1367. ucrow = dw_uc.GetRow()
  1368. if ucrow = 0 then return
  1369. IF child_row = 0 THEN
  1370. child_row = dw_child.InsertRow(0)
  1371. END IF
  1372. IF cur_billtype = 1 THEN //拆单
  1373. ins_storageid = dw_uc.Object.u_dismantle_install_storageid[ucrow]
  1374. IF ins_storageid = 0 OR IsNull(ins_storageid) THEN
  1375. MessageBox('提示','请先选择仓库',information!,OK!)
  1376. RETURN
  1377. END IF
  1378. IF NOT IsValid(W_mtrldef_edit) THEN
  1379. s_edit_index_tran s_ch_tran //传递参数使用
  1380. s_ch_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  1381. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  1382. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  1383. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1384. s_ch_tran.if_select_all = TRUE
  1385. s_ch_tran.b_long = 0
  1386. s_ch_tran.c_long = ins_storageid
  1387. dw_child.AcceptText()
  1388. IF dw_child.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  1389. THIS.Enabled = FALSE
  1390. OpenWithParm(W_mtrldef_edit,s_ch_tran)
  1391. THIS.Enabled = TRUE
  1392. s_mtrldef_array S_INSCUST
  1393. S_INSCUST = Message.PowerObjectParm
  1394. FOR ls_j = 1 TO UpperBound(S_INSCUST.mtrlid)
  1395. IF S_INSCUST.mtrlid[ls_j] > 0 THEN
  1396. IF dw_child.GetRow() > 0 THEN
  1397. IF dw_child.Object.mtrlid[child_row] <> 0 THEN
  1398. child_row = dw_child.InsertRow (0)
  1399. ELSE
  1400. child_row = dw_child.GetRow()
  1401. END IF
  1402. ELSE
  1403. child_row = dw_child.InsertRow (0)
  1404. END IF
  1405. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.mtrlcode[ls_j]
  1406. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.unit[ls_j]
  1407. dw_child.Object.mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  1408. dw_child.Object.price[child_row] = S_INSCUST.planprice[ls_j]
  1409. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.mtrlname[ls_j]
  1410. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.mtrlmode[ls_j]
  1411. dw_child.Object.storageid[child_row] = S_INSCUST.storageid[ls_j]
  1412. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.zxmtrlmode[ls_j]
  1413. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.mtrlsectype[ls_j]
  1414. dw_child.Object.u_mtrldef_statusflag[child_row] = S_INSCUST.statusflag[ls_j]
  1415. dw_child.Object.u_mtrldef_woodcodeflag[child_row] = S_INSCUST.woodcodeflag[ls_j]
  1416. dw_child.Object.u_mtrldef_pcodeflag[child_row] = S_INSCUST.pcodeflag[ls_j]
  1417. dw_child.Object.u_dismantle_installmx_sptid[child_row] = dw_uc.Object.u_dismantle_install_sptid[ucrow]
  1418. END IF
  1419. NEXT
  1420. dw_child.SetFocus()
  1421. dw_child.SetColumn("qty")
  1422. END IF
  1423. ELSE
  1424. IF NOT IsValid(w_mtrlware_storageid_ch) THEN
  1425. ins_storageid = dw_child.Object.storageid[child_row]
  1426. s_edit_index_tran s_tranf8 //传递参数使用
  1427. s_tranf8.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  1428. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  1429. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1430. s_tranf8.b_long = - 1 //选择原料或产品
  1431. s_tranf8.d_long = ins_storageid
  1432. s_tranf8.c_long = -1
  1433. dw_child.AcceptText()
  1434. IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  1435. THIS.Enabled = FALSE
  1436. OpenWithParm(w_mtrlware_storageid_ch,s_tranf8) //调用
  1437. THIS.Enabled = TRUE
  1438. s_mtrlware_noalloc_array S_INSCUST_ware
  1439. S_INSCUST_ware = Message.PowerObjectParm //接受返回结构
  1440. FOR ls_j = 1 TO UpperBound(S_INSCUST_ware.mtrlwareid)
  1441. IF S_INSCUST_ware.mtrlwareid[ls_j] > 0 THEN
  1442. IF dw_child.GetRow() > 0 THEN
  1443. IF dw_child.Object.mtrlwareid[child_row] <> 0 THEN
  1444. child_row = dw_child.InsertRow (0)
  1445. ELSE
  1446. child_row = dw_child.GetRow()
  1447. END IF
  1448. ELSE
  1449. child_row = dw_child.InsertRow (0)
  1450. END IF
  1451. dw_child.Object.mtrlwareid[child_row] = S_INSCUST_ware.mtrlwareid[ls_j]
  1452. dw_child.Object.mtrlid[child_row] = S_INSCUST_ware.mtrlid[ls_j]
  1453. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST_ware.u_mtrldef_mtrlcode[ls_j]
  1454. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST_ware.u_mtrldef_mtrlname[ls_j]
  1455. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST_ware.u_mtrldef_mtrlmode[ls_j]
  1456. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST_ware.u_mtrldef_unit[ls_j]
  1457. dw_child.Object.qty[child_row] = S_INSCUST_ware.noallocqty[ls_j]
  1458. dw_child.Object.price[child_row] = S_INSCUST_ware.cost[ls_j]
  1459. dw_child.Object.storageid[child_row] = S_INSCUST_ware.storageid[ls_j]
  1460. dw_child.Object.plancode[child_row] = S_INSCUST_ware.plancode[ls_j]
  1461. dw_child.Object.status[child_row] = S_INSCUST_ware.status[ls_j]
  1462. dw_child.Object.woodcode[child_row] = S_INSCUST_ware.woodcode[ls_j]
  1463. dw_child.Object.u_dismantle_installmx_pcode[child_row] = S_INSCUST_ware.pcode[ls_j]
  1464. dw_child.Object.u_dismantle_installmx_dxflag[child_row] = S_INSCUST_ware.dxflag[ls_j]
  1465. dw_child.Object.u_dismantle_installmx_sptid[child_row] = S_INSCUST_ware.sptid[ls_j]
  1466. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST_ware.u_mtrldef_mtrlsectype[ls_j]
  1467. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST_ware.u_mtrldef_zxmtrlmode[ls_j]
  1468. Long li_statusflag
  1469. Long li_woodcodeflag
  1470. Long li_pcodeflag
  1471. s_mtrldef_array arg_s_mtrldef
  1472. IF f_find_mtrl(S_INSCUST_ware.u_mtrldef_mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 THEN
  1473. li_statusflag = 0
  1474. li_woodcodeflag = 0
  1475. li_pcodeflag = 0
  1476. ELSE
  1477. li_statusflag = arg_s_mtrldef.statusflag[1]
  1478. li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
  1479. li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
  1480. END IF
  1481. dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag
  1482. dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag
  1483. dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag
  1484. dw_child.SetColumn("qty")
  1485. END IF
  1486. NEXT
  1487. dw_child.SetFocus()
  1488. END IF
  1489. END IF
  1490. this.triggerevent('ue_allowedit')
  1491. end event
  1492. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  1493. ls_newselect=lower(ori_oldselect)
  1494. if trim(sle_usual_query.text)<>'' then
  1495. if pos(trim(sle_usual_query.text),'%')=0 then
  1496. ls_querystrpart="(u_dismantle_install.billcode like '%"+trim(sle_usual_query.text)+"%')"
  1497. else
  1498. ls_querystrpart="(u_dismantle_install.billcode like '"+trim(sle_usual_query.text)+"')"
  1499. end if
  1500. if Pos(ls_newselect," where ") <> 0 then
  1501. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  1502. else
  1503. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  1504. end if
  1505. end if
  1506. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  1507. this.triggerevent('retrieve_pageretr')
  1508. end event
  1509. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  1510. if trim(sle_usual_query.text)<>'' then
  1511. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  1512. obj_expr=obj_expr+'( u_dismantle_install_billcode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  1513. ELSE
  1514. obj_expr=obj_expr+'( u_dismantle_install_billcode LIKE "'+trim(sle_usual_query.text)+'" )'
  1515. END IF
  1516. end if
  1517. dw_pageretr.setfilter(obj_expr)
  1518. dw_pageretr.SetRedraw(False)
  1519. dw_pageretr.filter()
  1520. if dw_pageretr.rowcount()>=1 then
  1521. dw_pageretr.selectrow(0,false)
  1522. dw_pageretr.selectrow(1,true)
  1523. dw_pageretr.SetRow(1)
  1524. dw_pageretr.triggerevent(rowfocuschanged!)
  1525. end if
  1526. dw_pageretr.SetRedraw(TRUE)
  1527. end event
  1528. event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  1529. boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  1530. cb_nextpage_enabled=cb_nextpage.enabled
  1531. cb_retrieveall_enabled=cb_retrieveall.enabled
  1532. cb_func_enabled=cb_func.enabled
  1533. cb_nextpage.enabled=false
  1534. cb_retrieveall.enabled=false
  1535. cb_func.enabled=false
  1536. dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数
  1537. dw_pageretr.Retrieve(cur_flag,cur_billtype)
  1538. IF dw_pageretr.RowCount() > 0 THEN
  1539. dw_pageretr.SetRow(1)
  1540. dw_pageretr.triggerevent(rowfocuschanged!)
  1541. end if
  1542. this.triggerevent('retrieve_childdw')
  1543. cb_nextpage.enabled=cb_nextpage_enabled
  1544. cb_retrieveall.enabled=cb_retrieveall_enabled
  1545. cb_func.enabled=cb_func_enabled
  1546. //只显未自已管的仓库
  1547. datawindowchild childdw
  1548. string new_sqlstr,modify_str
  1549. dw_uc.SetTransObject (sqlca)
  1550. dw_uc.getchild("u_dismantle_install_storageid",childdw)
  1551. childdw.SetTransObject (sqlca)
  1552. new_sqlstr=childdw.Describe("DataWindow.Table.Select")
  1553. if len(ol_cdw_str) = 0 then ol_cdw_str = new_sqlstr
  1554. new_sqlstr=f_modify_selectstr(ol_cdw_str)
  1555. modify_str="DataWindow.Table.Select='" + new_sqlstr +"'"
  1556. childdw.modify ( modify_str )
  1557. childdw.retrieve(0)
  1558. //childdw.retrieve()
  1559. //
  1560. end event
  1561. event refresh_interface;call super::refresh_interface;wf_flagstatus_rf()
  1562. ddlb_status.Enabled = NOT dw_edit_mode
  1563. ddlb_1.Enabled = NOT dw_edit_mode
  1564. end event
  1565. event close;call super::close;int li_auto
  1566. if cbx_di.checked then
  1567. li_auto = 1
  1568. else
  1569. li_auto = 0
  1570. end if
  1571. f_SetProfileString (sys_empid, publ_userid+'_'+dw_uc.DataObject, "auto_di", string(li_auto))
  1572. destroy uo_ware
  1573. wf_del_tempfilepathname()
  1574. end event
  1575. event ue_f9;call super::ue_f9;//用于选择明细内容,被F9[默认]\dw_uc.doubleclicked调用
  1576. IF NOT dw_edit_mode THEN RETURN
  1577. Long ucrow
  1578. Long ins_storageid = 0
  1579. Long ls_j
  1580. dw_uc.AcceptText()
  1581. ucrow = dw_uc.GetRow()
  1582. ins_storageid = dw_uc.Object.u_dismantle_install_storageid[dw_uc.GetRow()]
  1583. IF ins_storageid = 0 OR IsNull(ins_storageid) THEN
  1584. MessageBox('提示','请先选择仓库',information!,OK!)
  1585. dw_uc.SetColumn("u_dismantle_install_storageid")
  1586. RETURN
  1587. END IF
  1588. IF cur_billtype = 0 THEN
  1589. IF NOT IsValid(W_mtrldef_edit) THEN
  1590. s_edit_index_tran s_ch_tran //传递参数使用
  1591. s_ch_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  1592. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  1593. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  1594. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1595. s_ch_tran.if_select_all = FALSE
  1596. s_ch_tran.if_select_any = FALSE
  1597. s_ch_tran.b_long = 0
  1598. s_ch_tran.c_long = ins_storageid
  1599. dw_uc.AcceptText()
  1600. IF dw_uc.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_uc.Object.u_mtrldef_mtrlcode[dw_uc.GetRow()])
  1601. THIS.Enabled = FALSE
  1602. OpenWithParm(W_mtrldef_edit,s_ch_tran)
  1603. THIS.Enabled = TRUE
  1604. s_mtrldef_array S_INSCUST
  1605. S_INSCUST = Message.PowerObjectParm
  1606. FOR ls_j = 1 TO UpperBound(S_INSCUST.mtrlid)
  1607. IF S_INSCUST.mtrlid[ls_j] > 0 THEN
  1608. dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = S_INSCUST.mtrlid[ls_j]
  1609. dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = S_INSCUST.mtrlcode[ls_j]
  1610. dw_uc.Object.u_mtrldef_mtrlname[ucrow] = S_INSCUST.mtrlname[ls_j]
  1611. dw_uc.Object.u_mtrldef_unit[ucrow] = S_INSCUST.unit[ls_j]
  1612. dw_uc.Object.u_dismantle_install_price[ucrow] = S_INSCUST.planprice[ls_j]
  1613. dw_child.Object.u_mtrldef_mtrlmode[ucrow] = S_INSCUST.mtrlmode[ls_j]
  1614. dw_child.Object.u_mtrldef_zxmtrlmode[ucrow] = S_INSCUST.zxmtrlmode[ls_j]
  1615. dw_child.Object.u_mtrldef_mtrlsectype[ucrow] =S_INSCUST.mtrlsectype[ls_j]
  1616. END IF
  1617. NEXT
  1618. dw_uc.SetFocus()
  1619. dw_uc.SetColumn("u_dismantle_install_plancode")
  1620. END IF
  1621. ELSE
  1622. IF NOT IsValid(w_mtrlware_storageid_ch) THEN
  1623. s_edit_index_tran s_tranf8 //传递参数使用
  1624. s_tranf8.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  1625. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  1626. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1627. s_tranf8.b_long = - 1 //选择原料或产品
  1628. s_tranf8.d_long = ins_storageid
  1629. s_tranf8.if_select_any = FALSE
  1630. s_tranf8.c_long = -1
  1631. dw_uc.AcceptText()
  1632. IF dw_uc.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_uc.Object.u_mtrldef_mtrlcode[dw_uc.GetRow()])
  1633. THIS.Enabled = FALSE
  1634. OpenWithParm(w_mtrlware_storageid_ch,s_tranf8) //调用
  1635. THIS.Enabled = TRUE
  1636. s_mtrlware_noalloc_array S_INSCUST_ware
  1637. S_INSCUST_ware = Message.PowerObjectParm //接受返回结构
  1638. FOR ls_j = 1 TO UpperBound(S_INSCUST_ware.mtrlwareid)
  1639. IF S_INSCUST_ware.mtrlwareid[ls_j] > 0 THEN
  1640. dw_uc.Object.u_dismantle_install_mtrlwareid[ucrow] = S_INSCUST_ware.mtrlwareid[ls_j]
  1641. dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = S_INSCUST_ware.mtrlid[ls_j]
  1642. dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = S_INSCUST_ware.u_mtrldef_mtrlcode[ls_j]
  1643. dw_uc.Object.u_mtrldef_mtrlname[ucrow] = S_INSCUST_ware.u_mtrldef_mtrlname[ls_j]
  1644. dw_uc.Object.u_dismantle_install_qty[ucrow] = S_INSCUST_ware.noallocqty[ls_j]
  1645. dw_uc.Object.u_dismantle_install_price[ucrow] = S_INSCUST_ware.cost[ls_j]
  1646. dw_uc.Object.u_dismantle_install_storageid[ucrow] = S_INSCUST_ware.storageid[ls_j]
  1647. dw_uc.Object.u_dismantle_install_plancode[ucrow] = S_INSCUST_ware.plancode[ls_j]
  1648. dw_uc.Object.u_dismantle_install_status[ucrow] = S_INSCUST_ware.status[ls_j]
  1649. dw_uc.Object.u_dismantle_install_woodcode[ucrow] = S_INSCUST_ware.woodcode[ls_j]
  1650. dw_uc.Object.u_dismantle_install_pcode[ucrow] = S_INSCUST_ware.pcode[ls_j]
  1651. dw_uc.Object.u_dismantle_install_dxflag[ucrow] = S_INSCUST_ware.dxflag[ls_j]
  1652. dw_uc.Object.u_dismantle_install_sptid[ucrow] = S_INSCUST_ware.sptid[ls_j]
  1653. dw_uc.Object.u_mtrldef_unit[ucrow] = S_INSCUST_ware.u_mtrldef_unit[ls_j]
  1654. dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = S_INSCUST_ware.u_mtrldef_mtrlmode[ls_j]
  1655. dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = S_INSCUST_ware.u_mtrldef_mtrlsectype[ls_j]
  1656. dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = S_INSCUST_ware.u_mtrldef_zxmtrlmode[ls_j]
  1657. END IF
  1658. NEXT
  1659. dw_uc.SetFocus()
  1660. dw_uc.SetColumn("u_dismantle_install_qty")
  1661. END IF
  1662. END IF
  1663. end event
  1664. event ue_addzy;call super::ue_addzy;IF dw_edit_mode THEN
  1665. MessageBox('提示',"编辑状态下不可以使用!",information!,OK!)
  1666. return
  1667. END IF
  1668. IF NOT f_power_ind(792) THEN
  1669. MessageBox('提示','你没有使用权限!',information!,OK!)
  1670. RETURN
  1671. END IF
  1672. string arg_msg=''
  1673. string ls_str
  1674. long uc_row
  1675. s_inputbox s_sreu
  1676. uc_row=dw_pageretr.getrow()
  1677. if uc_row<=0 then
  1678. messagebox('提示','请选定当前目标单据!',information!,OK!)
  1679. return
  1680. end if
  1681. s_sreu.title='请输入要补充到备注的内容'
  1682. s_sreu.old_text=''
  1683. openwithparm(w_inputbox,s_sreu)
  1684. ls_str=message.stringparm
  1685. if trim(ls_str)='' or isnull(ls_str) then return
  1686. if uo_ware.add_dscrp(dw_pageretr.object.u_dismantle_install_billid[uc_row],ls_str,arg_msg)=0 then
  1687. messagebox('错误',arg_msg,stopsign!,OK!)
  1688. return
  1689. else
  1690. messagebox('提示','添加备注操作成功!',information!,OK!)
  1691. wf_refresh_curuc(dw_pageretr.object.u_dismantle_install_billid[uc_row])
  1692. end if
  1693. end event
  1694. event ue_f10;call super::ue_f10;IF NOT dw_edit_mode THEN RETURN
  1695. Long child_row
  1696. Int if_addmxdscrp
  1697. String ls_mxdscrp
  1698. s_addqty_input s_input
  1699. dw_child.AcceptText( )
  1700. child_row = dw_child.GetRow()
  1701. IF child_row <= 0 THEN RETURN
  1702. IF dw_child.Object.mtrlid[child_row] <= 0 THEN RETURN
  1703. ls_mxdscrp = dw_child.Object.mxdscrp[child_row]
  1704. IF NOT IsValid(w_addqty_input) THEN
  1705. OpenWithParm(w_addqty_input,ls_mxdscrp)
  1706. s_input = Message.PowerObjectParm
  1707. IF s_input.addqty = -1 THEN RETURN
  1708. dw_child.Object.u_dismantle_installmx_addqty[child_row] = s_input.addqty
  1709. IF s_input.addqtystr <> '' THEN
  1710. dw_child.Object.mxdscrp[child_row] = s_input.addqtystr
  1711. END IF
  1712. // IF s_input.formula <> '' THEN
  1713. // dw_child.Object.u_inwaremx_formula[child_row] = s_input.formula
  1714. // END IF
  1715. IF s_input.flag = 1 THEN
  1716. dw_child.Object.qty[child_row] = s_input.qty
  1717. END IF
  1718. END IF
  1719. end event
  1720. event ue_before_open;call super::ue_before_open; long auto_di
  1721. auto_di =long( f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "auto_di",'0'))
  1722. if auto_di = 1 then
  1723. cbx_di.checked = true
  1724. else
  1725. cbx_di.checked =false
  1726. end if
  1727. end event
  1728. event ue_viewprint;call super::ue_viewprint;
  1729. //IF Not (f_power_ind(ls_powerid)) THEN
  1730. // MessageBox(publ_operator,'你没有使用权限!')
  1731. // RETURN
  1732. //END IF
  1733. Long LS_ROW
  1734. LS_ROW = dw_uc.GetRow()
  1735. IF LS_ROW <= 0 THEN
  1736. MessageBox('NO','没有打印目标单据!')
  1737. RETURN
  1738. END IF
  1739. S_print_MSG LS_PRMSG
  1740. IF ls_newname <> '' THEN
  1741. IF li_auditprint = 1 THEN
  1742. IF dw_uc.Object.flag[dw_uc.GetRow()] = 0 THEN
  1743. MessageBox('NO','目标单据还未审核,不能打印!')
  1744. RETURN
  1745. END IF
  1746. END IF
  1747. LS_PRMSG.obj_dwNAME = ls_newname
  1748. ELSE
  1749. LS_PRMSG.obj_dwNAME = 'dw_rp_dismantle_install_edit'
  1750. END IF
  1751. LS_PRMSG.printrow = ll_prownum
  1752. LS_PRMSG.TAG_TEXT = '拆装单'
  1753. LS_PRMSG.FILTER_STRING = ''
  1754. LS_PRMSG.retr_pram_falg = 15
  1755. LS_PRMSG.PAGECH_FLAG = 0
  1756. LS_PRMSG.retr_scid = 0
  1757. LS_PRMSG.retr_pramnmb = dw_uc.Object.u_dismantle_install_billid[LS_ROW]
  1758. LS_PRMSG.rowcnt = dw_child.RowCount()
  1759. IF ifpic = 1 THEN
  1760. String ls_msg
  1761. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  1762. MessageBox('提示','下载图片失败!',information!,OK!)
  1763. RETURN
  1764. END IF
  1765. END IF
  1766. OpenWithParm(w_publ_preview,LS_PRMSG)
  1767. IF ifpic = 1 THEN
  1768. Long li
  1769. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  1770. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  1771. FileDelete(LS_PRMSG.s_pic.path[li])
  1772. END IF
  1773. NEXT
  1774. END IF
  1775. end event
  1776. event ue_print;call super::ue_print;//--直接打印
  1777. //IF Not (f_power_ind(ls_powerid)) THEN
  1778. // MessageBox(publ_operator,'你没有使用权限!')
  1779. // RETURN
  1780. //END IF
  1781. uo_print_preview uo_print
  1782. IF MessageBox ("IF","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  1783. S_print_MSG LS_PRMSG
  1784. IF dw_uc.RowCount() = 0 THEN
  1785. MessageBox('系统信息','没有可打印的单据!')
  1786. RETURN
  1787. END IF
  1788. IF ls_newname <> '' THEN
  1789. IF li_auditprint = 1 THEN
  1790. IF dw_uc.Object.flag[dw_uc.GetRow()] = 0 THEN
  1791. MessageBox('NO','目标单据还未审核,不能打印!')
  1792. RETURN
  1793. END IF
  1794. END IF
  1795. LS_PRMSG.obj_dwNAME = ls_newname
  1796. ELSE
  1797. LS_PRMSG.obj_dwNAME = 'dw_rp_dismantle_install_edit'
  1798. END IF
  1799. LS_PRMSG.printrow = ll_prownum
  1800. LS_PRMSG.retr_pram_falg = 15
  1801. LS_PRMSG.TAG_TEXT = '拆装单'
  1802. LS_PRMSG.FILTER_STRING = ''
  1803. LS_PRMSG.PAGECH_FLAG = 0
  1804. LS_PRMSG.retr_scid = 0
  1805. LS_PRMSG.retr_pramnmb = dw_uc.Object.u_dismantle_install_billid[dw_uc.GetRow()]
  1806. LS_PRMSG.rowcnt = dw_child.RowCount()
  1807. IF ifpic = 1 THEN
  1808. String ls_msg
  1809. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  1810. MessageBox('提示','下载图片失败!',information!,OK!)
  1811. RETURN
  1812. END IF
  1813. END IF
  1814. uo_print.FACT_PRINT_MSG = LS_PRMSG
  1815. String arg_msg
  1816. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  1817. MessageBox("系统提示",arg_msg)
  1818. RETURN
  1819. END IF
  1820. uo_print.ds_print()
  1821. IF ifpic = 1 THEN
  1822. Long li
  1823. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  1824. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  1825. FileDelete(LS_PRMSG.s_pic.path[li])
  1826. END IF
  1827. NEXT
  1828. END IF
  1829. end event
  1830. type cb_func from w_publ_1ton_share_detail`cb_func within w_dismantle_install
  1831. end type
  1832. type cb_exit from w_publ_1ton_share_detail`cb_exit within w_dismantle_install
  1833. end type
  1834. type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_dismantle_install
  1835. integer x = 215
  1836. integer width = 485
  1837. end type
  1838. type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_dismantle_install
  1839. integer x = 3013
  1840. end type
  1841. type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_dismantle_install
  1842. integer x = 2688
  1843. integer y = 52
  1844. integer width = 320
  1845. end type
  1846. type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_dismantle_install
  1847. integer x = 2085
  1848. integer y = 300
  1849. integer width = 1445
  1850. integer height = 1132
  1851. string dataobject = "dw_dismantle_install_index"
  1852. end type
  1853. event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;wf_flagstatus_rf()
  1854. wf_check_billfj()
  1855. end event
  1856. type st_1 from w_publ_1ton_share_detail`st_1 within w_dismantle_install
  1857. integer x = 0
  1858. integer y = 208
  1859. integer width = 192
  1860. alignment alignment = right!
  1861. end type
  1862. type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_dismantle_install
  1863. integer x = 3163
  1864. end type
  1865. type dw_uc from w_publ_1ton_share_detail`dw_uc within w_dismantle_install
  1866. integer y = 300
  1867. integer width = 2085
  1868. integer height = 1132
  1869. string dataobject = "dw_dismantle_install_edit"
  1870. end type
  1871. event dw_uc::dwnkey;PARENT.TriggerEvent('user_key')
  1872. IF Key = KeyDownArrow! THEN RETURN 1
  1873. Long ucrow,ll_storageid
  1874. String ls_mtrlcode,ls_plancode,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode
  1875. String ls_mtrlmode,ls_mtrlname,ls_unit,ls_status
  1876. Long ls_mtrlid,ls_mtrlwareid
  1877. Dec ls_lmbuyprice,ls_noallocqty,ls_cost,ls_planprice,ls_noauditingqty
  1878. Int li_dxflag
  1879. Long ll_sptid
  1880. s_mtrldef_array arg_s_mtrldef
  1881. s_mtrlware_noalloc_array arg_s_mtrlware
  1882. ucrow = dw_uc.GetRow()
  1883. IF dw_edit_mode THEN
  1884. IF dw_uc.GetColumnName ( ) = 'u_dismantle_install_dscrp' AND Key = KeyEnter! THEN
  1885. dw_uc.AcceptText()
  1886. dw_child.SetFocus()
  1887. dw_child.ScrollToRow(1)
  1888. dw_child.SetColumn ('storageid')
  1889. ll_storageid = dw_uc.Object.u_dismantle_install_storageid[ucrow]
  1890. IF ll_storageid > 0 THEN
  1891. IF dw_child.RowCount() > 0 AND dw_child.Object.storageid[1] = 0 THEN
  1892. dw_child.Object.storageid[1] = ll_storageid
  1893. END IF
  1894. END IF
  1895. RETURN 1
  1896. ELSEIF dw_uc.GetColumnName ( ) = 'u_mtrldef_mtrlcode' AND Key = KeyEnter! THEN
  1897. dw_uc.AcceptText()
  1898. ll_storageid = dw_uc.Object.u_dismantle_install_storageid[ucrow]
  1899. ls_mtrlcode = dw_uc.Object.u_mtrldef_mtrlcode[ucrow]
  1900. dw_uc.AcceptText()
  1901. IF dw_uc.Object.u_dismantle_install_billtype[ucrow] = 0 THEN //装单
  1902. IF f_find_mtrl(ls_mtrlcode,ll_storageid,arg_s_mtrldef) = 0 THEN
  1903. PARENT.TriggerEvent('ue_f9')
  1904. RETURN 1
  1905. ELSE
  1906. ls_mtrlid = arg_s_mtrldef.mtrlid[1]
  1907. ls_mtrlcode = arg_s_mtrldef.mtrlcode[1]
  1908. ls_mtrlname = arg_s_mtrldef.mtrlname[1]
  1909. ls_unit = arg_s_mtrldef.unit[1]
  1910. ls_mtrlmode = arg_s_mtrldef.mtrlmode[1]
  1911. ls_planprice = arg_s_mtrldef.planprice[1]
  1912. ls_mtrlsectype=arg_s_mtrldef.mtrlsectype[1]
  1913. ls_zxmtrlmode=arg_s_mtrldef.zxmtrlmode[1]
  1914. END IF
  1915. dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = ls_mtrlcode
  1916. dw_uc.Object.u_mtrldef_mtrlname[ucrow] = ls_mtrlname
  1917. dw_uc.Object.u_mtrldef_unit[ucrow] = ls_unit
  1918. dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = ls_mtrlid
  1919. dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = ls_mtrlmode
  1920. dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = ls_zxmtrlmode
  1921. dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = ls_mtrlsectype
  1922. ELSE
  1923. dw_uc.AcceptText()
  1924. IF f_find_mtrlware(ls_mtrlcode,ll_storageid,-1,arg_s_mtrlware) = 0 THEN
  1925. PARENT.TriggerEvent('ue_f9')
  1926. RETURN 1
  1927. ELSE
  1928. ls_mtrlwareid = arg_s_mtrlware.mtrlwareid[1]
  1929. ls_mtrlid = arg_s_mtrlware.mtrlid[1]
  1930. ls_mtrlcode = arg_s_mtrlware.u_mtrldef_mtrlcode[1]
  1931. ls_mtrlname = arg_s_mtrlware.u_mtrldef_mtrlname[1]
  1932. ls_unit = arg_s_mtrlware.u_mtrldef_unit[1]
  1933. ls_mtrlmode = arg_s_mtrlware.u_mtrldef_mtrlmode[1]
  1934. ls_planprice = arg_s_mtrlware.planprice[1]
  1935. ls_noallocqty = arg_s_mtrlware.noallocqty[1]
  1936. ll_storageid = arg_s_mtrlware.storageid[1]
  1937. ls_plancode = arg_s_mtrlware.plancode[1]
  1938. ls_noauditingqty = arg_s_mtrlware.noauditingqty[1]
  1939. ls_status = arg_s_mtrlware.status[1]
  1940. ls_woodcode = arg_s_mtrlware.woodcode[1]
  1941. ls_pcode = arg_s_mtrlware.pcode[1]
  1942. ls_cost = arg_s_mtrlware.cost[1]
  1943. ls_zxmtrlmode = arg_s_mtrlware.u_mtrldef_zxmtrlmode[1]
  1944. ls_mtrlsectype = arg_s_mtrlware.u_mtrldef_mtrlsectype[1]
  1945. END IF
  1946. dw_uc.Object.u_mtrldef_mtrlname[ucrow] = ls_mtrlname
  1947. dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = ls_mtrlid
  1948. dw_uc.Object.u_dismantle_install_mtrlwareid[ucrow] = ls_mtrlwareid
  1949. dw_uc.Object.u_dismantle_install_price[ucrow] = ls_cost
  1950. dw_uc.Object.u_dismantle_install_plancode[ucrow] = ls_plancode
  1951. dw_uc.Object.u_dismantle_install_status[ucrow] = ls_status
  1952. dw_uc.Object.u_dismantle_install_woodcode[ucrow] = ls_woodcode
  1953. dw_uc.Object.u_dismantle_install_pcode[ucrow] = ls_pcode
  1954. dw_uc.Object.u_dismantle_install_dxflag[ucrow] = li_dxflag
  1955. dw_uc.Object.u_dismantle_install_sptid[ucrow] = ll_sptid
  1956. dw_uc.Object.u_mtrldef_unit[ucrow] = ls_unit
  1957. dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = ls_mtrlmode
  1958. dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = ls_mtrlsectype
  1959. dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = ls_zxmtrlmode
  1960. END IF
  1961. IF Key = KeyEnter! THEN //
  1962. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1963. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1964. RETURN 1
  1965. END IF
  1966. ELSE
  1967. IF Key = KeyEnter! THEN //
  1968. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1969. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1970. RETURN 1
  1971. END IF
  1972. END IF
  1973. END IF
  1974. end event
  1975. event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN
  1976. IF dwo.Name = 'storageid' THEN
  1977. dw_child.Reset()
  1978. PARENT.TriggerEvent("insert_childrow")
  1979. END IF
  1980. IF dwo.Name = 'u_dismantle_install_storageid' THEN
  1981. dw_child.Reset()
  1982. PARENT.TriggerEvent("insert_childrow")
  1983. dw_uc.Object.u_mtrldef_mtrlcode[row] = ''
  1984. dw_uc.Object.u_dismantle_install_plancode[row] = ''
  1985. dw_uc.Object.u_dismantle_install_woodcode[row] = ''
  1986. dw_uc.Object.u_dismantle_install_status[row] = ''
  1987. dw_uc.Object.u_dismantle_install_pcode[row] = ''
  1988. dw_uc.Object.u_dismantle_install_qty[row] = 0
  1989. dw_uc.Object.u_dismantle_install_price[row] = 0
  1990. dw_uc.Object.u_dismantle_install_mtrlid[row] = 0
  1991. dw_uc.Object.u_dismantle_install_mtrlwareid[row] = 0
  1992. dw_uc.Object.u_mtrldef_mtrlname[row] = ''
  1993. dw_uc.accepttext()
  1994. dw_uc.Object.u_dismantle_install_price.protect = cur_billtype
  1995. dw_uc.Object.u_dismantle_install_plancode.protect = cur_billtype
  1996. dw_uc.Object.u_dismantle_install_status.protect = cur_billtype
  1997. dw_uc.Object.u_dismantle_install_woodcode.protect = cur_billtype
  1998. dw_uc.Object.u_dismantle_install_pcode.protect = cur_billtype
  1999. dw_child.object.price.protect= cur_billtype
  2000. dw_child.object.plancode.protect= cur_billtype
  2001. dw_child.object.status.protect= cur_billtype
  2002. dw_child.object.woodcode.protect= cur_billtype
  2003. dw_child.object.u_dismantle_installmx_pcode.protect= cur_billtype
  2004. END IF
  2005. end event
  2006. event dw_uc::constructor;call super::constructor;f_title_change(this)
  2007. end event
  2008. event dw_uc::doubleclicked;IF dw_edit_mode And row > 0 THEN
  2009. IF (dwo.Name = 'u_dismantle_install_status' or dwo.Name = 'u_dismantle_install_woodcode' or dwo.Name = 'u_dismantle_install_pcode') AND &
  2010. (dw_uc.Object.u_dismantle_install_mtrlid[row] > 0) THEN
  2011. Parent.TriggerEvent('ue_view_pz')
  2012. ELSE
  2013. Parent.TriggerEvent('ue_f9')
  2014. END IF
  2015. END IF
  2016. end event
  2017. event dw_uc::ue_dwndropdown;IF Not dw_edit_mode THEN RETURN
  2018. String ls_col_pz,ls_col_mtrlid
  2019. String ls_pz_ch
  2020. String ls_col_value
  2021. Long ll_col_value
  2022. String ls_data_type
  2023. Long ll_row,ll_mtrlid
  2024. ll_row = This.GetRow()
  2025. IF ll_row > 0 THEN
  2026. ls_col_pz = This.GetColumnName( )
  2027. ls_data_type = dw_child.Describe(ls_col_pz+".ColType")
  2028. IF Left(Lower(ls_data_type),4 ) = "char" THEN
  2029. ls_col_value = This.GetItemString(ll_row,ls_col_pz)
  2030. ELSEIF Left(Lower(ls_data_type),4) = "long" THEN
  2031. ll_col_value = This.GetItemNumber(ll_row,ls_col_pz)
  2032. END IF
  2033. // arg_s_win.arg_x = THIS.X + THIS.PointerX() + PARENT.X
  2034. // arg_s_win.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y
  2035. //
  2036. // arg_s_win.arg_col = ls_col_pz
  2037. // arg_s_win.arg_mtrlid = ll_col_value
  2038. // arg_s_win.arg_col_value = ls_col_value
  2039. // ls_pz_ch = f_mtrl_pz(arg_s_win)
  2040. //
  2041. // IF ls_pz_ch = '' THEN RETURN
  2042. IF ls_pz_ch <> '' THEN This.SetItem(ll_row,ls_col_pz,ls_pz_ch)
  2043. END IF
  2044. end event
  2045. type gb_2 from w_publ_1ton_share_detail`gb_2 within w_dismantle_install
  2046. end type
  2047. type dw_child from w_publ_1ton_share_detail`dw_child within w_dismantle_install
  2048. integer y = 1436
  2049. integer width = 3534
  2050. integer height = 768
  2051. string title = "单据明细内容 [双击选择物料]"
  2052. string dataobject = "dw_dismantle_installmx_edit"
  2053. boolean minbox = true
  2054. boolean maxbox = false
  2055. end type
  2056. event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key')
  2057. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode
  2058. String ls_plancode,ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode
  2059. Long ls_mtrlid
  2060. Decimal ls_planprice
  2061. Int li_dxflag
  2062. Long ll_sptid
  2063. s_mtrlware_noalloc_array arg_s_mtrlware
  2064. s_mtrldef_array arg_s_mtrldef
  2065. Long child_row,ucrow
  2066. Long ls_null
  2067. Long ls_storageid,ls_mtrlwareid
  2068. Dec ls_noallocqty,ls_cost,ls_noauditingqty
  2069. Long li_statusflag
  2070. Long li_woodcodeflag
  2071. Long li_pcodeflag
  2072. SetNull(ls_null)
  2073. IF dw_edit_mode THEN
  2074. dw_uc.AcceptText()
  2075. ucrow = dw_uc.GetRow()
  2076. IF KeyDown(Keydownarrow!) THEN
  2077. Long li_row
  2078. IF dw_child.GetRow() = dw_child.RowCount() THEN
  2079. PARENT.TriggerEvent("insert_childrow")
  2080. END IF
  2081. ELSE
  2082. If (KeyDown(KeyEnter!) OR KeyDown(KeyTab!)) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN
  2083. IF dw_child.GetColumnName() = 'u_mtrldef_mtrlcode' THEN
  2084. dw_child.AcceptText()
  2085. child_row = dw_child.GetRow()
  2086. ls_storageid = dw_child.Object.storageid[child_row]
  2087. IF ls_storageid = 0 OR IsNull(ls_storageid) THEN
  2088. MessageBox('提示','请先选择仓库',information!,OK!)
  2089. RETURN
  2090. END IF
  2091. ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row]
  2092. IF cur_billtype = 1 THEN //拆单
  2093. IF f_find_mtrl(ls_mtrlcode,ls_storageid,arg_s_mtrldef) = 0 THEN
  2094. PARENT.TriggerEvent('ue_f8')
  2095. RETURN 1
  2096. ELSE
  2097. ls_mtrlid = arg_s_mtrldef.mtrlid[1]
  2098. ls_mtrlcode = arg_s_mtrldef.mtrlcode[1]
  2099. ls_mtrlname = arg_s_mtrldef.mtrlname[1]
  2100. ls_unit = arg_s_mtrldef.unit[1]
  2101. ls_mtrlmode = arg_s_mtrldef.mtrlmode[1]
  2102. ls_planprice = arg_s_mtrldef.planprice[1]
  2103. ls_mtrlsectype = arg_s_mtrldef.mtrlsectype[1]
  2104. ls_zxmtrlmode = arg_s_mtrldef.zxmtrlmode[1]
  2105. li_statusflag = arg_s_mtrldef.statusflag[1]
  2106. li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
  2107. li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
  2108. END IF
  2109. dw_child.Object.mtrlid[child_row] = ls_mtrlid
  2110. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  2111. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  2112. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  2113. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  2114. dw_child.Object.price[child_row] = ls_planprice
  2115. dw_child.Object.storageid[child_row] = ls_storageid
  2116. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  2117. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  2118. dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag
  2119. dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag
  2120. dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag
  2121. ELSEIF cur_billtype = 0 THEN //装
  2122. dw_child.AcceptText()
  2123. child_row = dw_child.GetRow()
  2124. ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row]
  2125. ls_storageid = dw_child.Object.storageid[child_row]
  2126. IF ls_storageid = 0 OR IsNull(ls_storageid) THEN
  2127. MessageBox('提示','请先选择仓库',information!,OK!)
  2128. RETURN
  2129. END IF
  2130. IF f_find_mtrlware(ls_mtrlcode,ls_storageid,-1,arg_s_mtrlware) = 0 THEN
  2131. PARENT.TriggerEvent('ue_f8')
  2132. RETURN 1
  2133. ELSE
  2134. ls_mtrlwareid = arg_s_mtrlware.mtrlwareid[1]
  2135. ls_mtrlid = arg_s_mtrlware.mtrlid[1]
  2136. ls_mtrlcode = arg_s_mtrlware.u_mtrldef_mtrlcode[1]
  2137. ls_mtrlname = arg_s_mtrlware.u_mtrldef_mtrlname[1]
  2138. ls_unit = arg_s_mtrlware.u_mtrldef_unit[1]
  2139. ls_mtrlmode = arg_s_mtrlware.u_mtrldef_mtrlmode[1]
  2140. ls_planprice = arg_s_mtrlware.planprice[1]
  2141. ls_noallocqty = arg_s_mtrlware.noallocqty[1]
  2142. ls_storageid = arg_s_mtrlware.storageid[1]
  2143. ls_plancode = arg_s_mtrlware.plancode[1]
  2144. ls_noauditingqty = arg_s_mtrlware.noauditingqty[1]
  2145. ls_status = arg_s_mtrlware.status[1]
  2146. ls_woodcode = arg_s_mtrlware.woodcode[1]
  2147. ls_pcode = arg_s_mtrlware.pcode[1]
  2148. ls_cost = arg_s_mtrlware.cost[1]
  2149. ls_zxmtrlmode = arg_s_mtrlware.u_mtrldef_zxmtrlmode[1]
  2150. ls_mtrlsectype = arg_s_mtrlware.u_mtrldef_mtrlsectype[1]
  2151. END IF
  2152. dw_child.Object.mtrlwareid[child_row] = ls_mtrlwareid
  2153. dw_child.Object.mtrlid[child_row] = ls_mtrlid
  2154. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  2155. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  2156. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  2157. dw_child.Object.qty[child_row] = ls_noallocqty - ls_noauditingqty
  2158. dw_child.Object.price[child_row] = ls_cost
  2159. dw_child.Object.storageid[child_row] = ls_storageid
  2160. dw_child.Object.plancode[child_row] = ls_plancode
  2161. dw_child.Object.status[child_row] = ls_status
  2162. dw_child.Object.woodcode[child_row] = ls_woodcode
  2163. dw_child.Object.u_dismantle_installmx_pcode[child_row] = ls_pcode
  2164. dw_child.Object.u_dismantle_installmx_dxflag[child_row] = li_dxflag
  2165. dw_child.Object.u_dismantle_installmx_sptid[child_row] = ll_sptid
  2166. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  2167. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  2168. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  2169. IF f_find_mtrl(ls_mtrlcode,-1,arg_s_mtrldef) = 0 THEN
  2170. li_statusflag = 0
  2171. li_woodcodeflag = 0
  2172. li_pcodeflag = 0
  2173. ELSE
  2174. li_statusflag = arg_s_mtrldef.statusflag[1]
  2175. li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
  2176. li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
  2177. END IF
  2178. dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag
  2179. dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag
  2180. dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag
  2181. parent.triggerevent('ue_allowedit')
  2182. END IF
  2183. IF Key = KeyEnter! THEN
  2184. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2185. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2186. RETURN 1
  2187. END IF
  2188. ELSEIF dw_child.GetColumnName( ) = 'mxdscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN
  2189. PARENT.TriggerEvent("insert_childrow")
  2190. RETURN 1
  2191. ELSE
  2192. IF Key = KeyEnter! THEN
  2193. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2194. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2195. RETURN 1
  2196. END IF
  2197. END IF
  2198. END IF
  2199. END IF
  2200. END IF
  2201. //u_mtrldef_mtrlcode
  2202. //u_mtrldef_unit
  2203. //u_inwaremx_mtrlid
  2204. //u_inwaremx_planprice
  2205. //u_inwaremx_price
  2206. //u_mtrldef_mtrlname
  2207. end event
  2208. event dw_child::getfocus;call super::getfocus;dw_uc.AcceptText()
  2209. Int protect = 0
  2210. IF dw_uc.GetRow() > 0 THEN
  2211. IF cur_billtype = 0 THEN
  2212. protect = 1
  2213. ELSE
  2214. protect = 0
  2215. END IF
  2216. dw_child.Object.price.protect = protect
  2217. dw_child.Object.plancode.protect = protect
  2218. dw_child.Object.status.protect = protect
  2219. dw_child.Object.woodcode.protect = protect
  2220. dw_child.Object.u_dismantle_installmx_pcode.protect = protect
  2221. END IF
  2222. end event
  2223. event dw_child::doubleclicked;if dw_edit_mode and row > 0 then
  2224. if dwo.name = 'u_dismantle_installmx_addqty' then
  2225. parent.triggerevent('ue_f10')
  2226. else
  2227. parent.triggerevent('ue_f8')
  2228. end if
  2229. end if
  2230. end event
  2231. type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_dismantle_install
  2232. end type
  2233. type cb_print from w_publ_1ton_share_detail`cb_print within w_dismantle_install
  2234. end type
  2235. event cb_print::clicked;call super::clicked;//if not (f_power_ind(26) or f_power_ind(26)) then
  2236. // messagebox(publ_operator,'你没有使用权限!')
  2237. // return
  2238. //end if
  2239. //LONG LS_ROW
  2240. //LS_ROW=dw_uc.getrow()
  2241. //IF LS_ROW<=0 THEN
  2242. // MESSAGEBOX('NO','没有打印目标单据!')
  2243. // RETURN
  2244. //END IF
  2245. //
  2246. //S_print_MSG LS_PRMSG
  2247. //
  2248. //LS_PRMSG.obj_dwNAME='dw_rp_inware_py_edit'
  2249. //LS_PRMSG.TAG_TEXT='盘盈单'
  2250. //LS_PRMSG.FILTER_STRING = ''
  2251. //LS_PRMSG.retr_pram_falg=2
  2252. //LS_PRMSG.PAGECH_FLAG=0
  2253. //LS_PRMSG.retr_pramnmb=dw_uc.object.inwareid[LS_ROW]
  2254. //Openwithparm(w_publ_preview,LS_PRMSG)
  2255. end event
  2256. type cb_add from w_publ_1ton_share_detail`cb_add within w_dismantle_install
  2257. end type
  2258. event cb_add::clicked;IF NOT f_power_ind(87) THEN
  2259. MessageBox('提示','你没有使用权限!',information!,OK!)
  2260. RETURN
  2261. END IF
  2262. String arg_msg = ''
  2263. Long uc_row,i,LL_MX,LL_ZB
  2264. dec ld_price ,LD_MX
  2265. int row_i
  2266. IF dw_edit_mode THEN
  2267. dw_uc.AcceptText()
  2268. dw_child.AcceptText()
  2269. uc_row = dw_uc.GetRow()
  2270. IF uc_row <= 0 THEN
  2271. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  2272. RETURN
  2273. END IF
  2274. IF NOT dw_uc.Object.u_dismantle_install_billdate[uc_row] > DateTime(2000-01-01,Now()) THEN
  2275. MessageBox('提示','不合理发生时间!',information!,OK!)
  2276. dw_uc.SetFocus()
  2277. dw_uc.SetColumn("u_dismantle_install_billdate")
  2278. RETURN
  2279. END IF
  2280. IF NOT Len(String(dw_uc.Object.u_dismantle_install_rep[uc_row])) > 0 THEN
  2281. MessageBox('提示','请填写经手人!',information!,OK!)
  2282. dw_uc.SetFocus()
  2283. dw_uc.SetColumn("u_dismantle_install_rep")
  2284. RETURN
  2285. END IF
  2286. IF dw_uc.Object.u_dismantle_install_qty[uc_row] <= 0 THEN
  2287. MessageBox('提示','请填写拆装数量!',information!,OK!)
  2288. dw_uc.SetFocus()
  2289. dw_uc.SetColumn("u_dismantle_install_qty")
  2290. RETURN
  2291. END IF
  2292. FOR row_i = 1 to dw_child.RowCount()
  2293. int li_storageid
  2294. li_storageid = dw_child.Object.storageid[row_i]
  2295. IF wf_checkstorageid(li_storageid) <> 0 THEN
  2296. MessageBox('提示','第'+string(row_i)+'行明细请输入正确的仓库!',information!,OK!)
  2297. RETURN
  2298. END IF
  2299. next
  2300. IF sys_dismantle_install_check = 1 THEN
  2301. String argmsg
  2302. IF wf_checkqty(argmsg) = 0 THEN
  2303. MessageBox('错误',argmsg,stopsign!,OK!)
  2304. return
  2305. END IF
  2306. END IF
  2307. uo_ware.billdate = dw_uc.Object.u_dismantle_install_billdate[uc_row] // 发生时间
  2308. uo_ware.rep = dw_uc.Object.u_dismantle_install_rep[uc_row] // 经手人
  2309. uo_ware.dscrp = dw_uc.Object.u_dismantle_install_dscrp[uc_row] //备注
  2310. uo_ware.storageid = dw_uc.Object.u_dismantle_install_storageid[uc_row]
  2311. uo_ware.mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[uc_row]
  2312. uo_ware.mtrlwareid = dw_uc.Object.u_dismantle_install_mtrlwareid[uc_row]
  2313. uo_ware.status = dw_uc.Object.u_dismantle_install_status[uc_row]
  2314. uo_ware.plancode = dw_uc.Object.u_dismantle_install_plancode[uc_row]
  2315. uo_ware.woodcode = dw_uc.Object.u_dismantle_install_woodcode[uc_row]
  2316. uo_ware.qty = dw_uc.Object.u_dismantle_install_qty[uc_row]
  2317. uo_ware.addqty = dw_uc.Object.u_dismantle_install_addqty[uc_row]
  2318. uo_ware.price = dw_uc.Object.u_dismantle_install_price[uc_row]
  2319. uo_ware.buildtype = 0
  2320. uo_ware.mtrlcode = dw_uc.Object.u_mtrldef_mtrlcode[uc_row]
  2321. uo_ware.reason = dw_uc.Object.u_dismantle_install_reason[uc_row]
  2322. uo_ware.pcode = dw_uc.Object.u_dismantle_install_pcode[uc_row]
  2323. uo_ware.dxflag = dw_uc.Object.u_dismantle_install_dxflag[uc_row]
  2324. uo_ware.sptid = dw_uc.Object.u_dismantle_install_sptid[uc_row]
  2325. if uo_ware.buildtype = 0 then
  2326. // if uo_ware.price = 0 then
  2327. ld_price = 0
  2328. for i = 1 to dw_child.rowcount()
  2329. if dw_child.object.u_dismantle_installmx_standardqty[i] > 0 then
  2330. LD_MX = dw_child.object.price[i]
  2331. LL_MX = dw_child.object.u_dismantle_installmx_standardqty[i]
  2332. ld_price = ld_price + (LD_MX*LL_MX)
  2333. ELSE
  2334. LD_MX = dw_child.object.price[i]
  2335. LL_MX = dw_child.object.qty[i]
  2336. LL_ZB = dw_uc.Object.u_dismantle_install_qty[uc_row]
  2337. ld_price = ld_price + (LL_MX/LL_ZB) * LD_MX
  2338. end if
  2339. next
  2340. dw_uc.object.u_dismantle_install_price[uc_row] = ld_price
  2341. uo_ware.price = ld_price
  2342. // end if
  2343. end if
  2344. FOR i = 1 TO dw_child.RowCount()
  2345. IF dw_child.Object.pid[i] > 0 THEN
  2346. IF uo_ware.acceptmx(dw_child.Object.pid[i],&
  2347. dw_child.Object.storageid[i],&
  2348. dw_child.Object.mtrlwareid[i],&
  2349. dw_child.Object.mtrlid[i],&
  2350. dw_child.Object.qty[i],&
  2351. dw_child.Object.u_dismantle_installmx_addqty[i],&
  2352. dw_child.Object.price[i],&
  2353. dw_child.Object.status[i],&
  2354. dw_child.Object.plancode[i],&
  2355. dw_child.Object.woodcode[i],&
  2356. dw_child.Object.mxdscrp[i],&
  2357. dw_child.Object.u_mtrldef_mtrlcode[i],&
  2358. dw_child.Object.u_dismantle_installmx_pcode[i],&
  2359. dw_child.Object.u_dismantle_installmx_dxflag[i],&
  2360. dw_child.Object.u_dismantle_installmx_sptid[i],&
  2361. arg_msg,&
  2362. dw_child.Object.u_dismantle_installmx_standardqty[i]) = 0 THEN
  2363. MessageBox('错误',arg_msg,stopsign!,OK!)
  2364. RETURN
  2365. END IF
  2366. END IF
  2367. NEXT
  2368. IF uo_ware.Save(arg_msg,TRUE) = 0 THEN
  2369. MessageBox('错误',arg_msg,stopsign!,OK!)
  2370. RETURN
  2371. END IF
  2372. // MessageBox(publ_operator,'保存操作成功!')
  2373. //write ini
  2374. f_SetProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",String(dw_uc.Object.u_dismantle_install_storageid[dw_uc.GetRow()]))
  2375. //
  2376. long ll_row
  2377. ll_row = dw_uc.getrow()
  2378. dw_uc.SelectRow(0,FALSE)
  2379. dw_uc.SelectRow(ll_row,TRUE)
  2380. wf_refresh_curuc(uo_ware.billid) //刷新uc
  2381. ELSE
  2382. IF uo_ware.newbegin(cur_billtype,arg_msg) = 0 THEN //生产令领料
  2383. MessageBox('错误',arg_msg,stopsign!,OK!)
  2384. RETURN
  2385. END IF
  2386. END IF
  2387. CALL SUPER::Clicked
  2388. //read ini
  2389. IF dw_edit_mode THEN
  2390. PARENT.TriggerEvent("insert_childrow")
  2391. dw_uc.SetRedraw(FALSE)
  2392. String ls_storageid
  2393. ls_storageid = f_ProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",'0')
  2394. IF f_find_storageid(ls_storageid) = '' THEN
  2395. ls_storageid = '0'
  2396. END IF
  2397. dw_uc.Object.u_dismantle_install_storageid[dw_uc.GetRow()] = Long(ls_storageid)
  2398. dw_uc.Object.u_dismantle_install_billtype[dw_uc.GetRow()] = Long(cur_billtype)
  2399. dw_uc.SetColumn("u_dismantle_install_billdate")
  2400. dw_uc.SetRedraw(TRUE)
  2401. ELSE
  2402. PARENT.TriggerEvent("retrieve_childdw")
  2403. END IF
  2404. //
  2405. THIS.TriggerEvent('refresh_interface')
  2406. end event
  2407. type cb_edit from w_publ_1ton_share_detail`cb_edit within w_dismantle_install
  2408. end type
  2409. event cb_edit::clicked;IF NOT f_power_ind(87) THEN
  2410. MessageBox('提示','你没有使用权限!',information!,OK!)
  2411. RETURN
  2412. END IF
  2413. string arg_msg=''
  2414. long uc_row
  2415. uc_row=dw_pageretr.getrow()
  2416. if uc_row<=0 then
  2417. messagebox('提示','请选定当前目标单据!',information!,OK!)
  2418. return
  2419. end if
  2420. if not dw_edit_mode then
  2421. if uo_ware.updatebegin(dw_pageretr.object.u_dismantle_install_billid[uc_row],arg_msg)=0 then
  2422. messagebox('错误',arg_msg,stopsign!,OK!)
  2423. return
  2424. end if
  2425. parent.triggerevent('ue_allowedit')
  2426. end if
  2427. call super::clicked
  2428. end event
  2429. type cb_delet from w_publ_1ton_share_detail`cb_delet within w_dismantle_install
  2430. end type
  2431. event cb_delet::clicked;call super::clicked;IF NOT f_power_ind(612) THEN
  2432. MessageBox('提示','你没有使用权限!',information!,OK!)
  2433. RETURN
  2434. END IF
  2435. String arg_msg = ''
  2436. IF dw_edit_mode THEN RETURN
  2437. Long uc_row
  2438. uc_row = dw_pageretr.GetRow()
  2439. IF uc_row <= 0 THEN
  2440. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  2441. RETURN
  2442. END IF
  2443. IF MessageBox ("询问","是否确定要删除当前单据?",question!,yesno! ) = 2 THEN RETURN
  2444. IF uo_ware.del(dw_pageretr.Object.u_dismantle_install_billid[uc_row],true,arg_msg) = 0 THEN
  2445. MessageBox('错误',arg_msg,information!,OK!)
  2446. ELSE
  2447. //日志
  2448. Long ls_id
  2449. String ls_code
  2450. ls_id = dw_pageretr.Object.u_dismantle_install_billid[uc_row]
  2451. ls_code = dw_pageretr.Object.u_dismantle_install_billcode[uc_row]
  2452. f_setsysoplog('拆装单','删除,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE)
  2453. //--
  2454. MessageBox('提示','删除单据'+ls_code+'成功!',information!,OK!)
  2455. dw_pageretr.DeleteRow(uc_row)
  2456. dw_pageretr.PostEvent(RowFocusChanged!)
  2457. END IF
  2458. end event
  2459. type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_dismantle_install
  2460. end type
  2461. event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  2462. string menustr
  2463. menustr="Text=增加备注~tEvent=ue_addzy"
  2464. menustr=menustr + "|" + "Text=-"
  2465. menustr=menustr + "|" + "Text=计算拆装~tEvent=ue_cmpl"
  2466. menustr=menustr + "|" + "Text=计算可拆装数量~tEvent=ue_cmpl_qty"
  2467. menustr=menustr + "|" + "Text=检查拆装数量~tEvent=ue_check_qty"
  2468. menustr = menustr + "|" + "Text=-"
  2469. menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view"
  2470. menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit"
  2471. if len(trim(menustr))<>0 then
  2472. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  2473. dmPopupMenu.mf_BuildMenu(This, menustr)
  2474. dmPopupMenu.mf_PopMenu()
  2475. Destroy dmPopupMenu
  2476. end if
  2477. end event
  2478. type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_dismantle_install
  2479. end type
  2480. event cb_auditing::clicked;call super::clicked;IF NOT f_power_ind(88) THEN
  2481. MessageBox('提示','你没有使用权限!',information!,OK!)
  2482. RETURN
  2483. END IF
  2484. IF dw_edit_mode THEN RETURN
  2485. String arg_msg = ''
  2486. IF NOT KeyDown(KeyControl!) THEN
  2487. Long pagerert_row
  2488. pagerert_row = dw_pageretr.GetRow()
  2489. IF pagerert_row <= 0 THEN
  2490. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  2491. RETURN
  2492. END IF
  2493. IF MessageBox ("询问","是否确定要审核当前单据?",question!,yesno! ) = 2 THEN RETURN
  2494. IF uo_ware.getinfo(dw_pageretr.Object.u_dismantle_install_billid[pagerert_row],arg_msg) = 0 THEN
  2495. MessageBox('错误',arg_msg,stopsign!,OK!)
  2496. RETURN
  2497. END IF
  2498. IF uo_ware.auditing(publ_operator,TRUE,arg_msg) = 0 THEN
  2499. MessageBox('错误',arg_msg,stopsign!,OK!)
  2500. ELSE
  2501. MessageBox('提示','审核成功!',information!,OK!)
  2502. wf_refresh_curuc(dw_pageretr.Object.u_dismantle_install_billid[pagerert_row])
  2503. END IF
  2504. ELSE
  2505. IF MessageBox ("询问","是否确定要批审核列表中未审核的单据?",question!,yesno! ) = 2 THEN RETURN
  2506. Long ll_i,ll_billid
  2507. Int li_flag
  2508. Long ll_suc,ll_fail
  2509. dw_pageretr.AcceptText()
  2510. OPEN(w_sys_wait_jdt) //初始化进度条
  2511. w_sys_wait_jdt.Show()
  2512. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  2513. FOR ll_i = 1 TO dw_pageretr.RowCount()
  2514. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_dismantle_install_billcode[ll_i] + " 正在审核..." //进度信息
  2515. li_flag = dw_pageretr.Object.u_dismantle_install_auditingflag[ll_i]
  2516. IF li_flag = 1 THEN CONTINUE
  2517. ll_billid = dw_pageretr.Object.u_dismantle_install_billid[ll_i]
  2518. IF uo_ware.getinfo(ll_billid,arg_msg) = 0 THEN
  2519. ll_fail++
  2520. CONTINUE
  2521. END IF
  2522. IF uo_ware.auditing(publ_operator,TRUE,arg_msg) = 0 THEN
  2523. ll_fail++
  2524. CONTINUE
  2525. END IF
  2526. ll_suc++
  2527. w_sys_wait_jdt.wf_inc(ll_i) //进度
  2528. NEXT
  2529. CLOSE(w_sys_wait_jdt)
  2530. MessageBox('提示','批审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail),information!,OK!)
  2531. PARENT.TriggerEvent('retrieve_pageretr')
  2532. END IF
  2533. end event
  2534. type cb_xm from w_publ_1ton_share_detail`cb_xm within w_dismantle_install
  2535. end type
  2536. type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_dismantle_install
  2537. end type
  2538. type cb_xls from w_publ_1ton_share_detail`cb_xls within w_dismantle_install
  2539. end type
  2540. type cb_help from w_publ_1ton_share_detail`cb_help within w_dismantle_install
  2541. end type
  2542. type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_dismantle_install
  2543. end type
  2544. event cb_auditing_cancel::clicked;call super::clicked;IF NOT f_power_ind(915) THEN
  2545. MessageBox('提示','你没有使用权限!',information!,OK!)
  2546. RETURN
  2547. END IF
  2548. IF dw_edit_mode THEN RETURN
  2549. String arg_msg = ''
  2550. Long pagerert_row
  2551. pagerert_row = dw_pageretr.GetRow()
  2552. IF pagerert_row <= 0 THEN
  2553. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  2554. RETURN
  2555. END IF
  2556. IF MessageBox ("询问","是否确定要撤审当前单据?",question!,yesno! ) = 2 THEN RETURN
  2557. IF uo_ware.getinfo(dw_pageretr.Object.u_dismantle_install_billid[pagerert_row],arg_msg) = 0 THEN
  2558. MessageBox('错误',arg_msg,stopsign!,OK!)
  2559. RETURN
  2560. END IF
  2561. IF uo_ware.c_auditing(TRUE,arg_msg) = 0 THEN
  2562. MessageBox('错误',arg_msg,stopsign!,OK!)
  2563. ELSE
  2564. //日志
  2565. Long ls_id
  2566. String ls_code
  2567. ls_id = dw_pageretr.Object.u_dismantle_install_billid[pagerert_row]
  2568. ls_code = dw_pageretr.Object.u_dismantle_install_billcode[pagerert_row]
  2569. f_setsysoplog('拆装单','撤审,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE)
  2570. //--
  2571. MessageBox('提示','撤审成功!',information!,OK!)
  2572. wf_refresh_curuc(dw_pageretr.Object.u_dismantle_install_billid[pagerert_row])
  2573. END IF
  2574. end event
  2575. type p_msg from w_publ_1ton_share_detail`p_msg within w_dismantle_install
  2576. end type
  2577. type p_help from w_publ_1ton_share_detail`p_help within w_dismantle_install
  2578. end type
  2579. type p_encl from w_publ_1ton_share_detail`p_encl within w_dismantle_install
  2580. end type
  2581. type p_other from w_publ_1ton_share_detail`p_other within w_dismantle_install
  2582. end type
  2583. type gb_3 from w_publ_1ton_share_detail`gb_3 within w_dismantle_install
  2584. end type
  2585. type ln_bar from w_publ_1ton_share_detail`ln_bar within w_dismantle_install
  2586. end type
  2587. type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_dismantle_install
  2588. end type
  2589. type r_bar from w_publ_1ton_share_detail`r_bar within w_dismantle_install
  2590. integer x = 3488
  2591. end type
  2592. type ln_1 from w_publ_1ton_share_detail`ln_1 within w_dismantle_install
  2593. end type
  2594. type ln_2 from w_publ_1ton_share_detail`ln_2 within w_dismantle_install
  2595. end type
  2596. type ddlb_status from dropdownlistbox within w_dismantle_install
  2597. integer x = 1719
  2598. integer y = 188
  2599. integer width = 402
  2600. integer height = 300
  2601. integer taborder = 20
  2602. boolean bringtotop = true
  2603. integer textsize = -9
  2604. integer weight = 400
  2605. fontcharset fontcharset = gb2312charset!
  2606. fontpitch fontpitch = variable!
  2607. string facename = "宋体"
  2608. long textcolor = 33554432
  2609. string text = "[全部]"
  2610. boolean sorted = false
  2611. string item[] = {"[全部]","待审核","已审核"}
  2612. borderstyle borderstyle = stylelowered!
  2613. end type
  2614. event selectionchanged;if index=1 then
  2615. cur_flag=-1
  2616. elseif index=2 then
  2617. cur_flag=0
  2618. elseif index=3 then
  2619. cur_flag=1
  2620. end if
  2621. parent.triggerevent('retrieve_pageretr')
  2622. end event
  2623. type st_3 from statictext within w_dismantle_install
  2624. integer x = 1467
  2625. integer y = 204
  2626. integer width = 233
  2627. integer height = 52
  2628. integer textsize = -9
  2629. integer weight = 400
  2630. fontcharset fontcharset = gb2312charset!
  2631. fontpitch fontpitch = variable!
  2632. string facename = "宋体"
  2633. long textcolor = 33554432
  2634. long backcolor = 134217739
  2635. string text = "状 态"
  2636. alignment alignment = right!
  2637. boolean focusrectangle = false
  2638. end type
  2639. type st_2 from statictext within w_dismantle_install
  2640. integer x = 718
  2641. integer y = 204
  2642. integer width = 233
  2643. integer height = 48
  2644. integer textsize = -9
  2645. integer weight = 400
  2646. fontcharset fontcharset = gb2312charset!
  2647. fontpitch fontpitch = variable!
  2648. string facename = "宋体"
  2649. long textcolor = 33554432
  2650. long backcolor = 134217739
  2651. string text = "单据类型"
  2652. alignment alignment = right!
  2653. boolean focusrectangle = false
  2654. end type
  2655. type ddlb_1 from dropdownlistbox within w_dismantle_install
  2656. integer x = 974
  2657. integer y = 188
  2658. integer width = 485
  2659. integer height = 300
  2660. integer taborder = 20
  2661. boolean bringtotop = true
  2662. integer textsize = -9
  2663. integer weight = 400
  2664. fontcharset fontcharset = gb2312charset!
  2665. fontpitch fontpitch = variable!
  2666. string facename = "宋体"
  2667. long textcolor = 33554432
  2668. string text = "装"
  2669. string item[] = {"装","拆"}
  2670. borderstyle borderstyle = stylelowered!
  2671. end type
  2672. event selectionchanged;IF THIS.Text = '装' THEN
  2673. cur_billtype = 0
  2674. ELSE
  2675. cur_billtype = 1
  2676. END IF
  2677. PARENT .TriggerEvent('retrieve_pageretr')
  2678. end event
  2679. type cbx_di from checkbox within w_dismantle_install
  2680. integer x = 2176
  2681. integer y = 204
  2682. integer width = 512
  2683. integer height = 60
  2684. boolean bringtotop = true
  2685. integer textsize = -9
  2686. integer weight = 400
  2687. fontcharset fontcharset = gb2312charset!
  2688. fontpitch fontpitch = variable!
  2689. string facename = "宋体"
  2690. long textcolor = 33554432
  2691. long backcolor = 134217739
  2692. string text = "跨仓库计算拆装"
  2693. end type