w_inware_cp.srw 113 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042
  1. $PBExportHeader$w_inware_cp.srw
  2. forward
  3. global type w_inware_cp from w_publ_1ton_share_detail
  4. end type
  5. type ddlb_status from dropdownlistbox within w_inware_cp
  6. end type
  7. type st_2 from statictext within w_inware_cp
  8. end type
  9. type st_3 from statictext within w_inware_cp
  10. end type
  11. type ddlb_scid from uo_ddlb_scid within w_inware_cp
  12. end type
  13. type cb_1 from commandbutton within w_inware_cp
  14. end type
  15. type cbx_packqty_cmpl from checkbox within w_inware_cp
  16. end type
  17. type cb_new_scanbill from commandbutton within w_inware_cp
  18. end type
  19. end forward
  20. global type w_inware_cp from w_publ_1ton_share_detail
  21. integer width = 3621
  22. string title = "生产进仓单"
  23. boolean maxbox = true
  24. windowstate windowstate = maximized!
  25. long dw_pageretr_w = 33835544
  26. long dw_child_h = 33938164
  27. long dw_child_w = 33939932
  28. boolean if_mtrlpicview = true
  29. boolean if_chkmtrlinfo = true
  30. event insert_childrow ( )
  31. event ue_fj_edit ( )
  32. event ue_fj_view ( )
  33. event ue_import_price ( )
  34. event ue_cmpl_status_qty ( )
  35. event ue_p_cmpl_qty ( )
  36. event ue_cmpl_qty ( )
  37. event ue_p_formula_set ( )
  38. event ue_p_cus_set ( )
  39. event ue_all_choice ( )
  40. event ue_allnot_choice ( )
  41. event ue_all_audit ( )
  42. event ue_allnot_audit ( )
  43. event ue_all_delete ( )
  44. event ue_view_status ( long arg_row, string arg_status )
  45. event ue_mod_enprice ( )
  46. event ue_getsaletask_sale ( )
  47. event ue_view_mxdscrp ( )
  48. event ue_view_mxdscrp2 ( )
  49. event ue_view_mxdscrp3 ( )
  50. event ue_view_mxdscrp4 ( )
  51. event ue_editzy ( )
  52. ddlb_status ddlb_status
  53. st_2 st_2
  54. st_3 st_3
  55. ddlb_scid ddlb_scid
  56. cb_1 cb_1
  57. cbx_packqty_cmpl cbx_packqty_cmpl
  58. cb_new_scanbill cb_new_scanbill
  59. end type
  60. global w_inware_cp w_inware_cp
  61. type variables
  62. uo_inware_cp uo_ware
  63. long cur_flag= -1 //-1:全部,0未审
  64. long cur_scid //分店ID
  65. long cur_scid_arr[]
  66. string ol_cdw_str = ''
  67. long ii_packqty_cmpl = 0
  68. int ii_enamt_edit = 0
  69. end variables
  70. forward prototypes
  71. public function integer wf_flagstatus_rf ()
  72. public function integer wf_refresh_curuc (long arg_scid, long arg_inwareid)
  73. public subroutine wf_find_cust (long arg_childrow, long arg_scid, long arg_orderid)
  74. public function integer wf_autoaddmx (long arg_scid, long arg_saletaskid, string arg_taskcode, long arg_storageid, long arg_cusid, ref string arg_msg)
  75. public function integer wf_saletaskmtrltoarr (long arg_scid, long arg_taskid, ref s_saletask_mtrl arg_s_rqmtrl, ref long arg_p_rqmtrl, ref string arg_msg)
  76. public subroutine wf_check_billfj ()
  77. 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)
  78. public function integer wf_saletaskmtrltoarr_salemx (long arg_scid, ref s_saletask_mtrl arg_s_rqmtrl, ref string arg_msg)
  79. public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg)
  80. public function integer wf_autoaddmx_salemx (long arg_scid, s_saletask_mtrl arg_s_rqmtrli, long arg_storageid, ref string arg_msg)
  81. public function integer wf_check_qtyandaddqty (ref string arg_msg)
  82. public function integer wf_checkqty (ref string arg_msg)
  83. public function integer wf_refresh_interface ()
  84. end prototypes
  85. event insert_childrow();long li_row
  86. li_row=dw_child.insertrow(0)
  87. dw_child.scrolltorow(li_row)
  88. dw_child.SetColumn ('u_mtrldef_mtrlcode')
  89. end event
  90. event ue_fj_edit();IF dw_edit_mode THEN
  91. MessageBox('提示','编辑状态下不可用',information!,ok!)
  92. RETURN
  93. END IF
  94. //IF NOT f_power_ind(1098) THEN
  95. // MessageBox(publ_operator,'你没有使用权限!')
  96. // RETURN
  97. //END IF
  98. s_edit_index_tran s_pic
  99. Long ll_ConnectionID
  100. String arg_msg
  101. Long ls_row
  102. ls_row = dw_uc.GetRow()
  103. IF ls_row <= 0 THEN
  104. RETURN
  105. END IF
  106. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  107. MessageBox('错误','没有指定附件数据库连接'+arg_msg,stopsign!,ok!)
  108. RETURN
  109. END IF
  110. s_pic.f_long = 207 //销售订单的mainID
  111. s_pic.f_string = dw_uc.Object.inwarecode[ls_row]
  112. s_pic.g_long = dw_uc.Object.inwareid[ls_row]
  113. s_pic.e_long = dw_uc.Object.u_inware_scid[ls_row]
  114. s_pic.sqltransaction = sys_filedb_sqlca
  115. OpenWithParm(w_fj_bill_mng,s_pic)
  116. wf_check_billfj()
  117. end event
  118. event ue_fj_view();IF dw_edit_mode THEN
  119. MessageBox('提示','编辑状态下不可用',information!,ok!)
  120. RETURN
  121. END IF
  122. s_edit_index_tran s_pic
  123. Long ll_ConnectionID
  124. String arg_msg
  125. Long ls_row
  126. ls_row = dw_uc.GetRow()
  127. IF ls_row <= 0 THEN
  128. RETURN
  129. END IF
  130. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  131. MessageBox('错误','没有指定附件数据库连接'+arg_msg,stopsign!,ok!)
  132. RETURN
  133. END IF
  134. s_pic.f_long = 207 //销售订单的mainID
  135. s_pic.f_string = dw_uc.Object.inwarecode[ls_row]
  136. s_pic.g_long = dw_uc.Object.inwareid[ls_row]
  137. s_pic.e_long = dw_uc.Object.u_inware_scid[ls_row]
  138. s_pic.sqltransaction = sys_filedb_sqlca
  139. OpenWithParm(w_fj_bill_view,s_pic)
  140. end event
  141. event ue_import_price();if not dw_edit_mode then return
  142. Long i
  143. Long ll_mtrlid
  144. String ls_status
  145. String ls_woodcode
  146. String ls_pcode
  147. Decimal lde_planprice
  148. String ls_msg
  149. dw_child.AcceptText()
  150. FOR i = 1 TO dw_child.RowCount()
  151. lde_planprice = 0
  152. ll_mtrlid = dw_child.Object.u_inwaremx_mtrlid[i]
  153. ls_status = dw_child.Object.u_inwaremx_status[i]
  154. ls_woodcode = dw_child.Object.u_inwaremx_woodcode[i]
  155. ls_pcode = dw_child.Object.u_inwaremx_pcode[i]
  156. // IF sys_option_planprice_configure = 0 THEN
  157. // SELECT planprice
  158. // INTO :ld_planprice
  159. // FROM u_mtrldef
  160. // Where mtrlid = :ll_mtrlid;
  161. // IF sqlca.SQLCode <> 0 THEN
  162. // ls_msg = '查询' + dw_child.Object.u_mtrldef_mtrlcode[i] + '计划价失败!'
  163. // GOTO ext
  164. // END IF
  165. // ELSE
  166. // ls_status = dw_child.Object.u_inwaremx_status[i]
  167. // ls_woodcode = dw_child.Object.u_inwaremx_woodcode[i]
  168. // ls_pcode = dw_child.Object.u_inwaremx_pcode[i]
  169. // SELECT u_mtrl_planprice.planprice
  170. // INTO :ld_planprice
  171. // FROM u_mtrl_planprice
  172. // WHERE status = :ls_status AND
  173. // woodcode = :ls_woodcode AND
  174. // pcode = :ls_pcode AND
  175. // mtrlid = :ll_mtrlid;
  176. // IF sqlca.SQLCode = -1 THEN
  177. // ls_msg = '查询' + dw_child.Object.u_mtrldef_mtrlcode[i] + '计划价失败!'
  178. // GOTO ext
  179. // END IF
  180. // END IF
  181. lde_planprice = f_get_planprice(ll_mtrlid, ls_status,ls_woodcode,ls_pcode, true)
  182. dw_child.Object.u_inwaremx_fprice[i] = lde_planprice
  183. // dw_child.Object.u_inwaremx_fprice[i] = ld_planprice
  184. NEXT
  185. //ext:
  186. //if ls_msg <> '' then
  187. // messagebox('错误',ls_msg,stopsign!,ok!)
  188. //end if
  189. end event
  190. event ue_cmpl_status_qty();Int ll_flag
  191. Decimal ll_value
  192. Long ll_num
  193. Long i,j,k
  194. String ls_mtrlmode
  195. String ls_status
  196. Decimal ld_qty
  197. Decimal ld_addqty
  198. String ls_msg
  199. Long ll_type
  200. s_cmpl_addqty s_cmpl
  201. dw_child.AcceptText()
  202. dw_uc.SetRedraw(FALSE)
  203. IF dw_edit_mode THEN
  204. Open(w_cmpl_status_qty_ch)
  205. s_cmpl = Message.PowerObjectParm
  206. ll_flag = s_cmpl.flag
  207. ll_value = s_cmpl.addvalue
  208. ll_num = s_cmpl.num
  209. ll_type = s_cmpl.cmptype
  210. IF ll_value <= 0 THEN RETURN
  211. IF dw_child.RowCount() <= 0 THEN RETURN
  212. FOR i = 1 TO dw_child.RowCount()
  213. ld_addqty = dw_child.Object.u_inwaremx_addqty[i]
  214. CHOOSE CASE ll_type
  215. CASE 0
  216. ls_status = dw_child.Object.u_inwaremx_status[i]
  217. CASE 1
  218. ls_status = dw_child.Object.u_inwaremx_woodcode[i]
  219. CASE 2
  220. ls_status = dw_child.Object.u_inwaremx_pcode[i]
  221. CASE 3
  222. ls_status = dw_child.Object.u_mtrldef_mtrlsectype[i]
  223. CASE 4
  224. ls_status = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  225. END CHOOSE
  226. IF ld_addqty = 0 OR ls_status = '' THEN
  227. ELSE
  228. ld_qty = 0
  229. IF f_cmpl_status_qty(ld_addqty,ls_status,ld_qty,ls_msg) = 0 THEN
  230. MessageBox('错误',ls_msg,stopsign!,ok!)
  231. GOTO ext
  232. END IF
  233. IF ll_flag = 0 THEN
  234. dw_child.Object.u_inwaremx_qty[i] = Round(ld_qty * ll_value,ll_num)
  235. ELSE
  236. dw_child.Object.u_inwaremx_qty[i] = Round(ld_qty / ll_value,ll_num)
  237. END IF
  238. END IF
  239. NEXT
  240. END IF
  241. ext:
  242. dw_uc.SetRedraw(TRUE)
  243. end event
  244. event ue_p_cmpl_qty();IF dw_child.RowCount() = 0 THEN RETURN
  245. Long i
  246. String ls_formula
  247. String ls_msg
  248. String ls_rs
  249. String ls_num
  250. Decimal ld_addqty
  251. Decimal ld_price
  252. Decimal ld_rebate
  253. Decimal ld_qty
  254. dw_child.AcceptText()
  255. s_cmpl_qty s_cmpl
  256. Open(w_cmpl_qty_ch_son)
  257. s_cmpl = Message.PowerObjectParm
  258. dw_uc.SetRedraw(FALSE)
  259. FOR i = 1 TO dw_child.RowCount()
  260. ld_qty = 0
  261. IF dw_child.Object.u_inwaremx_formula[i] <> '' THEN
  262. s_cmpl.formula = dw_child.Object.u_inwaremx_formula[i]
  263. s_cmpl.addqty = dw_child.Object.u_inwaremx_addqty[i]
  264. s_cmpl.price = dw_child.Object.u_inwaremx_fprice[i]
  265. s_cmpl.ifnorebate = 1
  266. s_cmpl.status = dw_child.Object.u_inwaremx_status[i]
  267. s_cmpl.woodcode = dw_child.Object.u_inwaremx_woodcode[i]
  268. s_cmpl.pcode = dw_child.Object.u_inwaremx_pcode[i]
  269. s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i]
  270. s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  271. IF f_cmpl_qty(s_cmpl,ld_qty,ls_msg) = 0 THEN
  272. MessageBox('提示','第' + String(i) + '行,' + ls_msg, Information!, OK! )
  273. GOTO ext
  274. END IF
  275. dw_child.Object.u_inwaremx_qty[i] = ld_qty
  276. END IF
  277. NEXT
  278. ext:
  279. dw_child.SetColumn('u_inwaremx_qty')
  280. dw_uc.SetRedraw(TRUE)
  281. end event
  282. event ue_cmpl_qty();IF dw_child.GetRow() = 0 THEN RETURN
  283. Long child_row
  284. dw_child.AcceptText()
  285. child_row = dw_child.GetRow()
  286. s_cmpl_qty s_cmpl,s_return
  287. s_cmpl.qty = dw_child.Object.u_inwaremx_qty[child_row]
  288. s_cmpl.formula = dw_child.Object.u_inwaremx_formula[child_row]
  289. s_cmpl.addqty = dw_child.Object.u_inwaremx_addqty[child_row]
  290. s_cmpl.price = dw_child.Object.u_inwaremx_fprice[child_row]
  291. s_cmpl.ifnorebate = 1
  292. s_cmpl.status = dw_child.Object.u_inwaremx_status[child_row]
  293. s_cmpl.woodcode = dw_child.Object.u_inwaremx_woodcode[child_row]
  294. s_cmpl.pcode = dw_child.Object.u_inwaremx_pcode[child_row]
  295. s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  296. s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  297. IF NOT IsValid(w_cmpl_qty_ch) THEN
  298. OpenWithParm(w_cmpl_qty_ch,s_cmpl)
  299. s_return = Message.PowerObjectParm
  300. IF s_return.formula <> s_cmpl.formula or s_return.qty <> s_cmpl.qty THEN
  301. dw_child.Object.u_inwaremx_qty[child_row] = s_return.qty
  302. dw_child.Object.u_inwaremx_formula[child_row] = s_return.formula
  303. END IF
  304. END IF
  305. end event
  306. event ue_p_formula_set();IF NOT dw_edit_mode THEN RETURN
  307. IF MessageBox('提示','是否要确定要批设定公式', question!, YesNo!, 2) = 2 THEN
  308. RETURN
  309. END IF
  310. Long ll_i
  311. dw_child.AcceptText()
  312. dw_child.SetRedraw(FALSE)
  313. FOR ll_i = 1 TO dw_child.RowCount()
  314. IF ll_i = 1 THEN CONTINUE
  315. dw_child.Object.u_inwaremx_formula[ll_i] = dw_child.Object.u_inwaremx_formula[1]
  316. NEXT
  317. dw_child.SetRedraw(TRUE)
  318. end event
  319. event ue_p_cus_set();IF NOT dw_edit_mode THEN RETURN
  320. IF MessageBox('提示','是否要确定要批设定客户', question!, YesNo!, 2) = 2 THEN
  321. RETURN
  322. END IF
  323. IF dw_child.RowCount() < 2 THEN RETURN
  324. Long i
  325. dw_child.SetRedraw (FALSE)
  326. FOR i = 2 TO dw_child.RowCount()
  327. dw_child.Object.u_cust_cuscode[i] = dw_child.Object.u_cust_cuscode[1]
  328. dw_child.Object.u_cust_name[i] = dw_child.Object.u_cust_name[1]
  329. dw_child.Object.if_mtrlware[i] = dw_child.Object.if_mtrlware[1]
  330. dw_child.Object.u_inwaremx_sptid_cusid[i] = dw_child.Object.u_inwaremx_sptid_cusid[1]
  331. NEXT
  332. dw_child.SetRedraw (TRUE)
  333. end event
  334. event ue_all_choice();Long i
  335. FOR i = 1 To dw_pageretr.RowCount()
  336. dw_pageretr.Object.ch[i] = 1
  337. NEXT
  338. end event
  339. event ue_allnot_choice();Long i
  340. FOR i = 1 To dw_pageretr.RowCount()
  341. dw_pageretr.Object.ch[i] = 0
  342. NEXT
  343. end event
  344. event ue_all_audit();Long ll_billid,ll_scid,li_flag,li_secflag,ll_i,ll_fail
  345. String arg_msg,arg_msg1,ls_taskcode
  346. IF NOT (f_power_ind(63) OR f_power_ind(1055)) THEN
  347. MessageBox('提示','你没有使用权限!',information!,ok!)
  348. RETURN
  349. END IF
  350. Open(w_sys_wait_jdt) //初始化进度条
  351. w_sys_wait_jdt.Show()
  352. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  353. FOR ll_i = 1 To dw_pageretr.RowCount()
  354. IF dw_pageretr.Object.ch[ll_i] = 0 THEN CONTINUE
  355. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在审核..." //进度信息
  356. ll_billid = dw_pageretr.Object.inwareid[ll_i]
  357. ll_scid = dw_pageretr.Object.u_inware_scid[ll_i]
  358. li_flag = dw_pageretr.Object.flag[ll_i]
  359. // li_secflag = dw_pageretr.Object.u_inware_secflag[ll_i]
  360. ls_taskcode = dw_pageretr.Object.inwarecode[ll_i]
  361. IF li_flag = 0 THEN //仓审
  362. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  363. ll_fail++
  364. arg_msg1 = arg_msg1 + ' ' + ls_taskcode
  365. CONTINUE
  366. END IF
  367. IF uo_ware.auditing(True,arg_msg) = 0 THEN
  368. ll_fail++
  369. arg_msg1 = arg_msg1 + ' ' + ls_taskcode
  370. CONTINUE
  371. END IF
  372. END IF
  373. w_sys_wait_jdt.wf_inc(ll_i) //进度
  374. NEXT
  375. Close(w_sys_wait_jdt)
  376. IF ll_fail <> 0 THEN
  377. MessageBox('提示','审核失败数 '+String(ll_fail) + ' '+ '失败单号:' + arg_msg1 ,Information!,OK!)
  378. END IF
  379. This.TriggerEvent('retrieve_pageretr')
  380. end event
  381. event ue_allnot_audit();Long ll_billid,ll_scid,li_flag,li_secflag,ll_i,ll_fail
  382. String arg_msg,arg_msg1,ls_taskcode
  383. IF NOT (f_power_ind(909) OR f_power_ind(1056)) THEN
  384. MessageBox('提示','你没有使用权限!',information!,ok!)
  385. RETURN
  386. END IF
  387. Open(w_sys_wait_jdt) //初始化进度条
  388. w_sys_wait_jdt.Show()
  389. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  390. FOR ll_i = 1 To dw_pageretr.RowCount()
  391. IF dw_pageretr.Object.ch[ll_i] = 0 THEN CONTINUE
  392. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在撤审..." //进度信息
  393. ll_billid = dw_pageretr.Object.inwareid[ll_i]
  394. ll_scid = dw_pageretr.Object.u_inware_scid[ll_i]
  395. li_flag = dw_pageretr.Object.flag[ll_i]
  396. // li_secflag = dw_pageretr.Object.u_inware_secflag[ll_i]
  397. ls_taskcode = dw_pageretr.Object.inwarecode[ll_i]
  398. IF li_flag = 1 THEN //撤审
  399. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  400. ll_fail++
  401. arg_msg1 = arg_msg1 + ' ' + ls_taskcode
  402. CONTINUE
  403. END IF
  404. IF uo_ware.c_auditing(True,arg_msg) = 0 THEN
  405. ll_fail++
  406. arg_msg1 = arg_msg1 + ' ' + ls_taskcode
  407. CONTINUE
  408. END IF
  409. END IF
  410. w_sys_wait_jdt.wf_inc(ll_i) //进度
  411. NEXT
  412. Close(w_sys_wait_jdt)
  413. IF ll_fail <> 0 THEN
  414. MessageBox('提示','撤审失败数 '+String(ll_fail) + ' '+ '失败单号:' + arg_msg1 ,Information!,OK!)
  415. END IF
  416. This.TriggerEvent('retrieve_pageretr')
  417. end event
  418. event ue_all_delete();Long ll_billid,ll_scid,li_flag,li_secflag,ll_i,ll_fail
  419. String arg_msg,arg_msg1,ls_taskcode
  420. IF NOT (f_power_ind(597) OR f_power_ind(1058)) THEN
  421. MessageBox('提示','你没有使用权限!',information!,ok!)
  422. RETURN
  423. END IF
  424. Open(w_sys_wait_jdt) //初始化进度条
  425. w_sys_wait_jdt.Show()
  426. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  427. FOR ll_i = 1 To dw_pageretr.RowCount()
  428. IF dw_pageretr.Object.ch[ll_i] = 0 THEN CONTINUE
  429. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在删除..." //进度信息
  430. ll_billid = dw_pageretr.Object.inwareid[ll_i]
  431. ll_scid = dw_pageretr.Object.u_inware_scid[ll_i]
  432. li_flag = dw_pageretr.Object.flag[ll_i]
  433. // li_secflag = dw_pageretr.Object.u_inware_secflag[ll_i]
  434. ls_taskcode = dw_pageretr.Object.inwarecode[ll_i]
  435. IF li_flag = 0 THEN //删除
  436. IF uo_ware.del(ll_scid,ll_billid,arg_msg,True) = 0 THEN
  437. ll_fail++
  438. arg_msg1 = arg_msg1 + ' ' + ls_taskcode
  439. CONTINUE
  440. END IF
  441. END IF
  442. w_sys_wait_jdt.wf_inc(ll_i) //进度
  443. NEXT
  444. Close(w_sys_wait_jdt)
  445. IF ll_fail <> 0 THEN
  446. MessageBox('提示','删除失败数 '+String(ll_fail) + ' '+ '失败单号:' + arg_msg1 ,information!,OK!)
  447. END IF
  448. This.TriggerEvent('retrieve_pageretr')
  449. end event
  450. event ue_view_status(long arg_row, string arg_status);s_view_dscrp s_view,s_return
  451. String ls_dscrp
  452. long ll_mtrlid,ll_statusflag,ll_woodcodeflag,ll_pcodeflag
  453. dw_child.AcceptText()
  454. ll_mtrlid = dw_child.object.u_inwaremx_mtrlid[arg_row]
  455. SELECT
  456. statusflag,
  457. woodcodeflag,
  458. pcodeflag
  459. into
  460. :ll_statusflag,:ll_woodcodeflag,:ll_pcodeflag
  461. FROM U_MTRLDEF
  462. where mtrlid = :ll_mtrlid;
  463. IF arg_status = 'u_inwaremx_status' THEN
  464. IF ll_statusflag<>5 THEN RETURN
  465. ELSEIF arg_status = 'u_inwaremx_woodcode' THEN
  466. IF ll_woodcodeflag<>5 THEN RETURN
  467. ELSEIF arg_status = 'u_inwaremx_pcode' then
  468. IF ll_pcodeflag<>5 THEN RETURN
  469. ELSE
  470. RETURN
  471. END IF
  472. ls_dscrp = dw_child.GetItemString(arg_row, arg_status)
  473. s_view.Title = '配置内容'
  474. s_view.dscrp = ls_dscrp
  475. s_view.editmode = dw_edit_mode
  476. OpenWithParm(w_view_status,s_view)
  477. IF dw_edit_mode THEN
  478. s_return = Message.PowerObjectParm
  479. dw_child.setitem(arg_row,arg_status,s_return.dscrp)
  480. END IF
  481. end event
  482. event ue_mod_enprice();IF dw_edit_mode THEN
  483. MessageBox('系统提示','编辑状态下不可使用')
  484. RETURN
  485. END IF
  486. Long uc_row,child_row
  487. uc_row = dw_pageretr.GetRow()
  488. IF uc_row <= 0 THEN
  489. MessageBox('系统提示','请选择单据')
  490. RETURN
  491. END IF
  492. Long ll_flag ,ll_secflag,ll_balcflag, ll_cnt, ll_balcdateint
  493. Long ll_scid,ll_inwareid,ll_printid
  494. Long ll_storageid,ll_mtrlid,cnt
  495. String ls_status,ls_woodcode,ls_pcode
  496. Int li_StoreBalcType
  497. ll_flag = dw_pageretr.Object.flag[uc_row]
  498. ll_balcflag = dw_pageretr.Object.balcflag[uc_row]
  499. ll_balcdateint = dw_pageretr.Object.u_inware_balcdateint[uc_row]
  500. ll_scid = dw_pageretr.Object.u_inware_scid[uc_row]
  501. ll_inwareid = dw_pageretr.Object.inwareid[uc_row]
  502. ll_storageid = dw_pageretr.Object.storageid[uc_row]
  503. IF ll_flag = 0 THEN
  504. MessageBox('系统提示','进仓单待审核状态下不能执行修改单价功能')
  505. RETURN
  506. END IF
  507. IF ll_balcflag = 1 THEN
  508. MessageBox('提示','单据已结存,不能执行修改单价功能', Information!, OK! )
  509. RETURN
  510. END IF
  511. s_edit_index_tran s_tran_mod
  512. s_tran_mod.b_long = ll_scid
  513. s_tran_mod.c_long = ll_inwareid
  514. OpenWithParm(w_inwaremx_cp_mod_price,s_tran_mod)
  515. This.TriggerEvent('retrieve_childdw')
  516. end event
  517. event ue_getsaletask_sale();//用于选择订单自制料
  518. IF Not dw_edit_mode THEN RETURN
  519. Long child_row
  520. Long ll_storageid = 0
  521. Decimal lde_planprice
  522. String ls_plancode
  523. String ls_con_name
  524. child_row = dw_child.GetRow()
  525. IF Not IsValid(w_inware_salemx_ch) THEN
  526. s_edit_index_tran s_ch_tran //传递参数使用
  527. s_ch_tran.if_retrieve_all = False //是否一次retrieve所有行
  528. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  529. s_ch_tran.arg_pkid = 0 //目标定位pkid (备用)
  530. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  531. s_ch_tran.if_select_all = True
  532. s_ch_tran.b_long = 0
  533. s_ch_tran.c_long = ll_storageid
  534. Long chc = 1,ls_j
  535. OpenWithParm(w_inware_salemx_ch,s_ch_tran)
  536. s_inwaremx_self s_inscust
  537. s_inscust = Message.PowerObjectParm
  538. FOR ls_j = 1 To UpperBound(s_inscust.mtrlid)
  539. IF dw_child.GetRow() > 0 THEN
  540. IF dw_child.Object.u_inwaremx_mtrlid[child_row] <> 0 THEN
  541. child_row = dw_child.InsertRow (0)
  542. ELSE
  543. child_row = dw_child.GetRow()
  544. END IF
  545. ELSE
  546. child_row = dw_child.InsertRow (0)
  547. END IF
  548. //dw_child.Object.u_inwaremx_ifrel[child_row] = 1
  549. dw_child.Object.u_inwaremx_mtrlid[child_row] = s_inscust.mtrlid[ls_j]
  550. dw_child.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j]
  551. dw_child.Object.u_mtrldef_mtrlname[child_row] = s_inscust.mtrlname[ls_j]
  552. dw_child.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j]
  553. dw_child.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j]
  554. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j]
  555. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j]
  556. dw_child.Object.u_inwaremx_relid[child_row] = s_inscust.relid[ls_j]
  557. dw_child.Object.u_inwaremx_relprintid[child_row] = s_inscust.printid[ls_j]
  558. dw_child.Object.taskcode[child_row] = s_inscust.taskcode[ls_j]
  559. dw_child.Object.salerelcode[child_row] = s_inscust.relcode[ls_j]
  560. dw_child.Object.u_inwaremx_qty[child_row] = s_inscust.noqty[ls_j]
  561. NEXT
  562. dw_child.SetFocus()
  563. END IF
  564. This.TriggerEvent('ue_allowedit')
  565. end event
  566. event ue_view_mxdscrp();s_view_dscrp s_view,s_return
  567. String ls_dscrp
  568. dw_child.AcceptText()
  569. ls_dscrp = dw_child.Object.u_inwaremx_mxdscrp[dw_child.GetRow()]
  570. s_view.Title = '生产进仓单明细备注'
  571. s_view.dscrp = ls_dscrp
  572. s_view.editmode = dw_edit_mode
  573. OpenWithParm(w_view_dscrp,s_view)
  574. IF dw_edit_mode THEN
  575. s_return = Message.PowerObjectParm
  576. dw_child.Object.u_inwaremx_mxdscrp[dw_child.GetRow()] = s_return.dscrp
  577. END IF
  578. end event
  579. event ue_view_mxdscrp2();s_view_dscrp s_view,s_return
  580. String ls_dscrp
  581. dw_child.AcceptText()
  582. ls_dscrp = dw_child.Object.u_inwaremx_mxdscrp2[dw_child.GetRow()]
  583. s_view.Title = '生产进仓单明细备注2'
  584. s_view.dscrp = ls_dscrp
  585. s_view.editmode = dw_edit_mode
  586. OpenWithParm(w_view_dscrp,s_view)
  587. IF dw_edit_mode THEN
  588. s_return = Message.PowerObjectParm
  589. dw_child.Object.u_inwaremx_mxdscrp2[dw_child.GetRow()] = s_return.dscrp
  590. END IF
  591. end event
  592. event ue_view_mxdscrp3();s_view_dscrp s_view,s_return
  593. String ls_dscrp
  594. dw_child.AcceptText()
  595. ls_dscrp = dw_child.Object.u_inwaremx_mxdscrp3[dw_child.GetRow()]
  596. s_view.Title = '生产进仓单明细备注3'
  597. s_view.dscrp = ls_dscrp
  598. s_view.editmode = dw_edit_mode
  599. OpenWithParm(w_view_dscrp,s_view)
  600. IF dw_edit_mode THEN
  601. s_return = Message.PowerObjectParm
  602. dw_child.Object.u_inwaremx_mxdscrp3[dw_child.GetRow()] = s_return.dscrp
  603. END IF
  604. end event
  605. event ue_view_mxdscrp4();s_view_dscrp s_view,s_return
  606. String ls_dscrp
  607. dw_child.AcceptText()
  608. ls_dscrp = dw_child.Object.u_inwaremx_mxdscrp4[dw_child.GetRow()]
  609. s_view.Title = '生产进仓单明细备注4'
  610. s_view.dscrp = ls_dscrp
  611. s_view.editmode = dw_edit_mode
  612. OpenWithParm(w_view_dscrp,s_view)
  613. IF dw_edit_mode THEN
  614. s_return = Message.PowerObjectParm
  615. dw_child.Object.u_inwaremx_mxdscrp4[dw_child.GetRow()] = s_return.dscrp
  616. END IF
  617. end event
  618. event ue_editzy();IF dw_edit_mode THEN
  619. MessageBox('提示',"编辑状态下不可以使用!", Information!, OK! )
  620. return
  621. END IF
  622. IF NOT (f_power_ind(778) or f_power_ind(781)) THEN
  623. MessageBox('提示',sys_msg_pow, Information!, OK! )
  624. RETURN
  625. END IF
  626. string arg_msg=''
  627. string ls_str
  628. long uc_row
  629. s_inputbox s_sreu
  630. uc_row=dw_pageretr.getrow()
  631. if uc_row<=0 then
  632. messagebox('提示','请选定当前目标单据!', Information!, OK! )
  633. return
  634. end if
  635. s_sreu.title='请输入要补充到备注的内容'
  636. s_sreu.old_text=''
  637. openwithparm(w_inputbox,s_sreu)
  638. ls_str=message.stringparm
  639. if trim(ls_str)='' or isnull(ls_str) then return
  640. long ll_scid,ll_inwareid
  641. ll_scid = dw_pageretr.object.u_inware_scid[uc_row]
  642. ll_inwareid = dw_pageretr.object.inwareid[uc_row]
  643. UPDATE u_inware set dscrp = :ls_str
  644. where scid = :ll_scid and inwareid = :ll_inwareid;
  645. IF SQLCA.SQLCode <> 0 THEN
  646. messagebox('error!','更新单据备注失败!')
  647. return
  648. END IF
  649. messagebox('提示','修改备注操作成功!', Information!, OK! )
  650. wf_refresh_curuc(ll_scid,ll_inwareid)
  651. end event
  652. public function integer wf_flagstatus_rf ();//====================================================================
  653. // Function: wf_flagstatus_rf()
  654. //--------------------------------------------------------------------
  655. // Description:
  656. //--------------------------------------------------------------------
  657. // Arguments:(None)
  658. //--------------------------------------------------------------------
  659. // Returns: integer
  660. //--------------------------------------------------------------------
  661. // Author: yyx Date: 2003.12.26
  662. //--------------------------------------------------------------------
  663. // Modify History:
  664. //
  665. //====================================================================
  666. long pagerert_row
  667. pagerert_row=dw_pageretr.getrow()
  668. if pagerert_row<=0 then
  669. cb_auditing.enabled=false
  670. goto ext
  671. end if
  672. if dw_edit_mode then
  673. cb_auditing.enabled=false
  674. cb_auditing_cancel.enabled=false
  675. else
  676. if dw_pageretr.object.flag[pagerert_row]=0 then
  677. cb_auditing.enabled=true
  678. cb_auditing_cancel.enabled=false
  679. elseif dw_pageretr.object.flag[pagerert_row]=1 then
  680. cb_auditing.enabled=false
  681. cb_auditing_cancel.enabled=true
  682. end if
  683. end if
  684. ext:
  685. return 0
  686. end function
  687. public function integer wf_refresh_curuc (long arg_scid, long arg_inwareid);wf_flagstatus_rf()//wf_refresh_curuc
  688. if arg_inwareid<=0 or isnull(arg_inwareid) then return 0
  689. long uc_row
  690. uc_row=dw_pageretr.getrow()
  691. if uc_row<=0 then return 0
  692. long storageid
  693. datetime indate
  694. string inrep
  695. string part
  696. string dscrp
  697. int balcflag
  698. string inwarecode
  699. string sptname
  700. datetime opdate
  701. string opemp
  702. string modemp
  703. datetime moddate
  704. int flag
  705. datetime Auditingdate
  706. string Auditingrep
  707. string storagename
  708. int ll_printnum
  709. SELECT u_inware.storageid,
  710. u_inware.indate,
  711. u_inware.inrep,
  712. u_inware.part,
  713. u_inware.dscrp,
  714. u_inware.opdate,
  715. u_inware.opemp,
  716. u_inware.flag,
  717. u_inware.auditingdate,
  718. u_inware.auditingrep,
  719. u_inware.inwarecode,
  720. u_inware.balcflag,
  721. u_inware.sptname,
  722. u_storage.storagename,
  723. u_inware.modemp,
  724. u_inware.moddate,
  725. u_inware.printnum
  726. into
  727. :storageid,
  728. :indate,
  729. :inrep,
  730. :part,
  731. :dscrp,
  732. :opdate,
  733. :opemp,
  734. :flag,
  735. :Auditingdate,
  736. :Auditingrep,
  737. :inwarecode,
  738. :balcflag,
  739. :sptname,
  740. :storagename,
  741. :modemp,
  742. :moddate ,
  743. :ll_printnum
  744. FROM u_inware,
  745. u_storage
  746. WHERE ( u_inware.inwareid = :arg_inwareid )
  747. and ( u_inware.storageid = u_storage.storageid )
  748. and ( u_inware.scid=:arg_scid );
  749. if sqlca.sqlcode<>0 then
  750. messagebox('错误',"查询操作失败(错误单据唯一码)",stopsign!,ok!)
  751. return 0
  752. end if
  753. dw_pageretr.object.u_inware_scid[uc_row]=arg_scid
  754. dw_pageretr.object.inwareid[uc_row]=arg_inwareid
  755. dw_pageretr.object.indate[uc_row]=indate
  756. dw_pageretr.object.part[uc_row]= part
  757. dw_pageretr.object.inrep[uc_row]= inrep
  758. dw_pageretr.object.storageid[uc_row]=storageid
  759. dw_pageretr.object.sptname[uc_row]=sptname
  760. dw_pageretr.object.dscrp[uc_row]= dscrp
  761. dw_pageretr.object.balcflag[uc_row]= balcflag
  762. dw_pageretr.object.inwarecode[uc_row]=inwarecode
  763. dw_pageretr.object.opdate[uc_row]= opdate
  764. dw_pageretr.object.u_inware_opemp[uc_row]= opemp
  765. dw_pageretr.object.u_inware_moddate[uc_row]= moddate
  766. dw_pageretr.object.u_inware_modemp[uc_row]= modemp
  767. dw_pageretr.object.flag[uc_row]= flag
  768. dw_pageretr.object.Auditingdate[uc_row]= Auditingdate
  769. dw_pageretr.object.Auditingrep[uc_row]=Auditingrep
  770. dw_pageretr.object.u_storage_storagename[uc_row]=storagename
  771. dw_pageretr.object.u_inware_printnum[uc_row]=ll_printnum
  772. dw_uc.Reset()
  773. dw_pageretr.RowsCopy(dw_pageretr.GetRow(),dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!)
  774. dw_uc.ResetUpdate()
  775. dw_uc.SetRedraw(TRUE)
  776. wf_flagstatus_rf()
  777. return 1
  778. end function
  779. public subroutine wf_find_cust (long arg_childrow, long arg_scid, long arg_orderid);IF arg_childrow <= 0 THEN RETURN
  780. Long cnt = 0
  781. Long li_ordertype
  782. SELECT ordertype INTO :li_ordertype
  783. FROM u_order_ml
  784. WHERE scid = :arg_scid
  785. AND orderid = :arg_orderid;
  786. IF sqlca.SQLCode <> 0 THEN RETURN
  787. IF li_ordertype = 0 THEN RETURN
  788. SELECT count(*) INTO :cnt
  789. FROM u_order_ml_mx
  790. WHERE scid = :arg_scid
  791. AND orderid = :arg_orderid;
  792. IF sqlca.SQLCode <> 0 THEN RETURN
  793. IF cnt <> 1 THEN RETURN
  794. Long ll_cusid
  795. String ls_cuscode,ls_cusname
  796. SELECT u_cust.cusid,
  797. u_cust.cuscode,u_cust.name
  798. INTO :ll_cusid,:ls_cuscode,:ls_cusname
  799. FROM u_cust,u_order_ml_mx
  800. WHERE u_cust.cusid = u_order_ml_mx.cusid
  801. AND u_order_ml_mx.scid = :arg_scid
  802. AND u_order_ml_mx.orderid = :arg_orderid;
  803. IF sqlca.SQLCode <> 0 THEN RETURN
  804. dw_child.SetRedraw(FALSE)
  805. dw_child.object.u_inwaremx_ifrel[arg_childrow] = 1
  806. dw_child.Object.u_inwaremx_sptid_cusid[arg_childrow] = ll_cusid
  807. dw_child.Object.u_cust_name[arg_childrow] = ls_cusname
  808. dw_child.Object.u_cust_cuscode[arg_childrow] = ls_cuscode
  809. dw_child.SetRedraw(TRUE)
  810. end subroutine
  811. public function integer wf_autoaddmx (long arg_scid, long arg_saletaskid, string arg_taskcode, long arg_storageid, long arg_cusid, ref string arg_msg);//选订单调用
  812. //wf_autoaddmx(arg_saletaskid,arg_storageid,arg_msg)
  813. //查询物料库存总额
  814. //查询库存批/插入明细记录
  815. IF Not dw_edit_mode THEN RETURN 0
  816. s_saletask_mtrl s_rqmtrlI
  817. Long P_rqmtrl,lrow,li,rslt = 1
  818. Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_price,noallocqty,allocqty,ins_salerate,ins_packqty
  819. Decimal lde_planprice
  820. Long ins_storageid,count = 0,ins_mtrlwareid = 0,child_llrow
  821. String ins_prdpackcode,ins_mtrlcode,ins_mtrlname,ins_plancode,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode,ins_mtrlengname
  822. String ls_cuscode,ls_cusname,ins_mtrltype
  823. String ins_handtype
  824. Boolean lb_find = True
  825. Date l_rqdate
  826. l_rqdate = Today()
  827. uo_custdef uo_cust
  828. uo_cust = Create uo_custdef
  829. uo_cust.commit_transaction = sqlca
  830. Int li_if_cus_mtrlware
  831. Long ls_sptid
  832. SELECT balctype INTO :li_if_cus_mtrlware
  833. FROM u_storage
  834. Where storageid = :arg_storageid;
  835. IF sqlca.SQLCode <> 0 THEN
  836. arg_msg = '查询仓库是否使用客户库存失败'
  837. rslt = 0
  838. GOTO ext
  839. END IF
  840. IF li_if_cus_mtrlware = 1 THEN
  841. ls_sptid = arg_cusid
  842. IF uo_cust.getinfo(arg_cusid,arg_msg) = 1 THEN
  843. ls_cuscode = uo_cust.s_cust.cuscode
  844. ls_cusname = uo_cust.s_cust.Name
  845. END IF
  846. IF uo_cust.s_cust.bhflag = 1 THEN //备货客户不考虑客户库存
  847. ls_sptid = 0
  848. ls_cuscode = ''
  849. ls_cusname = ''
  850. END IF
  851. ELSE
  852. ls_sptid = 0
  853. END IF
  854. rslt = wf_saletaskmtrltoarr(arg_scid,arg_saletaskid,s_rqmtrlI,P_rqmtrl,arg_msg)
  855. FOR li = 1 To P_rqmtrl
  856. sumqty = 0
  857. ins_mtrlcode = ''
  858. ins_mtrlname = ''
  859. lb_find = True
  860. allocqty = 0
  861. noallocqty = 0
  862. i_qty = 0
  863. SELECT u_mtrldef.mtrlcode,
  864. u_mtrldef.mtrlname,
  865. u_mtrldef.unit,
  866. u_mtrldef.mtrlmode,
  867. u_mtrldef.mtrlsectype,
  868. u_mtrldef.mtrltype,
  869. u_mtrldef.zxmtrlmode,
  870. u_mtrldef.salerate,
  871. u_mtrldef.handtype,
  872. u_mtrldef.packqty,
  873. u_mtrldef.mtrlengname
  874. INTO :ins_mtrlcode,
  875. :ins_mtrlname,
  876. :ins_unit,
  877. :ins_mtrlmode,
  878. :ins_mtrlsectype,
  879. :ins_mtrltype,
  880. :ins_zxmtrlmode,
  881. :ins_salerate,
  882. :ins_handtype,
  883. :ins_packqty,
  884. :ins_mtrlengname
  885. FROM u_mtrldef
  886. Where u_mtrldef.mtrlid = :s_rqmtrlI.mtrlid[li];
  887. IF sqlca.SQLCode <> 0 THEN
  888. arg_msg = '查询物料资料失败[错误物料唯一码]>' + sqlca.SQLErrText
  889. rslt = 0
  890. GOTO ext
  891. END IF
  892. child_llrow = dw_child.GetRow()
  893. IF child_llrow > 0 THEN
  894. IF dw_child.Object.u_inwaremx_mtrlid[child_llrow] <> 0 THEN
  895. child_llrow = dw_child.InsertRow (0)
  896. ELSE
  897. child_llrow = dw_child.GetRow()
  898. END IF
  899. ELSE
  900. child_llrow = dw_child.InsertRow (0)
  901. END IF
  902. IF li_if_cus_mtrlware = 1 THEN
  903. IF uo_cust.s_cust.bhflag = 1 THEN //mei:20170106
  904. dw_child.Object.if_mtrlware[child_llrow] = 0
  905. ELSE
  906. dw_child.Object.if_mtrlware[child_llrow] = 1
  907. END IF
  908. dw_child.Object.u_cust_cuscode[child_llrow] = ls_cuscode
  909. dw_child.Object.u_cust_name[child_llrow] = ls_cusname
  910. dw_child.Object.u_inwaremx_sptid_cusid [child_llrow] = ls_sptid
  911. END IF
  912. dw_child.Object.u_inwaremx_ifrel[child_llrow] = 1
  913. dw_child.Object.u_inwaremx_relid [child_llrow] = arg_saletaskid
  914. dw_child.Object.u_inwaremx_relprintid [child_llrow] = s_rqmtrlI.printid[li]
  915. dw_child.Object.u_inwaremx_mtrlid[child_llrow] = s_rqmtrlI.mtrlid[li]
  916. IF sys_option_inwarecp_saleprice = 0 THEN
  917. lde_planprice = f_get_planprice(s_rqmtrlI.mtrlid[li], s_rqmtrlI.status[li], s_rqmtrlI.woodcode[li], s_rqmtrlI.pcode[li], True)
  918. dw_child.Object.u_inwaremx_fprice[child_llrow] = lde_planprice //s_rqmtrlI.fprice[li]
  919. ELSE
  920. dw_child.Object.u_inwaremx_fprice[child_llrow] = s_rqmtrlI.fprice[li] * ins_salerate
  921. END IF
  922. dw_child.Object.u_inwaremx_qty[child_llrow] = s_rqmtrlI.qty[li]
  923. dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  924. dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  925. dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  926. dw_child.Object.u_inwaremx_relcode[child_llrow] = arg_taskcode
  927. dw_child.Object.u_inwaremx_status[child_llrow] = s_rqmtrlI.status[li]
  928. dw_child.Object.u_inwaremx_woodcode[child_llrow] = s_rqmtrlI.woodcode[li]
  929. dw_child.Object.u_inwaremx_pcode[child_llrow] = s_rqmtrlI.pcode[li]
  930. dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  931. dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  932. dw_child.Object.u_mtrldef_mtrltype[child_llrow] = ins_mtrltype
  933. dw_child.Object.u_mtrldef_handtype[child_llrow] = ins_handtype
  934. dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  935. dw_child.Object.u_inwaremx_mxdscrp[child_llrow] = s_rqmtrlI.mxdscrp[li]
  936. dw_child.Object.u_inwaremx_mxdscrp2[child_llrow] = s_rqmtrlI.mxdscrp2[li]
  937. dw_child.Object.u_inwaremx_mxdscrp3[child_llrow] = s_rqmtrlI.mxdscrp3[li]
  938. dw_child.Object.u_inwaremx_mxdscrp4[child_llrow] = s_rqmtrlI.mxdscrp4[li]
  939. dw_child.Object.u_inwaremx_mtrlcuscode[child_llrow] = s_rqmtrlI.mtrlcuscode[li]
  940. dw_child.Object.u_inwaremx_addqty[child_llrow] = s_rqmtrlI.addqty[li]
  941. dw_child.Object.u_saletask_taskdate[child_llrow] = s_rqmtrlI.taskdate[li]
  942. dw_child.Object.u_inwaremx_plancode[child_llrow] = s_rqmtrlI.plancode[li]
  943. dw_child.Object.u_mtrldef_packqty[child_llrow] = ins_packqty
  944. dw_child.Object.u_mtrldef_mtrlengname[child_llrow] = ins_mtrlengname
  945. //系统选项289 [0- 不使用;1- 引用订单明细备注;2-引用用订单明细备注+客户名称;3-引用订单明细备注+订单明细备注2]
  946. IF sys_option_inwarecp_auto_saletask_dscrp = 1 THEN
  947. dw_child.Object.u_inwaremx_waredscrp[child_llrow] = s_rqmtrlI.mxdscrp[li]
  948. ELSEIF sys_option_inwarecp_auto_saletask_dscrp = 2 THEN
  949. String ls_temp_cusname
  950. ls_temp_cusname = ''
  951. SELECT Name Into :ls_temp_cusname From u_cust Where cusid = :arg_cusid;
  952. dw_child.Object.u_inwaremx_waredscrp[child_llrow] = s_rqmtrlI.mxdscrp[li] + ' ' + ls_temp_cusname
  953. ELSEIF sys_option_inwarecp_auto_saletask_dscrp = 3 THEN
  954. dw_child.Object.u_inwaremx_waredscrp[child_llrow] = s_rqmtrlI.mxdscrp[li] + ' ' + s_rqmtrlI.mxdscrp2[li]
  955. END IF
  956. Decimal dec_lmbuyprice //设定购价
  957. dec_lmbuyprice = 0
  958. SELECT lmbuyprice Into :dec_lmbuyprice From u_mtrldef Where mtrlid = :s_rqmtrlI.mtrlid[li];
  959. dw_child.Object.u_mtrldef_lmbuyprice[child_llrow] = dec_lmbuyprice
  960. Long li_statusflag
  961. Long li_woodcodeflag
  962. Long li_pcodeflag
  963. s_mtrldef_array arg_s_mtrldef
  964. IF f_find_mtrl(ins_mtrlcode, - 1,arg_s_mtrldef) = 0 THEN
  965. li_statusflag = 0
  966. li_woodcodeflag = 0
  967. li_pcodeflag = 0
  968. ELSE
  969. li_statusflag = arg_s_mtrldef.statusflag[1]
  970. li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
  971. li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
  972. END IF
  973. dw_child.Object.u_mtrldef_statusflag[child_llrow] = li_statusflag
  974. dw_child.Object.u_mtrldef_woodcodeflag[child_llrow] = li_woodcodeflag
  975. dw_child.Object.u_mtrldef_pcodeflag[child_llrow] = li_pcodeflag
  976. NEXT
  977. ext:
  978. RETURN rslt
  979. end function
  980. public function integer wf_saletaskmtrltoarr (long arg_scid, long arg_taskid, ref s_saletask_mtrl arg_s_rqmtrl, ref long arg_p_rqmtrl, ref string arg_msg);//wf_saletaskmtrltoarr(long arg_taskid,ref s_saletask_mtrl arg_s_rqmtrl[],ref long arg_p_rqmtrl,ref string arg_msg)
  981. //查询合同物料资料
  982. //把物料资料写入数组
  983. Long rslt = 1
  984. //查询合同物料
  985. DECLARE pf_cur CURSOR FOR
  986. SELECT u_saletaskmx.mtrlid,
  987. u_saletaskmx.orderqty - u_saletaskmx.assignqty,
  988. u_saletaskmx.enprice,
  989. u_saletaskmx.ware_fprice,
  990. u_saletaskmx.rebate,
  991. u_saletaskmx.mxdscrp,
  992. u_saletaskmx.status,
  993. u_saletaskmx.woodcode,
  994. u_saletaskmx.pcode,
  995. u_saletaskmx.mxdscrp,
  996. u_saletaskmx.mtrlcuscode,
  997. u_saletaskmx.addqty,
  998. u_saletask.taskdate,
  999. u_saletaskmx.printid,
  1000. u_saletaskmx.plancode,
  1001. u_saletaskmx.mxdscrp2,
  1002. u_saletaskmx.mxdscrp3,
  1003. u_saletaskmx.mxdscrp4
  1004. FROM u_saletaskmx ,u_mtrldef,u_saletask
  1005. WHERE u_saletaskmx.mtrlid = u_mtrldef.mtrlid AND
  1006. ( u_saletaskmx.taskid = :arg_taskid )
  1007. //AND ( u_saletaskmx.orderqty - u_saletaskmx.assignqty > 0 )
  1008. AND ( u_saletaskmx.scid = :arg_scid )
  1009. AND u_saletask.taskid = u_saletaskmx.taskid
  1010. And u_saletask.scid = u_saletaskmx.scid ;
  1011. OPEN pf_cur;
  1012. arg_p_rqmtrl = 1
  1013. FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl],
  1014. :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl],:arg_s_rqmtrl.rebate[arg_p_rqmtrl],
  1015. :arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],:arg_s_rqmtrl.status[arg_p_rqmtrl],
  1016. :arg_s_rqmtrl.woodcode[arg_p_rqmtrl],:arg_s_rqmtrl.pcode[arg_p_rqmtrl],
  1017. :arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl],
  1018. :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.taskdate[arg_p_rqmtrl],
  1019. :arg_s_rqmtrl.printid[arg_p_rqmtrl],:arg_s_rqmtrl.plancode[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl],
  1020. :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl];
  1021. DO WHILE sqlca.SQLCode = 0
  1022. arg_p_rqmtrl++
  1023. FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl],
  1024. :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl],:arg_s_rqmtrl.rebate[arg_p_rqmtrl],
  1025. :arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],:arg_s_rqmtrl.status[arg_p_rqmtrl],
  1026. :arg_s_rqmtrl.woodcode[arg_p_rqmtrl],:arg_s_rqmtrl.pcode[arg_p_rqmtrl],
  1027. :arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl],
  1028. :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.taskdate[arg_p_rqmtrl],
  1029. :arg_s_rqmtrl.printid[arg_p_rqmtrl],:arg_s_rqmtrl.plancode[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl],
  1030. :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl];
  1031. LOOP
  1032. arg_p_rqmtrl = arg_p_rqmtrl - 1
  1033. CLOSE pf_cur;
  1034. RETURN rslt
  1035. end function
  1036. public subroutine wf_check_billfj ();String arg_msg
  1037. Long ll_ConnectionID
  1038. Long cur_billtype
  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.inwareid[row]
  1048. ll_scid = dw_pageretr.Object.u_inware_scid[row]
  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 = 207 //客户投拆单的 mainiD
  1059. ls_uo_fjbt.uf_check_billfj( cur_billtype, 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 = dw_uc.Object.u_inware_scid[LS_ROW]
  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 = 207);
  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.u_inwaremx_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_saletaskmtrltoarr_salemx (long arg_scid, ref s_saletask_mtrl arg_s_rqmtrl, ref string arg_msg);//wf_saletaskmtrltoarr(long arg_taskid,ref s_saletask_mtrl arg_s_rqmtrl[],ref long i,ref string arg_msg)
  1170. //查询合同物料资料
  1171. //把物料资料写入数组
  1172. Long rslt = 1
  1173. Long i
  1174. FOR i = 1 TO UpperBound(arg_s_rqmtrl.taskid)
  1175. SELECT u_saletaskmx.mtrlid,
  1176. u_saletaskmx.orderqty - u_saletaskmx.assignqty,
  1177. u_saletaskmx.enprice,
  1178. u_saletaskmx.fprice,
  1179. u_saletaskmx.rebate,
  1180. u_saletaskmx.mxdscrp,
  1181. u_saletaskmx.status,
  1182. u_saletaskmx.woodcode,
  1183. u_saletaskmx.pcode,
  1184. u_saletaskmx.unit,
  1185. u_saletaskmx.rate,
  1186. u_saletaskmx.mtrlcuscode,
  1187. u_saletaskmx.outtype,
  1188. u_saletaskmx.formula,
  1189. u_saletaskmx.addqty,
  1190. u_saletask.cusid,
  1191. u_cust.cuscode,
  1192. u_cust.name,
  1193. u_saletask.taskcode,
  1194. u_saletask.taskdate,
  1195. u_saletaskmx.printid,
  1196. u_saletaskmx.plancode,
  1197. u_saletaskmx.mxdscrp2,
  1198. u_saletaskmx.mxdscrp3,
  1199. u_saletaskmx.mxdscrp4
  1200. INTO :arg_s_rqmtrl.mtrlid[i],:arg_s_rqmtrl.qty[i],
  1201. :arg_s_rqmtrl.enprice[i],:arg_s_rqmtrl.fprice[i],
  1202. :arg_s_rqmtrl.rebate[i],:arg_s_rqmtrl.mxdscrp[i],
  1203. :arg_s_rqmtrl.status[i],:arg_s_rqmtrl.woodcode[i],
  1204. :arg_s_rqmtrl.pcode[i],:arg_s_rqmtrl.unit[i],
  1205. :arg_s_rqmtrl.rate[i],:arg_s_rqmtrl.mtrlcuscode[i],
  1206. :arg_s_rqmtrl.outtype[i],:arg_s_rqmtrl.formula[i],
  1207. :arg_s_rqmtrl.addqty[i],
  1208. :arg_s_rqmtrl.cusid[i],:arg_s_rqmtrl.cuscode[i],
  1209. :arg_s_rqmtrl.cusname[i],:arg_s_rqmtrl.taskcode[i],
  1210. :arg_s_rqmtrl.taskdate[i],
  1211. :arg_s_rqmtrl.printid[i],
  1212. :arg_s_rqmtrl.plancode[i],
  1213. :arg_s_rqmtrl.mxdscrp2[i],
  1214. :arg_s_rqmtrl.mxdscrp3[i],
  1215. :arg_s_rqmtrl.mxdscrp4[i]
  1216. FROM u_saletaskmx ,u_mtrldef,u_saletask,u_cust
  1217. WHERE u_saletaskmx.mtrlid = u_mtrldef.mtrlid AND
  1218. ( u_saletaskmx.taskid = :arg_s_rqmtrl.taskid[i] )
  1219. AND ( u_saletaskmx.scid = :arg_scid )
  1220. AND u_saletaskmx.printid = :arg_s_rqmtrl.printid[i]
  1221. and u_saletask.taskid = u_saletaskmx.taskid
  1222. and u_saletask.scid = u_saletaskmx.scid
  1223. and u_saletask.cusid = u_cust.cusid;
  1224. IF sqlca.SQLCode <> 0 THEN
  1225. rslt = 0
  1226. arg_msg = '查询订单明细失败!'
  1227. GOTO ext
  1228. END IF
  1229. NEXT
  1230. ext:
  1231. RETURN rslt
  1232. end function
  1233. 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
  1234. LS_ROW = dw_pageretr.GetRow()
  1235. IF LS_ROW <= 0 THEN
  1236. arg_msg = '没有目标单据!'
  1237. RETURN 0
  1238. END IF
  1239. //修改点:获取 指定retriev参数
  1240. ll_id = dw_pageretr.Object.#1[LS_ROW]
  1241. ll_scid = dw_pageretr.Object.u_inware_scid[LS_ROW]
  1242. Long ll_i,ll_j
  1243. Long ll_mtrlid
  1244. Long ll_fileid
  1245. Blob ls_filedata
  1246. SetNull(ls_filedata)
  1247. String Pathname,ls_filename,ls_filetype
  1248. String errmsg
  1249. uo_fj_mng_billtype ls_uo_fjbt
  1250. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  1251. Long ll_classid
  1252. SELECT classid
  1253. INTO :ll_classid
  1254. FROM u_billpic_fileclass
  1255. Where (billtype = 102);
  1256. IF sqlca.SQLCode <> 0 THEN
  1257. ll_classid = 0
  1258. END IF
  1259. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  1260. FOR ll_i = 1 TO dw_child.RowCount()
  1261. ll_mtrlid = dw_child.Object.u_inwaremx_mtrlid[ll_i]
  1262. arg_s_pic.mtrlid[ll_i] = ll_mtrlid
  1263. //取该附件类型中的第一个附件.
  1264. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  1265. FROM u_file
  1266. WHERE relid = :ll_mtrlid
  1267. AND classid = :ll_classid
  1268. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  1269. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  1270. USING sys_fileDB_sqlca;
  1271. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  1272. ll_fileid = 0
  1273. END IF
  1274. IF ll_fileid > 0 THEN
  1275. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  1276. IF Trim(Pathname) <> '' THEN
  1277. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  1278. RETURN 0
  1279. END IF
  1280. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  1281. RETURN 0
  1282. ELSE
  1283. arg_s_pic.path[ll_i] = Pathname
  1284. //记录临时文件位置,本窗口退出后删除
  1285. wf_addlog_tempfilepathname(Pathname)
  1286. END IF
  1287. ELSE
  1288. arg_s_pic.path[ll_i] = ''
  1289. END IF
  1290. ELSE
  1291. arg_s_pic.path[ll_i] = ''
  1292. END IF
  1293. NEXT
  1294. END IF
  1295. RETURN 1
  1296. end function
  1297. public function integer wf_autoaddmx_salemx (long arg_scid, s_saletask_mtrl arg_s_rqmtrli, long arg_storageid, ref string arg_msg);//选订单明细调用
  1298. //wf_autoaddmx(arg_taskid,arg_storageid,arg_msg)
  1299. //查询合同物料于数组中
  1300. //循环数组
  1301. //查询物料库存总额
  1302. //查询库存批/插入明细记录
  1303. IF Not dw_edit_mode THEN RETURN 0
  1304. Long P_rqmtrl,lrow,li,rslt = 1
  1305. Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_price,noallocqty,allocqty,r_qty,ins_salerate
  1306. Decimal lde_planprice
  1307. Long ins_storageid,count = 0,ins_mtrlwareid = 0,child_llrow
  1308. String ins_prdpackcode,ins_mtrlcode,ins_mtrlname,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode,ins_mtrlengname
  1309. Boolean lb_find = True
  1310. Long storageid
  1311. Long mtrlwareid
  1312. Int li_bhflag
  1313. Decimal planprice
  1314. Date l_rqdate
  1315. l_rqdate = Today()
  1316. Int li_if_cus_mtrlware,li_noallocflag
  1317. Long ls_sptid
  1318. SELECT balctype,noallocflag INTO :li_if_cus_mtrlware,:li_noallocflag
  1319. FROM u_storage
  1320. Where storageid = :arg_storageid;
  1321. IF sqlca.SQLCode <> 0 THEN
  1322. arg_msg = '查询仓库是否使用客户库存失败'
  1323. rslt = 0
  1324. GOTO ext
  1325. END IF
  1326. child_llrow = dw_child.GetRow()
  1327. rslt = wf_saletaskmtrltoarr_salemx(arg_scid,arg_s_rqmtrli,arg_msg)
  1328. FOR li = 1 To UpperBound(arg_s_rqmtrli.taskid)
  1329. sumqty = 0
  1330. ins_mtrlcode = ''
  1331. ins_mtrlname = ''
  1332. lb_find = True
  1333. allocqty = 0
  1334. noallocqty = 0
  1335. i_qty = 0
  1336. SELECT u_mtrldef.mtrlcode,
  1337. u_mtrldef.mtrlname,
  1338. u_mtrldef.unit,
  1339. u_mtrldef.mtrlmode,
  1340. u_mtrldef.mtrlsectype,
  1341. u_mtrldef.zxmtrlmode,
  1342. u_mtrldef.salerate,
  1343. u_mtrldef.mtrlengname
  1344. INTO :ins_mtrlcode,
  1345. :ins_mtrlname,
  1346. :ins_unit,
  1347. :ins_mtrlmode,
  1348. :ins_mtrlsectype,
  1349. :ins_zxmtrlmode,
  1350. :ins_salerate,
  1351. :ins_mtrlengname
  1352. FROM u_mtrldef
  1353. Where u_mtrldef.mtrlid = :arg_s_rqmtrli.mtrlid[li];
  1354. IF sqlca.SQLCode <> 0 THEN
  1355. arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText
  1356. rslt = 0
  1357. GOTO ext
  1358. END IF
  1359. IF child_llrow > 0 THEN
  1360. IF dw_child.Object.u_inwaremx_mtrlid[child_llrow] <> 0 THEN
  1361. child_llrow = dw_child.InsertRow (0)
  1362. ELSE
  1363. child_llrow = dw_child.GetRow()
  1364. END IF
  1365. ELSE
  1366. child_llrow = dw_child.InsertRow (0)
  1367. END IF
  1368. IF li_if_cus_mtrlware = 1 THEN
  1369. //备货客户不考虑客户库存
  1370. SELECT bhflag Into :li_bhflag From u_cust Where cusid = :arg_s_rqmtrli.cusid[li];
  1371. IF sqlca.SQLCode <> 0 THEN
  1372. li_bhflag = 0
  1373. END IF
  1374. IF li_bhflag = 0 THEN
  1375. dw_child.Object.if_mtrlware[child_llrow] = 1
  1376. dw_child.Object.u_cust_cuscode[child_llrow] = arg_s_rqmtrli.cuscode[li]
  1377. dw_child.Object.u_cust_name[child_llrow] = arg_s_rqmtrli.cusname[li]
  1378. dw_child.Object.u_inwaremx_sptid_cusid [child_llrow] = arg_s_rqmtrli.cusid[li]
  1379. END IF
  1380. END IF
  1381. dw_child.Object.u_inwaremx_ifrel[child_llrow] = 1
  1382. dw_child.Object.u_inwaremx_relid [child_llrow] = arg_s_rqmtrli.taskid[li]
  1383. dw_child.Object.u_inwaremx_relprintid [child_llrow] = arg_s_rqmtrli.printid[li]
  1384. dw_child.Object.u_inwaremx_mtrlid[child_llrow] = arg_s_rqmtrli.mtrlid[li]
  1385. IF sys_option_inwarecp_saleprice = 0 THEN
  1386. lde_planprice = f_get_planprice(arg_s_rqmtrli.mtrlid[li], arg_s_rqmtrli.status[li], arg_s_rqmtrli.woodcode[li], arg_s_rqmtrli.pcode[li], True)
  1387. dw_child.Object.u_inwaremx_fprice[child_llrow] = lde_planprice
  1388. ELSE
  1389. dw_child.Object.u_inwaremx_fprice[child_llrow] = arg_s_rqmtrli.fprice[li] * ins_salerate
  1390. END IF
  1391. dw_child.Object.u_inwaremx_qty[child_llrow] = arg_s_rqmtrli.qty[li]
  1392. dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  1393. dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  1394. dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  1395. dw_child.Object.u_inwaremx_relcode[child_llrow] = arg_s_rqmtrli.taskcode[li]
  1396. dw_child.Object.u_inwaremx_status[child_llrow] = arg_s_rqmtrli.status[li]
  1397. dw_child.Object.u_inwaremx_woodcode[child_llrow] = arg_s_rqmtrli.woodcode[li]
  1398. dw_child.Object.u_inwaremx_pcode[child_llrow] = arg_s_rqmtrli.pcode[li]
  1399. dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  1400. dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  1401. dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  1402. dw_child.Object.u_inwaremx_mxdscrp[child_llrow] = arg_s_rqmtrli.mxdscrp[li]
  1403. dw_child.Object.u_inwaremx_mxdscrp2[child_llrow] = arg_s_rqmtrli.mxdscrp2[li]
  1404. dw_child.Object.u_inwaremx_mxdscrp3[child_llrow] = arg_s_rqmtrli.mxdscrp3[li]
  1405. dw_child.Object.u_inwaremx_mxdscrp4[child_llrow] = arg_s_rqmtrli.mxdscrp4[li]
  1406. dw_child.Object.u_inwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrli.mtrlcuscode[li]
  1407. dw_child.Object.u_inwaremx_addqty[child_llrow] = arg_s_rqmtrli.addqty[li]
  1408. dw_child.Object.u_saletask_taskdate[child_llrow] = arg_s_rqmtrli.taskdate[li]
  1409. dw_child.Object.u_inwaremx_plancode[child_llrow] = arg_s_rqmtrli.plancode[li]
  1410. dw_child.Object.u_mtrldef_mtrlengname[child_llrow] = ins_mtrlengname
  1411. //系统选项289 [0- 不使用;1- 引用订单明细备注;2-引用用订单明细备注+客户名称;3-引用订单明细备注+订单明细备注2]
  1412. IF sys_option_inwarecp_auto_saletask_dscrp = 1 THEN
  1413. dw_child.Object.u_inwaremx_waredscrp[child_llrow] = arg_s_rqmtrli.mxdscrp[li]
  1414. ELSEIF sys_option_inwarecp_auto_saletask_dscrp = 2 THEN
  1415. String ls_temp_cusname
  1416. ls_temp_cusname = ''
  1417. SELECT Name Into :ls_temp_cusname From u_cust Where cusid = :arg_s_rqmtrli.cusid[li];
  1418. dw_child.Object.u_inwaremx_waredscrp[child_llrow] = arg_s_rqmtrli.mxdscrp[li] + ' ' + ls_temp_cusname
  1419. ELSEIF sys_option_inwarecp_auto_saletask_dscrp = 3 THEN
  1420. dw_child.Object.u_inwaremx_waredscrp[child_llrow] = arg_s_rqmtrli.mxdscrp[li] + ' ' + arg_s_rqmtrli.mxdscrp2[li]
  1421. END IF
  1422. Long li_statusflag
  1423. Long li_woodcodeflag
  1424. Long li_pcodeflag
  1425. s_mtrldef_array arg_s_mtrldef
  1426. IF f_find_mtrl(ins_mtrlcode,-1,arg_s_mtrldef) = 0 THEN
  1427. li_statusflag = 0
  1428. li_woodcodeflag = 0
  1429. li_pcodeflag = 0
  1430. ELSE
  1431. li_statusflag = arg_s_mtrldef.statusflag[1]
  1432. li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
  1433. li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
  1434. END IF
  1435. dw_child.Object.u_mtrldef_statusflag[child_llrow] = li_statusflag
  1436. dw_child.Object.u_mtrldef_woodcodeflag[child_llrow] = li_woodcodeflag
  1437. dw_child.Object.u_mtrldef_pcodeflag[child_llrow] = li_pcodeflag
  1438. NEXT
  1439. ext:
  1440. RETURN rslt
  1441. end function
  1442. public function integer wf_check_qtyandaddqty (ref string arg_msg);Long i
  1443. Int rslt = 1
  1444. Long lk_mtrlid,lk_ifcheckaddqty
  1445. String ls_strcheckaddqty,ls_mtrlmode
  1446. Decimal dec_qty,dec_addqty,dec_danpackqty,dec_packqty,dec_rebate
  1447. String ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode
  1448. Long num
  1449. s_cmpl_qty s_cmpl
  1450. s_cmpl.addvalue = 1
  1451. String ls_msg
  1452. dw_child.AcceptText()
  1453. FOR i = 1 To dw_child.RowCount()
  1454. lk_mtrlid = dw_child.Object.u_inwaremx_mtrlid[i]
  1455. dec_qty = dw_child.Object.u_inwaremx_qty[i]
  1456. dec_addqty = dw_child.Object.u_inwaremx_addqty[i]
  1457. ls_status = dw_child.Object.u_inwaremx_status[i]
  1458. ls_woodcode = dw_child.Object.u_inwaremx_woodcode[i]
  1459. ls_pcode = dw_child.Object.u_inwaremx_pcode[i]
  1460. ls_mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i]
  1461. ls_zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  1462. dec_danpackqty=0
  1463. dec_packqty=0
  1464. dec_rebate = 1
  1465. ls_mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[i]
  1466. SELECT ifcheckaddqty,strcheckaddqty,strcheck_digit Into :lk_ifcheckaddqty,:ls_strcheckaddqty,:num From u_mtrldef Where mtrlid = :lk_mtrlid;
  1467. s_cmpl.formula = ls_strcheckaddqty
  1468. s_cmpl.status = ls_status
  1469. s_cmpl.woodcode = ls_woodcode
  1470. s_cmpl.pcode = ls_pcode
  1471. s_cmpl.mtrlsectype = ls_mtrlsectype
  1472. s_cmpl.zxmtrlmode = ls_zxmtrlmode
  1473. s_cmpl.addqty = dec_addqty
  1474. s_cmpl.num = num
  1475. s_cmpl.oldqty = dec_qty
  1476. s_cmpl.mtrlsectype = ls_mtrlsectype
  1477. s_cmpl.zxmtrlmode = ls_zxmtrlmode
  1478. s_cmpl.packqty = dec_packqty
  1479. s_cmpl.rebate = dec_rebate
  1480. //如果有填写数量 则 只检查数量和辅数的关系
  1481. Decimal dec_tmp
  1482. IF lk_mtrlid > 0 And dec_qty <> 0 THEN
  1483. IF f_cmpl_qty_check(s_cmpl,dec_tmp,ls_msg) <> TRUE THEN
  1484. rslt = 0
  1485. arg_msg = '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行不符合该项定义,公式是 ' + ls_strcheckaddqty
  1486. GOTO ext
  1487. END IF
  1488. END IF
  1489. //如果没有填写数量 则 由辅数计算出数量
  1490. IF lk_mtrlid > 0 And dec_qty = 0 THEN
  1491. IF f_cmpl_qty(s_cmpl,dec_tmp,ls_msg) = 0 THEN
  1492. rslt = 0
  1493. arg_msg += '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行由辅数计算出数量为0,请检查资料定义公式是 ' + ls_strcheckaddqty
  1494. goto ext
  1495. END IF
  1496. dw_child.Object.u_inwaremx_qty[i] = dec_tmp
  1497. END IF
  1498. NEXT
  1499. dw_child.AcceptText()
  1500. ext:
  1501. RETURN rslt
  1502. end function
  1503. public function integer wf_checkqty (ref string arg_msg);long i,j,rslt=1,n = 1
  1504. long ll_taskid,ll_scid,ll_printid
  1505. dec dec_qty
  1506. long ll_row,ll_rowc
  1507. Dec lde_orderQty,lde_AssignQty,lde_needbuyqty,lde_needwfjgqty
  1508. Dec lde_buytaskqty,lde_wfjgtaskqty
  1509. long arr[]
  1510. ll_row = dw_child.rowcount() - 1
  1511. ll_rowc = dw_child.rowcount()
  1512. dw_child.accepttext()
  1513. //FOR i = 1 To dw_child.RowCount()
  1514. // IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN
  1515. // ll_taskid = dw_child.Object.u_inwaremx_relid[i]
  1516. // dec_qty = dw_child.Object.u_inwaremx_qty[i]
  1517. // ll_printid = dw_child.Object.u_inwaremx_relprintid[i]
  1518. // ll_scid = cur_scid//dw_uc.Object.u_inware_scid[dw_uc.getrow()]
  1519. // //messagebox('',ll_scid)
  1520. // SELECT orderqty,needbuyqty,needwfjgqty,
  1521. // AssignQty,buytaskqty,wfjgtaskqty
  1522. // INTO :lde_orderQty,:lde_needbuyqty,:lde_needwfjgqty,
  1523. // :lde_AssignQty,:lde_buytaskqty,:lde_wfjgtaskqty
  1524. // FROM u_SaleTaskMx WHERE scid = :ll_scid AND
  1525. // taskid = :ll_taskid AND
  1526. // printid = :ll_printid Using SQLCA;
  1527. // IF SQLCA.SQLCode <> 0 THEN
  1528. // arg_msg = '查询销售订单信息失败!'+SQLCA.SQLErrText
  1529. // rslt = 0
  1530. // messagebox('',arg_msg)
  1531. // END IF
  1532. //
  1533. // IF lde_orderQty + lde_needbuyqty + lde_needwfjgqty - lde_AssignQty < dec_qty THEN
  1534. // arg_msg = '第['+string(i) +']行,进仓数量大于销售订单安排未进仓数量'
  1535. // rslt = 0
  1536. // //MESSAGEBOX('',arg_msg)
  1537. // END IF
  1538. // END IF
  1539. //NEXT
  1540. //
  1541. IF ll_rowc = 1 THEN
  1542. ll_row = 1
  1543. END IF
  1544. for i=1 to ll_rowc
  1545. IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN
  1546. ll_taskid = dw_child.Object.u_inwaremx_relid[i]
  1547. dec_qty = dw_child.Object.u_inwaremx_qty[i]
  1548. ll_printid = dw_child.Object.u_inwaremx_relprintid[i]
  1549. ll_scid = cur_scid
  1550. IF ll_rowc >1 and i<> ll_rowc THEN
  1551. for j=i to ll_row
  1552. IF ll_taskid = dw_child.Object.u_inwaremx_relid[J+1] AND ll_printid = dw_child.Object.u_inwaremx_relprintid[J+1] Then
  1553. dec_qty = dec_qty + dw_child.Object.u_inwaremx_qty[J+1]
  1554. END IF
  1555. next
  1556. END IF
  1557. SELECT orderqty,needbuyqty,needwfjgqty,
  1558. AssignQty,buytaskqty,wfjgtaskqty
  1559. INTO :lde_orderQty,:lde_needbuyqty,:lde_needwfjgqty,
  1560. :lde_AssignQty,:lde_buytaskqty,:lde_wfjgtaskqty
  1561. FROM u_SaleTaskMx WHERE scid = :ll_scid AND
  1562. taskid = :ll_taskid AND
  1563. printid = :ll_printid Using SQLCA;
  1564. IF SQLCA.SQLCode <> 0 THEN
  1565. arg_msg = '查询销售订单信息失败!'+SQLCA.SQLErrText
  1566. rslt = 0
  1567. messagebox('',arg_msg)
  1568. END IF
  1569. IF sys_option_inware_cp_assignqty = 0 THEN
  1570. // IF lde_orderQty + lde_needbuyqty + lde_needwfjgqty - lde_AssignQty < dec_qty THEN
  1571. // arg_msg = '第['+string(i) +']行,进仓数量大于销售订单安排未进仓数量'
  1572. // rslt = 0
  1573. // return rslt
  1574. // END IF
  1575. IF lde_orderQty - lde_AssignQty < dec_qty THEN
  1576. arg_msg = '第['+string(i) +']行,进仓数量大于销售订单安排未进仓数量'
  1577. rslt = 0
  1578. return rslt
  1579. END IF
  1580. END IF
  1581. end if
  1582. next
  1583. //FOR i = 1 To ll_row
  1584. // FOR j = i To ll_row
  1585. // IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN
  1586. // IF dw_child.OBJECT.taskid[i] = dw_child.OBJECT.taskid[j+1] and dw_child.OBJECT.relprintid[j] = dw_child.OBJECT.relprintid[j+1] then
  1587. // ll_taskid = dw_child.OBJECT.taskid[j]
  1588. // dec_qty = dec_qty + dw_child.OBJECT.u_inwaremx_qty[j+1]
  1589. //
  1590. // end if
  1591. // END IF
  1592. // next
  1593. //NEXT
  1594. //FOR i=1 to upperbound(arr)
  1595. // FOR j = 1 to dw_child.getrow()
  1596. // IF dw_child.Object.u_inwaremx_ifrel[j] = 1 AND dw_child.Object.u_inwaremx_relid[J] = ARR[i] then
  1597. // dec_qty = dec_qty + dw_child.Object.u_inwaremx_qty[j]
  1598. // END IF
  1599. // next
  1600. //next
  1601. return rslt
  1602. end function
  1603. public function integer wf_refresh_interface ();//wf_refresh_interface
  1604. IF dw_edit_mode THEN
  1605. cb_retrieve.Enabled = FALSE
  1606. cb_delet.Enabled = FALSE
  1607. cb_print.Enabled = FALSE
  1608. cb_viewprint.Enabled = FALSE
  1609. cb_auditing.Enabled = FALSE
  1610. cb_auditing_cancel.Enabled = FALSE
  1611. dw_pageretr.RBUTTON_FILTER_USE = FALSE //右键查询功能开关
  1612. dw_pageretr.titleclick_sort_use = FALSE //单击标题排序功能开关
  1613. // dw_child.titleclick_sort_use = TRUE //单击标题排序功能开关
  1614. dw_child.RBUTTON_SETPOSITION_USE = FALSE //定位
  1615. cb_edit.Enabled = TRUE
  1616. cb_add.Enabled = TRUE
  1617. cb_xls.Enabled = FALSE
  1618. cb_edit.Text = "放弃&E"
  1619. cb_add.Text = "保存&S"
  1620. cb_edit.normalpicname = 'Undo.bmp'
  1621. cb_add.normalpicname = 'Save.bmp'
  1622. cbx_packqty_cmpl.enabled = false
  1623. ELSE
  1624. cb_retrieve.Enabled = TRUE
  1625. cb_delet.Enabled = TRUE
  1626. cb_print.Enabled = TRUE
  1627. cb_viewprint.Enabled = TRUE
  1628. cb_auditing.Enabled = TRUE
  1629. cb_auditing_cancel.Enabled = TRUE
  1630. cb_add.Enabled = TRUE
  1631. cb_edit.Enabled = TRUE
  1632. cb_xls.Enabled = TRUE
  1633. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  1634. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  1635. // dw_child.titleclick_sort_use = FALSE //单击标题排序功能开关
  1636. dw_child.RBUTTON_SETPOSITION_USE = TRUE //定位
  1637. cb_edit.Text = "修改&E"
  1638. cb_add.Text = "新建&S"
  1639. cb_edit.normalpicname = 'OPEN.bmp'
  1640. cb_add.normalpicname = 'new.bmp'
  1641. cbx_packqty_cmpl.enabled = true
  1642. IF dw_pageretr.GetRow() <= 0 THEN
  1643. cb_edit.Enabled = FALSE
  1644. cb_delet.Enabled = FALSE
  1645. cb_addzy.Enabled = FALSE
  1646. cb_auditing.Enabled = FALSE
  1647. END IF
  1648. END IF
  1649. IF retrieve_all OR dw_edit_mode THEN
  1650. cb_nextpage.Enabled = FALSE
  1651. cb_retrieveall.Enabled = FALSE
  1652. em_pagerowno.Enabled = FALSE
  1653. cb_func.Enabled = FALSE
  1654. IF dw_edit_mode THEN
  1655. sle_usual_query.Enabled = FALSE
  1656. ELSE
  1657. sle_usual_query.Enabled = TRUE
  1658. END IF
  1659. ELSE
  1660. cb_nextpage.Enabled = TRUE
  1661. cb_retrieveall.Enabled = TRUE
  1662. em_pagerowno.Enabled = TRUE
  1663. sle_usual_query.Enabled = TRUE
  1664. cb_func.Enabled = TRUE
  1665. END IF
  1666. wf_lock_child()
  1667. //修改uc_taborder
  1668. IF dw_edit_mode THEN
  1669. dw_uc.TriggerEvent("ue_taborder")
  1670. IF dw_uc.ins_if_nomodify_uc_taborder THEN
  1671. Long ll_uc_int
  1672. FOR ll_uc_int = 1 TO uc_column_int
  1673. dw_uc.SetTabOrder (ll_uc_int,ll_uc_int*10 )
  1674. NEXT
  1675. END IF
  1676. ELSE
  1677. dw_uc.TriggerEvent("ue_taborder_cancel")
  1678. END IF
  1679. cb_edit.of_init_draw()
  1680. cb_add.of_init_draw()
  1681. cb_edit.of_paint()
  1682. cb_add.of_paint()
  1683. cb_add.TriggerEvent('ue_textchange')
  1684. cb_edit.TriggerEvent('ue_textchange')
  1685. ll_lastrow = 0
  1686. THIS.TriggerEvent('refresh_interface')
  1687. RETURN 1
  1688. end function
  1689. on w_inware_cp.create
  1690. int iCurrent
  1691. call super::create
  1692. this.ddlb_status=create ddlb_status
  1693. this.st_2=create st_2
  1694. this.st_3=create st_3
  1695. this.ddlb_scid=create ddlb_scid
  1696. this.cb_1=create cb_1
  1697. this.cbx_packqty_cmpl=create cbx_packqty_cmpl
  1698. this.cb_new_scanbill=create cb_new_scanbill
  1699. iCurrent=UpperBound(this.Control)
  1700. this.Control[iCurrent+1]=this.ddlb_status
  1701. this.Control[iCurrent+2]=this.st_2
  1702. this.Control[iCurrent+3]=this.st_3
  1703. this.Control[iCurrent+4]=this.ddlb_scid
  1704. this.Control[iCurrent+5]=this.cb_1
  1705. this.Control[iCurrent+6]=this.cbx_packqty_cmpl
  1706. this.Control[iCurrent+7]=this.cb_new_scanbill
  1707. end on
  1708. on w_inware_cp.destroy
  1709. call super::destroy
  1710. destroy(this.ddlb_status)
  1711. destroy(this.st_2)
  1712. destroy(this.st_3)
  1713. destroy(this.ddlb_scid)
  1714. destroy(this.cb_1)
  1715. destroy(this.cbx_packqty_cmpl)
  1716. destroy(this.cb_new_scanbill)
  1717. end on
  1718. event open;THIS.TriggerEvent('ue_before_open')
  1719. wf_movetocenter()
  1720. ds_copy_bill = CREATE datastore
  1721. ds_copy_bill.DataObject = dw_child.dataobject
  1722. ds_copy_bill.SetTransObject(sqlca)
  1723. OLD_TITLE = THIS.Title
  1724. s_tran = Message.PowerObjectParm
  1725. IF NOT IsNull(s_tran) THEN
  1726. retrieve_all = s_tran.if_retrieve_all
  1727. mode = s_tran.work_mode
  1728. arg_pkid = s_tran.arg_pkid
  1729. arg_string_code = s_tran.arg_string_code
  1730. if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效
  1731. ds_share = s_tran.ds_share
  1732. END IF
  1733. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  1734. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  1735. dw_pageretr.SetTransObject (sqlca)
  1736. pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字
  1737. ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select")
  1738. //====================================================================
  1739. // Script - w_inware_cp inherited from w_publ_1ton_share_detail for open
  1740. // Reason:
  1741. //--------------------------------------------------------------------
  1742. // Modified By: yyx Date: 2003.12.01
  1743. //--------------------------------------------------------------------
  1744. ori_oldselect = f_modify_selectstr(ori_oldselect)//只显示所管的仓库单据
  1745. //====================================================================
  1746. ls_newselect = ori_oldselect
  1747. ds_curquery = CREATE DATASTORE
  1748. ds_curquery.DataObject = 'd_extr_find'
  1749. ds_curquery.SetTransObject (sqlca)
  1750. wf_editindex_lockf()
  1751. IF s_tran.d_long = 2 THEN
  1752. cur_scid = s_tran.c_long
  1753. Int li_item
  1754. li_item = ddlb_scid.FindItem(s_tran.d_string,0)
  1755. IF li_item > 0 THEN
  1756. ddlb_scid.SelectItem(li_item)
  1757. END IF
  1758. END IF
  1759. sle_usual_query.Text = Trim(arg_string_code)
  1760. IF NOT retrieve_all THEN
  1761. THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve
  1762. ELSE
  1763. IF if_sharedata THEN
  1764. ds_share.ShareData(dw_pageretr)
  1765. ELSE
  1766. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  1767. THIS.TriggerEvent('RETRIEVE_pageretr')
  1768. END IF
  1769. END IF
  1770. IF retrieve_all THEN
  1771. THIS.TriggerEvent("ue_usual_query_filt")
  1772. END IF
  1773. uc_column_int = 8 //uc dw前5列可以编辑
  1774. child_column_int = 20//子dw前20列可以编辑
  1775. uo_ware = CREATE uo_inware_cp
  1776. uo_ware.commit_transaction = sqlca
  1777. s_hide_col s_col
  1778. s_col.col_1 = 'u_inwaremx_fprice'
  1779. s_col.col_2 = 'amt'
  1780. s_col.col_3 = 'u_mtrldef_lmsaleprice'
  1781. s_col.col_4 = 'lmsaleamt'
  1782. s_col.col_5 = 'u_inwaremx_cost'
  1783. s_col.col_6 = 'u_inwaremx_costamt'
  1784. //f_hide_col(121,dw_child,s_col)
  1785. f_hide_col(1449,dw_child,s_col)
  1786. s_hide_col s_col_mtrlsectype
  1787. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  1788. f_hide_col(1308,dw_child,s_col_mtrlsectype)
  1789. s_hide_col s_col_zxmtrlmode
  1790. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  1791. f_hide_col(1309,dw_child,s_col_zxmtrlmode)
  1792. s_hide_col s_col_cusname
  1793. s_col_cusname.col_1 = 'u_cust_name'
  1794. f_hide_col(1306,dw_child,s_col_cusname)
  1795. end event
  1796. event close;call super::close;destroy uo_ware
  1797. wf_del_tempfilepathname()
  1798. end event
  1799. event refresh_interface;call super::refresh_interface;wf_flagstatus_rf()
  1800. ddlb_status.Enabled = Not dw_edit_mode
  1801. IF dw_edit_mode THEN
  1802. ddlb_scid.Enabled = False
  1803. ELSE
  1804. IF sys_scid > 0 THEN
  1805. ddlb_scid.Enabled = False
  1806. ELSE
  1807. ddlb_scid.Enabled = True
  1808. END IF
  1809. END IF
  1810. IF Not sys_power_issuper And f_power_ind(943) THEN
  1811. dw_child.Modify('u_inwaremx_fprice.Protect = 1')
  1812. ELSE
  1813. dw_child.Modify('u_inwaremx_fprice.Protect = 0')
  1814. END IF
  1815. IF not sys_power_issuper and (f_power_ind(1711) or f_power_ind(1717) ) THEN
  1816. dw_child.Modify('u_inwaremx_status.protect="0~tif (u_inwaremx_ifrel =1 , 1 ,0)" ~n u_inwaremx_woodcode.protect="0~tif (u_inwaremx_ifrel =1 , 1 ,0) " ~n u_inwaremx_pcode.protect="0~tif (u_inwaremx_ifrel =1 , 1 ,0) "')
  1817. ELSE
  1818. dw_child.Modify('u_inwaremx_status.protect=0 ~n u_inwaremx_woodcode.protect=0 ~n u_inwaremx_pcode.protect=0 ')
  1819. END IF
  1820. end event
  1821. event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid,ll_scid
  1822. row = dw_pageretr.GetRow()
  1823. IF row > 0 THEN
  1824. ll_scid = dw_pageretr.Object.u_inware_scid[row]
  1825. uc_relid = dw_pageretr.Object.inwareid[row]
  1826. dw_child.SetRedraw (FALSE)
  1827. dw_child.Retrieve(uc_relid,ll_scid)
  1828. dw_child.SetRedraw (TRUE)
  1829. ELSE
  1830. dw_child.Reset()
  1831. END IF
  1832. end event
  1833. event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  1834. boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  1835. cb_nextpage_enabled=cb_nextpage.enabled
  1836. cb_retrieveall_enabled=cb_retrieveall.enabled
  1837. cb_func_enabled=cb_func.enabled
  1838. cb_nextpage.enabled=false
  1839. cb_retrieveall.enabled=false
  1840. cb_func.enabled=false
  1841. //只显未自已管的仓库
  1842. datawindowchild childdw
  1843. string new_sqlstr,modify_str
  1844. dw_uc.SetTransObject (sqlca)
  1845. dw_uc.getchild("storageid",childdw)
  1846. childdw.SetTransObject (sqlca)
  1847. new_sqlstr=childdw.Describe("DataWindow.Table.Select")
  1848. if len(ol_cdw_str) = 0 then ol_cdw_str = new_sqlstr
  1849. new_sqlstr=f_modify_selectstr(ol_cdw_str)
  1850. modify_str="DataWindow.Table.Select='" + new_sqlstr +"'"
  1851. childdw.modify ( modify_str )
  1852. if childdw.retrieve(cur_scid) = 0 then
  1853. childdw.InsertRow(0)
  1854. END IF
  1855. dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数
  1856. dw_pageretr.Retrieve(cur_scid_arr,sys_user_storageid,cur_flag)
  1857. IF dw_pageretr.RowCount() > 0 THEN
  1858. dw_pageretr.SetRow(1)
  1859. dw_pageretr.triggerevent(rowfocuschanged!)
  1860. end if
  1861. this.triggerevent('retrieve_childdw')
  1862. cb_nextpage.enabled=cb_nextpage_enabled
  1863. cb_retrieveall.enabled=cb_retrieveall_enabled
  1864. cb_func.enabled=cb_func_enabled
  1865. end event
  1866. event ue_usual_query_filt;call super::ue_usual_query_filt;string ls_querystrpart=''
  1867. ls_newselect=lower(ori_oldselect)
  1868. if trim(sle_usual_query.text)<>'' then
  1869. if pos(trim(sle_usual_query.text),'%')=0 then
  1870. ls_querystrpart="(inwarecode like '%"+trim(sle_usual_query.text)+"%')"
  1871. else
  1872. ls_querystrpart="(inwarecode like '"+trim(sle_usual_query.text)+"')"
  1873. end if
  1874. if Pos(ls_newselect," where ") <> 0 then
  1875. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  1876. else
  1877. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  1878. end if
  1879. end if
  1880. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  1881. this.triggerevent('retrieve_pageretr')
  1882. end event
  1883. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  1884. ls_newselect=lower(ori_oldselect)
  1885. if trim(sle_usual_query.text)<>'' then
  1886. if pos(trim(sle_usual_query.text),'%')=0 then
  1887. ls_querystrpart="(u_inware.inwarecode like '%"+trim(sle_usual_query.text)+"%')"
  1888. else
  1889. ls_querystrpart="(u_inware.inwarecode like '"+trim(sle_usual_query.text)+"')"
  1890. end if
  1891. if Pos(ls_newselect," where ") <> 0 then
  1892. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  1893. else
  1894. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  1895. end if
  1896. end if
  1897. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  1898. this.triggerevent('retrieve_pageretr')
  1899. end event
  1900. event ue_f8;call super::ue_f8;//用于选择明细内容,被f8[默认]\dw_child.doubleclicked调用
  1901. IF Not dw_edit_mode THEN RETURN
  1902. Long child_row
  1903. Long ll_storageid = 0
  1904. Decimal lde_planprice
  1905. String ls_plancode
  1906. String ls_con_name
  1907. child_row = dw_child.GetRow()
  1908. ll_storageid = dw_uc.Object.storageid[dw_uc.GetRow()]
  1909. IF ll_storageid = 0 Or IsNull(ll_storageid) THEN
  1910. MessageBox('提示','请先选择仓库',information!,ok!)
  1911. RETURN
  1912. END IF
  1913. IF Not IsValid(w_mtrldef_edit) THEN
  1914. s_edit_index_tran s_ch_tran //传递参数使用
  1915. s_ch_tran.if_retrieve_all = False //是否一次retrieve所有行
  1916. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  1917. s_ch_tran.arg_pkid = 0 //目标定位pkid (备用)
  1918. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1919. s_ch_tran.if_select_all = True
  1920. s_ch_tran.b_long = 0
  1921. s_ch_tran.c_long = ll_storageid
  1922. Long chc = 1,ls_j
  1923. dw_child.AcceptText()
  1924. IF dw_child.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  1925. OpenWithParm(w_mtrldef_edit,s_ch_tran)
  1926. s_mtrldef_array s_inscust
  1927. s_inscust = Message.PowerObjectParm
  1928. FOR ls_j = 1 To UpperBound(s_inscust.mtrlid)
  1929. IF s_inscust.mtrlid[ls_j] > 0 THEN
  1930. IF dw_child.GetRow() > 0 THEN
  1931. IF dw_child.Object.u_inwaremx_mtrlid[child_row] <> 0 THEN
  1932. child_row = dw_child.InsertRow (0)
  1933. ELSE
  1934. child_row = dw_child.GetRow()
  1935. END IF
  1936. ELSE
  1937. child_row = dw_child.InsertRow (0)
  1938. END IF
  1939. dw_child.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j]
  1940. dw_child.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j]
  1941. dw_child.Object.u_inwaremx_mtrlid[child_row] = s_inscust.mtrlid[ls_j]
  1942. // IF sys_option_planprice_configure = 0 THEN
  1943. //dw_child.Object.u_inwaremx_fprice[child_row] = s_inscust.planprice[ls_j]
  1944. lde_planprice = f_get_planprice(s_inscust.mtrlid[ls_j], s_inscust.status[ls_j], s_inscust.woodcode[ls_j], s_inscust.pcode[ls_j], True)
  1945. dw_child.Object.u_inwaremx_fprice[child_row] = lde_planprice //s_rqmtrlI.fprice[li]
  1946. // END IF
  1947. dw_child.Object.u_mtrldef_mtrlname[child_row] = s_inscust.mtrlname[ls_j]
  1948. dw_child.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j]
  1949. dw_child.Object.u_mtrldef_prdpackcode[child_row] = s_inscust.prdpackcode[ls_j]
  1950. dw_child.Object.u_mtrldef_packqty[child_row] = s_inscust.packqty[ls_j]
  1951. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j]
  1952. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j]
  1953. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j]
  1954. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j]
  1955. dw_child.Object.u_mtrldef_mtrltype[child_row] = s_inscust.mtrltype[ls_j]
  1956. dw_child.Object.u_mtrldef_handtype[child_row] = s_inscust.handtype[ls_j]
  1957. dw_child.Object.u_mtrldef_statusflag[child_row] = s_inscust.statusflag[ls_j]
  1958. dw_child.Object.u_mtrldef_woodcodeflag[child_row] = s_inscust.woodcodeflag[ls_j]
  1959. dw_child.Object.u_mtrldef_pcodeflag[child_row] = s_inscust.pcodeflag[ls_j]
  1960. dw_child.Object.u_inwaremx_status[child_row] = s_inscust.status[ls_j]
  1961. dw_child.Object.u_inwaremx_woodcode[child_row] = s_inscust.woodcode[ls_j]
  1962. dw_child.Object.u_inwaremx_pcode[child_row] = s_inscust.pcode[ls_j]
  1963. dw_child.Object.u_mtrldef_mtrlengname[child_row] = s_inscust.mtrlengname[ls_j]
  1964. //3个属性默认值
  1965. String ls_status_default,ls_woodcode_default,ls_pcode_default
  1966. ls_status_default = ''
  1967. ls_woodcode_default = ''
  1968. ls_pcode_default = ''
  1969. SELECT status_default,woodcode_default,pcode_default Into :ls_status_default,:ls_woodcode_default,:ls_pcode_default From u_mtrldef Where mtrlid = :s_inscust.mtrlid[ls_j];
  1970. IF Len(ls_status_default) > 0 THEN
  1971. dw_child.Object.u_inwaremx_status[child_row] = Trim(ls_status_default)
  1972. END IF
  1973. IF Len(ls_woodcode_default) > 0 THEN
  1974. dw_child.Object.u_inwaremx_woodcode[child_row] = Trim(ls_woodcode_default)
  1975. END IF
  1976. IF Len(ls_pcode_default) > 0 THEN
  1977. dw_child.Object.u_inwaremx_pcode[child_row] = Trim(ls_pcode_default)
  1978. END IF
  1979. Decimal dec_lmbuyprice //设定购价
  1980. dec_lmbuyprice = 0
  1981. SELECT lmbuyprice Into :dec_lmbuyprice From u_mtrldef Where mtrlid = : s_inscust.mtrlid[ls_j];
  1982. dw_child.Object.u_mtrldef_lmbuyprice[child_row] = dec_lmbuyprice
  1983. IF s_inscust.statusflag[ls_j] = 2 THEN
  1984. SELECT name
  1985. INTO :ls_con_name
  1986. FROM u_mtrl_configure
  1987. Where u_mtrl_configure.mtrlid = :s_inscust.mtrlid[ls_j] And u_mtrl_configure.DefaultPZ = 1;
  1988. dw_child.Object.u_inwaremx_status[child_row] = ls_con_name
  1989. END IF
  1990. ls_plancode = f_get_newplancode(ll_storageid)
  1991. dw_child.Object.u_inwaremx_plancode[child_row] = ls_plancode
  1992. dw_child.SetColumn('u_inwaremx_qty')
  1993. END IF
  1994. NEXT
  1995. dw_child.SetFocus()
  1996. END IF
  1997. This.TriggerEvent('ue_allowedit')
  1998. end event
  1999. event ue_viewprint;call super::ue_viewprint;IF NOT (f_power_ind(469) OR f_power_ind(1057)) THEN
  2000. MessageBox('提示','你没有使用权限!',information!,ok!)
  2001. RETURN
  2002. END IF
  2003. Long LS_ROW
  2004. LS_ROW = dw_pageretr.GetRow()
  2005. IF LS_ROW <= 0 THEN
  2006. MessageBox('提示','没有打印目标单据!',information!,ok!)
  2007. RETURN
  2008. END IF
  2009. S_print_MSG LS_PRMSG
  2010. IF ls_newname <> '' THEN
  2011. IF li_auditprint = 1 THEN
  2012. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  2013. MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!)
  2014. RETURN
  2015. END IF
  2016. END IF
  2017. LS_PRMSG.obj_dwNAME = ls_newname
  2018. ELSE
  2019. LS_PRMSG.obj_dwNAME = 'dw_rp_inware_cp_edit'
  2020. END IF
  2021. LS_PRMSG.TAG_TEXT = '生产进仓单'
  2022. LS_PRMSG.FILTER_STRING = ''
  2023. LS_PRMSG.retr_pram_falg = 15
  2024. LS_PRMSG.PAGECH_FLAG = 0
  2025. LS_PRMSG.retr_scid = dw_pageretr.Object.u_inware_scid[LS_ROW]
  2026. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.inwareid[LS_ROW]
  2027. LS_PRMSG.rowcnt = dw_child.rowcount()
  2028. IF ifpic = 1 THEN
  2029. String ls_msg
  2030. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  2031. MessageBox('提示','下载图片失败!',information!,OK!)
  2032. RETURN
  2033. END IF
  2034. END IF
  2035. OpenWithParm(w_publ_preview,LS_PRMSG)
  2036. IF ifpic = 1 THEN
  2037. Long li
  2038. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  2039. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  2040. FileDelete(LS_PRMSG.s_pic.path[li])
  2041. END IF
  2042. NEXT
  2043. END IF
  2044. //**更新打印次料
  2045. string arg_msg
  2046. printnum = message.doubleparm
  2047. f_update_printnum('u_inware',printnum,dw_pageretr.Object.u_inware_scid[LS_ROW],dw_pageretr.object.inwareid[LS_ROW],'','',arg_msg,true)
  2048. wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[LS_ROW],dw_pageretr.Object.inwareid[LS_ROW])
  2049. end event
  2050. event ue_print;call super::ue_print;IF NOT (f_power_ind(469) OR f_power_ind(1057)) THEN
  2051. MessageBox('提示','你没有使用权限!',information!,ok!)
  2052. RETURN
  2053. END IF
  2054. //--直接打印
  2055. uo_print_preview uo_print
  2056. S_print_MSG LS_PRMSG
  2057. IF dw_pageretr.RowCount() = 0 THEN
  2058. MessageBox('提示','没有可打印的单据!',information!,ok!)
  2059. RETURN
  2060. END IF
  2061. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  2062. IF ls_newname <> '' THEN
  2063. IF li_auditprint = 1 THEN
  2064. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  2065. MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!)
  2066. RETURN
  2067. END IF
  2068. END IF
  2069. LS_PRMSG.obj_dwNAME = ls_newname
  2070. ELSE
  2071. LS_PRMSG.obj_dwNAME = 'dw_rp_inware_cp_edit'
  2072. END IF
  2073. LS_PRMSG.retr_pram_falg = 15
  2074. LS_PRMSG.TAG_TEXT = '成品进仓单'
  2075. LS_PRMSG.FILTER_STRING = ''
  2076. LS_PRMSG.PAGECH_FLAG = 0
  2077. LS_PRMSG.retr_scid = dw_pageretr.Object.u_inware_scid[dw_pageretr.GetRow()]
  2078. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.inwareid[dw_pageretr.GetRow()]
  2079. LS_PRMSG.rowcnt = dw_child.RowCount()
  2080. IF ifpic = 1 THEN
  2081. String ls_msg
  2082. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  2083. MessageBox('提示','下载图片失败!',information!,OK!)
  2084. RETURN
  2085. END IF
  2086. END IF
  2087. uo_print.FACT_PRINT_MSG = LS_PRMSG
  2088. String arg_msg
  2089. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  2090. MessageBox("错误",arg_msg,stopsign!,ok!)
  2091. RETURN
  2092. END IF
  2093. uo_print.ds_print()
  2094. IF ifpic = 1 THEN
  2095. Long li
  2096. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  2097. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  2098. FileDelete(LS_PRMSG.s_pic.path[li])
  2099. END IF
  2100. NEXT
  2101. END IF
  2102. //**更新打印次料
  2103. f_update_printnum('u_inware',1,dw_pageretr.Object.u_inware_scid[dw_pageretr.GetRow()],dw_pageretr.object.inwareid[dw_pageretr.GetRow()],'','',arg_msg,true)
  2104. wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[dw_pageretr.GetRow()],dw_pageretr.Object.inwareid[dw_pageretr.GetRow()])
  2105. end event
  2106. event ue_f9;call super::ue_f9;IF Not dw_edit_mode THEN RETURN
  2107. Long child_row
  2108. dw_child.AcceptText()
  2109. child_row = dw_child.GetRow()
  2110. IF child_row <= 0 THEN RETURN
  2111. IF Not IsValid(w_cust_ch) THEN
  2112. s_edit_index_tran s_ch_tran //传递参数使用
  2113. s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行
  2114. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  2115. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  2116. //查询列(物料编码)部分内容,用于初步筛选
  2117. s_ch_tran.arg_string_code = Upper(Trim(dw_child.Object.u_cust_cuscode[dw_child.GetRow()]))
  2118. OpenWithParm(w_cust_ch,s_ch_tran) //调用
  2119. s_custom S_INSCUST
  2120. S_INSCUST = Message.PowerObjectParm //接受返回结构
  2121. IF S_INSCUST.cusid > 0 THEN //正常返回值则可以取以下值
  2122. dw_child.SetRedraw(False)
  2123. dw_child.Object.u_inwaremx_sptid_cusid[child_row] = S_INSCUST.cusid
  2124. dw_child.Object.u_cust_name[child_row] = S_INSCUST.Name
  2125. dw_child.Object.u_cust_cuscode[child_row] = S_INSCUST.cuscode
  2126. dw_child.Object.u_cust_custype[child_row] = S_INSCUST.custype
  2127. dw_child.SetRedraw(True)
  2128. dw_child.SetColumn('u_inwaremx_qty')
  2129. END IF
  2130. END IF
  2131. end event
  2132. event ue_f10;call super::ue_f10;IF NOT dw_edit_mode THEN RETURN
  2133. Long child_row
  2134. String ls_colorname
  2135. child_row = dw_child.GetRow()
  2136. IF child_row <= 0 THEN RETURN
  2137. IF NOT IsValid(w_color_edit) THEN
  2138. Open(w_color_edit)
  2139. ls_colorname = Message.StringParm
  2140. IF ls_colorname = '' THEN RETURN
  2141. dw_child.Object.u_inwaremx_status[child_row] = ls_colorname
  2142. dw_child.SetFocus()
  2143. END IF
  2144. end event
  2145. event ue_addzy;call super::ue_addzy;
  2146. IF dw_edit_mode THEN
  2147. MessageBox('提示',"编辑状态下不可以使用!",information!,ok!)
  2148. return
  2149. END IF
  2150. IF NOT (f_power_ind(799) OR f_power_ind(1059)) THEN
  2151. MessageBox('提示','你没有使用权限!',information!,ok!)
  2152. RETURN
  2153. END IF
  2154. string arg_msg='',LS_STR
  2155. long uc_row
  2156. s_inputbox S_SREU
  2157. uc_row=dw_pageretr.getrow()
  2158. if uc_row<=0 then
  2159. messagebox('提示','请选定当前目标单据!',information!,ok!)
  2160. return
  2161. end if
  2162. S_SREU.TITLE='请输入要补充到备注的内容'
  2163. S_SREU.OLD_TEXT=''
  2164. openwithparm(w_inputbox,S_SREU)
  2165. LS_STR=Message.StringParm
  2166. if trim(LS_STR)='' or isnull(LS_STR) then return
  2167. if uo_ware.add_dscrp(dw_pageretr.object.u_inware_scid[uc_row],dw_pageretr.object.inwareid[uc_row],LS_STR,arg_msg)=0 then
  2168. messagebox('错误',arg_msg,stopsign!,ok!)
  2169. return
  2170. else
  2171. messagebox('提示','添加备注操作成功!',information!,ok!)
  2172. wf_refresh_curuc(dw_pageretr.object.u_inware_scid[uc_row],dw_pageretr.object.inwareid[uc_row])
  2173. end if
  2174. end event
  2175. event ue_f7;call super::ue_f7;IF NOT dw_edit_mode THEN RETURN
  2176. Long ls_storageid
  2177. Long ls_taskid
  2178. String ls_taskcode
  2179. ls_storageid = dw_uc.Object.storageid[dw_uc.GetRow()]
  2180. IF ls_storageid = 0 OR IsNull(ls_storageid) THEN
  2181. MessageBox('提示','请先选择仓库',information!,ok!)
  2182. RETURN
  2183. END IF
  2184. s_saletask_find s_find
  2185. s_find.scid = cur_scid
  2186. s_find.areaid = sys_areaid
  2187. IF NOT IsValid(w_saletask_ware_ch) THEN
  2188. s_saletask_ch s_saletask
  2189. OpenWithParm(w_saletask_ware_ch,s_find)
  2190. s_saletask = Message.PowerObjectParm
  2191. IF s_saletask.taskid > 0 THEN
  2192. ls_taskid = s_saletask.taskid
  2193. ls_taskcode = s_saletask.taskcode
  2194. int ll_row
  2195. ll_row = dw_uc.GetRow()
  2196. if s_saletask.relcode<>'' then
  2197. dw_uc.object.part[ll_row] = s_saletask.relcode
  2198. else
  2199. dw_uc.object.part[ll_row] = s_saletask.taskcode
  2200. end if
  2201. String errmsg = ''
  2202. wf_autoaddmx(cur_scid,ls_taskid,ls_taskcode,ls_storageid,s_saletask.cusid,errmsg)
  2203. // dw_uc.SetColumn("sptname")
  2204. dw_uc.SetRedraw(TRUE)
  2205. END IF
  2206. END IF
  2207. this.triggerevent('ue_allowedit')
  2208. //THIS.Enabled = TRUE
  2209. end event
  2210. event ue_f11;call super::ue_f11;IF NOT dw_edit_mode THEN RETURN
  2211. Long child_row
  2212. Int if_addmxdscrp
  2213. String ls_mxdscrp
  2214. s_addqty_input s_input
  2215. dw_child.AcceptText( )
  2216. child_row = dw_child.GetRow()
  2217. IF child_row <= 0 THEN RETURN
  2218. IF dw_child.Object.u_inwaremx_mtrlid[child_row] <= 0 THEN RETURN
  2219. ls_mxdscrp = dw_child.Object.u_inwaremx_mxdscrp[child_row]
  2220. IF NOT IsValid(w_addqty_input) THEN
  2221. OpenWithParm(w_addqty_input,ls_mxdscrp)
  2222. s_input = Message.PowerObjectParm
  2223. IF s_input.addqty = -1 THEN RETURN
  2224. dw_child.Object.u_inwaremx_addqty[child_row] = s_input.addqty
  2225. IF s_input.addqtystr <> '' THEN
  2226. dw_child.Object.u_inwaremx_mxdscrp[child_row] = s_input.addqtystr
  2227. END IF
  2228. IF s_input.formula <> '' THEN
  2229. dw_child.Object.u_inwaremx_formula[child_row] = s_input.formula
  2230. END IF
  2231. IF s_input.flag = 1 THEN
  2232. dw_child.Object.u_inwaremx_qty[child_row] = s_input.qty
  2233. END IF
  2234. END IF
  2235. end event
  2236. event ue_rpt_print;call super::ue_rpt_print;IF NOT (f_power_ind(469) OR f_power_ind(1057)) THEN
  2237. MessageBox('提示','你没有使用权限!',information!,ok!)
  2238. RETURN
  2239. END IF
  2240. Long row,uc_relid,ll_scid
  2241. row = dw_pageretr.GetRow()
  2242. IF row = 0 THEN RETURN
  2243. uo_rpt_print_preview uo_print
  2244. S_rpt_print_MSG LS_PRMSG
  2245. IF dw_pageretr.RowCount() = 0 THEN
  2246. MessageBox('提示','没有可打印的单据!',information!,ok!)
  2247. RETURN
  2248. END IF
  2249. IF ls_rpname = '' THEN RETURN
  2250. IF li_auditprint = 1 THEN
  2251. IF dw_pageretr.Object.flag[row] = 0 THEN
  2252. MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!)
  2253. RETURN
  2254. END IF
  2255. END IF
  2256. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  2257. LS_PRMSG.retr_pram_falg = 15
  2258. LS_PRMSG.TAG_TEXT = THIS.Title
  2259. LS_PRMSG.rpname = ls_rpname
  2260. LS_PRMSG.FILTER_STRING = ''
  2261. LS_PRMSG.PAGECH_FLAG = 0
  2262. LS_PRMSG.rpid = ls_msgprintid_rpt
  2263. LS_PRMSG.retr_scid = dw_pageretr.Object.u_inware_scid[row]
  2264. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.inwareid[row]
  2265. LS_PRMSG.rowcnt = dw_child.RowCount()
  2266. uo_print.FACT_PRINT_MSG = LS_PRMSG
  2267. String arg_msg
  2268. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  2269. MessageBox("错误",arg_msg,stopsign!,ok!)
  2270. RETURN
  2271. END IF
  2272. uo_print.ds_print()
  2273. end event
  2274. event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF NOT (f_power_ind(469) OR f_power_ind(1057)) THEN
  2275. MessageBox('提示','你没有使用权限!',information!,ok!)
  2276. RETURN
  2277. END IF
  2278. Long row,uc_relid,ll_scid
  2279. row = dw_pageretr.GetRow()
  2280. IF row = 0 THEN RETURN
  2281. IF ls_rpname = '' THEN RETURN
  2282. IF li_auditprint = 1 THEN
  2283. IF dw_pageretr.Object.flag[row] = 0 THEN
  2284. MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!)
  2285. RETURN
  2286. END IF
  2287. END IF
  2288. s_rpt_print_msg s_print
  2289. s_print.retr_pram_falg = 15
  2290. s_print.rpid = ls_msgprintid_rpt
  2291. s_print.retr_flag = TRUE
  2292. s_print.tag_text = THIS.Title
  2293. s_print.rpname = ls_rpname
  2294. s_print.retr_scid = dw_pageretr.Object.u_inware_scid[row]
  2295. s_print.retr_pramnmb = dw_pageretr.Object.inwareid[row]
  2296. s_print.rowcnt = dw_child.RowCount()
  2297. OpenWithParm(w_rpt_preview,s_print)
  2298. end event
  2299. event ue_f6;call super::ue_f6;IF NOT dw_edit_mode THEN RETURN
  2300. Long ls_storageid
  2301. Long ls_taskid
  2302. Long ls_cusid
  2303. String ls_taskcode
  2304. String errmsg
  2305. dw_uc.AcceptText()
  2306. IF dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  2307. ls_storageid = dw_uc.Object.storageid[dw_uc.GetRow()]
  2308. IF ls_storageid = 0 OR IsNull(ls_storageid) THEN
  2309. MessageBox('提示','请先选择仓库',information!,OK!)
  2310. RETURN
  2311. END IF
  2312. s_saletask_find s_find
  2313. s_find.scid = cur_scid
  2314. s_find.areaid = sys_areaid
  2315. //THIS.Enabled = FALSE
  2316. IF NOT IsValid(w_saletask_inware_ch) THEN
  2317. s_saletask_mtrl s_saletask
  2318. OpenWithParm(w_saletask_inware_ch,s_find)
  2319. s_saletask = Message.PowerObjectParm
  2320. IF UpperBound(s_saletask.taskid ) > 0 THEN
  2321. wf_autoaddmx_salemx(cur_scid,s_saletask,ls_storageid,errmsg)
  2322. dw_uc.SetColumn("inrep")
  2323. dw_uc.SetRedraw(TRUE)
  2324. END IF
  2325. END IF
  2326. //THIS.Enabled = TRUE
  2327. end event
  2328. type cb_func from w_publ_1ton_share_detail`cb_func within w_inware_cp
  2329. end type
  2330. type cb_exit from w_publ_1ton_share_detail`cb_exit within w_inware_cp
  2331. end type
  2332. type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_inware_cp
  2333. integer x = 178
  2334. integer width = 549
  2335. end type
  2336. type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_inware_cp
  2337. integer x = 3022
  2338. end type
  2339. type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_inware_cp
  2340. integer x = 2693
  2341. integer y = 48
  2342. integer width = 320
  2343. end type
  2344. type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_inware_cp
  2345. integer x = 2025
  2346. integer y = 300
  2347. integer width = 1527
  2348. integer height = 908
  2349. string dataobject = "dw_inware_cp_index"
  2350. end type
  2351. event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;
  2352. wf_check_billfj()
  2353. wf_flagstatus_rf()
  2354. end event
  2355. type st_1 from w_publ_1ton_share_detail`st_1 within w_inware_cp
  2356. integer x = 0
  2357. end type
  2358. type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_inware_cp
  2359. integer x = 3173
  2360. end type
  2361. type dw_uc from w_publ_1ton_share_detail`dw_uc within w_inware_cp
  2362. integer y = 300
  2363. integer width = 2021
  2364. integer height = 908
  2365. string dataobject = "dw_inware_cp_edit"
  2366. end type
  2367. event dw_uc::dwnkey;parent.triggerevent('user_key')
  2368. if key = KeyDownArrow! then return 1
  2369. if dw_edit_mode then
  2370. if dw_uc.GetColumnName ( )='dscrp' and key = KeyEnter! then
  2371. dw_child.setfocus()
  2372. dw_child.scrolltorow(1)
  2373. dw_child.SetColumn ('u_mtrldef_mtrlcode')
  2374. return 1
  2375. else
  2376. if key = KeyEnter! Then //
  2377. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2378. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2379. Return 1
  2380. end If
  2381. end if
  2382. end if
  2383. end event
  2384. event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN
  2385. IF dwo.Name = 'storageid' THEN
  2386. //wf_lock_plancode(long(data))
  2387. dw_child.Reset()
  2388. PARENT.TriggerEvent("insert_childrow")
  2389. END IF
  2390. end event
  2391. event dw_uc::doubleclicked;int i = 0
  2392. end event
  2393. event dw_uc::buttonclicked;call super::buttonclicked;
  2394. // parent.triggerevent('ue_f7')
  2395. //
  2396. //
  2397. IF dw_edit_mode THEN
  2398. IF dwo.Name = 'p_b' OR dwo.Name = 't_choicesaletask_t' THEN
  2399. PARENT.TriggerEvent('ue_f7')
  2400. ELSEIF dwo.Name = 'p_c' OR dwo.Name = 't_choicesaletaskmx_t' THEN
  2401. PARENT.TriggerEvent('ue_f6')
  2402. ELSEIF dwo.Name = 'p_1' OR dwo.Name = 't_2' THEN
  2403. PARENT.TriggerEvent('ue_getsaletask_sale')
  2404. END IF
  2405. END IF
  2406. end event
  2407. event dw_uc::clicked;call super::clicked;if dwo.name='p_b' or dwo.name='t_choicesaletask_t' then
  2408. parent.TRIGGEREVENT('ue_f7')
  2409. elseif dwo.name='p_c' or dwo.name='t_choicesaletaskmx_t' then
  2410. parent.TRIGGEREVENT('ue_f6')
  2411. ELSEIF dwo.Name = 'p_1' OR dwo.Name = 't_2' THEN
  2412. PARENT.TriggerEvent('ue_getsaletask_sale')
  2413. end if
  2414. end event
  2415. type gb_2 from w_publ_1ton_share_detail`gb_2 within w_inware_cp
  2416. end type
  2417. type dw_child from w_publ_1ton_share_detail`dw_child within w_inware_cp
  2418. integer y = 1220
  2419. integer width = 3552
  2420. integer height = 924
  2421. string dataobject = "dw_inwaremx_cp_edit"
  2422. end type
  2423. event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key')
  2424. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode
  2425. string ls_prdpackcode,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrltype
  2426. Long ls_mtrlid,ls_orderid,ll_storageid
  2427. String ls_order_relcode
  2428. Decimal lde_planprice,ls_packqty,ls_nofinishqty
  2429. s_mtrldef_array arg_s_mtrldef
  2430. Long li_statusflag
  2431. Long li_woodcodeflag
  2432. Long li_pcodeflag
  2433. Long child_row
  2434. Long ls_null
  2435. SetNull(ls_null)
  2436. IF dw_edit_mode THEN
  2437. dw_uc.AcceptText()
  2438. ll_storageid = dw_uc.Object.storageid[dw_uc.GetRow()]
  2439. IF ll_storageid = 0 OR IsNull(ll_storageid) THEN
  2440. MessageBox('提示','请先选择仓库',information!,ok!)
  2441. RETURN
  2442. END IF
  2443. ls_orderid = dw_uc.Object.u_inware_relid[dw_uc.GetRow()]
  2444. IF KeyDown(keydownarrow!) THEN
  2445. Long li_row
  2446. IF this.GetRow() = this.RowCount() THEN
  2447. PARENT.TriggerEvent("insert_childrow")
  2448. END IF
  2449. ELSE
  2450. IF KeyDown(keyenter!) AND KeyDown(keycontrol!) then
  2451. // IF this.GetColumnName() = 'u_inwaremx_status' or this.GetColumnName() = 'u_inwaremx_woodcode' or this.GetColumnName() = 'u_inwaremx_pcode' THEN
  2452. // child_row = this.GetRow()
  2453. // string ls_column
  2454. // ls_column = this.GetColumnName()
  2455. // this.selectrow(child_row,false)
  2456. // this.setrow(child_row+1)
  2457. // this.selectrow(child_row+1,true)
  2458. // this.setcolumn(ls_column)
  2459. // return 1
  2460. // end if
  2461. elseIF KeyDown(keyenter!) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN
  2462. IF this.GetColumnName() = 'u_mtrldef_mtrlcode' THEN
  2463. this.AcceptText()
  2464. child_row = this.GetRow()
  2465. ls_mtrlcode = this.Object.u_mtrldef_mtrlcode[child_row]
  2466. IF f_find_mtrl(ls_mtrlcode,ll_storageid,arg_s_mtrldef) = 0 THEN
  2467. PARENT.TriggerEvent('ue_f8')
  2468. RETURN 1
  2469. ELSE
  2470. ls_mtrlid = arg_s_mtrldef.mtrlid[1]
  2471. ls_mtrlcode = arg_s_mtrldef.mtrlcode[1]
  2472. ls_mtrlname = arg_s_mtrldef.mtrlname[1]
  2473. ls_unit = arg_s_mtrldef.unit[1]
  2474. ls_mtrlmode = arg_s_mtrldef.mtrlmode[1]
  2475. // ls_planprice = arg_s_mtrldef.planprice[1]
  2476. ls_mtrlsectype = arg_s_mtrldef.mtrlsectype[1]
  2477. ls_zxmtrlmode = arg_s_mtrldef.zxmtrlmode[1]
  2478. ls_mtrlsectype = arg_s_mtrldef.mtrlsectype[1]
  2479. ls_zxmtrlmode = arg_s_mtrldef.zxmtrlmode[1]
  2480. ls_mtrltype = arg_s_mtrldef.mtrltype[1]
  2481. li_statusflag = arg_s_mtrldef.statusflag[1]
  2482. li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
  2483. li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
  2484. END IF
  2485. this.Object.u_inwaremx_relid[child_row] = ls_orderid
  2486. this.Object.u_inwaremx_mtrlid[child_row] = ls_mtrlid
  2487. this.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  2488. this.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  2489. this.Object.u_mtrldef_unit[child_row] = ls_unit
  2490. // IF sys_option_planprice_configure = 0 THEN
  2491. // this.Object.u_inwaremx_fprice[child_row] = ls_planprice
  2492. lde_planprice = f_get_planprice(ls_mtrlid, arg_s_mtrldef.status[1],arg_s_mtrldef.woodcode[1],arg_s_mtrldef.pcode[1], true)
  2493. this.Object.u_inwaremx_fprice[child_row] = lde_planprice //s_rqmtrlI.fprice[li]
  2494. // END IF
  2495. this.Object.u_mtrldef_prdpackcode[child_row] = ls_prdpackcode
  2496. this.Object.u_mtrldef_packqty[child_row] = ls_packqty
  2497. this.Object.u_inwaremx_qty[child_row] = ls_nofinishqty
  2498. this.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  2499. this.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  2500. this.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  2501. this.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype
  2502. this.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  2503. this.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  2504. this.Object.u_mtrldef_statusflag[child_row] = li_statusflag
  2505. this.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag
  2506. this.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag
  2507. this.Object.u_inwaremx_status[child_row] = arg_s_mtrldef.status[1]
  2508. this.Object.u_inwaremx_woodcode[child_row] = arg_s_mtrldef.woodcode[1]
  2509. this.Object.u_inwaremx_pcode[child_row] = arg_s_mtrldef.pcode[1]
  2510. string ls_plancode
  2511. ls_plancode = f_get_newplancode(ll_storageid)
  2512. this.Object.u_inwaremx_plancode[child_row] = ls_plancode
  2513. parent.triggerevent('ue_allowedit')
  2514. wf_find_cust(child_row,cur_scid,ls_orderid)
  2515. IF Key = keyenter! THEN
  2516. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2517. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2518. RETURN 1
  2519. END IF
  2520. // ELSEIF this.GetColumnName( ) = 'u_inwaremx_plancode' AND this.GetRow() = this.RowCount() THEN
  2521. //
  2522. // IF Key = keyenter! THEN
  2523. // keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2524. // keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2525. // RETURN 1
  2526. // END IF
  2527. ELSEIF this.GetColumnName() = 'u_cust_cuscode' THEN
  2528. this.AcceptText()
  2529. child_row = this.GetRow()
  2530. IF child_row <= 0 THEN RETURN 1
  2531. String ls_cuscode,ls_cusname
  2532. Long li_cusid
  2533. ls_cuscode = this.Object.u_cust_cuscode[child_row]
  2534. SELECT cusid,name INTO :li_cusid,:ls_cusname
  2535. FROM u_cust
  2536. Where cuscode = :ls_cuscode;
  2537. IF sqlca.SQLCode <> 0 THEN
  2538. PARENT.TriggerEvent('ue_f9')
  2539. RETURN 1
  2540. END IF
  2541. this.Object.u_cust_name[child_row] = ls_cusname
  2542. this.Object.u_inwaremx_sptid_cusid[child_row] = li_cusid
  2543. IF Key = keyenter! THEN
  2544. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2545. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2546. RETURN 1
  2547. // PARENT.TriggerEvent("insert_childrow")
  2548. // RETURN 1
  2549. END IF
  2550. ELSE
  2551. IF Key = keyenter! THEN
  2552. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2553. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2554. RETURN 1
  2555. END IF
  2556. END IF
  2557. END IF
  2558. END IF
  2559. END IF
  2560. end event
  2561. event dw_child::itemchanged;call super::itemchanged;if not dw_edit_mode then return
  2562. if dwo.name = 'if_mtrlware' then
  2563. this.accepttext()
  2564. if this.object.if_mtrlware[row] = 1 then
  2565. dw_child.object.u_inwaremx_sptid_cusid[row] = 0
  2566. dw_child.object.u_cust_cuscode[row] = ''
  2567. dw_child.object.u_cust_name[row] = ''
  2568. end if
  2569. ELSEIF dwo.Name = 'u_inwaremx_packqty' THEN
  2570. this.accepttext()
  2571. Long ll_mtrlid
  2572. Decimal lde_packqty_single, lde_packqty, lde_rate
  2573. IF ii_packqty_cmpl = 1 THEN
  2574. ll_mtrlid = This.Object.u_inwaremx_mtrlid[row]
  2575. lde_packqty_single = f_get_packqty(ll_mtrlid)
  2576. lde_packqty = This.Object.u_inwaremx_packqty[row]
  2577. //lde_rate = This.Object.u_inwaremx_rate[row]
  2578. //if lde_rate = 0 then lde_rate = 1
  2579. This.Object.u_inwaremx_qty[row] = lde_packqty * lde_packqty_single
  2580. //This.Object.u_inwaremx_uqty[row] = lde_packqty * lde_packqty_single / lde_rate
  2581. //This.Object.u_inwaremx_buyqty[row] = lde_packqty * lde_packqty_single / lde_rate
  2582. END IF
  2583. end if
  2584. end event
  2585. event dw_child::doubleclicked;
  2586. string ls_text
  2587. IF dwo.Name = 'u_inwaremx_mxdscrp' THEN
  2588. PARENT.TriggerEvent('ue_view_mxdscrp')
  2589. RETURN
  2590. ELSEIF dwo.Name = 'u_inwaremx_mxdscrp2' THEN
  2591. PARENT.TriggerEvent('ue_view_mxdscrp2')
  2592. RETURN
  2593. ELSEIF dwo.Name = 'u_inwaremx_mxdscrp3' THEN
  2594. PARENT.TriggerEvent('ue_view_mxdscrp3')
  2595. RETURN
  2596. ELSEIF dwo.Name = 'u_inwaremx_mxdscrp4' THEN
  2597. PARENT.TriggerEvent('ue_view_mxdscrp4')
  2598. RETURN
  2599. END IF
  2600. dw_child.AcceptText()
  2601. IF dw_edit_mode AND row > 0 THEN
  2602. If (dwo.Name = 'u_cust_cuscode' OR dwo.Name = 'u_cust_name') AND THIS.Object.if_mtrlware[row] = 1 THEN
  2603. PARENT.TriggerEvent('ue_f9')
  2604. // ELSEIF dwo.Name = 'u_inwaremx_status' THEN
  2605. // PARENT.TriggerEvent('ue_f10')
  2606. ELSEIF dwo.Name = 'u_inwaremx_addqty' THEN
  2607. PARENT.TriggerEvent('ue_f11')
  2608. ELSEIF dwo.Name = 'u_inwaremx_qty' OR dwo.Name ='u_inwaremx_formula' THEN
  2609. PARENT.TriggerEvent('ue_cmpl_qty')
  2610. ELSEIF dwo.name = 'u_inwaremx_status' or dwo.name = 'u_inwaremx_woodcode' or dwo.name = 'u_inwaremx_pcode' then
  2611. string name
  2612. name =dwo.name
  2613. PARENT.trigger event ue_view_status(row,name)
  2614. ELSE
  2615. IF dw_child.Object.u_inwaremx_ifrel[row] = 1 THEN
  2616. PARENT.TriggerEvent('ue_f7')
  2617. ELSE
  2618. PARENT.TriggerEvent('ue_f8')
  2619. END IF
  2620. END IF
  2621. END IF
  2622. end event
  2623. event dw_child::itemfocuschanged;call super::itemfocuschanged;dw_child.AcceptText()
  2624. end event
  2625. type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_inware_cp
  2626. end type
  2627. type cb_print from w_publ_1ton_share_detail`cb_print within w_inware_cp
  2628. end type
  2629. type cb_add from w_publ_1ton_share_detail`cb_add within w_inware_cp
  2630. end type
  2631. event cb_add::clicked;IF NOT (f_power_ind(376) OR f_power_ind(1054)) THEN
  2632. MessageBox('提示','你没有使用权限!',information!,ok!)
  2633. RETURN
  2634. END IF
  2635. String arg_msg = ''
  2636. Long uc_row,i,j
  2637. s_inwaremx s_mx
  2638. IF dw_edit_mode THEN
  2639. dw_uc.AcceptText()
  2640. dw_child.AcceptText()
  2641. uc_row = dw_uc.GetRow()
  2642. IF uc_row <= 0 THEN
  2643. MessageBox('提示','请选定当前目标单据!',information!,ok!)
  2644. RETURN
  2645. END IF
  2646. IF NOT dw_uc.Object.indate[uc_row] > DateTime(2000-01-01,Now()) THEN
  2647. MessageBox('提示','不合理发生时间!',information!,ok!)
  2648. dw_uc.SetFocus()
  2649. dw_uc.SetColumn("indate")
  2650. RETURN
  2651. END IF
  2652. IF NOT Len(String(dw_uc.Object.inrep[uc_row])) > 0 THEN
  2653. MessageBox('提示','请填写经手人!',information!,ok!)
  2654. dw_uc.SetFocus()
  2655. dw_uc.SetColumn("inrep")
  2656. RETURN
  2657. END IF
  2658. FOR j = 1 TO dw_child.RowCount()
  2659. IF dw_child.Object.u_inwaremx_qty[j] = 0 THEN CONTINUE
  2660. IF dw_child.Object.if_mtrlware[j] = 1 AND dw_child.Object.u_inwaremx_sptid_cusid[j] = 0 THEN
  2661. MessageBox('提示','请先选择客户,第'+String(j)+'行',information!,ok!)
  2662. RETURN
  2663. END IF
  2664. //MEI:20160610
  2665. // IF dw_child.Object.u_inwaremx_ifrel[j] = 1 AND dw_child.Object.u_inwaremx_fprice[j] = 0 then
  2666. // MessageBox('提示','第'+String(j)+'行,'+'该物料以计划价取价时,进仓价不能为0', Information!, OK! )
  2667. // RETURN
  2668. // END IF
  2669. IF NOT f_power_ind(1511) then
  2670. IF dw_child.Object.u_inwaremx_ifrel[j] = 1 AND dw_child.Object.u_inwaremx_relid[j] = 0 THEN
  2671. MessageBox('提示','用户权限限制,请选择订单,第'+String(j)+'行', Information!, OK! )
  2672. RETURN
  2673. END IF
  2674. IF dw_child.Object.u_inwaremx_ifrel[j] = 0 AND dw_child.Object.u_inwaremx_qty[j] > 0 THEN
  2675. MessageBox('提示','用户权限限制,请选择订单,第'+String(j)+'行', Information!, OK! )
  2676. RETURN
  2677. END IF
  2678. END IF
  2679. NEXT
  2680. //保存前根据物料资料定义,检查数量和辅数的关系是否正确,如果辅数有填写 ,数量没有填写 ,会根据物料资料里的定义自动计算出数量
  2681. IF wf_check_qtyandaddqty(arg_msg) = 0 THEN
  2682. MessageBox('提示',arg_msg + ',不能保存!',information!,OK!)
  2683. RETURN
  2684. END IF
  2685. IF wf_checkqty(arg_msg) = 0 then
  2686. MessageBox('提示',arg_msg + ',不能保存!',information!,OK!)
  2687. RETURN
  2688. END IF
  2689. uo_ware.indate = dw_uc.Object.indate[uc_row] // 发生时间
  2690. uo_ware.inrep = dw_uc.Object.inrep[uc_row] // 经手人
  2691. uo_ware.part = dw_uc.Object.part[uc_row] //相关部门
  2692. uo_ware.dscrp = dw_uc.Object.dscrp[uc_row] //备注
  2693. uo_ware.storageid = dw_uc.Object.storageid[uc_row]
  2694. uo_ware.sptname = dw_uc.Object.sptname[uc_row]
  2695. uo_ware.relid = dw_uc.Object.u_inware_relid[uc_row]
  2696. FOR i = 1 TO dw_child.RowCount()
  2697. IF dw_child.Object.u_inwaremx_mtrlid[i] > 0 THEN
  2698. s_mx.printid=dw_child.Object.printid[i]
  2699. s_mx.mtrlid=dw_child.Object.u_inwaremx_mtrlid[i]
  2700. s_mx.mtrlcode=dw_child.Object.u_mtrldef_mtrlcode[i]
  2701. s_mx.plancode=dw_child.Object.u_inwaremx_plancode[i]
  2702. s_mx.status=dw_child.Object.u_inwaremx_status[i]
  2703. s_mx.uqty=dw_child.Object.u_inwaremx_qty[i]
  2704. s_mx.addqty=dw_child.Object.u_inwaremx_addqty[i]
  2705. s_mx.uprice=dw_child.Object.u_inwaremx_fprice[i]
  2706. s_mx.rebate=1
  2707. s_mx.mxdscrp =dw_child.Object.u_inwaremx_mxdscrp[i]
  2708. s_mx.mxdscrp2 =dw_child.Object.u_inwaremx_mxdscrp2[i]
  2709. s_mx.mxdscrp3 =dw_child.Object.u_inwaremx_mxdscrp3[i]
  2710. s_mx.mxdscrp4 =dw_child.Object.u_inwaremx_mxdscrp4[i]
  2711. s_mx.jgprice=0
  2712. s_mx.relid=dw_child.Object.u_inwaremx_relid[i]
  2713. s_mx.relprintid=dw_child.Object.u_inwaremx_relprintid[i]
  2714. s_mx.ifrel=dw_child.Object.u_inwaremx_ifrel[i]
  2715. s_mx.woodcode=dw_child.Object.u_inwaremx_woodcode[i]
  2716. s_mx.pcode=dw_child.Object.u_inwaremx_pcode[i]
  2717. s_mx.mtrlcuscode=dw_child.Object.u_inwaremx_mtrlcuscode[i]
  2718. s_mx.sptid=dw_child.Object.u_inwaremx_sptid_cusid[i]
  2719. s_mx.unit=dw_child.Object.u_mtrldef_unit[i]
  2720. s_mx.rate=1
  2721. s_mx.formula=dw_child.Object.u_inwaremx_formula[i]
  2722. s_mx.waredscrp=dw_child.Object.u_inwaremx_waredscrp[i]
  2723. s_mx.inworkdate =dw_child.Object.u_inwaremx_inworkdate[i]
  2724. s_mx.packqty = dw_child.Object.u_inwaremx_packqty[i]
  2725. // IF uo_ware.acceptmx(dw_child.Object.printid[i],&
  2726. // dw_child.Object.u_inwaremx_mtrlid[i],&
  2727. // dw_child.Object.u_mtrldef_mtrlcode[i],&
  2728. // dw_child.Object.u_inwaremx_plancode[i],&
  2729. // dw_child.Object.u_inwaremx_status[i],&
  2730. // dw_child.Object.u_inwaremx_qty[i],&
  2731. // dw_child.Object.u_inwaremx_addqty[i],&
  2732. // dw_child.Object.u_inwaremx_fprice[i],&
  2733. // 1,&
  2734. // dw_child.Object.u_inwaremx_mxdscrp[i],&
  2735. // arg_msg,&
  2736. // 0,&
  2737. // dw_child.Object.u_inwaremx_relid[i],&
  2738. // dw_child.Object.u_inwaremx_relprintid[i],&
  2739. // dw_child.Object.u_inwaremx_ifrel[i],&
  2740. // dw_child.Object.u_inwaremx_woodcode[i],&
  2741. // dw_child.Object.u_inwaremx_pcode[i],&
  2742. // dw_child.Object.u_inwaremx_mtrlcuscode[i],&
  2743. // dw_child.Object.u_inwaremx_sptid_cusid[i],&
  2744. // dw_child.Object.u_mtrldef_unit[i],&
  2745. // 1,&
  2746. // dw_child.Object.u_inwaremx_formula[i],&
  2747. // dw_child.Object.u_inwaremx_waredscrp[i],&
  2748. // dw_child.Object.u_inwaremx_inworkdate[i]) = 0 THEN
  2749. // MessageBox('错误',arg_msg,stopsign!,ok!)
  2750. // RETURN
  2751. // END IF
  2752. IF uo_ware.acceptmx(s_mx,arg_msg)=0 THEN
  2753. MessageBox('错误',arg_msg,stopsign!,ok!)
  2754. RETURN
  2755. END IF
  2756. END IF
  2757. NEXT
  2758. IF uo_ware.Save(TRUE,arg_msg) = 0 THEN
  2759. MessageBox('错误',arg_msg,stopsign!,ok!)
  2760. RETURN
  2761. END IF
  2762. MessageBox('提示','保存操作成功!',information!,ok!)
  2763. //write ini
  2764. f_SetProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",String(dw_uc.Object.storageid[dw_uc.GetRow()]))
  2765. //
  2766. Long ll_row
  2767. ll_row = dw_uc.GetRow()
  2768. dw_uc.SelectRow(0,FALSE)
  2769. dw_uc.SelectRow(ll_row,TRUE)
  2770. wf_refresh_curuc(cur_scid,uo_ware.inwareid) //刷新uc
  2771. ELSE
  2772. IF uo_ware.newbegin(cur_scid,3,arg_msg) = 0 THEN
  2773. MessageBox('错误',arg_msg,stopsign!,ok!)
  2774. RETURN
  2775. END IF
  2776. END IF
  2777. CALL SUPER::Clicked
  2778. //read ini
  2779. IF dw_edit_mode THEN
  2780. PARENT.TriggerEvent("insert_childrow")
  2781. dw_uc.SetRedraw(FALSE)
  2782. String ls_storageid
  2783. ls_storageid = f_ProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",'0')
  2784. IF f_find_storageid(ls_storageid) = '' THEN
  2785. ls_storageid = '0'
  2786. END IF
  2787. dw_uc.Object.storageid[dw_uc.GetRow()] = Long(ls_storageid)
  2788. dw_uc.Object.inrep[dw_uc.GetRow()] = publ_operator
  2789. dw_uc.SetColumn("storageid")
  2790. dw_uc.SetRedraw(TRUE)
  2791. //wf_lock_plancode(long(ls_storageid))
  2792. ELSE
  2793. PARENT.TriggerEvent("retrieve_childdw")
  2794. END IF
  2795. //
  2796. end event
  2797. type cb_edit from w_publ_1ton_share_detail`cb_edit within w_inware_cp
  2798. end type
  2799. event cb_edit::clicked;
  2800. IF NOT (f_power_ind(376) OR f_power_ind(1054)) THEN
  2801. MessageBox('提示','你没有使用权限!',information!,ok!)
  2802. RETURN
  2803. END IF
  2804. String arg_msg = ''
  2805. Long uc_row,ll_storageid
  2806. uc_row = dw_pageretr.GetRow()
  2807. IF uc_row <= 0 THEN
  2808. MessageBox('提示','请选定当前目标单据!',information!,ok!)
  2809. RETURN
  2810. END IF
  2811. ll_storageid = dw_pageretr.Object.storageid[uc_row]
  2812. IF NOT dw_edit_mode THEN
  2813. IF uo_ware.updatebegin(dw_pageretr.Object.u_inware_scid[uc_row],dw_pageretr.Object.inwareid[uc_row],3,arg_msg) = 0 THEN
  2814. MessageBox('错误',arg_msg,stopsign!,ok!)
  2815. RETURN
  2816. END IF
  2817. parent.triggerevent('ue_allowedit')
  2818. END IF
  2819. CALL SUPER::Clicked
  2820. end event
  2821. type cb_delet from w_publ_1ton_share_detail`cb_delet within w_inware_cp
  2822. end type
  2823. event cb_delet::clicked;IF NOT (f_power_ind(597) OR f_power_ind(1058)) THEN
  2824. MessageBox('提示','你没有使用权限!',information!,ok!)
  2825. RETURN
  2826. END IF
  2827. if dw_edit_mode then return
  2828. string arg_msg=''
  2829. long uc_row
  2830. uc_row=dw_pageretr.getrow()
  2831. if uc_row<=0 then
  2832. messagebox('提示','请选定当前目标单据!',information!,ok!)
  2833. return
  2834. end if
  2835. IF MessageBox ("询问","是否确定要删除当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  2836. if uo_ware.del(dw_pageretr.object.u_inware_scid[uc_row],dw_pageretr.object.inwareid [uc_row],arg_msg,true)=0 then
  2837. messagebox('错误',arg_msg,stopsign!,ok!)
  2838. ELSE
  2839. //日志
  2840. long ls_id
  2841. string ls_code
  2842. ls_id=dw_pageretr.object.inwareid [uc_row]
  2843. ls_code=dw_pageretr.object.inwarecode[uc_row]
  2844. f_setsysoplog('生产进仓单','删除,ID:'+string(LS_id)+',code:'+ls_code,arg_msg,true)
  2845. //--
  2846. MESSAGEBOX('提示','删除单据'+string(dw_pageretr.object.inwarecode[uc_row])+'成功!',information!,ok!)
  2847. dw_pageretr.deleterow(uc_row)
  2848. dw_pageretr.postevent(rowfocuschanged!)
  2849. end if
  2850. end event
  2851. type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_inware_cp
  2852. end type
  2853. event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  2854. String menustr
  2855. menustr = "Text=增加备注~tEvent=ue_addzy"
  2856. menustr = menustr + "|" + "Text=修改备注~tEvent=ue_editzy"
  2857. menustr = menustr + "|" + "Text=复制单据~tEvent=ue_bill_copy"
  2858. menustr = menustr + "|" + "Text=粘贴单据~tEvent=ue_bill_paste"
  2859. menustr = menustr + "|" + "Text=-"
  2860. menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view"
  2861. menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit"
  2862. menustr = menustr + "|" + "Text=-"
  2863. menustr = menustr + "|" + "Text=全选~tEvent=ue_all_choice"
  2864. menustr = menustr + "|" + "Text=全不选~tEvent=ue_allnot_choice"
  2865. menustr = menustr + "|" + "Text=批仓审核(选中的)~tEvent=ue_all_audit"
  2866. menustr = menustr + "|" + "Text=批仓撤审(选中的)~tEvent=ue_allnot_audit"
  2867. menustr = menustr + "|" + "Text=批删除(选中的)~tEvent=ue_all_delete"
  2868. IF Len(Trim(menustr)) <> 0 THEN
  2869. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  2870. dmPopupMenu.mf_BuildMenu(This, menustr)
  2871. dmPopupMenu.mf_PopMenu()
  2872. Destroy dmPopupMenu
  2873. END IF
  2874. end event
  2875. type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_inware_cp
  2876. end type
  2877. event cb_auditing::clicked;call super::clicked;IF NOT (f_power_ind(63) OR f_power_ind(1055)) THEN
  2878. MessageBox('提示','你没有使用权限!',information!,ok!)
  2879. RETURN
  2880. END IF
  2881. IF dw_edit_mode THEN RETURN
  2882. IF NOT KeyDown(KeyControl!) THEN
  2883. String arg_msg = ''
  2884. Long pagerert_row
  2885. pagerert_row = dw_pageretr.GetRow()
  2886. IF pagerert_row <= 0 THEN
  2887. MessageBox('提示','请选定当前目标单据!',information!,ok!)
  2888. RETURN
  2889. END IF
  2890. IF MessageBox ("询问","是否确定要审核当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  2891. IF uo_ware.getinfo(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row],arg_msg) = 0 THEN
  2892. MessageBox('错误',arg_msg,stopsign!,ok!)
  2893. RETURN
  2894. END IF
  2895. IF uo_ware.auditing(TRUE,arg_msg) = 0 THEN
  2896. MessageBox('错误',arg_msg,stopsign!,ok!)
  2897. ELSE
  2898. MessageBox('提示','审核成功!',information!,ok!)
  2899. wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row])
  2900. parent.triggerevent('retrieve_childdw')
  2901. END IF
  2902. ELSE
  2903. IF MessageBox ("询问","是否确定要批审核列表中未审核的单据?",Question!,YesNo! ) = 2 THEN RETURN
  2904. Long ll_i,ll_billid
  2905. Int li_flag
  2906. Long ll_suc,ll_fail
  2907. dw_pageretr.AcceptText()
  2908. OPEN(w_sys_wait_jdt) //初始化进度条
  2909. w_sys_wait_jdt.Show()
  2910. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  2911. FOR ll_i = 1 TO dw_pageretr.RowCount()
  2912. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在审核..." //进度信息
  2913. li_flag = dw_pageretr.Object.flag[ll_i]
  2914. IF li_flag = 1 THEN CONTINUE
  2915. ll_billid = dw_pageretr.Object.inwareid[ll_i]
  2916. IF uo_ware.getinfo(cur_scid,ll_billid,arg_msg) = 0 THEN
  2917. ll_fail++
  2918. CONTINUE
  2919. END IF
  2920. IF uo_ware.auditing(TRUE,arg_msg) = 0 THEN
  2921. ll_fail++
  2922. CONTINUE
  2923. END IF
  2924. ll_suc++
  2925. w_sys_wait_jdt.wf_inc(ll_i) //进度
  2926. NEXT
  2927. CLOSE(w_sys_wait_jdt)
  2928. MessageBox('提示','批审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail),information!,ok!)
  2929. PARENT.TriggerEvent('retrieve_pageretr')
  2930. END IF
  2931. end event
  2932. type cb_xm from w_publ_1ton_share_detail`cb_xm within w_inware_cp
  2933. end type
  2934. event cb_xm::clicked;is_mx_menustr = ''
  2935. IF dw_edit_mode THEN
  2936. is_mx_menustr += "|" + "Text=批设定公式~tEvent=ue_p_formula_set"
  2937. is_mx_menustr += "|" + "Text=批由公式计算数量~tEvent=ue_p_cmpl_qty"
  2938. is_mx_menustr += "|" + "Text=批由辅数和配置计算数量~tEvent=ue_cmpl_status_qty"
  2939. is_mx_menustr += "|" + "Text=-"
  2940. is_mx_menustr += "|" + "Text=批设定客户~tEvent=ue_p_cus_set"
  2941. is_mx_menustr += "|" + "Text=-"
  2942. is_mx_menustr += "|" + "Text=导入产品计划价~tEvent=ue_import_price"
  2943. ELSE
  2944. is_mx_menustr += "|" + "Text=修改明细终止数~tEvent=ue_stopqty"
  2945. is_mx_menustr += "|" + "Text=-"
  2946. is_mx_menustr += "|" + "Text=修改明细单价~tEvent=ue_mod_enprice"
  2947. END IF
  2948. CALL Super::Clicked
  2949. end event
  2950. type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_inware_cp
  2951. end type
  2952. type cb_xls from w_publ_1ton_share_detail`cb_xls within w_inware_cp
  2953. end type
  2954. type cb_help from w_publ_1ton_share_detail`cb_help within w_inware_cp
  2955. end type
  2956. type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_inware_cp
  2957. end type
  2958. event cb_auditing_cancel::clicked;call super::clicked;IF NOT (f_power_ind(909) OR f_power_ind(1056)) THEN
  2959. MessageBox('提示','你没有使用权限!',information!,ok!)
  2960. RETURN
  2961. END IF
  2962. IF dw_edit_mode THEN RETURN
  2963. String arg_msg = ''
  2964. Long pagerert_row
  2965. pagerert_row = dw_pageretr.GetRow()
  2966. IF pagerert_row <= 0 THEN
  2967. MessageBox('提示','请选定当前目标单据!',information!,ok!)
  2968. RETURN
  2969. END IF
  2970. IF MessageBox ("询问","是否确定要撤消审核当前单据?",question!,yesno! ) = 2 THEN RETURN
  2971. IF uo_ware.getinfo(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row],arg_msg) = 0 THEN
  2972. MessageBox('错误',arg_msg,stopsign!,ok!)
  2973. RETURN
  2974. END IF
  2975. IF uo_ware.c_auditing(TRUE,arg_msg) = 0 THEN
  2976. MessageBox('错误',arg_msg,stopsign!,ok!)
  2977. ELSE
  2978. //日志
  2979. Long ls_id
  2980. String ls_code
  2981. ls_id = dw_pageretr.Object.inwareid [pagerert_row]
  2982. ls_code = dw_pageretr.Object.inwarecode[pagerert_row]
  2983. f_setsysoplog('生产进仓单','撤审,ID:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE)
  2984. //--
  2985. MessageBox('提示','撤消审核成功!',information!,ok!)
  2986. wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row])
  2987. END IF
  2988. end event
  2989. type p_msg from w_publ_1ton_share_detail`p_msg within w_inware_cp
  2990. end type
  2991. type p_help from w_publ_1ton_share_detail`p_help within w_inware_cp
  2992. end type
  2993. type p_encl from w_publ_1ton_share_detail`p_encl within w_inware_cp
  2994. end type
  2995. type p_other from w_publ_1ton_share_detail`p_other within w_inware_cp
  2996. end type
  2997. type gb_3 from w_publ_1ton_share_detail`gb_3 within w_inware_cp
  2998. end type
  2999. type ln_bar from w_publ_1ton_share_detail`ln_bar within w_inware_cp
  3000. end type
  3001. type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_inware_cp
  3002. end type
  3003. type r_bar from w_publ_1ton_share_detail`r_bar within w_inware_cp
  3004. integer x = 3579
  3005. end type
  3006. type ln_1 from w_publ_1ton_share_detail`ln_1 within w_inware_cp
  3007. end type
  3008. type ln_2 from w_publ_1ton_share_detail`ln_2 within w_inware_cp
  3009. end type
  3010. type ddlb_status from dropdownlistbox within w_inware_cp
  3011. integer x = 1705
  3012. integer y = 188
  3013. integer width = 402
  3014. integer height = 300
  3015. integer taborder = 30
  3016. boolean bringtotop = true
  3017. integer textsize = -9
  3018. integer weight = 400
  3019. fontcharset fontcharset = gb2312charset!
  3020. fontpitch fontpitch = variable!
  3021. string facename = "宋体"
  3022. long textcolor = 33554432
  3023. string text = "[全部]"
  3024. boolean sorted = false
  3025. string item[] = {"[全部]","待审核","已审核"}
  3026. borderstyle borderstyle = stylelowered!
  3027. end type
  3028. event selectionchanged;if index=1 then
  3029. cur_flag=-1
  3030. elseif index=2 then
  3031. cur_flag= 0
  3032. elseif index=3 then
  3033. cur_flag= 1
  3034. end if
  3035. parent.triggerevent("retrieve_pageretr")
  3036. end event
  3037. type st_2 from statictext within w_inware_cp
  3038. integer x = 1527
  3039. integer y = 204
  3040. integer width = 219
  3041. integer height = 48
  3042. integer textsize = -9
  3043. integer weight = 400
  3044. fontcharset fontcharset = gb2312charset!
  3045. fontpitch fontpitch = variable!
  3046. string facename = "宋体"
  3047. long textcolor = 33554432
  3048. long backcolor = 134217739
  3049. string text = "状 态"
  3050. boolean focusrectangle = false
  3051. end type
  3052. type st_3 from statictext within w_inware_cp
  3053. integer x = 777
  3054. integer y = 204
  3055. integer width = 219
  3056. integer height = 48
  3057. boolean bringtotop = true
  3058. integer textsize = -9
  3059. integer weight = 400
  3060. fontcharset fontcharset = gb2312charset!
  3061. fontpitch fontpitch = variable!
  3062. string facename = "宋体"
  3063. long textcolor = 33554432
  3064. long backcolor = 134217739
  3065. string text = "分 部"
  3066. boolean focusrectangle = false
  3067. end type
  3068. type ddlb_scid from uo_ddlb_scid within w_inware_cp
  3069. integer x = 951
  3070. integer y = 188
  3071. integer width = 549
  3072. integer height = 652
  3073. boolean bringtotop = true
  3074. end type
  3075. event constructor;call super::constructor;cur_scid=this.uo_scid
  3076. cur_scid_arr = THIS.uo_scid_arr
  3077. end event
  3078. event selectionchanged;call super::selectionchanged;cur_scid=this.uo_scid
  3079. cur_scid_arr = THIS.uo_scid_arr
  3080. parent.triggerevent("retrieve_pageretr")
  3081. end event
  3082. type cb_1 from commandbutton within w_inware_cp
  3083. boolean visible = false
  3084. integer x = 2487
  3085. integer y = 204
  3086. integer width = 402
  3087. integer height = 84
  3088. integer taborder = 40
  3089. boolean bringtotop = true
  3090. integer textsize = -9
  3091. integer weight = 400
  3092. fontcharset fontcharset = gb2312charset!
  3093. fontpitch fontpitch = variable!
  3094. string facename = "宋体"
  3095. string text = "none"
  3096. end type
  3097. event clicked;long i,j,rslt
  3098. long ll_taskid,ll_scid,ll_printid
  3099. dec dec_qty
  3100. long ll_row
  3101. Dec lde_orderQty,lde_AssignQty,lde_needbuyqty,lde_needwfjgqty
  3102. Dec lde_buytaskqty,lde_wfjgtaskqty
  3103. string arg_msg
  3104. s_inwaremx s_check
  3105. ll_row = dw_child.getrow()
  3106. dw_child.accepttext()
  3107. MESSAGEBOX('',string(dw_child.Object.u_inwaremx_relid[1]))
  3108. //IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN
  3109. //FOR i = 1 To (ll_row - 1)
  3110. // for j=i to (ll_row -1)
  3111. // IF dw_child.Object.u_inwaremx_relid[j] = dw_child.Object.u_inwaremx_relid[j+1] THEN
  3112. // END IF
  3113. // next
  3114. //next
  3115. //FOR i = 1 To dw_child.RowCount()
  3116. // IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN
  3117. // ll_taskid = dw_child.Object.u_inwaremx_relid[i]
  3118. // dec_qty = dw_child.Object.u_inwaremx_qty[i]
  3119. // ll_printid = dw_child.Object.u_inwaremx_relprintid[i]
  3120. // ll_scid = cur_scid//dw_uc.Object.u_inware_scid[dw_uc.getrow()]
  3121. // messagebox('',ll_scid)
  3122. // SELECT orderqty,needbuyqty,needwfjgqty,
  3123. // AssignQty,buytaskqty,wfjgtaskqty
  3124. // INTO :lde_orderQty,:lde_needbuyqty,:lde_needwfjgqty,
  3125. // :lde_AssignQty,:lde_buytaskqty,:lde_wfjgtaskqty
  3126. // FROM u_SaleTaskMx WHERE scid = :ll_scid AND
  3127. // taskid = :ll_taskid AND
  3128. // printid = :ll_printid Using SQLCA;
  3129. // IF SQLCA.SQLCode <> 0 THEN
  3130. // arg_msg = '查询销售订单信息失败!'+SQLCA.SQLErrText
  3131. // rslt = 0
  3132. // messagebox('',arg_msg)
  3133. // END IF
  3134. //
  3135. // IF lde_orderQty + lde_needbuyqty + lde_needwfjgqty - lde_AssignQty < dec_qty THEN
  3136. // arg_msg = '第['+string(i) +']行,进仓数量大于销售订单安排未进仓数量'
  3137. // rslt = 0
  3138. // MESSAGEBOX('',arg_msg)
  3139. // END IF
  3140. // END IF
  3141. //NEXT
  3142. return 0
  3143. end event
  3144. type cbx_packqty_cmpl from checkbox within w_inware_cp
  3145. integer x = 3250
  3146. integer y = 84
  3147. integer width = 576
  3148. integer height = 60
  3149. boolean bringtotop = true
  3150. integer textsize = -9
  3151. integer weight = 400
  3152. fontcharset fontcharset = gb2312charset!
  3153. fontpitch fontpitch = variable!
  3154. string facename = "宋体"
  3155. long textcolor = 33554432
  3156. long backcolor = 134217739
  3157. string text = "录入包装数计算数量"
  3158. end type
  3159. event clicked;IF THIS.Checked THEN
  3160. ii_packqty_cmpl = 1
  3161. ELSE
  3162. ii_packqty_cmpl = 0
  3163. END IF
  3164. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",String(ii_packqty_cmpl))
  3165. end event
  3166. event constructor;this.backcolor = 14215660
  3167. ii_packqty_cmpl = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",'0'))
  3168. IF ii_packqty_cmpl = 1 THEN
  3169. THIS.Checked = TRUE
  3170. ELSE
  3171. THIS.Checked = FALSE
  3172. END IF
  3173. //this.y = cbx_enamt_edit.y
  3174. //this.x = cbx_enamt_edit.x + cbx_enamt_edit.width + 10
  3175. end event
  3176. type cb_new_scanbill from commandbutton within w_inware_cp
  3177. integer x = 2286
  3178. integer y = 192
  3179. integer width = 384
  3180. integer height = 84
  3181. integer taborder = 50
  3182. boolean bringtotop = true
  3183. integer textsize = -9
  3184. integer weight = 400
  3185. fontcharset fontcharset = gb2312charset!
  3186. fontpitch fontpitch = variable!
  3187. string facename = "宋体"
  3188. boolean underline = true
  3189. string text = "条码扫描开单"
  3190. end type
  3191. event clicked;String em,ls_str
  3192. Long this_parrow
  3193. Long i,ll_row,ll_ucrow
  3194. Long ll_scid,ll_outwareid
  3195. IF Not dw_edit_mode THEN
  3196. MessageBox('NO','请在编辑状态操作!')
  3197. RETURN
  3198. END IF
  3199. this_parrow = dw_pageretr.GetRow()
  3200. IF this_parrow <= 0 THEN
  3201. MessageBox('NO','请选择单据!')
  3202. RETURN
  3203. END IF
  3204. dw_uc.AcceptText()
  3205. s_edit_index_tran s_tran_mod
  3206. // s_tran_mod.c_long = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  3207. OpenWithParm(w_inwaremx_cp_p_new_scanqty,s_tran_mod)
  3208. dw_child.AcceptText()
  3209. //
  3210. // Decimal dec_lmbuyprice //设定购价
  3211. // long ll_mtrlid
  3212. //
  3213. //
  3214. // for i=1 to dw_child.rowcount()
  3215. // dec_lmbuyprice = 0
  3216. //// ll_mtrlid=1
  3217. //// SELECT lmbuyprice Into :dec_lmbuyprice From u_mtrldef Where mtrlid = :ll_mtrlid;
  3218. //// dw_child.Object.u_mtrldef_lmbuyprice[i] = dec_lmbuyprice
  3219. //next
  3220. //
  3221. end event
  3222. event constructor;//系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审
  3223. IF sys_option_check_scanqty = 1 THEN
  3224. This.Visible = True
  3225. ELSE
  3226. This.Visible = False
  3227. END IF
  3228. end event