w_inware_wfjg.srw 148 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420
  1. $PBExportHeader$w_inware_wfjg.srw
  2. forward
  3. global type w_inware_wfjg from w_publ_1ton_share_detail
  4. end type
  5. type ddlb_scid from uo_ddlb_scid within w_inware_wfjg
  6. end type
  7. type st_3 from statictext within w_inware_wfjg
  8. end type
  9. type st_2 from statictext within w_inware_wfjg
  10. end type
  11. type tab_1 from tab within w_inware_wfjg
  12. end type
  13. type tabpage_1 from userobject within tab_1
  14. end type
  15. type dw_1 from u_dw_rbtnfilter within tabpage_1
  16. end type
  17. type tabpage_1 from userobject within tab_1
  18. dw_1 dw_1
  19. end type
  20. type tabpage_2 from userobject within tab_1
  21. end type
  22. type dw_2 from u_dw_rbtnfilter within tabpage_2
  23. end type
  24. type tabpage_2 from userobject within tab_1
  25. dw_2 dw_2
  26. end type
  27. type tab_1 from tab within w_inware_wfjg
  28. tabpage_1 tabpage_1
  29. tabpage_2 tabpage_2
  30. end type
  31. type cb_in_2_out from uo_imflatbutton within w_inware_wfjg
  32. end type
  33. type ddlb_status from uo_ddlb_status within w_inware_wfjg
  34. end type
  35. type cb_cmpl from uo_imflatbutton within w_inware_wfjg
  36. end type
  37. type cbx_cmpl from checkbox within w_inware_wfjg
  38. end type
  39. type cbx_autocmp from checkbox within w_inware_wfjg
  40. end type
  41. type cb_bef_to_aft from uo_imflatbutton within w_inware_wfjg
  42. end type
  43. type cbx_autocmp_1 from checkbox within w_inware_wfjg
  44. end type
  45. type cb_ware from uo_imflatbutton within w_inware_wfjg
  46. end type
  47. end forward
  48. global type w_inware_wfjg from w_publ_1ton_share_detail
  49. integer width = 4407
  50. string title = "仓库外协收货单"
  51. boolean maxbox = true
  52. windowstate windowstate = maximized!
  53. event insert_childrow ( )
  54. event insert_childrow_out ( )
  55. event ue_fj_edit ( )
  56. event ue_fj_view ( )
  57. event ue_cmp_qty ( )
  58. event ue_cmp_uqty ( )
  59. event ue_in_to_out ( )
  60. event ue_bef_to_aft ( )
  61. event ue_mod_price ( )
  62. event ue_in_to_out2 ( )
  63. event ue_test ( )
  64. event ue_p_storageid ( )
  65. event ue_cmp_newprice ( )
  66. event ue_cmp_thisprice ( )
  67. event ue_cmp_planprice ( )
  68. ddlb_scid ddlb_scid
  69. st_3 st_3
  70. st_2 st_2
  71. tab_1 tab_1
  72. cb_in_2_out cb_in_2_out
  73. ddlb_status ddlb_status
  74. cb_cmpl cb_cmpl
  75. cbx_cmpl cbx_cmpl
  76. cbx_autocmp cbx_autocmp
  77. cb_bef_to_aft cb_bef_to_aft
  78. cbx_autocmp_1 cbx_autocmp_1
  79. cb_ware cb_ware
  80. end type
  81. global w_inware_wfjg w_inware_wfjg
  82. type variables
  83. Long cur_scid //分店ID
  84. Int cur_flag = -1
  85. Int cur_secflag = -1
  86. uo_inware_wfjg uo_ware
  87. uo_spt_price uo_sptprice
  88. Long cur_id = 0
  89. Int cur_editfocus = 0 //1:新建2:修改
  90. Long flag = 0
  91. Long secflag = 0
  92. String ol_cdw_str = ''
  93. long child_column_bef
  94. datastore ds_copy_aft,ds_copy_bef
  95. u_dw_rbtnfilter dw_aft,dw_bef
  96. end variables
  97. forward prototypes
  98. public function integer wf_refresh_curuc (long arg_scid, long arg_inwareid)
  99. public function integer wf_flagstatus_rf ()
  100. public function integer wf_check_print (ref string arg_msg)
  101. public function integer wf_lock_child ()
  102. public function integer wf_bef_to_aft (ref string arg_msg)
  103. public function integer wf_copy (ref string arg_msg)
  104. public function integer wf_paste (ref string arg_msg)
  105. public subroutine wf_check_billfj ()
  106. 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)
  107. public function integer wf_in_to_out (ref string arg_msg)
  108. public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg)
  109. public function integer wf_refresh_interface ()
  110. public function integer wf_in_to_out2 (ref string arg_msg)
  111. public subroutine wf_change_sptid (long arg_sptid)
  112. public function integer wf_get_price (long arg_row)
  113. public function integer wf_aft_to_bef (ref string arg_msg)
  114. public function integer wf_check_option_inware_checkqty (ref string arg_msg)
  115. public function integer wf_check_option_inware_checknoallocqty (ref string arg_msg)
  116. public function integer wf_check_owware (ref string arg_msg)
  117. end prototypes
  118. event insert_childrow();Long li_row
  119. li_row = dw_aft.InsertRow(0)
  120. dw_aft.ScrollToRow(li_row)
  121. dw_aft.Object.ow_wfjgmx_in_aft_ifrel[li_row] = sys_option_autoyes
  122. IF li_row > 1 THEN
  123. dw_aft.AcceptText()
  124. dw_aft.Object.ow_wfjgmx_in_aft_storageid[li_row] = dw_aft.Object.ow_wfjgmx_in_aft_storageid[li_row - 1]
  125. END IF
  126. dw_aft.SetColumn ('u_mtrldef_mtrlcode')
  127. end event
  128. event insert_childrow_out();long li_row
  129. li_row=dw_bef.insertrow(0)
  130. dw_bef.scrolltorow(li_row)
  131. dw_bef.SetColumn ('u_mtrldef_mtrlcode')
  132. end event
  133. event ue_fj_edit();IF dw_edit_mode THEN
  134. MessageBox('提示','编辑状态下不可用',information!,OK!)
  135. RETURN
  136. END IF
  137. //IF NOT f_power_ind(1446) THEN
  138. // MessageBox(publ_operator,'你没有使用权限!')
  139. // RETURN
  140. //END IF
  141. s_edit_index_tran s_pic
  142. Long ll_ConnectionID
  143. String arg_msg
  144. Long ls_row
  145. ls_row = dw_uc.GetRow()
  146. IF ls_row <= 0 THEN
  147. RETURN
  148. END IF
  149. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  150. MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!)
  151. RETURN
  152. END IF
  153. s_pic.f_long = 214 //采购订单的mainID
  154. s_pic.f_string = dw_uc.Object.inwarecode[ls_row]
  155. s_pic.g_long = dw_uc.Object.inwareid[ls_row]
  156. s_pic.e_long = dw_uc.Object.ow_wfjg_in_scid[ls_row]
  157. s_pic.sqltransaction = sys_filedb_sqlca
  158. OpenWithParm(w_fj_bill_mng,s_pic)
  159. //wf_check_billfj()
  160. end event
  161. event ue_fj_view();IF dw_edit_mode THEN
  162. MessageBox('提示','编辑状态下不可用',information!,OK!)
  163. RETURN
  164. END IF
  165. s_edit_index_tran s_pic
  166. Long ll_ConnectionID
  167. String arg_msg
  168. Long ls_row
  169. ls_row = dw_uc.GetRow()
  170. IF ls_row <= 0 THEN
  171. RETURN
  172. END IF
  173. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  174. MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!)
  175. RETURN
  176. END IF
  177. s_pic.f_long = 214 //采购订单的mainID
  178. s_pic.f_string = dw_uc.Object.inwarecode[ls_row]
  179. s_pic.g_long = dw_uc.Object.inwareid[ls_row]
  180. s_pic.e_long = dw_uc.Object.ow_wfjg_in_scid[ls_row]
  181. s_pic.sqltransaction = sys_filedb_sqlca
  182. OpenWithParm(w_fj_bill_view,s_pic)
  183. end event
  184. event ue_cmp_qty();IF NOT dw_edit_mode THEN RETURN
  185. Long ll_i
  186. dw_aft.accepttext()
  187. dw_bef.accepttext()
  188. dw_aft.SetRedraw(FALSE)
  189. FOR ll_i = 1 TO dw_aft.RowCount()
  190. IF dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] > 0 AND dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] > 0 THEN
  191. dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] = round(dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] * dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i],sys_option_unit_dec)
  192. END IF
  193. NEXT
  194. dw_aft.SetRedraw(TRUE)
  195. dw_bef.SetRedraw(FALSE)
  196. FOR ll_i = 1 TO dw_bef.RowCount()
  197. IF dw_bef.Object.ow_wfjgmx_in_bef_uqty[ll_i] > 0 AND dw_bef.Object.ow_wfjgmx_in_bef_rate[ll_i] > 0 THEN
  198. dw_bef.Object.ow_wfjgmx_in_bef_qty[ll_i] = round(dw_bef.Object.ow_wfjgmx_in_bef_uqty[ll_i] * dw_bef.Object.ow_wfjgmx_in_bef_rate[ll_i],sys_option_unit_dec)
  199. END IF
  200. NEXT
  201. dw_bef.SetRedraw(TRUE)
  202. end event
  203. event ue_cmp_uqty();IF NOT dw_edit_mode THEN RETURN
  204. Long ll_i
  205. dw_aft.accepttext()
  206. dw_bef.accepttext()
  207. dw_aft.SetRedraw(FALSE)
  208. FOR ll_i = 1 TO dw_aft.RowCount()
  209. IF dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] > 0 AND dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] > 0 THEN
  210. dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] = round(dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] / dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i],sys_option_unit_dec)
  211. END IF
  212. NEXT
  213. dw_aft.SetRedraw(TRUE)
  214. dw_bef.SetRedraw(FALSE)
  215. FOR ll_i = 1 TO dw_bef.RowCount()
  216. IF dw_bef.Object.ow_wfjgmx_in_bef_qty[ll_i] > 0 AND dw_bef.Object.ow_wfjgmx_in_bef_rate[ll_i] > 0 THEN
  217. dw_bef.Object.ow_wfjgmx_in_bef_uqty[ll_i] = round(dw_bef.Object.ow_wfjgmx_in_bef_qty[ll_i] / dw_bef.Object.ow_wfjgmx_in_bef_rate[ll_i],sys_option_unit_dec)
  218. END IF
  219. NEXT
  220. dw_bef.SetRedraw(TRUE)
  221. end event
  222. event ue_in_to_out();IF NOT dw_edit_mode THEN RETURN
  223. String arg_msg
  224. IF wf_in_to_out(arg_msg) = 0 THEN
  225. MessageBox(publ_operator,arg_msg)
  226. END IF
  227. end event
  228. event ue_bef_to_aft();if not dw_edit_mode then return
  229. string arg_msg
  230. if wf_bef_to_aft(arg_msg) = 0 then
  231. messagebox('错误',arg_msg,stopsign!,OK!)
  232. end if
  233. end event
  234. event ue_mod_price();IF NOT f_power_ind(1474) THEN
  235. MessageBox(publ_operator,'你没有使用权限!')
  236. RETURN
  237. END IF
  238. IF dw_edit_mode THEN
  239. MessageBox('系统提示','编辑状态下不可使用')
  240. RETURN
  241. END IF
  242. Long uc_row,child_row
  243. uc_row = dw_pageretr.GetRow()
  244. IF uc_row <= 0 THEN
  245. MessageBox('系统提示','请选择单据')
  246. RETURN
  247. END IF
  248. //child_row = dw_aft.GetRow()
  249. //IF child_row <= 0 THEN
  250. // MessageBox('系统提示','请选择明细内容')
  251. // RETURN
  252. //END IF
  253. Long ll_flag ,ll_secflag,ll_balcflag
  254. Long ll_scid,ll_inwareid,ll_printid
  255. ll_flag = dw_pageretr.Object.flag[uc_row]
  256. ll_secflag = dw_pageretr.Object.ow_wfjg_in_secflag[uc_row]
  257. ll_balcflag = dw_pageretr.Object.balcflag[uc_row]
  258. ll_scid = dw_pageretr.Object.ow_wfjg_in_scid[uc_row]
  259. ll_inwareid = dw_pageretr.Object.inwareid[uc_row]
  260. //ll_printid = dw_aft.Object.ow_wfjgmx_in_aft_printid[child_row]
  261. IF ll_flag = 0 THEN
  262. MessageBox('系统提示','进仓单待审核状态下不能执行修改单价功能')
  263. RETURN
  264. END IF
  265. IF ll_secflag = 1 THEN
  266. MessageBox('系统提示','单据已财审,不能执行修改单价功能')
  267. RETURN
  268. END IF
  269. IF ll_balcflag = 1 THEN
  270. MessageBox('系统提示','单据已结存,不能执行修改单价功能')
  271. RETURN
  272. END IF
  273. s_edit_index_tran s_tran_mod
  274. s_tran_mod.b_long = ll_scid
  275. s_tran_mod.c_long = ll_inwareid
  276. s_tran_mod.c_string = ""
  277. OpenWithParm(w_inwaremx_wfjg_mod_price_p,s_tran_mod)
  278. THIS.TriggerEvent('retrieve_childdw')
  279. end event
  280. event ue_in_to_out2();IF NOT dw_edit_mode THEN RETURN
  281. String arg_msg
  282. IF wf_in_to_out2(arg_msg) = 0 THEN
  283. MessageBox(publ_operator,arg_msg)
  284. END IF
  285. end event
  286. event ue_test();messagebox("","sucess")
  287. return
  288. end event
  289. event ue_p_storageid();Long i, ll_storageid
  290. IF dw_aft.RowCount() <= 1 THEN RETURN
  291. ll_storageid = dw_aft.Object.ow_wfjgmx_in_aft_storageid[1]
  292. FOR i = 2 TO dw_aft.RowCount()
  293. dw_aft.Object.ow_wfjgmx_in_aft_storageid[i] = ll_storageid
  294. NEXT
  295. end event
  296. event ue_cmp_newprice();Int rslt = 1
  297. Long ll_i,ll_mtrlid,ll_scid
  298. String ls_mtrlcode,ls_pfcode,arg_msg, ls_msg
  299. Decimal ld_price,ld_mprice,ld_outcost,ld_wagecost
  300. dw_uc.AcceptText()
  301. Long ll_row
  302. ll_row = dw_uc.GetRow()
  303. IF ll_row <= 0 THEN
  304. MessageBox('系统提示','请选择单据')
  305. RETURN
  306. END IF
  307. IF dw_uc.Object.inwareid[ll_row] = 0 THEN
  308. ll_scid = cur_scid
  309. ELSE
  310. ll_scid = dw_uc.Object.ow_wfjg_in_scid[ll_row]
  311. END IF
  312. uo_cmplcost uo_cmpl
  313. uo_cmpl = Create uo_cmplcost
  314. dw_aft.AcceptText()
  315. FOR ll_i = 1 To dw_aft.RowCount()
  316. ld_price = 0
  317. ld_mprice = 0
  318. ld_outcost = 0
  319. uo_cmpl.deep = 0
  320. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ll_i]
  321. ls_mtrlcode = dw_aft.Object.u_mtrldef_mtrlcode[ll_i]
  322. SELECT top 1 pfcode
  323. INTO :ls_pfcode
  324. FROM u_PrdPF
  325. Where mtrlid = :ll_mtrlid;
  326. IF sqlca.SQLCode <> 0 THEN
  327. arg_msg += '行:'+String(ll_i)+ ',查询物料:'+ls_mtrlcode+'默认清单失败,'+sqlca.SQLErrText+'~r~n'
  328. CONTINUE
  329. END IF
  330. IF uo_cmpl.uof_get_cost(ll_scid,ll_mtrlid,ls_mtrlcode,ls_pfcode,1,1,ld_price,ld_mprice,ld_outcost,ld_wagecost,ls_msg) = 0 THEN
  331. arg_msg += '行:'+String(ll_i) + '取物料:'+ls_mtrlcode+'单价失败'+ ls_msg +'~r~n'
  332. CONTINUE
  333. END IF
  334. dw_aft.Object.ow_wfjgmx_in_aft_fprice[ll_i] = Round(ld_price,2) + Round(ld_mprice,2) + Round(ld_outcost,2) + Round(ld_wagecost,2)
  335. NEXT
  336. Destroy uo_cmpl
  337. IF arg_msg <> '' THEN
  338. MessageBox('提示',arg_msg)
  339. END IF
  340. RETURN
  341. end event
  342. event ue_cmp_thisprice();Long ll_i,ll_j,ll_k,ll_mtrlid,ll_scid
  343. String ls_mtrlcode,ls_pfcode,arg_msg
  344. Long ll_sonmtrlid[]
  345. Decimal ld_qty[]
  346. Decimal ld_price[]
  347. Long i = 1
  348. Boolean lb_iffind = False
  349. dw_aft.AcceptText()
  350. dw_bef.AcceptText()
  351. IF dw_bef.RowCount() > 0 THEN
  352. IF dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[1] = 0 Or IsNull(dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[1]) THEN
  353. This.TriggerEvent("ue_in_to_out2")
  354. END IF
  355. ELSE
  356. This.TriggerEvent("ue_in_to_out2")
  357. END IF
  358. dw_bef.AcceptText()
  359. FOR ll_i = 1 To dw_aft.RowCount()
  360. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ll_i]
  361. ls_mtrlcode = dw_aft.Object.u_mtrldef_mtrlcode[ll_i]
  362. ld_price[ll_i] = 0
  363. SELECT top 1 pfcode
  364. INTO :ls_pfcode
  365. FROM u_PrdPF
  366. Where mtrlid = :ll_mtrlid;
  367. IF sqlca.SQLCode <> 0 THEN
  368. arg_msg += '行:'+String(ll_i)+ ',查询物料:'+ls_mtrlcode+'默认清单失败,'+sqlca.SQLErrText+'~r~n'
  369. CONTINUE
  370. END IF
  371. i = 1
  372. DECLARE cur_inmx CURSOR FOR
  373. SELECT u_PrdPF.SonMtrlid,
  374. u_prdpf.Sonscale / (1 - u_PrdPF.sonloss) + u_PrdPF.SonDECLoss
  375. FROM u_PrdPF
  376. WHERE ( u_PrdPF.mtrlid = :ll_mtrlid )
  377. And ( u_PrdPF.pfcode = :ls_pfcode );
  378. OPEN cur_inmx;
  379. FETCH cur_inmx Into :ll_sonmtrlid[i],:ld_qty[i];
  380. DO WHILE sqlca.SQLCode = 0
  381. i++
  382. FETCH cur_inmx Into :ll_sonmtrlid[i],:ld_qty[i];
  383. LOOP
  384. CLOSE cur_inmx;
  385. FOR ll_j = 1 To i - 1
  386. lb_iffind = False
  387. FOR ll_k = 1 To dw_bef.RowCount()
  388. IF ll_sonmtrlid[ll_j] = dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[ll_k] THEN
  389. lb_iffind = True
  390. ld_price[ll_i] = ld_price[ll_i] + dw_bef.Object.ow_wfjgmx_in_bef_fprice[ll_k] * ld_qty[ll_j]
  391. EXIT
  392. END IF
  393. NEXT
  394. IF Not lb_iffind THEN
  395. arg_msg += '行:'+String(ll_i)+ ',查询物料:'+ls_mtrlcode+'单价失败:外协商库存明细没有对应的下级物料~r~n'
  396. //ld_price[ll_i] = ld_price[ll_i]
  397. CONTINUE
  398. END IF
  399. NEXT
  400. NEXT
  401. FOR ll_i = 1 To dw_aft.RowCount()
  402. dw_aft.Object.ow_wfjgmx_in_aft_fprice[ll_i] = ld_price[ll_i]
  403. NEXT
  404. dw_aft.AcceptText()
  405. dw_bef.AcceptText()
  406. IF arg_msg <> '' THEN
  407. MessageBox('提示',arg_msg)
  408. END IF
  409. end event
  410. event ue_cmp_planprice();Long ll_i,ll_j,ll_k,ll_mtrlid,ll_scid
  411. String ls_mtrlcode,ls_pfcode,arg_msg, ls_msg
  412. Long ll_sonmtrlid[]
  413. Decimal ld_qty[]
  414. Decimal ld_price[]
  415. Long i = 1
  416. Boolean lb_iffind = False
  417. Decimal ld_planprice
  418. Long ll_mtrlorigin
  419. String ls_unit
  420. Long ll_cnt
  421. dw_aft.AcceptText()
  422. dw_bef.AcceptText()
  423. FOR ll_i = 1 To dw_aft.RowCount()
  424. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ll_i]
  425. ls_mtrlcode = dw_aft.Object.u_mtrldef_mtrlcode[ll_i]
  426. ld_price[ll_i] = 0
  427. SELECT top 1 pfcode
  428. INTO :ls_pfcode
  429. FROM u_PrdPF
  430. Where mtrlid = :ll_mtrlid;
  431. IF sqlca.SQLCode <> 0 THEN
  432. arg_msg += '行:'+String(ll_i)+ ',查询物料:'+ls_mtrlcode+'默认清单失败,'+sqlca.SQLErrText+'~r~n'
  433. CONTINUE
  434. END IF
  435. i = 1
  436. DECLARE cur_inmx CURSOR FOR
  437. SELECT u_PrdPF.SonMtrlid,
  438. u_prdpf.Sonscale / (1 - u_PrdPF.sonloss) + u_PrdPF.SonDECLoss
  439. FROM u_PrdPF
  440. WHERE ( u_PrdPF.mtrlid = :ll_mtrlid )
  441. And ( u_PrdPF.pfcode = :ls_pfcode );
  442. OPEN cur_inmx;
  443. FETCH cur_inmx Into :ll_sonmtrlid[i],:ld_qty[i];
  444. DO WHILE sqlca.SQLCode = 0
  445. i++
  446. FETCH cur_inmx Into :ll_sonmtrlid[i],:ld_qty[i];
  447. LOOP
  448. CLOSE cur_inmx;
  449. FOR ll_j = 1 To i - 1
  450. SELECT planprice, mtrlorigin, unit
  451. INTO :ld_planprice, :ll_mtrlorigin, :ls_unit
  452. FROM u_mtrldef
  453. Where mtrlid = :ll_sonmtrlid[ll_j];
  454. IF sqlca.SQLCode <> 0 THEN
  455. ld_planprice = 0
  456. END IF
  457. IF ll_mtrlorigin = 2 THEN
  458. SELECT TOP 1 cost
  459. INTO :ld_planprice
  460. FROM u_mtrlware
  461. Where mtrlid = :ll_sonmtrlid[ll_j];
  462. IF sqlca.SQLCode <> 0 THEN
  463. ld_planprice = 0
  464. END IF
  465. END IF
  466. ld_price[ll_i] = ld_price[ll_i] + ld_planprice * ld_qty[ll_j]
  467. NEXT
  468. NEXT
  469. FOR ll_i = 1 To dw_aft.RowCount()
  470. dw_aft.Object.ow_wfjgmx_in_aft_fprice[ll_i] = ld_price[ll_i]
  471. NEXT
  472. dw_aft.AcceptText()
  473. IF arg_msg <> '' THEN
  474. MessageBox('提示',arg_msg)
  475. END IF
  476. end event
  477. public function integer wf_refresh_curuc (long arg_scid, long arg_inwareid);//====================================================================
  478. // Function: wf_refresh_curuc(arg_scid,arg_inwareid)
  479. //--------------------------------------------------------------------
  480. // Description: 刷新dw_pageretr
  481. //--------------------------------------------------------------------
  482. // Arguments:
  483. // value long arg_scid
  484. // value long arg_inwareid
  485. //--------------------------------------------------------------------
  486. // Returns: integer
  487. //--------------------------------------------------------------------
  488. // Author: yyx Date: 2003.11.14
  489. //--------------------------------------------------------------------
  490. // Modify History:
  491. //
  492. //====================================================================
  493. if arg_inwareid<=0 or isnull(arg_inwareid) then return 0
  494. long uc_row
  495. uc_row=dw_pageretr.getrow()
  496. if uc_row<=0 then return 0
  497. long storageid
  498. datetime indate
  499. string inrep
  500. string part
  501. string dscrp
  502. int balcflag
  503. string inwarecode
  504. string sptname
  505. datetime opdate
  506. string opemp
  507. string modemp
  508. datetime moddate
  509. int aflag
  510. datetime Auditingdate
  511. string Auditingrep
  512. datetime secAuditingdate
  513. string secAuditingrep
  514. string storagename
  515. int thflag
  516. int asecflag
  517. string sptcode
  518. int sptid
  519. int relint_1
  520. SELECT ow_wfjg_in.storageid,
  521. ow_wfjg_in.indate,
  522. ow_wfjg_in.inrep,
  523. ow_wfjg_in.part,
  524. ow_wfjg_in.dscrp,
  525. ow_wfjg_in.opdate,
  526. ow_wfjg_in.opemp,
  527. ow_wfjg_in.flag,
  528. ow_wfjg_in.auditingdate,
  529. ow_wfjg_in.auditingrep,
  530. ow_wfjg_in.secflag,
  531. ow_wfjg_in.secauditingdate,
  532. ow_wfjg_in.secauditingrep,
  533. ow_wfjg_in.inwarecode,
  534. ow_wfjg_in.balcflag,
  535. ow_wfjg_in.sptname,
  536. ow_wfjg_in.modemp,
  537. ow_wfjg_in.moddate,
  538. ow_wfjg_in.thflag,
  539. u_spt.name,
  540. u_spt.sptcode,
  541. ow_wfjg_in.sptid,
  542. ow_wfjg_in.relint_1
  543. into
  544. :storageid,
  545. :indate,
  546. :inrep,
  547. :part,
  548. :dscrp,
  549. :opdate,
  550. :opemp,
  551. :aflag,
  552. :Auditingdate,
  553. :Auditingrep,
  554. :asecflag,
  555. :secAuditingdate,
  556. :secAuditingrep,
  557. :inwarecode,
  558. :balcflag,
  559. :sptname,
  560. :modemp,
  561. :moddate,
  562. :thflag,
  563. :sptname,
  564. :sptcode,
  565. :sptid,
  566. :relint_1
  567. FROM ow_wfjg_in,u_spt
  568. WHERE ( ow_wfjg_in.inwareid = :arg_inwareid ) and
  569. (ow_wfjg_in.sptid=u_spt.sptid )
  570. and ( ow_wfjg_in.scid=:arg_scid );
  571. if sqlca.sqlcode<>0 then
  572. messagebox('错误',"查询操作失败(错误单据唯一码)"+sqlca.sqlerrtext,stopsign!,OK!)
  573. return 0
  574. end if
  575. dw_pageretr.object.ow_wfjg_in_scid[uc_row]=arg_scid
  576. dw_pageretr.object.inwareid[uc_row]=arg_inwareid
  577. dw_pageretr.object.indate[uc_row]=indate
  578. dw_pageretr.object.part[uc_row]= part
  579. dw_pageretr.object.inrep[uc_row]= inrep
  580. dw_pageretr.object.u_spt_name[uc_row]=sptname
  581. dw_pageretr.object.dscrp[uc_row]= dscrp
  582. dw_pageretr.object.balcflag[uc_row]= balcflag
  583. dw_pageretr.object.inwarecode[uc_row]=inwarecode
  584. dw_pageretr.object.opdate[uc_row]= opdate
  585. dw_pageretr.object.ow_wfjg_in_opemp[uc_row]= opemp
  586. dw_pageretr.object.ow_wfjg_in_moddate[uc_row]= moddate
  587. dw_pageretr.object.ow_wfjg_in_modemp[uc_row]= modemp
  588. dw_pageretr.object.flag[uc_row]= aflag
  589. dw_pageretr.object.Auditingdate[uc_row]= Auditingdate
  590. dw_pageretr.object.Auditingrep[uc_row]=Auditingrep
  591. dw_pageretr.object.ow_wfjg_in_thflag[uc_row]=thflag
  592. dw_pageretr.object.ow_wfjg_in_secAuditingdate[uc_row]= secAuditingdate
  593. dw_pageretr.object.ow_wfjg_in_secAuditingrep[uc_row]=secAuditingrep
  594. dw_pageretr.object.ow_wfjg_in_secflag[uc_row]= asecflag
  595. dw_pageretr.object.u_spt_sptcode[uc_row]= sptcode
  596. dw_pageretr.object.ow_wfjg_in_sptid[uc_row]= sptid
  597. dw_pageretr.object.ow_wfjg_in_relint_1[uc_row] = relint_1
  598. dw_uc.Reset()
  599. dw_pageretr.RowsCopy(dw_pageretr.GetRow(), &
  600. dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!)
  601. dw_uc.ResetUpdate()
  602. dw_uc.SetRedraw(TRUE)
  603. wf_flagstatus_rf()
  604. return 1
  605. end function
  606. public function integer wf_flagstatus_rf ();//wf_flagstatus_rf()
  607. Long pagerert_row
  608. pagerert_row = dw_pageretr.GetRow()
  609. IF pagerert_row <= 0 THEN
  610. cb_auditing.Text = '审核&F'
  611. cb_auditing.Enabled = FALSE
  612. cb_auditing_cancel.Text = '撤审'
  613. cb_auditing_cancel.Enabled = FALSE
  614. flag = -1
  615. secflag = -1
  616. GOTO ext
  617. END IF
  618. flag = dw_pageretr.Object.flag[pagerert_row]
  619. secflag = dw_pageretr.Object.ow_wfjg_in_secflag[pagerert_row]
  620. IF dw_edit_mode THEN
  621. cb_auditing.Text = '仓审&F'
  622. cb_auditing.Enabled = FALSE
  623. IF cur_editfocus = 1 THEN
  624. flag = -1
  625. secflag = -1
  626. END IF
  627. cb_auditing_cancel.Enabled = FALSE
  628. ELSE
  629. IF flag = 0 THEN
  630. cb_auditing.Enabled = TRUE
  631. cb_auditing.Text = '仓审&F'
  632. cb_auditing_cancel.Enabled = FALSE
  633. ELSEIF flag = 1 AND secflag = 0 THEN
  634. cb_auditing.Enabled = TRUE
  635. cb_auditing.Text = '财审&F'
  636. cb_auditing_cancel.Enabled = TRUE
  637. cb_auditing_cancel.Text = '仓撤'
  638. ELSE
  639. cb_auditing.Text = '仓审&F'
  640. cb_auditing.Enabled = FALSE
  641. cb_auditing_cancel.Enabled = TRUE
  642. cb_auditing_cancel.Text = '财撤'
  643. END IF
  644. END IF
  645. cb_auditing.TriggerEvent('ue_textchange')
  646. cb_auditing_cancel.TriggerEvent('ue_textchange')
  647. ext:
  648. RETURN 0
  649. end function
  650. public function integer wf_check_print (ref string arg_msg);long cnt
  651. int rslt = 1
  652. string ls_msg
  653. string str_dwSQl,str_SyntaxFromSQL
  654. datastore ds_maxid
  655. datetime ld_cur_dt
  656. ld_cur_dt = datetime(today(),time(0))
  657. if sys_option_mustprint = 0 then
  658. rslt = 1
  659. goto ext
  660. end if
  661. string ls_storagestr,tmp_str
  662. ls_storagestr = sys_user_storagestr
  663. if ls_storagestr <> '0' and ls_storagestr <> '-1' then
  664. ls_storagestr = mid(ls_storagestr,2)
  665. ls_storagestr = left(ls_storagestr,len(ls_storagestr) - 1 )
  666. end if
  667. ds_maxid= create datastore
  668. str_dwSQl="select count(*) as countnum from u_inware where indate < '" +string(ld_cur_dt,'yyyy-mm-dd hh:mm:ss')+ "' and billtype = 1 and flag = 0 and "
  669. if pos(ls_storagestr,',') > 0 or long(ls_storagestr) > 0 then
  670. tmp_str = '(' + 'storageid in (' + ls_storagestr + '))'
  671. else
  672. tmp_str = '(' + ls_storagestr + ' = 0 or storageid in (' + ls_storagestr + '))'
  673. end if
  674. str_dwSQl=str_dwSQl + tmp_str
  675. //messagebox("",str_dwSQl)
  676. str_SyntaxFromSQL =sqlca.SyntaxFromSQL(str_dwSQl,"style(type=grid)",ls_msg)
  677. if ls_msg>'' then
  678. arg_msg="dw语法生成失败"
  679. rslt = 0
  680. goto ext
  681. end if
  682. ds_maxid.Create(str_SyntaxFromSQL,ls_msg)
  683. if ls_msg>'' then
  684. arg_msg="建立相关DW失败"
  685. rslt=0
  686. goto ext
  687. end if
  688. ds_maxid.settransobject(sqlca)
  689. ds_maxid.retrieve()
  690. cnt=ds_maxid.GetItemNumber(1,1)
  691. if isnull(cnt) then cnt = 0
  692. destroy ds_maxid
  693. if cnt > 0 then
  694. arg_msg = '仓库还有收货单未打印,不能新建'
  695. rslt = 0
  696. goto ext
  697. end if
  698. ext:
  699. return rslt
  700. end function
  701. public function integer wf_lock_child ();//wf_lock_child
  702. INT LS_INT
  703. IF dw_edit_mode THEN
  704. FOR LS_INT=1 TO child_column_int
  705. dw_aft.SetTabOrder (LS_INT,LS_INT*10 )
  706. NEXT
  707. ELSE
  708. FOR LS_INT=1 TO child_column_int
  709. dw_aft.SetTabOrder (LS_INT, 0)
  710. NEXT
  711. END IF
  712. IF dw_edit_mode THEN
  713. FOR LS_INT=1 TO child_column_bef
  714. dw_bef.SetTabOrder (LS_INT,LS_INT*10 )
  715. NEXT
  716. ELSE
  717. FOR LS_INT=1 TO child_column_bef
  718. dw_bef.SetTabOrder (LS_INT, 0)
  719. NEXT
  720. END IF
  721. RETURN 1
  722. end function
  723. public function integer wf_bef_to_aft (ref string arg_msg);Long rslt = 1
  724. IF NOT dw_edit_mode THEN
  725. rslt = 0
  726. arg_msg = '非编辑状态不可用'
  727. GOTO ext
  728. END IF
  729. dw_bef.AcceptText()
  730. Long ll_dw_bef_rowcount
  731. ll_dw_bef_rowcount = dw_bef.RowCount()
  732. IF ll_dw_bef_rowcount <= 0 THEN
  733. rslt = 0
  734. arg_msg = '没有可复制的明细内容'
  735. GOTO ext
  736. END IF
  737. IF ll_dw_bef_rowcount > 0 THEN
  738. dw_aft.SetRedraw(FALSE)
  739. dw_aft.Reset()
  740. Long ls_i
  741. FOR ls_i = 1 TO ll_dw_bef_rowcount
  742. dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[ls_i]
  743. dw_aft.Object.u_mtrldef_mtrlcode[ls_i] = dw_bef.Object.u_mtrldef_mtrlcode[ls_i]
  744. dw_aft.Object.u_mtrldef_mtrlname[ls_i] = dw_bef.Object.u_mtrldef_mtrlname[ls_i]
  745. dw_aft.Object.u_mtrldef_mtrlmode[ls_i] = dw_bef.Object.u_mtrldef_mtrlmode[ls_i]
  746. dw_aft.Object.u_mtrldef_unit[ls_i] = dw_bef.Object.u_mtrldef_unit[ls_i]
  747. dw_aft.Object.ow_wfjgmx_in_aft_qty[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_qty[ls_i]
  748. dw_aft.Object.ow_wfjgmx_in_aft_status[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_status[ls_i]
  749. dw_aft.Object.ow_wfjgmx_in_aft_plancode[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_plancode[ls_i]
  750. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_mxdscrp[ls_i]
  751. dw_aft.Object.ow_wfjgmx_in_aft_unit[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_unit[ls_i]
  752. dw_aft.Object.ow_wfjgmx_in_aft_uqty[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_uqty[ls_i]
  753. dw_aft.Object.ow_wfjgmx_in_aft_rate[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_rate[ls_i]
  754. dw_aft.Object.ow_wfjgmx_in_aft_status[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_status[ls_i]
  755. dw_aft.Object.ow_wfjgmx_in_aft_woodcode[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_woodcode[ls_i]
  756. dw_aft.Object.ow_wfjgmx_in_aft_pcode[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_pcode[ls_i]
  757. NEXT
  758. dw_aft.SetRedraw(TRUE)
  759. END IF
  760. dw_aft.AcceptText()
  761. ext:
  762. RETURN rslt
  763. end function
  764. public function integer wf_copy (ref string arg_msg);Long rslt = 1
  765. Long ll_rowcount,ll_rowcount1
  766. ll_rowcount = dw_aft.RowCount()
  767. IF ll_rowcount <= 0 THEN
  768. rslt = 0
  769. arg_msg = '没有可复制的明细内容'
  770. GOTO ext
  771. END IF
  772. ll_rowcount1 = dw_bef.RowCount()
  773. ds_copy_aft.Reset()
  774. ds_copy_bef.Reset()
  775. IF dw_aft.RowsCopy(1, ll_rowcount, Primary!, ds_copy_aft, 1, Primary!) = - 1 THEN
  776. rslt = 0
  777. arg_msg = '复制收货明细内容失败!'
  778. GOTO ext
  779. END IF
  780. IF ll_rowcount1 > 0 THEN
  781. IF dw_bef.RowsCopy(1, ll_rowcount1, Primary!, ds_copy_bef, 1, Primary!) = - 1 THEN
  782. rslt = 0
  783. arg_msg = '复制外协商库存明细内容失败!'
  784. GOTO ext
  785. END IF
  786. END IF
  787. ds_copy_aft.AcceptText()
  788. ds_copy_bef.AcceptText()
  789. ext:
  790. RETURN rslt
  791. end function
  792. public function integer wf_paste (ref string arg_msg);Long rslt = 1
  793. IF NOT dw_edit_mode THEN
  794. rslt = 0
  795. arg_msg = '非编辑状态下不可粘贴'
  796. GOTO ext
  797. END IF
  798. Long ll_rowcount,ll_rowcount1
  799. ll_rowcount = ds_copy_aft.RowCount()
  800. IF ll_rowcount <= 0 THEN
  801. rslt = 0
  802. arg_msg = '没有可粘贴的收货明细内容'
  803. GOTO ext
  804. END IF
  805. ll_rowcount1 = ds_copy_bef.RowCount()
  806. dw_aft.Reset()
  807. dw_bef.Reset()
  808. IF ds_copy_aft.RowsCopy(1, ll_rowcount, Primary!, dw_aft, 1, Primary!) = - 1 THEN
  809. rslt = 0
  810. arg_msg = '粘贴收货明细内容失败!'
  811. GOTO ext
  812. END IF
  813. IF ll_rowcount1 > 0 THEN
  814. IF ds_copy_bef.RowsCopy(1, ll_rowcount1, Primary!, dw_bef, 1, Primary!) = - 1 THEN
  815. rslt = 0
  816. arg_msg = '粘贴外协商库存明细内容失败!'
  817. GOTO ext
  818. END IF
  819. END IF
  820. ext:
  821. RETURN rslt
  822. end function
  823. public subroutine wf_check_billfj ();String arg_msg
  824. Long ll_ConnectionID
  825. Long cur_billtype
  826. long ll_relid,ll_relid_mx,ll_scid
  827. Long ls_filecount = 0
  828. Int rslt = 1
  829. uo_fj_mng_billtype ls_uo_fjbt
  830. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  831. Long row,uc_relid
  832. row = dw_pageretr.GetRow()
  833. IF row > 0 THEN
  834. ll_relid = dw_pageretr.Object.inwareid[row]
  835. ll_scid = dw_pageretr.Object.ow_wfjg_in_scid[row]
  836. ll_relid_mx = 0
  837. ELSE
  838. rslt = 0
  839. GOTO ext
  840. END IF
  841. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  842. rslt = 0
  843. GOTO ext
  844. END IF
  845. cur_billtype = 214 //客户投拆单的 mainiD
  846. ls_uo_fjbt.uf_check_billfj( cur_billtype, ll_relid,ll_relid_mx,ll_scid, sys_fileDB_sqlca, arg_msg, ls_filecount)
  847. IF ls_filecount > 0 THEN
  848. rslt = 1
  849. GOTO ext
  850. ELSE
  851. rslt = 0
  852. GOTO ext
  853. END IF
  854. ext:
  855. wf_encl(rslt)
  856. DESTROY ls_uo_fjbt
  857. end subroutine
  858. 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);//==============================================================================
  859. // 函数: w_publ_1ton_share_detail::wf_xls_retrievedata()
  860. //------------------------------------------------------------------------------
  861. // 描述: 此函数需要 重载,复制祖先范例代码,然后修改retrieve参数部分两处即可
  862. //------------------------------------------------------------------------------
  863. Long LS_ROW,ll_id,i,ll_scid
  864. LS_ROW = dw_uc.GetRow()
  865. IF LS_ROW <= 0 THEN
  866. arg_msg = '没有目标单据!'
  867. RETURN 0
  868. END IF
  869. //修改点:获取 指定retriev参数
  870. ll_id = dw_uc.Object.#1[LS_ROW]
  871. ll_scid = dw_uc.Object.ow_wfjg_in_scid[LS_ROW]
  872. //查询所选模版是否含有图片信息
  873. Long ll_ifpic
  874. Long ll_classid
  875. SELECT ifpic
  876. INTO :ll_ifpic
  877. FROM U_XLS_Templates
  878. Where id = :ll_xls_Templatesid;
  879. IF sqlca.SQLCode <> 0 THEN
  880. ll_ifpic = 0
  881. END IF
  882. Long ll_i,ll_j
  883. Long ll_mtrlid
  884. Long ll_fileid
  885. Blob ls_filedata
  886. SetNull(ls_filedata)
  887. String Pathname,ls_filename,ls_filetype
  888. String errmsg
  889. uo_fj_mng_billtype ls_uo_fjbt
  890. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  891. s_xls_pic_list s_pic //结构数组-用于保存图片路径
  892. IF ll_ifpic = 1 THEN //如果含有图片信息,则查询本类型单据需要带出哪类附件
  893. SELECT classid
  894. INTO :ll_classid
  895. FROM u_billpic_fileclass
  896. Where (billtype = 214);
  897. IF sqlca.SQLCode <> 0 THEN
  898. ll_classid = 0
  899. END IF
  900. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  901. FOR ll_i = 1 TO dw_aft.RowCount()
  902. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ll_i]
  903. //取该附件类型中的第一个附件.
  904. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  905. FROM u_file
  906. WHERE relid = :ll_mtrlid
  907. AND classid = :ll_classid
  908. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  909. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  910. USING sys_fileDB_sqlca;
  911. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  912. ll_fileid = 0
  913. END IF
  914. IF ll_fileid > 0 THEN
  915. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  916. IF Trim(Pathname) <> '' THEN
  917. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  918. RETURN 0
  919. END IF
  920. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  921. RETURN 0
  922. ELSE
  923. s_pic.path[ll_i] = Pathname
  924. //记录临时文件位置,本窗口退出后删除
  925. wf_addlog_tempfilepathname(Pathname)
  926. END IF
  927. ELSE
  928. s_pic.path[ll_i] = ''
  929. END IF
  930. ELSE
  931. s_pic.path[ll_i] = ''
  932. END IF
  933. NEXT
  934. END IF
  935. //
  936. END IF
  937. ////可选设置///
  938. arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码
  939. if sys_option_xls_ifuse_passwd = 1 then arg_obj_st.uo_const.pwd = trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码
  940. boolean xls_locked
  941. xls_locked = not (sys_option_xls_lock = 1)
  942. /// Excel 的可选设置
  943. if arg_obj_st.of_setoption(arg_ationid, xls_locked,true,arg_msg) <> 1 then
  944. return 0
  945. end if
  946. for i = 1 to arg_str_billlist.count
  947. ////可选操作///
  948. arg_str_billlist.bill[i].ds_data = create datastore //
  949. arg_str_billlist.bill[i].ds_data.dataobject = arg_str_billlist.bill[i].datawindow //
  950. arg_str_billlist.bill[i].ds_data.settransobject(sqlca)
  951. //修改点:注意retrieve 参数与上文对应
  952. arg_str_billlist.bill[i].ds_data.retrieve(ll_scid,ll_id)
  953. next
  954. return 1
  955. end function
  956. public function integer wf_in_to_out (ref string arg_msg);Int rslt = 1
  957. Long ll_sptid
  958. Long uc_row
  959. uc_row = dw_uc.GetRow()
  960. IF uc_row <= 0 THEN
  961. rslt = 0
  962. arg_msg = '请先选择单据'
  963. GOTO ext
  964. END IF
  965. ll_sptid = dw_uc.Object.sptid[uc_row]
  966. IF ll_sptid <= 0 THEN
  967. rslt = 0
  968. arg_msg = '请先选择供应商'
  969. GOTO ext
  970. END IF
  971. IF NOT dw_edit_mode THEN
  972. rslt = 0
  973. arg_msg = '非编辑状态不可用'
  974. GOTO ext
  975. END IF
  976. dw_aft.AcceptText()
  977. Long child_llrow
  978. Long ll_dw_in_rowcount
  979. Long ll_i,i = 1,ll_itmx,ll_j
  980. Long ll_in_mtrlid
  981. Decimal ld_qty
  982. Long ll_row
  983. String ls_pfcode
  984. Decimal mtrlwaresum_qty,r_qty,i_qty,ins_qty,ins_planprice,ins_price
  985. Long ins_mtrlwareid
  986. String ins_status,ins_woodcode,ins_pcode,ins_plancode
  987. s_mtrldef_wfjg_array s_wfjg
  988. ll_dw_in_rowcount = dw_aft.RowCount()
  989. IF ll_dw_in_rowcount <= 0 THEN
  990. rslt = 0
  991. arg_msg = '没有收货明细内容'
  992. GOTO ext
  993. END IF
  994. dw_aft.AcceptText()
  995. dw_bef.AcceptText()
  996. dw_bef.SetRedraw(FALSE)
  997. dw_bef.Reset()
  998. FOR ll_i = 1 TO ll_dw_in_rowcount
  999. //数量 转换
  1000. IF sys_option_2unit = 0 THEN
  1001. dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] / dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i]
  1002. ELSE
  1003. IF dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] <> 0 THEN
  1004. dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] / dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i]
  1005. ELSE
  1006. dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] = 0
  1007. END IF
  1008. END IF
  1009. dw_aft.AcceptText()
  1010. ll_in_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ll_i]
  1011. ld_qty = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i]
  1012. //查找 收货对应的发出 明细
  1013. i =1
  1014. DECLARE cur_inmx CURSOR FOR
  1015. SELECT u_PrdPF.SonMtrlid,
  1016. u_mtrldef.mtrlcode,
  1017. u_mtrldef.mtrlname,
  1018. u_mtrldef.mtrlmode,
  1019. u_mtrldef.unit,
  1020. u_mtrldef.mtrlsectype,
  1021. u_mtrldef.zxmtrlmode,
  1022. :ld_qty * u_prdpf.Sonscale / (1 - u_PrdPF.sonloss) + u_PrdPF.SonDECLoss
  1023. FROM u_PrdPF INNER JOIN
  1024. u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid
  1025. Where ( u_PrdPF.mtrlid = :ll_in_mtrlid ) ;
  1026. OPEN cur_inmx;
  1027. FETCH cur_inmx INTO :s_wfjg.mtrlid[i],:s_wfjg.mtrlcode[i],
  1028. :s_wfjg.mtrlname[i],:s_wfjg.mtrlmode[i],:s_wfjg.unit[i],
  1029. :s_wfjg.mtrlsectype[i],:s_wfjg.zxmtrlmode[i],:s_wfjg.qty[i];
  1030. DO WHILE sqlca.SQLCode = 0
  1031. i++
  1032. FETCH cur_inmx INTO :s_wfjg.mtrlid[i],:s_wfjg.mtrlcode[i],
  1033. :s_wfjg.mtrlname[i],:s_wfjg.mtrlmode[i],:s_wfjg.unit[i],
  1034. :s_wfjg.mtrlsectype[i],:s_wfjg.zxmtrlmode[i],:s_wfjg.qty[i];
  1035. LOOP
  1036. CLOSE cur_inmx;
  1037. NEXT
  1038. ll_itmx = i - 1
  1039. FOR ll_j = 1 TO ll_itmx
  1040. r_qty = 0
  1041. SELECT isnull(sum(noallocqty),0)
  1042. INTO :mtrlwaresum_qty
  1043. FROM ow_wfjgware
  1044. WHERE mtrlid = :s_wfjg.mtrlid[ll_j]
  1045. AND sptid = :ll_sptid;
  1046. IF sqlca.SQLCode = 0 THEN
  1047. ELSEIF sqlca.SQLCode = 100 THEN
  1048. mtrlwaresum_qty = 0
  1049. ELSE
  1050. arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  1051. rslt = 0
  1052. GOTO ext
  1053. END IF
  1054. IF mtrlwaresum_qty = 0 THEN //没有库存, 直接插入一行
  1055. IF dw_bef.GetRow() <= 0 THEN
  1056. child_llrow = dw_bef.InsertRow(0)
  1057. ELSE
  1058. IF dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[dw_bef.GetRow()] > 0 THEN
  1059. child_llrow = dw_bef.InsertRow(0)
  1060. ELSE
  1061. child_llrow = dw_bef.GetRow()
  1062. END IF
  1063. END IF
  1064. dw_bef.Object.ow_wfjgmx_in_bef_mtrlwareid[child_llrow] = 0
  1065. dw_bef.Object.u_mtrldef_mtrlcode[child_llrow] = s_wfjg.mtrlcode[ll_j]
  1066. dw_bef.Object.ow_wfjgmx_in_bef_unit[child_llrow] = s_wfjg.unit[ll_j]
  1067. dw_bef.Object.ow_wfjgmx_in_bef_uqty[child_llrow] = s_wfjg.qty[ll_j]
  1068. dw_bef.Object.ow_wfjgmx_in_bef_qty[child_llrow] = s_wfjg.qty[ll_j]
  1069. dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[child_llrow] = s_wfjg.mtrlid[ll_j]
  1070. dw_bef.Object.u_mtrldef_unit[child_llrow] = s_wfjg.unit[ll_j]
  1071. dw_bef.Object.u_mtrldef_mtrlname[child_llrow] = s_wfjg.mtrlname[ll_j]
  1072. dw_bef.Object.ow_wfjgmx_in_bef_rate[child_llrow] = 1
  1073. dw_bef.Object.u_mtrldef_mtrlmode[child_llrow] = s_wfjg.mtrlmode[ll_j]
  1074. dw_bef.Object.u_mtrldef_mtrlsectype[child_llrow] = s_wfjg.mtrlsectype[ll_j]
  1075. dw_bef.Object.u_mtrldef_zxmtrlmode[child_llrow] = s_wfjg.zxmtrlmode[ll_j]
  1076. ELSE
  1077. //有库存,分配库存
  1078. DECLARE pf_cur CURSOR FOR
  1079. SELECT ow_wfjgware.mtrlwareid,
  1080. ow_wfjgware.noallocqty,
  1081. ow_wfjgware.cost,
  1082. ow_wfjgware.status,
  1083. ow_wfjgware.woodcode,
  1084. ow_wfjgware.pcode,
  1085. ow_wfjgware.plancode
  1086. FROM ow_wfjgware
  1087. WHERE ow_wfjgware.mtrlid = :s_wfjg.mtrlid[ll_j]
  1088. AND ow_wfjgware.sptid = :ll_sptid
  1089. Order By ow_wfjgware.noallocqty;
  1090. OPEN pf_cur;
  1091. FETCH pf_cur INTO :ins_mtrlwareid,:ins_qty,:ins_price,:ins_status,:ins_woodcode,:ins_pcode,:ins_plancode ;
  1092. DO WHILE sqlca.SQLCode = 0 AND r_qty < s_wfjg.qty[ll_j]
  1093. i_qty = ins_qty
  1094. r_qty = r_qty + i_qty
  1095. IF r_qty > s_wfjg.qty[ll_j] THEN
  1096. i_qty = ins_qty - ( r_qty - s_wfjg.qty[ll_j] )
  1097. END IF
  1098. IF dw_bef.GetRow() <= 0 THEN
  1099. child_llrow = dw_bef.InsertRow(0)
  1100. ELSE
  1101. IF dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[dw_bef.GetRow()] > 0 THEN
  1102. child_llrow = dw_bef.InsertRow(0)
  1103. ELSE
  1104. child_llrow = dw_bef.GetRow()
  1105. END IF
  1106. END IF
  1107. dw_bef.Object.ow_wfjgmx_in_bef_mtrlwareid[child_llrow] = ins_mtrlwareid
  1108. dw_bef.Object.u_mtrldef_mtrlcode[child_llrow] = s_wfjg.mtrlcode[ll_j]
  1109. dw_bef.Object.ow_wfjgmx_in_bef_unit[child_llrow] = s_wfjg.unit[ll_j]
  1110. dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[child_llrow] = s_wfjg.mtrlid[ll_j]
  1111. dw_bef.Object.u_mtrldef_unit[child_llrow] = s_wfjg.unit[ll_j]
  1112. dw_bef.Object.u_mtrldef_mtrlname[child_llrow] = s_wfjg.mtrlname[ll_j]
  1113. dw_bef.Object.ow_wfjgmx_in_bef_rate[child_llrow] = 1
  1114. dw_bef.Object.u_mtrldef_mtrlmode[child_llrow] = s_wfjg.mtrlmode[ll_j]
  1115. dw_bef.Object.u_mtrldef_mtrlsectype[child_llrow] = s_wfjg.mtrlsectype[ll_j]
  1116. dw_bef.Object.u_mtrldef_zxmtrlmode[child_llrow] = s_wfjg.zxmtrlmode[ll_j]
  1117. // IF ins_qty <= s_wfjg.qty[ll_j] THEN
  1118. // dw_bef.Object.ow_wfjgmx_in_bef_uqty[child_llrow] = i_qty
  1119. // dw_bef.Object.ow_wfjgmx_in_bef_qty[child_llrow] = i_qty
  1120. // ELSE
  1121. dw_bef.Object.ow_wfjgmx_in_bef_uqty[child_llrow] = s_wfjg.qty[ll_j]
  1122. dw_bef.Object.ow_wfjgmx_in_bef_qty[child_llrow] = s_wfjg.qty[ll_j]
  1123. // END IF
  1124. FETCH pf_cur INTO :ins_mtrlwareid,:ins_qty,:ins_price,:ins_status,:ins_woodcode,:ins_pcode,:ins_plancode ;
  1125. LOOP
  1126. CLOSE pf_cur;
  1127. END IF
  1128. NEXT
  1129. dw_bef.SetRedraw(TRUE)
  1130. ext:
  1131. RETURN rslt
  1132. end function
  1133. 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
  1134. LS_ROW = dw_pageretr.GetRow()
  1135. IF LS_ROW <= 0 THEN
  1136. arg_msg = '没有目标单据!'
  1137. RETURN 0
  1138. END IF
  1139. //修改点:获取 指定retriev参数
  1140. ll_id = dw_pageretr.Object.#1[LS_ROW]
  1141. ll_scid = dw_pageretr.Object.ow_wfjg_in_scid[LS_ROW]
  1142. Long ll_i,ll_j
  1143. Long ll_mtrlid
  1144. Long ll_fileid
  1145. Blob ls_filedata
  1146. SetNull(ls_filedata)
  1147. String Pathname,ls_filename,ls_filetype
  1148. String errmsg
  1149. uo_fj_mng_billtype ls_uo_fjbt
  1150. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  1151. Long ll_classid
  1152. SELECT classid
  1153. INTO :ll_classid
  1154. FROM u_billpic_fileclass
  1155. Where (billtype = 102);
  1156. IF sqlca.SQLCode <> 0 THEN
  1157. ll_classid = 0
  1158. END IF
  1159. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  1160. FOR ll_i = 1 TO dw_aft.RowCount()
  1161. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ll_i]
  1162. arg_s_pic.mtrlid[ll_i] = ll_mtrlid
  1163. //取该附件类型中的第一个附件.
  1164. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  1165. FROM u_file
  1166. WHERE relid = :ll_mtrlid
  1167. AND classid = :ll_classid
  1168. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  1169. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  1170. USING sys_fileDB_sqlca;
  1171. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  1172. ll_fileid = 0
  1173. END IF
  1174. IF ll_fileid > 0 THEN
  1175. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  1176. IF Trim(Pathname) <> '' THEN
  1177. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  1178. RETURN 0
  1179. END IF
  1180. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  1181. RETURN 0
  1182. ELSE
  1183. arg_s_pic.path[ll_i] = Pathname
  1184. //记录临时文件位置,本窗口退出后删除
  1185. wf_addlog_tempfilepathname(Pathname)
  1186. END IF
  1187. ELSE
  1188. arg_s_pic.path[ll_i] = ''
  1189. END IF
  1190. ELSE
  1191. arg_s_pic.path[ll_i] = ''
  1192. END IF
  1193. NEXT
  1194. END IF
  1195. RETURN 1
  1196. end function
  1197. public function integer wf_refresh_interface ();//wf_refresh_interface
  1198. IF dw_edit_mode THEN
  1199. cb_retrieve.Enabled = FALSE
  1200. cb_delet.Enabled = FALSE
  1201. cb_print.Enabled = FALSE
  1202. cb_viewprint.Enabled = FALSE
  1203. cb_auditing.Enabled = FALSE
  1204. cb_auditing_cancel.Enabled = FALSE
  1205. dw_pageretr.RBUTTON_FILTER_USE = FALSE //右键查询功能开关
  1206. dw_pageretr.titleclick_sort_use = FALSE //单击标题排序功能开关
  1207. // dw_child.titleclick_sort_use = TRUE //单击标题排序功能开关
  1208. dw_aft.RBUTTON_SETPOSITION_USE = FALSE //定位
  1209. dw_bef.RBUTTON_SETPOSITION_USE = FALSE //定位
  1210. cb_edit.Enabled = TRUE
  1211. cb_add.Enabled = TRUE
  1212. cb_xls.Enabled = FALSE
  1213. cb_edit.Text = "放弃&E"
  1214. cb_add.Text = "保存&S"
  1215. cb_edit.normalpicname = 'Undo.bmp'
  1216. cb_add.normalpicname = 'Save.bmp'
  1217. ELSE
  1218. cb_retrieve.Enabled = TRUE
  1219. cb_delet.Enabled = TRUE
  1220. cb_print.Enabled = TRUE
  1221. cb_viewprint.Enabled = TRUE
  1222. cb_auditing.Enabled = TRUE
  1223. cb_auditing_cancel.Enabled = TRUE
  1224. cb_add.Enabled = TRUE
  1225. cb_edit.Enabled = TRUE
  1226. cb_xls.Enabled = TRUE
  1227. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  1228. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  1229. // dw_child.titleclick_sort_use = FALSE //单击标题排序功能开关
  1230. dw_aft.RBUTTON_SETPOSITION_USE = TRUE //定位
  1231. dw_bef.RBUTTON_SETPOSITION_USE = TRUE //定位
  1232. cb_edit.Text = "修改&E"
  1233. cb_add.Text = "新建&S"
  1234. cb_edit.normalpicname = 'OPEN.bmp'
  1235. cb_add.normalpicname = 'new.bmp'
  1236. IF dw_pageretr.GetRow() <= 0 THEN
  1237. cb_edit.Enabled = FALSE
  1238. cb_delet.Enabled = FALSE
  1239. cb_addzy.Enabled = FALSE
  1240. cb_auditing.Enabled = FALSE
  1241. END IF
  1242. END IF
  1243. IF retrieve_all OR dw_edit_mode THEN
  1244. cb_nextpage.Enabled = FALSE
  1245. cb_retrieveall.Enabled = FALSE
  1246. em_pagerowno.Enabled = FALSE
  1247. cb_func.Enabled = FALSE
  1248. IF dw_edit_mode THEN
  1249. sle_usual_query.Enabled = FALSE
  1250. ELSE
  1251. sle_usual_query.Enabled = TRUE
  1252. END IF
  1253. ELSE
  1254. cb_nextpage.Enabled = TRUE
  1255. cb_retrieveall.Enabled = TRUE
  1256. em_pagerowno.Enabled = TRUE
  1257. sle_usual_query.Enabled = TRUE
  1258. cb_func.Enabled = TRUE
  1259. END IF
  1260. wf_lock_child()
  1261. //修改uc_taborder
  1262. IF dw_edit_mode THEN
  1263. dw_uc.TriggerEvent("ue_taborder")
  1264. IF dw_uc.ins_if_nomodify_uc_taborder THEN
  1265. Long ll_uc_int
  1266. FOR ll_uc_int = 1 TO uc_column_int
  1267. dw_uc.SetTabOrder (ll_uc_int,ll_uc_int*10 )
  1268. NEXT
  1269. END IF
  1270. ELSE
  1271. dw_uc.TriggerEvent("ue_taborder_cancel")
  1272. END IF
  1273. cb_edit.of_init_draw()
  1274. cb_add.of_init_draw()
  1275. cb_edit.of_paint()
  1276. cb_add.of_paint()
  1277. cb_add.TriggerEvent('ue_textchange')
  1278. cb_edit.TriggerEvent('ue_textchange')
  1279. ll_lastrow = 0
  1280. THIS.TriggerEvent('refresh_interface')
  1281. RETURN 1
  1282. end function
  1283. public function integer wf_in_to_out2 (ref string arg_msg);Int rslt = 1
  1284. Long ll_sptid
  1285. Long uc_row
  1286. uc_row = dw_uc.GetRow()
  1287. IF uc_row <= 0 THEN
  1288. rslt = 0
  1289. arg_msg = '请先选择单据'
  1290. GOTO ext
  1291. END IF
  1292. ll_sptid = dw_uc.Object.sptid[uc_row]
  1293. IF ll_sptid <= 0 THEN
  1294. rslt = 0
  1295. arg_msg = '请先选择供应商'
  1296. GOTO ext
  1297. END IF
  1298. IF NOT dw_edit_mode THEN
  1299. rslt = 0
  1300. arg_msg = '非编辑状态不可用'
  1301. GOTO ext
  1302. END IF
  1303. dw_aft.AcceptText()
  1304. Long child_llrow
  1305. Long ll_dw_in_rowcount
  1306. Long ll_i,i = 1,ll_itmx,ll_j
  1307. Long ll_in_mtrlid
  1308. Decimal ld_qty
  1309. Long ll_row
  1310. String ls_pfcode
  1311. Decimal mtrlwaresum_qty,r_qty,i_qty,ins_qty,ins_planprice,ins_price
  1312. Long ll_mtrlwareid
  1313. decimal li_cost
  1314. String ins_status,ins_woodcode,ins_pcode,ins_plancode
  1315. s_mtrldef_wfjg_array s_wfjg
  1316. ll_dw_in_rowcount = dw_aft.RowCount()
  1317. IF ll_dw_in_rowcount <= 0 THEN
  1318. rslt = 0
  1319. arg_msg = '没有收货明细内容'
  1320. GOTO ext
  1321. END IF
  1322. dw_aft.AcceptText()
  1323. dw_bef.AcceptText()
  1324. dw_bef.SetRedraw(FALSE)
  1325. dw_bef.Reset()
  1326. FOR ll_i = 1 TO ll_dw_in_rowcount
  1327. //数量 转换
  1328. IF sys_option_2unit = 0 THEN
  1329. dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] / dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i]
  1330. ELSE
  1331. IF dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] <> 0 THEN
  1332. dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] / dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i]
  1333. ELSE
  1334. dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] = 0
  1335. END IF
  1336. END IF
  1337. dw_aft.AcceptText()
  1338. ll_in_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ll_i]
  1339. ld_qty = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i]
  1340. //查找 收货对应的发出 明细
  1341. DECLARE cur_inmx CURSOR FOR
  1342. SELECT u_PrdPF.SonMtrlid,
  1343. u_mtrldef.mtrlcode,
  1344. u_mtrldef.mtrlname,
  1345. u_mtrldef.mtrlmode,
  1346. u_mtrldef.unit,
  1347. u_mtrldef.mtrlsectype,
  1348. u_mtrldef.zxmtrlmode,
  1349. :ld_qty * u_prdpf.Sonscale / (1 - u_PrdPF.sonloss) + u_PrdPF.SonDECLoss
  1350. FROM u_PrdPF INNER JOIN
  1351. u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid
  1352. Where ( u_PrdPF.mtrlid = :ll_in_mtrlid ) ;
  1353. OPEN cur_inmx;
  1354. FETCH cur_inmx INTO :s_wfjg.mtrlid[i],:s_wfjg.mtrlcode[i],
  1355. :s_wfjg.mtrlname[i],:s_wfjg.mtrlmode[i],:s_wfjg.unit[i],
  1356. :s_wfjg.mtrlsectype[i],:s_wfjg.zxmtrlmode[i],:s_wfjg.qty[i];
  1357. DO WHILE sqlca.SQLCode = 0
  1358. i++
  1359. FETCH cur_inmx INTO :s_wfjg.mtrlid[i],:s_wfjg.mtrlcode[i],
  1360. :s_wfjg.mtrlname[i],:s_wfjg.mtrlmode[i],:s_wfjg.unit[i],
  1361. :s_wfjg.mtrlsectype[i],:s_wfjg.zxmtrlmode[i],:s_wfjg.qty[i];
  1362. LOOP
  1363. CLOSE cur_inmx;
  1364. NEXT
  1365. ll_itmx = i - 1
  1366. FOR ll_j = 1 TO ll_itmx
  1367. li_cost=0
  1368. SELECT top 1 mtrlwareid,cost
  1369. INTO :ll_mtrlwareid,:li_cost
  1370. FROM ow_wfjgware
  1371. WHERE mtrlid = :s_wfjg.mtrlid[ll_j]
  1372. AND sptid = :ll_sptid
  1373. order by noallocqty desc;
  1374. IF sqlca.SQLCode = 0 THEN
  1375. ELSEIF sqlca.SQLCode = 100 THEN
  1376. ll_mtrlwareid = 0
  1377. ELSE
  1378. arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  1379. rslt = 0
  1380. GOTO ext
  1381. END IF
  1382. IF dw_bef.GetRow() <= 0 THEN
  1383. child_llrow = dw_bef.InsertRow(0)
  1384. ELSE
  1385. IF dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[dw_bef.GetRow()] > 0 THEN
  1386. child_llrow = dw_bef.InsertRow(0)
  1387. ELSE
  1388. child_llrow = dw_bef.GetRow()
  1389. END IF
  1390. END IF
  1391. dw_bef.Object.ow_wfjgmx_in_bef_mtrlwareid[child_llrow] = ll_mtrlwareid
  1392. dw_bef.Object.u_mtrldef_mtrlcode[child_llrow] = s_wfjg.mtrlcode[ll_j]
  1393. dw_bef.Object.ow_wfjgmx_in_bef_unit[child_llrow] = s_wfjg.unit[ll_j]
  1394. dw_bef.Object.ow_wfjgmx_in_bef_uqty[child_llrow] = s_wfjg.qty[ll_j]
  1395. dw_bef.Object.ow_wfjgmx_in_bef_qty[child_llrow] = s_wfjg.qty[ll_j]
  1396. dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[child_llrow] = s_wfjg.mtrlid[ll_j]
  1397. dw_bef.Object.u_mtrldef_unit[child_llrow] = s_wfjg.unit[ll_j]
  1398. dw_bef.Object.u_mtrldef_mtrlname[child_llrow] = s_wfjg.mtrlname[ll_j]
  1399. dw_bef.Object.ow_wfjgmx_in_bef_rate[child_llrow] = 1
  1400. dw_bef.Object.u_mtrldef_mtrlmode[child_llrow] = s_wfjg.mtrlmode[ll_j]
  1401. dw_bef.Object.u_mtrldef_mtrlsectype[child_llrow] = s_wfjg.mtrlsectype[ll_j]
  1402. dw_bef.Object.u_mtrldef_zxmtrlmode[child_llrow] = s_wfjg.zxmtrlmode[ll_j]
  1403. dw_bef.Object.ow_wfjgmx_in_bef_fprice[child_llrow] = li_cost
  1404. NEXT
  1405. dw_bef.SetRedraw(TRUE)
  1406. ext:
  1407. RETURN rslt
  1408. end function
  1409. public subroutine wf_change_sptid (long arg_sptid);Long ll_row
  1410. ll_row = dw_uc.GetRow()
  1411. IF ll_row <= 0 THEN RETURN
  1412. IF dw_uc.Object.sptid[ll_row] > 0 And dw_uc.Object.sptid[ll_row] <> arg_sptid THEN
  1413. dw_aft.Reset()
  1414. dw_bef.Reset()
  1415. This.TriggerEvent("insert_childrow")
  1416. This.TriggerEvent("insert_childrow_out")
  1417. END IF
  1418. RETURN
  1419. end subroutine
  1420. public function integer wf_get_price (long arg_row);IF arg_row <= 0 THEN RETURN 1
  1421. IF arg_row > dw_aft.RowCount() THEN RETURN 1
  1422. Long rslt = 1
  1423. Long ll_sptid, ll_moneyid
  1424. Long ll_i,ll_mtrlid
  1425. Decimal ls_1stnewcost,ls_1stzqrate,ls_1strate
  1426. String ls_sptmtrlname
  1427. String ls_1stunit, ls_unit
  1428. String ls_status,ls_woodcode,ls_pcode, ls_jgdscrp
  1429. String arg_msg
  1430. decimal lde_price, lde_rebate
  1431. dw_uc.AcceptText()
  1432. dw_aft.AcceptText()
  1433. ll_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]
  1434. IF ll_sptid = 0 THEN RETURN 1
  1435. //ll_moneyid = dw_uc.Object.u_buytask_moneyid[dw_uc.GetRow()]
  1436. //IF ll_moneyid = 0 THEN RETURN 1
  1437. SELECT moneyid Into :ll_moneyid From cw_currency Where native = 1;
  1438. IF sqlca.SQLCode <> 0 THEN
  1439. RETURN 1
  1440. END IF
  1441. dw_aft.SetRedraw(False)
  1442. ls_1stnewcost = 0
  1443. ls_1stzqrate = 0
  1444. ls_1strate = 0
  1445. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[arg_row]
  1446. ls_1stunit = dw_aft.Object.ow_wfjgmx_in_aft_unit[arg_row]
  1447. ls_unit = ls_1stunit
  1448. ls_status = dw_aft.Object.ow_wfjgmx_in_aft_status[arg_row]
  1449. ls_woodcode = dw_aft.Object.ow_wfjgmx_in_aft_woodcode[arg_row]
  1450. ls_pcode = dw_aft.Object.ow_wfjgmx_in_aft_pcode[arg_row]
  1451. ls_1stnewcost = 0
  1452. ls_1stzqrate = 1
  1453. IF uo_sptprice.uof_get_mtrl_buyprice(ll_sptid,ll_mtrlid,ls_1stunit,&
  1454. ls_status,ls_woodcode,ls_pcode,0,&
  1455. ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) <> 1 THEN
  1456. ls_1stunit = ls_unit
  1457. ls_1stnewcost = 0
  1458. ls_1stzqrate = 1
  1459. END IF
  1460. IF ls_1stnewcost = 0 THEN
  1461. rslt = 0
  1462. END IF
  1463. dw_aft.Object.ow_wfjgmx_in_aft_jgprice[arg_row] = ls_1stnewcost
  1464. dw_aft.Object.ow_wfjgmx_in_aft_rebate[arg_row] = ls_1stzqrate
  1465. dw_aft.SetRedraw(True)
  1466. RETURN rslt
  1467. end function
  1468. public function integer wf_aft_to_bef (ref string arg_msg);Long rslt = 1
  1469. IF Not dw_edit_mode THEN
  1470. rslt = 0
  1471. arg_msg = '非编辑状态不可用'
  1472. GOTO ext
  1473. END IF
  1474. dw_bef.AcceptText()
  1475. Long ll_dw_bef_rowcount
  1476. ll_dw_bef_rowcount = dw_aft.RowCount()
  1477. IF ll_dw_bef_rowcount <= 0 THEN
  1478. rslt = 0
  1479. arg_msg = '没有可复制的明细内容'
  1480. GOTO ext
  1481. END IF
  1482. IF ll_dw_bef_rowcount > 0 THEN
  1483. dw_bef.SetRedraw(False)
  1484. dw_bef.Reset()
  1485. Long ls_i
  1486. FOR ls_i = 1 To ll_dw_bef_rowcount
  1487. long ll_mtrlwareid,ll_mtrlid,ll_sptid
  1488. string ll_plancode,ll_status,ll_pcode,ll_woodcode
  1489. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ls_i]
  1490. ll_sptid = dw_uc.object.sptid[dw_uc.getrow()]
  1491. ll_plancode = dw_aft.Object.ow_wfjgmx_in_aft_plancode[ls_i]
  1492. ll_status = dw_aft.Object.ow_wfjgmx_in_aft_status[ls_i]
  1493. ll_pcode = dw_aft.Object.ow_wfjgmx_in_aft_pcode[ls_i]
  1494. ll_woodcode = dw_aft.Object.ow_wfjgmx_in_aft_woodcode[ls_i]
  1495. SELECT mtrlwareid
  1496. INTO :ll_mtrlwareid
  1497. FROM ow_wfjgware
  1498. WHERE mtrlid = :ll_mtrlid
  1499. AND sptid = :ll_sptid
  1500. AND plancode = :ll_plancode
  1501. AND status = :ll_status
  1502. AND pcode = :ll_pcode
  1503. AND woodcode = :ll_woodcode;
  1504. IF sqlca.SQLCode = 0 THEN
  1505. ELSEIF sqlca.SQLCode = 100 THEN
  1506. ll_mtrlwareid = 0
  1507. ELSE
  1508. arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  1509. rslt = 0
  1510. GOTO ext
  1511. END IF
  1512. dw_bef.Object.ow_wfjgmx_in_bef_mtrlwareid[ls_i] = ll_mtrlwareid
  1513. dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[ls_i] = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[ls_i]
  1514. dw_bef.Object.u_mtrldef_mtrlcode[ls_i] = dw_aft.Object.u_mtrldef_mtrlcode[ls_i]
  1515. dw_bef.Object.u_mtrldef_mtrlname[ls_i] = dw_aft.Object.u_mtrldef_mtrlname[ls_i]
  1516. dw_bef.Object.u_mtrldef_mtrlmode[ls_i] = dw_aft.Object.u_mtrldef_mtrlmode[ls_i]
  1517. dw_bef.Object.u_mtrldef_unit[ls_i] = dw_aft.Object.u_mtrldef_unit[ls_i]
  1518. dw_bef.Object.ow_wfjgmx_in_bef_qty[ls_i] = dw_aft.Object.ow_wfjgmx_in_aft_qty[ls_i]
  1519. dw_bef.Object.ow_wfjgmx_in_bef_status[ls_i] = dw_aft.Object.ow_wfjgmx_in_aft_status[ls_i]
  1520. dw_bef.Object.ow_wfjgmx_in_bef_plancode[ls_i] = dw_aft.Object.ow_wfjgmx_in_aft_plancode[ls_i]
  1521. dw_bef.Object.ow_wfjgmx_in_bef_mxdscrp[ls_i] = dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp[ls_i]
  1522. dw_bef.Object.ow_wfjgmx_in_bef_unit[ls_i] = dw_aft.Object.ow_wfjgmx_in_aft_unit[ls_i]
  1523. dw_bef.Object.ow_wfjgmx_in_bef_uqty[ls_i] = dw_aft.Object.ow_wfjgmx_in_aft_uqty[ls_i]
  1524. dw_bef.Object.ow_wfjgmx_in_bef_rate[ls_i] = dw_aft.Object.ow_wfjgmx_in_aft_rate[ls_i]
  1525. dw_aft.Object.ow_wfjgmx_in_aft_status[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_status[ls_i]
  1526. dw_aft.Object.ow_wfjgmx_in_aft_woodcode[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_woodcode[ls_i]
  1527. dw_aft.Object.ow_wfjgmx_in_aft_pcode[ls_i] = dw_bef.Object.ow_wfjgmx_in_bef_pcode[ls_i]
  1528. NEXT
  1529. dw_bef.SetRedraw(True)
  1530. END IF
  1531. dw_bef.AcceptText()
  1532. ext:
  1533. RETURN rslt
  1534. end function
  1535. public function integer wf_check_option_inware_checkqty (ref string arg_msg);Long rslt = 1
  1536. Long i,j,ll_check
  1537. dw_aft.AcceptText()
  1538. dw_bef.AcceptText()
  1539. FOR i = 1 To dw_aft.RowCount()
  1540. ll_check = 0
  1541. FOR j = 1 To dw_bef.RowCount()
  1542. IF dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[i] = dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[j] And &
  1543. dw_aft.Object.ow_wfjgmx_in_aft_status[i] = dw_bef.Object.ow_wfjgmx_in_bef_status[j] And &
  1544. dw_aft.Object.ow_wfjgmx_in_aft_woodcode[i] = dw_bef.Object.ow_wfjgmx_in_bef_woodcode[j] And &
  1545. dw_aft.Object.ow_wfjgmx_in_aft_pcode[i] = dw_bef.Object.ow_wfjgmx_in_bef_pcode[j] And &
  1546. dw_aft.Object.ow_wfjgmx_in_aft_plancode[i] = dw_bef.Object.ow_wfjgmx_in_bef_plancode[j] And &
  1547. dw_aft.Object.ow_wfjgmx_in_aft_qty[i] = dw_bef.Object.ow_wfjgmx_in_bef_qty[j] And &
  1548. dw_aft.Object.ow_wfjgmx_in_aft_uqty[i] = dw_bef.Object.ow_wfjgmx_in_bef_uqty[j] THEN
  1549. ll_check = 1
  1550. END IF
  1551. NEXT
  1552. IF ll_check = 0 THEN
  1553. rslt = 0
  1554. arg_msg='选项268 收货明细第' + string(i) + '行与外协商明细不对应!'
  1555. GOTO ext
  1556. END IF
  1557. NEXT
  1558. ext:
  1559. RETURN rslt
  1560. end function
  1561. public function integer wf_check_option_inware_checknoallocqty (ref string arg_msg);Long rslt = 1
  1562. Long i,j,ll_check
  1563. Long ll_mtrlid
  1564. Long ll_sptid
  1565. String ls_status,ls_woodecode,ls_pcode,ls_plancode
  1566. Decimal dec_noallocqty
  1567. dw_aft.AcceptText()
  1568. ll_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]
  1569. FOR i = 1 To dw_aft.RowCount()
  1570. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[i]
  1571. ls_status = dw_aft.Object.ow_wfjgmx_in_aft_status[i]
  1572. ls_woodecode = dw_aft.Object.ow_wfjgmx_in_aft_woodcode[i]
  1573. ls_pcode = dw_aft.Object.ow_wfjgmx_in_aft_pcode[i]
  1574. ls_plancode = dw_aft.Object.ow_wfjgmx_in_aft_plancode[i]
  1575. SELECT top 1 noallocqty INTO :dec_noallocqty FROM ow_wfjgware
  1576. WHERE mtrlid = :ll_mtrlid AND sptid = :ll_sptid AND status = :ls_status
  1577. And woodcode = :ls_woodecode And pcode = :ls_pcode And plancode = :ls_plancode;
  1578. IF dw_aft.Object.ow_wfjgmx_in_aft_qty[i] > dec_noallocqty THEN
  1579. rslt = 0
  1580. arg_msg = '选项269 第' + String(i) + '行超供应商库存数量!'
  1581. GOTO ext
  1582. END IF
  1583. NEXT
  1584. ext:
  1585. RETURN rslt
  1586. end function
  1587. public function integer wf_check_owware (ref string arg_msg);Long rslt = 1
  1588. Long i
  1589. Long li_scid,li_mtrlwareid
  1590. Long ll_sptid
  1591. Long row
  1592. Decimal dec_noallocqty
  1593. dw_bef.AcceptText()
  1594. row = dw_uc.GetRow()
  1595. ll_sptid = dw_uc.Object.sptid[row]
  1596. IF dw_uc.Object.inwareid[row] = 0 THEN
  1597. li_scid = cur_scid
  1598. ELSE
  1599. li_scid = dw_uc.Object.ow_wfjg_in_scid[row]
  1600. END IF
  1601. FOR i = 1 To dw_bef.RowCount()
  1602. li_mtrlwareid = dw_bef.object.ow_wfjgmx_in_bef_mtrlwareid[i]
  1603. SELECT noallocqty INTO :dec_noallocqty
  1604. FROM ow_wfjgware
  1605. INNER JOIN u_mtrldef ON ow_wfjgware.mtrlid = u_mtrldef.mtrlid
  1606. WHERE ( ow_wfjgware.mtrlwareid = :li_mtrlwareid )
  1607. And ( ow_wfjgware.scid = :li_scid );
  1608. IF ISNULL(dec_noallocqty) THEN dec_noallocqty = 0
  1609. IF dw_bef.Object.ow_wfjgmx_in_bef_qty[i] > dec_noallocqty THEN
  1610. rslt = 0
  1611. arg_msg = '选项269 第' + String(i) + '行超供应商库存数量!'
  1612. GOTO ext
  1613. END IF
  1614. NEXT
  1615. ext:
  1616. RETURN rslt
  1617. end function
  1618. on w_inware_wfjg.create
  1619. int iCurrent
  1620. call super::create
  1621. this.ddlb_scid=create ddlb_scid
  1622. this.st_3=create st_3
  1623. this.st_2=create st_2
  1624. this.tab_1=create tab_1
  1625. this.cb_in_2_out=create cb_in_2_out
  1626. this.ddlb_status=create ddlb_status
  1627. this.cb_cmpl=create cb_cmpl
  1628. this.cbx_cmpl=create cbx_cmpl
  1629. this.cbx_autocmp=create cbx_autocmp
  1630. this.cb_bef_to_aft=create cb_bef_to_aft
  1631. this.cbx_autocmp_1=create cbx_autocmp_1
  1632. this.cb_ware=create cb_ware
  1633. iCurrent=UpperBound(this.Control)
  1634. this.Control[iCurrent+1]=this.ddlb_scid
  1635. this.Control[iCurrent+2]=this.st_3
  1636. this.Control[iCurrent+3]=this.st_2
  1637. this.Control[iCurrent+4]=this.tab_1
  1638. this.Control[iCurrent+5]=this.cb_in_2_out
  1639. this.Control[iCurrent+6]=this.ddlb_status
  1640. this.Control[iCurrent+7]=this.cb_cmpl
  1641. this.Control[iCurrent+8]=this.cbx_cmpl
  1642. this.Control[iCurrent+9]=this.cbx_autocmp
  1643. this.Control[iCurrent+10]=this.cb_bef_to_aft
  1644. this.Control[iCurrent+11]=this.cbx_autocmp_1
  1645. this.Control[iCurrent+12]=this.cb_ware
  1646. end on
  1647. on w_inware_wfjg.destroy
  1648. call super::destroy
  1649. destroy(this.ddlb_scid)
  1650. destroy(this.st_3)
  1651. destroy(this.st_2)
  1652. destroy(this.tab_1)
  1653. destroy(this.cb_in_2_out)
  1654. destroy(this.ddlb_status)
  1655. destroy(this.cb_cmpl)
  1656. destroy(this.cbx_cmpl)
  1657. destroy(this.cbx_autocmp)
  1658. destroy(this.cb_bef_to_aft)
  1659. destroy(this.cbx_autocmp_1)
  1660. destroy(this.cb_ware)
  1661. end on
  1662. event retrieve_pageretr;Boolean cb_nextpage_enabled,cb_retrieveall_enabled
  1663. Boolean cb_func_enabled,cb_retrieve_enabled
  1664. cb_nextpage_enabled = cb_nextpage.Enabled
  1665. cb_retrieveall_enabled = cb_retrieveall.Enabled
  1666. cb_func_enabled = cb_func.Enabled
  1667. cb_nextpage.Enabled = FALSE
  1668. cb_retrieveall.Enabled = FALSE
  1669. cb_func.Enabled = FALSE
  1670. //只显未自已管的仓库
  1671. datawindowchild childdw
  1672. tab_1.tabpage_1.dw_1.SetTransObject (sqlca)
  1673. tab_1.tabpage_1.dw_1.GetChild("ow_wfjgmx_in_aft_storageid",childdw)
  1674. childdw.SetTransObject (sqlca)
  1675. IF childdw.Retrieve(cur_scid,sys_user_storageid) = 0 THEN
  1676. childdw.InsertRow(0)
  1677. END IF
  1678. //
  1679. dw_uc.Retrieve()
  1680. dw_pageretr.Retrieve(cur_scid,cur_flag,cur_secflag,sys_user_spttype)
  1681. IF dw_pageretr.RowCount() > 0 THEN
  1682. dw_pageretr.SetRow(1)
  1683. dw_pageretr.triggerevent(rowfocuschanged!)
  1684. end if
  1685. THIS.TriggerEvent('retrieve_childdw')
  1686. cb_nextpage.Enabled = cb_nextpage_enabled
  1687. cb_retrieveall.Enabled = cb_retrieveall_enabled
  1688. cb_func.Enabled = cb_func_enabled
  1689. end event
  1690. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  1691. if trim(sle_usual_query.text)<>'' then
  1692. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  1693. obj_expr=obj_expr+'( inwarecode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  1694. ELSE
  1695. obj_expr=obj_expr+'( inwarecode LIKE "'+trim(sle_usual_query.text)+'" )'
  1696. END IF
  1697. end if
  1698. dw_pageretr.setfilter(obj_expr)
  1699. dw_pageretr.SetRedraw(False)
  1700. dw_pageretr.filter()
  1701. if dw_pageretr.rowcount()>=1 then
  1702. dw_pageretr.selectrow(0,false)
  1703. dw_pageretr.selectrow(1,true)
  1704. dw_pageretr.SetRow(1)
  1705. dw_pageretr.triggerevent(rowfocuschanged!)
  1706. end if
  1707. dw_pageretr.SetRedraw(TRUE)
  1708. end event
  1709. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  1710. ls_newselect=lower(ori_oldselect)
  1711. if trim(sle_usual_query.text)<>'' then
  1712. if pos(trim(sle_usual_query.text),'%')=0 then
  1713. ls_querystrpart="(ow_wfjg_in.inwarecode like '%"+trim(sle_usual_query.text)+"%')"
  1714. else
  1715. ls_querystrpart="(ow_wfjg_in.inwarecode like '"+trim(sle_usual_query.text)+"')"
  1716. end if
  1717. if Pos(ls_newselect," where ") <> 0 then
  1718. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  1719. else
  1720. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  1721. end if
  1722. end if
  1723. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  1724. this.triggerevent('retrieve_pageretr')
  1725. end event
  1726. event open;THIS.TriggerEvent('ue_before_open')
  1727. wf_movetocenter()
  1728. OLD_TITLE = THIS.Title
  1729. s_tran = Message.PowerObjectParm
  1730. IF NOT IsNull(s_tran) THEN
  1731. retrieve_all = s_tran.if_retrieve_all
  1732. mode = s_tran.work_mode
  1733. arg_pkid = s_tran.arg_pkid
  1734. arg_string_code = s_tran.arg_string_code
  1735. if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效
  1736. ds_share = s_tran.ds_share
  1737. END IF
  1738. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  1739. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  1740. dw_pageretr.SetTransObject (sqlca)
  1741. pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字
  1742. ori_oldselect = dw_pageretr.DESCRIBE("DataWindow.Table.Select")
  1743. ls_newselect = ori_oldselect
  1744. ds_curquery = CREATE DATASTORE
  1745. ds_curquery.DataObject = 'd_extr_find'
  1746. ds_curquery.SetTransObject (sqlca)
  1747. wf_editindex_lockf()
  1748. IF s_tran.d_long = 2 THEN
  1749. cur_scid = s_tran.c_long
  1750. Int li_item
  1751. li_item = ddlb_scid.FindItem(s_tran.d_string,0)
  1752. IF li_item > 0 THEN
  1753. ddlb_scid.SelectItem(li_item)
  1754. END IF
  1755. END IF
  1756. sle_usual_query.Text = Trim(arg_string_code)
  1757. IF NOT retrieve_all THEN
  1758. THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve
  1759. ELSE
  1760. IF if_sharedata THEN
  1761. ds_share.ShareData(dw_pageretr)
  1762. ELSE
  1763. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  1764. THIS.TriggerEvent('RETRIEVE_pageretr')
  1765. END IF
  1766. END IF
  1767. IF retrieve_all THEN
  1768. THIS.TriggerEvent("ue_usual_query_filt")
  1769. END IF
  1770. uc_column_int = 9 //uc dw前7列可以编辑
  1771. child_column_int = 19//子dw前8列可以编辑
  1772. child_column_bef = 7 //子dw前8列可以编辑
  1773. uo_ware = CREATE uo_inware_wfjg
  1774. uo_ware.commit_transaction = sqlca
  1775. uo_sptprice = CREATE uo_spt_price
  1776. s_hide_col s_col
  1777. s_col.col_1 = 'ow_wfjgmx_in_aft_jgprice'
  1778. s_col.col_2 = 'ow_wfjgmx_in_aft_fprice'
  1779. s_col.col_3 = 'inamt'
  1780. s_col.col_4 = 'amt'
  1781. s_col.col_5 = 'ow_wfjgmx_in_aft_uprice'
  1782. s_col.col_6 = 'ow_wfjgmx_in_aft_price'
  1783. f_hide_col(1448,dw_aft,s_col)
  1784. s_hide_col s_col_mtrlsectype
  1785. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  1786. f_hide_col(1308,dw_aft,s_col_mtrlsectype)
  1787. f_hide_col(1308,dw_bef,s_col_mtrlsectype)
  1788. s_hide_col s_col_zxmtrlmode
  1789. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  1790. f_hide_col(1309,dw_aft,s_col_zxmtrlmode)
  1791. f_hide_col(1309,dw_bef,s_col_zxmtrlmode)
  1792. s_hide_col s_col_cost
  1793. s_col_cost.col_1 = 'ow_wfjgmx_in_bef_fprice'
  1794. s_col_cost.col_2 = 'inamt'
  1795. f_hide_col(123,dw_bef,s_col_cost)
  1796. end event
  1797. event refresh_interface;call super::refresh_interface;wf_flagstatus_rf()
  1798. ddlb_status.Enabled = NOT dw_edit_mode
  1799. cb_cmpl.Enabled = dw_edit_mode
  1800. IF dw_edit_mode THEN
  1801. ddlb_scid.Enabled = FALSE
  1802. ELSE
  1803. IF sys_scid > 0 THEN
  1804. ddlb_scid.Enabled = FALSE
  1805. ELSE
  1806. ddlb_scid.Enabled = TRUE
  1807. END IF
  1808. END IF
  1809. cb_in_2_out.Enabled = dw_edit_mode
  1810. cb_bef_to_aft.Enabled = dw_edit_mode
  1811. cb_ware.Enabled = dw_edit_mode
  1812. end event
  1813. event close;call super::close;destroy uo_ware
  1814. destroy uo_sptprice
  1815. wf_del_tempfilepathname()
  1816. end event
  1817. event ue_f8;//用于选择明细内容,被f8[默认]\dw_aft.doubleclicked调用
  1818. IF NOT dw_edit_mode THEN RETURN
  1819. Long child_row,ls_null,cnt_childdw
  1820. Long ll_storageid = 0
  1821. Long ll_sptid
  1822. Dec ls_lastprice,ls_rebate
  1823. String ls_unit_buy,ls_unit_scll,ls_unit_sale
  1824. Decimal ld_rate_buy,ld_rate_scll,ld_rate_sale
  1825. Int li_wfjgunit,li_wfjgdec
  1826. string ls_unit
  1827. long li_dec
  1828. Decimal ld_rate
  1829. s_mtrldef_array arg_s_mtrldef
  1830. s_edit_index_tran s_tranf8
  1831. s_tranf8.if_retrieve_all = FALSE
  1832. s_tranf8.arg_pkid = 0
  1833. s_tranf8.arg_string_code = ''
  1834. s_tranf8.b_long = 2
  1835. ll_storageid = dw_aft.Object.ow_wfjgmx_in_aft_storageid[dw_aft.GetRow()]
  1836. IF ll_storageid = 0 OR IsNull(ll_storageid) THEN
  1837. MessageBox('提示','请先选择仓库',information!,OK!)
  1838. RETURN
  1839. END IF
  1840. Long chc = 1,ls_j
  1841. SetNull(ls_null)
  1842. child_row = dw_aft.GetRow()
  1843. cnt_childdw = dw_aft.RowCount()
  1844. ll_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]
  1845. IF IsNull(ll_sptid) OR ll_sptid = 0 THEN
  1846. THIS.TriggerEvent("ue_f9")
  1847. END IF
  1848. dw_uc.AcceptText()
  1849. ll_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]
  1850. THIS.Enabled = FALSE
  1851. IF NOT IsValid(w_mtrldef_edit) THEN
  1852. s_edit_index_tran s_ch_tran
  1853. s_ch_tran.if_retrieve_all = FALSE
  1854. s_ch_tran.work_mode = 1
  1855. s_ch_tran.arg_pkid = 0
  1856. s_ch_tran.arg_string_code = ''
  1857. s_ch_tran.b_long = 3
  1858. s_ch_tran.c_long = ll_storageid
  1859. s_ch_tran.if_select_all = TRUE
  1860. dw_aft.AcceptText()
  1861. IF dw_aft.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_aft.Object.u_mtrldef_mtrlcode[dw_aft.GetRow()])
  1862. OpenWithParm(w_mtrldef_edit,s_ch_tran) //调用
  1863. s_mtrldef_array s_inscust
  1864. s_inscust = Message.PowerObjectParm //接受返回结构
  1865. FOR ls_j = 1 TO UpperBound(s_inscust.mtrlid)
  1866. IF s_inscust.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值
  1867. IF dw_aft.GetRow() > 0 THEN
  1868. IF dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[child_row] <> 0 THEN
  1869. child_row = dw_aft.InsertRow (0)
  1870. ELSE
  1871. child_row = dw_aft.GetRow()
  1872. END IF
  1873. ELSE
  1874. child_row = dw_aft.InsertRow (0)
  1875. END IF
  1876. IF f_find_mtrl_by_id(s_inscust.mtrlid[ls_j],arg_s_mtrldef) = 0 THEN
  1877. li_wfjgunit = 0
  1878. ls_unit_buy = ''
  1879. ls_unit_scll = ''
  1880. ls_unit_sale = ''
  1881. ld_rate_buy = 0
  1882. ld_rate_scll = 0
  1883. ld_rate_sale = 0
  1884. li_wfjgdec = 0
  1885. ELSE
  1886. li_wfjgunit = arg_s_mtrldef.wfjgunit[1]
  1887. ls_unit_buy = arg_s_mtrldef.unit_buy[1]
  1888. ls_unit_scll = arg_s_mtrldef.unit_scll[1]
  1889. ls_unit_sale = arg_s_mtrldef.unit_sale[1]
  1890. ld_rate_buy = arg_s_mtrldef.rate_buy[1]
  1891. ld_rate_scll = arg_s_mtrldef.rate_scll[1]
  1892. ld_rate_sale = arg_s_mtrldef.rate_sale[1]
  1893. li_wfjgdec = arg_s_mtrldef.wfjgdec[1]
  1894. END IF
  1895. IF li_wfjgunit = 0 THEN
  1896. ls_unit = s_inscust.unit[ls_j]
  1897. ld_rate = 1
  1898. li_dec = sys_option_unit_dec
  1899. ELSEIF li_wfjgunit = 1 THEN
  1900. ls_unit = ls_unit_buy
  1901. ld_rate = ld_rate_buy
  1902. li_dec = li_wfjgdec
  1903. ELSEIF li_wfjgunit = 2 THEN
  1904. ls_unit = ls_unit_scll
  1905. ld_rate = ld_rate_scll
  1906. li_dec = li_wfjgdec
  1907. ELSEIF li_wfjgunit = 3 THEN
  1908. ls_unit = ls_unit_sale
  1909. ld_rate = ld_rate_sale
  1910. li_dec = li_wfjgdec
  1911. END IF
  1912. dw_child.Object.ow_wfjgmx_in_aft_ifrel[child_row] = 1
  1913. dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[child_row] = s_inscust.mtrlid[ls_j]
  1914. dw_aft.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j]
  1915. dw_aft.Object.u_mtrldef_mtrlname[child_row] = s_inscust.mtrlname[ls_j]
  1916. dw_aft.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j]
  1917. dw_aft.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j]
  1918. dw_aft.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j]
  1919. dw_aft.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j]
  1920. dw_aft.Object.ow_wfjgmx_in_aft_unit[child_row] = ls_unit
  1921. dw_aft.Object.ow_wfjgmx_in_aft_rate[child_row] = ld_rate
  1922. dw_aft.Object.u_mtrldef_mtrlengname[child_row] = s_inscust.mtrlengname[ls_j]
  1923. dw_aft.Object.u_mtrldef_barcode[child_row] = s_inscust.barcode[ls_j]
  1924. wf_get_price(child_row)
  1925. // Decimal ls_1stnewcost,ls_1stzqrate,ls_1strate
  1926. // String arg_msg,ls_status,ls_woodcode,ls_pcode
  1927. // IF cur_editfocus = 1 THEN
  1928. // IF uo_sptprice.uf_getmtrlsptprice(ll_sptid,s_inscust.mtrlid[ls_j],s_inscust.unit[ls_j],ls_status,ls_woodcode,ls_pcode,0,ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) <> 1 THEN
  1929. // IF s_inscust.planprice[ls_j] = 0 THEN
  1930. // dw_aft.Object.ow_wfjgmx_in_aft_fprice[child_row] = s_inscust.lmbuyprice[ls_j]
  1931. // ELSE
  1932. // dw_aft.Object.ow_wfjgmx_in_aft_fprice[child_row] = s_inscust.planprice[ls_j]
  1933. // END IF
  1934. // ELSE
  1935. // dw_aft.Object.ow_wfjgmx_in_aft_jgprice[child_row] = ls_1stnewcost
  1936. // dw_aft.Object.ow_wfjgmx_in_aft_rebate[child_row] = ls_1stzqrate
  1937. // END IF
  1938. // END IF
  1939. dw_aft.Object.u_mtrldef_statusflag[child_row] = s_inscust.statusflag[ls_j]
  1940. dw_aft.Object.u_mtrldef_woodcodeflag[child_row] = s_inscust.woodcodeflag[ls_j]
  1941. dw_aft.Object.u_mtrldef_pcodeflag[child_row] = s_inscust.pcodeflag[ls_j]
  1942. dw_aft.Object.ow_wfjgmx_in_aft_status[child_row] = S_INSCUST.status[ls_j]
  1943. dw_aft.Object.ow_wfjgmx_in_aft_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  1944. dw_aft.Object.ow_wfjgmx_in_aft_pcode[child_row] = S_INSCUST.pcode[ls_j]
  1945. dw_aft.Object.u_mtrldef_mtrltype[child_row] = S_INSCUST.mtrltype[ls_j]
  1946. dw_aft.Object.u_mtrldef_handtype[child_row] = S_INSCUST.handtype[ls_j]
  1947. END IF
  1948. NEXT
  1949. END IF
  1950. THIS.Enabled = TRUE
  1951. THIS.TriggerEvent('ue_allowedit')
  1952. dw_aft.SetRedraw(TRUE)
  1953. dw_aft.SetFocus()
  1954. end event
  1955. event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid,uc_scid
  1956. row = dw_pageretr.GetRow()
  1957. IF row > 0 THEN
  1958. uc_scid = dw_pageretr.Object.ow_wfjg_in_scid[row]
  1959. uc_relid=dw_pageretr.object.inwareid[row]
  1960. dw_aft.SetRedraw (FALSE)
  1961. dw_aft.Retrieve(uc_scid,uc_relid,sys_option_2unit)
  1962. dw_aft.SetRedraw (TRUE)
  1963. dw_bef.SetRedraw (FALSE)
  1964. dw_bef.Retrieve(uc_scid,uc_relid,sys_option_2unit)
  1965. dw_bef.SetRedraw (TRUE)
  1966. ELSE
  1967. dw_aft.Reset()
  1968. dw_bef.Reset()
  1969. END IF
  1970. end event
  1971. event ue_f9;call super::ue_f9;//用于选择明细内容,被F9[默认]
  1972. IF Not dw_edit_mode THEN RETURN
  1973. Long uc_row
  1974. uc_row = dw_pageretr.GetRow()
  1975. IF uc_row = 0 THEN
  1976. MessageBox('提示','请选定进仓单!',information!,OK!)
  1977. RETURN
  1978. END IF
  1979. dw_uc.AcceptText()
  1980. This.Enabled = False
  1981. IF Not IsValid(W_spt_edit) THEN
  1982. s_edit_index_tran s_ch_tran //传递参数使用
  1983. s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行
  1984. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  1985. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  1986. //查询列(物料编码)部分内容,用于初步筛选
  1987. s_ch_tran.arg_string_code = Upper(Trim(dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()]))
  1988. OpenWithParm(W_spt_edit,s_ch_tran) //调用
  1989. S_spt S_INSCUST
  1990. S_INSCUST = Message.PowerObjectParm //接受返回结构
  1991. IF S_INSCUST.sptid > 0 THEN //正常返回值则可以取以下值
  1992. //重置dw_child
  1993. wf_change_sptid(S_INSCUST.sptid)
  1994. dw_uc.SetRedraw(False)
  1995. dw_uc.Object.sptid[uc_row] = S_INSCUST.sptid
  1996. dw_uc.Object.u_spt_name[uc_row] = S_INSCUST.Name
  1997. dw_uc.Object.u_spt_sptcode[uc_row] = S_INSCUST.sptcode
  1998. dw_uc.SetRedraw(True)
  1999. dw_uc.SetColumn("indate")
  2000. END IF
  2001. END IF
  2002. This.Enabled = True
  2003. end event
  2004. event ue_viewprint;call super::ue_viewprint;IF Not (f_power_ind(393) OR f_power_ind(456)) THEN
  2005. MessageBox('提示','你没有使用权限!',information!,OK!)
  2006. RETURN
  2007. END IF
  2008. Long LS_ROW
  2009. LS_ROW = dw_pageretr.GetRow()
  2010. IF LS_ROW <= 0 THEN
  2011. MessageBox('提示','没有打印目标单据!',information!,OK!)
  2012. RETURN
  2013. END IF
  2014. IF dw_pageretr.Object.flag[LS_ROW] <> 1 THEN
  2015. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  2016. RETURN
  2017. END IF
  2018. S_print_MSG LS_PRMSG
  2019. IF ls_newname <> '' THEN
  2020. IF li_auditprint = 1 THEN
  2021. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  2022. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  2023. RETURN
  2024. END IF
  2025. END IF
  2026. ls_prmsg.obj_dwNAME = ls_newname
  2027. ELSE
  2028. ls_prmsg.obj_dwNAME = 'dw_rp_inware_wfjg_edit'
  2029. END IF
  2030. LS_PRMSG.TAG_TEXT = '外协收货单'
  2031. LS_PRMSG.FILTER_STRING = ''
  2032. LS_PRMSG.retr_pram_falg = 15
  2033. LS_PRMSG.PAGECH_FLAG = 0
  2034. LS_PRMSG.retr_scid = dw_pageretr.Object.ow_wfjg_in_scid[LS_ROW]
  2035. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.inwareid[LS_ROW]
  2036. LS_PRMSG.rowcnt = dw_aft.RowCount()
  2037. IF ifpic = 1 THEN
  2038. String ls_msg
  2039. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  2040. MessageBox('提示','下载图片失败!',information!,OK!)
  2041. RETURN
  2042. END IF
  2043. END IF
  2044. OpenWithParm(w_publ_preview,LS_PRMSG)
  2045. IF ifpic = 1 THEN
  2046. Long li
  2047. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  2048. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  2049. FileDelete(LS_PRMSG.s_pic.path[li])
  2050. END IF
  2051. NEXT
  2052. END IF
  2053. //**更新打印次料
  2054. String arg_msg
  2055. printnum = Message.DoubleParm
  2056. f_update_printnum('u_inware',printnum,dw_pageretr.Object.ow_wfjg_in_scid[LS_ROW],dw_pageretr.Object.inwareid[LS_ROW],'','',arg_msg,TRUE)
  2057. end event
  2058. event ue_f7;call super::ue_f7;IF NOT dw_edit_mode THEN RETURN
  2059. Long childrow,ll_sptid,ls_j
  2060. childrow = dw_aft.GetRow()
  2061. String ls_unit_buy,ls_unit_scll,ls_unit_sale
  2062. Decimal ld_rate_buy,ld_rate_scll,ld_rate_sale
  2063. Int li_wfjgunit,li_wfjgdec
  2064. string ls_unit
  2065. long li_dec
  2066. Decimal ld_rate
  2067. Int li_statusflag,li_woodcodeflag,li_pcodeflag
  2068. s_mtrldef_array arg_s_mtrldef
  2069. ll_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]
  2070. IF ll_sptid <= 0 THEN
  2071. MessageBox("提示","请先选择供应商",information!,OK!)
  2072. RETURN
  2073. END IF
  2074. s_edit_index_tran s_tranf8
  2075. s_tranf8.if_retrieve_all = FALSE
  2076. s_tranf8.arg_pkid = 0
  2077. s_tranf8.arg_string_code = ''
  2078. s_tranf8.b_long = 2
  2079. s_tranf8.d_long = ll_sptid
  2080. s_tranf8.f_long = 0
  2081. s_tranf8.e_long = cur_scid
  2082. THIS.Enabled = FALSE
  2083. IF NOT IsValid(w_inware_wfjg_ch) THEN
  2084. OpenWithParm(w_inware_wfjg_ch,s_tranf8)
  2085. s_mtrldef_wfjg_array s_inscust
  2086. s_inscust = Message.PowerObjectParm //接受返回结构
  2087. dw_aft.SetRedraw(FALSE)
  2088. FOR ls_j = 1 TO UpperBound(s_inscust.wfjgid)
  2089. IF s_inscust.wfjgid[ls_j] > 0 THEN //正常返回值则可以取以下值
  2090. IF dw_aft.GetRow() > 0 THEN
  2091. IF dw_aft.Object.ow_wfjgmx_in_aft_relid[childrow] <> 0 THEN
  2092. childrow = dw_aft.InsertRow (0)
  2093. ELSE
  2094. childrow = dw_aft.GetRow()
  2095. END IF
  2096. ELSE
  2097. childrow = dw_aft.InsertRow (0)
  2098. END IF
  2099. dw_aft.Object.ow_wfjgmx_in_aft_ifrel[childrow] = 1
  2100. IF childrow > 1 THEN
  2101. dw_aft.AcceptText()
  2102. dw_aft.Object.ow_wfjgmx_in_aft_storageid[childrow] = dw_aft.Object.ow_wfjgmx_in_aft_storageid[childrow - 1]
  2103. END IF
  2104. IF f_find_mtrl(s_inscust.mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 THEN
  2105. li_statusflag = 0
  2106. li_woodcodeflag = 0
  2107. li_pcodeflag = 0
  2108. li_wfjgunit = 0
  2109. ls_unit_buy = ''
  2110. ls_unit_scll = ''
  2111. ls_unit_sale = ''
  2112. ld_rate_buy = 1
  2113. ld_rate_scll = 1
  2114. ld_rate_sale = 1
  2115. li_wfjgdec = 5
  2116. ELSE
  2117. li_statusflag = arg_s_mtrldef.statusflag[1]
  2118. li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
  2119. li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
  2120. li_wfjgunit = arg_s_mtrldef.wfjgunit[1]
  2121. ls_unit_buy = arg_s_mtrldef.unit_buy[1]
  2122. ls_unit_scll = arg_s_mtrldef.unit_scll[1]
  2123. ls_unit_sale = arg_s_mtrldef.unit_sale[1]
  2124. ld_rate_buy = arg_s_mtrldef.rate_buy[1]
  2125. ld_rate_scll = arg_s_mtrldef.rate_scll[1]
  2126. ld_rate_sale = arg_s_mtrldef.rate_sale[1]
  2127. li_wfjgdec = arg_s_mtrldef.wfjgdec[1]
  2128. END IF
  2129. IF li_wfjgunit = 0 THEN
  2130. ls_unit = s_inscust.unit[ls_j]
  2131. ld_rate = 1
  2132. li_dec = sys_option_unit_dec
  2133. ELSEIF li_wfjgunit = 1 THEN
  2134. ls_unit = ls_unit_buy
  2135. ld_rate = ld_rate_buy
  2136. li_dec = li_wfjgdec
  2137. ELSEIF li_wfjgunit = 2 THEN
  2138. ls_unit = ls_unit_scll
  2139. ld_rate = ld_rate_scll
  2140. li_dec = li_wfjgdec
  2141. ELSEIF li_wfjgunit = 3 THEN
  2142. ls_unit = ls_unit_sale
  2143. ld_rate = ld_rate_sale
  2144. li_dec = li_wfjgdec
  2145. END IF
  2146. dw_aft.Object.ow_wfjgmx_in_aft_relid[childrow] = s_inscust.wfjgid[ls_j]
  2147. dw_aft.Object.ow_wfjgmx_in_aft_relprintid[childrow] = s_inscust.printid[ls_j]
  2148. dw_aft.Object.ow_wfjgmx_in_aft_relcode[childrow] = s_inscust.taskcode[ls_j]
  2149. dw_aft.Object.ow_wfjgmx_in_aft_sptid_cusid[childrow] = 0 //s_inscust.orderid[ls_j]
  2150. dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[childrow] = s_inscust.mtrlid[ls_j]
  2151. dw_aft.Object.u_mtrldef_mtrlcode[childrow] = s_inscust.mtrlcode[ls_j]
  2152. dw_aft.Object.u_mtrldef_mtrlname[childrow] = s_inscust.mtrlname[ls_j]
  2153. dw_aft.Object.u_mtrldef_mtrlmode[childrow] = s_inscust.mtrlmode[ls_j]
  2154. dw_aft.Object.u_mtrldef_unit[childrow] = s_inscust.unit[ls_j]
  2155. dw_aft.Object.u_mtrldef_mtrlengname[childrow] = s_inscust.mtrlengname[ls_j]
  2156. dw_aft.Object.u_mtrldef_barcode[childrow] = s_inscust.barcode[ls_j]
  2157. dw_aft.Object.ow_wfjgmx_in_aft_unit[childrow] = ls_unit//s_inscust.unit[ls_j]
  2158. dw_aft.Object.ow_wfjgmx_in_aft_rate[childrow] = ld_rate//s_inscust.unit[ls_j]
  2159. dw_aft.Object.ow_wfjgmx_in_aft_qty[childrow] = s_inscust.qty[ls_j]
  2160. dw_aft.Object.ow_wfjgmx_in_aft_uqty[childrow] = s_inscust.qty[ls_j]/ ld_rate//s_inscust.qty[ls_j]
  2161. dw_aft.Object.ow_wfjgmx_in_aft_price[childrow] = s_inscust.price[ls_j]
  2162. dw_aft.Object.ow_wfjgmx_in_aft_jgprice[childrow] = s_inscust.price[ls_j]
  2163. dw_aft.Object.ow_wfjgmx_in_aft_status[childrow] = s_inscust.status[ls_j]
  2164. dw_aft.Object.ow_wfjgmx_in_aft_woodcode[childrow] = s_inscust.woodcode[ls_j]
  2165. dw_aft.Object.ow_wfjgmx_in_aft_pcode[childrow] = s_inscust.pcode[ls_j]
  2166. dw_aft.Object.u_mtrldef_mtrlsectype[childrow] = s_inscust.mtrlsectype[ls_j]
  2167. dw_aft.Object.u_mtrldef_zxmtrlmode[childrow] = s_inscust.zxmtrlmode[ls_j]
  2168. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp[childrow] = s_inscust.dscrp[ls_j]
  2169. dw_aft.Object.ow_wfjgmx_in_aft_storageid[childrow] = s_inscust.storageid[ls_j]
  2170. dw_aft.Object.u_mtrldef_statusflag[childrow] = li_statusflag
  2171. dw_aft.Object.u_mtrldef_woodcodeflag[childrow] = li_woodcodeflag
  2172. dw_aft.Object.u_mtrldef_pcodeflag[childrow] = li_pcodeflag
  2173. dw_aft.Object.ow_wfjgmx_in_aft_plancode[childrow] = s_inscust.plancode[ls_j]
  2174. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp2[childrow] = s_inscust.mxdscrp2[ls_j]
  2175. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp3[childrow] = s_inscust.mxdscrp3[ls_j]
  2176. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp4[childrow] = s_inscust.mxdscrp4[ls_j]
  2177. dw_aft.Object.u_saletask_relcode[childrow] = s_inscust.taskrelcode[ls_j]
  2178. END IF
  2179. NEXT
  2180. dw_aft.SetColumn('u_mtrldef_mtrlcode')
  2181. THIS.TriggerEvent('ue_allowedit')
  2182. dw_aft.SetRedraw(TRUE)
  2183. END IF
  2184. THIS.Enabled = TRUE
  2185. end event
  2186. event ue_print;call super::ue_print;IF Not (f_power_ind(393) OR f_power_ind(456)) THEN
  2187. MessageBox('提示','你没有使用权限!',information!,OK!)
  2188. RETURN
  2189. END IF
  2190. //--直接打印
  2191. uo_print_preview uo_print
  2192. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  2193. S_print_MSG LS_PRMSG
  2194. IF dw_pageretr.RowCount() = 0 THEN
  2195. MessageBox('提示','没有可打印的单据!',information!,OK!)
  2196. RETURN
  2197. END IF
  2198. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] <> 1 THEN
  2199. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  2200. RETURN
  2201. END IF
  2202. IF ls_newname <> '' THEN
  2203. IF li_auditprint = 1 THEN
  2204. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  2205. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  2206. RETURN
  2207. END IF
  2208. END IF
  2209. LS_PRMSG.obj_dwNAME = ls_newname
  2210. ELSE
  2211. LS_PRMSG.obj_dwNAME = 'dw_rp_inware_wfjg_edit'
  2212. END IF
  2213. LS_PRMSG.retr_pram_falg = 15
  2214. LS_PRMSG.TAG_TEXT = '外加工收货单'
  2215. LS_PRMSG.FILTER_STRING = ''
  2216. LS_PRMSG.PAGECH_FLAG = 0
  2217. LS_PRMSG.retr_scid = cur_scid
  2218. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.inwareid[dw_pageretr.GetRow()]
  2219. LS_PRMSG.rowcnt = dw_aft.RowCount()
  2220. IF ifpic = 1 THEN
  2221. String ls_msg
  2222. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  2223. MessageBox('提示','下载图片失败!',information!,OK!)
  2224. RETURN
  2225. END IF
  2226. END IF
  2227. uo_print.FACT_PRINT_MSG = LS_PRMSG
  2228. String arg_msg
  2229. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  2230. MessageBox("错误",arg_msg,stopsign!,OK!)
  2231. RETURN
  2232. END IF
  2233. uo_print.ds_print()
  2234. IF ifpic = 1 THEN
  2235. Long li
  2236. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  2237. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  2238. FileDelete(LS_PRMSG.s_pic.path[li])
  2239. END IF
  2240. NEXT
  2241. END IF
  2242. //**更新打印次料
  2243. f_update_printnum('u_inware',1,cur_scid,dw_pageretr.Object.inwareid[dw_pageretr.GetRow()],'','',arg_msg,TRUE)
  2244. end event
  2245. event ue_before_open;call super::ue_before_open;dw_aft = tab_1.tabpage_1.dw_1
  2246. dw_bef = tab_1.tabpage_2.dw_2
  2247. dw_aft.settransobject(sqlca)
  2248. dw_bef.settransobject(sqlca)
  2249. ds_copy_aft = CREATE datastore
  2250. ds_copy_aft.DataObject = dw_aft.dataobject
  2251. ds_copy_aft.SetTransObject(sqlca)
  2252. ds_copy_bef = CREATE datastore
  2253. ds_copy_bef.DataObject = dw_bef.dataobject
  2254. ds_copy_bef.SetTransObject(sqlca)
  2255. end event
  2256. event ue_f11;call super::ue_f11;//用于选择明细内容,被F8[默认]\dw_bef.doubleclicked调用
  2257. IF Not dw_edit_mode THEN RETURN
  2258. Long child_row,ll_sptid = 0
  2259. String ls_unit_buy,ls_unit_scll,ls_unit_sale
  2260. Decimal ld_rate_buy,ld_rate_scll,ld_rate_sale
  2261. Int li_wfjgunit,li_wfjgdec
  2262. string ls_unit
  2263. long li_dec
  2264. Decimal ld_rate
  2265. s_mtrldef_array arg_s_mtrldef
  2266. ll_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]
  2267. IF ll_sptid = 0 Or IsNull(ll_sptid) THEN
  2268. MessageBox('提示','请先选择加工商',information!,OK!)
  2269. RETURN
  2270. END IF
  2271. child_row = dw_bef.GetRow()
  2272. This.Enabled = False
  2273. IF Not IsValid(w_sptware_sptid_ch) THEN
  2274. s_edit_index_tran s_tranf8 //传递参数使用
  2275. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  2276. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  2277. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  2278. s_tranf8.b_long = - 1 //选择原料或产品
  2279. s_tranf8.d_long = ll_sptid
  2280. s_tranf8.f_long =cur_scid
  2281. Long chc = 1,ls_j
  2282. dw_bef.AcceptText()
  2283. IF dw_bef.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_bef.Object.u_mtrldef_mtrlcode[dw_bef.GetRow()])
  2284. OpenWithParm(w_sptware_sptid_ch,s_tranf8) //调用
  2285. s_sptware_array S_INSCUST
  2286. S_INSCUST = Message.PowerObjectParm //接受返回结构
  2287. FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  2288. IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN
  2289. IF dw_bef.GetRow() > 0 THEN
  2290. IF dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[child_row] <> 0 THEN
  2291. child_row = dw_bef.InsertRow (0)
  2292. ELSE
  2293. child_row = dw_bef.GetRow()
  2294. END IF
  2295. ELSE
  2296. child_row = dw_bef.InsertRow (0)
  2297. END IF
  2298. IF f_find_mtrl_by_id(s_inscust.mtrlid[ls_j],arg_s_mtrldef) = 0 THEN
  2299. li_wfjgunit = 0
  2300. ls_unit_buy = ''
  2301. ls_unit_scll = ''
  2302. ls_unit_sale = ''
  2303. ld_rate_buy = 0
  2304. ld_rate_scll = 0
  2305. ld_rate_sale = 0
  2306. li_wfjgdec = 0
  2307. ELSE
  2308. li_wfjgunit = arg_s_mtrldef.wfjgunit[1]
  2309. ls_unit_buy = arg_s_mtrldef.unit_buy[1]
  2310. ls_unit_scll = arg_s_mtrldef.unit_scll[1]
  2311. ls_unit_sale = arg_s_mtrldef.unit_sale[1]
  2312. ld_rate_buy = arg_s_mtrldef.rate_buy[1]
  2313. ld_rate_scll = arg_s_mtrldef.rate_scll[1]
  2314. ld_rate_sale = arg_s_mtrldef.rate_sale[1]
  2315. li_wfjgdec = arg_s_mtrldef.wfjgdec[1]
  2316. END IF
  2317. IF li_wfjgunit = 0 THEN
  2318. ls_unit = S_INSCUST.u_mtrldef_unit[ls_j]
  2319. ld_rate = 1
  2320. li_dec = sys_option_unit_dec
  2321. ELSEIF li_wfjgunit = 1 THEN
  2322. ls_unit = ls_unit_buy
  2323. ld_rate = ld_rate_buy
  2324. li_dec = li_wfjgdec
  2325. ELSEIF li_wfjgunit = 2 THEN
  2326. ls_unit = ls_unit_scll
  2327. ld_rate = ld_rate_scll
  2328. li_dec = li_wfjgdec
  2329. ELSEIF li_wfjgunit = 3 THEN
  2330. ls_unit = ls_unit_sale
  2331. ld_rate = ld_rate_sale
  2332. li_dec = li_wfjgdec
  2333. END IF
  2334. dw_bef.Object.ow_wfjgmx_in_bef_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  2335. dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  2336. dw_bef.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  2337. dw_bef.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  2338. dw_bef.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  2339. dw_bef.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  2340. dw_bef.Object.ow_wfjgmx_in_bef_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  2341. dw_bef.Object.ow_wfjgmx_in_bef_fprice[child_row] = S_INSCUST.cost[ls_j]
  2342. dw_bef.Object.ow_wfjgmx_in_bef_plancode[child_row] = S_INSCUST.plancode[ls_j]
  2343. dw_bef.Object.ow_wfjgmx_in_bef_status[child_row] = S_INSCUST.status[ls_j]
  2344. dw_bef.Object.ow_wfjgmx_in_bef_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  2345. dw_bef.Object.ow_wfjgmx_in_bef_pcode[child_row] = S_INSCUST.pcode[ls_j]
  2346. dw_bef.Object.ow_wfjgmx_in_bef_uqty[child_row] = S_INSCUST.noallocqty[ls_j]/ld_rate
  2347. dw_bef.Object.ow_wfjgmx_in_bef_rate[child_row] = ld_rate//1
  2348. dw_bef.Object.ow_wfjgmx_in_bef_unit[child_row] = ls_unit//S_INSCUST.u_mtrldef_unit[ls_j]
  2349. dw_bef.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.mtrlsectype[ls_j]
  2350. dw_bef.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.zxmtrlmode[ls_j]
  2351. dw_bef.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST.mtrlengname[ls_j]
  2352. dw_bef.Object.u_mtrldef_barcode[child_row] = S_INSCUST.barcode[ls_j]
  2353. dw_bef.SetColumn('ow_wfjgmx_in_bef_qty')
  2354. END IF
  2355. NEXT
  2356. END IF
  2357. This.Enabled = True
  2358. end event
  2359. event resize;ln_bar.EndX = THIS.Width
  2360. ln_bar2.EndX = THIS.Width
  2361. ln_1.EndX = THIS.Width
  2362. ln_2.EndX = THIS.Width
  2363. r_bar.Width = THIS.Width
  2364. Long w_width,w_height
  2365. w_width = 3602
  2366. w_height = 2300
  2367. IF newwidth < w_width THEN THIS.Width = w_width
  2368. IF newheight < w_height THEN THIS.Height = w_height
  2369. //dw_child.Width = THIS.Width - (w_width - dw_child_w)
  2370. //dw_child.Height = THIS.Height - (w_height - dw_child_h)
  2371. //dw_pageretr.Width = THIS.Width - (w_width - dw_pageretr_w)
  2372. //==============================================================================
  2373. //YYX081007
  2374. //==============================================================================
  2375. IF uc_width > 0 THEN
  2376. dw_uc.Width = uc_width
  2377. END IF
  2378. IF uc_height > 0 THEN
  2379. dw_uc.Height = uc_height
  2380. END IF
  2381. dw_pageretr.X = dw_uc.X + dw_uc.Width
  2382. dw_pageretr.Width = THIS.Width - dw_pageretr.X - 40
  2383. dw_pageretr.Height = dw_uc.Height
  2384. tab_1.Y = dw_uc.Y + dw_uc.Height + 4
  2385. tab_1.Width = THIS.Width - tab_1.X - 40
  2386. tab_1.Height = THIS.Height - tab_1.Y - 150
  2387. cb_in_2_out.y = tab_1.Y + 5
  2388. cb_cmpl.y = tab_1.Y + 5
  2389. cbx_cmpl.y = tab_1.Y + 10
  2390. cb_bef_to_aft.y = tab_1.Y + 5
  2391. cb_ware.y=cb_bef_to_aft.y
  2392. dw_aft.Width = THIS.Width - (3602 - 3515)
  2393. dw_aft.Height = tab_1.Height - 130
  2394. dw_bef.Width = THIS.Width - (3602 - 3515)
  2395. dw_bef.Height = tab_1.Height - 130
  2396. this.triggerevent('resize_p')
  2397. end event
  2398. event ue_addmx;if tab_1.SelectedTab = 1 then
  2399. this.triggerevent('ue_f8')
  2400. dw_aft.SetFocus()
  2401. else
  2402. this.triggerevent('ue_f11')
  2403. dw_bef.SetFocus()
  2404. end if
  2405. end event
  2406. event ue_deletemx;IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN
  2407. if tab_1.SelectedTab = 1 then
  2408. IF dw_aft.GETROW()=0 THEN
  2409. MESSAGEBOX('提示','请选择删除的行对象!',information!,OK!)
  2410. RETURN
  2411. END IF
  2412. dw_aft.DeleteRow (0)
  2413. dw_aft.TriggerEvent (rowfocuschanged!)
  2414. else
  2415. IF dw_bef.GETROW()=0 THEN
  2416. MESSAGEBOX('提示','请选择删除的行对象!',information!,OK!)
  2417. RETURN
  2418. END IF
  2419. dw_bef.DeleteRow (0)
  2420. dw_bef.TriggerEvent (rowfocuschanged!)
  2421. end if
  2422. end event
  2423. event ue_addzy;call super::ue_addzy;IF dw_edit_mode THEN
  2424. MessageBox('提示',"编辑状态下不可以使用!",information!,OK!)
  2425. return
  2426. END IF
  2427. IF NOT (f_power_ind(809) or f_power_ind(810)) THEN
  2428. MessageBox('提示','你没有使用权限!',information!,OK!)
  2429. RETURN
  2430. END IF
  2431. string arg_msg=''
  2432. string ls_str
  2433. long uc_row
  2434. s_inputbox s_sreu
  2435. uc_row=dw_pageretr.getrow()
  2436. if uc_row<=0 then
  2437. messagebox('提示','请选定当前目标单据!',information!,OK!)
  2438. return
  2439. end if
  2440. s_sreu.title='请输入要补充到备注的内容'
  2441. s_sreu.old_text=''
  2442. openwithparm(w_inputbox,s_sreu)
  2443. ls_str=message.stringparm
  2444. if trim(ls_str)='' or isnull(ls_str) then return
  2445. if uo_ware.add_dscrp(dw_pageretr.object.ow_wfjg_in_scid[uc_row],dw_pageretr.object.inwareid[uc_row],ls_str,arg_msg)=0 then
  2446. messagebox('错误',arg_msg,stopsign!,OK!)
  2447. return
  2448. else
  2449. messagebox('提示','添加备注操作成功!',information!,OK!)
  2450. wf_refresh_curuc(dw_pageretr.object.ow_wfjg_in_scid[uc_row],dw_pageretr.object.inwareid[uc_row])
  2451. end if
  2452. end event
  2453. event ue_rpt_print;call super::ue_rpt_print;IF Not (f_power_ind(393) OR f_power_ind(456)) THEN
  2454. MessageBox('提示','你没有使用权限!',information!,OK!)
  2455. RETURN
  2456. END IF
  2457. Long row,uc_relid,ll_scid
  2458. row = dw_pageretr.GetRow()
  2459. IF row = 0 THEN RETURN
  2460. uo_rpt_print_preview uo_print
  2461. S_rpt_print_MSG LS_PRMSG
  2462. IF dw_pageretr.RowCount() = 0 THEN
  2463. MessageBox('提示','没有可打印的单据!',information!,OK!)
  2464. RETURN
  2465. END IF
  2466. IF ls_rpname = '' THEN RETURN
  2467. IF li_auditprint = 1 THEN
  2468. IF dw_pageretr.Object.flag[row] = 0 THEN
  2469. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  2470. RETURN
  2471. END IF
  2472. END IF
  2473. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  2474. LS_PRMSG.retr_pram_falg = 15
  2475. LS_PRMSG.TAG_TEXT = THIS.Title
  2476. LS_PRMSG.rpname = ls_rpname
  2477. LS_PRMSG.FILTER_STRING = ''
  2478. LS_PRMSG.PAGECH_FLAG = 0
  2479. LS_PRMSG.rpid = ls_msgprintid_rpt
  2480. LS_PRMSG.retr_scid = dw_pageretr.Object.ow_wfjg_in_scid[row]
  2481. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.inwareid[row]
  2482. LS_PRMSG.rowcnt = dw_aft.RowCount()
  2483. uo_print.FACT_PRINT_MSG = LS_PRMSG
  2484. String arg_msg
  2485. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  2486. MessageBox("错误",arg_msg,stopsign!,OK!)
  2487. RETURN
  2488. END IF
  2489. uo_print.ds_print()
  2490. //**更新打印次料
  2491. printnum = Message.DoubleParm
  2492. f_update_printnum('u_inware',printnum,dw_pageretr.Object.ow_wfjg_in_scid[ROW],dw_pageretr.Object.inwareid[ROW],'','',arg_msg,TRUE)
  2493. end event
  2494. event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF Not (f_power_ind(393) OR f_power_ind(456)) THEN
  2495. MessageBox('提示','你没有使用权限!',information!,OK!)
  2496. RETURN
  2497. END IF
  2498. Long row,uc_relid,ll_scid
  2499. row = dw_pageretr.GetRow()
  2500. IF row = 0 THEN RETURN
  2501. IF ls_rpname = '' THEN RETURN
  2502. IF li_auditprint = 1 THEN
  2503. IF dw_pageretr.Object.flag[row] = 0 THEN
  2504. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  2505. RETURN
  2506. END IF
  2507. END IF
  2508. s_rpt_print_msg s_print
  2509. s_print.retr_pram_falg = 15
  2510. s_print.rpid = ls_msgprintid_rpt
  2511. s_print.retr_flag = TRUE
  2512. s_print.tag_text = THIS.Title
  2513. s_print.rpname = ls_rpname
  2514. s_print.retr_scid = dw_pageretr.Object.ow_wfjg_in_scid[row]
  2515. s_print.retr_pramnmb = dw_pageretr.Object.inwareid[row]
  2516. s_print.rowcnt = dw_aft.RowCount()
  2517. OpenWithParm(w_rpt_preview,s_print)
  2518. //**更新打印次料
  2519. String arg_msg
  2520. printnum = Message.DoubleParm
  2521. f_update_printnum('u_inware',printnum,dw_pageretr.Object.ow_wfjg_in_scid[row],dw_pageretr.Object.inwareid[row],'','',arg_msg,TRUE)
  2522. end event
  2523. event ue_insertmx;Long ll_childrow,li_row
  2524. IF tab_1.SelectedTab = 1 THEN
  2525. ll_childrow = dw_aft.GetRow()
  2526. li_row = dw_aft.InsertRow(ll_childrow)
  2527. dw_aft.SelectRow(0,FALSE)
  2528. dw_aft.SetRow(li_row)
  2529. dw_aft.ScrollToRow(li_row)
  2530. dw_aft.SelectRow(li_row,TRUE)
  2531. ELSE
  2532. ll_childrow = dw_bef.GetRow()
  2533. li_row = dw_bef.InsertRow(ll_childrow)
  2534. dw_bef.SelectRow(0,FALSE)
  2535. dw_bef.SetRow(li_row)
  2536. dw_bef.ScrollToRow(li_row)
  2537. dw_bef.SelectRow(li_row,TRUE)
  2538. END IF
  2539. end event
  2540. event ue_copyrow;IF NOT dw_edit_mode THEN RETURN
  2541. Long ll_childrow
  2542. Long ll_i
  2543. Long ll_j
  2544. IF tab_1.SelectedTab = 1 THEN
  2545. ll_childrow = dw_aft.GetRow()
  2546. IF ll_childrow = 0 THEN
  2547. MessageBox('提示','请选择复制对象!',information!,OK!)
  2548. RETURN
  2549. END IF
  2550. ll_j = 0
  2551. FOR ll_i = 1 TO dw_aft.RowCount()
  2552. IF dw_aft.IsSelected(ll_i) THEN
  2553. ll_j++
  2554. dw_aft.RowsCopy (ll_i,ll_i,Primary!,ds_copy_aft,ll_j,Primary!)
  2555. END IF
  2556. NEXT
  2557. FOR ll_i = 1 TO ds_copy_aft.RowCount()
  2558. ds_copy_aft.RowsCopy (ll_i,ll_i,Primary!,dw_aft,ll_childrow + ll_i,Primary!)
  2559. NEXT
  2560. ds_copy_aft.Reset()
  2561. dw_aft.SelectRow(0,FALSE)
  2562. dw_aft.SetRow(ll_childrow + 1)
  2563. dw_aft.ScrollToRow(ll_childrow + 1)
  2564. dw_aft.SelectRow(ll_childrow + 1,TRUE)
  2565. ELSE
  2566. ll_childrow = dw_bef.GetRow()
  2567. IF ll_childrow = 0 THEN
  2568. MessageBox('提示','请选择复制对象!',information!,OK!)
  2569. RETURN
  2570. END IF
  2571. FOR ll_i = 1 TO dw_bef.RowCount()
  2572. IF dw_bef.IsSelected(ll_i) THEN
  2573. ll_j++
  2574. dw_bef.RowsCopy (ll_i,ll_i,Primary!,ds_copy_bef,ll_j,Primary!)
  2575. END IF
  2576. NEXT
  2577. FOR ll_i = 1 TO ds_copy_bef.RowCount()
  2578. ds_copy_bef.RowsCopy (ll_i,ll_i,Primary!,dw_bef,ll_childrow + ll_i,Primary!)
  2579. NEXT
  2580. ds_copy_bef.Reset()
  2581. dw_bef.SelectRow(0,FALSE)
  2582. dw_bef.SetRow(ll_childrow + 1)
  2583. dw_bef.ScrollToRow(ll_childrow + 1)
  2584. dw_bef.SelectRow(ll_childrow + 1,TRUE)
  2585. END IF
  2586. end event
  2587. event ue_cutcol;IF NOT dw_edit_mode THEN
  2588. MessageBox('提示','非编辑状态下不可用',information!,OK!)
  2589. RETURN
  2590. END IF
  2591. IF tab_1.SelectedTab = 1 THEN
  2592. dw_aft.SetFocus()
  2593. dw_aft.Cut()
  2594. ELSE
  2595. dw_bef.SetFocus()
  2596. dw_bef.Cut()
  2597. END IF
  2598. end event
  2599. event ue_copycol;IF NOT dw_edit_mode THEN
  2600. MessageBox('提示','非编辑状态下不可用',information!,OK!)
  2601. RETURN
  2602. END IF
  2603. IF tab_1.SelectedTab = 1 THEN
  2604. dw_aft.SetFocus()
  2605. dw_aft.Copy()
  2606. ELSE
  2607. dw_bef.SetFocus()
  2608. dw_bef.Copy()
  2609. END IF
  2610. end event
  2611. event ue_pastecol;IF NOT dw_edit_mode THEN
  2612. MessageBox('提示','非编辑状态下不可用',information!,OK!)
  2613. RETURN
  2614. END IF
  2615. IF tab_1.SelectedTab = 1 THEN
  2616. dw_aft.SetFocus()
  2617. dw_aft.Paste()
  2618. ELSE
  2619. dw_bef.SetFocus()
  2620. dw_bef.Paste()
  2621. END IF
  2622. end event
  2623. event ue_f6;call super::ue_f6;IF NOT dw_edit_mode THEN RETURN
  2624. Long ll_mtrlid
  2625. s_unit s_inscust
  2626. IF sys_option_2unit <> 0 THEN
  2627. s_edit_index_tran s_tran_unit
  2628. IF sys_option_2unit_ch = 1 THEN
  2629. IF NOT IsValid(w_unit_ch) THEN
  2630. IF tab_1.SelectedTab = 1 THEN
  2631. IF dw_aft.GetRow() < 1 THEN RETURN
  2632. dw_aft.accepttext()
  2633. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[dw_aft.GetRow()]
  2634. OpenWithParm(w_unit_ch,ll_mtrlid)
  2635. s_inscust = Message.PowerObjectParm //接受返回结构
  2636. IF s_inscust.unit <> '' THEN
  2637. dw_aft.Object.ow_wfjgmx_in_aft_unit[dw_aft.GetRow()] = s_inscust.unit
  2638. dw_aft.Object.ow_wfjgmx_in_aft_rate[dw_aft.GetRow()] = s_inscust.rate
  2639. IF s_inscust.ReturnType = 0 THEN
  2640. IF dw_aft.Object.ow_wfjgmx_in_aft_uqty[dw_aft.GetRow()] > 0 THEN
  2641. dw_aft.Object.ow_wfjgmx_in_aft_qty[dw_aft.GetRow()] = Round(s_inscust.rate * dw_aft.Object.ow_wfjgmx_in_aft_uqty[dw_aft.GetRow()],sys_option_unit_dec)
  2642. END IF
  2643. dw_aft.SetColumn( 'ow_wfjgmx_in_aft_qty')
  2644. ELSE
  2645. IF s_inscust.rate > 0 THEN
  2646. dw_aft.Object.ow_wfjgmx_in_aft_uqty[dw_aft.GetRow()] = Round(dw_aft.Object.ow_wfjgmx_in_aft_qty[dw_aft.GetRow()] /s_inscust.rate ,sys_option_unit_dec)
  2647. END IF
  2648. dw_aft.SetColumn( 'ow_wfjgmx_in_aft_uqty')
  2649. END IF
  2650. END IF
  2651. ELSE
  2652. IF dw_bef.GetRow() < 1 THEN RETURN
  2653. ll_mtrlid = dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[dw_bef.GetRow()]
  2654. OpenWithParm(w_unit_ch,ll_mtrlid)
  2655. s_inscust = Message.PowerObjectParm //接受返回结构
  2656. IF s_inscust.unit <> '' THEN
  2657. dw_bef.Object.ow_wfjgmx_in_bef_unit[dw_bef.GetRow()] = s_inscust.unit
  2658. dw_bef.Object.ow_wfjgmx_in_bef_rate[dw_bef.GetRow()] = s_inscust.rate
  2659. IF s_inscust.ReturnType = 0 THEN
  2660. IF dw_bef.Object.ow_wfjgmx_in_bef_uqty[dw_bef.GetRow()] > 0 THEN
  2661. dw_bef.Object.ow_wfjgmx_in_bef_qty[dw_bef.GetRow()] = Round(s_inscust.rate * dw_bef.Object.ow_wfjgmx_in_bef_uqty[dw_bef.GetRow()],sys_option_unit_dec)
  2662. END IF
  2663. dw_bef.SetColumn( 'ow_wfjgmx_in_bef_qty')
  2664. ELSE
  2665. IF s_inscust.rate > 0 THEN
  2666. dw_bef.Object.ow_wfjgmx_in_bef_uqty[dw_bef.GetRow()] = Round(dw_bef.Object.ow_wfjgmx_in_bef_qty[dw_bef.GetRow()] / s_inscust.rate,sys_option_unit_dec)
  2667. END IF
  2668. dw_bef.SetColumn( 'ow_wfjgmx_in_bef_uqty')
  2669. END IF
  2670. END IF
  2671. END IF
  2672. END IF
  2673. ELSE
  2674. IF NOT IsValid(w_unit_def_ch) THEN
  2675. IF tab_1.SelectedTab = 1 THEN
  2676. IF dw_aft.GetRow() < 1 THEN RETURN
  2677. OpenWithParm(w_unit_def_ch,ll_mtrlid)
  2678. s_inscust = Message.PowerObjectParm //接受返回结构
  2679. IF s_inscust.unit <> '' THEN
  2680. dw_aft.Object.ow_wfjgmx_in_aft_unit[dw_aft.GetRow()] = s_inscust.unit
  2681. dw_aft.SetColumn( 'ow_wfjgmx_in_aft_qty')
  2682. END IF
  2683. ELSE
  2684. IF dw_bef.GetRow() < 1 THEN RETURN
  2685. Open(w_unit_def_ch)
  2686. s_inscust = Message.PowerObjectParm //接受返回结构
  2687. IF s_inscust.unit <> '' THEN
  2688. dw_bef.Object.ow_wfjgmx_in_bef_unit[dw_bef.GetRow()] = s_inscust.unit
  2689. dw_bef.SetColumn( 'ow_wfjgmx_in_bef_qty')
  2690. END IF
  2691. END IF
  2692. END IF
  2693. END IF
  2694. ELSEIF sys_option_2unit = 0 THEN
  2695. IF NOT IsValid(w_unit_ch) THEN
  2696. IF tab_1.SelectedTab = 1 THEN
  2697. IF dw_aft.GetRow() < 1 THEN RETURN
  2698. dw_aft.AcceptText()
  2699. ll_mtrlid = dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[dw_aft.GetRow()]
  2700. OpenWithParm(w_unit_ch,ll_mtrlid)
  2701. s_inscust = Message.PowerObjectParm //接受返回结构
  2702. IF s_inscust.unit <> '' THEN
  2703. dw_aft.Object.ow_wfjgmx_in_aft_unit[dw_aft.GetRow()] = s_inscust.unit
  2704. dw_aft.Object.ow_wfjgmx_in_aft_rate[dw_aft.GetRow()] = s_inscust.rate
  2705. IF s_inscust.ReturnType = 0 THEN
  2706. IF dw_aft.Object.ow_wfjgmx_in_aft_uqty[dw_aft.GetRow()] > 0 THEN
  2707. dw_aft.Object.ow_wfjgmx_in_aft_qty[dw_aft.GetRow()] = Round(s_inscust.rate * dw_aft.Object.ow_wfjgmx_in_aft_uqty[dw_aft.GetRow()],sys_option_unit_dec)
  2708. END IF
  2709. dw_aft.SetColumn( 'ow_wfjgmx_in_aft_qty')
  2710. ELSE
  2711. IF s_inscust.rate > 0 THEN
  2712. dw_aft.Object.ow_wfjgmx_in_aft_uqty[dw_aft.GetRow()] = Round(dw_aft.Object.ow_wfjgmx_in_aft_qty[dw_aft.GetRow()] /s_inscust.rate ,sys_option_unit_dec)
  2713. END IF
  2714. dw_aft.SetColumn( 'ow_wfjgmx_in_aft_uqty')
  2715. END IF
  2716. END IF
  2717. ELSE
  2718. IF dw_bef.GetRow() < 1 THEN RETURN
  2719. dw_bef.AcceptText()
  2720. ll_mtrlid = dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[dw_bef.GetRow()]
  2721. OpenWithParm(w_unit_ch,ll_mtrlid)
  2722. s_inscust = Message.PowerObjectParm //接受返回结构
  2723. IF s_inscust.unit <> '' THEN
  2724. dw_bef.Object.ow_wfjgmx_in_bef_unit[dw_bef.GetRow()] = s_inscust.unit
  2725. dw_bef.Object.ow_wfjgmx_in_bef_rate[dw_bef.GetRow()] = s_inscust.rate
  2726. IF s_inscust.ReturnType = 0 THEN
  2727. IF dw_bef.Object.ow_wfjgmx_in_bef_uqty[dw_bef.GetRow()] > 0 THEN
  2728. dw_bef.Object.ow_wfjgmx_in_bef_qty[dw_bef.GetRow()] = Round(s_inscust.rate * dw_bef.Object.ow_wfjgmx_in_bef_uqty[dw_bef.GetRow()],sys_option_unit_dec)
  2729. END IF
  2730. dw_bef.SetColumn( 'ow_wfjgmx_in_bef_qty')
  2731. ELSE
  2732. IF s_inscust.rate > 0 THEN
  2733. dw_bef.Object.ow_wfjgmx_in_bef_uqty[dw_bef.GetRow()] = Round(dw_bef.Object.ow_wfjgmx_in_bef_qty[dw_bef.GetRow()] / s_inscust.rate,sys_option_unit_dec)
  2734. END IF
  2735. dw_bef.SetColumn( 'ow_wfjgmx_in_bef_uqty')
  2736. END IF
  2737. END IF
  2738. END IF
  2739. END IF
  2740. END IF
  2741. end event
  2742. event ue_allowedit;Long Columns
  2743. Int i
  2744. String ls_modify_str
  2745. Long ll_row
  2746. Long ll_value
  2747. Long ll_statusflag,ll_woodcodeflag,ll_pcodeflag
  2748. String ls_status,ls_woodcode,ls_pcode
  2749. String ls_data_type
  2750. ll_row = dw_aft.GetRow()
  2751. IF ll_row <= 0 THEN RETURN
  2752. Columns = Long(dw_aft.Describe("DataWindow.Column.Count"))
  2753. FOR i = 1 TO Columns
  2754. ls_modify_str = dw_aft.Describe("#" + String(i) + ".name")
  2755. ls_modify_str = Lower(ls_modify_str)
  2756. IF i = 1 THEN //第1个字段,约定物料ID
  2757. ls_data_type = dw_aft.Describe(ls_modify_str+".ColType")
  2758. IF ls_data_type = "long" THEN
  2759. ll_value = dw_aft.GetItemNumber(ll_row,ls_modify_str)
  2760. END IF
  2761. END IF
  2762. IF Pos(ls_modify_str,'statusflag') > 0 THEN
  2763. ls_data_type = dw_aft.Describe(ls_modify_str+".ColType")
  2764. IF ls_data_type = "long" THEN
  2765. ll_statusflag = dw_aft.GetItemNumber(ll_row,ls_modify_str)
  2766. END IF
  2767. END IF
  2768. IF Pos(ls_modify_str,'woodcodeflag') > 0 THEN
  2769. ls_data_type = dw_aft.Describe(ls_modify_str+".ColType")
  2770. IF ls_data_type = "long" THEN
  2771. ll_woodcodeflag = dw_aft.GetItemNumber(ll_row,ls_modify_str)
  2772. END IF
  2773. END IF
  2774. IF Pos(ls_modify_str,'pcodeflag') > 0 THEN
  2775. ls_data_type = dw_aft.Describe(ls_modify_str+".ColType")
  2776. IF ls_data_type = "long" THEN
  2777. ll_pcodeflag = dw_aft.GetItemNumber(ll_row,ls_modify_str)
  2778. END IF
  2779. END IF
  2780. IF Pos(ls_modify_str,'status') > 0 AND Pos(ls_modify_str,'statusflag') = 0 AND Pos(ls_modify_str,'statustype') = 0 THEN
  2781. IF Len(ls_modify_str) = Len('status') OR Pos(ls_modify_str,'_status') > 0 THEN
  2782. IF Not (Pos(ls_modify_str,'u_saletask_status') > 0 OR &
  2783. Pos(ls_modify_str,'u_buytask_status') > 0 OR &
  2784. Pos(ls_modify_str,'u_order_ml_status') > 0 OR &
  2785. Pos(ls_modify_str,'u_order_wfjg_status') > 0 OR &
  2786. Pos(ls_modify_str,'u_rs_empinfo_status') > 0 ) THEN
  2787. ls_status = ls_modify_str
  2788. END IF
  2789. END IF
  2790. END IF
  2791. IF Pos(ls_modify_str,'woodcode') > 0 AND Pos(ls_modify_str,'woodcodeflag') = 0 AND Pos(ls_modify_str,'woodcodetype') = 0 THEN
  2792. IF Len(ls_modify_str) = Len('woodcode') OR Pos(ls_modify_str,'_woodcode') > 0 THEN
  2793. ls_woodcode = ls_modify_str
  2794. END IF
  2795. END IF
  2796. IF Pos(ls_modify_str,'pcode') > 0 AND Pos(ls_modify_str,'pcodeflag') = 0 AND Pos(ls_modify_str,'pcodetype') = 0 THEN
  2797. IF Len(ls_modify_str) = Len('pcode') OR Pos(ls_modify_str,'_pcode') > 0 THEN
  2798. ls_pcode = ls_modify_str
  2799. END IF
  2800. END IF
  2801. NEXT
  2802. IF ls_status <> '' THEN
  2803. IF ll_statusflag <> 0 OR ll_value = 0 THEN
  2804. dw_aft.Modify(ls_status+".dddw.allowedit = no")
  2805. ELSE
  2806. dw_aft.Modify(ls_status+".dddw.allowedit = yes")
  2807. END IF
  2808. END IF
  2809. IF ls_woodcode <> '' THEN
  2810. IF ll_woodcodeflag <> 0 OR ll_value = 0 THEN
  2811. dw_aft.Modify(ls_woodcode+".dddw.allowedit = no")
  2812. ELSE
  2813. dw_aft.Modify(ls_woodcode+".dddw.allowedit = yes")
  2814. END IF
  2815. END IF
  2816. IF ls_pcode <> '' THEN
  2817. IF ll_pcodeflag <> 0 OR ll_value = 0 THEN
  2818. dw_aft.Modify(ls_pcode+".dddw.allowedit = no")
  2819. ELSE
  2820. dw_aft.Modify(ls_pcode+".dddw.allowedit = yes")
  2821. END IF
  2822. END IF
  2823. end event
  2824. event ue_bill_copy;String arg_msg = ''
  2825. IF wf_copy(arg_msg) = 1 THEN
  2826. MessageBox('系统提示','复制成功')
  2827. ELSE
  2828. MessageBox('系统提示',arg_msg)
  2829. END IF
  2830. end event
  2831. event ue_bill_paste;String arg_msg = ''
  2832. IF wf_paste(arg_msg) = 1 THEN
  2833. MessageBox('系统提示','复制成功')
  2834. ELSE
  2835. MessageBox('系统提示',arg_msg)
  2836. END IF
  2837. end event
  2838. event ue_f12;call super::ue_f12;IF NOT dw_edit_mode THEN RETURN
  2839. Long child_row
  2840. Int if_addmxdscrp
  2841. String ls_mxdscrp
  2842. s_addqty_input s_input
  2843. dw_aft.AcceptText( )
  2844. child_row = dw_aft.GetRow()
  2845. IF child_row <= 0 THEN RETURN
  2846. IF dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[child_row] <= 0 THEN RETURN
  2847. ls_mxdscrp = dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp[child_row]
  2848. IF NOT IsValid(w_addqty_input) THEN
  2849. OpenWithParm(w_addqty_input,ls_mxdscrp)
  2850. s_input = Message.PowerObjectParm
  2851. IF s_input.addqty = -1 THEN RETURN
  2852. dw_aft.Object.ow_wfjgmx_in_aft_addqty[child_row] = s_input.addqty
  2853. IF s_input.addqtystr <> '' THEN
  2854. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp[child_row] = s_input.addqtystr
  2855. END IF
  2856. // IF s_input.formula <> '' THEN
  2857. // dw_child.Object.u_inwaremx_formula[child_row] = s_input.formula
  2858. // END IF
  2859. IF s_input.flag = 1 THEN
  2860. dw_aft.Object.ow_wfjgmx_in_aft_uqty[child_row] = s_input.qty
  2861. dw_aft.Object.ow_wfjgmx_in_aft_qty[child_row] = s_input.qty
  2862. END IF
  2863. END IF
  2864. end event
  2865. type cb_func from w_publ_1ton_share_detail`cb_func within w_inware_wfjg
  2866. end type
  2867. type cb_exit from w_publ_1ton_share_detail`cb_exit within w_inware_wfjg
  2868. end type
  2869. type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_inware_wfjg
  2870. integer x = 178
  2871. integer y = 188
  2872. integer width = 549
  2873. integer height = 84
  2874. end type
  2875. type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_inware_wfjg
  2876. integer x = 2994
  2877. end type
  2878. type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_inware_wfjg
  2879. integer width = 320
  2880. end type
  2881. type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_inware_wfjg
  2882. integer x = 2011
  2883. integer width = 1527
  2884. integer height = 848
  2885. string dataobject = "dw_inware_wfjg_index"
  2886. end type
  2887. event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;wf_flagstatus_rf()
  2888. wf_check_billfj()
  2889. IF dw_edit_mode THEN RETURN
  2890. IF currentrow <=0 THEN
  2891. dw_aft.reset()
  2892. dw_bef.reset()
  2893. dw_child.reset()
  2894. RETURN
  2895. end if
  2896. this.selectrow(0,false)
  2897. this.selectrow(currentrow,true)
  2898. DW_UC.SETROW(currentrow)
  2899. DW_UC.ScrollToRow (currentrow)
  2900. if not dw_edit_mode then parent.triggerevent('retrieve_childdw')
  2901. end event
  2902. type st_1 from w_publ_1ton_share_detail`st_1 within w_inware_wfjg
  2903. integer x = 0
  2904. integer y = 208
  2905. end type
  2906. type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_inware_wfjg
  2907. integer x = 3141
  2908. end type
  2909. type dw_uc from w_publ_1ton_share_detail`dw_uc within w_inware_wfjg
  2910. integer width = 2007
  2911. integer height = 848
  2912. string dataobject = "dw_inware_wfjg_edit"
  2913. end type
  2914. event dw_uc::dwnkey;Parent.TriggerEvent('user_key')
  2915. IF Key = KeyDownArrow! THEN RETURN 1
  2916. IF dw_edit_mode THEN
  2917. IF dw_uc.GetColumnName ( ) = 'dscrp' And Key = KeyEnter! THEN
  2918. dw_aft.SetFocus()
  2919. dw_aft.ScrollToRow(dw_child.RowCount())
  2920. dw_aft.SetColumn ('ow_wfjgmx_in_aft_ifrel')
  2921. RETURN 1
  2922. ELSEIF dw_uc.GetColumnName ( ) = 'u_spt_sptcode' And Key = KeyEnter! THEN
  2923. String ls_code,ls_name,ls_find_code
  2924. Long ls_sptid
  2925. Long cnt = 0
  2926. Boolean if_find = False
  2927. dw_uc.AcceptText()
  2928. ls_code = Upper(Trim(dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()]))
  2929. SELECT u_spt.sptid,
  2930. u_spt.name,
  2931. u_spt.sptcode
  2932. INTO :ls_sptid,:ls_name,:ls_code
  2933. FROM u_spt
  2934. Where ( sptcode = :ls_code Or Name = :ls_code );
  2935. IF sqlca.SQLCode <> 0 THEN
  2936. IF Pos(Trim(ls_code),'%') = 0 THEN
  2937. ls_find_code = '%'+ Trim(ls_code) + '%'
  2938. ELSE
  2939. ls_find_code = Trim(ls_code)
  2940. END IF
  2941. SELECT count(*) INTO :cnt
  2942. FROM u_spt
  2943. Where ( sptcode Like :ls_find_code Or Name Like :ls_find_code );
  2944. IF sqlca.SQLCode <> 0 THEN
  2945. Parent.TriggerEvent('ue_f9')
  2946. RETURN 1
  2947. END IF
  2948. IF cnt <> 1 THEN
  2949. Parent.TriggerEvent('ue_f9')
  2950. RETURN 1
  2951. ELSE
  2952. SELECT u_spt.sptid,
  2953. u_spt.sptcode,
  2954. u_spt.name
  2955. INTO :ls_sptid,:ls_code,:ls_name
  2956. FROM u_spt
  2957. Where ( sptcode Like :ls_find_code Or Name Like :ls_find_code );
  2958. IF sqlca.SQLCode <> 0 THEN
  2959. Parent.TriggerEvent('ue_f9')
  2960. RETURN 1
  2961. ELSE
  2962. if_find = True
  2963. END IF
  2964. END IF
  2965. ELSE
  2966. if_find = True
  2967. END IF
  2968. IF if_find THEN
  2969. //重置dw_child
  2970. wf_change_sptid(ls_sptid)
  2971. dw_uc.SetRedraw(False)
  2972. dw_uc.Object.sptid[dw_uc.GetRow()] = ls_sptid
  2973. dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()] = ls_code
  2974. dw_uc.Object.u_spt_name[dw_uc.GetRow()] = ls_name
  2975. dw_uc.SetRedraw(True)
  2976. dw_uc.SetColumn("indate")
  2977. RETURN 1
  2978. END IF
  2979. ELSE
  2980. IF Key = KeyEnter! THEN //
  2981. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2982. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2983. RETURN 1
  2984. END IF
  2985. END IF
  2986. END IF
  2987. end event
  2988. event dw_uc::doubleclicked;IF dw_edit_mode and row >0 THEN
  2989. parent.triggerevent('ue_f9')
  2990. END IF
  2991. end event
  2992. event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN
  2993. IF dwo.Name = 'storageid' THEN
  2994. dw_child.Reset()
  2995. PARENT.TriggerEvent("insert_childrow")
  2996. END IF
  2997. end event
  2998. event dw_uc::clicked;call super::clicked;if not dw_edit_mode then return
  2999. if row <= 0 then return
  3000. if dwo.name='p_p' then
  3001. parent.TRIGGEREVENT('ue_f9')
  3002. end if
  3003. end event
  3004. type gb_2 from w_publ_1ton_share_detail`gb_2 within w_inware_wfjg
  3005. end type
  3006. type dw_child from w_publ_1ton_share_detail`dw_child within w_inware_wfjg
  3007. boolean visible = false
  3008. integer x = 128
  3009. integer y = 2044
  3010. integer width = 2281
  3011. integer height = 52
  3012. string dataobject = "dw_wfjgmx_in_aft_edit"
  3013. end type
  3014. event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key')
  3015. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode
  3016. Long ls_mtrlid,ls_sptid,ls_storageid
  3017. Dec ls_lmbuyprice,ls_planprice
  3018. Dec ls_lastprice,ls_rebate
  3019. String ls_prdpackcode
  3020. Decimal ls_packqty
  3021. s_mtrldef_array arg_s_mtrldef
  3022. Long child_row
  3023. Long ls_null
  3024. SetNull(ls_null)
  3025. IF dw_edit_mode THEN
  3026. dw_uc.AcceptText()
  3027. ls_storageid = dw_uc.Object.storageid[dw_uc.GetRow()]
  3028. IF ls_storageid = 0 OR IsNull(ls_storageid) THEN
  3029. MessageBox(publ_operator,'请先选择仓库')
  3030. RETURN
  3031. END IF
  3032. ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]
  3033. IF IsNull(ls_sptid) OR ls_sptid = 0 THEN
  3034. THIS.TriggerEvent("ue_f9")
  3035. END IF
  3036. IF KeyDown(keydownarrow!) THEN
  3037. Long li_row
  3038. IF dw_child.GetRow() = dw_child.RowCount() THEN
  3039. PARENT.TriggerEvent("insert_childrow")
  3040. END IF
  3041. ELSE
  3042. If KeyDown(keyenter!) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN
  3043. IF dw_child.GetColumnName() = 'u_mtrldef_mtrlcode' THEN
  3044. dw_child.AcceptText()
  3045. child_row = dw_child.GetRow()
  3046. ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row]
  3047. IF f_find_mtrl(ls_mtrlcode,ls_storageid,arg_s_mtrldef) = 0 THEN
  3048. PARENT.TriggerEvent('ue_f8')
  3049. RETURN 1
  3050. ELSE
  3051. ls_mtrlid = arg_s_mtrldef.mtrlid[1]
  3052. ls_mtrlcode = arg_s_mtrldef.mtrlcode[1]
  3053. ls_mtrlname = arg_s_mtrldef.mtrlname[1]
  3054. ls_unit = arg_s_mtrldef.unit[1]
  3055. ls_mtrlmode = arg_s_mtrldef.mtrlmode[1]
  3056. ls_planprice = arg_s_mtrldef.planprice[1]
  3057. ls_lmbuyprice = arg_s_mtrldef.lmbuyprice[1]
  3058. END IF
  3059. dw_child.Object.ow_wfjgmx_in_aft_mtrlid[child_row] = ls_mtrlid
  3060. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  3061. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  3062. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  3063. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  3064. Decimal ls_1stnewcost,ls_1stzqrate,ls_1strate
  3065. String arg_msg,ls_status,ls_woodcode,ls_pcode
  3066. IF cur_editfocus = 1 THEN
  3067. IF uo_sptprice.uf_getmtrlsptprice(ls_sptid,ls_mtrlid,ls_unit,ls_status,ls_woodcode,ls_pcode,0,ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) <> 1 THEN
  3068. IF ls_planprice = 0 THEN
  3069. dw_child.Object.ow_wfjgmx_in_aft_fprice[child_row] = ls_lmbuyprice
  3070. ELSE
  3071. dw_child.Object.ow_wfjgmx_in_aft_fprice[child_row] = ls_planprice
  3072. END IF
  3073. ELSE
  3074. dw_child.Object.ow_wfjgmx_in_aft_jgprice[child_row] = ls_1stnewcost
  3075. dw_child.Object.ow_wfjgmx_in_aft_rebate[child_row] = ls_1stzqrate
  3076. END IF
  3077. END IF
  3078. IF Key = keyenter! THEN
  3079. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  3080. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  3081. RETURN 1
  3082. END IF
  3083. ELSEIF dw_child.GetColumnName( ) = 'ow_wfjgmx_in_aft_plancode' AND dw_child.GetRow() = dw_child.RowCount() THEN
  3084. PARENT.TriggerEvent("insert_childrow")
  3085. RETURN 1
  3086. ELSE
  3087. IF Key = keyenter! THEN
  3088. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  3089. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  3090. RETURN 1
  3091. END IF
  3092. END IF
  3093. END IF
  3094. END IF
  3095. END IF
  3096. //u_mtrldef_mtrlcode
  3097. //u_mtrldef_unit
  3098. //ow_wfjgmx_in_aft_mtrlid
  3099. //ow_wfjgmx_in_aft_planprice
  3100. //ow_wfjgmx_in_aft_price
  3101. //u_mtrldef_mtrlname
  3102. end event
  3103. event dw_child::doubleclicked;dw_child.accepttext()
  3104. if dw_edit_mode then
  3105. if row > 0 then
  3106. if dw_child.object.ow_wfjgmx_in_aft_ifrel[row] = 1 then
  3107. parent.triggerevent('ue_f7')
  3108. else
  3109. parent.triggerevent('ue_f8')
  3110. end if
  3111. else
  3112. parent.triggerevent('ue_f8')
  3113. end if
  3114. end if
  3115. end event
  3116. event dw_child::itemchanged;call super::itemchanged;if not dw_edit_mode then return
  3117. this.accepttext()
  3118. if dwo.name = 'ow_wfjgmx_in_aft_ifrel' then
  3119. if this.object.ow_wfjgmx_in_aft_ifrel[row] = 0 then
  3120. dw_child.object.ow_wfjgmx_in_aft_relid[row] = 0
  3121. dw_child.object.u_order_wfjg_taskcode[row] = ''
  3122. end if
  3123. end if
  3124. end event
  3125. type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_inware_wfjg
  3126. end type
  3127. type cb_print from w_publ_1ton_share_detail`cb_print within w_inware_wfjg
  3128. end type
  3129. type cb_add from w_publ_1ton_share_detail`cb_add within w_inware_wfjg
  3130. end type
  3131. event cb_add::clicked;IF Not (f_power_ind(47) Or f_power_ind(373)) THEN
  3132. MessageBox('提示','你没有使用权限!',information!,OK!)
  3133. RETURN
  3134. END IF
  3135. String arg_msg = ''
  3136. Long uc_row,pagerert_row
  3137. Long relid_pageretr,reld_uc,j,i
  3138. IF Not dw_edit_mode THEN
  3139. IF wf_check_print(arg_msg) = 0 THEN
  3140. MessageBox('错误',arg_msg,stopsign!,OK!)
  3141. RETURN
  3142. END IF
  3143. END IF
  3144. IF dw_edit_mode THEN
  3145. dw_uc.AcceptText()
  3146. dw_aft.AcceptText()
  3147. dw_bef.AcceptText()
  3148. tab_1.tabpage_1.dw_1.AcceptText()
  3149. tab_1.tabpage_2.dw_2.AcceptText()
  3150. IF cbx_cmpl.Checked THEN
  3151. cb_cmpl.TriggerEvent(Clicked!)
  3152. END IF
  3153. uc_row = dw_uc.GetRow()
  3154. IF uc_row <= 0 THEN
  3155. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  3156. RETURN
  3157. END IF
  3158. IF Not dw_uc.Object.indate[uc_row] > DateTime(2000-01-01,Now()) THEN
  3159. MessageBox('提示','不合理发生时间!',information!,OK!)
  3160. dw_uc.SetFocus()
  3161. dw_uc.SetColumn("indate")
  3162. RETURN
  3163. END IF
  3164. IF Not Len(String(dw_uc.Object.inrep[uc_row])) > 0 THEN
  3165. MessageBox('提示','请填写经手人!',information!,OK!)
  3166. dw_uc.SetFocus()
  3167. dw_uc.SetColumn("inrep")
  3168. RETURN
  3169. END IF
  3170. IF dw_uc.Object.ow_wfjg_in_relint_1[uc_row] = 0 THEN
  3171. MessageBox('提示','请选择结算方式',information!,OK!)
  3172. dw_uc.SetFocus()
  3173. dw_uc.SetColumn("ow_wfjg_in_relint_1")
  3174. RETURN
  3175. END IF
  3176. FOR j = 1 To dw_aft.RowCount()
  3177. IF dw_aft.Object.ow_wfjgmx_in_aft_qty[j] = 0 THEN CONTINUE
  3178. IF Not f_power_ind(125) THEN
  3179. IF dw_aft.Object.ow_wfjgmx_in_aft_ifrel[j] = 1 And dw_aft.Object.ow_wfjgmx_in_aft_relid[j] = 0 THEN
  3180. MessageBox('提示','用户权限限制,请选择外协订单,第'+String(j)+'行',information!,OK!)
  3181. RETURN
  3182. END IF
  3183. IF dw_aft.Object.ow_wfjgmx_in_aft_ifrel[j] = 0 And dw_aft.Object.ow_wfjgmx_in_aft_qty[j] > 0 THEN
  3184. MessageBox('提示','用户权限限制,请选择外协订单,第'+String(j)+'行',information!,OK!)
  3185. RETURN
  3186. END IF
  3187. END IF
  3188. IF dw_aft.Object.ow_wfjgmx_in_aft_ifrel[j] = 1 And dw_aft.Object.ow_wfjgmx_in_aft_qty[j] < 0 THEN
  3189. MessageBox('提示','收货单数量-存库单位要输入正数',information!,OK!)
  3190. RETURN
  3191. END IF
  3192. IF cbx_autocmp.Checked THEN //保存自动按收货明细计算外协商库存明细
  3193. IF wf_in_to_out2(arg_msg) = 0 THEN
  3194. MessageBox(publ_operator,arg_msg)
  3195. RETURN
  3196. END IF
  3197. END IF
  3198. IF cbx_autocmp_1.Checked THEN //保存自动按外协商库存[按清单且外协商库存]
  3199. IF wf_in_to_out(arg_msg) = 0 THEN
  3200. MessageBox(publ_operator,arg_msg)
  3201. RETURN
  3202. END IF
  3203. END IF
  3204. IF sys_option_2unit = 1 THEN
  3205. IF dw_aft.Object.ow_wfjgmx_in_aft_ifrel[j] = 1 And dw_aft.Object.ow_wfjgmx_in_aft_uqty[j] < 0 THEN
  3206. MessageBox('提示','收货单数量-计价单位要输入正数',information!,OK!)
  3207. RETURN
  3208. END IF
  3209. END IF
  3210. NEXT
  3211. Long cnt
  3212. IF sys_option_2unit_ch = 1 THEN
  3213. cnt = 0
  3214. FOR i = 1 To dw_aft.RowCount()
  3215. IF dw_aft.Object.ow_wfjgmx_in_aft_rate[i] > 0 THEN
  3216. IF dw_aft.Object.ow_wfjgmx_in_aft_qty[i] <> dw_aft.Object.ow_wfjgmx_in_aft_rate[i] * dw_aft.Object.ow_wfjgmx_in_aft_uqty[i] THEN
  3217. cnt++
  3218. arg_msg = arg_msg + '收货明细,第'+String(i)+'行,库存单位数量:'+String(dw_aft.Object.ow_wfjgmx_in_aft_qty[i],'#,##0.##########')+'计价单位数量:'+String(dw_aft.Object.ow_wfjgmx_in_aft_uqty[i],'#,##0.##########')+',转换率:'+String(dw_aft.Object.ow_wfjgmx_in_aft_rate[i],'#,##0.00##')+'~r~n'
  3219. END IF
  3220. END IF
  3221. NEXT
  3222. FOR j = 1 To dw_bef.RowCount()
  3223. IF dw_bef.Object.ow_wfjgmx_in_bef_rate[j] > 0 THEN
  3224. IF dw_bef.Object.ow_wfjgmx_in_bef_qty[j] <> dw_bef.Object.ow_wfjgmx_in_bef_rate[j] * dw_bef.Object.ow_wfjgmx_in_bef_uqty[j] THEN
  3225. cnt++
  3226. arg_msg = arg_msg + '外协商库存明细,第'+String(j)+'行,库存单位数量:'+String(dw_bef.Object.ow_wfjgmx_in_bef_qty[j],'#,##0.##########')+'计价单位数量:'+String(dw_bef.Object.ow_wfjgmx_in_bef_uqty[j],'#,##0.##########')+',转换率:'+String(dw_bef.Object.ow_wfjgmx_in_bef_rate[j],'#,##0.00##')+'~r~n'
  3227. END IF
  3228. END IF
  3229. NEXT
  3230. IF cnt > 0 THEN
  3231. IF MessageBox('询问',arg_msg + '以上内容计价单位数量与库存单位数量不符合转换率,是否继续保存?',question!,yesno! ) = 2 THEN RETURN
  3232. END IF
  3233. END IF
  3234. IF sys_option_inware_checkqty = 1 THEN //系统选项268 仓库外协收货检查收货和库存明细是否一致
  3235. IF wf_check_option_inware_checkqty(arg_msg) = 0 THEN
  3236. MessageBox(publ_operator,arg_msg)
  3237. RETURN
  3238. END IF
  3239. END IF
  3240. IF sys_option_inware_noallocqty = 1 THEN //系统选项269 //外协收货时,是否允许超外协商库存收货
  3241. IF wf_check_owware(arg_msg) = 0 THEN
  3242. MessageBox(publ_operator,arg_msg)
  3243. RETURN
  3244. END IF
  3245. END IF
  3246. uo_ware.indate = dw_uc.Object.indate[uc_row]
  3247. uo_ware.inrep = dw_uc.Object.inrep[uc_row]
  3248. uo_ware.part = dw_uc.Object.part[uc_row]
  3249. uo_ware.dscrp = dw_uc.Object.dscrp[uc_row]
  3250. uo_ware.sptid = dw_uc.Object.sptid[uc_row]
  3251. uo_ware.relint_1 = dw_uc.Object.ow_wfjg_in_relint_1[uc_row]
  3252. uo_ware.thflag = 0
  3253. FOR i = 1 To dw_aft.RowCount()
  3254. IF dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[i] > 0 THEN
  3255. IF uo_ware.acceptmx(dw_aft.Object.printid[i],&
  3256. dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[i],&
  3257. dw_aft.Object.u_mtrldef_mtrlcode[i],&
  3258. dw_aft.Object.ow_wfjgmx_in_aft_plancode[i],&
  3259. dw_aft.Object.ow_wfjgmx_in_aft_status[i],&
  3260. dw_aft.Object.ow_wfjgmx_in_aft_uqty[i],&
  3261. dw_aft.Object.ow_wfjgmx_in_aft_fprice[i],&
  3262. 1,&
  3263. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp[i],&
  3264. arg_msg,dw_aft.Object.ow_wfjgmx_in_aft_jgprice[i],&
  3265. dw_aft.Object.ow_wfjgmx_in_aft_relid[i],&
  3266. dw_aft.Object.ow_wfjgmx_in_aft_relprintid[i],&
  3267. dw_aft.Object.ow_wfjgmx_in_aft_ifrel[i],&
  3268. dw_aft.Object.ow_wfjgmx_in_aft_woodcode[i],&
  3269. dw_aft.Object.ow_wfjgmx_in_aft_pcode[i],&
  3270. dw_aft.Object.ow_wfjgmx_in_aft_sptid_cusid[i],&
  3271. dw_aft.Object.ow_wfjgmx_in_aft_unit[i],&
  3272. dw_aft.Object.ow_wfjgmx_in_aft_qty[i],&
  3273. dw_aft.Object.ow_wfjgmx_in_aft_storageid[i],&
  3274. dw_aft.Object.ow_wfjgmx_in_aft_rate[i],&
  3275. dw_aft.Object.ow_wfjgmx_in_aft_addqty[i],&
  3276. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp2[i],&
  3277. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp3[i],&
  3278. dw_aft.Object.ow_wfjgmx_in_aft_mxdscrp4[i] ) = 0 THEN
  3279. MessageBox('错误',arg_msg,stopsign!,OK!)
  3280. RETURN
  3281. END IF
  3282. END IF
  3283. NEXT
  3284. //messagebox("",dw_bef.RowCount())
  3285. FOR i = 1 To dw_bef.RowCount()
  3286. IF dw_bef.Object.ow_wfjgmx_in_bef_mtrlid[i] > 0 THEN
  3287. IF uo_ware.acceptmx_bef(dw_bef.Object.ow_wfjgmx_in_bef_mtrlwareid[i],&
  3288. dw_bef.Object.ow_wfjgmx_in_bef_qty[i],&
  3289. dw_bef.Object.ow_wfjgmx_in_bef_fprice[i],&
  3290. dw_bef.Object.ow_wfjgmx_in_bef_mxdscrp[i],&
  3291. dw_bef.Object.printid[i],&
  3292. arg_msg,&
  3293. dw_bef.Object.ow_wfjgmx_in_bef_unit[i],&
  3294. dw_bef.Object.ow_wfjgmx_in_bef_uqty[i],&
  3295. dw_bef.Object.ow_wfjgmx_in_bef_rate[i]) = 0 THEN
  3296. MessageBox('错误',arg_msg,stopsign!,OK!)
  3297. RETURN
  3298. END IF
  3299. END IF
  3300. NEXT
  3301. IF uo_ware.Save(True,arg_msg) = 0 THEN
  3302. MessageBox('错误',arg_msg,stopsign!,OK!)
  3303. RETURN
  3304. END IF
  3305. f_SetProfileString (sys_empid,dw_uc.DataObject, "dft_relint_1", String(dw_uc.Object.ow_wfjg_in_relint_1[dw_uc.GetRow()]))
  3306. f_SetProfileString (sys_empid,dw_uc.DataObject, "dft_inrep", String(dw_uc.Object.inrep[dw_uc.GetRow()]))
  3307. // MessageBox(publ_operator,'保存操作成功!')
  3308. Long ll_row
  3309. ll_row = dw_pageretr.GetRow()
  3310. dw_pageretr.SelectRow(0,False)
  3311. dw_pageretr.SelectRow(ll_row,True)
  3312. wf_refresh_curuc(cur_scid,uo_ware.inwareid) //刷新uc
  3313. ELSE
  3314. IF uo_ware.newbegin(cur_scid,4,arg_msg) = 0 THEN
  3315. MessageBox('错误',arg_msg,stopsign!,OK!)
  3316. RETURN
  3317. END IF
  3318. END IF
  3319. //CALL SUPER::Clicked
  3320. IF Not dw_edit_mode THEN
  3321. Int li_row
  3322. li_row = dw_pageretr.InsertRow (1)
  3323. dw_pageretr.ScrollToRow(li_row)
  3324. dw_aft.Reset()
  3325. dw_bef.Reset()
  3326. dw_uc.Reset()
  3327. dw_uc.SetFocus()
  3328. dw_pageretr.RowsCopy(li_row,li_row, Primary!, dw_uc, 1, Primary!)
  3329. END IF
  3330. dw_edit_mode = Not dw_edit_mode
  3331. wf_refresh_interface()
  3332. //read ini
  3333. IF dw_edit_mode THEN
  3334. Parent.TriggerEvent("insert_childrow")
  3335. Parent.TriggerEvent("insert_childrow_out")
  3336. cur_editfocus = 1
  3337. Long ll_relint_1
  3338. String ls_rep
  3339. ll_relint_1 = Long(f_ProfileString (sys_empid,dw_uc.DataObject, "dft_relint_1",'0'))
  3340. ls_rep = f_ProfileString (sys_empid,dw_uc.DataObject, "dft_inrep",'')
  3341. dw_uc.Object.ow_wfjg_in_relint_1[dw_uc.GetRow()] = ll_relint_1
  3342. dw_uc.Object.inrep[dw_uc.GetRow()] = publ_operator //ls_rep
  3343. ELSE
  3344. Parent.TriggerEvent("retrieve_childdw")
  3345. cur_editfocus = 0
  3346. END IF
  3347. //
  3348. This.TriggerEvent('refresh_interface')
  3349. end event
  3350. type cb_edit from w_publ_1ton_share_detail`cb_edit within w_inware_wfjg
  3351. end type
  3352. event cb_edit::clicked;IF Not (f_power_ind(47) OR f_power_ind(373)) THEN
  3353. MessageBox('提示','你没有使用权限!',information!,OK!)
  3354. RETURN
  3355. END IF
  3356. String arg_msg = ''
  3357. Long uc_row
  3358. uc_row = dw_pageretr.GetRow()
  3359. IF uc_row <= 0 THEN
  3360. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  3361. RETURN
  3362. END IF
  3363. IF NOT dw_edit_mode THEN
  3364. IF uo_ware.updatebegin(dw_pageretr.Object.ow_wfjg_in_scid[uc_row],dw_pageretr.Object.inwareid[uc_row],4,arg_msg) = 0 THEN
  3365. MessageBox('错误',arg_msg,stopsign!,OK!)
  3366. RETURN
  3367. END IF
  3368. PARENT.TriggerEvent('ue_allowedit')
  3369. END IF
  3370. CALL SUPER::Clicked
  3371. IF dw_edit_mode THEN
  3372. cur_editfocus = 2
  3373. ELSE
  3374. cur_editfocus = 0
  3375. END IF
  3376. end event
  3377. type cb_delet from w_publ_1ton_share_detail`cb_delet within w_inware_wfjg
  3378. end type
  3379. event cb_delet::clicked;call super::clicked;IF NOT (f_power_ind(586) or f_power_ind(591)) THEN
  3380. MessageBox('提示','你没有使用权限!',information!,OK!)
  3381. RETURN
  3382. END IF
  3383. string arg_msg=''
  3384. if dw_edit_mode then return
  3385. long uc_row
  3386. uc_row=dw_pageretr.getrow()
  3387. if uc_row<=0 then
  3388. messagebox('提示','请选定当前目标单据!',information!,OK!)
  3389. return
  3390. end if
  3391. if messagebox ("询问","是否确定要删除当前单据?",question!,yesno! ) = 2 then return
  3392. if uo_ware.del(dw_pageretr.object.ow_wfjg_in_scid[uc_row],dw_pageretr.object.inwareid[uc_row],arg_msg,true)=0 then
  3393. messagebox('错误',arg_msg,stopsign!,OK!)
  3394. else
  3395. //日志
  3396. long ls_id
  3397. string ls_code
  3398. ls_id=dw_pageretr.object.inwareid[uc_row]
  3399. ls_code=dw_pageretr.object.inwarecode[uc_row]
  3400. f_setsysoplog('仓库外协收货单','删除,id:'+string(ls_id)+',code:'+ls_code,arg_msg,true)
  3401. //--
  3402. messagebox('提示','删除单据'+string(dw_pageretr.object.inwarecode[uc_row])+'成功!',information!,OK!)
  3403. dw_pageretr.deleterow(uc_row)
  3404. dw_pageretr.postevent(rowfocuschanged!)
  3405. end if
  3406. end event
  3407. type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_inware_wfjg
  3408. end type
  3409. event cb_addzy::clicked;call super::clicked;string menustr
  3410. m_Dfc_Control_PopupMenu dmPopupMenu
  3411. menustr="Text=增加备注~tEvent=ue_addzy"
  3412. menustr=menustr + "|" + "Text=-"
  3413. menustr = menustr + "|" + "Text=复制单据~tEvent=ue_bill_copy"
  3414. menustr = menustr + "|" + "Text=粘贴单据~tEvent=ue_bill_paste"
  3415. menustr = menustr + "|" + "Text=-"
  3416. menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view"
  3417. menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit"
  3418. if len(trim(menustr))<>0 then
  3419. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  3420. dmPopupMenu.mf_BuildMenu(This, menustr)
  3421. dmPopupMenu.mf_PopMenu()
  3422. Destroy dmPopupMenu
  3423. end if
  3424. end event
  3425. type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_inware_wfjg
  3426. end type
  3427. event cb_auditing::clicked;call super::clicked;IF Not (f_power_ind(83) Or f_power_ind(381) Or f_power_ind(815) ) THEN
  3428. MessageBox('提示','你没有使用权限!',information!,OK!)
  3429. RETURN
  3430. END IF
  3431. IF dw_edit_mode THEN RETURN
  3432. IF Not KeyDown(KeyControl!) THEN
  3433. String arg_msg = ''
  3434. Long pagerert_row
  3435. pagerert_row = dw_pageretr.GetRow()
  3436. IF pagerert_row <= 0 THEN
  3437. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  3438. RETURN
  3439. END IF
  3440. IF MessageBox ("询问","是否确定要审核当前单据?",question!,yesno! ) = 2 THEN RETURN
  3441. IF uo_ware.getinfo(dw_pageretr.Object.ow_wfjg_in_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row],arg_msg) = 0 THEN
  3442. MessageBox('错误',arg_msg,stopsign!,OK!)
  3443. RETURN
  3444. END IF
  3445. IF dw_pageretr.Object.flag[pagerert_row] = 0 THEN
  3446. IF Not (f_power_ind(83) Or f_power_ind(381)) THEN
  3447. MessageBox('提示','你没有使用权限!',information!,OK!)
  3448. RETURN
  3449. END IF
  3450. IF sys_option_inware_noallocqty = 1 THEN //系统选项269 //外协收货时,是否允许超外协商库存收货
  3451. IF wf_check_owware(arg_msg) = 0 THEN
  3452. MessageBox(publ_operator,arg_msg)
  3453. RETURN
  3454. END IF
  3455. END IF
  3456. IF uo_ware.auditing(True,arg_msg) = 0 THEN
  3457. MessageBox('错误',arg_msg,stopsign!,OK!)
  3458. ELSE
  3459. MessageBox('提示','仓库审核成功!',information!,OK!)
  3460. wf_refresh_curuc(dw_pageretr.Object.ow_wfjg_in_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row])
  3461. END IF
  3462. ELSEIF dw_pageretr.Object.flag[pagerert_row] = 1 And dw_pageretr.Object.ow_wfjg_in_secflag[pagerert_row] = 0 THEN
  3463. IF Not (f_power_ind(815) ) THEN
  3464. MessageBox('提示','你没有使用权限!',information!,OK!)
  3465. RETURN
  3466. END IF
  3467. IF uo_ware.secauditing(True,arg_msg) = 0 THEN
  3468. MessageBox('错误',arg_msg,stopsign!,OK!)
  3469. ELSE
  3470. MessageBox('提示','财务审核成功!',information!,OK!)
  3471. wf_refresh_curuc(dw_pageretr.Object.ow_wfjg_in_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row])
  3472. sle_usual_query.SetFocus()
  3473. sle_usual_query.SelectText(1,Len(sle_usual_query.Text))
  3474. END IF
  3475. END IF
  3476. ELSE
  3477. IF MessageBox ("询问","是否确定要批审核列表中未审核的单据?",question!,yesno! ) = 2 THEN RETURN
  3478. Long ll_i,ll_billid
  3479. Int li_flag,li_secflag
  3480. Long ll_suc,ll_fail
  3481. Int ll_flag,ll_secflag
  3482. dw_pageretr.AcceptText()
  3483. ll_flag = dw_pageretr.Object.flag[dw_pageretr.GetRow()]
  3484. ll_secflag = dw_pageretr.Object.ow_wfjg_in_secflag[dw_pageretr.GetRow()]
  3485. Open(w_sys_wait_jdt) //初始化进度条
  3486. w_sys_wait_jdt.Show()
  3487. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  3488. IF ll_flag = 0 THEN
  3489. IF Not (f_power_ind(83) Or f_power_ind(381)) THEN
  3490. MessageBox('提示','你没有使用权限!',information!,OK!)
  3491. RETURN
  3492. END IF
  3493. FOR ll_i = 1 To dw_pageretr.RowCount()
  3494. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在审核..." //进度信息
  3495. li_flag = dw_pageretr.Object.flag[ll_i]
  3496. IF li_flag = 1 THEN CONTINUE
  3497. ll_billid = dw_pageretr.Object.inwareid[ll_i]
  3498. IF uo_ware.getinfo(cur_scid,ll_billid,arg_msg) = 0 THEN
  3499. ll_fail++
  3500. CONTINUE
  3501. END IF
  3502. IF uo_ware.auditing(True,arg_msg) = 0 THEN
  3503. ll_fail++
  3504. CONTINUE
  3505. END IF
  3506. ll_suc++
  3507. w_sys_wait_jdt.wf_inc(ll_i) //进度
  3508. NEXT
  3509. Close(w_sys_wait_jdt)
  3510. MessageBox('提示','仓库批审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail),information!,OK!)
  3511. ELSEIF ll_flag = 1 And ll_secflag = 0 THEN
  3512. IF Not (f_power_ind(815) ) THEN
  3513. MessageBox('提示','你没有使用权限!',information!,OK!)
  3514. RETURN
  3515. END IF
  3516. FOR ll_i = 1 To dw_pageretr.RowCount()
  3517. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在审核..." //进度信息
  3518. li_flag = dw_pageretr.Object.flag[ll_i]
  3519. li_secflag = dw_pageretr.Object.ow_wfjg_in_secflag[ll_i]
  3520. IF li_flag = 0 And li_secflag = 0 THEN CONTINUE
  3521. ll_billid = dw_pageretr.Object.inwareid[ll_i]
  3522. IF uo_ware.getinfo(cur_scid,ll_billid,arg_msg) = 0 THEN
  3523. ll_fail++
  3524. CONTINUE
  3525. END IF
  3526. IF uo_ware.secauditing(True,arg_msg) = 0 THEN
  3527. ll_fail++
  3528. CONTINUE
  3529. END IF
  3530. ll_suc++
  3531. w_sys_wait_jdt.wf_inc(ll_i) //进度
  3532. NEXT
  3533. Close(w_sys_wait_jdt)
  3534. MessageBox('提示','财务批审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail),information!,OK!)
  3535. END IF
  3536. Parent.TriggerEvent('retrieve_pageretr')
  3537. END IF
  3538. end event
  3539. type cb_xm from w_publ_1ton_share_detail`cb_xm within w_inware_wfjg
  3540. end type
  3541. event cb_xm::clicked;is_mx_menustr = ""
  3542. IF dw_edit_mode THEN
  3543. is_mx_menustr += "|" + "Text=按转换率计算库存数量~tEvent=ue_cmp_qty"
  3544. is_mx_menustr += "|" + "Text=按转换率计算计价数量~tEvent=ue_cmp_uqty"
  3545. is_mx_menustr += "|" + "Text=-"
  3546. is_mx_menustr += "|" + "Text=批设收货仓库~tEvent=ue_p_storageid"
  3547. is_mx_menustr += "|" + "Text=-"
  3548. is_mx_menustr += "|" + "Text=外协商库存→外协收货明细~tEvent=ue_bef_to_aft"
  3549. is_mx_menustr += "|" + "Text=外协收货明细→外协商库存[按清单]~tEvent=ue_in_to_out2"
  3550. is_mx_menustr += "|" + "Text=外协收货明细→外协商库存[按清单且外协商库存]~tEvent=ue_in_to_out"
  3551. ELSE
  3552. is_mx_menustr += "Text=仓审后修改单价~tEvent=ue_mod_price"
  3553. END IF
  3554. CALL Super::Clicked
  3555. end event
  3556. type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_inware_wfjg
  3557. end type
  3558. type cb_xls from w_publ_1ton_share_detail`cb_xls within w_inware_wfjg
  3559. end type
  3560. type cb_help from w_publ_1ton_share_detail`cb_help within w_inware_wfjg
  3561. end type
  3562. type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_inware_wfjg
  3563. end type
  3564. event cb_auditing_cancel::clicked;call super::clicked;IF dw_edit_mode THEN RETURN
  3565. String ls_code,ls_opemp,ls_outpart
  3566. String arg_msg = ''
  3567. Long pagerert_row,ls_id
  3568. pagerert_row = dw_pageretr.GetRow()
  3569. IF pagerert_row <= 0 THEN
  3570. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  3571. RETURN
  3572. END IF
  3573. IF MessageBox ("询问","是否确定要撤审当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  3574. IF uo_ware.getinfo(dw_pageretr.Object.ow_wfjg_in_scid[pagerert_row],dw_pageretr.Object.inwareid [pagerert_row],arg_msg) = 0 THEN
  3575. MessageBox('错误',arg_msg,stopsign!,OK!)
  3576. RETURN
  3577. END IF
  3578. IF dw_pageretr.Object.flag[pagerert_row] = 1 AND dw_pageretr.Object.ow_wfjg_in_secflag[pagerert_row] = 0 THEN
  3579. IF NOT (f_power_ind(893) OR f_power_ind(892)) THEN
  3580. MessageBox('提示','你没有使用权限!',information!,OK!)
  3581. RETURN
  3582. END IF
  3583. IF uo_ware.c_auditing(TRUE,arg_msg) = 0 THEN
  3584. MessageBox('错误',arg_msg,stopsign!,OK!)
  3585. ELSE
  3586. ls_id = dw_pageretr.Object.inwareid[pagerert_row]
  3587. ls_code = dw_pageretr.Object.inwarecode[pagerert_row]
  3588. f_setsysoplog('仓库外协收货单','撤审,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE)
  3589. //--
  3590. MessageBox('提示','撤审成功!',information!,OK!)
  3591. wf_refresh_curuc(dw_pageretr.Object.ow_wfjg_in_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row])
  3592. END IF
  3593. ELSEIF dw_pageretr.Object.ow_wfjg_in_secflag[pagerert_row] = 1 AND dw_pageretr.Object.flag[pagerert_row] = 1 THEN
  3594. IF NOT (f_power_ind(894) ) THEN
  3595. MessageBox('提示','你没有使用权限!',information!,OK!)
  3596. RETURN
  3597. END IF
  3598. IF uo_ware.c_secauditing(TRUE,arg_msg) = 0 THEN
  3599. MessageBox('错误',arg_msg,stopsign!,OK!)
  3600. ELSE
  3601. //日志
  3602. ls_id = dw_pageretr.Object.inwareid[pagerert_row]
  3603. ls_code = dw_pageretr.Object.inwarecode[pagerert_row]
  3604. f_setsysoplog('仓库外协收货单','财务撤审,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE)
  3605. //--
  3606. MessageBox('提示','撤审成功!',information!,OK!)
  3607. wf_refresh_curuc(dw_pageretr.Object.ow_wfjg_in_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row])
  3608. END IF
  3609. END IF
  3610. end event
  3611. type p_msg from w_publ_1ton_share_detail`p_msg within w_inware_wfjg
  3612. integer x = 3616
  3613. end type
  3614. type p_help from w_publ_1ton_share_detail`p_help within w_inware_wfjg
  3615. integer x = 3808
  3616. end type
  3617. type p_encl from w_publ_1ton_share_detail`p_encl within w_inware_wfjg
  3618. integer x = 3712
  3619. end type
  3620. type p_other from w_publ_1ton_share_detail`p_other within w_inware_wfjg
  3621. integer x = 3904
  3622. end type
  3623. type gb_3 from w_publ_1ton_share_detail`gb_3 within w_inware_wfjg
  3624. end type
  3625. type ln_bar from w_publ_1ton_share_detail`ln_bar within w_inware_wfjg
  3626. end type
  3627. type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_inware_wfjg
  3628. end type
  3629. type r_bar from w_publ_1ton_share_detail`r_bar within w_inware_wfjg
  3630. end type
  3631. type ln_1 from w_publ_1ton_share_detail`ln_1 within w_inware_wfjg
  3632. integer beginx = 9
  3633. integer endx = 3273
  3634. end type
  3635. type ln_2 from w_publ_1ton_share_detail`ln_2 within w_inware_wfjg
  3636. integer beginx = 9
  3637. integer beginy = 284
  3638. integer endx = 3273
  3639. integer endy = 284
  3640. end type
  3641. type ddlb_scid from uo_ddlb_scid within w_inware_wfjg
  3642. integer x = 933
  3643. integer y = 188
  3644. integer width = 549
  3645. integer height = 1120
  3646. integer taborder = 20
  3647. boolean bringtotop = true
  3648. end type
  3649. event constructor;call super::constructor;cur_scid=this.uo_scid
  3650. end event
  3651. event selectionchanged;call super::selectionchanged;cur_scid=this.uo_scid
  3652. parent.triggerevent("retrieve_pageretr")
  3653. end event
  3654. type st_3 from statictext within w_inware_wfjg
  3655. integer x = 1490
  3656. integer y = 204
  3657. integer width = 219
  3658. integer height = 48
  3659. integer textsize = -9
  3660. integer weight = 400
  3661. fontcharset fontcharset = gb2312charset!
  3662. fontpitch fontpitch = variable!
  3663. string facename = "宋体"
  3664. long textcolor = 33554432
  3665. long backcolor = 134217739
  3666. string text = "状 态"
  3667. boolean focusrectangle = false
  3668. end type
  3669. type st_2 from statictext within w_inware_wfjg
  3670. integer x = 754
  3671. integer y = 204
  3672. integer width = 219
  3673. integer height = 48
  3674. integer textsize = -9
  3675. integer weight = 400
  3676. fontcharset fontcharset = gb2312charset!
  3677. fontpitch fontpitch = variable!
  3678. string facename = "宋体"
  3679. long textcolor = 33554432
  3680. long backcolor = 134217739
  3681. string text = "分 部"
  3682. boolean focusrectangle = false
  3683. end type
  3684. type tab_1 from tab within w_inware_wfjg
  3685. integer y = 1148
  3686. integer width = 3538
  3687. integer height = 996
  3688. integer taborder = 40
  3689. boolean bringtotop = true
  3690. integer textsize = -9
  3691. integer weight = 400
  3692. fontcharset fontcharset = gb2312charset!
  3693. fontpitch fontpitch = variable!
  3694. string facename = "宋体"
  3695. long backcolor = 134217739
  3696. boolean raggedright = true
  3697. boolean focusonbuttondown = true
  3698. integer selectedtab = 1
  3699. tabpage_1 tabpage_1
  3700. tabpage_2 tabpage_2
  3701. end type
  3702. on tab_1.create
  3703. this.tabpage_1=create tabpage_1
  3704. this.tabpage_2=create tabpage_2
  3705. this.Control[]={this.tabpage_1,&
  3706. this.tabpage_2}
  3707. end on
  3708. on tab_1.destroy
  3709. destroy(this.tabpage_1)
  3710. destroy(this.tabpage_2)
  3711. end on
  3712. type tabpage_1 from userobject within tab_1
  3713. integer x = 18
  3714. integer y = 96
  3715. integer width = 3502
  3716. integer height = 884
  3717. long backcolor = 134217739
  3718. string text = "外协收货明细"
  3719. long tabtextcolor = 33554432
  3720. long tabbackcolor = 134217739
  3721. long picturemaskcolor = 536870912
  3722. dw_1 dw_1
  3723. end type
  3724. on tabpage_1.create
  3725. this.dw_1=create dw_1
  3726. this.Control[]={this.dw_1}
  3727. end on
  3728. on tabpage_1.destroy
  3729. destroy(this.dw_1)
  3730. end on
  3731. type dw_1 from u_dw_rbtnfilter within tabpage_1
  3732. event ue_dwndropdown pbm_dwndropdown
  3733. integer width = 3493
  3734. integer height = 868
  3735. integer taborder = 20
  3736. string dataobject = "dw_wfjgmx_in_aft_edit"
  3737. boolean hscrollbar = true
  3738. boolean vscrollbar = true
  3739. boolean rbutton_setposition_use = true
  3740. end type
  3741. event ue_dwndropdown;IF NOT dw_edit_mode THEN RETURN
  3742. String ls_col_pz,ls_col_mtrlid
  3743. String ls_pz_ch
  3744. Long ll_row,ll_mtrlid
  3745. s_pzwin_open arg_s_win
  3746. ll_row = THIS.GetRow()
  3747. IF ll_row > 0 THEN
  3748. ls_col_mtrlid = THIS.Describe("#1.Name")
  3749. IF NOT Pos(Lower(ls_col_mtrlid),'mtrlid') > 0 THEN RETURN
  3750. ll_mtrlid = THIS.GetItemNumber(ll_row,ls_col_mtrlid)
  3751. ls_col_pz = THIS.GetColumnName( )
  3752. arg_s_win.arg_x = THIS.X + PARENT.X + THIS.PointerX() + tab_1.X
  3753. arg_s_win.arg_y = THIS.Y + PARENT.Y + THIS.PointerY() + tab_1.Y
  3754. arg_s_win.arg_col = ls_col_pz
  3755. arg_s_win.arg_mtrlid = ll_mtrlid
  3756. ls_pz_ch = f_mtrl_pz(arg_s_win)
  3757. IF ls_pz_ch = '' THEN RETURN
  3758. THIS.SetItem(ll_row,ls_col_pz,ls_pz_ch)
  3759. END IF
  3760. end event
  3761. event doubleclicked;dw_aft.AcceptText()
  3762. If dw_aft.GetRow() = 0 Then Return
  3763. If dw_edit_mode Then
  3764. String column_name // //批设仓库 双击
  3765. If Lower(Left(dwo.Type,4)) = 'text' Then
  3766. column_name = dwo.Name
  3767. If column_name = 'ow_wfjgmx_in_aft_storageid_t' Then
  3768. // MessageBox('','sss')
  3769. GetParentWindow().TriggerEvent('ue_p_storageid')
  3770. Return
  3771. End If
  3772. End If
  3773. //////////////// //
  3774. If row > 0 Then
  3775. If dwo.Name = 'ow_wfjgmx_in_aft_unit' Then
  3776. // PARENT.GetParent().GetParent().TriggerEvent('ue_f6')
  3777. GetParentWindow().TriggerEvent('ue_f6')
  3778. ElseIf dwo.Name = 'ow_wfjgmx_in_aft_addqty' Then
  3779. GetParentWindow().TriggerEvent('ue_f12')
  3780. ElseIf dw_aft.Object.ow_wfjgmx_in_aft_ifrel[row] = 1 Then
  3781. GetParentWindow().TriggerEvent('ue_f7')
  3782. Else
  3783. GetParentWindow().TriggerEvent('ue_f8')
  3784. End If
  3785. Else
  3786. GetParentWindow().TriggerEvent('ue_f8')
  3787. End If
  3788. End If
  3789. end event
  3790. event itemchanged;call super::itemchanged;if not dw_edit_mode then return
  3791. this.accepttext()
  3792. if dwo.name = 'ow_wfjgmx_in_aft_ifrel' then
  3793. if this.object.ow_wfjgmx_in_aft_ifrel[row] = 0 then
  3794. dw_aft.object.ow_wfjgmx_in_aft_relid[row] = 0
  3795. dw_aft.object.ow_wfjgmx_in_aft_relcode[row] = ''
  3796. end if
  3797. elseif dwo.name = 'ow_wfjgmx_in_aft_storageid' then
  3798. this.triggerevent(rowfocuschanged!)
  3799. elseif dwo.name = 'ow_wfjgmx_in_aft_uqty' and sys_option_2unit = 0 then
  3800. dw_aft.Object.ow_wfjgmx_in_aft_qty[dw_aft.GetRow()] = Round(dw_aft.Object.ow_wfjgmx_in_aft_rate[dw_aft.GetRow()] * dw_aft.Object.ow_wfjgmx_in_aft_uqty[dw_aft.GetRow()],sys_option_unit_dec)
  3801. elseif dwo.name = 'ow_wfjgmx_in_aft_qty' and sys_option_2unit = 0 and dw_aft.Object.ow_wfjgmx_in_aft_rate[dw_aft.GetRow()]<>0 then
  3802. dw_aft.Object.ow_wfjgmx_in_aft_uqty[dw_aft.GetRow()] = Round(dw_aft.Object.ow_wfjgmx_in_aft_qty[dw_aft.GetRow()]/dw_aft.Object.ow_wfjgmx_in_aft_rate[dw_aft.GetRow()] ,sys_option_unit_dec)
  3803. end if
  3804. end event
  3805. event dwnkey;call super::dwnkey;GetParentWindow().TriggerEvent('user_key')
  3806. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode
  3807. Long ls_mtrlid,ls_sptid,ls_storageid
  3808. Dec ls_lmbuyprice,ls_planprice
  3809. Dec ls_lastprice,ls_rebate
  3810. String ls_prdpackcode
  3811. Decimal ls_packqty
  3812. Int li_statusflag,li_woodcodeflag,li_pcodeflag
  3813. string ls_mtrlsectype,ls_zxmtrlmode
  3814. String ls_unit_buy,ls_unit_scll,ls_unit_sale
  3815. Decimal ld_rate_buy,ld_rate_scll,ld_rate_sale
  3816. Int li_wfjgunit,li_wfjgdec
  3817. long ld_rate,li_dec
  3818. s_mtrldef_array arg_s_mtrldef
  3819. Long child_row
  3820. Long ls_null
  3821. SetNull(ls_null)
  3822. IF dw_edit_mode THEN
  3823. dw_uc.AcceptText()
  3824. ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]
  3825. IF IsNull(ls_sptid) OR ls_sptid = 0 THEN
  3826. GetParentWindow().TriggerEvent("ue_f9")
  3827. END IF
  3828. IF KeyDown(keydownarrow!) THEN
  3829. Long li_row
  3830. IF dw_aft.GetRow() = dw_aft.RowCount() THEN
  3831. GetParentWindow().TriggerEvent("insert_childrow")
  3832. END IF
  3833. ELSE
  3834. IF KeyDown(keyenter!) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN
  3835. IF dw_aft.GetColumnName() = 'u_mtrldef_mtrlcode' THEN
  3836. dw_aft.AcceptText()
  3837. ls_storageid = dw_aft.Object.ow_wfjgmx_in_aft_storageid[dw_uc.GetRow()]
  3838. IF ls_storageid = 0 OR IsNull(ls_storageid) THEN
  3839. MessageBox('提示','请先选择仓库',information!,OK!)
  3840. RETURN
  3841. END IF
  3842. child_row = dw_aft.GetRow()
  3843. IF dw_aft.Object.ow_wfjgmx_in_aft_ifrel[child_row] = 1 THEN
  3844. GetParentWindow().TriggerEvent('ue_f7')
  3845. RETURN 1
  3846. END IF
  3847. ls_mtrlcode = dw_aft.Object.u_mtrldef_mtrlcode[child_row]
  3848. IF f_find_mtrl(ls_mtrlcode,ls_storageid,arg_s_mtrldef) = 0 THEN
  3849. GetParentWindow().TriggerEvent('ue_f8')
  3850. RETURN 1
  3851. ELSE
  3852. ls_mtrlid = arg_s_mtrldef.mtrlid[1]
  3853. ls_mtrlcode = arg_s_mtrldef.mtrlcode[1]
  3854. ls_mtrlname = arg_s_mtrldef.mtrlname[1]
  3855. ls_unit = arg_s_mtrldef.unit[1]
  3856. ls_mtrlmode = arg_s_mtrldef.mtrlmode[1]
  3857. ls_planprice = arg_s_mtrldef.planprice[1]
  3858. ls_lmbuyprice = arg_s_mtrldef.lmbuyprice[1]
  3859. li_statusflag = arg_s_mtrldef.statusflag[1]
  3860. li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
  3861. li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
  3862. ls_mtrlsectype = arg_s_mtrldef.mtrlsectype[1]
  3863. ls_zxmtrlmode = arg_s_mtrldef.zxmtrlmode[1]
  3864. li_wfjgunit = arg_s_mtrldef.wfjgunit[1]
  3865. ls_unit_buy = arg_s_mtrldef.unit_buy[1]
  3866. ls_unit_scll = arg_s_mtrldef.unit_scll[1]
  3867. ls_unit_sale = arg_s_mtrldef.unit_sale[1]
  3868. ld_rate_buy = arg_s_mtrldef.rate_buy[1]
  3869. ld_rate_scll = arg_s_mtrldef.rate_scll[1]
  3870. ld_rate_sale = arg_s_mtrldef.rate_sale[1]
  3871. li_wfjgdec = arg_s_mtrldef.wfjgdec[1]
  3872. END IF
  3873. IF li_wfjgunit = 0 THEN
  3874. ls_unit = ls_unit
  3875. ld_rate = 1
  3876. li_dec = sys_option_unit_dec
  3877. ELSEIF li_wfjgunit = 1 THEN
  3878. ls_unit = ls_unit_buy
  3879. ld_rate = ld_rate_buy
  3880. li_dec = li_wfjgdec
  3881. ELSEIF li_wfjgunit = 2 THEN
  3882. ls_unit = ls_unit_scll
  3883. ld_rate = ld_rate_scll
  3884. li_dec = li_wfjgdec
  3885. ELSEIF li_wfjgunit = 3 THEN
  3886. ls_unit = ls_unit_sale
  3887. ld_rate = ld_rate_sale
  3888. li_dec = li_wfjgdec
  3889. END IF
  3890. dw_aft.Object.ow_wfjgmx_in_aft_mtrlid[child_row] = ls_mtrlid
  3891. dw_aft.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  3892. dw_aft.Object.u_mtrldef_unit[child_row] = ls_unit
  3893. dw_aft.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  3894. dw_aft.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  3895. dw_aft.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  3896. dw_aft.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  3897. dw_aft.Object.u_mtrldef_statusflag[child_row] = li_statusflag
  3898. dw_aft.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag
  3899. dw_aft.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag
  3900. dw_aft.Object.ow_wfjgmx_in_aft_status[child_row] = arg_s_mtrldef.status[1]
  3901. dw_aft.Object.ow_wfjgmx_in_aft_woodcode[child_row] = arg_s_mtrldef.woodcode[1]
  3902. dw_aft.Object.ow_wfjgmx_in_aft_pcode[child_row] = arg_s_mtrldef.pcode[1]
  3903. dw_aft.Object.ow_wfjgmx_in_aft_unit[child_row] = ls_unit
  3904. dw_aft.Object.ow_wfjgmx_in_aft_rate[child_row] = ld_rate
  3905. IF dw_aft.Object.ow_wfjgmx_in_aft_unit[child_row] = '' OR sys_option_2unit = 0 THEN
  3906. dw_aft.Object.ow_wfjgmx_in_aft_unit[child_row] = ls_unit
  3907. END IF
  3908. wf_get_price(child_row)
  3909. // Decimal ls_1stnewcost,ls_1stzqrate,ls_1strate
  3910. // String arg_msg,ls_status,ls_woodcode,ls_pcode
  3911. //
  3912. // IF cur_editfocus = 1 THEN
  3913. // IF uo_sptprice.uf_getmtrlsptprice(ls_sptid,ls_mtrlid,ls_unit,ls_status,ls_woodcode,ls_pcode,0,ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) <> 1 THEN
  3914. // IF ls_planprice = 0 THEN
  3915. // dw_aft.Object.ow_wfjgmx_in_aft_fprice[child_row] = ls_lmbuyprice
  3916. // ELSE
  3917. // dw_aft.Object.ow_wfjgmx_in_aft_fprice[child_row] = ls_planprice
  3918. // END IF
  3919. // ELSE
  3920. // dw_aft.Object.ow_wfjgmx_in_aft_jgprice[child_row] = ls_1stnewcost
  3921. // dw_aft.Object.ow_wfjgmx_in_aft_rebate[child_row] = ls_1stzqrate
  3922. // END IF
  3923. // END IF
  3924. GetParentWindow().TriggerEvent('ue_allowedit')
  3925. IF Key = keyenter! THEN
  3926. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  3927. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  3928. RETURN 1
  3929. END IF
  3930. ELSEIF dw_aft.GetColumnName( ) = 'ow_wfjgmx_in_aft_rate' THEN
  3931. dw_aft.AcceptText()
  3932. child_row = dw_aft.GetRow()
  3933. dw_aft.Object.ow_wfjgmx_in_aft_qty[child_row] = dw_aft.Object.ow_wfjgmx_in_aft_uqty[child_row] * dw_aft.Object.ow_wfjgmx_in_aft_rate[child_row]
  3934. IF Key = KeyEnter! THEN //
  3935. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  3936. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  3937. RETURN 1
  3938. END IF
  3939. ELSEIF dw_aft.GetColumnName( ) = 'ow_wfjgmx_in_aft_uqty' THEN
  3940. dw_aft.AcceptText()
  3941. child_row = dw_aft.GetRow()
  3942. dw_aft.Object.ow_wfjgmx_in_aft_qty[child_row] = dw_aft.Object.ow_wfjgmx_in_aft_uqty[child_row] * dw_aft.Object.ow_wfjgmx_in_aft_rate[child_row]
  3943. IF Key = KeyEnter! THEN //
  3944. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  3945. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  3946. RETURN 1
  3947. END IF
  3948. ELSEIF dw_aft.GetColumnName( ) = 'ow_wfjgmx_in_aft_plancode' AND dw_aft.GetRow() = dw_aft.RowCount() THEN
  3949. GetParentWindow().TriggerEvent("insert_childrow")
  3950. RETURN 1
  3951. ELSE
  3952. IF Key = keyenter! THEN
  3953. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  3954. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  3955. RETURN 1
  3956. END IF
  3957. END IF
  3958. END IF
  3959. END IF
  3960. END IF
  3961. end event
  3962. event rowfocuschanged;call super::rowfocuschanged;if currentrow <= 0 then return
  3963. this.selectrow(0,false)
  3964. this.selectrow(currentrow,true)
  3965. if this.getrow() = 0 then return
  3966. this.accepttext()
  3967. long ll_storageid,ll_if_plancode
  3968. ll_storageid = this.object.ow_wfjgmx_in_aft_storageid[this.getrow()]
  3969. if ll_storageid <= 0 then return
  3970. select if_plancode
  3971. into :ll_if_plancode
  3972. from u_storage
  3973. where storageid = :ll_storageid;
  3974. if sqlca.sqlcode <> 0 then
  3975. messagebox('提示','查询仓库资料失败',information!,OK!)
  3976. return
  3977. end if
  3978. if ll_if_plancode = 0 then
  3979. this.modify('ow_wfjgmx_in_aft_plancode.protect = 1')
  3980. else
  3981. this.modify('ow_wfjgmx_in_aft_plancode.protect = 0')
  3982. end if
  3983. end event
  3984. event rbuttondown;call super::rbuttondown;IF dw_edit_mode THEN
  3985. Long ll_row,ll_column
  3986. ll_row = THIS.GetRow()
  3987. ll_column = THIS.GetColumn()
  3988. IF ll_row <= 0 THEN RETURN
  3989. IF ll_column <= 0 THEN RETURN
  3990. IF Left( THIS.Describe( dwo.Name+ ".coltype"),4) = 'date' THEN
  3991. s_calender_arg s_calender
  3992. s_calender.PointerX = THIS.PointerX()
  3993. s_calender.PointerY = THIS.PointerY()
  3994. s_calender.X = THIS.X + PARENT.X
  3995. s_calender.Y = THIS.Y + PARENT.Y
  3996. OpenWithParm(w_calendar,s_calender)
  3997. THIS.SetItem(ll_row,ll_column,id_date_selected)
  3998. else
  3999. if Left(dwo.TYPE,4) = 'text' then return
  4000. m_dwchild_rbotton_wfjg m_print
  4001. m_print = CREATE m_dwchild_rbotton_wfjg
  4002. m_print.m_0.PopMenu(tab_1.X + THIS.X + THIS.PointerX() + 50,tab_1.Y + THIS.Y + THIS.PointerY() + 50)
  4003. END IF
  4004. END IF
  4005. end event
  4006. event clicked;THIS.SelectRow(0,FALSE)
  4007. THIS.SelectRow(row,TRUE)
  4008. end event
  4009. type tabpage_2 from userobject within tab_1
  4010. integer x = 18
  4011. integer y = 96
  4012. integer width = 3502
  4013. integer height = 884
  4014. long backcolor = 134217739
  4015. string text = "外协商库存"
  4016. long tabtextcolor = 33554432
  4017. long tabbackcolor = 134217739
  4018. long picturemaskcolor = 536870912
  4019. dw_2 dw_2
  4020. end type
  4021. on tabpage_2.create
  4022. this.dw_2=create dw_2
  4023. this.Control[]={this.dw_2}
  4024. end on
  4025. on tabpage_2.destroy
  4026. destroy(this.dw_2)
  4027. end on
  4028. type dw_2 from u_dw_rbtnfilter within tabpage_2
  4029. integer width = 3493
  4030. integer height = 880
  4031. integer taborder = 20
  4032. boolean bringtotop = true
  4033. string dataobject = "dw_wfjgmx_in_bef_edit"
  4034. boolean hscrollbar = true
  4035. boolean vscrollbar = true
  4036. boolean rbutton_setposition_use = true
  4037. end type
  4038. event doubleclicked;call super::doubleclicked;dw_bef.AcceptText()
  4039. IF dw_edit_mode THEN
  4040. IF row > 0 THEN
  4041. IF dwo.Name = 'ow_wfjgmx_in_bef_unit' THEN
  4042. PARENT.GetParent().GetParent().TriggerEvent('ue_f6')
  4043. ELSE
  4044. PARENT.GetParent().GetParent().TriggerEvent('ue_f11')
  4045. END IF
  4046. END IF
  4047. END IF
  4048. end event
  4049. event dwnkey;call super::dwnkey;parent.getparent().getparent().TriggerEvent('user_key')
  4050. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode
  4051. String ls_plancode,ls_status,ls_woodcode,ls_pcode
  4052. Long ls_mtrlwareid,ls_mtrlid,ls_sptid
  4053. Dec ls_noallocqty,ls_cost,ls_planprice,ls_packqty
  4054. Long child_row
  4055. Long ls_null
  4056. SetNull(ls_null)
  4057. s_sptware_array arg_s_sptware
  4058. IF dw_edit_mode THEN
  4059. dw_uc.AcceptText()
  4060. ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]
  4061. IF ls_sptid = 0 OR IsNull(ls_sptid) THEN
  4062. MessageBox('提示','请先选择加工商',information!,OK!)
  4063. RETURN
  4064. END IF
  4065. IF KeyDown(Keydownarrow!) THEN
  4066. Long li_row
  4067. IF dw_bef.GetRow() = dw_bef.RowCount() THEN
  4068. parent.getparent().getparent().TriggerEvent("insert_childrow_out")
  4069. END IF
  4070. ELSE
  4071. If KeyDown(KeyEnter!) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN
  4072. IF dw_bef.GetColumnName( ) = 'u_mtrldef_mtrlcode' THEN
  4073. dw_bef.AcceptText()
  4074. child_row = dw_bef.GetRow()
  4075. ls_mtrlcode = dw_bef.Object.u_mtrldef_mtrlcode[child_row]
  4076. //查询产品是否多于一批库存
  4077. int cnt=0
  4078. SELECT count(mtrlwareid) into :cnt
  4079. FROM ow_wfjgware, u_mtrldef
  4080. WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid )
  4081. and ( ow_wfjgware.sptid=:ls_sptid )
  4082. and ( u_mtrldef.mtrlcode=:ls_mtrlcode)
  4083. and ( ow_wfjgware.noallocqty > 0 );
  4084. if sqlca.sqlcode=100 or cnt > 1 then
  4085. parent.getparent().getparent().triggerevent('ue_f11')
  4086. return
  4087. end if
  4088. /////////////////////////////
  4089. SELECT top 1 ow_wfjgware.mtrlwareid ,
  4090. ow_wfjgware.mtrlid,
  4091. u_mtrldef.mtrlname,
  4092. u_mtrldef.unit,
  4093. ow_wfjgware.noallocqty,
  4094. ow_wfjgware.cost ,
  4095. ow_wfjgware.sptid,
  4096. ow_wfjgware.plancode,
  4097. u_mtrldef.mtrlmode,
  4098. ow_wfjgware.planprice,
  4099. ow_wfjgware.status,
  4100. ow_wfjgware.woodcode,
  4101. ow_wfjgware.pcode
  4102. INTO :ls_mtrlwareid,:ls_mtrlid,:ls_mtrlname,:ls_unit,:ls_noallocqty,
  4103. :ls_cost,:ls_sptid,:ls_plancode,:ls_mtrlmode,
  4104. :ls_planprice,:ls_status,:ls_woodcode,
  4105. :ls_pcode
  4106. FROM u_mtrldef,
  4107. ow_wfjgware left outer join u_spt
  4108. on ( ow_wfjgware.sptid = u_spt.sptid)
  4109. WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid )
  4110. and ( ow_wfjgware.sptid=:ls_sptid )
  4111. and ( u_mtrldef.mtrlcode=:ls_mtrlcode )
  4112. and ( ow_wfjgware.scid = :cur_scid )
  4113. and ( ow_wfjgware.noallocqty > 0 )
  4114. order by ow_wfjgware.mtrlwareid asc;
  4115. if sqlca.sqlcode=100 then
  4116. parent.getparent().getparent().triggerevent('ue_f11')
  4117. return
  4118. end if
  4119. dw_bef.object.ow_wfjgmx_in_bef_mtrlwareid[child_row]=ls_mtrlwareid
  4120. dw_bef.object.ow_wfjgmx_in_bef_mtrlid[child_row] =ls_mtrlid
  4121. dw_bef.object.u_mtrldef_mtrlname[child_row] =ls_mtrlname
  4122. dw_bef.object.u_mtrldef_mtrlmode[child_row] =ls_mtrlmode
  4123. dw_bef.object.u_mtrldef_unit[child_row] =ls_unit
  4124. dw_bef.object.ow_wfjgmx_in_bef_qty[child_row]=ls_noallocqty
  4125. dw_bef.object.ow_wfjgmx_in_bef_fprice[child_row] =ls_cost
  4126. dw_bef.object.ow_wfjgmx_in_bef_plancode[child_row] =ls_plancode
  4127. dw_bef.object.ow_wfjgmx_in_bef_status[child_row] =ls_status
  4128. dw_bef.object.ow_wfjgmx_in_bef_woodcode[child_row] =ls_woodcode
  4129. dw_bef.object.ow_wfjgmx_in_bef_pcode[child_row] =ls_pcode
  4130. dw_bef.object.ow_wfjgmx_in_bef_unit[child_row] =ls_unit
  4131. dw_bef.object.ow_wfjgmx_in_bef_uqty[child_row] =ls_noallocqty
  4132. dw_bef.object.ow_wfjgmx_in_bef_rate[child_row] =1
  4133. If key = KeyEnter! Then //
  4134. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  4135. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  4136. return 1
  4137. end if
  4138. elseif dw_bef.GetColumnName( )='ow_wfjgmx_in_bef_mxdscrp' and dw_bef.getrow()=dw_bef.rowcount() then
  4139. parent.getparent().getparent().triggerevent("insert_childrow_out")
  4140. return 1
  4141. ELSE
  4142. IF Key = KeyEnter! THEN //
  4143. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  4144. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  4145. RETURN 1
  4146. END IF
  4147. END IF
  4148. END IF
  4149. END IF
  4150. END IF
  4151. end event
  4152. event rbuttondown;call super::rbuttondown;IF dw_edit_mode THEN
  4153. Long ll_row,ll_column
  4154. ll_row = THIS.GetRow()
  4155. ll_column = THIS.GetColumn()
  4156. IF ll_row <= 0 THEN RETURN
  4157. IF ll_column <= 0 THEN RETURN
  4158. IF Left( THIS.Describe( dwo.Name+ ".coltype"),4) = 'date' THEN
  4159. s_calender_arg s_calender
  4160. s_calender.PointerX = THIS.PointerX()
  4161. s_calender.PointerY = THIS.PointerY()
  4162. s_calender.X = THIS.X + PARENT.X
  4163. s_calender.Y = THIS.Y + PARENT.Y
  4164. OpenWithParm(w_calendar,s_calender)
  4165. THIS.SetItem(ll_row,ll_column,id_date_selected)
  4166. else
  4167. if Left(dwo.TYPE,4) = 'text' then return
  4168. m_dwchild_rbotton m_print
  4169. m_print = CREATE m_dwchild_rbotton
  4170. m_print.m_0.PopMenu(tab_1.X + THIS.X + THIS.PointerX() + 50,tab_1.Y + THIS.Y + THIS.PointerY() + 50)
  4171. END IF
  4172. END IF
  4173. end event
  4174. event clicked;call super::clicked;THIS.SelectRow(0,FALSE)
  4175. THIS.SelectRow(row,TRUE)
  4176. end event
  4177. event itemchanged;call super::itemchanged;if not dw_edit_mode then return
  4178. this.accepttext()
  4179. if dwo.name = 'ow_wfjgmx_in_bef_uqty' and sys_option_2unit = 0 then
  4180. this.Object.ow_wfjgmx_in_bef_qty[this.GetRow()] = Round(this.Object.ow_wfjgmx_in_bef_rate[this.GetRow()] * this.Object.ow_wfjgmx_in_bef_uqty[this.GetRow()],sys_option_unit_dec)
  4181. elseif dwo.name = 'ow_wfjgmx_in_bef_qty' and sys_option_2unit = 0 and this.Object.ow_wfjgmx_in_bef_rate[this.GetRow()]<>0 then
  4182. this.Object.ow_wfjgmx_in_bef_uqty[this.GetRow()] = Round(this.Object.ow_wfjgmx_in_bef_qty[this.GetRow()]/this.Object.ow_wfjgmx_in_bef_rate[this.GetRow()] ,sys_option_unit_dec)
  4183. end if
  4184. end event
  4185. type cb_in_2_out from uo_imflatbutton within w_inware_wfjg
  4186. integer x = 3026
  4187. integer y = 1148
  4188. integer width = 603
  4189. integer height = 84
  4190. integer taborder = 380
  4191. boolean bringtotop = true
  4192. boolean enabled = false
  4193. string text = "按清单计算外协商库存"
  4194. end type
  4195. event clicked;call super::clicked;parent.triggerevent("ue_in_to_out2")
  4196. end event
  4197. type ddlb_status from uo_ddlb_status within w_inware_wfjg
  4198. integer x = 1664
  4199. integer y = 188
  4200. integer height = 812
  4201. integer taborder = 40
  4202. boolean bringtotop = true
  4203. string item[] = {"[全部]","待仓审","待财审","已审核"}
  4204. end type
  4205. event selectionchanged;call super::selectionchanged;PARENT.TriggerEvent('retrieve_pageretr')
  4206. end event
  4207. event uof_getvalue;IF this.text = "[全部]" THEN
  4208. cur_flag = -1
  4209. cur_secflag = -1
  4210. //ELSEIF this.text = "待确认" THEN
  4211. // cur_flag = -1
  4212. // cur_secflag = -1
  4213. ELSEIF this.text = "待仓审" THEN
  4214. cur_flag = 0
  4215. cur_secflag = -1
  4216. ELSEIF this.text = "待财审" THEN
  4217. cur_flag = 1
  4218. cur_secflag = 0
  4219. ELSEIF this.text = "已审核" THEN
  4220. cur_flag = 1
  4221. cur_secflag = 1
  4222. END IF
  4223. end event
  4224. type cb_cmpl from uo_imflatbutton within w_inware_wfjg
  4225. integer x = 2638
  4226. integer y = 1148
  4227. integer width = 384
  4228. integer height = 84
  4229. integer taborder = 390
  4230. boolean bringtotop = true
  4231. boolean enabled = false
  4232. string text = "计算材料成本"
  4233. end type
  4234. event clicked;call super::clicked;IF sys_option_wfjg_price_cmp = 0 THEN
  4235. PARENT.TriggerEvent('ue_cmp_newprice')
  4236. ELSEIF sys_option_wfjg_price_cmp = 1 THEN
  4237. PARENT.TriggerEvent('ue_cmp_thisprice')
  4238. ELSE
  4239. PARENT.TriggerEvent('ue_cmp_planprice')
  4240. END IF
  4241. end event
  4242. type cbx_cmpl from checkbox within w_inware_wfjg
  4243. integer x = 759
  4244. integer y = 1164
  4245. integer width = 631
  4246. integer height = 60
  4247. boolean bringtotop = true
  4248. integer textsize = -9
  4249. integer weight = 400
  4250. fontcharset fontcharset = gb2312charset!
  4251. fontpitch fontpitch = variable!
  4252. string facename = "宋体"
  4253. long textcolor = 33554432
  4254. long backcolor = 134217739
  4255. string text = "保存自动计算材料成本"
  4256. end type
  4257. event constructor;long ll_check
  4258. ll_check = Long(f_ProfileString(sys_empid, Parent.ClassName(), This.ClassName(), '0'))
  4259. This.Checked = (ll_check = 1)
  4260. end event
  4261. event clicked;Long ll_check = 0
  4262. IF This.Checked THEN
  4263. ll_check = 1
  4264. ELSE
  4265. ll_check = 0
  4266. END IF
  4267. f_setProfileString(sys_empid, Parent.ClassName(), This.ClassName(), String(ll_check))
  4268. end event
  4269. type cbx_autocmp from checkbox within w_inware_wfjg
  4270. integer x = 2098
  4271. integer y = 192
  4272. integer width = 1074
  4273. integer height = 76
  4274. boolean bringtotop = true
  4275. integer textsize = -9
  4276. integer weight = 400
  4277. fontcharset fontcharset = gb2312charset!
  4278. fontpitch fontpitch = variable!
  4279. string facename = "宋体"
  4280. long textcolor = 33554432
  4281. long backcolor = 67108864
  4282. string text = "保存自动按收货明细计算外协商库存明细"
  4283. end type
  4284. event constructor;int li_autocmpl
  4285. li_autocmpl = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "cur_autocmpl", '0'))
  4286. IF li_autocmpl = 0 THEN
  4287. THIS.Checked = FALSE
  4288. ELSE
  4289. THIS.Checked = TRUE
  4290. END IF
  4291. end event
  4292. event clicked;int li_autocmpl
  4293. IF THIS.Checked THEN
  4294. li_autocmpl = 1
  4295. ELSE
  4296. li_autocmpl = 0
  4297. END IF
  4298. f_SetProfileString (sys_empid,dw_pageretr.DataObject, "cur_autocmpl", String(li_autocmpl))
  4299. end event
  4300. type cb_bef_to_aft from uo_imflatbutton within w_inware_wfjg
  4301. integer x = 1458
  4302. integer y = 1148
  4303. integer width = 603
  4304. integer height = 84
  4305. integer taborder = 390
  4306. boolean bringtotop = true
  4307. boolean enabled = false
  4308. string text = "→外协收货明细"
  4309. end type
  4310. event clicked;call super::clicked;parent.triggerevent("ue_bef_to_aft")
  4311. end event
  4312. type cbx_autocmp_1 from checkbox within w_inware_wfjg
  4313. integer x = 3214
  4314. integer y = 192
  4315. integer width = 1179
  4316. integer height = 76
  4317. boolean bringtotop = true
  4318. integer textsize = -9
  4319. integer weight = 400
  4320. fontcharset fontcharset = gb2312charset!
  4321. fontpitch fontpitch = variable!
  4322. string facename = "宋体"
  4323. long textcolor = 33554432
  4324. long backcolor = 67108864
  4325. string text = "保存自动按外协商库存[按清单且外协商库存]"
  4326. end type
  4327. event clicked;int li_autocmpl_1
  4328. IF THIS.Checked THEN
  4329. li_autocmpl_1 = 1
  4330. ELSE
  4331. li_autocmpl_1 = 0
  4332. END IF
  4333. f_SetProfileString (sys_empid,dw_pageretr.DataObject, "cur_autocmp_1", String(li_autocmpl_1))
  4334. end event
  4335. event constructor;int li_autocmpl_1
  4336. li_autocmpl_1 = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "cur_autocmp_1", '0'))
  4337. IF li_autocmpl_1 = 0 THEN
  4338. THIS.Checked = FALSE
  4339. ELSE
  4340. THIS.Checked = TRUE
  4341. END IF
  4342. end event
  4343. type cb_ware from uo_imflatbutton within w_inware_wfjg
  4344. integer x = 2121
  4345. integer y = 1148
  4346. integer width = 480
  4347. integer height = 84
  4348. integer taborder = 400
  4349. boolean bringtotop = true
  4350. boolean enabled = false
  4351. string text = "→外协商库存"
  4352. end type
  4353. event clicked;call super::clicked;if not dw_edit_mode then return
  4354. string arg_msg
  4355. if wf_aft_to_bef(arg_msg) = 0 then
  4356. messagebox('错误',arg_msg,stopsign!,OK!)
  4357. end if
  4358. end event