w_buytask.srw 155 KB

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