w_mtrldef_prdpf_padd.srw 340 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819
  1. $PBExportHeader$w_mtrldef_prdpf_padd.srw
  2. forward
  3. global type w_mtrldef_prdpf_padd from w_publ_base
  4. end type
  5. type dw_1 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd
  6. end type
  7. type st_2 from statictext within w_mtrldef_prdpf_padd
  8. end type
  9. type st_mtrl from statictext within w_mtrldef_prdpf_padd
  10. end type
  11. type cb_mod_bcp from uo_imflatbutton within w_mtrldef_prdpf_padd
  12. end type
  13. type cb_save_bcp from uo_imflatbutton within w_mtrldef_prdpf_padd
  14. end type
  15. type cb_other_bom from uo_imflatbutton within w_mtrldef_prdpf_padd
  16. end type
  17. type cb_save from uo_imflatbutton within w_mtrldef_prdpf_padd
  18. end type
  19. type st_1 from statictext within w_mtrldef_prdpf_padd
  20. end type
  21. type st_mtrl_pf from statictext within w_mtrldef_prdpf_padd
  22. end type
  23. type cb_delmx from uo_imflatbutton within w_mtrldef_prdpf_padd
  24. end type
  25. type mle_log from multilineedit within w_mtrldef_prdpf_padd
  26. end type
  27. type dw_2 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd
  28. end type
  29. type cb_addmx_wp from uo_imflatbutton within w_mtrldef_prdpf_padd
  30. end type
  31. type cb_delmx_wp from uo_imflatbutton within w_mtrldef_prdpf_padd
  32. end type
  33. type cb_save_wp from uo_imflatbutton within w_mtrldef_prdpf_padd
  34. end type
  35. type cb_edit_wp from uo_imflatbutton within w_mtrldef_prdpf_padd
  36. end type
  37. type dw_copy from datawindow within w_mtrldef_prdpf_padd
  38. end type
  39. type cb_cmpl_pfklmode from commandbutton within w_mtrldef_prdpf_padd
  40. end type
  41. type st_arg from statictext within w_mtrldef_prdpf_padd
  42. end type
  43. type em_arg from editmask within w_mtrldef_prdpf_padd
  44. end type
  45. type cbx_cmp_qty from checkbox within w_mtrldef_prdpf_padd
  46. end type
  47. type cb_re_mtrl from uo_imflatbutton within w_mtrldef_prdpf_padd
  48. end type
  49. type cbx_pfgroup from checkbox within w_mtrldef_prdpf_padd
  50. end type
  51. type cb_import from uo_imflatbutton within w_mtrldef_prdpf_padd
  52. end type
  53. type cb_1 from uo_imflatbutton within w_mtrldef_prdpf_padd
  54. end type
  55. type cb_moban from uo_imflatbutton within w_mtrldef_prdpf_padd
  56. end type
  57. type cb_change from uo_imflatbutton within w_mtrldef_prdpf_padd
  58. end type
  59. type cb_print from uo_imflatbutton within w_mtrldef_prdpf_padd
  60. end type
  61. type cbx_save_close from checkbox within w_mtrldef_prdpf_padd
  62. end type
  63. type rb_1 from radiobutton within w_mtrldef_prdpf_padd
  64. end type
  65. type rb_2 from radiobutton within w_mtrldef_prdpf_padd
  66. end type
  67. type dw_3 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd
  68. end type
  69. type dw_copy_wkp from datawindow within w_mtrldef_prdpf_padd
  70. end type
  71. type dw_copy_main from datawindow within w_mtrldef_prdpf_padd
  72. end type
  73. type cb_copy_paste from uo_imflatbutton within w_mtrldef_prdpf_padd
  74. end type
  75. type cb_bom from uo_imflatbutton within w_mtrldef_prdpf_padd
  76. end type
  77. type cb_tmp_save from uo_imflatbutton within w_mtrldef_prdpf_padd
  78. end type
  79. type cb_tmp_read from uo_imflatbutton within w_mtrldef_prdpf_padd
  80. end type
  81. type cb_templet_ch from uo_imflatbutton within w_mtrldef_prdpf_padd
  82. end type
  83. type dw_buffer from datawindow within w_mtrldef_prdpf_padd
  84. end type
  85. type cb_pack from uo_imflatbutton within w_mtrldef_prdpf_padd
  86. end type
  87. type cb_all_ch from commandbutton within w_mtrldef_prdpf_padd
  88. end type
  89. type cb_fan_ch from commandbutton within w_mtrldef_prdpf_padd
  90. end type
  91. type cbx_ifreset from checkbox within w_mtrldef_prdpf_padd
  92. end type
  93. type cb_autocode from uo_imflatbutton within w_mtrldef_prdpf_padd
  94. end type
  95. type cbx_wp_pack from checkbox within w_mtrldef_prdpf_padd
  96. end type
  97. type cb_2 from uo_imflatbutton within w_mtrldef_prdpf_padd
  98. end type
  99. type cb_fj_edit from uo_imflatbutton within w_mtrldef_prdpf_padd
  100. end type
  101. type cbx_wp_add from checkbox within w_mtrldef_prdpf_padd
  102. end type
  103. type cb_old_to_new from commandbutton within w_mtrldef_prdpf_padd
  104. end type
  105. type cb_add_mtrl from uo_imflatbutton within w_mtrldef_prdpf_padd
  106. end type
  107. type ln_bar from line within w_mtrldef_prdpf_padd
  108. end type
  109. type ln_bar2 from line within w_mtrldef_prdpf_padd
  110. end type
  111. type r_bar from rectangle within w_mtrldef_prdpf_padd
  112. end type
  113. type ln_7 from line within w_mtrldef_prdpf_padd
  114. end type
  115. type ln_8 from line within w_mtrldef_prdpf_padd
  116. end type
  117. type ln_1 from line within w_mtrldef_prdpf_padd
  118. end type
  119. type ln_2 from line within w_mtrldef_prdpf_padd
  120. end type
  121. type ln_3 from line within w_mtrldef_prdpf_padd
  122. end type
  123. type ln_4 from line within w_mtrldef_prdpf_padd
  124. end type
  125. type ln_5 from line within w_mtrldef_prdpf_padd
  126. end type
  127. type ln_6 from line within w_mtrldef_prdpf_padd
  128. end type
  129. type ln_9 from line within w_mtrldef_prdpf_padd
  130. end type
  131. type ln_10 from line within w_mtrldef_prdpf_padd
  132. end type
  133. type ln_11 from line within w_mtrldef_prdpf_padd
  134. end type
  135. type ln_12 from line within w_mtrldef_prdpf_padd
  136. end type
  137. end forward
  138. global type w_mtrldef_prdpf_padd from w_publ_base
  139. integer width = 5879
  140. integer height = 2396
  141. string title = "物料清单辅助建立"
  142. boolean maxbox = true
  143. windowstate windowstate = maximized!
  144. boolean clientedge = true
  145. event ue_retrieve_workprice ( )
  146. event ue_wp_status ( )
  147. event ue_wp_procode ( )
  148. event ue_cmp_pfklmode ( )
  149. event ue_cmp_pfgroupmode ( )
  150. event ue_allowedit ( )
  151. event ue_import_xls ( )
  152. event ue_import_xls_2 ( )
  153. event ue_import_xls_3 ( )
  154. event user_key ( )
  155. event ue_add_same ( )
  156. event ue_add_next ( )
  157. event ue_viewprint_dy ( )
  158. event ue_viewprint_gy ( )
  159. event ue_viewprint_tree ( )
  160. event ue_viewprint_yl ( )
  161. event ue_viewprint_yl_wrk ( )
  162. event ue_retrieve_wkp ( )
  163. event ue_gydscrp ( )
  164. event ue_copy_mx ( )
  165. event ue_paste_mx ( )
  166. event ue_copy_mx_this ( )
  167. event ue_paste_mx_same ( )
  168. event ue_templet_ch ( )
  169. event ue_wp_u_workqtystr ( )
  170. event ue_wp_workqtystr ( )
  171. event ue_wp_u_pricestr ( )
  172. event ue_wp_pricestr ( )
  173. event ue_import_xls_4 ( )
  174. event ue_import_xls_5 ( )
  175. event ue_import_xls_6 ( )
  176. event ue_cmp_packinfo ( )
  177. event ue_old_to_new ( )
  178. event ue_import_xls_7 ( )
  179. event ue_del_ch ( )
  180. event ue_del_this ( )
  181. event ue_add_up ( )
  182. dw_1 dw_1
  183. st_2 st_2
  184. st_mtrl st_mtrl
  185. cb_mod_bcp cb_mod_bcp
  186. cb_save_bcp cb_save_bcp
  187. cb_other_bom cb_other_bom
  188. cb_save cb_save
  189. st_1 st_1
  190. st_mtrl_pf st_mtrl_pf
  191. cb_delmx cb_delmx
  192. mle_log mle_log
  193. dw_2 dw_2
  194. cb_addmx_wp cb_addmx_wp
  195. cb_delmx_wp cb_delmx_wp
  196. cb_save_wp cb_save_wp
  197. cb_edit_wp cb_edit_wp
  198. dw_copy dw_copy
  199. cb_cmpl_pfklmode cb_cmpl_pfklmode
  200. st_arg st_arg
  201. em_arg em_arg
  202. cbx_cmp_qty cbx_cmp_qty
  203. cb_re_mtrl cb_re_mtrl
  204. cbx_pfgroup cbx_pfgroup
  205. cb_import cb_import
  206. cb_1 cb_1
  207. cb_moban cb_moban
  208. cb_change cb_change
  209. cb_print cb_print
  210. cbx_save_close cbx_save_close
  211. rb_1 rb_1
  212. rb_2 rb_2
  213. dw_3 dw_3
  214. dw_copy_wkp dw_copy_wkp
  215. dw_copy_main dw_copy_main
  216. cb_copy_paste cb_copy_paste
  217. cb_bom cb_bom
  218. cb_tmp_save cb_tmp_save
  219. cb_tmp_read cb_tmp_read
  220. cb_templet_ch cb_templet_ch
  221. dw_buffer dw_buffer
  222. cb_pack cb_pack
  223. cb_all_ch cb_all_ch
  224. cb_fan_ch cb_fan_ch
  225. cbx_ifreset cbx_ifreset
  226. cb_autocode cb_autocode
  227. cbx_wp_pack cbx_wp_pack
  228. cb_2 cb_2
  229. cb_fj_edit cb_fj_edit
  230. cbx_wp_add cbx_wp_add
  231. cb_old_to_new cb_old_to_new
  232. cb_add_mtrl cb_add_mtrl
  233. ln_bar ln_bar
  234. ln_bar2 ln_bar2
  235. r_bar r_bar
  236. ln_7 ln_7
  237. ln_8 ln_8
  238. ln_1 ln_1
  239. ln_2 ln_2
  240. ln_3 ln_3
  241. ln_4 ln_4
  242. ln_5 ln_5
  243. ln_6 ln_6
  244. ln_9 ln_9
  245. ln_10 ln_10
  246. ln_11 ln_11
  247. ln_12 ln_12
  248. end type
  249. global w_mtrldef_prdpf_padd w_mtrldef_prdpf_padd
  250. type variables
  251. s_edit_index_tran s_tran
  252. Long ins_mtrlid,ins_mtrlid_pf
  253. String ins_pfdscrp
  254. String ins_pfcode
  255. String ins_mtrlcode,ins_mtrlname
  256. Boolean ins_ifmod = False
  257. Boolean ins_ifmod_wp = False
  258. String ins_mtrlcode_ori = ''
  259. String ins_mtrlname_ori = ''
  260. String ins_mtrlmode_ori = ''
  261. String ins_unit_ori = ''
  262. String ins_mtrlsectype_ori = ''
  263. String ins_zxmtrlmode_ori = ''
  264. String ins_usermtrlmode_ori = ''
  265. Long ins_mtrltypeid_ori = 0
  266. Long ins_scid_ori = 0
  267. Long ins_dftwrkgrpid_ori = 0
  268. Decimal ins_orderdays_ori = 0
  269. Decimal ins_buydays_ori = 0
  270. Decimal ins_wfjgdays_ori = 0
  271. String ins_mb_mtrlcode = ''
  272. uo_mtrldef uo_mtrl
  273. uo_mtrl_pf uo_pf
  274. uo_workpricetable u_wrkprice
  275. Long ins_cnt = 0
  276. Int ins_if_saletask
  277. Long ins_scid,ins_taskid,ins_printid
  278. Int ins_copy_type = 0 //复制类型 0 - 复制下级 1-复制本级及下级
  279. end variables
  280. forward prototypes
  281. public function integer wf_face ()
  282. public function integer wf_checkrand (ref string arg_msg)
  283. public function integer wf_save (ref string arg_msg)
  284. public function integer wf_addmx (long arg_mtrlid, string arg_pfcode, long arg_lp, decimal arg_qty, ref string arg_msg)
  285. public function integer wf_addmx_row (long arg_mtrlid, string arg_pfcode, long arg_lp, long arg_row, decimal arg_qty, ref string arg_msg)
  286. public function integer wf_face_wp ()
  287. public subroutine wf_re_mtrl (integer arg_if_addmx)
  288. public function integer wf_cmpprdpf (long arg_mtrlid, string arg_pfcode)
  289. public function integer wf_check_wkp (ref string arg_msg)
  290. public function integer wf_add_row (long arg_mtrlid, string arg_pfcode, long arg_lp, decimal arg_qty, ref string arg_msg, ref long arg_row)
  291. public function integer wf_add_row_null (string arg_mtrlname, long arg_lp, decimal arg_qty, ref string arg_msg, ref long arg_row)
  292. public function integer wf_auto_wp (boolean arg_ifwpadd, ref string arg_msg)
  293. public function integer wf_addmx_up (long arg_mtrlid, string arg_pfcode, long arg_pmtrlid, long arg_lp, long arg_row, ref string arg_msg)
  294. public function integer wf_addmx_next (long arg_mtrlid, string arg_pfcode, long arg_pmtrlid, long arg_lp, long arg_row, ref string arg_msg, decimal arg_qty, decimal arg_pfgroupqty)
  295. end prototypes
  296. event ue_retrieve_workprice();Long ll_row
  297. Long ll_mtrlid
  298. Long ll_dftwrkgrpid
  299. Long ll_i,ll_j,ll_row_copy
  300. String ls_mtrlcode
  301. Long ll_mb_mtrlid
  302. string ls_wpcode
  303. ll_j = 0
  304. ll_row = dw_1.GetRow()
  305. IF ll_row <= 0 THEN
  306. ll_dftwrkgrpid = 0
  307. ELSE
  308. ll_dftwrkgrpid = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row]
  309. END IF
  310. //只显未产品默认制造车间相关的工组
  311. datawindowchild childdw
  312. dw_2.SetTransObject (sqlca)
  313. dw_2.GetChild("wrkgrpid",childdw)
  314. childdw.SetTransObject (sqlca)
  315. IF childdw.Retrieve(ll_dftwrkgrpid) = 0 THEN
  316. childdw.InsertRow(0)
  317. END IF
  318. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  319. IF ll_row <= 0 THEN
  320. dw_2.Reset()
  321. ELSE
  322. IF dw_1.Object.ifmod_wp[ll_row] = 0 THEN
  323. ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_row]
  324. ll_mb_mtrlid = dw_1.Object.mb_mtrlid[ll_row]
  325. IF ll_mb_mtrlid > 0 THEN
  326. ls_wpcode = f_get_dft_wp(ll_mb_mtrlid)
  327. dw_2.Retrieve(ll_mb_mtrlid,ls_wpcode)
  328. ELSE
  329. ls_wpcode = f_get_dft_wp(ll_mtrlid)
  330. dw_2.Retrieve(ll_mtrlid,ls_wpcode)
  331. END IF
  332. ELSE
  333. dw_2.setredraw(false)
  334. dw_2.Reset()
  335. dw_copy.SetFilter("u_mtrldef_mtrlcode = '"+ls_mtrlcode + "'")
  336. dw_copy.Filter()
  337. FOR ll_i = 1 To dw_copy.RowCount()
  338. // ll_row_copy = dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode + "'", ll_i, ll_i)
  339. // IF ll_row_copy > 0 THEN
  340. // ll_j++
  341. dw_copy.RowsCopy (ll_i,ll_i,Primary!,dw_2,ll_i,Primary!)
  342. // END IF
  343. NEXT
  344. dw_2.setredraw(true)
  345. END IF
  346. END IF
  347. end event
  348. event ue_wp_status();IF NOT ins_ifmod_wp THEN RETURN
  349. Long uc_row,ll_mtrlid,child_row
  350. string ls_status
  351. uc_row = dw_1.GetRow()
  352. IF uc_row <= 0 THEN
  353. MessageBox('系统提示','请先选择产品')
  354. RETURN
  355. END IF
  356. child_row = dw_2.getrow()
  357. if child_row <= 0 then
  358. MessageBox('系统提示','请选择明细')
  359. RETURN
  360. END IF
  361. dw_1.AcceptText()
  362. dw_2.AcceptText()
  363. ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[uc_row]
  364. IF NOT IsValid(w_configure_ch_zj) THEN
  365. s_edit_index_tran s_ch_tran
  366. s_ch_tran.c_long = ll_mtrlid
  367. OpenWithParm(w_configure_ch_zj,s_ch_tran) //调用
  368. ls_status = Message.StringParm //接受返回结构
  369. dw_2.SetRedraw(FALSE)
  370. IF len(trim(ls_status)) > 0 THEN
  371. if ls_status = '[清空配置]' then ls_status = ''
  372. dw_2.Object.u_sc_workprice_status[child_row] = ls_status
  373. dw_2.SetFocus()
  374. dw_2.SetColumn('dscrp')
  375. END IF
  376. dw_2.SetRedraw(TRUE)
  377. END IF
  378. end event
  379. event ue_wp_procode();IF NOT ins_ifmod_wp THEN RETURN
  380. Long ll_row
  381. Long child_row
  382. string ls_mtrlcode
  383. long ll_mtrlid
  384. ll_row = dw_1.GetRow()
  385. child_row = dw_2.GetRow()
  386. IF ll_row <= 0 THEN
  387. MessageBox('系统提示','没有正确的物料内容')
  388. RETURN
  389. END IF
  390. IF dw_1.Object.u_mtrldef_mtrlorigin[ll_row] <> 0 THEN
  391. MessageBox('系统提示','只有自制来源的产品及半成品才能编辑工价表明细,请检查')
  392. RETURN
  393. END IF
  394. ls_mtrlcode = dw_1.object.u_mtrldef_mtrlcode[ll_row]
  395. s_edit_index_tran s_ch_tran
  396. s_ch_tran.if_retrieve_all = TRUE
  397. s_ch_tran.work_mode = 1
  398. s_ch_tran.arg_pkid = 0
  399. s_ch_tran.b_long = 0
  400. s_ch_tran.if_select_all = TRUE
  401. IF child_row > 0 THEN s_ch_tran.arg_string_code = dw_2.Object.procode[child_row]
  402. Long ls_j
  403. IF NOT IsValid(w_sc_workprocedure) THEN
  404. OpenWithParm(w_sc_workprocedure,s_ch_tran) //调用
  405. s_workprocedure S_INSCUST
  406. S_INSCUST = Message.PowerObjectParm //接受返回结构
  407. FOR ls_j = 1 TO UpperBound(S_INSCUST.wrkproid)
  408. IF S_INSCUST.wrkproid[ls_j] > 0 THEN //正常返回值则可以取以下值
  409. IF dw_2.Find('proid='+String(S_INSCUST.wrkproid[ls_j]),1,dw_2.RowCount()) = 0 THEN
  410. IF dw_2.GetRow() > 0 THEN
  411. IF dw_2.Object.proid[child_row] <> 0 THEN
  412. child_row = dw_2.InsertRow (0)
  413. ELSE
  414. child_row = dw_2.GetRow()
  415. END IF
  416. ELSE
  417. child_row = dw_2.InsertRow (0)
  418. END IF
  419. END IF
  420. dw_2.Object.proid[child_row] = S_INSCUST.wrkproid[ls_j]
  421. dw_2.Object.procode[child_row] = S_INSCUST.wrkprocode[ls_j]
  422. dw_2.Object.u_sc_workprice_proname[child_row] = S_INSCUST.wrkproname[ls_j]
  423. dw_2.Object.worklevel[child_row] = S_INSCUST.worklevel[ls_j]
  424. dw_2.Object.techlevel[child_row] = S_INSCUST.techlevel[ls_j]
  425. dw_2.Object.workhour[child_row] = S_INSCUST.workhour[ls_j]
  426. dw_2.Object.wrkgrpid[child_row] = S_INSCUST.wrkgrid[ls_j]
  427. dw_2.Object.workprice[child_row] = S_INSCUST.workprice[ls_j]
  428. dw_2.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  429. IF child_row > 1 THEN
  430. dw_2.Object.proorder[child_row] = dw_2.Object.proorder[child_row - 1] + 1
  431. END IF
  432. END IF
  433. NEXT
  434. dw_2.SetRow(child_row)
  435. dw_2.ScrollToRow(child_row)
  436. dw_2.SetFocus()
  437. IF UpperBound(S_INSCUST.wrkproid) > 0 THEN
  438. dw_2.SetColumn("workprice")
  439. END IF
  440. END IF
  441. dw_2.SetRedraw(TRUE)
  442. dw_2.SetFocus()
  443. end event
  444. event ue_cmp_pfklmode();IF ins_ifmod_wp THEN
  445. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  446. RETURN
  447. END IF
  448. IF ins_ifmod THEN
  449. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  450. RETURN
  451. END IF
  452. Long ll_i,ll_j,ll_k
  453. String ls_pfklmode
  454. String arg_msg
  455. Decimal ld_sonscale
  456. dw_1.AcceptText()
  457. Long ll_length,j
  458. String ls_code,ls_pfklmode_cmpl
  459. Decimal ld_pfgroupqty
  460. Decimal ld_arg
  461. Decimal ld_qty_p
  462. Long ll_lp
  463. Decimal ld_sonscale_ori
  464. ld_arg = Dec(em_arg.Text)
  465. IF IsNull(ld_arg) Or ld_arg = 0 THEN
  466. MessageBox('系统提示','请输入正确的参数')
  467. RETURN
  468. END IF
  469. dw_1.SetRedraw(False)
  470. FOR ll_i = 1 To dw_1.RowCount()
  471. ls_pfklmode = Trim(dw_1.Object.u_prdpf_pfklmode[ll_i])
  472. ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_i]
  473. IF dw_1.Object.iflock[ll_i] = 1 THEN CONTINUE
  474. IF ls_pfklmode = '' THEN CONTINUE
  475. ls_pfklmode_cmpl = ls_pfklmode
  476. ll_length = Len(ls_pfklmode_cmpl)
  477. ls_pfklmode = ''
  478. j = 0
  479. j++
  480. DO WHILE ll_length >= j
  481. ls_code = Mid(ls_pfklmode_cmpl,j,1)
  482. IF Not Asc(ls_code) > 127 THEN
  483. ls_pfklmode += ls_code
  484. END IF
  485. j++
  486. LOOP
  487. IF f_cmpl_pfklmode(ls_pfklmode,ld_sonscale,arg_msg) = 0 THEN
  488. dw_1.SetRedraw(True)
  489. MessageBox('提示','行:'+String(ll_i)+','+arg_msg)
  490. RETURN
  491. END IF
  492. IF dw_1.Object.lp[ll_i] = 1 THEN
  493. ld_qty_p = 1
  494. ELSEIF dw_1.Object.lp[ll_i] > 1 THEN
  495. FOR ll_j = ll_i To 1 Step -1
  496. IF dw_1.Object.lp[ll_j] = dw_1.Object.lp[ll_i] - 1 THEN
  497. ld_qty_p = dw_1.Object.u_prdpf_sonscale[ll_j]
  498. EXIT
  499. END IF
  500. NEXT
  501. END IF
  502. IF cbx_cmp_qty.Checked THEN
  503. dw_1.Object.u_prdpf_sonscale[ll_i] = Round(ld_sonscale / ld_arg * ld_pfgroupqty * ld_qty_p ,sys_option_produce_dec)
  504. ELSE
  505. dw_1.Object.u_prdpf_sonscale[ll_i] = Round(ld_sonscale / ld_arg * ld_qty_p,sys_option_produce_dec)
  506. END IF
  507. dw_1.AcceptText()
  508. ll_lp = dw_1.Object.lp[ll_i]
  509. ld_sonscale_ori = dw_1.Object.u_prdpf_sonscale_ori[ll_i]
  510. ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_i]
  511. FOR ll_k = ll_i + 1 To dw_1.RowCount()
  512. IF dw_1.Object.lp[ll_k] <= ll_lp THEN EXIT
  513. dw_1.Object.u_prdpf_sonscale[ll_k] = dw_1.Object.u_prdpf_sonscale_ori[ll_k] * (ld_sonscale / ld_sonscale_ori )
  514. NEXT
  515. ll_i = ll_k - 1
  516. NEXT
  517. dw_1.SetRedraw(True)
  518. end event
  519. event ue_cmp_pfgroupmode();IF ins_ifmod_wp THEN
  520. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  521. RETURN
  522. END IF
  523. IF ins_ifmod THEN
  524. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  525. RETURN
  526. END IF
  527. Long ll_i,ll_j,ll_k,ll_lp
  528. String ls_pfgroupmode
  529. String arg_msg
  530. Decimal ld_sonscale,ld_sonscale_ori
  531. dw_1.AcceptText()
  532. Long ll_length,j
  533. String ls_code,ls_pfgroupmode_cmpl
  534. Decimal ld_pfgroupqty
  535. Decimal ld_arg,ld_qty_p
  536. ld_arg = Dec(em_arg.Text)
  537. IF IsNull(ld_arg) Or ld_arg = 0 THEN
  538. MessageBox('系统提示','请输入正确的参数')
  539. RETURN
  540. END IF
  541. dw_1.SetRedraw(False)
  542. FOR ll_i = 1 To dw_1.RowCount()
  543. ls_pfgroupmode = Trim(dw_1.Object.u_prdpf_pfgroupmode[ll_i])
  544. ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_i]
  545. IF dw_1.Object.iflock[ll_i] = 1 THEN CONTINUE
  546. IF ls_pfgroupmode = '' THEN CONTINUE
  547. ls_pfgroupmode_cmpl = ls_pfgroupmode
  548. ll_length = Len(ls_pfgroupmode_cmpl)
  549. ls_pfgroupmode = ''
  550. j = 0
  551. j++
  552. DO WHILE ll_length >= j
  553. ls_code = Mid(ls_pfgroupmode_cmpl,j,1)
  554. IF Not Asc(ls_code) > 127 THEN
  555. ls_pfgroupmode += ls_code
  556. END IF
  557. j++
  558. LOOP
  559. IF f_cmpl_pfklmode(ls_pfgroupmode,ld_sonscale,arg_msg) = 0 THEN
  560. dw_1.SetRedraw(True)
  561. MessageBox('提示','行:'+String(ll_i)+','+arg_msg)
  562. RETURN
  563. END IF
  564. IF dw_1.Object.lp[ll_i] = 1 THEN
  565. ld_qty_p = 1
  566. ELSEIF dw_1.Object.lp[ll_i] > 1 THEN
  567. FOR ll_j = ll_i To 1 Step -1
  568. IF dw_1.Object.lp[ll_j] = dw_1.Object.lp[ll_i] - 1 THEN
  569. ld_qty_p = dw_1.Object.u_prdpf_sonscale[ll_j]
  570. EXIT
  571. END IF
  572. NEXT
  573. END IF
  574. IF cbx_cmp_qty.Checked THEN
  575. dw_1.Object.u_prdpf_sonscale[ll_i] = Round(ld_sonscale / ld_arg * ld_pfgroupqty * ld_qty_p,sys_option_produce_dec)
  576. ELSE
  577. dw_1.Object.u_prdpf_sonscale[ll_i] = Round(ld_sonscale / ld_arg * ld_qty_p,sys_option_produce_dec)
  578. END IF
  579. ll_lp = dw_1.Object.lp[ll_i]
  580. ld_sonscale_ori = dw_1.Object.u_prdpf_sonscale_ori[ll_i]
  581. ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_i]
  582. FOR ll_k = ll_i + 1 To dw_1.RowCount()
  583. IF dw_1.Object.lp[ll_k] <= ll_lp THEN EXIT
  584. dw_1.Object.u_prdpf_sonscale[ll_k] = dw_1.Object.u_prdpf_sonscale_ori[ll_k] * (ld_sonscale / ld_sonscale_ori )
  585. NEXT
  586. ll_i = ll_k - 1
  587. NEXT
  588. dw_1.SetRedraw(True)
  589. end event
  590. event ue_allowedit();Long Columns
  591. Int i
  592. String ls_modify_str
  593. Long ll_row
  594. Long ll_value
  595. Long ll_statusflag,ll_woodcodeflag,ll_pcodeflag
  596. String ls_status,ls_woodcode,ls_pcode
  597. String ls_data_type
  598. ll_row = dw_1.GetRow()
  599. IF ll_row <= 0 THEN RETURN
  600. dw_1.accepttext()
  601. Columns = Long(dw_1.Describe("DataWindow.Column.Count"))
  602. FOR i = 1 TO Columns
  603. ls_modify_str = dw_1.Describe("#" + String(i) + ".name")
  604. ls_modify_str = Lower(ls_modify_str)
  605. IF i = 1 THEN //第1个字段,约定物料ID
  606. ls_data_type = dw_1.Describe(ls_modify_str+".ColType")
  607. IF ls_data_type = "long" THEN
  608. ll_value = dw_1.GetItemNumber(ll_row,ls_modify_str)
  609. END IF
  610. END IF
  611. IF Pos(ls_modify_str,'statusflag') > 0 THEN
  612. ls_data_type = dw_1.Describe(ls_modify_str+".ColType")
  613. IF ls_data_type = "long" THEN
  614. ll_statusflag = dw_1.GetItemNumber(ll_row,ls_modify_str)
  615. END IF
  616. END IF
  617. IF Pos(ls_modify_str,'woodcodeflag') > 0 THEN
  618. ls_data_type = dw_1.Describe(ls_modify_str+".ColType")
  619. IF ls_data_type = "long" THEN
  620. ll_woodcodeflag = dw_1.GetItemNumber(ll_row,ls_modify_str)
  621. END IF
  622. END IF
  623. IF Pos(ls_modify_str,'pcodeflag') > 0 THEN
  624. ls_data_type = dw_1.Describe(ls_modify_str+".ColType")
  625. IF ls_data_type = "long" THEN
  626. ll_pcodeflag = dw_1.GetItemNumber(ll_row,ls_modify_str)
  627. END IF
  628. END IF
  629. IF Pos(ls_modify_str,'status') > 0 AND Pos(ls_modify_str,'statusflag') = 0 AND Pos(ls_modify_str,'statustype') = 0 THEN
  630. IF Len(ls_modify_str) = Len('status') OR Pos(ls_modify_str,'_status') > 0 THEN
  631. IF Not (Pos(ls_modify_str,'u_saletask_status') > 0 OR &
  632. Pos(ls_modify_str,'u_buytask_status') > 0 OR &
  633. Pos(ls_modify_str,'u_order_ml_status') > 0 OR &
  634. Pos(ls_modify_str,'u_order_wfjg_status') > 0 OR &
  635. Pos(ls_modify_str,'u_rs_empinfo_status') > 0 ) THEN
  636. ls_status = ls_modify_str
  637. END IF
  638. END IF
  639. END IF
  640. IF Pos(ls_modify_str,'woodcode') > 0 AND Pos(ls_modify_str,'woodcodeflag') = 0 AND Pos(ls_modify_str,'woodcodetype') = 0 THEN
  641. IF Len(ls_modify_str) = Len('woodcode') OR Pos(ls_modify_str,'_woodcode') > 0 THEN
  642. ls_woodcode = ls_modify_str
  643. END IF
  644. END IF
  645. IF Pos(ls_modify_str,'pcode') > 0 AND Pos(ls_modify_str,'pcodeflag') = 0 AND Pos(ls_modify_str,'pcodetype') = 0 THEN
  646. IF Len(ls_modify_str) = Len('pcode') OR Pos(ls_modify_str,'_pcode') > 0 THEN
  647. ls_pcode = ls_modify_str
  648. END IF
  649. END IF
  650. NEXT
  651. ll_value = dw_1.object.u_prdpf_sonmtrlid[ll_row]
  652. IF ls_status <> '' THEN
  653. IF ll_statusflag <> 0 OR ll_value = 0 THEN
  654. dw_1.Modify(ls_status+".dddw.allowedit = no")
  655. ELSE
  656. dw_1.Modify(ls_status+".dddw.allowedit = yes")
  657. END IF
  658. END IF
  659. IF ls_woodcode <> '' THEN
  660. IF ll_woodcodeflag <> 0 OR ll_value = 0 THEN
  661. dw_1.Modify(ls_woodcode+".dddw.allowedit = no")
  662. ELSE
  663. dw_1.Modify(ls_woodcode+".dddw.allowedit = yes")
  664. END IF
  665. END IF
  666. IF ls_pcode <> '' THEN
  667. IF ll_pcodeflag <> 0 OR ll_value = 0 THEN
  668. dw_1.Modify(ls_pcode+".dddw.allowedit = no")
  669. ELSE
  670. dw_1.Modify(ls_pcode+".dddw.allowedit = yes")
  671. END IF
  672. END IF
  673. end event
  674. event ue_import_xls();// 导入Excel
  675. Int rslt = 1
  676. String arg_msg
  677. DataStore ds_col30
  678. ds_col30 = Create DataStore
  679. dw_1.SetRedraw(False)
  680. ds_col30.DataObject = 'dw_col30'
  681. If f_readxls(ds_col30,arg_msg) <> 1 Then
  682. rslt = 0
  683. Goto ext
  684. End If
  685. Long ll_lp
  686. Long ll_row
  687. Long ll_mtrlid_p
  688. String ls_mtrlcode_p
  689. String ls_pfcode
  690. Long ll_mtrlid
  691. String ls_mtrlcode
  692. String ls_mtrlname
  693. Int li_mtrlprp
  694. String ls_mtrlmode
  695. String ls_unit
  696. String ls_zxmtrlmode
  697. String ls_mtrlsectype
  698. Int li_statusflag
  699. Int li_statustype
  700. Int li_woodcodeflag
  701. Int li_woodcodetype
  702. Int li_pcodeflag
  703. Int li_pcodetype
  704. String ls_usermtrlmode
  705. Int li_Mtrlorigin
  706. Long ll_dftwrkgrpid
  707. Long ll_scid
  708. Long ll_mtrltypeid
  709. String ls_wrkGrpName
  710. Decimal ld_sonscale
  711. Long ll_wrkgrpid_scll
  712. Long ll_newrow
  713. For ll_row = 2 To ds_col30.RowCount() //第2行开始才是清单
  714. //明细终止标记
  715. If Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit
  716. ll_lp = Long(Trim(ds_col30.GetItemString(ll_row,1)))
  717. ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,3))
  718. ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,5))
  719. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin
  720. From u_mtrldef Where barcode = :ls_mtrlcode_p;
  721. If sqlca.SQLCode <> 0 Then
  722. rslt = 0
  723. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  724. Goto ext
  725. End If
  726. If li_Mtrlorigin = 0 Then
  727. If ll_dftwrkgrpid = 0 Then
  728. rslt = 0
  729. arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查'
  730. Goto ext
  731. Else
  732. Select top 1 wrkgrpid Into :ll_wrkgrpid_scll
  733. From u_sc_workgroup
  734. Where storageid = :ll_dftwrkgrpid
  735. Order By wrkgrpcode;
  736. If sqlca.SQLCode <> 0 Then
  737. rslt = 0
  738. arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText
  739. Goto ext
  740. End If
  741. End If
  742. End If
  743. If ll_lp = 1 Then
  744. If ll_mtrlid_p <> ins_mtrlid Then
  745. rslt = 0
  746. arg_msg = '第' + String(ll_row) + '行父代码与当前编辑的产品ID不相符,操作取消'
  747. Goto ext
  748. End If
  749. End If
  750. Select mtrlid Into :ll_mtrlid From u_mtrldef Where barcode = :ls_mtrlcode;
  751. If sqlca.SQLCode <> 0 Then
  752. rslt = 0
  753. arg_msg = '第' + String(ll_row) + '行子代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  754. Goto ext
  755. End If
  756. ls_pfcode = f_get_dft_pf(ll_mtrlid)
  757. If ls_pfcode = '' Then
  758. rslt = 0
  759. arg_msg = '第' + String(ll_row) + '行子代码默认清单未定义,请检查'
  760. Goto ext
  761. End If
  762. Next
  763. If Not cbx_ifreset.Checked Then
  764. dw_1.Reset()
  765. wf_re_mtrl(0)
  766. End If
  767. For ll_row = 2 To ds_col30.RowCount()
  768. //明细终止标记
  769. If Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit
  770. ll_lp = Long(Trim(ds_col30.GetItemString(ll_row,1)))
  771. ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,3))
  772. ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,5))
  773. ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,10)))
  774. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin
  775. From u_mtrldef Where barcode = :ls_mtrlcode_p;
  776. If sqlca.SQLCode <> 0 Then
  777. rslt = 0
  778. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  779. Goto ext
  780. End If
  781. If li_Mtrlorigin = 0 Then
  782. If ll_dftwrkgrpid = 0 Then
  783. rslt = 0
  784. arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查'
  785. Goto ext
  786. Else
  787. Select top 1 wrkgrpid Into :ll_wrkgrpid_scll
  788. From u_sc_workgroup
  789. Where storageid = :ll_dftwrkgrpid
  790. Order By wrkgrpcode;
  791. If sqlca.SQLCode <> 0 Then
  792. rslt = 0
  793. arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText
  794. Goto ext
  795. End If
  796. End If
  797. End If
  798. Select u_mtrldef.mtrlid,
  799. u_mtrldef.mtrlcode,
  800. u_mtrldef.mtrlname,
  801. u_mtrldef.mtrlprp,
  802. u_mtrldef.mtrlmode,
  803. u_mtrldef.unit,
  804. u_mtrldef.zxmtrlmode,
  805. u_mtrldef.mtrlsectype,
  806. u_mtrldef.statusflag,
  807. u_mtrldef.statustype,
  808. u_mtrldef.woodcodeflag,
  809. u_mtrldef.woodcodetype,
  810. u_mtrldef.pcodeflag,
  811. u_mtrldef.pcodetype,
  812. u_mtrldef.usermtrlmode,
  813. u_mtrldef.Mtrlorigin,
  814. u_mtrldef.dftwrkgrpid,
  815. u_mtrldef.scid,
  816. u_mtrldef.mtrltypeid,
  817. isnull(u_sc_wkp.wrkGrpName,'')
  818. Into :ll_mtrlid,
  819. :ls_mtrlcode,
  820. :ls_mtrlname,
  821. :li_mtrlprp,
  822. :ls_mtrlmode,
  823. :ls_unit,
  824. :ls_zxmtrlmode,
  825. :ls_mtrlsectype,
  826. :li_statusflag,
  827. :li_statustype,
  828. :li_woodcodeflag,
  829. :li_woodcodetype,
  830. :li_pcodeflag,
  831. :li_pcodetype,
  832. :ls_usermtrlmode,
  833. :li_Mtrlorigin,
  834. :ll_dftwrkgrpid,
  835. :ll_scid,
  836. :ll_mtrltypeid,
  837. :ls_wrkGrpName
  838. From u_mtrldef left Outer join u_sc_wkp on
  839. u_mtrldef.dftwrkgrpid = u_sc_wkp.wrkgrpid
  840. Where u_mtrldef.barcode = :ls_mtrlcode;
  841. If sqlca.SQLCode <> 0 Then
  842. rslt = 0
  843. arg_msg = '第' + String(ll_row) + '行子代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  844. Goto ext
  845. End If
  846. ll_newrow = dw_1.InsertRow(0)
  847. dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode
  848. dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = li_mtrlprp
  849. dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_wrkgrpid_scll
  850. dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = ld_sonscale
  851. dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = 0
  852. dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0
  853. dw_1.Object.u_PrdPF_status[ll_newrow] = ''
  854. dw_1.Object.u_PrdPF_woodcode[ll_newrow] = ''
  855. dw_1.Object.u_PrdPF_pcode[ll_newrow] = ''
  856. dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0
  857. dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = ls_mtrlname
  858. dw_1.Object.u_mtrldef_unit[ll_newrow] = ls_unit
  859. dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode
  860. dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = ls_mtrlsectype
  861. dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = ls_zxmtrlmode
  862. dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = ls_wrkGrpName
  863. dw_1.Object.u_mtrldef_statusflag[ll_newrow] = li_statusflag
  864. dw_1.Object.u_mtrldef_statustype[ll_newrow] = li_statustype
  865. dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = li_woodcodeflag
  866. dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = li_woodcodetype
  867. dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = li_pcodeflag
  868. dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = li_pcodetype
  869. dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = ls_usermtrlmode
  870. dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = li_Mtrlorigin
  871. dw_1.Object.lp[ll_newrow] = ll_lp
  872. dw_1.Object.iflock[ll_newrow] = 1
  873. dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = ll_mtrlid
  874. dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = ll_mtrlid
  875. dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p
  876. dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow
  877. dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = f_get_dft_pf(ll_mtrlid)
  878. dw_1.Object.u_prdpf_pfgroup[ll_newrow] = ''
  879. dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0
  880. dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = ''
  881. dw_1.Object.u_prdpf_pfklmode[ll_newrow] = ''
  882. dw_1.Object.u_prdpf_dscrp[ll_newrow] = ''
  883. dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1
  884. dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0
  885. dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0
  886. dw_1.Object.u_prdpf_ifover[ll_newrow] = 0
  887. dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0
  888. dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0
  889. dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0
  890. dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0
  891. dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0
  892. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = ll_dftwrkgrpid
  893. dw_1.Object.u_mtrldef_scid[ll_newrow] = ll_scid
  894. dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = ll_mtrltypeid
  895. Next
  896. ext:
  897. Destroy ds_col30
  898. dw_1.SetRedraw(True)
  899. If rslt = 0 Then
  900. MessageBox('提示',arg_msg)
  901. End If
  902. end event
  903. event ue_import_xls_2();// 导入Excel
  904. Int rslt = 1
  905. String arg_msg
  906. DataStore ds_col30
  907. ds_col30 = Create DataStore
  908. dw_1.SetRedraw(False)
  909. ds_col30.DataObject = 'dw_col30'
  910. If f_readxls(ds_col30,arg_msg) <> 1 Then
  911. rslt = 0
  912. Goto ext
  913. End If
  914. Long ll_lp
  915. Long ll_row,ll_row_new
  916. Long cnt
  917. Long ll_cnt
  918. Long ll_mtrlid_p
  919. String ls_mtrlcode_p
  920. String ls_pfcode
  921. Long ll_mtrlid
  922. String ls_mtrlcode
  923. String ls_mtrlname
  924. Int li_mtrlprp
  925. String ls_mtrlmode
  926. String ls_unit
  927. String ls_zxmtrlmode
  928. String ls_mtrlsectype
  929. Int li_statusflag
  930. Int li_statustype
  931. Int li_woodcodeflag
  932. Int li_woodcodetype
  933. Int li_pcodeflag
  934. Int li_pcodetype
  935. String ls_usermtrlmode
  936. Int li_Mtrlorigin
  937. Long ll_dftwrkgrpid
  938. Long ll_scid
  939. Long ll_mtrltypeid
  940. String ls_wrkGrpName
  941. Decimal ld_sonscale, lde_qty
  942. Long ll_wrkgrpid_scll
  943. String ls_col10, ls_col11
  944. Long ll_newrow
  945. If Not cbx_ifreset.Checked Then
  946. dw_1.Reset()
  947. //插入产品
  948. wf_re_mtrl(0)
  949. End If
  950. For ll_row = 7 To ds_col30.RowCount()
  951. //明细终止标记
  952. If Trim(ds_col30.GetItemString(ll_row,8)) = '' Then Exit
  953. ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,3))
  954. ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,8))
  955. ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,15)))
  956. lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,7)))
  957. ls_col10 = Trim(ds_col30.GetItemString(ll_row,10))
  958. ls_col11 = Trim(ds_col30.GetItemString(ll_row,11))
  959. If lde_qty <> 0 Then
  960. ld_sonscale = ld_sonscale / lde_qty
  961. End If
  962. If ls_mtrlcode_p <> "" Then
  963. cnt = 0
  964. Select COUNT(*)
  965. Into :cnt
  966. From u_mtrldef
  967. Where (mtrlcode = :ls_mtrlcode_p)
  968. And (mtrlorigin = 0);
  969. If sqlca.SQLCode = -1 Then
  970. rslt = 0
  971. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_p + ',部件查询资料定义表失败,' + sqlca.SQLErrText
  972. Goto ext
  973. ElseIf sqlca.SQLCode = 100 Then
  974. cnt = 0
  975. End If
  976. If cnt > 1 Then
  977. rslt = 0
  978. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_p + ',部件资料定义有' + String(cnt) + '条重复记录'
  979. Goto ext
  980. ElseIf cnt = 1 Then //插入部件
  981. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin
  982. From u_mtrldef Where mtrlcode = :ls_mtrlcode_p;
  983. If sqlca.SQLCode <> 0 Then
  984. rslt = 0
  985. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  986. Goto ext
  987. End If
  988. If ll_dftwrkgrpid = 0 Then
  989. rslt = 0
  990. arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查'
  991. Goto ext
  992. Else
  993. Select top 1 wrkgrpid Into :ll_wrkgrpid_scll
  994. From u_sc_workgroup
  995. Where storageid = :ll_dftwrkgrpid
  996. Order By wrkgrpcode;
  997. If sqlca.SQLCode <> 0 Then
  998. rslt = 0
  999. arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText
  1000. Goto ext
  1001. End If
  1002. End If
  1003. //插入部件
  1004. wf_add_row(ll_mtrlid_p, '', 1, lde_qty, arg_msg,ll_row_new)
  1005. ElseIf cnt = 0 Then //插入新行-部件
  1006. //插入部件
  1007. wf_add_row_null(ls_mtrlname, 1, lde_qty, arg_msg,ll_row_new)
  1008. End If
  1009. End If //ls_mtrlcode_p <> ""
  1010. //插入新行
  1011. cnt = 0
  1012. Select COUNT(*)
  1013. Into :cnt
  1014. From u_mtrldef
  1015. Where u_mtrldef.mtrlname = :ls_mtrlname;
  1016. If sqlca.SQLCode = -1 Then
  1017. rslt = 0
  1018. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText
  1019. Goto ext
  1020. ElseIf sqlca.SQLCode = 100 Then
  1021. cnt = 0
  1022. End If
  1023. If ls_col10 = '' And ls_col11 = '' Then
  1024. ll_lp = 1
  1025. Else
  1026. ll_lp = 2
  1027. End If
  1028. If cnt > 1 Then
  1029. rslt = 0
  1030. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录'
  1031. Goto ext
  1032. ElseIf cnt = 1 Then //插入部件
  1033. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin
  1034. From u_mtrldef Where mtrlname = :ls_mtrlname;
  1035. If sqlca.SQLCode <> 0 Then
  1036. rslt = 0
  1037. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  1038. Goto ext
  1039. End If
  1040. //插入材料
  1041. wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new)
  1042. ElseIf cnt = 0 Then //插入新行-部件
  1043. //插入材料
  1044. wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new)
  1045. End If
  1046. Next
  1047. ext:
  1048. Destroy ds_col30
  1049. dw_1.SetRedraw(True)
  1050. If rslt = 0 Then
  1051. MessageBox('提示',arg_msg)
  1052. End If
  1053. end event
  1054. event ue_import_xls_3();// 导入Excel
  1055. Int rslt = 1
  1056. String arg_msg
  1057. DataStore ds_col30
  1058. ds_col30 = Create DataStore
  1059. ds_col30.DataObject = 'dw_col30'
  1060. If f_readxls(ds_col30,arg_msg) <> 1 Then
  1061. rslt = 0
  1062. Goto ext
  1063. End If
  1064. Long ll_i,cnt,ll_j
  1065. Long ll_lp
  1066. Long ll_row
  1067. Long ll_mtrlid_p
  1068. String ls_mtrlcode_p,ls_pfgroup,ls_mtrlmode_p
  1069. String ls_pfcode
  1070. Decimal ld_pfgroupqty,ld_sonloss
  1071. String ls_pfklmode
  1072. Long ll_mtrlid
  1073. String ls_mtrlcode,ls_mtrlmode
  1074. String ls_mtrlname
  1075. Int li_mtrlprp
  1076. String ls_unit
  1077. String ls_zxmtrlmode
  1078. String ls_mtrlsectype
  1079. Int li_statusflag
  1080. Int li_statustype
  1081. Int li_woodcodeflag
  1082. Int li_woodcodetype
  1083. Int li_pcodeflag
  1084. Int li_pcodetype
  1085. String ls_usermtrlmode
  1086. Int li_Mtrlorigin
  1087. Long ll_dftwrkgrpid
  1088. Long ll_scid
  1089. Long ll_mtrltypeid
  1090. String ls_wrkGrpName
  1091. Decimal ld_sonscale
  1092. Long ll_dftscllwkpid,ll_scllwkpid,ll_wkpid_find
  1093. String ls_mb_mtrlcode
  1094. Long ll_newrow
  1095. Int li_ifadd
  1096. String ls_printstr
  1097. Long ll_lp_cnt
  1098. String ls_piccode
  1099. String ls_wrkGrpName_exl
  1100. String unit_f,mtrlsectype_f,zxmtrlmode_f,usermtrlmode_f,piccode_f
  1101. Long mtrltypeid_f,ifselforder_f,ordertype_f,scid_f,dftwrkgrpid_f
  1102. Decimal orderdays_f,buydays_f,wfjgdays_f
  1103. Long mtrlid_f,dftscllwkpid_f
  1104. Int li_ifselforder,li_ordertype
  1105. For ll_row = 1 To 5
  1106. ds_col30.Object.col1[ll_row] = ''
  1107. Next
  1108. ds_col30.SetSort('col1 A')
  1109. ds_col30.Sort()
  1110. For ll_row = 6 To ds_col30.RowCount() //第6行开始才是清单
  1111. //明细终止标记
  1112. If Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit
  1113. If Trim(ds_col30.GetItemString(ll_row,2)) = '是' Then
  1114. li_ifadd = 1
  1115. Else
  1116. li_ifadd = 0
  1117. End If
  1118. ll_lp = Long(Trim(ds_col30.GetItemString(ll_row,1)))
  1119. ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,4))
  1120. ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,11))
  1121. ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,12))
  1122. ls_mtrlmode = Trim(ds_col30.GetItemString(ll_row,13))
  1123. If ls_mtrlcode = '' And li_ifadd = 0 Then
  1124. rslt = 0
  1125. arg_msg = '第' + String(ll_row) + '必须填写材料编码,请检查'
  1126. Goto ext
  1127. End If
  1128. If ls_mtrlcode <> '' Then
  1129. Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlcode = :ls_mtrlcode;
  1130. If sqlca.SQLCode <> 0 Then
  1131. ll_mtrlid = 0
  1132. End If
  1133. If ll_mtrlid = 0 Then
  1134. Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlname = :ls_mtrlname;
  1135. If sqlca.SQLCode <> 0 Then
  1136. ll_mtrlid = 0
  1137. End If
  1138. End If
  1139. If ll_mtrlid = 0 Then
  1140. Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlname = :ls_mtrlname And mtrlmode = :ls_mtrlmode;
  1141. If sqlca.SQLCode <> 0 Then
  1142. ll_mtrlid = 0
  1143. End If
  1144. End If
  1145. If ll_mtrlid > 0 Then
  1146. ls_pfcode = f_get_dft_pf(ll_mtrlid)
  1147. If ls_pfcode = '' Then
  1148. rslt = 0
  1149. arg_msg = '第' + String(ll_row) + '行物料编码:'+ls_mtrlcode+',默认清单未定义,请检查'
  1150. Goto ext
  1151. End If
  1152. End If
  1153. End If
  1154. Next
  1155. If Not cbx_ifreset.Checked Then
  1156. dw_1.Reset()
  1157. wf_re_mtrl(0)
  1158. End If
  1159. dw_1.SetRedraw(False)
  1160. For ll_row = 6 To ds_col30.RowCount()
  1161. //明细终止标记
  1162. If Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit
  1163. If Trim(ds_col30.GetItemString(ll_row,2)) = '是' Then
  1164. li_ifadd = 1
  1165. Else
  1166. li_ifadd = 0
  1167. End If
  1168. ls_printstr = Trim(ds_col30.GetItemString(ll_row,1))
  1169. ll_lp_cnt = 0
  1170. Do While Pos(ls_printstr,'.') > 0
  1171. ll_lp_cnt++
  1172. ls_printstr = Mid(ls_printstr,Pos(ls_printstr,'.') + 1)
  1173. Loop
  1174. ls_mb_mtrlcode = Trim(ds_col30.GetItemString(ll_row,3))
  1175. ll_lp = ll_lp_cnt + 1
  1176. ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,4))
  1177. ls_mtrlmode_p = ''
  1178. If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then
  1179. ls_mtrlmode_p = Trim(ds_col30.GetItemString(ll_row,6))
  1180. End If
  1181. If Trim(ds_col30.GetItemString(ll_row,7)) <> '' Then
  1182. If Trim(ls_mtrlmode_p) = '' Then
  1183. ls_mtrlmode_p = Trim(ds_col30.GetItemString(ll_row,7))
  1184. Else
  1185. ls_mtrlmode_p = ls_mtrlmode_p + '*' + Trim(ds_col30.GetItemString(ll_row,7))
  1186. End If
  1187. End If
  1188. If Trim(ds_col30.GetItemString(ll_row,8)) <> '' Then
  1189. If Trim(ls_mtrlmode_p) = '' Then
  1190. ls_mtrlmode_p = Trim(ds_col30.GetItemString(ll_row,8))
  1191. Else
  1192. ls_mtrlmode_p = ls_mtrlmode_p + '*' + Trim(ds_col30.GetItemString(ll_row,8))
  1193. End If
  1194. End If
  1195. ld_pfgroupqty = Dec(Trim(ds_col30.GetItemString(ll_row,9)))
  1196. ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,11))
  1197. ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,12))
  1198. ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,19)))
  1199. ld_sonloss = Dec(Trim(ds_col30.GetItemString(ll_row,20)))
  1200. ls_piccode = Trim(ds_col30.GetItemString(ll_row,5))
  1201. ls_wrkGrpName_exl = Trim(ds_col30.GetItemString(ll_row,10))
  1202. ls_pfklmode = ''
  1203. If Trim(ds_col30.GetItemString(ll_row,14)) <> '' Then
  1204. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,14))
  1205. End If
  1206. If Trim(ds_col30.GetItemString(ll_row,15)) <> '' Then
  1207. If Trim(ls_pfklmode) = '' Then
  1208. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,15))
  1209. Else
  1210. ls_pfklmode = ls_pfklmode + '*' + Trim(ds_col30.GetItemString(ll_row,15))
  1211. End If
  1212. End If
  1213. If Trim(ds_col30.GetItemString(ll_row,16)) <> '' Then
  1214. If Trim(ls_pfklmode) = '' Then
  1215. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16))
  1216. Else
  1217. ls_pfklmode = ls_pfklmode + '*' + Trim(ds_col30.GetItemString(ll_row,16))
  1218. End If
  1219. End If
  1220. Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlcode = :ls_mtrlcode;
  1221. If sqlca.SQLCode <> 0 Then
  1222. ll_mtrlid = 0
  1223. End If
  1224. If ll_mtrlid = 0 Then
  1225. Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlname = :ls_mtrlname;
  1226. If sqlca.SQLCode <> 0 Then
  1227. ll_mtrlid = 0
  1228. End If
  1229. End If
  1230. If ll_mtrlid = 0 Then
  1231. Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlname = :ls_mtrlname And mtrlmode = :ls_mtrlmode;
  1232. If sqlca.SQLCode <> 0 Then
  1233. ll_mtrlid = 0
  1234. End If
  1235. End If
  1236. If li_ifadd = 1 Then
  1237. ll_newrow = dw_1.InsertRow(0)
  1238. dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode
  1239. dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = 1
  1240. dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = 0
  1241. dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = ld_pfgroupqty
  1242. dw_1.Object.u_prdpf_sonscale_ori[ll_newrow] = ld_pfgroupqty
  1243. dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = 0
  1244. dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0
  1245. dw_1.Object.u_PrdPF_status[ll_newrow] = ''
  1246. dw_1.Object.u_PrdPF_woodcode[ll_newrow] = ''
  1247. dw_1.Object.u_PrdPF_pcode[ll_newrow] = ''
  1248. dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0
  1249. dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = ls_pfgroup
  1250. dw_1.Object.u_mtrldef_unit[ll_newrow] = ''
  1251. dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode_p
  1252. dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = ''
  1253. dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = ''
  1254. dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = ''
  1255. dw_1.Object.u_mtrldef_statusflag[ll_newrow] = 0
  1256. dw_1.Object.u_mtrldef_statustype[ll_newrow] = 0
  1257. dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = 0
  1258. dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = 0
  1259. dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = 0
  1260. dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = 0
  1261. dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = ''
  1262. dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = 0
  1263. dw_1.Object.lp[ll_newrow] = ll_lp
  1264. If ll_lp = 1 Then
  1265. dw_1.Object.iflock[ll_newrow] = 0
  1266. Else
  1267. dw_1.Object.iflock[ll_newrow] = 1
  1268. End If
  1269. dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = 0
  1270. dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = 0
  1271. dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p
  1272. dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow
  1273. dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = '[常规]'
  1274. dw_1.Object.u_prdpf_promode[ll_newrow] = ls_piccode
  1275. dw_1.Object.u_mtrldef_piccode[ll_newrow] = ls_piccode
  1276. dw_1.Object.u_prdpf_pfgroup[ll_newrow] = ''
  1277. dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0
  1278. dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = ''
  1279. dw_1.Object.u_prdpf_pfklmode[ll_newrow] = ''
  1280. dw_1.Object.u_prdpf_dscrp[ll_newrow] = ''
  1281. dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1
  1282. dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0
  1283. dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0
  1284. dw_1.Object.u_prdpf_ifover[ll_newrow] = 0
  1285. dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0
  1286. dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0
  1287. dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0
  1288. dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0
  1289. dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0
  1290. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = 0
  1291. dw_1.Object.u_mtrldef_scid[ll_newrow] = 0
  1292. dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = 0
  1293. dw_1.Object.ifnewadd[ll_newrow] = 0
  1294. dw_1.Object.ifmod[ll_newrow] = 0
  1295. Select unit,
  1296. mtrltypeid,
  1297. mtrlsectype,
  1298. zxmtrlmode,
  1299. usermtrlmode,
  1300. piccode,
  1301. ifselforder,
  1302. ordertype,
  1303. scid,
  1304. dftwrkgrpid,
  1305. orderdays,
  1306. buydays,
  1307. wfjgdays,
  1308. mtrlid,
  1309. dftscllwkpid
  1310. Into :unit_f,
  1311. :mtrltypeid_f,
  1312. :mtrlsectype_f,
  1313. :zxmtrlmode_f,
  1314. :usermtrlmode_f,
  1315. :piccode_f,
  1316. :ifselforder_f,
  1317. :ordertype_f,
  1318. :scid_f,
  1319. :dftwrkgrpid_f,
  1320. :orderdays_f,
  1321. :buydays_f,
  1322. :wfjgdays_f,
  1323. :mtrlid_f,
  1324. :dftscllwkpid_f
  1325. From u_mtrldef
  1326. Where mtrlcode = :ls_mb_mtrlcode;
  1327. If sqlca.SQLCode = 0 Then
  1328. dw_1.Object.u_mtrldef_unit[ll_newrow] = unit_f
  1329. dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = mtrltypeid_f
  1330. dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = mtrlsectype_f
  1331. dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = zxmtrlmode_f
  1332. dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = usermtrlmode_f
  1333. dw_1.Object.u_mtrldef_piccode[ll_newrow] = piccode_f
  1334. dw_1.Object.u_mtrldef_ifselforder[ll_newrow] = ifselforder_f
  1335. dw_1.Object.u_mtrldef_ordertype[ll_newrow] = ordertype_f
  1336. dw_1.Object.u_mtrldef_scid[ll_newrow] = scid_f
  1337. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = dftwrkgrpid_f
  1338. dw_1.Object.u_mtrldef_orderdays[ll_newrow] = orderdays_f
  1339. dw_1.Object.u_mtrldef_buydays[ll_newrow] = buydays_f
  1340. dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = wfjgdays_f
  1341. dw_1.Object.mb_mtrlcode[ll_newrow] = ls_mb_mtrlcode
  1342. dw_1.Object.mb_mtrlid[ll_newrow] = mtrlid_f
  1343. End If
  1344. Select wrkgrpid
  1345. Into :ll_wkpid_find
  1346. From u_sc_workgroup
  1347. Where wrkGrpName = :ls_wrkGrpName_exl;
  1348. If sqlca.SQLCode <> 0 Then ll_wkpid_find = 0
  1349. If ll_wkpid_find = 0 Then
  1350. ll_scllwkpid = dftscllwkpid_f
  1351. Else
  1352. ll_scllwkpid = ll_wkpid_find
  1353. End If
  1354. dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_scllwkpid
  1355. End If
  1356. If ll_mtrlid > 0 Then
  1357. Select u_mtrldef.mtrlid,
  1358. u_mtrldef.mtrlcode,
  1359. u_mtrldef.mtrlname,
  1360. u_mtrldef.mtrlprp,
  1361. u_mtrldef.mtrlmode,
  1362. u_mtrldef.unit,
  1363. u_mtrldef.zxmtrlmode,
  1364. u_mtrldef.mtrlsectype,
  1365. u_mtrldef.statusflag,
  1366. u_mtrldef.statustype,
  1367. u_mtrldef.woodcodeflag,
  1368. u_mtrldef.woodcodetype,
  1369. u_mtrldef.pcodeflag,
  1370. u_mtrldef.pcodetype,
  1371. u_mtrldef.usermtrlmode,
  1372. u_mtrldef.Mtrlorigin,
  1373. u_mtrldef.dftwrkgrpid,
  1374. u_mtrldef.scid,
  1375. u_mtrldef.mtrltypeid,
  1376. isnull(u_sc_wkp.wrkGrpName,''),
  1377. u_mtrldef.dftscllwkpid,
  1378. u_mtrldef.ifselforder,
  1379. u_mtrldef.ordertype
  1380. Into :ll_mtrlid,
  1381. :ls_mtrlcode,
  1382. :ls_mtrlname,
  1383. :li_mtrlprp,
  1384. :ls_mtrlmode,
  1385. :ls_unit,
  1386. :ls_zxmtrlmode,
  1387. :ls_mtrlsectype,
  1388. :li_statusflag,
  1389. :li_statustype,
  1390. :li_woodcodeflag,
  1391. :li_woodcodetype,
  1392. :li_pcodeflag,
  1393. :li_pcodetype,
  1394. :ls_usermtrlmode,
  1395. :li_Mtrlorigin,
  1396. :ll_dftwrkgrpid,
  1397. :ll_scid,
  1398. :ll_mtrltypeid,
  1399. :ls_wrkGrpName,
  1400. :ll_dftscllwkpid,
  1401. :li_ifselforder,
  1402. :li_ordertype
  1403. From u_mtrldef left Outer join u_sc_wkp on
  1404. u_mtrldef.dftwrkgrpid = u_sc_wkp.wrkgrpid
  1405. Where u_mtrldef.mtrlid = :ll_mtrlid;
  1406. If sqlca.SQLCode <> 0 Then
  1407. rslt = 0
  1408. arg_msg = '第' + String(ll_row) + '行子代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  1409. Goto ext
  1410. End If
  1411. Else
  1412. ll_mtrlid = 0
  1413. li_mtrlprp = 2
  1414. ls_mtrlmode = ''
  1415. ls_unit = ''
  1416. ls_zxmtrlmode = ''
  1417. ls_mtrlsectype = ''
  1418. li_statusflag = 0
  1419. li_statustype = 0
  1420. li_woodcodeflag = 0
  1421. li_woodcodetype = 0
  1422. li_pcodeflag = 0
  1423. li_pcodetype = 0
  1424. ls_usermtrlmode = ''
  1425. li_Mtrlorigin = 2
  1426. ll_dftwrkgrpid = 0
  1427. ll_scid = 0
  1428. ll_mtrltypeid = 0
  1429. ls_wrkGrpName = ''
  1430. ll_dftscllwkpid = 0
  1431. End If
  1432. Select wrkgrpid
  1433. Into :ll_wkpid_find
  1434. From u_sc_workgroup
  1435. Where wrkGrpName = :ls_wrkGrpName_exl;
  1436. If sqlca.SQLCode <> 0 Then ll_wkpid_find = 0
  1437. If ll_wkpid_find = 0 Then
  1438. ll_scllwkpid = ll_dftscllwkpid
  1439. Else
  1440. ll_scllwkpid = ll_wkpid_find
  1441. End If
  1442. If ll_mtrlid > 0 Or li_ifadd = 0 And ls_mtrlcode <> '' And ls_mtrlname <> '' Then
  1443. ll_newrow = dw_1.InsertRow(0)
  1444. dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode
  1445. dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = li_mtrlprp
  1446. dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_scllwkpid
  1447. dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = ld_sonscale
  1448. dw_1.Object.u_prdpf_sonscale_ori[ll_newrow] = ld_sonscale
  1449. dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = ld_sonloss
  1450. dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0
  1451. dw_1.Object.u_PrdPF_status[ll_newrow] = ''
  1452. dw_1.Object.u_PrdPF_woodcode[ll_newrow] = ''
  1453. dw_1.Object.u_PrdPF_pcode[ll_newrow] = ''
  1454. dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0
  1455. dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = ls_mtrlname
  1456. dw_1.Object.u_mtrldef_unit[ll_newrow] = ls_unit
  1457. dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode
  1458. dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = ls_mtrlsectype
  1459. dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = ls_zxmtrlmode
  1460. dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = ls_wrkGrpName
  1461. dw_1.Object.u_mtrldef_statusflag[ll_newrow] = li_statusflag
  1462. dw_1.Object.u_mtrldef_statustype[ll_newrow] = li_statustype
  1463. dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = li_woodcodeflag
  1464. dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = li_woodcodetype
  1465. dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = li_pcodeflag
  1466. dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = li_pcodetype
  1467. dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = ls_usermtrlmode
  1468. dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = li_Mtrlorigin
  1469. dw_1.Object.u_mtrldef_ifselforder[ll_newrow] = li_ifselforder
  1470. dw_1.Object.u_mtrldef_ordertype[ll_newrow] = li_ordertype
  1471. If li_ifadd = 1 Then
  1472. dw_1.Object.lp[ll_newrow] = ll_lp + 1
  1473. dw_1.Object.u_prdpf_pfgroup[ll_newrow] = ''
  1474. dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0
  1475. dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = ''
  1476. Else
  1477. dw_1.Object.lp[ll_newrow] = ll_lp
  1478. dw_1.Object.u_prdpf_pfgroup[ll_newrow] = ls_pfgroup
  1479. dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = ld_pfgroupqty
  1480. dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = ls_mtrlmode_p
  1481. End If
  1482. If ll_lp = 1 Then
  1483. dw_1.Object.iflock[ll_newrow] = 0
  1484. Else
  1485. dw_1.Object.iflock[ll_newrow] = 1
  1486. End If
  1487. dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = ll_mtrlid
  1488. dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = ll_mtrlid
  1489. dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p
  1490. dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow
  1491. dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = f_get_dft_pf(ll_mtrlid)
  1492. dw_1.Object.u_prdpf_promode[ll_newrow] = ls_piccode
  1493. dw_1.Object.u_mtrldef_piccode[ll_newrow] = ls_piccode
  1494. dw_1.Object.u_prdpf_pfklmode[ll_newrow] = ls_pfklmode
  1495. dw_1.Object.u_prdpf_dscrp[ll_newrow] = ''
  1496. dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1
  1497. dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0
  1498. dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0
  1499. dw_1.Object.u_prdpf_ifover[ll_newrow] = 0
  1500. dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0
  1501. dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0
  1502. dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0
  1503. dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0
  1504. dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0
  1505. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = ll_dftwrkgrpid
  1506. dw_1.Object.u_mtrldef_scid[ll_newrow] = ll_scid
  1507. dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = ll_mtrltypeid
  1508. dw_1.Object.ifnewadd[ll_newrow] = 0
  1509. dw_1.Object.ifmod[ll_newrow] = 0
  1510. If ll_mtrlid = 0 Then
  1511. dw_1.Object.error_msg[ll_newrow] = '系统中没有此物料的信息,请检查'
  1512. End If
  1513. End If
  1514. Next
  1515. //如果需要新建的资料信息齐全,自动加上"新建"标记
  1516. For ll_i = 2 To dw_1.RowCount()
  1517. If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 And dw_1.Object.u_mtrldef_mtrlprp[ll_i] = 1 Then
  1518. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i]
  1519. ll_dftwrkgrpid = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_i]
  1520. ll_mtrltypeid = dw_1.Object.u_mtrldef_mtrltypeid[ll_i]
  1521. If Trim(ls_mtrlcode) = '' Then
  1522. dw_1.Object.error_msg[ll_i] = '请输入物料编码'
  1523. Continue
  1524. End If
  1525. Select count(*) Into :cnt
  1526. From u_mtrldef
  1527. Where mtrlcode = :ls_mtrlcode;
  1528. If sqlca.SQLCode <> 0 Then
  1529. dw_1.Object.error_msg[ll_i] = '查询新编码是否已存在失败'
  1530. Continue
  1531. End If
  1532. If cnt > 0 Then
  1533. dw_1.Object.error_msg[ll_i] = '新输入的编码已在系统中存在,请重新输入'
  1534. Continue
  1535. End If
  1536. If Trim(dw_1.Object.u_mtrldef_unit[ll_i]) = '' Then
  1537. dw_1.Object.error_msg[ll_i] = '请输入库存单位'
  1538. Continue
  1539. End If
  1540. If dw_1.Object.u_mtrldef_mtrltypeid[ll_i] = 0 Then
  1541. dw_1.Object.error_msg[ll_i] = '请选择类别'
  1542. Continue
  1543. End If
  1544. Select count(*) Into :cnt
  1545. From u_mtrltype
  1546. Where mtrltypeid = :ll_mtrltypeid;
  1547. If sqlca.SQLCode <> 0 Then
  1548. dw_1.Object.error_msg[ll_i] = '查询物料类别是否已存在失败'
  1549. Continue
  1550. End If
  1551. If cnt = 0 Then
  1552. dw_1.Object.error_msg[ll_i] = '物料类别在系统中不存在,请重新选择'
  1553. Continue
  1554. End If
  1555. If dw_1.Object.u_mtrldef_dftwrkgrpid[ll_i] = 0 Then
  1556. dw_1.Object.error_msg[ll_i] = '请选择默认制造车间'
  1557. Continue
  1558. End If
  1559. Select count(*) Into :cnt
  1560. From u_sc_wkp
  1561. Where wrkgrpid = :ll_dftwrkgrpid;
  1562. If sqlca.SQLCode <> 0 Then
  1563. dw_1.Object.error_msg[ll_i] = '查询默认制造车间是否已存在失败'
  1564. Continue
  1565. End If
  1566. If cnt = 0 Then
  1567. dw_1.Object.error_msg[ll_i] = '默认制造车间在系统中不存在,请重新选择'
  1568. Continue
  1569. End If
  1570. ll_lp = dw_1.Object.lp[ll_i]
  1571. dw_1.Object.ifnewadd[ll_i] = 1
  1572. For ll_j = ll_i + 1 To dw_1.RowCount()
  1573. If dw_1.Object.lp[ll_j] = ll_lp + 1 Then //And dw_1.Object.pmtrlid[ll_i] = ll_mtrlid THEN
  1574. dw_1.Object.iflock[ll_j] = 0
  1575. End If
  1576. If dw_1.Object.lp[ll_j] <= ll_lp Then Exit
  1577. Next
  1578. End If
  1579. Next
  1580. ext:
  1581. Destroy ds_col30
  1582. dw_1.SetRedraw(True)
  1583. If rslt = 0 Then
  1584. MessageBox('提示',arg_msg)
  1585. End If
  1586. end event
  1587. event user_key();
  1588. IF KeyDown(KeyF7!) THEN
  1589. This.TriggerEvent('ue_add_same')
  1590. ELSEIF KeyDown(KeyF8!) THEN
  1591. This.TriggerEvent('ue_add_next')
  1592. END IF
  1593. end event
  1594. event ue_add_same();IF ins_ifmod_wp THEN
  1595. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  1596. RETURN
  1597. END IF
  1598. IF ins_ifmod THEN
  1599. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  1600. RETURN
  1601. END IF
  1602. Long ll_i
  1603. String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg
  1604. Long ll_row,ll_row_add
  1605. Long ll_pmtrlid,ll_lp
  1606. Long ll_mtrlid_pf
  1607. String arg_msg_str
  1608. ll_row = dw_1.GetRow()
  1609. IF ll_row > 0 THEN
  1610. ll_pmtrlid = dw_1.Object.pmtrlid[ll_row]
  1611. ll_lp = dw_1.Object.lp[ll_row]
  1612. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  1613. IF ll_lp = 0 THEN
  1614. MessageBox('系统提示','主产品不能增同级')
  1615. RETURN
  1616. END IF
  1617. IF ll_lp <> 1 THEN
  1618. FOR ll_i = ll_row To 1 Step -1
  1619. IF dw_1.Object.lp[ll_i] = ll_lp - 1 THEN
  1620. IF dw_1.Object.u_mtrldef_mtrlid[ll_i] <> 0 THEN
  1621. MessageBox('系统提示','上级物料不是新建立的物料,不能执行增同级操作')
  1622. RETURN
  1623. ELSE
  1624. EXIT
  1625. END IF
  1626. END IF
  1627. NEXT
  1628. END IF
  1629. ELSE
  1630. ll_pmtrlid = ins_mtrlid
  1631. ll_lp = 0
  1632. END IF
  1633. IF ll_row = dw_1.RowCount() THEN
  1634. ll_row_add = ll_row
  1635. ELSE
  1636. FOR ll_i = ll_row + 1 To dw_1.RowCount()
  1637. IF dw_1.Object.lp[ll_i] <= ll_lp THEN
  1638. ll_row_add = ll_i - 1
  1639. EXIT
  1640. END IF
  1641. NEXT
  1642. IF ll_row_add = 0 THEN
  1643. ll_row_add = dw_1.RowCount()
  1644. END IF
  1645. END IF
  1646. IF Not IsValid(w_mtrldef_edit) THEN
  1647. s_edit_index_tran s_ch_tran //传递参数使用
  1648. s_ch_tran.if_retrieve_all = False //是否一次retrieve所有行
  1649. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  1650. s_ch_tran.arg_pkid = 0 //目标定位pkid (备用)
  1651. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1652. s_ch_tran.if_select_all = true
  1653. s_ch_tran.b_long = 0
  1654. s_ch_tran.c_long = -1
  1655. s_ch_tran.f_long = 1
  1656. This.Enabled = False
  1657. OpenWithParm(w_mtrldef_edit,s_ch_tran)
  1658. This.Enabled = True
  1659. s_mtrldef_array s_inscust
  1660. s_inscust = Message.PowerObjectParm
  1661. dw_1.SetRedraw(False)
  1662. FOR ll_i = 1 To UpperBound(s_inscust.mtrlid)
  1663. ll_mtrlid_pf = s_inscust.mtrlid[ll_i]
  1664. IF ll_mtrlid_pf > 0 THEN
  1665. ls_pfcode = f_get_dft_pf(ll_mtrlid_pf)
  1666. IF wf_addmx_next(ll_mtrlid_pf,ls_pfcode,ll_pmtrlid,ll_lp,ll_row_add + 1 ,arg_msg,1,0) = 0 THEN
  1667. arg_msg_str = arg_msg_str + arg_msg +'~r~n'
  1668. CONTINUE
  1669. END IF
  1670. ins_cnt++
  1671. IF ls_mtrlcode <> '' THEN
  1672. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ls_mtrlcode+' 增加同级物料 '+s_inscust.mtrlcode[ll_i]
  1673. ELSE
  1674. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust.mtrlcode[ll_i]
  1675. END IF
  1676. END IF
  1677. NEXT
  1678. dw_1.SetRedraw(True)
  1679. IF Trim(arg_msg_str) <> '' THEN
  1680. MessageBox('Error',arg_msg_str)
  1681. END IF
  1682. END IF
  1683. this.setfocus()
  1684. end event
  1685. event ue_add_next();IF ins_ifmod_wp THEN
  1686. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  1687. RETURN
  1688. END IF
  1689. IF ins_ifmod THEN
  1690. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  1691. RETURN
  1692. END IF
  1693. Long ll_i
  1694. String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg,arg_msg_str
  1695. Long ll_row,ll_row_add
  1696. Long ll_pmtrlid,ll_lp
  1697. Long ll_mtrlid
  1698. Long ll_mtrlid_pf
  1699. int li_mtrlorigin
  1700. ll_row = dw_1.GetRow()
  1701. IF ll_row > 0 THEN
  1702. ll_pmtrlid = dw_1.Object.pmtrlid[ll_row]
  1703. ll_lp = dw_1.Object.lp[ll_row]
  1704. ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_row]
  1705. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  1706. li_mtrlorigin = dw_1.Object.u_mtrldef_mtrlorigin[ll_row]
  1707. ELSE
  1708. ll_pmtrlid = ins_mtrlid
  1709. ll_lp = 0
  1710. li_mtrlorigin = 0
  1711. END IF
  1712. //IF ll_mtrlid <> 0 And ll_lp <> 0 THEN
  1713. // MessageBox('系统提示','只能在新建立的物料上或主产品上进行增下级操作')
  1714. // RETURN
  1715. //END IF
  1716. if li_mtrlorigin = 2 then
  1717. MessageBox('系统提示','不能在采购物料上进行增下级操作')
  1718. RETURN
  1719. END IF
  1720. IF ll_row = dw_1.RowCount() THEN
  1721. ll_row_add = ll_row
  1722. ELSE
  1723. FOR ll_i = ll_row + 1 To dw_1.RowCount()
  1724. IF dw_1.Object.lp[ll_i] <= ll_lp THEN
  1725. ll_row_add = ll_i - 1
  1726. EXIT
  1727. END IF
  1728. NEXT
  1729. IF ll_row_add = 0 THEN
  1730. ll_row_add = dw_1.RowCount()
  1731. END IF
  1732. END IF
  1733. IF Not IsValid(w_mtrldef_edit) THEN
  1734. s_edit_index_tran s_ch_tran //传递参数使用
  1735. s_ch_tran.if_retrieve_all = False //是否一次retrieve所有行
  1736. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  1737. s_ch_tran.arg_pkid = 0 //目标定位pkid (备用)
  1738. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1739. s_ch_tran.if_select_all = True
  1740. s_ch_tran.b_long = 0
  1741. s_ch_tran.c_long = -1
  1742. s_ch_tran.f_long = 1
  1743. This.Enabled = False
  1744. OpenWithParm(w_mtrldef_edit,s_ch_tran)
  1745. This.Enabled = True
  1746. s_mtrldef_array s_inscust
  1747. s_inscust = Message.PowerObjectParm
  1748. dw_1.SetRedraw(False)
  1749. FOR ll_i = 1 To UpperBound(s_inscust.mtrlid)
  1750. ll_mtrlid_pf = s_inscust.mtrlid[ll_i]
  1751. IF ll_mtrlid_pf > 0 THEN
  1752. ls_pfcode = f_get_dft_pf(ll_mtrlid_pf)
  1753. IF wf_addmx_next(ll_mtrlid_pf,ls_pfcode,ll_pmtrlid,ll_lp + 1 ,ll_row_add + 1 ,arg_msg,1,0) = 0 THEN
  1754. arg_msg_str = arg_msg_str + arg_msg + '~r~n'
  1755. END IF
  1756. ins_cnt++
  1757. IF ls_mtrlcode <> '' THEN
  1758. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ls_mtrlcode+' 增加下级物料 '+s_inscust.mtrlcode[ll_i]
  1759. ELSE
  1760. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust.mtrlcode[ll_i]
  1761. END IF
  1762. END IF
  1763. NEXT
  1764. dw_1.SetRedraw(True)
  1765. IF Trim(arg_msg_str) <> '' THEN
  1766. MessageBox('Error',arg_msg_str)
  1767. END IF
  1768. END IF
  1769. this.setfocus()
  1770. end event
  1771. event ue_viewprint_dy();S_print_MSG LS_PRMSG
  1772. String ls_windowname
  1773. ls_windowname = 'w_mtrl_structure'
  1774. String ls_old_dwname,ls_new_dwname = ''
  1775. ls_old_dwname = 'dw_rp_prdstruct_dy'
  1776. ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname)
  1777. IF ls_new_dwname = '' THEN
  1778. ls_new_dwname = ls_old_dwname
  1779. END IF
  1780. LS_PRMSG.obj_dwNAME = ls_new_dwname
  1781. LS_PRMSG.TAG_TEXT = '产品加工说明书'
  1782. LS_PRMSG.FILTER_STRING = ''
  1783. LS_PRMSG.retr_pram_falg = 14
  1784. LS_PRMSG.PAGECH_FLAG = 0
  1785. LS_PRMSG.retr_pramnmb = ins_mtrlid
  1786. LS_PRMSG.retr_pramstr = ins_pfcode
  1787. OpenWithParm(w_publ_preview,LS_PRMSG)
  1788. end event
  1789. event ue_viewprint_gy();
  1790. wf_cmpprdpf(ins_mtrlid,ins_pfcode)
  1791. S_print_MSG LS_PRMSG
  1792. String ls_windowname
  1793. ls_windowname = 'w_mtrl_structure'
  1794. String ls_old_dwname,ls_new_dwname = ''
  1795. ls_old_dwname = 'dw_rp_prdstruct'
  1796. ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname)
  1797. IF ls_new_dwname = '' THEN
  1798. ls_new_dwname = ls_old_dwname
  1799. END IF
  1800. LS_PRMSG.obj_dwNAME = ls_new_dwname
  1801. LS_PRMSG.TAG_TEXT = '产品物料明细表[工艺]'
  1802. LS_PRMSG.FILTER_STRING = ''
  1803. LS_PRMSG.retr_pram_falg = 14
  1804. LS_PRMSG.PAGECH_FLAG = 0
  1805. LS_PRMSG.retr_pramnmb = ins_mtrlid
  1806. LS_PRMSG.retr_pramstr = ins_pfcode
  1807. OpenWithParm(w_publ_preview,LS_PRMSG)
  1808. end event
  1809. event ue_viewprint_tree();
  1810. wf_cmpprdpf(ins_mtrlid,ins_pfcode)
  1811. S_print_MSG LS_PRMSG
  1812. String ls_windowname
  1813. ls_windowname = 'w_mtrl_structure'
  1814. String ls_old_dwname,ls_new_dwname = ''
  1815. ls_old_dwname = 'dw_rp_prdstruct_tree'
  1816. ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname)
  1817. IF ls_new_dwname = '' THEN
  1818. ls_new_dwname = ls_old_dwname
  1819. END IF
  1820. LS_PRMSG.obj_dwNAME = ls_new_dwname
  1821. LS_PRMSG.TAG_TEXT = '产品物料明细表[树型结构]'
  1822. LS_PRMSG.FILTER_STRING = ''
  1823. LS_PRMSG.retr_pram_falg = 14
  1824. LS_PRMSG.PAGECH_FLAG = 0
  1825. LS_PRMSG.retr_pramnmb = ins_mtrlid
  1826. LS_PRMSG.retr_pramstr = ins_pfcode
  1827. OpenWithParm(w_publ_preview,LS_PRMSG)
  1828. end event
  1829. event ue_viewprint_yl();
  1830. wf_cmpprdpf(ins_mtrlid,ins_pfcode)
  1831. S_print_MSG LS_PRMSG
  1832. String ls_windowname
  1833. ls_windowname = 'w_mtrl_structure'
  1834. String ls_old_dwname,ls_new_dwname = ''
  1835. ls_old_dwname = 'dw_rp_prdstruct_yl'
  1836. ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname)
  1837. IF ls_new_dwname = '' THEN
  1838. ls_new_dwname = ls_old_dwname
  1839. END IF
  1840. LS_PRMSG.obj_dwNAME = ls_new_dwname
  1841. LS_PRMSG.TAG_TEXT = '产品物料明细表[用料]'
  1842. LS_PRMSG.FILTER_STRING = ''
  1843. LS_PRMSG.retr_pram_falg = 14
  1844. LS_PRMSG.PAGECH_FLAG = 0
  1845. LS_PRMSG.retr_pramnmb = ins_mtrlid
  1846. LS_PRMSG.retr_pramstr = ins_pfcode
  1847. OpenWithParm(w_publ_preview,LS_PRMSG)
  1848. end event
  1849. event ue_viewprint_yl_wrk();
  1850. wf_cmpprdpf(ins_mtrlid,ins_pfcode)
  1851. S_print_MSG LS_PRMSG
  1852. String ls_windowname
  1853. ls_windowname = 'w_mtrl_structure'
  1854. String ls_old_dwname,ls_new_dwname = ''
  1855. ls_old_dwname = 'dw_rp_prdstruct_yl_wrk'
  1856. ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname)
  1857. IF ls_new_dwname = '' THEN
  1858. ls_new_dwname = ls_old_dwname
  1859. END IF
  1860. LS_PRMSG.obj_dwNAME = ls_new_dwname
  1861. LS_PRMSG.TAG_TEXT = '产品物料明细表[车间]'
  1862. LS_PRMSG.FILTER_STRING = ''
  1863. LS_PRMSG.retr_pram_falg = 14
  1864. LS_PRMSG.PAGECH_FLAG = 0
  1865. LS_PRMSG.retr_pramnmb = ins_mtrlid
  1866. LS_PRMSG.retr_pramstr = ins_pfcode
  1867. OpenWithParm(w_publ_preview,LS_PRMSG)
  1868. end event
  1869. event ue_retrieve_wkp();Long ll_row
  1870. Long ll_mtrlid
  1871. Long ll_dftwrkgrpid
  1872. Long ll_i,ll_j,ll_row_copy
  1873. String ls_mtrlcode
  1874. Long ll_mb_mtrlid
  1875. ll_j = 0
  1876. ll_row = dw_1.GetRow()
  1877. IF ll_row <= 0 THEN
  1878. ll_dftwrkgrpid = 0
  1879. ELSE
  1880. ll_dftwrkgrpid = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row]
  1881. END IF
  1882. //只显未产品默认制造车间相关的工组
  1883. datawindowchild childdw
  1884. dw_3.SetTransObject (sqlca)
  1885. dw_3.GetChild("swkpid",childdw)
  1886. childdw.SetTransObject (sqlca)
  1887. IF childdw.Retrieve(ll_dftwrkgrpid) = 0 THEN
  1888. childdw.InsertRow(0)
  1889. END IF
  1890. datawindowchild childdwo
  1891. dw_3.SetTransObject (sqlca)
  1892. dw_3.GetChild("owkpid",childdwo)
  1893. childdwo.SetTransObject (sqlca)
  1894. IF childdwo.Retrieve(ll_dftwrkgrpid) = 0 THEN
  1895. childdwo.InsertRow(0)
  1896. END IF
  1897. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  1898. IF ll_row <= 0 THEN
  1899. dw_3.Reset()
  1900. ELSE
  1901. IF dw_1.Object.ifmod_wkp[ll_row] = 0 THEN
  1902. ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_row]
  1903. ll_mb_mtrlid = dw_1.Object.mb_mtrlid[ll_row]
  1904. IF ll_mb_mtrlid > 0 THEN
  1905. dw_3.Retrieve(ll_mb_mtrlid)
  1906. ELSE
  1907. dw_3.Retrieve(ll_mtrlid)
  1908. END IF
  1909. ELSE
  1910. dw_3.Reset()
  1911. dw_copy_wkp.SetFilter("u_mtrldef_mtrlcode = '"+ls_mtrlcode + "'")
  1912. dw_copy_wkp.Filter()
  1913. FOR ll_i = 1 To dw_copy_wkp.RowCount()
  1914. dw_copy_wkp.RowsCopy (ll_i,ll_i,Primary!,dw_3,ll_i,Primary!)
  1915. NEXT
  1916. END IF
  1917. END IF
  1918. end event
  1919. event ue_gydscrp();IF dw_3.GetRow() <= 0 THEN
  1920. MessageBox('系统提示','请先选择明细行')
  1921. RETURN
  1922. END IF
  1923. s_view_dscrp s_view,s_return
  1924. String ls_dscrp
  1925. dw_3.AcceptText()
  1926. ls_dscrp = dw_3.Object.gydscrp[dw_3.GetRow()]
  1927. s_view.Title = '产品生产流程工艺说明'
  1928. s_view.dscrp = ls_dscrp
  1929. s_view.editmode = ins_ifmod_wp
  1930. OpenWithParm(w_mtrlwkp_gydscrp_edit,s_view)
  1931. IF ins_ifmod_wp THEN
  1932. s_return = Message.PowerObjectParm
  1933. IF s_return.returnflag = 1 THEN RETURN
  1934. dw_3.Object.gydscrp[dw_3.GetRow()] = s_return.dscrp
  1935. dw_3.Object.gydscrplen[dw_3.GetRow()] = lena(s_return.dscrp)
  1936. END IF
  1937. end event
  1938. event ue_copy_mx();IF ins_ifmod THEN
  1939. MessageBox('系统提示','编辑状态下不能使用复制功能')
  1940. RETURN
  1941. END IF
  1942. IF ins_ifmod_wp THEN
  1943. MessageBox('系统提示','编辑明细状态下不能使用复制功能')
  1944. RETURN
  1945. END IF
  1946. Long ll_lp,ll_row,ll_i,ll_j
  1947. string ls_mtrlcode
  1948. ll_row = dw_1.GetRow()
  1949. IF ll_row <= 0 THEN
  1950. MessageBox('系统提示','请选择要复制清单的半成品')
  1951. return
  1952. END IF
  1953. ll_lp = dw_1.Object.lp[ll_row]
  1954. IF ll_lp = 0 THEN
  1955. MessageBox('系统提示','主产品不能使用复制功能')
  1956. RETURN
  1957. END IF
  1958. ls_mtrlcode = dw_1.object.u_mtrldef_mtrlcode[ll_row]
  1959. dw_copy_main.Reset()
  1960. FOR ll_i = ll_row + 1 To dw_1.RowCount()
  1961. IF dw_1.Object.lp[ll_i] <= ll_lp THEN EXIT
  1962. ll_j++
  1963. dw_1.RowsCopy (ll_i,ll_i,Primary!,dw_copy_main,ll_j,Primary!)
  1964. NEXT
  1965. ins_copy_type = 0
  1966. ins_cnt++
  1967. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.复制 '+ ls_mtrlcode +' 下级组成物料'
  1968. MessageBox('系统提示','复制成功')
  1969. end event
  1970. event ue_paste_mx();IF ins_ifmod THEN
  1971. MessageBox('系统提示','编辑状态下不能使用粘贴功能')
  1972. RETURN
  1973. END IF
  1974. IF ins_ifmod_wp THEN
  1975. MessageBox('系统提示','编辑明细状态下不能使用粘贴功能')
  1976. RETURN
  1977. END IF
  1978. Long ll_lp,ll_row,ll_i,ll_j,ll_lp_ds,ll_row_add
  1979. String ls_mtrlcode
  1980. ll_row = dw_1.GetRow()
  1981. IF ll_row <= 0 THEN
  1982. MessageBox('系统提示','请选择要粘贴清单的半成品')
  1983. return
  1984. END IF
  1985. ll_lp = dw_1.Object.lp[ll_row]
  1986. IF ll_lp <> 0 THEN
  1987. IF dw_1.Object.ifnewadd[ll_row] <> 1 THEN
  1988. MessageBox('系统提示','只能在新建的资料或主产品上使用粘贴功能')
  1989. RETURN
  1990. END IF
  1991. END IF
  1992. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  1993. IF dw_copy_main.RowCount() = 0 THEN
  1994. MessageBox('系统提示','没有可粘贴的内容')
  1995. RETURN
  1996. END IF
  1997. IF ll_row = dw_1.RowCount() THEN
  1998. ll_row_add = ll_row
  1999. ELSE
  2000. FOR ll_i = ll_row + 1 To dw_1.RowCount()
  2001. IF dw_1.Object.lp[ll_i] <= ll_lp THEN
  2002. ll_row_add = ll_i - 1
  2003. EXIT
  2004. END IF
  2005. NEXT
  2006. IF ll_row_add = 0 THEN
  2007. ll_row_add = dw_1.RowCount()
  2008. END IF
  2009. END IF
  2010. ll_lp_ds = dw_copy_main.Object.lp[1]
  2011. dw_copy_main.AcceptText()
  2012. FOR ll_i = 1 To dw_copy_main.RowCount()
  2013. IF ins_copy_type = 0 THEN
  2014. dw_copy_main.Object.lp[ll_i] = dw_copy_main.Object.lp[ll_i] + (ll_lp_ds - 1 - ll_lp)
  2015. ELSEIF ins_copy_type = 1 THEN
  2016. dw_copy_main.Object.lp[ll_i] = dw_copy_main.Object.lp[ll_i] + (ll_lp - ll_lp_ds + 1)
  2017. END IF
  2018. dw_copy_main.Object.iflock[ll_i] = 0
  2019. NEXT
  2020. dw_copy_main.AcceptText()
  2021. dw_1.SetRedraw(False)
  2022. FOR ll_i = 1 To dw_copy_main.RowCount()
  2023. dw_copy_main.RowsCopy (ll_i,ll_i,Primary!,dw_1,ll_row_add + ll_i,Primary!)
  2024. NEXT
  2025. dw_1.SetRedraw(True)
  2026. ins_cnt++
  2027. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ ls_mtrlcode +' 粘贴已复制的组成物料'
  2028. end event
  2029. event ue_copy_mx_this();IF ins_ifmod THEN
  2030. MessageBox('系统提示','编辑状态下不能使用复制功能')
  2031. RETURN
  2032. END IF
  2033. IF ins_ifmod_wp THEN
  2034. MessageBox('系统提示','编辑明细状态下不能使用复制功能')
  2035. RETURN
  2036. END IF
  2037. Long ll_lp,ll_row,ll_i,ll_j
  2038. String ls_mtrlcode
  2039. ll_row = dw_1.GetRow()
  2040. IF ll_row <= 0 THEN
  2041. MessageBox('系统提示','请选择要复制清单的半成品')
  2042. RETURN
  2043. END IF
  2044. ll_lp = dw_1.Object.lp[ll_row]
  2045. IF ll_lp = 0 THEN
  2046. MessageBox('系统提示','主产品不能使用复制功能')
  2047. RETURN
  2048. END IF
  2049. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  2050. dw_copy_main.Reset()
  2051. FOR ll_i = ll_row To dw_1.RowCount()
  2052. IF ll_i <> ll_row THEN
  2053. IF dw_1.Object.lp[ll_i] <= ll_lp THEN EXIT
  2054. END IF
  2055. ll_j++
  2056. dw_1.RowsCopy (ll_i,ll_i,Primary!,dw_copy_main,ll_j,Primary!)
  2057. NEXT
  2058. ins_copy_type = 1
  2059. ins_cnt++
  2060. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.复制 '+ ls_mtrlcode +' 及其下级组成物料'
  2061. MessageBox('系统提示','复制成功')
  2062. end event
  2063. event ue_paste_mx_same();IF ins_ifmod THEN
  2064. MessageBox('系统提示','编辑状态下不能使用粘贴功能')
  2065. RETURN
  2066. END IF
  2067. IF ins_ifmod_wp THEN
  2068. MessageBox('系统提示','编辑明细状态下不能使用粘贴功能')
  2069. RETURN
  2070. END IF
  2071. Long ll_lp,ll_row,ll_i,ll_j,ll_lp_ds,ll_row_add
  2072. String ls_mtrlcode
  2073. ll_row = dw_1.GetRow()
  2074. IF ll_row <= 0 THEN
  2075. MessageBox('系统提示','请选择要粘贴清单的半成品')
  2076. return
  2077. END IF
  2078. ll_lp = dw_1.Object.lp[ll_row]
  2079. if ll_lp = 0 then
  2080. MessageBox('系统提示','主产品上不能使用本功能')
  2081. RETURN
  2082. END IF
  2083. //IF ll_lp <> 0 THEN
  2084. // IF dw_1.Object.ifnewadd[ll_row] <> 1 THEN
  2085. // MessageBox('系统提示','只能在新建的资料或主产品上使用粘贴功能')
  2086. // RETURN
  2087. // END IF
  2088. //END IF
  2089. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  2090. IF dw_copy_main.RowCount() = 0 THEN
  2091. MessageBox('系统提示','没有可粘贴的内容')
  2092. RETURN
  2093. END IF
  2094. IF ll_row = dw_1.RowCount() THEN
  2095. ll_row_add = ll_row
  2096. ELSE
  2097. FOR ll_i = ll_row + 1 To dw_1.RowCount()
  2098. IF dw_1.Object.lp[ll_i] <= ll_lp THEN
  2099. ll_row_add = ll_i - 1
  2100. EXIT
  2101. END IF
  2102. NEXT
  2103. IF ll_row_add = 0 THEN
  2104. ll_row_add = dw_1.RowCount()
  2105. END IF
  2106. END IF
  2107. ll_lp_ds = dw_copy_main.Object.lp[1]
  2108. dw_copy_main.AcceptText()
  2109. FOR ll_i = 1 To dw_copy_main.RowCount()
  2110. // IF ins_copy_type = 0 THEN
  2111. dw_copy_main.Object.lp[ll_i] = dw_copy_main.Object.lp[ll_i] + (ll_lp - ll_lp_ds)
  2112. // ELSEIF ins_copy_type = 1 THEN
  2113. // dw_copy_main.Object.lp[ll_i] = dw_copy_main.Object.lp[ll_i] + (ll_lp - ll_lp_ds + 1)
  2114. // END IF
  2115. dw_copy_main.Object.iflock[ll_i] = 0
  2116. NEXT
  2117. dw_copy_main.AcceptText()
  2118. dw_1.SetRedraw(False)
  2119. FOR ll_i = 1 To dw_copy_main.RowCount()
  2120. dw_copy_main.RowsCopy (ll_i,ll_i,Primary!,dw_1,ll_row_add + ll_i,Primary!)
  2121. NEXT
  2122. dw_1.SetRedraw(True)
  2123. ins_cnt++
  2124. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ ls_mtrlcode +' 同级粘贴已复制的组成物料'
  2125. end event
  2126. event ue_templet_ch();IF Not ins_ifmod_wp THEN RETURN
  2127. Long ll_row
  2128. Long child_row
  2129. String ls_mtrlcode
  2130. Long ll_mtrlid
  2131. ll_row = dw_1.GetRow()
  2132. child_row = dw_2.GetRow()
  2133. IF ll_row <= 0 THEN
  2134. MessageBox('系统提示','没有正确的物料内容')
  2135. RETURN
  2136. END IF
  2137. IF dw_1.Object.u_mtrldef_mtrlorigin[ll_row] <> 0 THEN
  2138. MessageBox('系统提示','只有自制来源的产品及半成品才能编辑工价表明细,请检查')
  2139. RETURN
  2140. END IF
  2141. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  2142. Long ls_j
  2143. IF Not IsValid(w_mtrl_workprice_templet_ch) THEN
  2144. Open(w_mtrl_workprice_templet_ch)
  2145. s_workpricetable_array s_ch
  2146. s_ch = Message.PowerObjectParm
  2147. dw_2.reset()
  2148. FOR ls_j = 1 To UpperBound(s_ch.proid)
  2149. IF s_ch.proid[ls_j] > 0 THEN //正常返回值则可以取以下值
  2150. child_row = dw_2.InsertRow(0)
  2151. dw_2.Object.proid[child_row] = s_ch.proid[ls_j]
  2152. dw_2.Object.procode[child_row] = s_ch.procode[ls_j]
  2153. dw_2.Object.u_sc_workprice_proname[child_row] = s_ch.proname[ls_j]
  2154. dw_2.Object.worklevel[child_row] = s_ch.worklevel[ls_j]
  2155. dw_2.Object.techlevel[child_row] = s_ch.techlevel[ls_j]
  2156. dw_2.Object.workhour[child_row] = s_ch.workhour[ls_j]
  2157. dw_2.Object.wrkgrpid[child_row] = s_ch.wrkgrpid[ls_j]
  2158. dw_2.Object.workprice[child_row] = s_ch.workprice[ls_j]
  2159. dw_2.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  2160. IF child_row > 1 THEN
  2161. dw_2.Object.proorder[child_row] = dw_2.Object.proorder[child_row - 1] + 1
  2162. END IF
  2163. END IF
  2164. NEXT
  2165. dw_2.SetRow(child_row)
  2166. dw_2.ScrollToRow(child_row)
  2167. dw_2.SetFocus()
  2168. IF UpperBound(s_ch.proid) > 0 THEN
  2169. dw_2.SetColumn("workprice")
  2170. END IF
  2171. END IF
  2172. dw_2.SetRedraw(True)
  2173. dw_2.SetFocus()
  2174. end event
  2175. event ue_wp_u_workqtystr();IF Not ins_ifmod_wp THEN RETURN
  2176. dw_2.AcceptText()
  2177. String ls_workqtystr
  2178. Long ll_row
  2179. s_edit_index_tran s_tran_str
  2180. ll_row = dw_2.GetRow()
  2181. IF ll_row <= 0 THEN RETURN
  2182. ls_workqtystr = dw_2.Object.u_sc_workprice_u_workqtystr[ll_row]
  2183. s_tran_str.b_long = 1 // 0-工价,1-数量
  2184. s_tran_str.b_string = ls_workqtystr
  2185. OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str)
  2186. ls_workqtystr = Message.StringParm
  2187. dw_2.Object.u_sc_workprice_u_workqtystr[ll_row] = ls_workqtystr
  2188. dw_2.AcceptText()
  2189. end event
  2190. event ue_wp_workqtystr();IF Not ins_ifmod_wp THEN RETURN
  2191. dw_2.AcceptText()
  2192. String ls_workqtystr
  2193. Long ll_row
  2194. s_edit_index_tran s_tran_str
  2195. ll_row = dw_2.GetRow()
  2196. IF ll_row <= 0 THEN RETURN
  2197. ls_workqtystr = dw_2.Object.u_sc_workprice_workqtystr[ll_row]
  2198. s_tran_str.b_long = 1 // 0-工价,1-数量
  2199. s_tran_str.b_string = ls_workqtystr
  2200. OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str)
  2201. ls_workqtystr = Message.StringParm
  2202. dw_2.Object.u_sc_workprice_workqtystr[ll_row] = ls_workqtystr
  2203. dw_2.AcceptText()
  2204. end event
  2205. event ue_wp_u_pricestr();IF Not ins_ifmod_wp THEN RETURN
  2206. dw_2.AcceptText()
  2207. String ls_pricestr
  2208. Long ll_row
  2209. s_edit_index_tran s_tran_str
  2210. ll_row = dw_2.GetRow()
  2211. IF ll_row <= 0 THEN RETURN
  2212. ls_pricestr = dw_2.Object.u_sc_workprice_u_pricestr[ll_row]
  2213. s_tran_str.b_long = 0 // 0-工价,1-数量
  2214. s_tran_str.b_string = ls_pricestr
  2215. OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str)
  2216. ls_pricestr = Message.StringParm
  2217. dw_2.Object.u_sc_workprice_u_pricestr[ll_row] = ls_pricestr
  2218. dw_2.AcceptText()
  2219. end event
  2220. event ue_wp_pricestr();IF Not ins_ifmod_wp THEN RETURN
  2221. dw_2.AcceptText()
  2222. String ls_pricestr
  2223. Long ll_row
  2224. s_edit_index_tran s_tran_str
  2225. ll_row = dw_2.GetRow()
  2226. IF ll_row <= 0 THEN RETURN
  2227. ls_pricestr = dw_2.Object.u_sc_workprice_pricestr[ll_row]
  2228. s_tran_str.b_long = 0 // 0-工价,1-数量
  2229. s_tran_str.b_string = ls_pricestr
  2230. OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str)
  2231. ls_pricestr = Message.StringParm
  2232. dw_2.Object.u_sc_workprice_pricestr[ll_row] = ls_pricestr
  2233. dw_2.AcceptText()
  2234. end event
  2235. event ue_import_xls_4();// 导入Excel
  2236. Int rslt = 1
  2237. String arg_msg
  2238. DataStore ds_col30
  2239. ds_col30 = Create DataStore
  2240. ds_col30.DataObject = 'dw_col30'
  2241. If f_readxls(ds_col30,arg_msg) <> 1 Then
  2242. rslt = 0
  2243. Goto ext
  2244. End If
  2245. Long ll_lp
  2246. Long ll_row,ll_row_new
  2247. Long cnt
  2248. Long ll_cnt
  2249. Long ll_mtrlid_p
  2250. String ls_mtrlcode_p
  2251. String ls_pfcode
  2252. Long ll_mtrlid
  2253. String ls_mtrlcode
  2254. String ls_mtrlname
  2255. Int li_mtrlprp
  2256. String ls_mtrlmode
  2257. String ls_unit
  2258. String ls_zxmtrlmode
  2259. String ls_mtrlsectype
  2260. Int li_statusflag
  2261. Int li_statustype
  2262. Int li_woodcodeflag
  2263. Int li_woodcodetype
  2264. Int li_pcodeflag
  2265. Int li_pcodetype
  2266. String ls_usermtrlmode
  2267. Int li_Mtrlorigin
  2268. Long ll_dftwrkgrpid
  2269. Long ll_scid
  2270. Long ll_mtrltypeid
  2271. String ls_wrkGrpName
  2272. Decimal ld_sonscale, lde_qty
  2273. Long ll_wrkgrpid_scll
  2274. String ls_col16, ls_col17
  2275. Long ll_newrow
  2276. String ls_promode,ls_pfgroup,ls_pfgroupmode,ls_pfklmode
  2277. Decimal ld_pfgroupqty,lde_qty_mx
  2278. String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou
  2279. string ls_dscrp
  2280. Long ll_modleid
  2281. String ls_modlename
  2282. String ls_pfgroup_p
  2283. Select count(*)
  2284. Into :cnt
  2285. From u_mtrl_wkp_tech_modle;
  2286. If sqlca.SQLCode <> 0 Then cnt = 0
  2287. If cnt = 1 Then
  2288. Select top 1 modleid,
  2289. modlename
  2290. Into :ll_modleid,
  2291. :ls_modlename
  2292. From u_mtrl_wkp_tech_modle;
  2293. If sqlca.SQLCode <> 0 Then
  2294. ll_modleid = 0
  2295. ls_modlename = ''
  2296. End If
  2297. End If
  2298. If Not cbx_ifreset.Checked Then
  2299. dw_1.Reset()
  2300. //插入产品
  2301. wf_re_mtrl(0)
  2302. End If
  2303. dw_1.SetRedraw(False)
  2304. For ll_row = 7 To ds_col30.RowCount()
  2305. //明细终止标记
  2306. If Trim(ds_col30.GetItemString(ll_row,14)) = '' And Trim(ds_col30.GetItemString(ll_row,2)) = '' Then Exit
  2307. ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,13))
  2308. ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,15))
  2309. ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,14))
  2310. ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,21)))
  2311. lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,7))) //部件数量
  2312. lde_qty_mx = Dec(Trim(ds_col30.GetItemString(ll_row,19))) //
  2313. If IsNull(ld_sonscale) Then ld_sonscale = 0
  2314. If ld_sonscale = 0 Then
  2315. If lde_qty = 0 Then
  2316. ld_sonscale = lde_qty_mx
  2317. Else
  2318. ld_sonscale = lde_qty
  2319. End If
  2320. End If
  2321. ls_promode = Trim(ds_col30.GetItemString(ll_row,3))
  2322. ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,2))
  2323. // ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) + '*'+Trim(ds_col30.GetItemString(ll_row,6))+'*'+Trim(ds_col30.GetItemString(ll_row,7))
  2324. // ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) + '*'+Trim(ds_col30.GetItemString(ll_row,17))+'*'+Trim(ds_col30.GetItemString(ll_row,18))
  2325. ls_pfgroupmode = ''
  2326. ls_pfklmode = ''
  2327. If Trim(ds_col30.GetItemString(ll_row,4)) <> '' Then
  2328. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,4))
  2329. End If
  2330. If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then
  2331. If Trim(ls_pfgroupmode) <> '' Then
  2332. ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,5))
  2333. Else
  2334. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5))
  2335. End If
  2336. End If
  2337. If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then
  2338. If Trim(ls_pfgroupmode) <> '' Then
  2339. ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,6))
  2340. Else
  2341. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,6))
  2342. End If
  2343. End If
  2344. If Trim(ds_col30.GetItemString(ll_row,16)) <> '' Then
  2345. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16))
  2346. End If
  2347. If Trim(ds_col30.GetItemString(ll_row,17)) <> '' Then
  2348. If Trim(ls_pfklmode) <> '' Then
  2349. ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,17))
  2350. Else
  2351. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,17))
  2352. End If
  2353. End If
  2354. If Trim(ds_col30.GetItemString(ll_row,18)) <> '' Then
  2355. If Trim(ls_pfklmode) <> '' Then
  2356. ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,18))
  2357. Else
  2358. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,18))
  2359. End If
  2360. End If
  2361. ls_wenli = Trim(ds_col30.GetItemString(ll_row,8))
  2362. ls_fengbian = Trim(ds_col30.GetItemString(ll_row,9))
  2363. ls_paikong = Trim(ds_col30.GetItemString(ll_row,10))
  2364. ls_luoji = Trim(ds_col30.GetItemString(ll_row,11))
  2365. ls_penyou = Trim(ds_col30.GetItemString(ll_row,12))
  2366. ls_dscrp = Trim(ds_col30.GetItemString(ll_row,27))
  2367. ls_col16 = Trim(ds_col30.GetItemString(ll_row,16))
  2368. ls_col17 = Trim(ds_col30.GetItemString(ll_row,17))
  2369. If ls_pfgroup = '' Then
  2370. ls_pfgroup = ls_pfgroup_p + '封边带'
  2371. Else
  2372. ls_pfgroup_p = ls_pfgroup
  2373. End If
  2374. // If lde_qty <> 0 Then
  2375. // ld_sonscale = ld_sonscale / lde_qty
  2376. // End If
  2377. // If ls_mtrlcode_p <> "" Then
  2378. //
  2379. // cnt = 0
  2380. // Select COUNT(*)
  2381. // Into :cnt
  2382. // From u_mtrldef
  2383. // Where (mtrlcode = :ls_mtrlcode_p)
  2384. // And (mtrlorigin = 0);
  2385. // If sqlca.SQLCode = -1 Then
  2386. // rslt = 0
  2387. // arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_p + ',部件查询资料定义表失败,' + sqlca.SQLErrText
  2388. // Goto ext
  2389. // ElseIf sqlca.SQLCode = 100 Then
  2390. // cnt = 0
  2391. // End If
  2392. //
  2393. // If cnt > 1 Then
  2394. // rslt = 0
  2395. // arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_p + ',部件资料定义有' + String(cnt) + '条重复记录'
  2396. // Goto ext
  2397. // ElseIf cnt = 1 Then //插入部件
  2398. // Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin
  2399. // From u_mtrldef Where mtrlcode = :ls_mtrlcode_p;
  2400. // If sqlca.SQLCode <> 0 Then
  2401. // rslt = 0
  2402. // arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  2403. // Goto ext
  2404. // End If
  2405. //
  2406. // If ll_dftwrkgrpid = 0 Then
  2407. // rslt = 0
  2408. // arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查'
  2409. // Goto ext
  2410. // Else
  2411. // Select top 1 wrkgrpid Into :ll_wrkgrpid_scll
  2412. // From u_sc_workgroup
  2413. // Where storageid = :ll_dftwrkgrpid
  2414. // Order By wrkgrpcode;
  2415. // If sqlca.SQLCode <> 0 Then
  2416. // rslt = 0
  2417. // arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText
  2418. // Goto ext
  2419. // End If
  2420. // End If
  2421. // //插入部件
  2422. // wf_add_row(ll_mtrlid_p, '', 1, 1, arg_msg,ll_row_new)
  2423. // ElseIf cnt = 0 Then //插入新行-部件
  2424. // //插入部件
  2425. // wf_add_row_null(ls_mtrlcode_p, 1, 1, arg_msg,ll_row_new)
  2426. // End If
  2427. //
  2428. // If ll_row_new > 0 Then
  2429. // dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = ins_pfcode
  2430. // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3
  2431. // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1
  2432. // End If
  2433. //
  2434. // End If //ls_mtrlcode_p <> ""
  2435. //
  2436. //插入新行
  2437. cnt = 0
  2438. Select COUNT(*)
  2439. Into :cnt
  2440. From u_mtrldef
  2441. Where u_mtrldef.mtrlcode = :ls_mtrlcode;
  2442. If sqlca.SQLCode = -1 Then
  2443. rslt = 0
  2444. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText
  2445. Goto ext
  2446. ElseIf sqlca.SQLCode = 100 Then
  2447. cnt = 0
  2448. End If
  2449. // If ls_col16 = '' And ls_col17 = '' Then
  2450. ll_lp = 1
  2451. // Else
  2452. // ll_lp = 2
  2453. // End If
  2454. If cnt > 1 Then
  2455. rslt = 0
  2456. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录'
  2457. Goto ext
  2458. ElseIf cnt = 1 Then //插入部件
  2459. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin
  2460. From u_mtrldef Where mtrlcode = :ls_mtrlcode;
  2461. If sqlca.SQLCode <> 0 Then
  2462. rslt = 0
  2463. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  2464. Goto ext
  2465. End If
  2466. //插入材料
  2467. wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new)
  2468. If wf_addmx_row(ll_mtrlid,'',ll_lp + 1,ll_row_new + 1 ,ld_sonscale,arg_msg) = 0 Then
  2469. rslt = 0
  2470. Goto ext
  2471. End If
  2472. ElseIf cnt = 0 Then //插入新行-部件
  2473. //插入材料
  2474. wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new)
  2475. End If
  2476. If ll_row_new > 0 Then
  2477. dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode
  2478. dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_pfgroup
  2479. dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode
  2480. dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty
  2481. dw_1.Object.u_prdpf_pfklmode[ll_row_new] = ls_pfklmode
  2482. dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli
  2483. dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian
  2484. dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong
  2485. dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji
  2486. dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou
  2487. dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp
  2488. // If ll_lp = 1 Then
  2489. // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3
  2490. // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1
  2491. // else
  2492. dw_1.Object.u_prdpf_dipztype[ll_row_new] = -1
  2493. dw_1.Object.u_prdpf_ifover[ll_row_new] = 0
  2494. // End If
  2495. If lde_qty > 0 Then
  2496. dw_1.Object.u_prdpf_modleid[ll_row_new] = ll_modleid
  2497. dw_1.Object.u_prdpf_modlename[ll_row_new] = ls_modlename
  2498. End If
  2499. End If
  2500. Next
  2501. ext:
  2502. Destroy ds_col30
  2503. dw_1.SetRedraw(True)
  2504. If rslt = 0 Then
  2505. MessageBox('提示',arg_msg)
  2506. End If
  2507. end event
  2508. event ue_import_xls_5();// 导入Excel
  2509. If ins_mtrlid = 0 Then
  2510. MessageBox('系统提示','请先选择产品')
  2511. Return
  2512. End If
  2513. Int rslt = 1
  2514. String arg_msg
  2515. DataStore ds_col30
  2516. ds_col30 = Create DataStore
  2517. ds_col30.DataObject = 'dw_col30'
  2518. If f_readxls(ds_col30,arg_msg) <> 1 Then
  2519. rslt = 0
  2520. Goto ext
  2521. End If
  2522. Long ll_lp
  2523. Long ll_row,ll_row_new,ll_row_newmx
  2524. Long cnt
  2525. Long ll_cnt
  2526. Long ll_mtrlid_p
  2527. String ls_mtrlcode_p
  2528. String ls_pfcode
  2529. Long ll_mtrlid
  2530. String ls_mtrlcode
  2531. String ls_mtrlname
  2532. Int li_mtrlprp
  2533. String ls_mtrlmode
  2534. String ls_unit
  2535. String ls_zxmtrlmode
  2536. String ls_mtrlsectype
  2537. Int li_statusflag
  2538. Int li_statustype
  2539. Int li_woodcodeflag
  2540. Int li_woodcodetype
  2541. Int li_pcodeflag
  2542. Int li_pcodetype
  2543. String ls_usermtrlmode
  2544. Int li_Mtrlorigin
  2545. Long ll_dftwrkgrpid
  2546. Long ll_scid
  2547. Long ll_mtrltypeid
  2548. String ls_wrkGrpName
  2549. Decimal ld_sonscale, lde_qty
  2550. Long ll_wrkgrpid_scll
  2551. String ls_col16, ls_col17
  2552. Long ll_newrow
  2553. String ls_promode,ls_pfgroup,ls_pfgroupmode,ls_pfklmode
  2554. Decimal ld_pfgroupqty,lde_qty_mx
  2555. String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou
  2556. String ls_dscrp
  2557. Long ll_modleid
  2558. String ls_modlename
  2559. String ls_pfgroup_p
  2560. String ls_mtrlcode_ban,ls_mtrlname_ban
  2561. Long ll_lp_add,ll_lp_add_p //用于记录增加胚板/后段板后,对应增加的层级数
  2562. String unit_f,mtrlsectype_f,zxmtrlmode_f,usermtrlmode_f,piccode_f
  2563. Long mtrltypeid_f,ifselforder_f,ordertype_f,scid_f,dftwrkgrpid_f,mtrlprp_f
  2564. Decimal orderdays_f,buydays_f,wfjgdays_f
  2565. Long mtrlid_f,dftscllwkpid_f,outtype_f
  2566. String unit_a,mtrlsectype_a,zxmtrlmode_a,usermtrlmode_a,piccode_a
  2567. Long mtrltypeid_a,ifselforder_a,ordertype_a,scid_a,dftwrkgrpid_a,mtrlprp_a
  2568. Decimal orderdays_a,buydays_a,wfjgdays_a
  2569. Long mtrlid_a,dftscllwkpid_a,outtype_a
  2570. String ls_mb_mtrlcode,ls_wpcode
  2571. Boolean lb_ifmb = False //是否有模板编码及是否成功读取模板编码资料
  2572. Boolean lb_ifmb_a = False //后段板 是否有模板编码及是否读取数据成功
  2573. Long ll_k,ll_row_f,ll_l,ll_j
  2574. String ls_procode
  2575. String ls_mb_mtrlcode_p //胚板模板
  2576. String ls_mb_mtrlcode_a //后段板模板
  2577. String ls_promode_lit
  2578. Int li_ifyb_mode = 0 //压板模式
  2579. String ls_yb_name = '' //压板名称
  2580. Long ll_row_r,ll_cnt_r
  2581. Long ll_lp_yb = 0,ll_lp_yb_add = 0
  2582. DataStore ds_repeat
  2583. ds_repeat = Create DataStore
  2584. ds_repeat.DataObject = 'ds_mtrl_prdpf_check_repeat'
  2585. s_workpricetable arg_s_mx[],arg_s_empty[]
  2586. Select count(*)
  2587. Into :cnt
  2588. From u_mtrl_wkp_tech_modle;
  2589. If sqlca.SQLCode <> 0 Then cnt = 0
  2590. If cnt = 1 Then
  2591. Select top 1 modleid,
  2592. modlename
  2593. Into :ll_modleid,
  2594. :ls_modlename
  2595. From u_mtrl_wkp_tech_modle;
  2596. If sqlca.SQLCode <> 0 Then
  2597. ll_modleid = 0
  2598. ls_modlename = ''
  2599. End If
  2600. End If
  2601. If Not cbx_ifreset.Checked Then
  2602. dw_1.Reset()
  2603. //插入产品
  2604. wf_re_mtrl(0)
  2605. dw_copy.Reset()
  2606. End If
  2607. dw_1.SetRedraw(False)
  2608. For ll_row = 7 To ds_col30.RowCount()
  2609. //明细终止标记
  2610. If Trim(ds_col30.GetItemString(ll_row,14)) = '' And Trim(ds_col30.GetItemString(ll_row,15)) = '' And Trim(ds_col30.GetItemString(ll_row,2)) = '' Then Exit
  2611. ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,15))
  2612. ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,14))
  2613. ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,21)))
  2614. lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,7))) //部件数量
  2615. lde_qty_mx = Dec(Trim(ds_col30.GetItemString(ll_row,19))) //
  2616. ls_mb_mtrlcode = Trim(ds_col30.GetItemString(ll_row,13))
  2617. If IsNull(ld_sonscale) Then ld_sonscale = 0
  2618. If ld_sonscale = 0 Then
  2619. If lde_qty = 0 Then
  2620. ld_sonscale = lde_qty_mx
  2621. Else
  2622. ld_sonscale = lde_qty
  2623. End If
  2624. End If
  2625. ls_promode = Trim(ds_col30.GetItemString(ll_row,3))
  2626. If Pos(ls_promode,'-') > 0 Then
  2627. ls_promode_lit = Mid(ls_promode,Pos(ls_promode,'-') + 1)
  2628. Else
  2629. ls_promode_lit = ls_promode
  2630. End If
  2631. ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,2))
  2632. // ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) + '*'+Trim(ds_col30.GetItemString(ll_row,6))+'*'+Trim(ds_col30.GetItemString(ll_row,7))
  2633. // ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) + '*'+Trim(ds_col30.GetItemString(ll_row,17))+'*'+Trim(ds_col30.GetItemString(ll_row,18))
  2634. ls_pfgroupmode = ''
  2635. ls_pfklmode = ''
  2636. If Trim(ds_col30.GetItemString(ll_row,4)) <> '' Then
  2637. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,4))
  2638. End If
  2639. If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then
  2640. If Trim(ls_pfgroupmode) <> '' Then
  2641. ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,5))
  2642. Else
  2643. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5))
  2644. End If
  2645. End If
  2646. If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then
  2647. If Trim(ls_pfgroupmode) <> '' Then
  2648. ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,6))
  2649. Else
  2650. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,6))
  2651. End If
  2652. End If
  2653. If Trim(ds_col30.GetItemString(ll_row,16)) <> '' Then
  2654. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16))
  2655. End If
  2656. If Trim(ds_col30.GetItemString(ll_row,17)) <> '' Then
  2657. If Trim(ls_pfklmode) <> '' Then
  2658. ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,17))
  2659. Else
  2660. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,17))
  2661. End If
  2662. End If
  2663. If Trim(ds_col30.GetItemString(ll_row,18)) <> '' Then
  2664. If Trim(ls_pfklmode) <> '' Then
  2665. ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,18))
  2666. Else
  2667. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,18))
  2668. End If
  2669. End If
  2670. ls_wenli = Trim(ds_col30.GetItemString(ll_row,8))
  2671. ls_fengbian = Trim(ds_col30.GetItemString(ll_row,9))
  2672. ls_paikong = Trim(ds_col30.GetItemString(ll_row,10))
  2673. ls_luoji = Trim(ds_col30.GetItemString(ll_row,11))
  2674. ls_penyou = Trim(ds_col30.GetItemString(ll_row,12))
  2675. ls_dscrp = Trim(ds_col30.GetItemString(ll_row,27))
  2676. ls_col16 = Trim(ds_col30.GetItemString(ll_row,16))
  2677. ls_col17 = Trim(ds_col30.GetItemString(ll_row,17))
  2678. //读取模板编码资料
  2679. If Pos(ls_mb_mtrlcode,'+') = 0 Then
  2680. //如果模板编码不含+号,ls_mb_mtrlcode属于胚板模块编码
  2681. ls_mb_mtrlcode_p = ls_mb_mtrlcode
  2682. Else
  2683. //如果含+号,+号前是后段板模板编码,+号后是胚板编码
  2684. ls_mb_mtrlcode_a = Mid(ls_mb_mtrlcode , 1 , Pos(ls_mb_mtrlcode , '+') - 1 )
  2685. ls_mb_mtrlcode_p = Mid(ls_mb_mtrlcode , Pos(ls_mb_mtrlcode , '+') + 1)
  2686. End If
  2687. //读取胚板模板编码信息
  2688. lb_ifmb = False
  2689. If ls_mb_mtrlcode_p <> '' Then
  2690. Select unit,
  2691. mtrltypeid,
  2692. mtrlsectype,
  2693. zxmtrlmode,
  2694. usermtrlmode,
  2695. piccode,
  2696. ifselforder,
  2697. ordertype,
  2698. scid,
  2699. dftwrkgrpid,
  2700. orderdays,
  2701. buydays,
  2702. wfjgdays,
  2703. mtrlid,
  2704. dftscllwkpid,
  2705. mtrlprp,
  2706. outtype
  2707. Into :unit_f,
  2708. :mtrltypeid_f,
  2709. :mtrlsectype_f,
  2710. :zxmtrlmode_f,
  2711. :usermtrlmode_f,
  2712. :piccode_f,
  2713. :ifselforder_f,
  2714. :ordertype_f,
  2715. :scid_f,
  2716. :dftwrkgrpid_f,
  2717. :orderdays_f,
  2718. :buydays_f,
  2719. :wfjgdays_f,
  2720. :mtrlid_f,
  2721. :dftscllwkpid_f,
  2722. :mtrlprp_f,
  2723. :outtype_f
  2724. From u_mtrldef
  2725. Where mtrlcode = :ls_mb_mtrlcode_p;
  2726. If sqlca.SQLCode <> 0 Then
  2727. lb_ifmb = False
  2728. Else
  2729. lb_ifmb = True
  2730. End If
  2731. End If
  2732. //读取后段板模板编码信息
  2733. lb_ifmb_a = False
  2734. If ls_mb_mtrlcode_a <> '' Then
  2735. Select unit,
  2736. mtrltypeid,
  2737. mtrlsectype,
  2738. zxmtrlmode,
  2739. usermtrlmode,
  2740. piccode,
  2741. ifselforder,
  2742. ordertype,
  2743. scid,
  2744. dftwrkgrpid,
  2745. orderdays,
  2746. buydays,
  2747. wfjgdays,
  2748. mtrlid,
  2749. dftscllwkpid,
  2750. mtrlprp,
  2751. outtype
  2752. Into :unit_a,
  2753. :mtrltypeid_a,
  2754. :mtrlsectype_a,
  2755. :zxmtrlmode_a,
  2756. :usermtrlmode_a,
  2757. :piccode_a,
  2758. :ifselforder_a,
  2759. :ordertype_a,
  2760. :scid_a,
  2761. :dftwrkgrpid_a,
  2762. :orderdays_a,
  2763. :buydays_a,
  2764. :wfjgdays_a,
  2765. :mtrlid_a,
  2766. :dftscllwkpid_a,
  2767. :mtrlprp_a,
  2768. :outtype_a
  2769. From u_mtrldef
  2770. Where mtrlcode = :ls_mb_mtrlcode_a;
  2771. If sqlca.SQLCode <> 0 Then
  2772. lb_ifmb_a = False
  2773. Else
  2774. lb_ifmb_a = True
  2775. End If
  2776. End If
  2777. //
  2778. //增加胚板/后段板
  2779. //在圆方导入的excel如果<封边信息>栏有录入信息则为加工板
  2780. //如果<封边信息>栏无录入信息且在<喷油(吸塑)信息>栏录入了喷油则为喷油板
  2781. //如果<封边信息>栏无录入信息且在<喷油(吸塑)信息>栏录入了吸塑则为吸塑板
  2782. //喷油板,吸塑板 均为后段板
  2783. //编码规则:
  2784. //后段板编码:包件编码+部件代号
  2785. //胚板编码:包件编码+部件代号+特殊标识号
  2786. ll_lp_add = 0
  2787. If ls_pfgroup <> '' Then //And (ls_fengbian <> '' Or ls_fengbian = '' And ls_penyou <> '' ) Then
  2788. If li_ifyb_mode = 1 Then
  2789. //如果进入压板模式,对比本行部件名称是否与压板名称匹配
  2790. If Left(ls_pfgroup,Len(ls_yb_name)) = ls_yb_name Then
  2791. //如匹配,本行部件是压板组料,属于压板下级
  2792. ll_lp_yb_add = ll_lp_yb
  2793. Else
  2794. //如果不匹配,退出压板模式
  2795. li_ifyb_mode = 0
  2796. ll_lp_yb_add = 0
  2797. End If
  2798. Else
  2799. ll_lp_yb_add = 0
  2800. End If
  2801. //新需求:压板均为胚板 20150310
  2802. If Not (ls_fengbian = '' And ls_penyou <> '') or (ls_mtrlcode = '' And ls_mtrlname = '压板') Then //ls_fengbian <> '' Then
  2803. //胚板(只增加一层)
  2804. ll_lp_add = 1 + ll_lp_yb_add
  2805. If ls_mtrlcode = '' And ls_mtrlname = '压板' Then
  2806. //本物料为压板, 下级相关组料层级归到本物料下
  2807. li_ifyb_mode = 1
  2808. ls_yb_name = ls_pfgroup
  2809. ll_lp_yb = 1
  2810. End If
  2811. Else
  2812. //后段板(增加后段板-胚板,两层)
  2813. ll_lp_add = 2 + ll_lp_yb_add
  2814. //新需求:压板均为胚板 20150310 这段不会再执行
  2815. If ls_mtrlcode = '' And ls_mtrlname = '压板' Then
  2816. //本物料为压板, 下级相关组料层级归到本物料下
  2817. li_ifyb_mode = 1
  2818. ls_yb_name = ls_pfgroup
  2819. ll_lp_yb = 2
  2820. End If
  2821. ///
  2822. //增加后段板代码
  2823. ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode_lit //ls_promode ////需求变更:物料清单导入界面生成的板件编码不用型号,只取部件代号'-'后面部分【优适】 dyy 20141110
  2824. ls_mtrlname_ban = ls_pfgroup + '(后段)'
  2825. //检查相同部件编号但不同板件材料的情况
  2826. If ds_repeat.Find('mtrlcode_ban = "'+ls_mtrlcode_ban+'" and mtrlcode = "'+ls_mtrlcode+'"',1,ds_repeat.RowCount()) = 0 Then
  2827. ll_row_r = ds_repeat.InsertRow(0)
  2828. ds_repeat.Object.mtrlcode_ban[ll_row_r] = ls_mtrlcode_ban
  2829. ds_repeat.Object.mtrlcode[ll_row_r] = ls_mtrlcode
  2830. End If
  2831. ds_repeat.SetFilter('mtrlcode_ban = "'+ls_mtrlcode_ban+'"')
  2832. ds_repeat.Filter()
  2833. ll_cnt_r = ds_repeat.RowCount()
  2834. If ll_cnt_r > 1 Then
  2835. ls_mtrlcode_ban = ls_mtrlcode_ban + '('+String(ll_cnt_r)+')'
  2836. End If
  2837. ds_repeat.SetFilter('')
  2838. ds_repeat.Filter()
  2839. //// //
  2840. If ls_mtrlcode_ban <> "" Then
  2841. cnt = 0
  2842. Select COUNT(*)
  2843. Into :cnt
  2844. From u_mtrldef
  2845. Where (mtrlcode = :ls_mtrlcode_ban)
  2846. And (mtrlorigin = 0);
  2847. If sqlca.SQLCode = -1 Then
  2848. rslt = 0
  2849. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件查询资料定义表失败,' + sqlca.SQLErrText
  2850. Goto ext
  2851. ElseIf sqlca.SQLCode = 100 Then
  2852. cnt = 0
  2853. End If
  2854. If cnt > 1 Then
  2855. rslt = 0
  2856. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件资料定义有' + String(cnt) + '条重复记录'
  2857. Goto ext
  2858. ElseIf cnt = 1 Then //插入部件
  2859. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin
  2860. From u_mtrldef Where mtrlcode = :ls_mtrlcode_ban;
  2861. If sqlca.SQLCode <> 0 Then
  2862. rslt = 0
  2863. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  2864. Goto ext
  2865. End If
  2866. // If ll_dftwrkgrpid = 0 Then
  2867. // rslt = 0
  2868. // arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查'
  2869. // Goto ext
  2870. // Else
  2871. // Select top 1 wrkgrpid Into :ll_wrkgrpid_scll
  2872. // From u_sc_workgroup
  2873. // Where storageid = :ll_dftwrkgrpid
  2874. // Order By wrkgrpcode;
  2875. // If sqlca.SQLCode <> 0 Then
  2876. // rslt = 0
  2877. // arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText
  2878. // Goto ext
  2879. // End If
  2880. // End If
  2881. //插入部件
  2882. wf_add_row(ll_mtrlid_p, '', 1, lde_qty, arg_msg,ll_row_new)
  2883. ElseIf cnt = 0 Then //插入新行-部件
  2884. //插入部件
  2885. wf_add_row_null(ls_mtrlname_ban, 1, lde_qty, arg_msg,ll_row_new)
  2886. If ll_row_new > 0 Then
  2887. dw_1.Object.u_mtrldef_mtrlcode[ll_row_new] = ls_mtrlcode_ban
  2888. dw_1.Object.u_mtrldef_mtrlorigin[ll_row_new] = 0
  2889. dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = 0
  2890. dw_1.Object.u_mtrldef_unit[ll_row_new] = '块'
  2891. // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_mtrlname_ban
  2892. // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode
  2893. dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty
  2894. dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = '[常规]'
  2895. // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode
  2896. dw_1.Object.u_mtrldef_mtrlmode[ll_row_new] = ls_pfgroupmode
  2897. dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli
  2898. dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian
  2899. dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong
  2900. dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji
  2901. dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou
  2902. dw_1.Object.u_mtrldef_ban_wenli[ll_row_new] = ls_wenli
  2903. dw_1.Object.u_mtrldef_ban_fengbian[ll_row_new] = ls_fengbian
  2904. dw_1.Object.u_mtrldef_ban_paikong[ll_row_new] = ls_paikong
  2905. dw_1.Object.u_mtrldef_ban_luoji[ll_row_new] = ls_luoji
  2906. dw_1.Object.u_mtrldef_ban_penyou[ll_row_new] = ls_penyou
  2907. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_new] = ls_dscrp
  2908. dw_1.Object.u_mtrldef_ban_promode[ll_row_new] = ls_promode
  2909. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_new] = ls_pfklmode
  2910. dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp
  2911. dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = 2
  2912. dw_1.Object.ifnewadd[ll_row_new] = 1
  2913. dw_1.Object.u_mtrldef_bantype[ll_row_new] = 2
  2914. //套用模板编码资料信息
  2915. If lb_ifmb_a Then
  2916. dw_1.Object.u_mtrldef_unit[ll_row_new] = unit_a
  2917. dw_1.Object.u_mtrldef_mtrltypeid[ll_row_new] = mtrltypeid_a
  2918. dw_1.Object.u_mtrldef_mtrlsectype[ll_row_new] = mtrlsectype_a
  2919. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_new] = zxmtrlmode_a
  2920. dw_1.Object.u_mtrldef_usermtrlmode[ll_row_new] = usermtrlmode_a
  2921. dw_1.Object.u_mtrldef_piccode[ll_row_new] = piccode_a
  2922. dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = ifselforder_a
  2923. dw_1.Object.u_mtrldef_ordertype[ll_row_new] = ordertype_a
  2924. dw_1.Object.u_mtrldef_scid[ll_row_new] = scid_a
  2925. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_new] = dftwrkgrpid_a
  2926. dw_1.Object.u_mtrldef_orderdays[ll_row_new] = orderdays_a
  2927. dw_1.Object.u_mtrldef_buydays[ll_row_new] = buydays_a
  2928. dw_1.Object.u_mtrldef_wfjgdays[ll_row_new] = wfjgdays_a
  2929. dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = mtrlprp_a
  2930. dw_1.Object.u_mtrldef_outtype[ll_row_new] = outtype_a
  2931. dw_1.Object.u_PrdPF_wrkgrpid[ll_row_new] = dftscllwkpid_a
  2932. dw_1.Object.mb_mtrlcode[ll_row_new] = ls_mb_mtrlcode_a
  2933. dw_1.Object.mb_mtrlid[ll_row_new] = mtrlid_a
  2934. End If
  2935. End If
  2936. //处理工价表_后段(如果有模板编码,使用模板编码的工价表,并按[cbx_wp_pack 按清单说明自动生成包件工价表]决定是否解释清单备注到工价表)
  2937. dw_2.Reset()
  2938. If lb_ifmb Then
  2939. ls_wpcode = f_get_dft_wp(mtrlid_a)
  2940. dw_2.Retrieve(mtrlid_a,ls_wpcode)
  2941. End If
  2942. If cbx_wp_pack.Checked Then
  2943. If Trim(ls_dscrp) <> '' Then
  2944. arg_s_mx = arg_s_empty
  2945. f_cmp_proname(ls_dscrp,arg_s_mx)
  2946. For ll_k = 1 To UpperBound(arg_s_mx)
  2947. cnt++
  2948. // ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode + '_' + ls_promode+'"',1,dw_2.RowCount())
  2949. ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode+'"',1,dw_2.RowCount())
  2950. If ll_row_f = 0 Then
  2951. //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码
  2952. //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码
  2953. //2014-10-28 增加需求:如果工序有定义工价公式的,导入时将默认工式导入到工价表的工价公式
  2954. If cbx_wp_add.Checked Then
  2955. ll_row_newmx = dw_2.InsertRow(0)
  2956. dw_2.Object.proorder[ll_row_newmx] = cnt
  2957. dw_2.Object.procode[ll_row_newmx] = arg_s_mx[ll_k].procode // + '_' + ls_promode
  2958. dw_2.Object.u_sc_workprice_proname[ll_row_newmx] = arg_s_mx[ll_k].proname // + '_' + ls_pfgroup
  2959. dw_2.Object.wrkgrpid[ll_row_newmx] = arg_s_mx[ll_k].wrkgrpid
  2960. dw_2.Object.u_sc_workprice_pricestr[ll_row_newmx] = arg_s_mx[ll_k].pricestr
  2961. If Trim(arg_s_mx[ll_k].pricestr) <> '' Then
  2962. dw_2.Object.workprice[ll_row_newmx] = 0
  2963. Else
  2964. dw_2.Object.workprice[ll_row_newmx] = arg_s_mx[ll_k].workprice
  2965. End If
  2966. dw_2.Object.workqty[ll_row_newmx] = 1
  2967. dw_2.Object.lsxtype[ll_row_newmx] = 1
  2968. End If
  2969. Else
  2970. dw_2.Object.wrkgrpid[ll_row_f] = arg_s_mx[ll_k].wrkgrpid
  2971. dw_2.Object.u_sc_workprice_pricestr[ll_row_f] = arg_s_mx[ll_k].pricestr
  2972. If Trim(arg_s_mx[ll_k].pricestr) <> '' Then
  2973. dw_2.Object.workprice[ll_row_f] = 0
  2974. Else
  2975. dw_2.Object.workprice[ll_row_f] = arg_s_mx[ll_k].workprice
  2976. End If
  2977. End If
  2978. Next
  2979. End If
  2980. End If
  2981. ll_j = 0
  2982. For ll_l = 1 To dw_2.RowCount()
  2983. ls_procode = dw_2.Object.procode[ll_l]
  2984. dw_2.Object.u_mtrldef_mtrlcode[ll_l] = ls_mtrlcode_ban
  2985. dw_2.AcceptText()
  2986. If dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_ban + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 Then Continue
  2987. ll_j++
  2988. dw_2.RowsCopy (ll_l,ll_l,Primary!,dw_copy,ll_j,Primary!)
  2989. Next
  2990. dw_1.Object.ifmod_wp[ll_row_new] = 1
  2991. //处理工价表_后段(完)
  2992. End If
  2993. End If
  2994. //增加后段板代码(完)
  2995. End If
  2996. //增加胚板代码
  2997. ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode_lit + '_P' //ls_promode + '_P' ////需求变更:物料清单导入界面生成的板件编码不用型号,只取部件代号'-'后面部分【优适】 dyy 20141110
  2998. ls_mtrlname_ban = ls_pfgroup
  2999. //检查相同部件编号但不同板件材料的情况
  3000. If ds_repeat.Find('mtrlcode_ban = "'+ls_mtrlcode_ban+'" and mtrlcode = "'+ls_mtrlcode+'"',1,ds_repeat.RowCount()) = 0 Then
  3001. ll_row_r = ds_repeat.InsertRow(0)
  3002. ds_repeat.Object.mtrlcode_ban[ll_row_r] = ls_mtrlcode_ban
  3003. ds_repeat.Object.mtrlcode[ll_row_r] = ls_mtrlcode
  3004. End If
  3005. ds_repeat.SetFilter('mtrlcode_ban = "'+ls_mtrlcode_ban+'"')
  3006. ds_repeat.Filter()
  3007. ll_cnt_r = ds_repeat.RowCount()
  3008. If ll_cnt_r > 1 Then
  3009. ls_mtrlcode_ban = ls_mtrlcode_ban + '('+String(ll_cnt_r)+')'
  3010. End If
  3011. ds_repeat.SetFilter('')
  3012. ds_repeat.Filter()
  3013. //// //
  3014. If ls_mtrlcode_ban <> "" Then
  3015. cnt = 0
  3016. Select COUNT(*)
  3017. Into :cnt
  3018. From u_mtrldef
  3019. Where (mtrlcode = :ls_mtrlcode_ban)
  3020. And (mtrlorigin = 0);
  3021. If sqlca.SQLCode = -1 Then
  3022. rslt = 0
  3023. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件查询资料定义表失败,' + sqlca.SQLErrText
  3024. Goto ext
  3025. ElseIf sqlca.SQLCode = 100 Then
  3026. cnt = 0
  3027. End If
  3028. If cnt > 1 Then
  3029. rslt = 0
  3030. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件资料定义有' + String(cnt) + '条重复记录'
  3031. Goto ext
  3032. ElseIf cnt = 1 Then //插入部件
  3033. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin
  3034. From u_mtrldef Where mtrlcode = :ls_mtrlcode_ban;
  3035. If sqlca.SQLCode <> 0 Then
  3036. rslt = 0
  3037. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  3038. Goto ext
  3039. End If
  3040. // If ll_dftwrkgrpid = 0 Then
  3041. // rslt = 0
  3042. // arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查'
  3043. // Goto ext
  3044. // Else
  3045. // Select top 1 wrkgrpid Into :ll_wrkgrpid_scll
  3046. // From u_sc_workgroup
  3047. // Where storageid = :ll_dftwrkgrpid
  3048. // Order By wrkgrpcode;
  3049. // If sqlca.SQLCode <> 0 Then
  3050. // rslt = 0
  3051. // arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText
  3052. // Goto ext
  3053. // End If
  3054. // End If
  3055. //插入部件
  3056. wf_add_row(ll_mtrlid_p, '', ll_lp_add, lde_qty, arg_msg,ll_row_new)
  3057. ElseIf cnt = 0 Then //插入新行-部件
  3058. //插入部件
  3059. wf_add_row_null(ls_mtrlname_ban, ll_lp_add, lde_qty, arg_msg,ll_row_new)
  3060. If ll_row_new > 0 Then
  3061. dw_1.Object.u_mtrldef_mtrlcode[ll_row_new] = ls_mtrlcode_ban
  3062. dw_1.Object.u_mtrldef_mtrlorigin[ll_row_new] = 0
  3063. dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = 0
  3064. dw_1.Object.u_mtrldef_unit[ll_row_new] = '块'
  3065. // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_mtrlname_ban
  3066. // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode
  3067. dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty
  3068. dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = '[常规]'
  3069. // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode
  3070. dw_1.Object.u_mtrldef_mtrlmode[ll_row_new] = ls_pfgroupmode
  3071. dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli
  3072. dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian
  3073. dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong
  3074. dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji
  3075. dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou
  3076. dw_1.Object.u_mtrldef_ban_wenli[ll_row_new] = ls_wenli
  3077. dw_1.Object.u_mtrldef_ban_fengbian[ll_row_new] = ls_fengbian
  3078. dw_1.Object.u_mtrldef_ban_paikong[ll_row_new] = ls_paikong
  3079. dw_1.Object.u_mtrldef_ban_luoji[ll_row_new] = ls_luoji
  3080. dw_1.Object.u_mtrldef_ban_penyou[ll_row_new] = ls_penyou
  3081. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_new] = ls_dscrp
  3082. dw_1.Object.u_mtrldef_ban_promode[ll_row_new] = ls_promode
  3083. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_new] = ls_pfklmode
  3084. dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp
  3085. dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = 2
  3086. dw_1.Object.ifnewadd[ll_row_new] = 1
  3087. dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1
  3088. //套用模板编码资料信息
  3089. If lb_ifmb Then
  3090. dw_1.Object.u_mtrldef_unit[ll_row_new] = unit_f
  3091. dw_1.Object.u_mtrldef_mtrltypeid[ll_row_new] = mtrltypeid_f
  3092. dw_1.Object.u_mtrldef_mtrlsectype[ll_row_new] = mtrlsectype_f
  3093. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_new] = zxmtrlmode_f
  3094. dw_1.Object.u_mtrldef_usermtrlmode[ll_row_new] = usermtrlmode_f
  3095. dw_1.Object.u_mtrldef_piccode[ll_row_new] = piccode_f
  3096. dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = ifselforder_f
  3097. dw_1.Object.u_mtrldef_ordertype[ll_row_new] = ordertype_f
  3098. dw_1.Object.u_mtrldef_scid[ll_row_new] = scid_f
  3099. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_new] = dftwrkgrpid_f
  3100. dw_1.Object.u_mtrldef_orderdays[ll_row_new] = orderdays_f
  3101. dw_1.Object.u_mtrldef_buydays[ll_row_new] = buydays_f
  3102. dw_1.Object.u_mtrldef_wfjgdays[ll_row_new] = wfjgdays_f
  3103. dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = mtrlprp_f
  3104. dw_1.Object.u_mtrldef_outtype[ll_row_new] = outtype_f
  3105. dw_1.Object.u_PrdPF_wrkgrpid[ll_row_new] = dftscllwkpid_f
  3106. dw_1.Object.mb_mtrlcode[ll_row_new] = ls_mb_mtrlcode_p
  3107. dw_1.Object.mb_mtrlid[ll_row_new] = mtrlid_f
  3108. End If
  3109. End If
  3110. //处理工价表(如果有模板编码,使用模板编码的工价表,并按[cbx_wp_pack 按清单说明自动生成包件工价表]决定是否解释清单备注到工价表)
  3111. dw_2.Reset()
  3112. If lb_ifmb Then
  3113. ls_wpcode = f_get_dft_wp(mtrlid_f)
  3114. dw_2.Retrieve(mtrlid_f,ls_wpcode)
  3115. End If
  3116. If cbx_wp_pack.Checked Then
  3117. If Trim(ls_dscrp) <> '' Then
  3118. arg_s_mx = arg_s_empty
  3119. f_cmp_proname(ls_dscrp,arg_s_mx)
  3120. For ll_k = 1 To UpperBound(arg_s_mx)
  3121. cnt++
  3122. // ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode + '_' + ls_promode+'"',1,dw_2.RowCount())
  3123. ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode+'"',1,dw_2.RowCount())
  3124. If ll_row_f = 0 Then
  3125. //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码
  3126. //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码
  3127. //2014-10-28 增加需求:如果工序有定义工价公式的,导入时将默认工式导入到工价表的工价公式
  3128. If cbx_wp_add.Checked Then
  3129. ll_row_newmx = dw_2.InsertRow(0)
  3130. dw_2.Object.proorder[ll_row_newmx] = cnt
  3131. dw_2.Object.procode[ll_row_newmx] = arg_s_mx[ll_k].procode // + '_' + ls_promode
  3132. dw_2.Object.u_sc_workprice_proname[ll_row_newmx] = arg_s_mx[ll_k].proname // + '_' + ls_pfgroup
  3133. dw_2.Object.wrkgrpid[ll_row_newmx] = arg_s_mx[ll_k].wrkgrpid
  3134. dw_2.Object.u_sc_workprice_pricestr[ll_row_newmx] = arg_s_mx[ll_k].pricestr
  3135. If Trim(arg_s_mx[ll_k].pricestr) <> '' Then
  3136. dw_2.Object.workprice[ll_row_newmx] = 0
  3137. Else
  3138. dw_2.Object.workprice[ll_row_newmx] = arg_s_mx[ll_k].workprice
  3139. End If
  3140. dw_2.Object.workqty[ll_row_newmx] = 1
  3141. dw_2.Object.lsxtype[ll_row_newmx] = 1
  3142. End If
  3143. Else
  3144. dw_2.Object.wrkgrpid[ll_row_f] = arg_s_mx[ll_k].wrkgrpid
  3145. dw_2.Object.u_sc_workprice_pricestr[ll_row_f] = arg_s_mx[ll_k].pricestr
  3146. If Trim(arg_s_mx[ll_k].pricestr) <> '' Then
  3147. dw_2.Object.workprice[ll_row_f] = 0
  3148. Else
  3149. dw_2.Object.workprice[ll_row_f] = arg_s_mx[ll_k].workprice
  3150. End If
  3151. End If
  3152. Next
  3153. End If
  3154. End If
  3155. ll_j = 0
  3156. For ll_l = 1 To dw_2.RowCount()
  3157. ls_procode = dw_2.Object.procode[ll_l]
  3158. dw_2.Object.u_mtrldef_mtrlcode[ll_l] = ls_mtrlcode_ban
  3159. dw_2.AcceptText()
  3160. If dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_ban + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 Then Continue
  3161. ll_j++
  3162. dw_2.RowsCopy (ll_l,ll_l,Primary!,dw_copy,ll_j,Primary!)
  3163. Next
  3164. dw_1.Object.ifmod_wp[ll_row_new] = 1
  3165. //处理工价表(完)
  3166. End If
  3167. End If
  3168. //增加胚板代码(完)
  3169. End If
  3170. If ls_pfgroup = '' Then
  3171. ls_pfgroup = ls_pfgroup_p + '封边带'
  3172. ll_lp_add = ll_lp_add_p
  3173. Else
  3174. ls_pfgroup_p = ls_pfgroup
  3175. ll_lp_add_p = ll_lp_add
  3176. End If
  3177. If Not (ls_mtrlcode = '' And ls_mtrlname = '压板') Then
  3178. //插入新行
  3179. cnt = 0
  3180. Select COUNT(*)
  3181. Into :cnt
  3182. From u_mtrldef
  3183. Where u_mtrldef.mtrlcode = :ls_mtrlcode;
  3184. If sqlca.SQLCode = -1 Then
  3185. rslt = 0
  3186. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText
  3187. Goto ext
  3188. ElseIf sqlca.SQLCode = 100 Then
  3189. cnt = 0
  3190. End If
  3191. ll_lp = ll_lp_add + 1
  3192. If cnt > 1 Then
  3193. rslt = 0
  3194. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录'
  3195. Goto ext
  3196. ElseIf cnt = 1 Then //插入部件
  3197. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin
  3198. From u_mtrldef Where mtrlcode = :ls_mtrlcode;
  3199. If sqlca.SQLCode <> 0 Then
  3200. rslt = 0
  3201. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  3202. Goto ext
  3203. End If
  3204. //插入材料
  3205. wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new)
  3206. If wf_addmx_row(ll_mtrlid,'',ll_lp + 1,ll_row_new + 1 ,ld_sonscale,arg_msg) = 0 Then
  3207. rslt = 0
  3208. Goto ext
  3209. End If
  3210. ElseIf cnt = 0 Then //插入新行-部件
  3211. //插入材料
  3212. wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new)
  3213. End If
  3214. If ll_row_new > 0 Then
  3215. // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode
  3216. // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_pfgroup
  3217. // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode
  3218. dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty
  3219. dw_1.Object.u_prdpf_pfklmode[ll_row_new] = ls_pfklmode
  3220. dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli
  3221. dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian
  3222. dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong
  3223. dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji
  3224. dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou
  3225. dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp
  3226. // If ll_lp = 1 Then
  3227. // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3
  3228. // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1
  3229. // else
  3230. dw_1.Object.u_prdpf_dipztype[ll_row_new] = -1
  3231. dw_1.Object.u_prdpf_ifover[ll_row_new] = 0
  3232. // End If
  3233. If lde_qty > 0 Then
  3234. dw_1.Object.u_prdpf_modleid[ll_row_new] = ll_modleid
  3235. dw_1.Object.u_prdpf_modlename[ll_row_new] = ls_modlename
  3236. End If
  3237. End If
  3238. End If
  3239. Next
  3240. ext:
  3241. Destroy ds_repeat
  3242. Destroy ds_col30
  3243. dw_1.SetRedraw(True)
  3244. If rslt = 0 Then
  3245. MessageBox('提示',arg_msg)
  3246. End If
  3247. end event
  3248. event ue_import_xls_6();// 导入Excel
  3249. If ins_mtrlid = 0 Then
  3250. MessageBox('系统提示','请先选择产品')
  3251. Return
  3252. End If
  3253. Int rslt = 1
  3254. String arg_msg
  3255. DataStore ds_col30
  3256. ds_col30 = Create DataStore
  3257. ds_col30.DataObject = 'dw_col30'
  3258. If f_readxls(ds_col30,arg_msg) <> 1 Then
  3259. rslt = 0
  3260. Goto ext
  3261. End If
  3262. Long ll_lp
  3263. Long ll_row,ll_row_new,ll_row_newmx
  3264. Long cnt
  3265. Long ll_cnt
  3266. Long ll_mtrlid_p
  3267. String ls_mtrlcode_p
  3268. String ls_pfcode
  3269. Long ll_mtrlid
  3270. String ls_mtrlcode
  3271. String ls_mtrlname
  3272. Int li_mtrlprp
  3273. String ls_mtrlmode
  3274. String ls_unit
  3275. String ls_zxmtrlmode
  3276. String ls_mtrlsectype
  3277. Int li_statusflag
  3278. Int li_statustype
  3279. Int li_woodcodeflag
  3280. Int li_woodcodetype
  3281. Int li_pcodeflag
  3282. Int li_pcodetype
  3283. String ls_usermtrlmode
  3284. Int li_Mtrlorigin
  3285. Long ll_dftwrkgrpid
  3286. Long ll_scid
  3287. Long ll_mtrltypeid
  3288. String ls_wrkGrpName
  3289. Decimal ld_sonscale, lde_qty
  3290. Long ll_wrkgrpid_scll
  3291. String ls_col16, ls_col17
  3292. Long ll_newrow
  3293. String ls_promode,ls_pfgroup,ls_pfgroupmode,ls_pfklmode
  3294. Decimal ld_pfgroupqty,lde_qty_mx
  3295. String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou
  3296. String ls_dscrp
  3297. Long ll_modleid
  3298. String ls_modlename
  3299. String ls_pfgroup_p
  3300. String ls_mtrlcode_ban,ls_mtrlname_ban
  3301. Long ll_lp_add,ll_lp_add_p //用于记录增加胚板/后段板后,对应增加的层级数
  3302. String unit_f,mtrlsectype_f,zxmtrlmode_f,usermtrlmode_f,piccode_f
  3303. Long mtrltypeid_f,ifselforder_f,ordertype_f,scid_f,dftwrkgrpid_f,mtrlprp_f
  3304. Decimal orderdays_f,buydays_f,wfjgdays_f
  3305. Long mtrlid_f,dftscllwkpid_f,outtype_f
  3306. String unit_a,mtrlsectype_a,zxmtrlmode_a,usermtrlmode_a,piccode_a
  3307. Long mtrltypeid_a,ifselforder_a,ordertype_a,scid_a,dftwrkgrpid_a,mtrlprp_a
  3308. Decimal orderdays_a,buydays_a,wfjgdays_a
  3309. Long mtrlid_a,dftscllwkpid_a,outtype_a
  3310. String ls_mb_mtrlcode,ls_wpcode
  3311. Boolean lb_ifmb = False //是否有模板编码及是否成功读取模板编码资料
  3312. Boolean lb_ifmb_a = False //后段板 是否有模板编码及是否读取数据成功
  3313. Long ll_k,ll_row_f,ll_l,ll_j
  3314. String ls_procode
  3315. String ls_mb_mtrlcode_p //胚板模板
  3316. String ls_mb_mtrlcode_a //后段板模板
  3317. String ls_direction //摆放方向(文本)
  3318. Int li_direction //摆放方向(数值 0 -横 1-竖)
  3319. String ls_pid //序号(文本)
  3320. Decimal ld_midu,ld_cubage,ld_cubage_cl,ld_length,ld_width,ld_length_cl,ld_width_cl
  3321. string ls_dscrp_mtrl
  3322. s_workpricetable arg_s_mx[],arg_s_empty[]
  3323. If Not cbx_ifreset.Checked Then
  3324. dw_1.Reset()
  3325. //插入产品
  3326. wf_re_mtrl(0)
  3327. End If
  3328. dw_1.SetRedraw(False)
  3329. For ll_row = 8 To ds_col30.RowCount()
  3330. //明细终止标记(部件名称及材料名称都为空)
  3331. If Trim(ds_col30.GetItemString(ll_row,9)) = '' And Trim(ds_col30.GetItemString(ll_row,2)) = '' Then Exit
  3332. ls_pid = Trim(ds_col30.GetItemString(ll_row,1))
  3333. ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,9))
  3334. // ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,14))
  3335. Select mtrlcode,midu Into :ls_mtrlcode,:ld_midu
  3336. From u_mtrldef
  3337. Where mtrlname = :ls_mtrlname;
  3338. If sqlca.SQLCode <> 0 Then ls_mtrlcode = ''
  3339. ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,16)))
  3340. lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,7))) //部件数量
  3341. lde_qty_mx = Dec(Trim(ds_col30.GetItemString(ll_row,16))) //
  3342. ld_cubage = (Dec(Trim(ds_col30.GetItemString(ll_row,4))) * Dec(Trim(ds_col30.GetItemString(ll_row,5))) * Dec(Trim(ds_col30.GetItemString(ll_row,6))) ) / 1000000000
  3343. ld_cubage_cl = (Dec(Trim(ds_col30.GetItemString(ll_row,13))) * Dec(Trim(ds_col30.GetItemString(ll_row,14))) * Dec(Trim(ds_col30.GetItemString(ll_row,15))) ) / 1000000000
  3344. ld_length = Dec(Trim(ds_col30.GetItemString(ll_row,4)))
  3345. ld_width = Dec(Trim(ds_col30.GetItemString(ll_row,5)))
  3346. ld_length_cl = Dec(Trim(ds_col30.GetItemString(ll_row,13)))
  3347. ld_width_cl = Dec(Trim(ds_col30.GetItemString(ll_row,14)))
  3348. ls_dscrp_mtrl = Trim(ds_col30.GetItemString(ll_row,17))
  3349. ls_direction = Trim(ds_col30.GetItemString(ll_row,12))
  3350. If ls_direction = '竖' Then
  3351. li_direction = 1
  3352. Else
  3353. li_direction = 0
  3354. End If
  3355. //模板编码
  3356. ls_mb_mtrlcode = Trim(ds_col30.GetItemString(ll_row,18))
  3357. If IsNull(ld_sonscale) Then ld_sonscale = 0
  3358. If ld_sonscale = 0 Then
  3359. If lde_qty = 0 Then
  3360. ld_sonscale = lde_qty_mx
  3361. Else
  3362. ld_sonscale = lde_qty
  3363. End If
  3364. End If
  3365. ls_promode = Trim(ds_col30.GetItemString(ll_row,3))
  3366. ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,2))
  3367. // ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) + '*'+Trim(ds_col30.GetItemString(ll_row,6))+'*'+Trim(ds_col30.GetItemString(ll_row,7))
  3368. // ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) + '*'+Trim(ds_col30.GetItemString(ll_row,17))+'*'+Trim(ds_col30.GetItemString(ll_row,18))
  3369. ls_pfgroupmode = ''
  3370. ls_pfklmode = ''
  3371. If Trim(ds_col30.GetItemString(ll_row,4)) <> '' Then
  3372. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,4))
  3373. End If
  3374. If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then
  3375. If Trim(ls_pfgroupmode) <> '' Then
  3376. ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,5))
  3377. Else
  3378. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5))
  3379. End If
  3380. End If
  3381. If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then
  3382. If Trim(ls_pfgroupmode) <> '' Then
  3383. ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,6))
  3384. Else
  3385. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,6))
  3386. End If
  3387. End If
  3388. If Trim(ds_col30.GetItemString(ll_row,13)) <> '' Then
  3389. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,13))
  3390. End If
  3391. If Trim(ds_col30.GetItemString(ll_row,14)) <> '' Then
  3392. If Trim(ls_pfklmode) <> '' Then
  3393. ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,14))
  3394. Else
  3395. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,14))
  3396. End If
  3397. End If
  3398. If Trim(ds_col30.GetItemString(ll_row,15)) <> '' Then
  3399. If Trim(ls_pfklmode) <> '' Then
  3400. ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,15))
  3401. Else
  3402. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,15))
  3403. End If
  3404. End If
  3405. ls_fengbian = Trim(ds_col30.GetItemString(ll_row,11))
  3406. ls_dscrp = Trim(ds_col30.GetItemString(ll_row,17))
  3407. //读取胚板模板编码信息
  3408. lb_ifmb = False
  3409. If ls_mb_mtrlcode <> '' Then
  3410. Select unit,
  3411. mtrltypeid,
  3412. mtrlsectype,
  3413. zxmtrlmode,
  3414. usermtrlmode,
  3415. piccode,
  3416. ifselforder,
  3417. ordertype,
  3418. scid,
  3419. dftwrkgrpid,
  3420. orderdays,
  3421. buydays,
  3422. wfjgdays,
  3423. mtrlid,
  3424. dftscllwkpid,
  3425. mtrlprp,
  3426. outtype
  3427. Into :unit_f,
  3428. :mtrltypeid_f,
  3429. :mtrlsectype_f,
  3430. :zxmtrlmode_f,
  3431. :usermtrlmode_f,
  3432. :piccode_f,
  3433. :ifselforder_f,
  3434. :ordertype_f,
  3435. :scid_f,
  3436. :dftwrkgrpid_f,
  3437. :orderdays_f,
  3438. :buydays_f,
  3439. :wfjgdays_f,
  3440. :mtrlid_f,
  3441. :dftscllwkpid_f,
  3442. :mtrlprp_f,
  3443. :outtype_f
  3444. From u_mtrldef
  3445. Where mtrlcode = :ls_mb_mtrlcode;
  3446. If sqlca.SQLCode <> 0 Then
  3447. lb_ifmb = False
  3448. Else
  3449. lb_ifmb = True
  3450. End If
  3451. End If
  3452. If ls_pfgroup <> '' Then
  3453. ll_lp_add = 1
  3454. //增加胚板代码
  3455. If ls_promode <> '' Then
  3456. ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode
  3457. Else
  3458. ls_mtrlcode_ban = ins_mtrlcode + '_part' +ls_pid
  3459. End If
  3460. ls_mtrlname_ban = ls_pfgroup
  3461. If ls_mtrlcode_ban <> "" Then
  3462. cnt = 0
  3463. Select COUNT(*)
  3464. Into :cnt
  3465. From u_mtrldef
  3466. Where (mtrlcode = :ls_mtrlcode_ban)
  3467. And (mtrlorigin = 0);
  3468. If sqlca.SQLCode = -1 Then
  3469. rslt = 0
  3470. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件查询资料定义表失败,' + sqlca.SQLErrText
  3471. Goto ext
  3472. ElseIf sqlca.SQLCode = 100 Then
  3473. cnt = 0
  3474. End If
  3475. If cnt > 1 Then
  3476. rslt = 0
  3477. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件资料定义有' + String(cnt) + '条重复记录'
  3478. Goto ext
  3479. ElseIf cnt = 1 Then //插入部件
  3480. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin
  3481. From u_mtrldef Where mtrlcode = :ls_mtrlcode_ban;
  3482. If sqlca.SQLCode <> 0 Then
  3483. rslt = 0
  3484. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  3485. Goto ext
  3486. End If
  3487. //插入部件
  3488. wf_add_row(ll_mtrlid_p, '', ll_lp_add, lde_qty, arg_msg,ll_row_new)
  3489. dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1
  3490. dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu
  3491. dw_1.Object.cubage[ll_row_new] = ld_cubage
  3492. dw_1.Object.Length[ll_row_new] = ld_length
  3493. dw_1.Object.Width[ll_row_new] = ld_width
  3494. ElseIf cnt = 0 Then //插入新行-部件
  3495. //插入部件
  3496. wf_add_row_null(ls_mtrlname_ban, ll_lp_add, lde_qty, arg_msg,ll_row_new)
  3497. If ll_row_new > 0 Then
  3498. dw_1.Object.u_mtrldef_mtrlcode[ll_row_new] = ls_mtrlcode_ban
  3499. dw_1.Object.u_mtrldef_mtrlorigin[ll_row_new] = 0
  3500. dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = 0
  3501. dw_1.Object.u_mtrldef_unit[ll_row_new] = '块'
  3502. // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_mtrlname_ban
  3503. // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode
  3504. dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty
  3505. dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = '[常规]'
  3506. // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode
  3507. dw_1.Object.u_mtrldef_mtrlmode[ll_row_new] = ls_pfgroupmode
  3508. dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli
  3509. dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian
  3510. dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong
  3511. dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji
  3512. dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou
  3513. dw_1.Object.u_mtrldef_ban_wenli[ll_row_new] = ls_wenli
  3514. dw_1.Object.u_mtrldef_ban_fengbian[ll_row_new] = ls_fengbian
  3515. dw_1.Object.u_mtrldef_ban_paikong[ll_row_new] = ls_paikong
  3516. dw_1.Object.u_mtrldef_ban_luoji[ll_row_new] = ls_luoji
  3517. dw_1.Object.u_mtrldef_ban_penyou[ll_row_new] = ls_penyou
  3518. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_new] = ls_dscrp
  3519. dw_1.Object.u_mtrldef_ban_promode[ll_row_new] = ls_promode
  3520. dw_1.Object.u_mtrldef_ban_direction[ll_row_new] = li_direction
  3521. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_new] = ls_pfklmode
  3522. dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp
  3523. dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = 2
  3524. dw_1.Object.ifnewadd[ll_row_new] = 1
  3525. dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1
  3526. dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu
  3527. dw_1.Object.cubage[ll_row_new] = ld_cubage
  3528. dw_1.Object.Length[ll_row_new] = ld_length
  3529. dw_1.Object.Width[ll_row_new] = ld_width
  3530. dw_1.Object.u_mtrldef_dscrp[ll_row_new] = ls_dscrp_mtrl
  3531. //套用模板编码资料信息
  3532. If lb_ifmb Then
  3533. dw_1.Object.u_mtrldef_unit[ll_row_new] = unit_f
  3534. dw_1.Object.u_mtrldef_mtrltypeid[ll_row_new] = mtrltypeid_f
  3535. dw_1.Object.u_mtrldef_mtrlsectype[ll_row_new] = mtrlsectype_f
  3536. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_new] = zxmtrlmode_f
  3537. dw_1.Object.u_mtrldef_usermtrlmode[ll_row_new] = usermtrlmode_f
  3538. dw_1.Object.u_mtrldef_piccode[ll_row_new] = piccode_f
  3539. dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = ifselforder_f
  3540. dw_1.Object.u_mtrldef_ordertype[ll_row_new] = ordertype_f
  3541. dw_1.Object.u_mtrldef_scid[ll_row_new] = scid_f
  3542. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_new] = dftwrkgrpid_f
  3543. dw_1.Object.u_mtrldef_orderdays[ll_row_new] = orderdays_f
  3544. dw_1.Object.u_mtrldef_buydays[ll_row_new] = buydays_f
  3545. dw_1.Object.u_mtrldef_wfjgdays[ll_row_new] = wfjgdays_f
  3546. dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = mtrlprp_f
  3547. dw_1.Object.u_mtrldef_outtype[ll_row_new] = outtype_f
  3548. dw_1.Object.u_PrdPF_wrkgrpid[ll_row_new] = dftscllwkpid_f
  3549. dw_1.Object.mb_mtrlcode[ll_row_new] = ls_mb_mtrlcode
  3550. dw_1.Object.mb_mtrlid[ll_row_new] = mtrlid_f
  3551. End If
  3552. End If
  3553. End If
  3554. End If
  3555. //增加胚板代码(完)
  3556. End If
  3557. ls_pfgroup_p = ls_pfgroup
  3558. ll_lp_add_p = ll_lp_add
  3559. //插入新行
  3560. cnt = 0
  3561. Select COUNT(*)
  3562. Into :cnt
  3563. From u_mtrldef
  3564. Where u_mtrldef.mtrlcode = :ls_mtrlcode;
  3565. If sqlca.SQLCode = -1 Then
  3566. rslt = 0
  3567. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText
  3568. Goto ext
  3569. ElseIf sqlca.SQLCode = 100 Then
  3570. cnt = 0
  3571. End If
  3572. ll_lp = ll_lp_add + 1
  3573. If cnt > 1 Then
  3574. rslt = 0
  3575. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录'
  3576. Goto ext
  3577. ElseIf cnt = 1 Then //插入部件
  3578. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin
  3579. From u_mtrldef Where mtrlcode = :ls_mtrlcode;
  3580. If sqlca.SQLCode <> 0 Then
  3581. rslt = 0
  3582. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  3583. Goto ext
  3584. End If
  3585. //插入材料
  3586. wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new)
  3587. If wf_addmx_row(ll_mtrlid,'',ll_lp + 1,ll_row_new + 1 ,ld_sonscale,arg_msg) = 0 Then
  3588. rslt = 0
  3589. Goto ext
  3590. End If
  3591. ElseIf cnt = 0 Then //插入新行-部件
  3592. //插入材料
  3593. wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new)
  3594. End If
  3595. If ll_row_new > 0 Then
  3596. // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode
  3597. // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_pfgroup
  3598. // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode
  3599. dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty
  3600. dw_1.Object.u_prdpf_pfklmode[ll_row_new] = ls_pfklmode
  3601. dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu
  3602. dw_1.Object.cubage[ll_row_new] = ld_cubage_cl
  3603. dw_1.Object.Length[ll_row_new] = ld_length_cl
  3604. dw_1.Object.Width[ll_row_new] = ld_width_cl
  3605. dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli
  3606. dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian
  3607. dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong
  3608. dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji
  3609. dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou
  3610. dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp
  3611. // If ll_lp = 1 Then
  3612. // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3
  3613. // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1
  3614. // else
  3615. dw_1.Object.u_prdpf_dipztype[ll_row_new] = -1
  3616. dw_1.Object.u_prdpf_ifover[ll_row_new] = 0
  3617. // End If
  3618. End If
  3619. Next
  3620. ext:
  3621. Destroy ds_col30
  3622. dw_1.SetRedraw(True)
  3623. If rslt = 0 Then
  3624. MessageBox('提示',arg_msg)
  3625. End If
  3626. end event
  3627. event ue_cmp_packinfo();If ins_ifmod = True Then
  3628. MessageBox('系统提示','编辑状态下不能操作')
  3629. Return
  3630. End If
  3631. If dw_1.Find('lp = 1 and u_mtrldef_ifpack > 0',1,dw_1.RowCount()) = 0 Then
  3632. MessageBox('系统提示','产品直接下级没有包件,不能使用本功能')
  3633. Return
  3634. End If
  3635. Long ll_i,ll_j,cnt
  3636. Decimal ld_cubage,ld_weight,ld_length,ld_width,ld_qty
  3637. s_edit_index_tran arg_s_tran
  3638. cnt = 0
  3639. For ll_i = 1 To dw_1.RowCount()
  3640. If dw_1.Object.lp[ll_i] = 1 And dw_1.Object.u_mtrldef_ifpack[ll_i] > 0 Then
  3641. cnt++
  3642. arg_s_tran.arr_string[cnt] = dw_1.Object.u_mtrldef_mtrlcode[ll_i] //包件编码
  3643. arg_s_tran.arr_string2[cnt] = dw_1.Object.u_mtrldef_mtrlname[ll_i] //包件名称
  3644. ld_cubage = 0
  3645. ld_weight = 0
  3646. ld_length = 0
  3647. ld_width = 0
  3648. ld_qty = 0
  3649. For ll_j = ll_i + 1 To dw_1.RowCount()
  3650. If dw_1.Object.lp[ll_j] <= 1 Then Exit
  3651. If dw_1.Object.lp[ll_j] <> 2 Then Continue //只考虑包件的直接下级,即板件
  3652. ld_cubage = ld_cubage + dw_1.Object.cubage[ll_j] * dw_1.Object.u_prdpf_sonscale[ll_j]
  3653. ld_weight = ld_weight + dw_1.Object.weight_cmp[ll_j] * dw_1.Object.u_prdpf_sonscale[ll_j]
  3654. ld_qty = ld_qty + dw_1.Object.u_prdpf_sonscale[ll_j]
  3655. ld_length = Max(ld_length,dw_1.Object.Length[ll_j])
  3656. ld_width = Max(ld_width,dw_1.Object.Width[ll_j])
  3657. Next
  3658. arg_s_tran.arr_dec[cnt] = ld_cubage
  3659. arg_s_tran.arr_dec2[cnt] = ld_weight
  3660. arg_s_tran.arr_dec3[cnt] = ld_length
  3661. arg_s_tran.arr_dec4[cnt] = ld_width
  3662. arg_s_tran.arr_dec5[cnt] = ld_qty
  3663. End If
  3664. Next
  3665. If cnt > 0 Then
  3666. OpenWithParm(w_prdpf_padd_packinfo,arg_s_tran)
  3667. End If
  3668. end event
  3669. event ue_old_to_new();Long ll_i,ll_j,ll_k,ll_l,ll_m
  3670. Long ll_row,ll_row_h
  3671. String ls_promode,ls_pfgroup,ls_fengbian,ls_penyou,ls_wenli,ls_paikong,ls_luoji,ls_pfklmode
  3672. Boolean lb_ifhou = False
  3673. Int li_lp_add = 0
  3674. Long cnt
  3675. Long ll_mtrlid_mb
  3676. String unit_a,mtrlsectype_a,zxmtrlmode_a,usermtrlmode_a,piccode_a,mtrlcode_a
  3677. Long mtrltypeid_a,ifselforder_a,ordertype_a,scid_a,dftwrkgrpid_a,mtrlprp_a
  3678. Decimal orderdays_a,buydays_a,wfjgdays_a
  3679. Long mtrlid_a,dftscllwkpid_a,outtype_a
  3680. String ls_dscrp
  3681. Decimal ld_qty
  3682. String ls_wpcode,ls_procode
  3683. Long ll_row_f,ll_row_newmx
  3684. String ls_mtrlcode_ban
  3685. String ls_pfgroupmode
  3686. String ls_promode_lit,ls_promode_all
  3687. String ls_promode_lit_arr[],ls_promode_all_arr[]
  3688. Long ll_mxbt
  3689. s_workpricetable arg_s_mx[],arg_s_empty[]
  3690. s_edit_index_tran arg_s_tran,arg_s_return
  3691. dw_1.AcceptText()
  3692. cnt = 0
  3693. arg_s_tran.b_string = ins_mtrlcode
  3694. For ll_i = 1 To dw_1.RowCount()
  3695. If dw_1.Object.lp[ll_i] <> 1 Or dw_1.Object.u_prdpf_promode[ll_i] = '' Then Continue
  3696. cnt++
  3697. arg_s_tran.arr_string[cnt] = dw_1.Object.u_prdpf_promode[ll_i]
  3698. arg_s_tran.arr_string2[cnt] = dw_1.Object.u_prdpf_pfgroup[ll_i]
  3699. arg_s_tran.arr_string3[cnt] = dw_1.Object.u_prdpf_fengbian[ll_i]
  3700. arg_s_tran.arr_string4[cnt] = dw_1.Object.u_prdpf_penyou[ll_i]
  3701. ls_promode_all = dw_1.Object.u_prdpf_promode[ll_i]
  3702. If Pos(ls_promode_all,'-') > 0 Then
  3703. ls_promode_lit = Mid(ls_promode_all,Pos(ls_promode_all,'-') + 1)
  3704. Else
  3705. ls_promode_lit = ls_promode_all
  3706. End If
  3707. For ll_j = 1 To ll_mxbt
  3708. If ls_promode_lit_arr[ll_j] = ls_promode_lit Then
  3709. MessageBox('系统提示',ls_promode_all+' 与 '+ls_promode_all_arr[ll_j]+' "-"后面部分相同,会导致重复,请先修改')
  3710. Return
  3711. End If
  3712. // If ls_promode_all_arr[ll_j] <> ls_promode_all And ls_promode_lit_arr[ll_j] = ls_promode_lit Then
  3713. // MessageBox('系统提示',ls_promode_all+' 与 '+ls_promode_all_arr[ll_j]+' "-"后面部分相同,会导致重复,请先修改')
  3714. // Return
  3715. // End If
  3716. Next
  3717. ll_mxbt++
  3718. ls_promode_all_arr[ll_mxbt] = ls_promode_all
  3719. ls_promode_lit_arr[ll_mxbt] = ls_promode_lit
  3720. arg_s_tran.arr_string5[cnt] = ls_promode_lit
  3721. Next
  3722. If cnt = 0 Then
  3723. MessageBox('系统提示','没有符合条件的数据(第1层并且部件代号不为空)')
  3724. Return
  3725. End If
  3726. OpenWithParm(w_old_to_new_mtrl,arg_s_tran)
  3727. arg_s_return = Message.PowerObjectParm
  3728. If arg_s_return.b_long = 0 Then Return
  3729. dw_1.SetRedraw(False)
  3730. For ll_i = 1 To dw_1.RowCount()
  3731. If dw_1.Object.lp[ll_i] <> 1 Or dw_1.Object.u_prdpf_promode[ll_i] = '' Then Continue
  3732. ls_promode = dw_1.Object.u_prdpf_promode[ll_i]
  3733. ls_pfgroup = dw_1.Object.u_prdpf_pfgroup[ll_i]
  3734. ls_fengbian = dw_1.Object.u_prdpf_fengbian[ll_i]
  3735. ls_penyou = dw_1.Object.u_prdpf_penyou[ll_i]
  3736. ls_wenli = dw_1.Object.u_prdpf_wenli[ll_i]
  3737. ls_paikong = dw_1.Object.u_prdpf_paikong[ll_i]
  3738. ls_luoji = dw_1.Object.u_prdpf_luoji[ll_i]
  3739. ls_pfklmode = dw_1.Object.u_prdpf_pfklmode[ll_i]
  3740. ls_pfgroupmode = dw_1.Object.u_prdpf_pfgroupmode[ll_i]
  3741. ld_qty = dw_1.Object.u_prdpf_pfgroupqty[ll_i]
  3742. ls_dscrp = dw_1.Object.u_prdpf_dscrp[ll_i]
  3743. //判断是否有后段板
  3744. If ls_fengbian = '' And ls_penyou <> '' Then
  3745. lb_ifhou = True
  3746. li_lp_add = 2
  3747. Else
  3748. lb_ifhou = False
  3749. li_lp_add = 1
  3750. End If
  3751. For ll_j = ll_i To dw_1.RowCount()
  3752. If dw_1.Object.lp[ll_j] = 1 And Pos(dw_1.Object.u_prdpf_pfgroup[ll_j],ls_pfgroup) = 0 Then Exit
  3753. If dw_1.Object.lp[ll_j] = 1 And dw_1.Object.u_prdpf_pfgroup[ll_j] <> ls_pfgroup And Pos(dw_1.Object.u_prdpf_pfgroup[ll_j],'封边') = 0 Then Exit
  3754. dw_1.Object.lp[ll_j] = dw_1.Object.lp[ll_j] + li_lp_add
  3755. If dw_1.Object.u_prdpf_pfgroupqty[ll_j] > 0 Then
  3756. dw_1.Object.u_prdpf_pfgroupqty[ll_j] = 1
  3757. End If
  3758. dw_1.Object.u_prdpf_fengbian[ll_j] = ''
  3759. dw_1.Object.u_prdpf_penyou[ll_j] = ''
  3760. dw_1.Object.u_prdpf_wenli[ll_j] = ''
  3761. dw_1.Object.u_prdpf_paikong[ll_j] = ''
  3762. dw_1.Object.u_prdpf_luoji[ll_j] = ''
  3763. dw_1.Object.u_prdpf_pfklmode[ll_j] = ''
  3764. dw_1.Object.u_prdpf_pfgroupmode[ll_j] = ''
  3765. Next
  3766. ll_row = dw_1.InsertRow(ll_i)
  3767. dw_1.Object.u_mtrldef_mtrlid[ll_row] = 0
  3768. dw_1.Object.ifnewadd[ll_row] = 1
  3769. dw_1.Object.u_prdpf_sonpfcode[ll_row] = '[常规]'
  3770. dw_1.Object.iflock[ll_row] = 0
  3771. If lb_ifhou Then
  3772. dw_1.Object.lp[ll_row] = 2
  3773. Else
  3774. dw_1.Object.lp[ll_row] = 1
  3775. End If
  3776. ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode+'_P'
  3777. // dw_1.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode_ban //ins_mtrlcode + '_' + ls_promode+'_P'
  3778. // dw_1.Object.u_mtrldef_mtrlname[ll_row] = ls_pfgroup
  3779. dw_1.Object.u_mtrldef_mtrlmode[ll_row] = ls_pfgroupmode
  3780. dw_1.Object.u_mtrldef_bantype[ll_row] = 1
  3781. dw_1.Object.u_mtrldef_mtrlorigin[ll_row] = 0
  3782. dw_1.Object.u_mtrldef_mtrlprp[ll_row] = 0
  3783. dw_1.Object.u_mtrldef_ifselforder[ll_row] = 2
  3784. dw_1.Object.u_prdpf_pfgroupqty[ll_row] = ld_qty
  3785. dw_1.Object.u_prdpf_sonscale[ll_row] = ld_qty
  3786. dw_1.Object.u_prdpf_dscrp[ll_row] = ls_dscrp
  3787. dw_1.Object.u_mtrldef_ban_wenli[ll_row] = ls_wenli
  3788. dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = ls_fengbian
  3789. dw_1.Object.u_mtrldef_ban_paikong[ll_row] = ls_paikong
  3790. dw_1.Object.u_mtrldef_ban_luoji[ll_row] = ls_luoji
  3791. dw_1.Object.u_mtrldef_ban_penyou[ll_row] = ls_penyou
  3792. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = ls_dscrp
  3793. dw_1.Object.u_mtrldef_ban_promode[ll_row] = ls_promode
  3794. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = ls_pfklmode
  3795. // 查询模板编码
  3796. ll_mtrlid_mb = 0
  3797. For ll_k = 1 To UpperBound(arg_s_return.arr_string)
  3798. If ls_promode = arg_s_return.arr_string[ll_k] And ls_pfgroup = arg_s_return.arr_string2[ll_k] And arg_s_return.arr_long2[ll_k] = 0 Then
  3799. ll_mtrlid_mb = arg_s_return.arr_long[ll_k]
  3800. dw_1.Object.u_mtrldef_mtrlcode[ll_row] = arg_s_return.arr_string3[ll_k]
  3801. dw_1.Object.u_mtrldef_mtrlname[ll_row] = arg_s_return.arr_string4[ll_k]
  3802. End If
  3803. Next
  3804. If ll_mtrlid_mb > 0 Then
  3805. Select unit,
  3806. mtrltypeid,
  3807. mtrlsectype,
  3808. zxmtrlmode,
  3809. usermtrlmode,
  3810. piccode,
  3811. ifselforder,
  3812. ordertype,
  3813. scid,
  3814. dftwrkgrpid,
  3815. orderdays,
  3816. buydays,
  3817. wfjgdays,
  3818. dftscllwkpid,
  3819. mtrlprp,
  3820. outtype,
  3821. mtrlcode
  3822. Into :unit_a,
  3823. :mtrltypeid_a,
  3824. :mtrlsectype_a,
  3825. :zxmtrlmode_a,
  3826. :usermtrlmode_a,
  3827. :piccode_a,
  3828. :ifselforder_a,
  3829. :ordertype_a,
  3830. :scid_a,
  3831. :dftwrkgrpid_a,
  3832. :orderdays_a,
  3833. :buydays_a,
  3834. :wfjgdays_a,
  3835. :dftscllwkpid_a,
  3836. :mtrlprp_a,
  3837. :outtype_a,
  3838. :mtrlcode_a
  3839. From u_mtrldef
  3840. Where mtrlid = :ll_mtrlid_mb;
  3841. If sqlca.SQLCode = 0 Then
  3842. dw_1.Object.u_mtrldef_unit[ll_row] = unit_a
  3843. dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = mtrltypeid_a
  3844. dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype_a
  3845. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode_a
  3846. dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode_a
  3847. dw_1.Object.u_mtrldef_piccode[ll_row] = piccode_a
  3848. dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder_a
  3849. dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype_a
  3850. dw_1.Object.u_mtrldef_scid[ll_row] = scid_a
  3851. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = dftwrkgrpid_a
  3852. dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays_a
  3853. dw_1.Object.u_mtrldef_buydays[ll_row] = buydays_a
  3854. dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays_a
  3855. dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp_a
  3856. dw_1.Object.u_mtrldef_outtype[ll_row] = outtype_a
  3857. dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = dftscllwkpid_a
  3858. dw_1.Object.mb_mtrlcode[ll_row] = mtrlcode_a
  3859. dw_1.Object.mb_mtrlid[ll_row] = ll_mtrlid_mb
  3860. End If
  3861. End If
  3862. //处理工价表(如果有模板编码,使用模板编码的工价表,并按[cbx_wp_pack 按清单说明自动生成包件工价表]决定是否解释清单备注到工价表)
  3863. dw_2.Reset()
  3864. If ll_mtrlid_mb > 0 Then
  3865. ls_wpcode = f_get_dft_wp(ll_mtrlid_mb)
  3866. dw_2.Retrieve(ll_mtrlid_mb,ls_wpcode)
  3867. End If
  3868. If cbx_wp_pack.Checked Then
  3869. If Trim(ls_dscrp) <> '' Then
  3870. arg_s_mx = arg_s_empty
  3871. f_cmp_proname(ls_dscrp,arg_s_mx)
  3872. For ll_k = 1 To UpperBound(arg_s_mx)
  3873. cnt++
  3874. // ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode + '_' + ls_promode+'"',1,dw_2.RowCount())
  3875. ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode+'"',1,dw_2.RowCount())
  3876. If ll_row_f = 0 Then
  3877. //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码
  3878. //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码
  3879. //2014-10-28 增加需求:如果工序有定义工价公式的,导入时将默认工式导入到工价表的工价公式
  3880. If cbx_wp_add.Checked Then
  3881. ll_row_newmx = dw_2.InsertRow(0)
  3882. dw_2.Object.proorder[ll_row_newmx] = cnt
  3883. dw_2.Object.procode[ll_row_newmx] = arg_s_mx[ll_k].procode // + '_' + ls_promode
  3884. dw_2.Object.u_sc_workprice_proname[ll_row_newmx] = arg_s_mx[ll_k].proname // + '_' + ls_pfgroup
  3885. dw_2.Object.wrkgrpid[ll_row_newmx] = arg_s_mx[ll_k].wrkgrpid
  3886. dw_2.Object.u_sc_workprice_pricestr[ll_row_newmx] = arg_s_mx[ll_k].pricestr
  3887. If Trim(arg_s_mx[ll_k].pricestr) <> '' Then
  3888. dw_2.Object.workprice[ll_row_newmx] = 0
  3889. Else
  3890. dw_2.Object.workprice[ll_row_newmx] = arg_s_mx[ll_k].workprice
  3891. End If
  3892. dw_2.Object.workqty[ll_row_newmx] = 1
  3893. dw_2.Object.lsxtype[ll_row_newmx] = 1
  3894. End If
  3895. Else
  3896. dw_2.Object.wrkgrpid[ll_row_f] = arg_s_mx[ll_k].wrkgrpid
  3897. dw_2.Object.u_sc_workprice_pricestr[ll_row_f] = arg_s_mx[ll_k].pricestr
  3898. If Trim(arg_s_mx[ll_k].pricestr) <> '' Then
  3899. dw_2.Object.workprice[ll_row_f] = 0
  3900. Else
  3901. dw_2.Object.workprice[ll_row_f] = arg_s_mx[ll_k].workprice
  3902. End If
  3903. End If
  3904. Next
  3905. End If
  3906. End If
  3907. ll_m = 0
  3908. For ll_l = 1 To dw_2.RowCount()
  3909. ls_procode = dw_2.Object.procode[ll_l]
  3910. dw_2.Object.u_mtrldef_mtrlcode[ll_l] = ls_mtrlcode_ban
  3911. dw_2.AcceptText()
  3912. If dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_ban + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 Then Continue
  3913. ll_m++
  3914. dw_2.RowsCopy (ll_l,ll_l,Primary!,dw_copy,ll_m,Primary!)
  3915. Next
  3916. dw_1.Object.ifmod_wp[ll_row] = 1
  3917. /// //
  3918. If lb_ifhou Then
  3919. ll_row_h = dw_1.InsertRow(ll_row)
  3920. dw_1.Object.u_mtrldef_mtrlid[ll_row_h] = 0
  3921. dw_1.Object.ifnewadd[ll_row_h] = 1
  3922. dw_1.Object.u_prdpf_sonpfcode[ll_row_h] = '[常规]'
  3923. dw_1.Object.iflock[ll_row_h] = 0
  3924. dw_1.Object.lp[ll_row_h] = 1
  3925. // dw_1.Object.u_mtrldef_mtrlcode[ll_row_h] = ins_mtrlcode + '_' + ls_promode
  3926. // dw_1.Object.u_mtrldef_mtrlname[ll_row_h] = ls_pfgroup+'(后段)'
  3927. dw_1.Object.u_mtrldef_mtrlmode[ll_row_h] = ls_pfgroupmode
  3928. dw_1.Object.u_mtrldef_bantype[ll_row_h] = 2
  3929. dw_1.Object.u_mtrldef_mtrlorigin[ll_row_h] = 0
  3930. dw_1.Object.u_mtrldef_mtrlprp[ll_row_h] = 0
  3931. dw_1.Object.u_mtrldef_ifselforder[ll_row_h] = 2
  3932. dw_1.Object.u_prdpf_pfgroupqty[ll_row_h] = ld_qty
  3933. dw_1.Object.u_prdpf_sonscale[ll_row_h] = ld_qty
  3934. dw_1.Object.u_prdpf_dscrp[ll_row_h] = ls_dscrp
  3935. dw_1.Object.u_mtrldef_ban_wenli[ll_row_h] = ls_wenli
  3936. dw_1.Object.u_mtrldef_ban_fengbian[ll_row_h] = ls_fengbian
  3937. dw_1.Object.u_mtrldef_ban_paikong[ll_row_h] = ls_paikong
  3938. dw_1.Object.u_mtrldef_ban_luoji[ll_row_h] = ls_luoji
  3939. dw_1.Object.u_mtrldef_ban_penyou[ll_row_h] = ls_penyou
  3940. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_h] = ls_dscrp
  3941. dw_1.Object.u_mtrldef_ban_promode[ll_row_h] = ls_promode
  3942. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_h] = ls_pfklmode
  3943. // 查询模板编码
  3944. ll_mtrlid_mb = 0
  3945. For ll_k = 1 To UpperBound(arg_s_return.arr_string)
  3946. If ls_promode = arg_s_return.arr_string[ll_k] And ls_pfgroup = arg_s_return.arr_string2[ll_k] And arg_s_return.arr_long2[ll_k] = 1 Then
  3947. ll_mtrlid_mb = arg_s_return.arr_long[ll_k]
  3948. dw_1.Object.u_mtrldef_mtrlcode[ll_row_h] = arg_s_return.arr_string3[ll_k]
  3949. dw_1.Object.u_mtrldef_mtrlname[ll_row_h] = arg_s_return.arr_string4[ll_k]
  3950. End If
  3951. Next
  3952. If ll_mtrlid_mb > 0 Then
  3953. Select unit,
  3954. mtrltypeid,
  3955. mtrlsectype,
  3956. zxmtrlmode,
  3957. usermtrlmode,
  3958. piccode,
  3959. ifselforder,
  3960. ordertype,
  3961. scid,
  3962. dftwrkgrpid,
  3963. orderdays,
  3964. buydays,
  3965. wfjgdays,
  3966. dftscllwkpid,
  3967. mtrlprp,
  3968. outtype,
  3969. mtrlcode
  3970. Into :unit_a,
  3971. :mtrltypeid_a,
  3972. :mtrlsectype_a,
  3973. :zxmtrlmode_a,
  3974. :usermtrlmode_a,
  3975. :piccode_a,
  3976. :ifselforder_a,
  3977. :ordertype_a,
  3978. :scid_a,
  3979. :dftwrkgrpid_a,
  3980. :orderdays_a,
  3981. :buydays_a,
  3982. :wfjgdays_a,
  3983. :dftscllwkpid_a,
  3984. :mtrlprp_a,
  3985. :outtype_a,
  3986. :mtrlcode_a
  3987. From u_mtrldef
  3988. Where mtrlid = :ll_mtrlid_mb;
  3989. If sqlca.SQLCode = 0 Then
  3990. dw_1.Object.u_mtrldef_unit[ll_row_h] = unit_a
  3991. dw_1.Object.u_mtrldef_mtrltypeid[ll_row_h] = mtrltypeid_a
  3992. dw_1.Object.u_mtrldef_mtrlsectype[ll_row_h] = mtrlsectype_a
  3993. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_h] = zxmtrlmode_a
  3994. dw_1.Object.u_mtrldef_usermtrlmode[ll_row_h] = usermtrlmode_a
  3995. dw_1.Object.u_mtrldef_piccode[ll_row_h] = piccode_a
  3996. dw_1.Object.u_mtrldef_ifselforder[ll_row_h] = ifselforder_a
  3997. dw_1.Object.u_mtrldef_ordertype[ll_row_h] = ordertype_a
  3998. dw_1.Object.u_mtrldef_scid[ll_row_h] = scid_a
  3999. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_h] = dftwrkgrpid_a
  4000. dw_1.Object.u_mtrldef_orderdays[ll_row_h] = orderdays_a
  4001. dw_1.Object.u_mtrldef_buydays[ll_row_h] = buydays_a
  4002. dw_1.Object.u_mtrldef_wfjgdays[ll_row_h] = wfjgdays_a
  4003. dw_1.Object.u_mtrldef_mtrlprp[ll_row_h] = mtrlprp_a
  4004. dw_1.Object.u_mtrldef_outtype[ll_row_h] = outtype_a
  4005. dw_1.Object.u_PrdPF_wrkgrpid[ll_row_h] = dftscllwkpid_a
  4006. dw_1.Object.mb_mtrlcode[ll_row_h] = mtrlcode_a
  4007. dw_1.Object.mb_mtrlid[ll_row_h] = ll_mtrlid_mb
  4008. End If
  4009. End If
  4010. //处理工价表(如果有模板编码,使用模板编码的工价表,并按[cbx_wp_pack 按清单说明自动生成包件工价表]决定是否解释清单备注到工价表)
  4011. dw_2.Reset()
  4012. If ll_mtrlid_mb > 0 Then
  4013. ls_wpcode = f_get_dft_wp(ll_mtrlid_mb)
  4014. dw_2.Retrieve(ll_mtrlid_mb,ls_wpcode)
  4015. End If
  4016. If cbx_wp_pack.Checked Then
  4017. If Trim(ls_dscrp) <> '' Then
  4018. arg_s_mx = arg_s_empty
  4019. f_cmp_proname(ls_dscrp,arg_s_mx)
  4020. For ll_k = 1 To UpperBound(arg_s_mx)
  4021. cnt++
  4022. // ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode + '_' + ls_promode+'"',1,dw_2.RowCount())
  4023. ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode+'"',1,dw_2.RowCount())
  4024. If ll_row_f = 0 Then
  4025. //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码
  4026. //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码
  4027. If cbx_wp_add.Checked Then
  4028. ll_row_newmx = dw_2.InsertRow(0)
  4029. dw_2.Object.proorder[ll_row_newmx] = cnt
  4030. dw_2.Object.procode[ll_row_newmx] = arg_s_mx[ll_k].procode // + '_' + ls_promode
  4031. dw_2.Object.u_sc_workprice_proname[ll_row_newmx] = arg_s_mx[ll_k].proname // + '_' + ls_pfgroup
  4032. dw_2.Object.wrkgrpid[ll_row_newmx] = arg_s_mx[ll_k].wrkgrpid
  4033. dw_2.Object.u_sc_workprice_pricestr[ll_row_newmx] = arg_s_mx[ll_k].pricestr
  4034. If Trim(arg_s_mx[ll_k].pricestr) <> '' Then
  4035. dw_2.Object.workprice[ll_row_newmx] = 0
  4036. Else
  4037. dw_2.Object.workprice[ll_row_newmx] = arg_s_mx[ll_k].workprice
  4038. End If
  4039. dw_2.Object.workqty[ll_row_newmx] = 1
  4040. dw_2.Object.lsxtype[ll_row_newmx] = 1
  4041. End If
  4042. Else
  4043. dw_2.Object.wrkgrpid[ll_row_f] = arg_s_mx[ll_k].wrkgrpid
  4044. dw_2.Object.u_sc_workprice_pricestr[ll_row_f] = arg_s_mx[ll_k].pricestr
  4045. If Trim(arg_s_mx[ll_k].pricestr) <> '' Then
  4046. dw_2.Object.workprice[ll_row_f] = 0
  4047. Else
  4048. dw_2.Object.workprice[ll_row_f] = arg_s_mx[ll_k].workprice
  4049. End If
  4050. End If
  4051. Next
  4052. End If
  4053. End If
  4054. ll_m = 0
  4055. For ll_l = 1 To dw_2.RowCount()
  4056. ls_procode = dw_2.Object.procode[ll_l]
  4057. dw_2.Object.u_mtrldef_mtrlcode[ll_l] = ls_mtrlcode_ban
  4058. dw_2.AcceptText()
  4059. If dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_ban + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 Then Continue
  4060. ll_m++
  4061. dw_2.RowsCopy (ll_l,ll_l,Primary!,dw_copy,ll_m,Primary!)
  4062. Next
  4063. dw_1.Object.ifmod_wp[ll_row] = 1
  4064. /// //
  4065. End If
  4066. Next
  4067. dw_1.SetRedraw(True)
  4068. end event
  4069. event ue_import_xls_7();// 导入Excel
  4070. If ins_mtrlid = 0 Then
  4071. MessageBox('系统提示','请先选择产品')
  4072. Return
  4073. End If
  4074. Int rslt = 1
  4075. String arg_msg
  4076. DataStore ds_col30
  4077. ds_col30 = Create DataStore
  4078. ds_col30.DataObject = 'dw_col30'
  4079. If f_readxls(ds_col30,arg_msg) <> 1 Then
  4080. rslt = 0
  4081. Goto ext
  4082. End If
  4083. Long ll_lp
  4084. Long ll_row,ll_row_new,ll_row_newmx
  4085. Long cnt
  4086. Long ll_cnt
  4087. Long ll_mtrlid_p
  4088. String ls_mtrlcode_p
  4089. String ls_pfcode
  4090. Long ll_mtrlid
  4091. String ls_mtrlcode
  4092. String ls_mtrlname
  4093. Int li_mtrlprp
  4094. String ls_mtrlmode
  4095. String ls_unit
  4096. String ls_zxmtrlmode
  4097. String ls_mtrlsectype
  4098. Int li_statusflag
  4099. Int li_statustype
  4100. Int li_woodcodeflag
  4101. Int li_woodcodetype
  4102. Int li_pcodeflag
  4103. Int li_pcodetype
  4104. String ls_usermtrlmode
  4105. Int li_Mtrlorigin
  4106. Long ll_dftwrkgrpid
  4107. Long ll_scid
  4108. Long ll_mtrltypeid
  4109. String ls_wrkGrpName
  4110. Decimal ld_sonscale, lde_qty
  4111. Long ll_wrkgrpid_scll
  4112. String ls_col16, ls_col17
  4113. Long ll_newrow
  4114. String ls_promode,ls_pfgroup,ls_pfgroupmode,ls_pfklmode
  4115. Decimal ld_pfgroupqty,lde_qty_mx
  4116. String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou
  4117. String ls_dscrp
  4118. Long ll_modleid
  4119. String ls_modlename
  4120. String ls_pfgroup_p
  4121. String ls_mtrlcode_ban,ls_mtrlname_ban
  4122. Long ll_lp_add,ll_lp_add_p //用于记录增加胚板/后段板后,对应增加的层级数
  4123. String unit_f,mtrlsectype_f,zxmtrlmode_f,usermtrlmode_f,piccode_f
  4124. Long mtrltypeid_f,ifselforder_f,ordertype_f,scid_f,dftwrkgrpid_f,mtrlprp_f
  4125. Decimal orderdays_f,buydays_f,wfjgdays_f
  4126. Long mtrlid_f,dftscllwkpid_f,outtype_f
  4127. String unit_a,mtrlsectype_a,zxmtrlmode_a,usermtrlmode_a,piccode_a
  4128. Long mtrltypeid_a,ifselforder_a,ordertype_a,scid_a,dftwrkgrpid_a,mtrlprp_a
  4129. Decimal orderdays_a,buydays_a,wfjgdays_a
  4130. Long mtrlid_a,dftscllwkpid_a,outtype_a
  4131. String ls_mb_mtrlcode,ls_wpcode
  4132. Boolean lb_ifmb = False //是否有模板编码及是否成功读取模板编码资料
  4133. Boolean lb_ifmb_a = False //后段板 是否有模板编码及是否读取数据成功
  4134. Long ll_k,ll_row_f,ll_l,ll_j
  4135. String ls_procode
  4136. String ls_mb_mtrlcode_p //胚板模板
  4137. String ls_mb_mtrlcode_a //后段板模板
  4138. String ls_direction //摆放方向(文本)
  4139. Int li_direction //摆放方向(数值 0 -横 1-竖)
  4140. String ls_pid //序号(文本)
  4141. Decimal ld_midu,ld_cubage,ld_cubage_cl,ld_length,ld_width,ld_length_cl,ld_width_cl
  4142. String ls_dscrp_mtrl
  4143. s_workpricetable arg_s_mx[],arg_s_empty[]
  4144. If Not cbx_ifreset.Checked Then
  4145. dw_1.Reset()
  4146. //插入产品
  4147. wf_re_mtrl(0)
  4148. End If
  4149. dw_1.SetRedraw(False)
  4150. For ll_row = 8 To ds_col30.RowCount()
  4151. //明细终止标记(部件名称及材料名称都为空)
  4152. If Trim(ds_col30.GetItemString(ll_row,2)) = '' And Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit
  4153. ls_pid = String(ll_row - 7) //Trim(ds_col30.GetItemString(ll_row,1))
  4154. ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,2))
  4155. // ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,14))
  4156. Select mtrlcode,midu Into :ls_mtrlcode,:ld_midu
  4157. From u_mtrldef
  4158. Where mtrlname = :ls_mtrlname;
  4159. If sqlca.SQLCode <> 0 Then ls_mtrlcode = ''
  4160. ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,8)))
  4161. lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,8))) //部件数量
  4162. lde_qty_mx = Dec(Trim(ds_col30.GetItemString(ll_row,8))) //
  4163. ld_cubage = (Dec(Trim(ds_col30.GetItemString(ll_row,5))) * Dec(Trim(ds_col30.GetItemString(ll_row,6))) * Dec(Trim(ds_col30.GetItemString(ll_row,7))) ) / 1000000000
  4164. ld_cubage_cl = (Dec(Trim(ds_col30.GetItemString(ll_row,5))) * Dec(Trim(ds_col30.GetItemString(ll_row,6))) * Dec(Trim(ds_col30.GetItemString(ll_row,7))) ) / 1000000000
  4165. ld_length = Dec(Trim(ds_col30.GetItemString(ll_row,5)))
  4166. ld_width = Dec(Trim(ds_col30.GetItemString(ll_row,6)))
  4167. ld_length_cl = Dec(Trim(ds_col30.GetItemString(ll_row,5)))
  4168. ld_width_cl = Dec(Trim(ds_col30.GetItemString(ll_row,6)))
  4169. ls_dscrp_mtrl = Trim(ds_col30.GetItemString(ll_row,9))
  4170. ls_direction = Trim(ds_col30.GetItemString(ll_row,4))
  4171. If ls_direction = '竖' Then
  4172. li_direction = 1
  4173. Else
  4174. li_direction = 0
  4175. End If
  4176. //模板编码
  4177. ls_mb_mtrlcode = Trim(ds_col30.GetItemString(ll_row,11))
  4178. If IsNull(ld_sonscale) Then ld_sonscale = 0
  4179. If ld_sonscale = 0 Then
  4180. If lde_qty = 0 Then
  4181. ld_sonscale = lde_qty_mx
  4182. Else
  4183. ld_sonscale = lde_qty
  4184. End If
  4185. End If
  4186. ls_promode = Trim(ds_col30.GetItemString(ll_row,10))
  4187. ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,1))
  4188. // ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) + '*'+Trim(ds_col30.GetItemString(ll_row,6))+'*'+Trim(ds_col30.GetItemString(ll_row,7))
  4189. // ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) + '*'+Trim(ds_col30.GetItemString(ll_row,17))+'*'+Trim(ds_col30.GetItemString(ll_row,18))
  4190. ls_pfgroupmode = ''
  4191. ls_pfklmode = ''
  4192. If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then
  4193. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5))
  4194. End If
  4195. If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then
  4196. If Trim(ls_pfgroupmode) <> '' Then
  4197. ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,6))
  4198. Else
  4199. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,6))
  4200. End If
  4201. End If
  4202. If Trim(ds_col30.GetItemString(ll_row,7)) <> '' Then
  4203. If Trim(ls_pfgroupmode) <> '' Then
  4204. ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,7))
  4205. Else
  4206. ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,7))
  4207. End If
  4208. End If
  4209. If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then
  4210. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,5))
  4211. End If
  4212. If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then
  4213. If Trim(ls_pfklmode) <> '' Then
  4214. ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,6))
  4215. Else
  4216. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,6))
  4217. End If
  4218. End If
  4219. If Trim(ds_col30.GetItemString(ll_row,7)) <> '' Then
  4220. If Trim(ls_pfklmode) <> '' Then
  4221. ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,7))
  4222. Else
  4223. ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,7))
  4224. End If
  4225. End If
  4226. ls_fengbian = Trim(ds_col30.GetItemString(ll_row,3))
  4227. ls_dscrp = Trim(ds_col30.GetItemString(ll_row,9))
  4228. //读取胚板模板编码信息
  4229. lb_ifmb = False
  4230. If ls_mb_mtrlcode <> '' Then
  4231. Select unit,
  4232. mtrltypeid,
  4233. mtrlsectype,
  4234. zxmtrlmode,
  4235. usermtrlmode,
  4236. piccode,
  4237. ifselforder,
  4238. ordertype,
  4239. scid,
  4240. dftwrkgrpid,
  4241. orderdays,
  4242. buydays,
  4243. wfjgdays,
  4244. mtrlid,
  4245. dftscllwkpid,
  4246. mtrlprp,
  4247. outtype
  4248. Into :unit_f,
  4249. :mtrltypeid_f,
  4250. :mtrlsectype_f,
  4251. :zxmtrlmode_f,
  4252. :usermtrlmode_f,
  4253. :piccode_f,
  4254. :ifselforder_f,
  4255. :ordertype_f,
  4256. :scid_f,
  4257. :dftwrkgrpid_f,
  4258. :orderdays_f,
  4259. :buydays_f,
  4260. :wfjgdays_f,
  4261. :mtrlid_f,
  4262. :dftscllwkpid_f,
  4263. :mtrlprp_f,
  4264. :outtype_f
  4265. From u_mtrldef
  4266. Where mtrlcode = :ls_mb_mtrlcode;
  4267. If sqlca.SQLCode <> 0 Then
  4268. lb_ifmb = False
  4269. Else
  4270. lb_ifmb = True
  4271. End If
  4272. End If
  4273. If ls_pfgroup <> '' Then
  4274. ll_lp_add = 1
  4275. //增加胚板代码
  4276. If ls_promode <> '' Then
  4277. ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode
  4278. Else
  4279. ls_mtrlcode_ban = ins_mtrlcode + '_part' +ls_pid
  4280. End If
  4281. ls_mtrlname_ban = ls_pfgroup
  4282. If ls_mtrlcode_ban <> "" Then
  4283. cnt = 0
  4284. Select COUNT(*)
  4285. Into :cnt
  4286. From u_mtrldef
  4287. Where (mtrlcode = :ls_mtrlcode_ban)
  4288. And (mtrlorigin = 0);
  4289. If sqlca.SQLCode = -1 Then
  4290. rslt = 0
  4291. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件查询资料定义表失败,' + sqlca.SQLErrText
  4292. Goto ext
  4293. ElseIf sqlca.SQLCode = 100 Then
  4294. cnt = 0
  4295. End If
  4296. If cnt > 1 Then
  4297. rslt = 0
  4298. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件资料定义有' + String(cnt) + '条重复记录'
  4299. Goto ext
  4300. ElseIf cnt = 1 Then //插入部件
  4301. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin
  4302. From u_mtrldef Where mtrlcode = :ls_mtrlcode_ban;
  4303. If sqlca.SQLCode <> 0 Then
  4304. rslt = 0
  4305. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  4306. Goto ext
  4307. End If
  4308. //插入部件
  4309. wf_add_row(ll_mtrlid_p, '', ll_lp_add, lde_qty, arg_msg,ll_row_new)
  4310. dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1
  4311. dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu
  4312. dw_1.Object.cubage[ll_row_new] = ld_cubage
  4313. dw_1.Object.Length[ll_row_new] = ld_length
  4314. dw_1.Object.Width[ll_row_new] = ld_width
  4315. ElseIf cnt = 0 Then //插入新行-部件
  4316. //插入部件
  4317. wf_add_row_null(ls_mtrlname_ban, ll_lp_add, lde_qty, arg_msg,ll_row_new)
  4318. If ll_row_new > 0 Then
  4319. dw_1.Object.u_mtrldef_mtrlcode[ll_row_new] = ls_mtrlcode_ban
  4320. dw_1.Object.u_mtrldef_mtrlorigin[ll_row_new] = 0
  4321. dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = 0
  4322. dw_1.Object.u_mtrldef_unit[ll_row_new] = '块'
  4323. // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_mtrlname_ban
  4324. // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode
  4325. dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty
  4326. dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = '[常规]'
  4327. // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode
  4328. dw_1.Object.u_mtrldef_mtrlmode[ll_row_new] = ls_pfgroupmode
  4329. dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli
  4330. dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian
  4331. dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong
  4332. dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji
  4333. dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou
  4334. dw_1.Object.u_mtrldef_ban_wenli[ll_row_new] = ls_wenli
  4335. dw_1.Object.u_mtrldef_ban_fengbian[ll_row_new] = ls_fengbian
  4336. dw_1.Object.u_mtrldef_ban_paikong[ll_row_new] = ls_paikong
  4337. dw_1.Object.u_mtrldef_ban_luoji[ll_row_new] = ls_luoji
  4338. dw_1.Object.u_mtrldef_ban_penyou[ll_row_new] = ls_penyou
  4339. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_new] = ls_dscrp
  4340. dw_1.Object.u_mtrldef_ban_promode[ll_row_new] = ls_promode
  4341. dw_1.Object.u_mtrldef_ban_direction[ll_row_new] = li_direction
  4342. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_new] = ls_pfklmode
  4343. dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp
  4344. dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = 2
  4345. dw_1.Object.ifnewadd[ll_row_new] = 1
  4346. dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1
  4347. dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu
  4348. dw_1.Object.cubage[ll_row_new] = ld_cubage
  4349. dw_1.Object.Length[ll_row_new] = ld_length
  4350. dw_1.Object.Width[ll_row_new] = ld_width
  4351. dw_1.Object.u_mtrldef_dscrp[ll_row_new] = ls_dscrp_mtrl
  4352. //套用模板编码资料信息
  4353. If lb_ifmb Then
  4354. dw_1.Object.u_mtrldef_unit[ll_row_new] = unit_f
  4355. dw_1.Object.u_mtrldef_mtrltypeid[ll_row_new] = mtrltypeid_f
  4356. dw_1.Object.u_mtrldef_mtrlsectype[ll_row_new] = mtrlsectype_f
  4357. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_new] = zxmtrlmode_f
  4358. dw_1.Object.u_mtrldef_usermtrlmode[ll_row_new] = usermtrlmode_f
  4359. dw_1.Object.u_mtrldef_piccode[ll_row_new] = piccode_f
  4360. dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = ifselforder_f
  4361. dw_1.Object.u_mtrldef_ordertype[ll_row_new] = ordertype_f
  4362. dw_1.Object.u_mtrldef_scid[ll_row_new] = scid_f
  4363. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_new] = dftwrkgrpid_f
  4364. dw_1.Object.u_mtrldef_orderdays[ll_row_new] = orderdays_f
  4365. dw_1.Object.u_mtrldef_buydays[ll_row_new] = buydays_f
  4366. dw_1.Object.u_mtrldef_wfjgdays[ll_row_new] = wfjgdays_f
  4367. dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = mtrlprp_f
  4368. dw_1.Object.u_mtrldef_outtype[ll_row_new] = outtype_f
  4369. dw_1.Object.u_PrdPF_wrkgrpid[ll_row_new] = dftscllwkpid_f
  4370. dw_1.Object.mb_mtrlcode[ll_row_new] = ls_mb_mtrlcode
  4371. dw_1.Object.mb_mtrlid[ll_row_new] = mtrlid_f
  4372. End If
  4373. End If
  4374. End If
  4375. End If
  4376. //增加胚板代码(完)
  4377. End If
  4378. ls_pfgroup_p = ls_pfgroup
  4379. ll_lp_add_p = ll_lp_add
  4380. //插入新行
  4381. cnt = 0
  4382. Select COUNT(*)
  4383. Into :cnt
  4384. From u_mtrldef
  4385. Where u_mtrldef.mtrlcode = :ls_mtrlcode;
  4386. If sqlca.SQLCode = -1 Then
  4387. rslt = 0
  4388. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText
  4389. Goto ext
  4390. ElseIf sqlca.SQLCode = 100 Then
  4391. cnt = 0
  4392. End If
  4393. If ls_pfgroup <> '' Then
  4394. ll_lp = ll_lp_add + 1
  4395. Else
  4396. ll_lp = 1
  4397. End If
  4398. If cnt > 1 Then
  4399. rslt = 0
  4400. arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录'
  4401. Goto ext
  4402. ElseIf cnt = 1 Then //插入部件
  4403. Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin
  4404. From u_mtrldef Where mtrlcode = :ls_mtrlcode;
  4405. If sqlca.SQLCode <> 0 Then
  4406. rslt = 0
  4407. arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  4408. Goto ext
  4409. End If
  4410. //插入材料
  4411. wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new)
  4412. If wf_addmx_row(ll_mtrlid,'',ll_lp + 1,ll_row_new + 1 ,ld_sonscale,arg_msg) = 0 Then
  4413. rslt = 0
  4414. Goto ext
  4415. End If
  4416. ElseIf cnt = 0 Then //插入新行-部件
  4417. //插入材料
  4418. wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new)
  4419. End If
  4420. If ll_row_new > 0 Then
  4421. // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode
  4422. // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_pfgroup
  4423. // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode
  4424. dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty
  4425. dw_1.Object.u_prdpf_pfklmode[ll_row_new] = ls_pfklmode
  4426. dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu
  4427. dw_1.Object.cubage[ll_row_new] = ld_cubage_cl
  4428. dw_1.Object.Length[ll_row_new] = ld_length_cl
  4429. dw_1.Object.Width[ll_row_new] = ld_width_cl
  4430. dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli
  4431. dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian
  4432. dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong
  4433. dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji
  4434. dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou
  4435. dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp
  4436. // If ll_lp = 1 Then
  4437. // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3
  4438. // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1
  4439. // else
  4440. dw_1.Object.u_prdpf_dipztype[ll_row_new] = -1
  4441. dw_1.Object.u_prdpf_ifover[ll_row_new] = 0
  4442. // End If
  4443. End If
  4444. Next
  4445. ext:
  4446. Destroy ds_col30
  4447. dw_1.SetRedraw(True)
  4448. If rslt = 0 Then
  4449. MessageBox('提示',arg_msg)
  4450. End If
  4451. end event
  4452. event ue_del_ch();//勾选删除
  4453. If ins_ifmod_wp Then
  4454. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  4455. Return
  4456. End If
  4457. If ins_ifmod Then
  4458. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  4459. Return
  4460. End If
  4461. Long ll_i,ll_j
  4462. Long ll_row
  4463. Long ll_lp,cnt
  4464. String ls_mtrlcode
  4465. dw_1.AcceptText()
  4466. cnt = dw_1.Find('ch = 1 ',1,dw_1.RowCount())
  4467. If cnt = 0 Then
  4468. If MessageBox('询问','是否确认要执行删除明细操作?',question!,yesno!) = 2 Then Return
  4469. ll_row = dw_1.GetRow()
  4470. If ll_row <= 0 Then
  4471. MessageBox('系统提示','请选择要删除的明细')
  4472. Return
  4473. End If
  4474. If dw_1.Object.lp[ll_row] = 0 Then
  4475. MessageBox('系统提示','主产品资料不能删除')
  4476. Return
  4477. End If
  4478. dw_1.Object.ifdel[ll_row] = 1
  4479. ll_lp = dw_1.Object.lp[ll_row]
  4480. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  4481. //dw_1.SetRedraw(FALSE)
  4482. For ll_i = ll_row + 1 To dw_1.RowCount()
  4483. If dw_1.Object.lp[ll_i] <= ll_lp Then Exit
  4484. dw_1.Object.ifdel[ll_i] = 1
  4485. Next
  4486. dw_1.AcceptText()
  4487. For ll_i = dw_1.RowCount() To 1 Step -1
  4488. If dw_1.Object.ifdel[ll_i] = 1 Then
  4489. dw_1.DeleteRow(ll_i)
  4490. End If
  4491. Next
  4492. //dw_1.SetRedraw(TRUE)
  4493. ins_cnt++
  4494. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.删除物料 '+ ls_mtrlcode +' 及其下级的物料'
  4495. Else
  4496. If MessageBox('询问','是否确认要执行删除选中明细操作?',question!,yesno!) = 2 Then Return
  4497. For ll_i = 1 To dw_1.RowCount()
  4498. If dw_1.Object.ch[ll_i] = 0 Then Continue
  4499. If dw_1.Object.lp[ll_i] = 0 Then Continue
  4500. dw_1.Object.ifdel[ll_i] = 1
  4501. ll_lp = dw_1.Object.lp[ll_i]
  4502. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i]
  4503. For ll_j = ll_i + 1 To dw_1.RowCount()
  4504. If dw_1.Object.lp[ll_j] <= ll_lp Then Exit
  4505. dw_1.Object.ifdel[ll_j] = 1
  4506. Next
  4507. ins_cnt++
  4508. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.删除物料 '+ ls_mtrlcode +' 及其下级的物料'
  4509. Next
  4510. dw_1.AcceptText()
  4511. For ll_j = dw_1.RowCount() To 1 Step -1
  4512. If dw_1.Object.ifdel[ll_j] = 1 Then
  4513. dw_1.DeleteRow(ll_j)
  4514. End If
  4515. Next
  4516. End If
  4517. end event
  4518. event ue_del_this();//删除单级
  4519. If ins_ifmod_wp Then
  4520. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  4521. Return
  4522. End If
  4523. If ins_ifmod Then
  4524. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  4525. Return
  4526. End If
  4527. Long ll_i,ll_j
  4528. Long ll_row
  4529. Long ll_lp,cnt
  4530. String ls_mtrlcode
  4531. dw_1.AcceptText()
  4532. ll_row = dw_1.GetRow()
  4533. If ll_row <= 0 Then
  4534. MessageBox('系统提示','请选择要删除的明细')
  4535. Return
  4536. End If
  4537. If dw_1.Object.lp[ll_row] = 0 Then
  4538. MessageBox('系统提示','主产品资料不能删除')
  4539. Return
  4540. End If
  4541. If MessageBox('询问','是否确认要执行删除当前选中明细操作?',question!,yesno!) = 2 Then Return
  4542. dw_1.Object.ifdel[ll_row] = 1
  4543. ll_lp = dw_1.Object.lp[ll_row]
  4544. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  4545. dw_1.SetRedraw(FALSE)
  4546. For ll_i = ll_row + 1 To dw_1.RowCount()
  4547. If dw_1.Object.lp[ll_i] <= ll_lp Then Exit
  4548. dw_1.Object.lp[ll_i] = dw_1.Object.lp[ll_i] - 1
  4549. Next
  4550. dw_1.AcceptText()
  4551. dw_1.DeleteRow(ll_row)
  4552. dw_1.SetRedraw(TRUE)
  4553. ins_cnt++
  4554. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.删除物料 '+ ls_mtrlcode +' ,其下级物料层级上移'
  4555. end event
  4556. event ue_add_up();If ins_ifmod_wp Then
  4557. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  4558. Return
  4559. End If
  4560. If ins_ifmod Then
  4561. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  4562. Return
  4563. End If
  4564. Long ll_i
  4565. String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg
  4566. Long ll_row,ll_row_add
  4567. Long ll_pmtrlid,ll_lp
  4568. Long ll_mtrlid_pf
  4569. String arg_msg_str
  4570. ll_row = dw_1.GetRow()
  4571. If ll_row > 0 Then
  4572. ll_pmtrlid = dw_1.Object.pmtrlid[ll_row]
  4573. ll_lp = dw_1.Object.lp[ll_row]
  4574. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  4575. If ll_lp = 0 Then
  4576. MessageBox('系统提示','主产品不能增上级')
  4577. Return
  4578. End If
  4579. Else
  4580. MessageBox('系统提示','请先选择要增加上级的明细')
  4581. Return
  4582. End If
  4583. If Not IsValid(w_mtrldef_edit) Then
  4584. s_edit_index_tran s_ch_tran //传递参数使用
  4585. s_ch_tran.if_retrieve_all = False //是否一次retrieve所有行
  4586. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  4587. s_ch_tran.arg_pkid = 0 //目标定位pkid (备用)
  4588. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  4589. s_ch_tran.if_select_all = False
  4590. s_ch_tran.b_long = 0
  4591. s_ch_tran.c_long = -1
  4592. s_ch_tran.f_long = 1
  4593. This.Enabled = False
  4594. OpenWithParm(w_mtrldef_edit,s_ch_tran)
  4595. This.Enabled = True
  4596. s_mtrldef_array s_inscust
  4597. s_inscust = Message.PowerObjectParm
  4598. dw_1.SetRedraw(False)
  4599. If UpperBound(s_inscust.mtrlid) > 0 Then
  4600. If s_inscust.mtrlorigin[1] = 2 Then
  4601. dw_1.SetRedraw(True)
  4602. MessageBox('系统提示','不能选择采购类的物料作为上级')
  4603. Return
  4604. End If
  4605. ll_mtrlid_pf = s_inscust.mtrlid[1]
  4606. If ll_mtrlid_pf > 0 Then
  4607. ls_pfcode = f_get_dft_pf(ll_mtrlid_pf)
  4608. If wf_addmx_up(ll_mtrlid_pf,ls_pfcode,ll_pmtrlid,ll_lp,ll_row,arg_msg) = 0 Then
  4609. dw_1.SetRedraw(True)
  4610. arg_msg_str = arg_msg_str + arg_msg +'~r~n'
  4611. MessageBox('Error',arg_msg_str)
  4612. Return
  4613. End If
  4614. ins_cnt++
  4615. If ls_mtrlcode <> '' Then
  4616. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ls_mtrlcode+' 增加上级物料 '+s_inscust.mtrlcode[1]
  4617. Else
  4618. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust.mtrlcode[1]
  4619. End If
  4620. End If
  4621. End If
  4622. dw_1.SetRedraw(True)
  4623. End If
  4624. This.SetFocus()
  4625. end event
  4626. public function integer wf_face ();IF ins_ifmod THEN
  4627. cb_save_bcp.Enabled = TRUE
  4628. cb_mod_bcp.Text = '放弃'
  4629. cb_mod_bcp.normalpicname = 'Undo.bmp'
  4630. cb_other_bom.Enabled = FALSE
  4631. cb_add_mtrl.Enabled = FALSE
  4632. cb_save.Enabled = FALSE
  4633. cb_moban.Enabled = TRUE
  4634. cb_autocode.enabled = true
  4635. ELSE
  4636. cb_save_bcp.Enabled = FALSE
  4637. cb_mod_bcp.Text = '编辑半成品'
  4638. cb_mod_bcp.normalpicname = 'open.bmp'
  4639. cb_other_bom.Enabled = TRUE
  4640. cb_add_mtrl.Enabled = TRUE
  4641. cb_save.Enabled = TRUE
  4642. cb_moban.Enabled = FALSE
  4643. cb_autocode.enabled = false
  4644. END IF
  4645. cb_mod_bcp.of_init_draw()
  4646. cb_mod_bcp.of_paint()
  4647. cb_mod_bcp.TriggerEvent('ue_textchange')
  4648. RETURN 1
  4649. end function
  4650. public function integer wf_checkrand (ref string arg_msg);Long i,j
  4651. Int rslt = 1
  4652. Long ll_lp
  4653. dw_1.AcceptText()
  4654. FOR i = 2 TO dw_1.RowCount()
  4655. IF dw_1.Object.u_mtrldef_mtrlcode[i] = ins_mtrlcode THEN
  4656. dw_1.SelectRow(0,FALSE)
  4657. dw_1.SetRow(i)
  4658. dw_1.SelectRow(i,TRUE)
  4659. rslt = 0
  4660. arg_msg = '发现闭环,在第'+String(i)+'行,物料:'+dw_1.Object.u_mtrldef_mtrlcode[i]
  4661. GOTO ext
  4662. END IF
  4663. NEXT
  4664. FOR i = 1 TO dw_1.RowCount()
  4665. ll_lp = dw_1.Object.lp[i]
  4666. FOR j = i + 1 TO dw_1.RowCount()
  4667. IF dw_1.Object.lp[j] <= ll_lp THEN EXIT
  4668. IF dw_1.Object.u_mtrldef_mtrlcode[j] = dw_1.Object.u_mtrldef_mtrlcode[i] THEN
  4669. dw_1.SelectRow(0,FALSE)
  4670. dw_1.SetRow(j)
  4671. dw_1.SelectRow(j,TRUE)
  4672. rslt = 0
  4673. arg_msg = '发现闭环,在第'+String(j)+'行,物料:'+dw_1.Object.u_mtrldef_mtrlcode[j]
  4674. GOTO ext
  4675. END IF
  4676. NEXT
  4677. NEXT
  4678. ext:
  4679. RETURN rslt
  4680. end function
  4681. public function integer wf_save (ref string arg_msg);Int rslt = 1
  4682. Long ll_i,ll_j,ll_k
  4683. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode
  4684. String ls_mtrlsectype,ls_zxmtrlmode,ls_usermtrlmode
  4685. Decimal ld_orderdays,ld_buydays,ld_wfjgdays
  4686. Long ll_mtrlid,ll_mtrlid_copy
  4687. Long cnt
  4688. Long ll_lp
  4689. String ls_code,ls_name,ls_ename,ls_dscrp
  4690. Long ll_type,ll_DefaultPZ,ll_ifzj
  4691. Decimal ld_planprice
  4692. Long ll_new_cid
  4693. Decimal ld_capacity,ld_capaparm
  4694. Long ll_mtrltypeid,ll_scid,ll_dftwrkgrpid
  4695. String ls_piccode
  4696. Int li_mtrlorigin, li_mtrlprp
  4697. Long ll_mtrlid_wp
  4698. Int li_ifselforder,li_ordertype
  4699. Long printid_wkp
  4700. String wkpname_wkp, groupstr_wkp
  4701. Long swkpid_wkp, owkpid_wkp, iflast_wkp
  4702. Decimal lasthour_wkp, lastdays_wkp,minlasthour_wkp, uprate_wkp
  4703. String dscrp_wkp
  4704. Long lp_wkp, printlp_wkp
  4705. Decimal workhour_wkp, beforehour_wkp, afterhour_wkp
  4706. Long workgroupid_wkp
  4707. String gydscrp_wkp
  4708. String ls_pfcode
  4709. long ll_mb_mtrlid
  4710. String ls_wpcode
  4711. Decimal ld_sonloss_p,ld_sondecloss_p,ld_cmpqty_p,ld_qty
  4712. Long ll_modleid
  4713. String ls_modlename
  4714. String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou,ls_azcode
  4715. Long ll_bantype
  4716. Int li_outtype
  4717. Decimal ld_midu
  4718. String ls_mtrlcode_new_arr[]
  4719. Long ll_cnt_new
  4720. string ls_dscrp_mtrl
  4721. s_mtrldef arg_s_mtrl
  4722. s_mtrldef_ban arg_s_ban
  4723. dw_1.AcceptText()
  4724. For ll_i = 1 To dw_1.RowCount()
  4725. If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 Then
  4726. If dw_1.Object.ifnewadd[ll_i] = 0 Then
  4727. dw_1.SetRow(ll_i)
  4728. dw_1.ScrollToRow(ll_i)
  4729. dw_1.SelectRow(0,False)
  4730. dw_1.SelectRow(ll_i,True)
  4731. arg_msg = '查询物料原资料失败,请选择正确的物料(可执行编辑半成品功能)'
  4732. rslt = 0
  4733. Goto ext
  4734. End If
  4735. ll_lp = dw_1.Object.lp[ll_i]
  4736. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i]
  4737. ls_mtrlname = dw_1.Object.u_mtrldef_mtrlname[ll_i]
  4738. ls_unit = dw_1.Object.u_mtrldef_unit[ll_i]
  4739. ls_mtrlmode = dw_1.Object.u_mtrldef_mtrlmode[ll_i]
  4740. ls_mtrlsectype = dw_1.Object.u_mtrldef_mtrlsectype[ll_i]
  4741. ls_zxmtrlmode = dw_1.Object.u_mtrldef_zxmtrlmode[ll_i]
  4742. ls_usermtrlmode = dw_1.Object.u_mtrldef_usermtrlmode[ll_i]
  4743. ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_i]
  4744. ld_orderdays = dw_1.Object.u_mtrldef_orderdays[ll_i]
  4745. ld_buydays = dw_1.Object.u_mtrldef_buydays[ll_i]
  4746. ld_wfjgdays = dw_1.Object.u_mtrldef_wfjgdays[ll_i]
  4747. ll_mtrltypeid = dw_1.Object.u_mtrldef_mtrltypeid[ll_i]
  4748. ll_scid = dw_1.Object.u_mtrldef_scid[ll_i]
  4749. ll_dftwrkgrpid = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_i]
  4750. li_mtrlorigin = dw_1.Object.u_mtrldef_mtrlorigin[ll_i]
  4751. li_mtrlprp = dw_1.Object.u_mtrldef_mtrlprp[ll_i]
  4752. ls_piccode = dw_1.Object.u_mtrldef_piccode[ll_i]
  4753. li_ifselforder = dw_1.Object.u_mtrldef_ifselforder[ll_i]
  4754. li_ordertype = dw_1.Object.u_mtrldef_ordertype[ll_i]
  4755. ls_pfcode = dw_1.Object.u_prdpf_sonpfcode[ll_i]
  4756. ll_mb_mtrlid = dw_1.Object.mb_mtrlid[ll_i]
  4757. ll_bantype = dw_1.Object.u_mtrldef_bantype[ll_i]
  4758. li_outtype = dw_1.Object.u_mtrldef_outtype[ll_i]
  4759. ld_midu = dw_1.Object.u_mtrldef_midu[ll_i]
  4760. ls_dscrp_mtrl = dw_1.Object.u_mtrldef_dscrp[ll_i]
  4761. For ll_k = 1 To ll_cnt_new
  4762. If ls_mtrlcode = ls_mtrlcode_new_arr[ll_k] Then
  4763. Goto _next_row
  4764. End If
  4765. Next
  4766. If ll_mtrlid > 0 and ll_mb_mtrlid = 0 Then
  4767. Select u_mtrldef.mtrlname,
  4768. u_mtrldef.mtrlsectype,
  4769. u_mtrldef.mtrlmode,
  4770. u_mtrldef.unit,
  4771. u_mtrldef.dscrp,
  4772. u_mtrldef.lmbuyprice,
  4773. u_mtrldef.LMsaleprice,
  4774. u_mtrldef.prdpackcode,
  4775. u_mtrldef.packqty,
  4776. u_mtrldef.zxmtrlmode,
  4777. u_mtrldef.unit_buy,
  4778. u_mtrldef.rate_buy,
  4779. u_mtrldef.unit_scll,
  4780. u_mtrldef.rate_scll,
  4781. u_mtrldef.unit_sale,
  4782. u_mtrldef.rate_sale,
  4783. u_mtrldef.orderdays,
  4784. u_mtrldef.buydays,
  4785. u_mtrldef.wfjgdays,
  4786. u_mtrldef.minbuyqty,
  4787. u_mtrldef.aheaddays,
  4788. u_mtrldef.ifselforder,
  4789. u_mtrldef.mprice,
  4790. u_mtrldef.Mtrlorigin,
  4791. u_mtrldef.mtrlkind,
  4792. u_mtrldef.lspacklimit,
  4793. u_mtrldef.MaxQTY,
  4794. u_mtrldef.MinQTY,
  4795. u_mtrldef.isuse,
  4796. u_mtrldef.mtrltypeid,
  4797. u_mtrldef.barcode,
  4798. u_mtrldef.net_weight,
  4799. u_mtrldef.gross_weight,
  4800. u_mtrldef.cubage,
  4801. u_mtrldef.mtrlengname,
  4802. u_mtrldef.scllflag,
  4803. u_mtrldef.dftwrkGrpid,
  4804. u_mtrldef.scid,
  4805. u_mtrldef.ifscid,
  4806. u_mtrldef.mtrlprp,
  4807. u_mtrldef.uprate,
  4808. u_mtrldef.upqty,
  4809. u_mtrldef.ordertype,
  4810. u_mtrldef.statusflag,
  4811. u_mtrldef.statustype,
  4812. u_mtrldef.woodcodeflag,
  4813. u_mtrldef.woodcodetype,
  4814. u_mtrldef.pcodeflag,
  4815. u_mtrldef.pcodetype,
  4816. u_mtrldef.mtrlarea,
  4817. u_mtrldef.dftsptid,
  4818. u_mtrldef.mtrlarea1,
  4819. u_mtrldef.mtrlarea2,
  4820. u_mtrldef.iflimitprice,
  4821. u_mtrldef.configcode,
  4822. u_mtrldef.autoinstall,
  4823. u_mtrldef.ifpack,
  4824. u_mtrldef.configname,
  4825. u_mtrldef.ifpackpro,
  4826. u_mtrldef.mtrlcolor,
  4827. u_mtrldef.configcodetype,
  4828. u_mtrldef.ifautodd,
  4829. u_mtrldef.iflljg,
  4830. u_mtrldef.ifunit,
  4831. u_mtrldef.ifpackpz,
  4832. u_mtrldef.ifpacktype,
  4833. u_mtrldef.scllrate,
  4834. u_mtrldef.cmpqty,
  4835. u_mtrldef.usermtrlmode,
  4836. u_mtrldef.storagetype,
  4837. u_mtrldef.ifmtrlcuscode,
  4838. u_mtrldef.mrptype,
  4839. u_mtrldef.mrparg,
  4840. u_mtrldef.updownprice,
  4841. u_mtrldef.outtype,
  4842. u_mtrldef.ifpricepack,
  4843. u_mtrldef.gydscrp,
  4844. u_mtrldef.downrate,
  4845. u_mtrldef.ifcustom,
  4846. u_mtrldef.buyunit,
  4847. u_mtrldef.wfjgunit,
  4848. u_mtrldef.scllunit,
  4849. u_mtrldef.saleunit,
  4850. u_mtrldef.buydec,
  4851. u_mtrldef.wfjgdec,
  4852. u_mtrldef.sclldec,
  4853. u_mtrldef.saledec,
  4854. u_mtrldef.issuliao,
  4855. isnull(u_mtrldef_sl.period,0),
  4856. u_mtrldef.ifenough,
  4857. u_mtrldef.capacity,
  4858. u_mtrldef.expday,
  4859. u_mtrldef.capaparm,
  4860. u_mtrldef.sctaskqty,
  4861. u_mtrldef.minarg,
  4862. u_mtrldef.maxarg,
  4863. u_mtrldef.ifmrppackpf,
  4864. u_mtrldef.maxzjday,
  4865. u_mtrldef.eoq,
  4866. u_mtrldef.splitrate,
  4867. u_mtrldef.status_check,
  4868. u_mtrldef.woodcode_check,
  4869. u_mtrldef.pcode_check,
  4870. u_mtrldef.maxdays,
  4871. u_mtrldef.mindays,
  4872. u_mtrldef.mrp_unit,
  4873. u_mtrldef.rebuytype,
  4874. u_mtrldef.rebuylot,
  4875. u_mtrldef.ifsendlot,
  4876. u_mtrldef.upddrate,
  4877. u_mtrldef.upddqty,
  4878. u_mtrldef.upsalerate,
  4879. u_mtrldef.upsaleqty,
  4880. u_mtrldef.status_config,
  4881. u_mtrldef.woodcode_config,
  4882. u_mtrldef.pcode_config,
  4883. u_mtrldef.rebuylot,
  4884. u_mtrldef.ifusedeliqty,
  4885. u_mtrldef.pricepztype,
  4886. u_mtrldef.useday,
  4887. u_mtrldef.equiptype,
  4888. u_mtrldef.ifpackpro2,
  4889. isnull(u_mtrldef_sl.sk_mtrlid,0),
  4890. u_mtrldef.ifkl,
  4891. u_mtrldef.ifturn,
  4892. u_mtrldef.iffp,
  4893. u_mtrldef.scllqty,
  4894. u_mtrldef.dftscllwkpid,
  4895. u_mtrldef.piccode,
  4896. u_mtrldef.if_hourpay,
  4897. u_mtrldef.ifmrp,
  4898. u_mtrldef.if_inherit,
  4899. u_mtrldef.groupstr,
  4900. u_mtrldef.groupday,
  4901. u_mtrldef.aps_capacity_type,
  4902. u_mtrldef.scllplan_mode,
  4903. u_mtrldef.ifcheck,
  4904. u_mtrldef.checkrate,
  4905. u_mtrldef.chkpassrate,
  4906. u_mtrldef.dftcusid,
  4907. u_mtrldef.sendtype,
  4908. u_mtrldef.buy_ceiling,
  4909. u_mtrldef.wfjg_ceiling,
  4910. u_mtrldef.sale_ceiling,
  4911. u_mtrldef.scll_ceiling,
  4912. u_mtrldef.material,
  4913. u_mtrldef.adddec,
  4914. u_mtrldef.ifbarcodefp,
  4915. u_mtrldef.stoppqty,
  4916. u_mtrldef.buy_autoday,
  4917. u_mtrldef.upbuyrate,
  4918. u_mtrldef.upbuyqty,
  4919. u_mtrldef.ifrebuypack,
  4920. u_mtrldef.protype,
  4921. u_mtrldef.buydays_bx,
  4922. u_mtrldef.wfjgdays_bx,
  4923. u_mtrldef.multqty,
  4924. u_mtrldef.multtype,
  4925. u_mtrldef.buyer,
  4926. u_mtrldef.bantype
  4927. Into
  4928. :arg_s_mtrl.mtrlname,
  4929. :arg_s_mtrl.mtrlsectype,
  4930. :arg_s_mtrl.mtrlmode,
  4931. :arg_s_mtrl.unit,
  4932. :arg_s_mtrl.dscrp,
  4933. :arg_s_mtrl.lmbuyprice,
  4934. :arg_s_mtrl.lmsaleprice,
  4935. :arg_s_mtrl.prdpackcode,
  4936. :arg_s_mtrl.packqty,
  4937. :arg_s_mtrl.zxmtrlmode,
  4938. :arg_s_mtrl.unit_buy,
  4939. :arg_s_mtrl.rate_buy,
  4940. :arg_s_mtrl.unit_scll,
  4941. :arg_s_mtrl.rate_scll,
  4942. :arg_s_mtrl.unit_sale,
  4943. :arg_s_mtrl.rate_sale,
  4944. :arg_s_mtrl.orderdays,
  4945. :arg_s_mtrl.buydays,
  4946. :arg_s_mtrl.wfjgdays,
  4947. :arg_s_mtrl.minbuyqty,
  4948. :arg_s_mtrl.aheaddays,
  4949. :arg_s_mtrl.ifselforder,
  4950. :arg_s_mtrl.mprice,
  4951. :arg_s_mtrl.mtrlorigin,
  4952. :arg_s_mtrl.mtrlkind,
  4953. :arg_s_mtrl.lspacklimit,
  4954. :arg_s_mtrl.maxqty,
  4955. :arg_s_mtrl.minqty,
  4956. :arg_s_mtrl.isuse,
  4957. :arg_s_mtrl.mtrltypeid,
  4958. :arg_s_mtrl.barcode,
  4959. :arg_s_mtrl.net_weight,
  4960. :arg_s_mtrl.gross_weight,
  4961. :arg_s_mtrl.cubage,
  4962. :arg_s_mtrl.mtrlengname,
  4963. :arg_s_mtrl.scllflag,
  4964. :arg_s_mtrl.dftwrkgrpid,
  4965. :arg_s_mtrl.scid,
  4966. :arg_s_mtrl.ifscid,
  4967. :arg_s_mtrl.mtrlprp,
  4968. :arg_s_mtrl.uprate,
  4969. :arg_s_mtrl.upqty,
  4970. :arg_s_mtrl.ordertype,
  4971. :arg_s_mtrl.statusflag,
  4972. :arg_s_mtrl.statustype,
  4973. :arg_s_mtrl.woodcodeflag,
  4974. :arg_s_mtrl.woodcodetype,
  4975. :arg_s_mtrl.pcodeflag,
  4976. :arg_s_mtrl.pcodetype,
  4977. :arg_s_mtrl.mtrlarea,
  4978. :arg_s_mtrl.dftsptid,
  4979. :arg_s_mtrl.mtrlarea1,
  4980. :arg_s_mtrl.mtrlarea2,
  4981. :arg_s_mtrl.iflimitprice,
  4982. :arg_s_mtrl.configcode,
  4983. :arg_s_mtrl.autoinstall,
  4984. :arg_s_mtrl.ifpack,
  4985. :arg_s_mtrl.configname,
  4986. :arg_s_mtrl.ifpackpro,
  4987. :arg_s_mtrl.mtrlcolor,
  4988. :arg_s_mtrl.configcodetype,
  4989. :arg_s_mtrl.ifautodd,
  4990. :arg_s_mtrl.iflljg,
  4991. :arg_s_mtrl.ifunit,
  4992. :arg_s_mtrl.ifpackpz,
  4993. :arg_s_mtrl.ifpacktype,
  4994. :arg_s_mtrl.scllrate,
  4995. :arg_s_mtrl.cmpqty,
  4996. :arg_s_mtrl.usermtrlmode,
  4997. :arg_s_mtrl.storagetype,
  4998. :arg_s_mtrl.ifmtrlcuscode,
  4999. :arg_s_mtrl.mrptype,
  5000. :arg_s_mtrl.mrparg,
  5001. :arg_s_mtrl.updownprice,
  5002. :arg_s_mtrl.outtype,
  5003. :arg_s_mtrl.ifpricepack,
  5004. :arg_s_mtrl.gydscrp,
  5005. :arg_s_mtrl.downrate,
  5006. :arg_s_mtrl.ifcustom,
  5007. :arg_s_mtrl.buyunit,
  5008. :arg_s_mtrl.wfjgunit,
  5009. :arg_s_mtrl.scllunit,
  5010. :arg_s_mtrl.saleunit,
  5011. :arg_s_mtrl.buydec,
  5012. :arg_s_mtrl.wfjgdec,
  5013. :arg_s_mtrl.sclldec,
  5014. :arg_s_mtrl.saledec,
  5015. :arg_s_mtrl.issuliao,
  5016. :arg_s_mtrl.period,
  5017. :arg_s_mtrl.ifenough,
  5018. :arg_s_mtrl.capacity,
  5019. :arg_s_mtrl.expday,
  5020. :arg_s_mtrl.capaparm,
  5021. :arg_s_mtrl.sctaskqty,
  5022. :arg_s_mtrl.minarg,
  5023. :arg_s_mtrl.maxarg,
  5024. :arg_s_mtrl.ifmrppackpf,
  5025. :arg_s_mtrl.maxzjday,
  5026. :arg_s_mtrl.eoq,
  5027. :arg_s_mtrl.splitrate,
  5028. :arg_s_mtrl.status_check,
  5029. :arg_s_mtrl.woodcode_check,
  5030. :arg_s_mtrl.pcode_check,
  5031. :arg_s_mtrl.maxdays,
  5032. :arg_s_mtrl.mindays,
  5033. :arg_s_mtrl.mrp_unit,
  5034. :arg_s_mtrl.rebuytype,
  5035. :arg_s_mtrl.rebuylot,
  5036. :arg_s_mtrl.ifsendlot,
  5037. :arg_s_mtrl.upddrate,
  5038. :arg_s_mtrl.upddqty,
  5039. :arg_s_mtrl.upsalerate,
  5040. :arg_s_mtrl.upsaleqty,
  5041. :arg_s_mtrl.status_config,
  5042. :arg_s_mtrl.woodcode_config,
  5043. :arg_s_mtrl.pcode_config,
  5044. :arg_s_mtrl.rebuylot,
  5045. :arg_s_mtrl.ifusedeliqty,
  5046. :arg_s_mtrl.pricepztype,
  5047. :arg_s_mtrl.useday,
  5048. :arg_s_mtrl.equiptype,
  5049. :arg_s_mtrl.ifpackpro2,
  5050. :arg_s_mtrl.skmtrlid,
  5051. :arg_s_mtrl.ifkl,
  5052. :arg_s_mtrl.ifturn,
  5053. :arg_s_mtrl.iffp,
  5054. :arg_s_mtrl.scllqty,
  5055. :arg_s_mtrl.dftscllwkpid,
  5056. :arg_s_mtrl.piccode,
  5057. :arg_s_mtrl.if_hourpay,
  5058. :arg_s_mtrl.ifmrp,
  5059. :arg_s_mtrl.if_inherit,
  5060. :arg_s_mtrl.groupstr,
  5061. :arg_s_mtrl.groupday,
  5062. :arg_s_mtrl.aps_capacity_type,
  5063. :arg_s_mtrl.scllplan_mode,
  5064. :arg_s_mtrl.ifcheck,
  5065. :arg_s_mtrl.checkrate,
  5066. :arg_s_mtrl.chkpassrate,
  5067. :arg_s_mtrl.dftcusid,
  5068. :arg_s_mtrl.sendtype,
  5069. :arg_s_mtrl.buy_ceiling,
  5070. :arg_s_mtrl.wfjg_ceiling,
  5071. :arg_s_mtrl.sale_ceiling,
  5072. :arg_s_mtrl.scll_ceiling,
  5073. :arg_s_mtrl.material,
  5074. :arg_s_mtrl.adddec,
  5075. :arg_s_mtrl.ifbarcodefp,
  5076. :arg_s_mtrl.stoppqty,
  5077. :arg_s_mtrl.buy_autoday,
  5078. :arg_s_mtrl.upbuyrate,
  5079. :arg_s_mtrl.upbuyqty,
  5080. :arg_s_mtrl.ifrebuypack,
  5081. :arg_s_mtrl.protype,
  5082. :arg_s_mtrl.buydays_bx,
  5083. :arg_s_mtrl.wfjgdays_bx,
  5084. :arg_s_mtrl.multqty,
  5085. :arg_s_mtrl.multtype,
  5086. :arg_s_mtrl.buyer,
  5087. :arg_s_mtrl.bantype
  5088. From u_mtrldef LEFT Outer JOIN
  5089. u_mtrldef_sl ON u_mtrldef.mtrlid = u_mtrldef_sl.mtrlid
  5090. Where u_mtrldef.mtrlid = :ll_mtrlid;
  5091. If sqlca.SQLCode <> 0 Then
  5092. arg_msg = '查询物料原资料失败,'+sqlca.SQLErrText
  5093. rslt = 0
  5094. Goto ext
  5095. End If
  5096. If arg_s_mtrl.issuliao = 1 Then
  5097. Select sk_mtrltypeid Into :arg_s_mtrl.sk_mtrltypeid
  5098. From u_mtrldef_sl
  5099. Where mtrlid = :ll_mtrlid;
  5100. If sqlca.SQLCode <> 0 Then
  5101. arg_s_mtrl.sk_mtrltypeid = 0
  5102. End If
  5103. Else
  5104. arg_s_mtrl.sk_mtrltypeid = 0
  5105. End If
  5106. Else //无MTRLID的情况,属性值取默认值
  5107. //如果有模板编码,读取模板编码的属性
  5108. If ll_mb_mtrlid > 0 Then
  5109. f_find_mtrl_by_id_noarr(ll_mb_mtrlid,arg_s_mtrl)
  5110. Else
  5111. arg_s_mtrl.dscrp = ''
  5112. arg_s_mtrl.lmbuyprice = 0
  5113. arg_s_mtrl.LMsaleprice = 0
  5114. arg_s_mtrl.prdpackcode = ''
  5115. arg_s_mtrl.packqty = 0
  5116. arg_s_mtrl.unit_buy = ''
  5117. arg_s_mtrl.rate_buy = 0
  5118. arg_s_mtrl.unit_scll = ''
  5119. arg_s_mtrl.rate_scll = 0
  5120. arg_s_mtrl.unit_sale = ''
  5121. arg_s_mtrl.rate_sale = 0
  5122. arg_s_mtrl.minbuyqty = 0
  5123. arg_s_mtrl.aheaddays = 0
  5124. arg_s_mtrl.ifselforder = 0
  5125. arg_s_mtrl.mprice = 0
  5126. arg_s_mtrl.mtrlkind = 0
  5127. arg_s_mtrl.lspacklimit = 0
  5128. arg_s_mtrl.MaxQTY = 99999
  5129. arg_s_mtrl.MinQTY = 0
  5130. arg_s_mtrl.isuse = 1
  5131. arg_s_mtrl.barcode = ''
  5132. arg_s_mtrl.net_weight = 0
  5133. arg_s_mtrl.gross_weight = 0
  5134. arg_s_mtrl.cubage = 0
  5135. arg_s_mtrl.mtrlengname = ''
  5136. arg_s_mtrl.scllflag = 0
  5137. arg_s_mtrl.ifscid = 0
  5138. arg_s_mtrl.uprate = 0
  5139. arg_s_mtrl.upqty = 0
  5140. arg_s_mtrl.ordertype = 0
  5141. arg_s_mtrl.statusflag = 0
  5142. arg_s_mtrl.statustype = 0
  5143. arg_s_mtrl.woodcodeflag = 0
  5144. arg_s_mtrl.woodcodetype = 0
  5145. arg_s_mtrl.pcodeflag = 0
  5146. arg_s_mtrl.pcodetype = 0
  5147. arg_s_mtrl.mtrlarea = 0
  5148. arg_s_mtrl.dftsptid = 0
  5149. arg_s_mtrl.mtrlarea1 = 0
  5150. arg_s_mtrl.mtrlarea2 = 0
  5151. arg_s_mtrl.iflimitprice = 0
  5152. arg_s_mtrl.configcode = ''
  5153. arg_s_mtrl.autoinstall = 0
  5154. arg_s_mtrl.ifpack = 0
  5155. arg_s_mtrl.configname = ''
  5156. arg_s_mtrl.ifpackpro = 0
  5157. arg_s_mtrl.mtrlcolor = ''
  5158. arg_s_mtrl.configcodetype = 0
  5159. arg_s_mtrl.ifautodd = 0
  5160. arg_s_mtrl.iflljg = 0
  5161. arg_s_mtrl.ifunit = 0
  5162. arg_s_mtrl.ifpackpz = 0
  5163. arg_s_mtrl.ifpacktype = 0
  5164. arg_s_mtrl.scllrate = 0
  5165. arg_s_mtrl.cmpqty = 1
  5166. arg_s_mtrl.storagetype = 0
  5167. arg_s_mtrl.ifmtrlcuscode = 0
  5168. arg_s_mtrl.mrptype = 0
  5169. arg_s_mtrl.mrparg = 5
  5170. arg_s_mtrl.updownprice = 0
  5171. arg_s_mtrl.outtype = 0
  5172. arg_s_mtrl.ifpricepack = 0
  5173. arg_s_mtrl.gydscrp = ''
  5174. arg_s_mtrl.downrate = 0
  5175. arg_s_mtrl.ifcustom = 0
  5176. arg_s_mtrl.buyunit = 0
  5177. arg_s_mtrl.wfjgunit = 0
  5178. arg_s_mtrl.scllunit = 0
  5179. arg_s_mtrl.saleunit = 0
  5180. arg_s_mtrl.buydec = 5
  5181. arg_s_mtrl.wfjgdec = 5
  5182. arg_s_mtrl.sclldec = 5
  5183. arg_s_mtrl.saledec = 5
  5184. arg_s_mtrl.issuliao = 0
  5185. arg_s_mtrl.period = 0
  5186. arg_s_mtrl.ifenough = 0
  5187. arg_s_mtrl.capacity = 0
  5188. arg_s_mtrl.expday = 0
  5189. arg_s_mtrl.capaparm = 1
  5190. arg_s_mtrl.sctaskqty = 0
  5191. arg_s_mtrl.minarg = 0
  5192. arg_s_mtrl.maxarg = 0
  5193. arg_s_mtrl.ifmrppackpf = 0
  5194. arg_s_mtrl.maxzjday = 0
  5195. arg_s_mtrl.eoq = 0
  5196. arg_s_mtrl.splitrate = 0
  5197. arg_s_mtrl.sk_mtrltypeid = 0
  5198. arg_s_mtrl.status_check = 0
  5199. arg_s_mtrl.woodcode_check = 0
  5200. arg_s_mtrl.pcode_check = 0
  5201. arg_s_mtrl.maxdays = 0
  5202. arg_s_mtrl.mindays = 0
  5203. arg_s_mtrl.mrp_unit = 0
  5204. arg_s_mtrl.rebuytype = 0
  5205. arg_s_mtrl.rebuylot = 0
  5206. arg_s_mtrl.ifsendlot = 0
  5207. arg_s_mtrl.upddrate = 0
  5208. arg_s_mtrl.upddqty = 0
  5209. arg_s_mtrl.upsalerate = 0
  5210. arg_s_mtrl.upsaleqty = 0
  5211. arg_s_mtrl.status_config = ''
  5212. arg_s_mtrl.woodcode_config = ''
  5213. arg_s_mtrl.pcode_config = ''
  5214. arg_s_mtrl.rebuylot = 0
  5215. arg_s_mtrl.ifusedeliqty = 0
  5216. arg_s_mtrl.pricepztype = 0
  5217. arg_s_mtrl.useday = 0
  5218. arg_s_mtrl.equiptype = 0
  5219. arg_s_mtrl.ifpackpro2 = 0
  5220. arg_s_mtrl.skmtrlid = 0
  5221. arg_s_mtrl.ifkl = 0
  5222. arg_s_mtrl.ifturn = 0
  5223. arg_s_mtrl.iffp = 0
  5224. arg_s_mtrl.scllqty = 0
  5225. arg_s_mtrl.dftscllwkpid = 0
  5226. arg_s_mtrl.piccode = ''
  5227. arg_s_mtrl.if_hourpay = 0
  5228. arg_s_mtrl.ifmrp = 1
  5229. arg_s_mtrl.if_inherit = 0
  5230. arg_s_mtrl.groupstr = ''
  5231. arg_s_mtrl.groupday = 0
  5232. arg_s_mtrl.aps_capacity_type = ''
  5233. arg_s_mtrl.ifcheck = 0
  5234. arg_s_mtrl.checkrate = 1
  5235. arg_s_mtrl.scllplan_mode = 0
  5236. arg_s_mtrl.chkpassrate = 0
  5237. arg_s_mtrl.dftcusid = 0
  5238. arg_s_mtrl.sendtype = 0
  5239. arg_s_mtrl.buy_ceiling = 0
  5240. arg_s_mtrl.wfjg_ceiling = 0
  5241. arg_s_mtrl.sale_ceiling = 0
  5242. arg_s_mtrl.scll_ceiling = 0
  5243. arg_s_mtrl.material = ''
  5244. arg_s_mtrl.adddec = 0
  5245. arg_s_mtrl.ifbarcodefp = 0
  5246. arg_s_mtrl.stoppqty = 0
  5247. arg_s_mtrl.buy_autoday = 0
  5248. arg_s_mtrl.upbuyrate = 0
  5249. arg_s_mtrl.upbuyqty = 0
  5250. arg_s_mtrl.ifrebuypack = 0
  5251. arg_s_mtrl.protype = 0
  5252. arg_s_mtrl.buydays_bx = 0
  5253. arg_s_mtrl.wfjgdays_bx = 0
  5254. arg_s_mtrl.multqty = 0
  5255. arg_s_mtrl.multtype = 0
  5256. arg_s_mtrl.buyer = ''
  5257. arg_s_mtrl.bantype = 0
  5258. End If
  5259. End If
  5260. arg_s_mtrl.mtrlid = 0 //ll_mtrlid // 新建的资料或已有资料但设了模板
  5261. arg_s_mtrl.mtrlcode = ls_mtrlcode
  5262. arg_s_mtrl.mtrlname = ls_mtrlname
  5263. arg_s_mtrl.unit = ls_unit
  5264. arg_s_mtrl.mtrlmode = ls_mtrlmode
  5265. arg_s_mtrl.mtrlsectype = ls_mtrlsectype
  5266. arg_s_mtrl.zxmtrlmode = ls_zxmtrlmode
  5267. arg_s_mtrl.usermtrlmode = ls_usermtrlmode
  5268. arg_s_mtrl.orderdays = ld_orderdays
  5269. arg_s_mtrl.buydays = ld_buydays
  5270. arg_s_mtrl.wfjgdays = ld_wfjgdays
  5271. arg_s_mtrl.mtrltypeid = ll_mtrltypeid
  5272. arg_s_mtrl.scid = ll_scid
  5273. arg_s_mtrl.dftwrkGrpid = ll_dftwrkgrpid
  5274. arg_s_mtrl.Mtrlorigin = li_mtrlorigin
  5275. arg_s_mtrl.mtrlprp = li_mtrlprp
  5276. arg_s_mtrl.piccode = ls_piccode
  5277. arg_s_mtrl.ifselforder = li_ifselforder
  5278. arg_s_mtrl.ordertype = li_ordertype
  5279. arg_s_mtrl.mb_mtrlid = ll_mb_mtrlid
  5280. arg_s_mtrl.bantype = ll_bantype
  5281. arg_s_mtrl.outtype = li_outtype
  5282. arg_s_mtrl.dscrp = ls_dscrp_mtrl
  5283. arg_s_mtrl.midu = ld_midu
  5284. arg_s_mtrl.isuse = 1
  5285. If uo_mtrl.uof_add_mtrl(arg_s_mtrl,publ_operator,arg_msg,False) = 0 Then
  5286. arg_msg = "行:"+String(ll_i)+ ",建立新物料资料操作失败,"+arg_msg
  5287. rslt = 0
  5288. Goto ext
  5289. End If
  5290. arg_s_ban.wenli = dw_1.Object.u_mtrldef_ban_wenli[ll_i]
  5291. arg_s_ban.fengbian = dw_1.Object.u_mtrldef_ban_fengbian[ll_i]
  5292. arg_s_ban.paikong = dw_1.Object.u_mtrldef_ban_paikong[ll_i]
  5293. arg_s_ban.luoji = dw_1.Object.u_mtrldef_ban_luoji[ll_i]
  5294. arg_s_ban.penyou = dw_1.Object.u_mtrldef_ban_penyou[ll_i]
  5295. arg_s_ban.gydscrp = dw_1.Object.u_mtrldef_ban_gydscrp[ll_i]
  5296. arg_s_ban.promode = dw_1.Object.u_mtrldef_ban_promode[ll_i]
  5297. arg_s_ban.direction = dw_1.Object.u_mtrldef_ban_direction[ll_i]
  5298. arg_s_ban.pfklmode = dw_1.Object.u_mtrldef_ban_pfklmode[ll_i]
  5299. If uo_mtrl.uof_update_ban(uo_mtrl.uo_mtrlid,arg_s_ban,arg_msg,False) = 0 Then
  5300. arg_msg = "行:"+String(ll_i)+ ",建立新物料板件资料操作失败,"+arg_msg
  5301. rslt = 0
  5302. Goto ext
  5303. End If
  5304. //记录新建的物料编码,如果下面再出现,不重复新建资料 2014-10-06
  5305. ll_cnt_new++
  5306. ls_mtrlcode_new_arr[ll_cnt_new] = ls_mtrlcode
  5307. ll_mtrlid_copy = uo_mtrl.uo_mtrlid
  5308. dw_1.Object.newid[ll_i] = ll_mtrlid_copy
  5309. If ll_mtrlid > 0 Then
  5310. Insert Into u_mtrl_storage
  5311. (mtrlid,storageid)
  5312. Select :ll_mtrlid_copy,storageid
  5313. From u_mtrl_storage
  5314. Where mtrlid = :ll_mtrlid;
  5315. If sqlca.SQLCode <> 0 Then
  5316. rslt = 0
  5317. arg_msg = sqlca.SQLErrText
  5318. arg_msg = '复制物料存放仓库失败,'+arg_msg
  5319. Goto ext
  5320. End If
  5321. Insert Into u_mtrl_wkp
  5322. (mtrlid,
  5323. swkpid,
  5324. owkpid,
  5325. wkpname,
  5326. lastdays,
  5327. dscrp)
  5328. Select :ll_mtrlid_copy,
  5329. u_mtrl_wkp.swkpid,
  5330. u_mtrl_wkp.owkpid,
  5331. u_mtrl_wkp.wkpname,
  5332. u_mtrl_wkp.lastdays,
  5333. u_mtrl_wkp.dscrp
  5334. From u_mtrl_wkp
  5335. Where mtrlid = :ll_mtrlid;
  5336. If sqlca.SQLCode <> 0 Then
  5337. rslt = 0
  5338. arg_msg = sqlca.SQLErrText
  5339. arg_msg = '复制车间交接流程失败,'+arg_msg
  5340. Goto ext
  5341. End If
  5342. Insert Into u_mtrl_configure2
  5343. (scid,
  5344. mtrlid,
  5345. pzid,
  5346. printid,
  5347. pzcode,
  5348. pzname,
  5349. pzcodemx,
  5350. pznamemx
  5351. )
  5352. Select scid,
  5353. :ll_mtrlid_copy,
  5354. pzid,
  5355. printid,
  5356. pzcode,
  5357. pzname,
  5358. pzcodemx,
  5359. pznamemx
  5360. From u_mtrl_configure2
  5361. Where mtrlid = :ll_mtrlid;
  5362. If sqlca.SQLCode <> 0 Then
  5363. rslt = 0
  5364. arg_msg = sqlca.SQLErrText
  5365. arg_msg = '复制产品配置失败,'+arg_msg
  5366. Goto ext
  5367. End If
  5368. Declare cur_configure Cursor For
  5369. Select u_mtrl_configure.code,
  5370. u_mtrl_configure.name,
  5371. u_mtrl_configure.ename,
  5372. u_mtrl_configure.type,
  5373. u_mtrl_configure.dscrp,
  5374. u_mtrl_configure.DefaultPZ,
  5375. u_mtrl_configure.ifzj,
  5376. u_mtrl_configure.planprice,
  5377. u_mtrl_configure.capacity,
  5378. u_mtrl_configure.capaparm
  5379. From u_mtrl_configure
  5380. Where u_mtrl_configure.mtrlid = :ll_mtrlid;
  5381. Open cur_configure;
  5382. Fetch cur_configure Into :ls_code,:ls_name,:ls_ename,:ll_type,:ls_dscrp,
  5383. :ll_DefaultPZ,:ll_ifzj,:ld_planprice,:ld_capacity,:ld_capaparm;
  5384. Do While sqlca.SQLCode = 0
  5385. ll_new_cid = f_sys_scidentity(0,"u_mtrl_configure","cid",arg_msg,True,id_sqlca)
  5386. If ll_new_cid <= 0 Then
  5387. rslt = 0
  5388. arg_msg = '复制配置内容失败,'+arg_msg
  5389. Goto ext
  5390. End If
  5391. Insert Into u_mtrl_configure
  5392. (mtrlid,
  5393. cid,
  5394. code,
  5395. name,
  5396. ename,
  5397. type,
  5398. dscrp,
  5399. defaultpz,
  5400. ifzj,
  5401. planprice,
  5402. capacity,
  5403. capaparm)
  5404. Values( :ll_mtrlid_copy,
  5405. :ll_new_cid,
  5406. :ls_code,
  5407. :ls_name,
  5408. :ls_ename,
  5409. :ll_type,
  5410. :ls_dscrp,
  5411. :ll_DefaultPZ,
  5412. :ll_ifzj,
  5413. :ld_planprice,
  5414. :ld_capacity,
  5415. :ld_capaparm);
  5416. If sqlca.SQLCode <> 0 Then
  5417. arg_msg = sqlca.SQLErrText
  5418. arg_msg = '复制配置内容失败,'+arg_msg
  5419. rslt = 0
  5420. Goto ext
  5421. End If
  5422. Fetch cur_configure Into :ls_code,:ls_name,:ls_ename,:ll_type,:ls_dscrp,
  5423. :ll_DefaultPZ,:ll_ifzj,:ld_planprice,:ld_capacity,:ld_capaparm;
  5424. Loop
  5425. Close cur_configure;
  5426. End If
  5427. If uo_pf.uof_addpflist(ll_mtrlid_copy,ls_pfcode,ll_dftwrkgrpid,'',0,1,0,False,arg_msg) = 0 Then
  5428. rslt = 0
  5429. Goto ext
  5430. End If
  5431. If uo_pf.uof_audit(ll_mtrlid_copy,ls_pfcode,1,arg_msg,False) = 0 Then
  5432. arg_msg = "审核清单用料明细物料的物料清单失败,"+arg_msg
  5433. rslt = 0
  5434. Goto ext
  5435. End If
  5436. If ll_dftwrkgrpid > 0 Then
  5437. If u_wrkprice.uof_add_list(ll_mtrlid_copy,'[常规]',ll_dftwrkgrpid,0,'',1,publ_operator,arg_msg,False) = 0 Then
  5438. rslt = 0
  5439. Goto ext
  5440. End If
  5441. End If
  5442. else
  5443. //现有物料,更新板件信息
  5444. arg_s_ban.wenli = dw_1.Object.u_mtrldef_ban_wenli[ll_i]
  5445. arg_s_ban.fengbian = dw_1.Object.u_mtrldef_ban_fengbian[ll_i]
  5446. arg_s_ban.paikong = dw_1.Object.u_mtrldef_ban_paikong[ll_i]
  5447. arg_s_ban.luoji = dw_1.Object.u_mtrldef_ban_luoji[ll_i]
  5448. arg_s_ban.penyou = dw_1.Object.u_mtrldef_ban_penyou[ll_i]
  5449. arg_s_ban.gydscrp = dw_1.Object.u_mtrldef_ban_gydscrp[ll_i]
  5450. arg_s_ban.promode = dw_1.Object.u_mtrldef_ban_promode[ll_i]
  5451. arg_s_ban.direction = dw_1.Object.u_mtrldef_ban_direction[ll_i]
  5452. arg_s_ban.pfklmode = dw_1.Object.u_mtrldef_ban_pfklmode[ll_i]
  5453. If uo_mtrl.uof_update_ban(dw_1.Object.u_mtrldef_mtrlid[ll_i],arg_s_ban,arg_msg,False) = 0 Then
  5454. arg_msg = "行:"+String(ll_i)+ ",更新物料板件资料操作失败,"+arg_msg
  5455. rslt = 0
  5456. Goto ext
  5457. End If
  5458. End If
  5459. _next_row:
  5460. Next
  5461. dw_1.AcceptText()
  5462. //建立清单
  5463. //1.建立主产品清单
  5464. Long ll_mtrlid_son
  5465. Decimal ld_sonscale,ld_sonloss,ld_sondecloss,ld_sonahead
  5466. String ls_dscrp_pf,ls_woodcode,ls_pcode,ls_status
  5467. String ls_sonpfcode
  5468. Long ll_printid
  5469. String ls_pfgroup,ls_pfgroupmode,ls_pfklmode
  5470. Decimal ls_pfgroupqty
  5471. Decimal ld_scllloss,ld_sclldecloss,ld_pfgroupqty
  5472. Long ll_ifover,ll_dipztype
  5473. Decimal ld_buyarg
  5474. Long ll_wrkgrpid
  5475. String ls_promode
  5476. Decimal ld_sonscale_p
  5477. Long cnt_fj
  5478. If ins_if_saletask = 1 Then
  5479. Select count(*) Into :cnt
  5480. From u_mtrl_pf
  5481. Where mtrlid = :ins_mtrlid
  5482. And pfcode = :ins_pfcode;
  5483. If sqlca.SQLCode <> 0 Then
  5484. rslt = 0
  5485. arg_msg = '查询产品物料清单信息失败,'+sqlca.SQLErrText
  5486. Goto ext
  5487. End If
  5488. If cnt = 0 Then
  5489. Select count(*) Into :cnt_fj
  5490. From U_File
  5491. Where relid = :ins_mtrlid
  5492. And relcode = :ins_pfcode
  5493. And billtype = 202 Using sys_fileDB_sqlca;
  5494. If sys_fileDB_sqlca.SQLCode <> 0 Then cnt_fj = 0
  5495. Insert Into u_mtrl_pf(mtrlid,pfcode,if_saletask,moddate,modemp,inuse,dscrp,fjcnt)
  5496. Values (:ins_mtrlid,:ins_pfcode,1,getdate(),:publ_operator,1,:ins_pfdscrp,:cnt_fj);
  5497. If sqlca.SQLCode <> 0 Then
  5498. rslt = 0
  5499. arg_msg = "添加物料清单失败,"+sqlca.SQLErrText
  5500. Goto ext
  5501. End If
  5502. If uo_pf.uof_audit(ins_mtrlid,ins_pfcode,1,arg_msg,False) = 0 Then
  5503. arg_msg = "审核清单用料明细物料的物料清单失败,"+arg_msg
  5504. rslt = 0
  5505. Goto ext
  5506. End If
  5507. End If
  5508. End If
  5509. Delete From u_prdpf
  5510. Where ( u_prdpf.mtrlid = :ins_mtrlid ) And
  5511. ( u_prdpf.pfcode = :ins_pfcode );
  5512. If sqlca.SQLCode <> 0 Then
  5513. rslt = 0
  5514. arg_msg = '删除主产品原有物料清单失败,'+sqlca.SQLErrText
  5515. Goto ext
  5516. End If
  5517. //FOR ll_i = 1 To dw_1.RowCount()
  5518. // IF dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 THEN CONTINUE
  5519. //
  5520. // ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_i]
  5521. // ls_pfcode = f_get_dft_pf(ll_mtrlid)
  5522. //// ls_pfcode = ins_pfcode
  5523. //
  5524. // DELETE FROM u_prdpf
  5525. // WHERE ( u_prdpf.mtrlid = :ll_mtrlid ) AND
  5526. // ( u_prdpf.pfcode = :ls_pfcode );
  5527. // IF sqlca.SQLCode <> 0 THEN
  5528. // rslt = 0
  5529. // arg_msg = '行:'+String(ll_i)+',删除原有物料清单失败,'+sqlca.SQLErrText
  5530. // GOTO ext
  5531. // END IF
  5532. //NEXT
  5533. Int li_ifpackpro
  5534. Select ifpackpro Into :li_ifpackpro
  5535. From u_mtrldef
  5536. Where mtrlid = :ins_mtrlid;
  5537. If sqlca.SQLCode <> 0 Then
  5538. rslt = 0
  5539. arg_msg = '查询主产品包件产品属性失败,'+sqlca.SQLErrText
  5540. Goto ext
  5541. End If
  5542. For ll_i = 1 To dw_1.RowCount()
  5543. If dw_1.Object.lp[ll_i] = 1 Then
  5544. If dw_1.Object.u_prdpf_sonscale[ll_i] < 0 Then
  5545. dw_1.SelectRow(0,False)
  5546. dw_1.SetRow(ll_i)
  5547. dw_1.SelectRow(ll_i,True)
  5548. arg_msg = '不合理组成数量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!'
  5549. rslt = 0
  5550. Goto ext
  5551. End If
  5552. If dw_1.Object.u_prdpf_sonloss[ll_i] < 0 Or dw_1.Object.u_prdpf_sonloss[ll_i] >= 1 Then
  5553. dw_1.SelectRow(0,False)
  5554. dw_1.SetRow(ll_i)
  5555. dw_1.SelectRow(ll_i,True)
  5556. arg_msg = '不合理损耗率!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!'
  5557. rslt = 0
  5558. Goto ext
  5559. End If
  5560. If dw_1.Object.u_prdpf_sondecloss[ll_i] < 0 Then
  5561. dw_1.SelectRow(0,False)
  5562. dw_1.SetRow(ll_i)
  5563. dw_1.SelectRow(ll_i,True)
  5564. arg_msg = '不合理附加损耗量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!'
  5565. rslt = 0
  5566. Goto ext
  5567. End If
  5568. If dw_1.Object.u_prdpf_wrkgrpid[ll_i] = 0 Then
  5569. dw_1.SelectRow(0,False)
  5570. dw_1.SetRow(ll_i)
  5571. dw_1.SelectRow(ll_i,True)
  5572. arg_msg = '请先选择领用工组'
  5573. rslt = 0
  5574. Goto ext
  5575. End If
  5576. If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 Then
  5577. ll_mtrlid_son = dw_1.Object.newid[ll_i]
  5578. Else
  5579. ll_mtrlid_son = dw_1.Object.u_mtrldef_mtrlid[ll_i]
  5580. End If
  5581. ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_i]
  5582. ld_sonloss = dw_1.Object.u_prdpf_sonloss[ll_i]
  5583. ld_sondecloss = dw_1.Object.u_prdpf_sondecloss[ll_i]
  5584. ld_sonahead = dw_1.Object.u_prdpf_sonahead[ll_i]
  5585. ls_status = dw_1.Object.u_prdpf_status[ll_i]
  5586. ls_woodcode = dw_1.Object.u_prdpf_woodcode[ll_i]
  5587. ls_pcode = dw_1.Object.u_prdpf_pcode[ll_i]
  5588. ls_sonpfcode = dw_1.Object.u_prdpf_sonpfcode[ll_i]
  5589. ll_printid = dw_1.Object.u_prdpf_printid[ll_i]
  5590. ls_pfgroup = dw_1.Object.u_prdpf_pfgroup[ll_i]
  5591. ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_i]
  5592. ls_pfgroupmode = dw_1.Object.u_prdpf_pfgroupmode[ll_i]
  5593. ls_pfklmode = dw_1.Object.u_prdpf_pfklmode[ll_i]
  5594. ls_dscrp_pf = dw_1.Object.u_prdpf_dscrp[ll_i]
  5595. ld_scllloss = dw_1.Object.u_prdpf_scllloss[ll_i]
  5596. ld_sclldecloss = dw_1.Object.u_prdpf_sclldecloss[ll_i]
  5597. ll_ifover = dw_1.Object.u_prdpf_ifover[ll_i]
  5598. ll_dipztype = dw_1.Object.u_prdpf_dipztype[ll_i]
  5599. ld_buyarg = dw_1.Object.u_prdpf_buyarg[ll_i]
  5600. ll_wrkgrpid = dw_1.Object.u_prdpf_wrkgrpid[ll_i]
  5601. ls_promode = dw_1.Object.u_prdpf_promode[ll_i]
  5602. ll_modleid = dw_1.Object.u_prdpf_modleid[ll_i]
  5603. ls_modlename = dw_1.Object.u_prdpf_modlename[ll_i]
  5604. ls_wenli = dw_1.Object.u_prdpf_wenli[ll_i]
  5605. ls_fengbian = dw_1.Object.u_prdpf_fengbian[ll_i]
  5606. ls_paikong = dw_1.Object.u_prdpf_paikong[ll_i]
  5607. ls_luoji = dw_1.Object.u_prdpf_luoji[ll_i]
  5608. ls_penyou = dw_1.Object.u_prdpf_penyou[ll_i]
  5609. ls_azcode = dw_1.Object.u_prdpf_azcode[ll_i]
  5610. If li_ifpackpro = 5 And ll_dipztype <> 3 Then
  5611. dw_1.SelectRow(0,False)
  5612. dw_1.SetRow(ll_i)
  5613. dw_1.SelectRow(ll_i,True)
  5614. arg_msg = '全订制板式家具包件产品下级包件按配置运算或拆装必须选择"配置+配置1"'
  5615. rslt = 0
  5616. Goto ext
  5617. End If
  5618. Insert Into u_prdpf
  5619. ( mtrlid,
  5620. pfcode,
  5621. sonmtrlid,
  5622. sonscale,
  5623. sonloss,
  5624. sondecloss,
  5625. sonahead,
  5626. status,
  5627. woodcode,
  5628. pcode,
  5629. sonpfcode,
  5630. printid,
  5631. pfgroup,
  5632. pfgroupqty,
  5633. pfgroupmode,
  5634. pfklmode,
  5635. dscrp,
  5636. scllloss,
  5637. sclldecloss,
  5638. ifover,
  5639. dipztype,
  5640. buyarg,
  5641. wrkgrpid,
  5642. promode,
  5643. modleid,
  5644. modlename,
  5645. wenli,
  5646. fengbian,
  5647. paikong,
  5648. luoji,
  5649. penyou,
  5650. azcode)
  5651. Values ( :ins_mtrlid,
  5652. :ins_pfcode,
  5653. :ll_mtrlid_son,
  5654. :ld_sonscale,
  5655. :ld_sonloss,
  5656. :ld_sondecloss,
  5657. :ld_sonahead,
  5658. :ls_status,
  5659. :ls_woodcode,
  5660. :ls_pcode,
  5661. :ls_sonpfcode,
  5662. :ll_printid,
  5663. :ls_pfgroup,
  5664. :ld_pfgroupqty,
  5665. :ls_pfgroupmode,
  5666. :ls_pfklmode,
  5667. :ls_dscrp_pf,
  5668. :ld_scllloss,
  5669. :ld_sclldecloss,
  5670. :ll_ifover,
  5671. :ll_dipztype,
  5672. :ld_buyarg,
  5673. :ll_wrkgrpid,
  5674. :ls_promode,
  5675. :ll_modleid,
  5676. :ls_modlename,
  5677. :ls_wenli,
  5678. :ls_fengbian,
  5679. :ls_paikong,
  5680. :ls_luoji,
  5681. :ls_penyou,
  5682. :ls_azcode) ;
  5683. If sqlca.SQLCode <> 0 Then
  5684. If Pos(sqlca.SQLErrText,'PK_u_PrdPF') > 0 Then
  5685. arg_msg = '插入主产品物料清单失败,发现重复信息,在'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!'
  5686. Else
  5687. arg_msg = '插入清单失败(主产品),'+sqlca.SQLErrText
  5688. End If
  5689. dw_1.SelectRow(0,False)
  5690. dw_1.SetRow(ll_i)
  5691. dw_1.SelectRow(ll_i,True)
  5692. rslt = 0
  5693. Goto ext
  5694. End If
  5695. End If
  5696. Next
  5697. //2.建立新建物料清单
  5698. For ll_i = 1 To dw_1.RowCount()
  5699. If dw_1.Object.lp[ll_i] = 0 Then Continue
  5700. If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 And dw_1.Object.newid[ll_i] = 0 Then Continue
  5701. ll_lp = dw_1.Object.lp[ll_i]
  5702. If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 Then
  5703. ll_mtrlid = dw_1.Object.newid[ll_i]
  5704. ls_pfcode = dw_1.Object.u_prdpf_sonpfcode[ll_i]
  5705. Else
  5706. If ins_if_saletask = 1 And dw_1.Object.u_prdpf_sonpfcode[ll_i] = ins_pfcode Then
  5707. //使用圆方全订制导入,包件清单号按产品清单
  5708. ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_i]
  5709. ls_pfcode = ins_pfcode
  5710. Select count(*) Into :cnt
  5711. From u_mtrl_pf
  5712. Where mtrlid = :ll_mtrlid
  5713. And pfcode = :ls_pfcode;
  5714. If sqlca.SQLCode <> 0 Then
  5715. rslt = 0
  5716. arg_msg = '查询产品物料清单信息失败,'+sqlca.SQLErrText
  5717. Goto ext
  5718. End If
  5719. If cnt = 0 Then
  5720. Insert Into u_mtrl_pf(mtrlid,pfcode,if_saletask,moddate,modemp,inuse,dscrp)
  5721. Values (:ll_mtrlid,:ls_pfcode,1,getdate(),:publ_operator,1,:ins_pfdscrp);
  5722. If sqlca.SQLCode <> 0 Then
  5723. rslt = 0
  5724. arg_msg = "添加物料清单失败,"+sqlca.SQLErrText
  5725. Goto ext
  5726. End If
  5727. If uo_pf.uof_audit(ll_mtrlid,ls_pfcode,1,arg_msg,False) = 0 Then
  5728. arg_msg = "审核清单用料明细物料的物料清单失败,"+arg_msg
  5729. rslt = 0
  5730. Goto ext
  5731. End If
  5732. End If
  5733. Else
  5734. ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_i]
  5735. ls_pfcode = dw_1.Object.u_prdpf_sonpfcode[ll_i]
  5736. If Trim(ls_pfcode) = '' Then
  5737. ls_pfcode = f_get_dft_pf(ll_mtrlid)
  5738. End If
  5739. Select count(*) Into :cnt
  5740. From u_mtrl_pf
  5741. Where mtrlid = :ll_mtrlid
  5742. And pfcode = :ls_pfcode;
  5743. If sqlca.SQLCode <> 0 Then
  5744. rslt = 0
  5745. arg_msg = '查询产品物料清单信息失败,'+sqlca.SQLErrText
  5746. Goto ext
  5747. End If
  5748. If cnt = 0 Then
  5749. Insert Into u_mtrl_pf(mtrlid,pfcode,if_saletask,moddate,modemp,inuse,dscrp)
  5750. Values (:ll_mtrlid,:ls_pfcode,1,getdate(),:publ_operator,1,:ins_pfdscrp);
  5751. If sqlca.SQLCode <> 0 Then
  5752. rslt = 0
  5753. arg_msg = "添加物料清单失败,"+sqlca.SQLErrText
  5754. Goto ext
  5755. End If
  5756. If uo_pf.uof_audit(ll_mtrlid,ls_pfcode,1,arg_msg,False) = 0 Then
  5757. arg_msg = "审核清单用料明细物料的物料清单失败,"+arg_msg
  5758. rslt = 0
  5759. Goto ext
  5760. End If
  5761. End If
  5762. End If
  5763. End If
  5764. ld_sonscale_p = dw_1.Object.u_prdpf_sonscale[ll_i]
  5765. ld_sonloss_p = dw_1.Object.u_prdpf_sonloss[ll_i]
  5766. ld_sondecloss_p = dw_1.Object.u_prdpf_sondecloss[ll_i]
  5767. Select cmpqty Into :ld_cmpqty_p
  5768. From u_mtrldef
  5769. Where mtrlid = :ll_mtrlid;
  5770. If sqlca.SQLCode <> 0 Then ld_cmpqty_p = 1
  5771. ld_qty = Round(((ld_sonscale_p/(1 - ld_sonloss_p)+ ld_sondecloss_p) / ld_cmpqty_p),sys_option_produce_dec)
  5772. If ld_sonscale_p <= 0 Then
  5773. dw_1.SelectRow(0,False)
  5774. dw_1.SetRow(ll_i)
  5775. dw_1.SelectRow(ll_i,True)
  5776. arg_msg = '不合理组成数量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!'
  5777. rslt = 0
  5778. Goto ext
  5779. End If
  5780. Delete From u_prdpf
  5781. Where ( u_prdpf.mtrlid = :ll_mtrlid ) And
  5782. ( u_prdpf.pfcode = :ls_pfcode );
  5783. If sqlca.SQLCode <> 0 Then
  5784. rslt = 0
  5785. arg_msg = '行:'+String(ll_i)+',删除原有物料清单失败,'+sqlca.SQLErrText
  5786. Goto ext
  5787. End If
  5788. For ll_j = ll_i + 1 To dw_1.RowCount()
  5789. If dw_1.Object.lp[ll_j] <= ll_lp Then Exit
  5790. If dw_1.Object.lp[ll_j] = ll_lp + 1 Then
  5791. If dw_1.Object.u_prdpf_sonscale[ll_j] <= 0 Then
  5792. dw_1.SelectRow(0,False)
  5793. dw_1.SetRow(ll_j)
  5794. dw_1.SelectRow(ll_j,True)
  5795. arg_msg = '不合理组成数量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,请核对!'
  5796. rslt = 0
  5797. Goto ext
  5798. End If
  5799. If dw_1.Object.u_prdpf_sonloss[ll_j] < 0 Or dw_1.Object.u_prdpf_sonloss[ll_j] >= 1 Then
  5800. dw_1.SelectRow(0,False)
  5801. dw_1.SetRow(ll_j)
  5802. dw_1.SelectRow(ll_j,True)
  5803. arg_msg = '不合理损耗率!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,请核对!'
  5804. rslt = 0
  5805. Goto ext
  5806. End If
  5807. If dw_1.Object.u_prdpf_sondecloss[ll_j] < 0 Then
  5808. dw_1.SelectRow(0,False)
  5809. dw_1.SetRow(ll_j)
  5810. dw_1.SelectRow(ll_j,True)
  5811. arg_msg = '不合理附加损耗量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,请核对!'
  5812. rslt = 0
  5813. Goto ext
  5814. End If
  5815. If dw_1.Object.u_prdpf_wrkgrpid[ll_j] = 0 Then
  5816. dw_1.SelectRow(0,False)
  5817. dw_1.SetRow(ll_j)
  5818. dw_1.SelectRow(ll_j,True)
  5819. arg_msg = '请先选择领用工组'
  5820. rslt = 0
  5821. Goto ext
  5822. End If
  5823. If dw_1.Object.u_mtrldef_mtrlid[ll_j] = 0 Then
  5824. ll_mtrlid_son = dw_1.Object.newid[ll_j]
  5825. Else
  5826. ll_mtrlid_son = dw_1.Object.u_mtrldef_mtrlid[ll_j]
  5827. End If
  5828. ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_j]
  5829. ld_sonloss = dw_1.Object.u_prdpf_sonloss[ll_j]
  5830. ld_sondecloss = dw_1.Object.u_prdpf_sondecloss[ll_j]
  5831. ld_sonahead = dw_1.Object.u_prdpf_sonahead[ll_j]
  5832. ls_status = dw_1.Object.u_prdpf_status[ll_j]
  5833. ls_woodcode = dw_1.Object.u_prdpf_woodcode[ll_j]
  5834. ls_pcode = dw_1.Object.u_prdpf_pcode[ll_j]
  5835. ls_sonpfcode = dw_1.Object.u_prdpf_sonpfcode[ll_j]
  5836. ll_printid = dw_1.Object.u_prdpf_printid[ll_j]
  5837. ls_pfgroup = dw_1.Object.u_prdpf_pfgroup[ll_j]
  5838. ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_j]
  5839. ls_pfgroupmode = dw_1.Object.u_prdpf_pfgroupmode[ll_j]
  5840. ls_pfklmode = dw_1.Object.u_prdpf_pfklmode[ll_j]
  5841. ls_dscrp_pf = dw_1.Object.u_prdpf_dscrp[ll_j]
  5842. ld_scllloss = dw_1.Object.u_prdpf_scllloss[ll_j]
  5843. ld_sclldecloss = dw_1.Object.u_prdpf_sclldecloss[ll_j]
  5844. ll_ifover = dw_1.Object.u_prdpf_ifover[ll_j]
  5845. ll_dipztype = dw_1.Object.u_prdpf_dipztype[ll_j]
  5846. ld_buyarg = dw_1.Object.u_prdpf_buyarg[ll_j]
  5847. ll_wrkgrpid = dw_1.Object.u_prdpf_wrkgrpid[ll_j]
  5848. ls_promode = dw_1.Object.u_prdpf_promode[ll_j]
  5849. ll_modleid = dw_1.Object.u_prdpf_modleid[ll_j]
  5850. ls_modlename = dw_1.Object.u_prdpf_modlename[ll_j]
  5851. ld_sonscale = ld_sonscale / ld_qty
  5852. ls_wenli = dw_1.Object.u_prdpf_wenli[ll_j]
  5853. ls_fengbian = dw_1.Object.u_prdpf_fengbian[ll_j]
  5854. ls_paikong = dw_1.Object.u_prdpf_paikong[ll_j]
  5855. ls_luoji = dw_1.Object.u_prdpf_luoji[ll_j]
  5856. ls_penyou = dw_1.Object.u_prdpf_penyou[ll_j]
  5857. ls_azcode = dw_1.Object.u_prdpf_azcode[ll_j]
  5858. Insert Into u_prdpf
  5859. ( mtrlid,
  5860. pfcode,
  5861. sonmtrlid,
  5862. sonscale,
  5863. sonloss,
  5864. sondecloss,
  5865. sonahead,
  5866. status,
  5867. woodcode,
  5868. pcode,
  5869. sonpfcode,
  5870. printid,
  5871. pfgroup,
  5872. pfgroupqty,
  5873. pfgroupmode,
  5874. pfklmode,
  5875. dscrp,
  5876. scllloss,
  5877. sclldecloss,
  5878. ifover,
  5879. dipztype,
  5880. buyarg,
  5881. wrkgrpid,
  5882. promode,
  5883. modleid,
  5884. modlename,
  5885. wenli,
  5886. fengbian,
  5887. paikong,
  5888. luoji,
  5889. penyou,
  5890. azcode)
  5891. Values ( :ll_mtrlid,
  5892. :ls_pfcode,
  5893. :ll_mtrlid_son,
  5894. :ld_sonscale,
  5895. :ld_sonloss,
  5896. :ld_sondecloss,
  5897. :ld_sonahead,
  5898. :ls_status,
  5899. :ls_woodcode,
  5900. :ls_pcode,
  5901. :ls_sonpfcode,
  5902. :ll_printid,
  5903. :ls_pfgroup,
  5904. :ld_pfgroupqty,
  5905. :ls_pfgroupmode,
  5906. :ls_pfklmode,
  5907. :ls_dscrp_pf,
  5908. :ld_scllloss,
  5909. :ld_sclldecloss,
  5910. :ll_ifover,
  5911. :ll_dipztype,
  5912. :ld_buyarg,
  5913. :ll_wrkgrpid,
  5914. :ls_promode,
  5915. :ll_modleid,
  5916. :ls_modlename,
  5917. :ls_wenli,
  5918. :ls_fengbian,
  5919. :ls_paikong,
  5920. :ls_luoji,
  5921. :ls_penyou,
  5922. :ls_azcode) ;
  5923. If sqlca.SQLCode <> 0 Then
  5924. If Pos(sqlca.SQLErrText,'PK_u_PrdPF') > 0 Then
  5925. arg_msg = '插入'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 物料清单失败,发现重复信息,在'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,请核对!'
  5926. Else
  5927. arg_msg = '插入'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 物料清单失败,在'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,'+sqlca.SQLErrText
  5928. End If
  5929. dw_1.SelectRow(0,False)
  5930. dw_1.SetRow(ll_i)
  5931. dw_1.SelectRow(ll_i,True)
  5932. rslt = 0
  5933. Goto ext
  5934. End If
  5935. End If
  5936. Next
  5937. Update u_mtrl_pf
  5938. Set moddate = getdate() ,
  5939. modemp = :publ_operator
  5940. Where mtrlid = :ll_mtrlid
  5941. And pfcode = :ls_pfcode;
  5942. If sqlca.SQLCode <> 0 Then
  5943. rslt = 0
  5944. arg_msg = String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 更新物料清单构成修改时间失败,'+arg_msg
  5945. Goto ext
  5946. End If
  5947. //计算物料清单用料列表
  5948. If uo_pf.f_clearprdpfmx(ll_mtrlid,ls_pfcode,arg_msg,False) = 0 Then
  5949. rslt = 0
  5950. arg_msg = String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 清除原用料列表失败,'+arg_msg
  5951. Goto ext
  5952. End If
  5953. If uo_pf.f_cmpprdpf(ll_mtrlid,ll_mtrlid,ls_pfcode,ls_pfcode,1,1,1,arg_msg,False,0) = 0 Then
  5954. rslt = 0
  5955. arg_msg = String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 计算新用料列表失败,'+arg_msg
  5956. Goto ext
  5957. End If
  5958. Next
  5959. Update u_mtrl_pf
  5960. Set moddate = getdate() ,
  5961. modemp = :publ_operator
  5962. Where mtrlid = :ins_mtrlid
  5963. And pfcode = :ins_pfcode;
  5964. If sqlca.SQLCode <> 0 Then
  5965. rslt = 0
  5966. arg_msg = '更新主产品物料清单构成修改时间失败,'+arg_msg
  5967. Goto ext
  5968. End If
  5969. //计算主产品物料清单用料列表
  5970. If uo_pf.f_clearprdpfmx(ins_mtrlid,ins_pfcode,arg_msg,False) = 0 Then
  5971. rslt = 0
  5972. arg_msg = '清除主产品原用料列表失败,'+arg_msg
  5973. Goto ext
  5974. End If
  5975. If uo_pf.f_cmpprdpf(ins_mtrlid,ins_mtrlid,ins_pfcode,ins_pfcode,1,1,1,arg_msg,False,0) = 0 Then
  5976. rslt = 0
  5977. arg_msg = '计算主产品新用料列表失败,'+arg_msg
  5978. Goto ext
  5979. End If
  5980. //3.建立工价表
  5981. //4.建立工组流程
  5982. dw_copy.SetFilter('')
  5983. dw_copy.Filter()
  5984. dw_copy_wkp.SetFilter('')
  5985. dw_copy_wkp.Filter()
  5986. dw_copy.AcceptText()
  5987. dw_copy_wkp.AcceptText()
  5988. For ll_i = 1 To dw_1.RowCount()
  5989. If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 And dw_1.Object.newid[ll_i] = 0 Then Continue
  5990. If dw_1.Object.ifmod_wp[ll_i] = 1 Then
  5991. If dw_1.Object.u_mtrldef_mtrlid[ll_i] > 0 Then
  5992. ll_mtrlid_wp = dw_1.Object.u_mtrldef_mtrlid[ll_i]
  5993. Else
  5994. ll_mtrlid_wp = dw_1.Object.newid[ll_i]
  5995. End If
  5996. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i]
  5997. ls_wpcode = f_get_dft_wp(ll_mtrlid_wp)
  5998. If u_wrkprice.updatebegin(ll_mtrlid_wp,ls_wpcode,dw_1.Object.u_mtrldef_dftwrkgrpid[ll_i],arg_msg) = 0 Then
  5999. arg_msg = '物料:'+ls_mtrlcode+','+arg_msg
  6000. rslt = 0
  6001. Goto ext
  6002. End If
  6003. u_wrkprice.mtrlid = ll_mtrlid_wp
  6004. u_wrkprice.wpmtrlid = 0
  6005. u_wrkprice.wprate = 0
  6006. cnt = 0
  6007. For ll_j = 1 To dw_copy.RowCount()
  6008. If dw_copy.Object.u_mtrldef_mtrlcode[ll_j] = ls_mtrlcode Then
  6009. If Trim(dw_copy.Object.procode[ll_j]) <> '' Then //And dw_copy.Object.auditflag[ll_j] = 0 THEN
  6010. If u_wrkprice.acceptmx(dw_copy.Object.proid[ll_j],&
  6011. dw_copy.Object.procode[ll_j],&
  6012. dw_copy.Object.u_sc_workprice_proname[ll_j],&
  6013. dw_copy.Object.workqty[ll_j],&
  6014. dw_copy.Object.workprice[ll_j],&
  6015. dw_copy.Object.wrkgrpid[ll_j],&
  6016. Upper(dw_copy.Object.worklevel[ll_j]),&
  6017. Upper(dw_copy.Object.techlevel[ll_j]),&
  6018. dw_copy.Object.workhour[ll_j],&
  6019. dw_copy.Object.dscrp[ll_j],&
  6020. dw_copy.Object.lastflag[ll_j],&
  6021. dw_copy.Object.proorder[ll_j],&
  6022. 0,&
  6023. dw_copy.Object.lsxtype[ll_j],&
  6024. dw_copy.Object.u_sc_workprice_ifstandard[ll_j],&
  6025. dw_copy.Object.u_sc_workprice_status[ll_j],&
  6026. dw_copy.Object.u_sc_workprice_ifjd[ll_j],&
  6027. dw_copy.Object.u_sc_workprice_utcode[ll_j],&
  6028. dw_copy.Object.u_sc_workprice_sctype[ll_j],&
  6029. dw_copy.Object.u_sc_workprice_equipmentid[ll_j],&
  6030. dw_copy.Object.u_sc_workprice_workdays[ll_j],&
  6031. dw_copy.Object.u_sc_workprice_beforehour_minute[ll_j],&
  6032. dw_copy.Object.u_sc_workprice_afterhour_minute[ll_j],&
  6033. dw_copy.Object.u_sc_workprice_pricestr[ll_j],&
  6034. dw_copy.Object.u_sc_workprice_partname[ll_j],&
  6035. dw_copy.Object.u_sc_workprice_eqworkhour_minute[ll_j],&
  6036. dw_copy.Object.u_sc_workprice_worktype[ll_j],&
  6037. 0,0,0,0,0,0,0,0,0,&
  6038. dw_copy.Object.u_sc_workprice_eq_empnum[ll_j],0,0,&
  6039. dw_copy.Object.u_sc_workprice_workqtystr[ll_j],&
  6040. 0,&
  6041. dw_copy.Object.u_sc_workprice_u_workqty[ll_j],&
  6042. dw_copy.Object.u_sc_workprice_u_workprice[ll_j],&
  6043. dw_copy.Object.u_sc_workprice_u_workqtystr[ll_j],&
  6044. dw_copy.Object.u_sc_workprice_u_pricestr[ll_j],'',0,0,0,0,&
  6045. arg_msg) = 0 Then
  6046. rslt = 0
  6047. arg_msg = '建立工价表失败,物料:'+ls_mtrlcode+','+arg_msg
  6048. Goto ext
  6049. End If
  6050. cnt++
  6051. End If
  6052. End If
  6053. Next
  6054. If cnt > 0 Then
  6055. If u_wrkprice.Save(False,arg_msg) = 0 Then
  6056. arg_msg = '建立工价表失败,物料:'+ls_mtrlcode+','+arg_msg
  6057. rslt = 0
  6058. Goto ext
  6059. End If
  6060. End If
  6061. End If
  6062. If dw_1.Object.ifmod_wkp[ll_i] = 1 Then
  6063. If dw_1.Object.u_mtrldef_mtrlid[ll_i] > 0 Then
  6064. ll_mtrlid_wp = dw_1.Object.u_mtrldef_mtrlid[ll_i]
  6065. Else
  6066. ll_mtrlid_wp = dw_1.Object.newid[ll_i]
  6067. End If
  6068. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i]
  6069. Delete From u_mtrl_wkp
  6070. Where mtrlid = :ll_mtrlid_wp;
  6071. If sqlca.SQLCode <> 0 Then
  6072. arg_msg = '物料:'+ls_mtrlcode+',删除原工组流程失败,'+sqlca.SQLErrText
  6073. rslt = 0
  6074. Goto ext
  6075. End If
  6076. For ll_j = 1 To dw_copy_wkp.RowCount()
  6077. If dw_copy_wkp.Object.u_mtrldef_mtrlcode[ll_j] = ls_mtrlcode Then
  6078. printid_wkp = dw_copy_wkp.Object.printid[ll_j]
  6079. wkpname_wkp = dw_copy_wkp.Object.wkpname[ll_j]
  6080. groupstr_wkp = dw_copy_wkp.Object.groupstr[ll_j]
  6081. swkpid_wkp = dw_copy_wkp.Object.swkpid[ll_j]
  6082. owkpid_wkp = dw_copy_wkp.Object.owkpid[ll_j]
  6083. iflast_wkp = dw_copy_wkp.Object.iflast[ll_j]
  6084. lasthour_wkp = dw_copy_wkp.Object.lasthour[ll_j]
  6085. lastdays_wkp = dw_copy_wkp.Object.lastdays[ll_j]
  6086. minlasthour_wkp = dw_copy_wkp.Object.minlasthour[ll_j]
  6087. uprate_wkp = dw_copy_wkp.Object.uprate[ll_j]
  6088. dscrp_wkp = dw_copy_wkp.Object.dscrp[ll_j]
  6089. lp_wkp = dw_copy_wkp.Object.lp[ll_j]
  6090. printlp_wkp = dw_copy_wkp.Object.printlp[ll_j]
  6091. workhour_wkp = dw_copy_wkp.Object.workhour[ll_j]
  6092. beforehour_wkp = dw_copy_wkp.Object.beforehour[ll_j]
  6093. afterhour_wkp = dw_copy_wkp.Object.afterhour[ll_j]
  6094. workgroupid_wkp = dw_copy_wkp.Object.workgroupid[ll_j]
  6095. gydscrp_wkp = dw_copy_wkp.Object.gydscrp[ll_j]
  6096. Insert Into u_mtrl_wkp
  6097. (mtrlid,
  6098. printid,
  6099. wkpname,
  6100. groupstr,
  6101. swkpid,
  6102. owkpid,
  6103. iflast,
  6104. lasthour,
  6105. lastdays,
  6106. minlasthour,
  6107. uprate,
  6108. dscrp,
  6109. lp,
  6110. printlp,
  6111. workhour,
  6112. beforehour,
  6113. afterhour,
  6114. workgroupid,
  6115. gydscrp)
  6116. Values (:ll_mtrlid_wp,
  6117. :printid_wkp,
  6118. :wkpname_wkp,
  6119. :groupstr_wkp,
  6120. :swkpid_wkp,
  6121. :owkpid_wkp,
  6122. :iflast_wkp,
  6123. :lasthour_wkp,
  6124. :lastdays_wkp,
  6125. :minlasthour_wkp,
  6126. :uprate_wkp,
  6127. :dscrp_wkp,
  6128. :lp_wkp,
  6129. :printlp_wkp,
  6130. :workhour_wkp,
  6131. :beforehour_wkp,
  6132. :afterhour_wkp,
  6133. :workgroupid_wkp,
  6134. :gydscrp_wkp);
  6135. If sqlca.SQLCode <> 0 Then
  6136. arg_msg = '物料:'+ls_mtrlcode+',插入工组流程失败,'+sqlca.SQLErrText
  6137. rslt = 0
  6138. Goto ext
  6139. End If
  6140. End If
  6141. Next
  6142. End If
  6143. Next
  6144. If ins_if_saletask = 1 Then
  6145. If li_ifpackpro <> 5 Then
  6146. Update u_SaleTaskMx
  6147. Set pfcode = :ins_pfcode
  6148. Where scid = :ins_scid
  6149. And taskid = :ins_taskid
  6150. And printid = :ins_printid;
  6151. If sqlca.SQLCode <> 0 Then
  6152. arg_msg = '更新订单明细物料清单号失败,'+sqlca.SQLErrText
  6153. rslt = 0
  6154. Goto ext
  6155. End If
  6156. Else
  6157. Update u_SaleTaskMx
  6158. Set pfcode = :ins_pfcode,
  6159. status = :ins_pfcode
  6160. Where scid = :ins_scid
  6161. And taskid = :ins_taskid
  6162. And printid = :ins_printid;
  6163. If sqlca.SQLCode <> 0 Then
  6164. arg_msg = '更新订单明细物料清单号失败,'+sqlca.SQLErrText
  6165. rslt = 0
  6166. Goto ext
  6167. End If
  6168. End If
  6169. End If
  6170. If cbx_wp_pack.Checked Then
  6171. If wf_auto_wp(cbx_wp_add.Checked,arg_msg) = 0 Then
  6172. arg_msg = '按清单说明自动生成包件工价表失败,'+sqlca.SQLErrText
  6173. rslt = 0
  6174. Goto ext
  6175. End If
  6176. End If
  6177. ext:
  6178. If rslt = 1 Then
  6179. Commit;
  6180. ElseIf rslt = 0 Then
  6181. Rollback;
  6182. End If
  6183. Return rslt
  6184. end function
  6185. public function integer wf_addmx (long arg_mtrlid, string arg_pfcode, long arg_lp, decimal arg_qty, ref string arg_msg);Int rslt = 1
  6186. Decimal ld_cmpqty
  6187. String ls_mtrlcode
  6188. Long count,ll_i
  6189. Decimal ld_qty
  6190. Long ll_row
  6191. Select mtrlcode,cmpqty
  6192. Into :ls_mtrlcode,:ld_cmpqty
  6193. From u_mtrldef
  6194. Where mtrlid = :arg_mtrlid;
  6195. If sqlca.SQLCode <> 0 Then
  6196. arg_msg = '查询物料清单基数失败,ID:'+String(arg_mtrlid)+','+sqlca.SQLErrText
  6197. rslt = 0
  6198. Goto ext
  6199. End If
  6200. If ld_cmpqty <= 0 Then
  6201. arg_msg = '不合理的物料清单基数,物料:'+ls_mtrlcode
  6202. rslt = 0
  6203. Goto ext
  6204. End If
  6205. String mtrlcode[]
  6206. Long mtrlprp[]
  6207. Long wrkgrpid[]
  6208. Decimal Sonscale[],SonLoss[],SonDECLosS[]
  6209. String status[],woodcode[],pcode[]
  6210. Decimal Sonahead[]
  6211. String mtrlname[],unit[],mtrlmode[],mtrlsectype[],zxmtrlmode[],wrkGrpName[]
  6212. Long statusflag[],statustype[],woodcodeflag[],woodcodetype[],pcodeflag[],pcodetype[]
  6213. String usermtrlmode[]
  6214. Long Mtrlorigin[]
  6215. String sonpfcode[]
  6216. Long SonMtrlid[],printid[]
  6217. String pfgroup[]
  6218. Decimal pfgroupqty[]
  6219. String pfgroupmode[],pfklmode[],dscrp[]
  6220. Decimal baseqty[],scllloss[],sclldecloss[]
  6221. Long ifover[],dipztype[]
  6222. Decimal buyarg[],orderdays[],buydays[],wfjgdays[]
  6223. Long dftwrkgrpid[]
  6224. Long mtrltypeid[],scid[]
  6225. String promode[]
  6226. Int ordertype[],ifselforder[]
  6227. Long modleid[]
  6228. String modlename[],wenli[],fengbian[],paikong[],luoji[],penyou[]
  6229. String wenli_mtrl[],fengbian_mtrl[],paikong_mtrl[],luoji_mtrl[],penyou_mtrl[],promode_mtrl[],gydscrp_mtrl[],pfklmode_mtrl[]
  6230. int outtype[],ifpack[],direction[],bantype[]
  6231. decimal midu[]
  6232. string ls_dscrp_mtrl[]
  6233. decimal ld_long,ld_height,ld_width,ld_cubage
  6234. Declare cur_pf Cursor For
  6235. Select u_mtrldef.mtrlcode,
  6236. u_mtrldef.mtrlprp,
  6237. u_PrdPF.wrkgrpid,
  6238. u_PrdPF.Sonscale,
  6239. u_PrdPF.SonLoss,
  6240. u_PrdPF.SonDECLosS,
  6241. u_PrdPF.status,
  6242. u_PrdPF.woodcode,
  6243. u_PrdPF.pcode,
  6244. u_PrdPF.Sonahead,
  6245. u_mtrldef.mtrlname,
  6246. u_mtrldef.unit,
  6247. u_mtrldef.mtrlmode,
  6248. u_mtrldef.mtrlsectype,
  6249. u_mtrldef.zxmtrlmode,
  6250. u_sc_wkp.wrkGrpName,
  6251. u_mtrldef.statusflag,
  6252. u_mtrldef.statustype,
  6253. u_mtrldef.woodcodeflag,
  6254. u_mtrldef.woodcodetype,
  6255. u_mtrldef.pcodeflag,
  6256. u_mtrldef.pcodetype,
  6257. u_mtrldef.usermtrlmode,
  6258. u_mtrldef.Mtrlorigin,
  6259. u_PrdPF.sonpfcode,
  6260. u_PrdPF.SonMtrlid,
  6261. u_PrdPF.printid,
  6262. u_prdpf.pfgroup,
  6263. u_prdpf.pfgroupqty,
  6264. u_prdpf.pfgroupmode,
  6265. u_prdpf.pfklmode,
  6266. u_prdpf.dscrp,
  6267. u_prdpf.baseqty,
  6268. u_prdpf.scllloss,
  6269. u_prdpf.sclldecloss,
  6270. u_prdpf.ifover,
  6271. u_prdpf.dipztype,
  6272. u_prdpf.buyarg,
  6273. u_mtrldef.orderdays,
  6274. u_mtrldef.buydays,
  6275. u_mtrldef.wfjgdays,
  6276. u_mtrldef.dftwrkgrpid,
  6277. u_mtrldef.scid,
  6278. u_mtrldef.mtrltypeid,
  6279. u_prdpf.promode,
  6280. u_mtrldef.ifselforder,
  6281. u_mtrldef.ordertype,
  6282. u_prdpf.modleid,
  6283. u_prdpf.modlename,
  6284. u_PrdPF.wenli,
  6285. u_PrdPF.fengbian,
  6286. u_PrdPF.paikong,
  6287. u_PrdPF.luoji,
  6288. u_PrdPF.penyou,
  6289. isnull(u_mtrldef_ban.promode,'') as promode,
  6290. isnull(u_mtrldef_ban.wenli,'') as wenli,
  6291. isnull(u_mtrldef_ban.fengbian,'') as fengbian,
  6292. isnull(u_mtrldef_ban.paikong,'') as paikong,
  6293. isnull(u_mtrldef_ban.luoji,'') as luoji,
  6294. isnull(u_mtrldef_ban.penyou,'') as penyou,
  6295. isnull(u_mtrldef_ban.gydscrp,'') as gydscrp,
  6296. u_mtrldef.outtype,
  6297. u_mtrldef.ifpack,
  6298. isnull(u_mtrldef_ban.direction,0) as direction,
  6299. u_mtrldef.midu,
  6300. isnull(u_mtrldef_ban.pfklmode,0) as pfklmode,
  6301. u_mtrldef.dscrp,
  6302. u_mtrldef.bantype
  6303. From u_PrdPF Inner JOIN
  6304. u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid LEFT Outer JOIN
  6305. u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid LEFT Outer JOIN
  6306. u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid
  6307. Where u_prdpf.mtrlid = :arg_mtrlid
  6308. And u_prdpf.pfcode = :arg_pfcode
  6309. Order By u_PrdPF.printid;
  6310. Open cur_pf;
  6311. count = 1
  6312. Fetch cur_pf Into :mtrlcode[count],:mtrlprp[count],:wrkgrpid[count],&
  6313. :Sonscale[count],:SonLoss[count],:SonDECLosS[count],:status[count],&
  6314. :woodcode[count],:pcode[count],:Sonahead[count],:mtrlname[count],:unit[count],&
  6315. :mtrlmode[count],:mtrlsectype[count],:zxmtrlmode[count],:wrkGrpName[count],&
  6316. :statusflag[count],:statustype[count],:woodcodeflag[count],:woodcodetype[count],&
  6317. :pcodeflag[count],:pcodetype[count],:usermtrlmode[count],:Mtrlorigin[count],&
  6318. :sonpfcode[count],:SonMtrlid[count],:printid[count],&
  6319. :pfgroup[count],:pfgroupqty[count],:pfgroupmode[count],:pfklmode[count],:dscrp[count],&
  6320. :baseqty[count],:scllloss[count],:sclldecloss[count],:ifover[count],:dipztype[count],&
  6321. :buyarg[count],:orderdays[count],:buydays[count],:wfjgdays[count],&
  6322. :dftwrkgrpid[count],:scid[count],:mtrltypeid[count],:promode[count],&
  6323. :ifselforder[count],:ordertype[count],:modleid[count],:modlename[count],&
  6324. :wenli[count], :fengbian[count], :paikong[count], :luoji[count], :penyou[count],&
  6325. :promode_mtrl[count],:wenli_mtrl[count],:fengbian_mtrl[count],:paikong_mtrl[count],:luoji_mtrl[count],:penyou_mtrl[count],:gydscrp_mtrl[count],:outtype[count],&
  6326. :ifpack[count],:direction[count],:midu[count],:pfklmode_mtrl[count],:ls_dscrp_mtrl[count],:bantype[count];
  6327. Do While sqlca.SQLCode = 0
  6328. count++
  6329. Fetch cur_pf Into :mtrlcode[count],:mtrlprp[count],:wrkgrpid[count],&
  6330. :Sonscale[count],:SonLoss[count],:SonDECLosS[count],:status[count],&
  6331. :woodcode[count],:pcode[count],:Sonahead[count],:mtrlname[count],:unit[count],&
  6332. :mtrlmode[count],:mtrlsectype[count],:zxmtrlmode[count],:wrkGrpName[count],&
  6333. :statusflag[count],:statustype[count],:woodcodeflag[count],:woodcodetype[count],&
  6334. :pcodeflag[count],:pcodetype[count],:usermtrlmode[count],:Mtrlorigin[count],&
  6335. :sonpfcode[count],:SonMtrlid[count],:printid[count],&
  6336. :pfgroup[count],:pfgroupqty[count],:pfgroupmode[count],:pfklmode[count],:dscrp[count],&
  6337. :baseqty[count],:scllloss[count],:sclldecloss[count],:ifover[count],:dipztype[count],&
  6338. :buyarg[count],:orderdays[count],:buydays[count],:wfjgdays[count],&
  6339. :dftwrkgrpid[count],:scid[count],:mtrltypeid[count],:promode[count],&
  6340. :ifselforder[count],:ordertype[count],:modleid[count],:modlename[count],&
  6341. :wenli[count], :fengbian[count], :paikong[count], :luoji[count], :penyou[count],&
  6342. :promode_mtrl[count],:wenli_mtrl[count],:fengbian_mtrl[count],:paikong_mtrl[count],:luoji_mtrl[count],:penyou_mtrl[count],:gydscrp_mtrl[count],:outtype[count],&
  6343. :ifpack[count],:direction[count],:midu[count],:pfklmode_mtrl[count],:ls_dscrp_mtrl[count],:bantype[count];
  6344. Loop
  6345. count = count - 1
  6346. Close cur_pf;
  6347. For ll_i = 1 To count
  6348. ld_qty = Round(((Sonscale[ll_i]/(1 - SonLoss[ll_i])+ SonDECLosS[ll_i]) / ld_cmpqty) * arg_qty,sys_option_produce_dec)
  6349. ll_row = dw_1.InsertRow(0)
  6350. dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode[ll_i]
  6351. dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp[ll_i]
  6352. dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid[ll_i]
  6353. dw_1.Object.u_PrdPF_Sonscale[ll_row] = Sonscale[ll_i] * arg_qty
  6354. dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = Sonscale[ll_i] * arg_qty
  6355. dw_1.Object.u_PrdPF_SonLoss[ll_row] = SonLoss[ll_i]
  6356. dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = SonDECLosS[ll_i]
  6357. dw_1.Object.u_PrdPF_status[ll_row] = status[ll_i]
  6358. dw_1.Object.u_PrdPF_woodcode[ll_row] = woodcode[ll_i]
  6359. dw_1.Object.u_PrdPF_pcode[ll_row] = pcode[ll_i]
  6360. dw_1.Object.u_PrdPF_Sonahead[ll_row] = Sonahead[ll_i]
  6361. dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname[ll_i]
  6362. dw_1.Object.u_mtrldef_unit[ll_row] = unit[ll_i]
  6363. dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode[ll_i]
  6364. dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype[ll_i]
  6365. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode[ll_i]
  6366. dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName[ll_i]
  6367. dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag[ll_i]
  6368. dw_1.Object.u_mtrldef_statustype[ll_row] = statustype[ll_i]
  6369. dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag[ll_i]
  6370. dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype[ll_i]
  6371. dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag[ll_i]
  6372. dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype[ll_i]
  6373. dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode[ll_i]
  6374. dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin[ll_i]
  6375. dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder[ll_i]
  6376. dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype[ll_i]
  6377. dw_1.Object.lp[ll_row] = arg_lp
  6378. If arg_lp = 1 Then
  6379. dw_1.Object.iflock[ll_row] = 0
  6380. End If
  6381. dw_1.Object.u_mtrldef_mtrlid[ll_row] = SonMtrlid[ll_i]
  6382. dw_1.Object.u_prdpf_sonmtrlid[ll_row] = SonMtrlid[ll_i]
  6383. dw_1.Object.pmtrlid[ll_row] = arg_mtrlid
  6384. dw_1.Object.u_prdpf_printid[ll_row] = printid[ll_i]
  6385. dw_1.Object.u_prdpf_sonpfcode[ll_row] = sonpfcode[ll_i]
  6386. dw_1.Object.u_prdpf_pfgroup[ll_row] = pfgroup[ll_i]
  6387. dw_1.Object.u_prdpf_pfgroupqty[ll_row] = pfgroupqty[ll_i]
  6388. dw_1.Object.u_prdpf_pfgroupmode[ll_row] = pfgroupmode[ll_i]
  6389. dw_1.Object.u_prdpf_pfklmode[ll_row] = pfklmode[ll_i]
  6390. dw_1.Object.u_prdpf_dscrp[ll_row] = dscrp[ll_i]
  6391. dw_1.Object.u_prdpf_baseqty[ll_row] = baseqty[ll_i]
  6392. dw_1.Object.u_prdpf_scllloss[ll_row] = scllloss[ll_i]
  6393. dw_1.Object.u_prdpf_sclldecloss[ll_row] = sclldecloss[ll_i]
  6394. dw_1.Object.u_prdpf_ifover[ll_row] = ifover[ll_i]
  6395. dw_1.Object.u_prdpf_dipztype[ll_row] = dipztype[ll_i]
  6396. dw_1.Object.u_prdpf_buyarg[ll_row] = buyarg[ll_i]
  6397. dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays[ll_i]
  6398. dw_1.Object.u_mtrldef_buydays[ll_row] = buydays[ll_i]
  6399. dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays[ll_i]
  6400. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = dftwrkgrpid[ll_i]
  6401. dw_1.Object.u_mtrldef_scid[ll_row] = scid[ll_i]
  6402. dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = mtrltypeid[ll_i]
  6403. dw_1.Object.u_prdpf_promode[ll_row] = promode[ll_i]
  6404. dw_1.Object.u_prdpf_modleid[ll_row] = modleid[ll_i]
  6405. dw_1.Object.u_prdpf_modlename[ll_row] = modlename[ll_i]
  6406. dw_1.Object.u_PrdPF_wenli[ll_row] = wenli[ll_i]
  6407. dw_1.Object.u_PrdPF_fengbian[ll_row] = fengbian[ll_i]
  6408. dw_1.Object.u_PrdPF_paikong[ll_row] = paikong[ll_i]
  6409. dw_1.Object.u_PrdPF_luoji[ll_row] = luoji[ll_i]
  6410. dw_1.Object.u_PrdPF_penyou[ll_row] = penyou[ll_i]
  6411. dw_1.Object.u_mtrldef_ban_promode[ll_row] = promode_mtrl[ll_i]
  6412. dw_1.Object.u_mtrldef_ban_wenli[ll_row] = wenli_mtrl[ll_i]
  6413. dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = fengbian_mtrl[ll_i]
  6414. dw_1.Object.u_mtrldef_ban_paikong[ll_row] = paikong_mtrl[ll_i]
  6415. dw_1.Object.u_mtrldef_ban_luoji[ll_row] = luoji_mtrl[ll_i]
  6416. dw_1.Object.u_mtrldef_ban_penyou[ll_row] = penyou_mtrl[ll_i]
  6417. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = gydscrp_mtrl[ll_i]
  6418. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = pfklmode_mtrl[ll_i]
  6419. dw_1.Object.u_mtrldef_dscrp[ll_row] = ls_dscrp_mtrl[ll_i]
  6420. dw_1.Object.u_mtrldef_ban_direction[ll_row] = direction[ll_i]
  6421. dw_1.Object.u_mtrldef_outtype[ll_row] = outtype[ll_i]
  6422. dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack[ll_i]
  6423. dw_1.Object.u_mtrldef_midu[ll_row] = midu[ll_i]
  6424. f_mtrlmode_trans(mtrlmode[ll_i],ld_long,ld_width,ld_height)
  6425. ld_cubage = ld_long * ld_width * ld_height / 1000000000
  6426. dw_1.Object.cubage[ll_row] = ld_cubage
  6427. dw_1.Object.length[ll_row] = ld_long
  6428. dw_1.Object.width[ll_row] = ld_width
  6429. dw_1.Object.u_mtrldef_bantype[ll_row] = bantype[ll_i]
  6430. If wf_addmx(SonMtrlid[ll_i],sonpfcode[ll_i],arg_lp + 1,ld_qty,arg_msg) = 0 Then
  6431. rslt = 0
  6432. Goto ext
  6433. End If
  6434. Next
  6435. ext:
  6436. Return rslt
  6437. end function
  6438. public function integer wf_addmx_row (long arg_mtrlid, string arg_pfcode, long arg_lp, long arg_row, decimal arg_qty, ref string arg_msg);Int rslt = 1
  6439. Decimal ld_cmpqty
  6440. String ls_mtrlcode
  6441. Long count,ll_i
  6442. Decimal ld_qty
  6443. Long ll_row
  6444. Select mtrlcode,cmpqty
  6445. Into :ls_mtrlcode,:ld_cmpqty
  6446. From u_mtrldef
  6447. Where mtrlid = :arg_mtrlid;
  6448. If sqlca.SQLCode <> 0 Then
  6449. arg_msg = '查询物料清单基数失败,ID:'+String(arg_mtrlid)+','+sqlca.SQLErrText
  6450. rslt = 0
  6451. Goto ext
  6452. End If
  6453. If ld_cmpqty <= 0 Then
  6454. arg_msg = '不合理的物料清单基数,物料:'+ls_mtrlcode
  6455. rslt = 0
  6456. Goto ext
  6457. End If
  6458. If arg_pfcode = '' Then
  6459. arg_pfcode = f_get_dft_pf(arg_mtrlid)
  6460. End If
  6461. String mtrlcode[]
  6462. Long mtrlprp[]
  6463. Long wrkgrpid[]
  6464. Decimal Sonscale[],SonLoss[],SonDECLosS[]
  6465. String status[],woodcode[],pcode[]
  6466. Decimal Sonahead[]
  6467. String mtrlname[],unit[],mtrlmode[],mtrlsectype[],zxmtrlmode[],wrkGrpName[]
  6468. Long statusflag[],statustype[],woodcodeflag[],woodcodetype[],pcodeflag[],pcodetype[]
  6469. String usermtrlmode[]
  6470. Long Mtrlorigin[]
  6471. String sonpfcode[]
  6472. Long SonMtrlid[],printid[]
  6473. String pfgroup[]
  6474. Decimal pfgroupqty[]
  6475. String pfgroupmode[],pfklmode[],dscrp[]
  6476. Decimal baseqty[],scllloss[],sclldecloss[]
  6477. Long ifover[],dipztype[]
  6478. Decimal buyarg[],orderdays[],buydays[],wfjgdays[]
  6479. Int ordertype[],ifselforder[],ifpack[]
  6480. Long ll_mtrltypeid[],ll_dftwrkgrpid[]
  6481. Decimal ld_cubage,ld_long,ld_width,ld_height
  6482. String wenli_mtrl[],fengbian_mtrl[],paikong_mtrl[],luoji_mtrl[],penyou_mtrl[],promode_mtrl[],gydscrp_mtrl[]
  6483. Int direction[]
  6484. Decimal midu[]
  6485. string pfklmode_mtrl[]
  6486. string ls_dscrp_mtrl[]
  6487. int bantype[]
  6488. Declare cur_pf Cursor For
  6489. Select u_mtrldef.mtrlcode,
  6490. u_mtrldef.mtrlprp,
  6491. u_PrdPF.wrkgrpid,
  6492. u_PrdPF.Sonscale,
  6493. u_PrdPF.SonLoss,
  6494. u_PrdPF.SonDECLosS,
  6495. u_PrdPF.status,
  6496. u_PrdPF.woodcode,
  6497. u_PrdPF.pcode,
  6498. u_PrdPF.Sonahead,
  6499. u_mtrldef.mtrlname,
  6500. u_mtrldef.unit,
  6501. u_mtrldef.mtrlmode,
  6502. u_mtrldef.mtrlsectype,
  6503. u_mtrldef.zxmtrlmode,
  6504. u_sc_wkp.wrkGrpName,
  6505. u_mtrldef.statusflag,
  6506. u_mtrldef.statustype,
  6507. u_mtrldef.woodcodeflag,
  6508. u_mtrldef.woodcodetype,
  6509. u_mtrldef.pcodeflag,
  6510. u_mtrldef.pcodetype,
  6511. u_mtrldef.usermtrlmode,
  6512. u_mtrldef.Mtrlorigin,
  6513. u_PrdPF.sonpfcode,
  6514. u_PrdPF.SonMtrlid,
  6515. u_PrdPF.printid,
  6516. u_prdpf.pfgroup,
  6517. u_prdpf.pfgroupqty,
  6518. u_prdpf.pfgroupmode,
  6519. u_prdpf.pfklmode,
  6520. u_prdpf.dscrp,
  6521. u_prdpf.baseqty,
  6522. u_prdpf.scllloss,
  6523. u_prdpf.sclldecloss,
  6524. u_prdpf.ifover,
  6525. u_prdpf.dipztype,
  6526. u_prdpf.buyarg,
  6527. u_mtrldef.orderdays,
  6528. u_mtrldef.buydays,
  6529. u_mtrldef.wfjgdays,
  6530. u_mtrldef.ordertype,
  6531. u_mtrldef.ifselforder,
  6532. u_mtrldef.mtrltypeid,
  6533. u_mtrldef.dftwrkgrpid,
  6534. u_mtrldef.ifpack,
  6535. isnull(u_mtrldef_ban.promode,'') as promode,
  6536. isnull(u_mtrldef_ban.wenli,'') as wenli,
  6537. isnull(u_mtrldef_ban.fengbian,'') as fengbian,
  6538. isnull(u_mtrldef_ban.paikong,'') as paikong,
  6539. isnull(u_mtrldef_ban.luoji,'') as luoji,
  6540. isnull(u_mtrldef_ban.penyou,'') as penyou,
  6541. isnull(u_mtrldef_ban.gydscrp,'') as gydscrp,
  6542. isnull(u_mtrldef_ban.direction,0) as direction,
  6543. u_mtrldef.midu,
  6544. isnull(u_mtrldef_ban.pfklmode,'') as pfklmode,
  6545. u_mtrldef.dscrp,
  6546. u_mtrldef.bantype
  6547. From u_PrdPF Inner JOIN
  6548. u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid LEFT Outer JOIN
  6549. u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid LEFT Outer JOIN
  6550. u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid
  6551. Where u_prdpf.mtrlid = :arg_mtrlid
  6552. And u_prdpf.pfcode = :arg_pfcode
  6553. Order By u_PrdPF.printid Desc;
  6554. Open cur_pf;
  6555. count = 1
  6556. Fetch cur_pf Into :mtrlcode[count],:mtrlprp[count],:wrkgrpid[count],&
  6557. :Sonscale[count],:SonLoss[count],:SonDECLosS[count],:status[count],&
  6558. :woodcode[count],:pcode[count],:Sonahead[count],:mtrlname[count],:unit[count],&
  6559. :mtrlmode[count],:mtrlsectype[count],:zxmtrlmode[count],:wrkGrpName[count],&
  6560. :statusflag[count],:statustype[count],:woodcodeflag[count],:woodcodetype[count],&
  6561. :pcodeflag[count],:pcodetype[count],:usermtrlmode[count],:Mtrlorigin[count],&
  6562. :sonpfcode[count],:SonMtrlid[count],:printid[count],&
  6563. :pfgroup[count],:pfgroupqty[count],:pfgroupmode[count],:pfklmode[count],:dscrp[count],&
  6564. :baseqty[count],:scllloss[count],:sclldecloss[count],:ifover[count],:dipztype[count],&
  6565. :buyarg[count],:orderdays[count],:buydays[count],:wfjgdays[count],&
  6566. :ordertype[count],:ifselforder[count],:ll_mtrltypeid[count],:ll_dftwrkgrpid[count],:ifpack[count],&
  6567. :promode_mtrl[count],:wenli_mtrl[count],:fengbian_mtrl[count],:paikong_mtrl[count],:luoji_mtrl[count],:penyou_mtrl[count],:gydscrp_mtrl[count],&
  6568. :direction[count],:midu[count],:pfklmode_mtrl[count],:ls_dscrp_mtrl[count],:bantype[count];
  6569. Do While sqlca.SQLCode = 0
  6570. count++
  6571. Fetch cur_pf Into :mtrlcode[count],:mtrlprp[count],:wrkgrpid[count],&
  6572. :Sonscale[count],:SonLoss[count],:SonDECLosS[count],:status[count],&
  6573. :woodcode[count],:pcode[count],:Sonahead[count],:mtrlname[count],:unit[count],&
  6574. :mtrlmode[count],:mtrlsectype[count],:zxmtrlmode[count],:wrkGrpName[count],&
  6575. :statusflag[count],:statustype[count],:woodcodeflag[count],:woodcodetype[count],&
  6576. :pcodeflag[count],:pcodetype[count],:usermtrlmode[count],:Mtrlorigin[count],&
  6577. :sonpfcode[count],:SonMtrlid[count],:printid[count],&
  6578. :pfgroup[count],:pfgroupqty[count],:pfgroupmode[count],:pfklmode[count],:dscrp[count],&
  6579. :baseqty[count],:scllloss[count],:sclldecloss[count],:ifover[count],:dipztype[count],&
  6580. :buyarg[count],:orderdays[count],:buydays[count],:wfjgdays[count],&
  6581. :ordertype[count],:ifselforder[count],:ll_mtrltypeid[count],:ll_dftwrkgrpid[count],:ifpack[count],&
  6582. :promode_mtrl[count],:wenli_mtrl[count],:fengbian_mtrl[count],:paikong_mtrl[count],:luoji_mtrl[count],:penyou_mtrl[count],:gydscrp_mtrl[count],&
  6583. :direction[count],:midu[count],:pfklmode_mtrl[count],:ls_dscrp_mtrl[count],:bantype[count];
  6584. Loop
  6585. count = count - 1
  6586. Close cur_pf;
  6587. For ll_i = 1 To count
  6588. ld_qty = Round(((Sonscale[ll_i]/(1 - SonLoss[ll_i])+ SonDECLosS[ll_i]) / ld_cmpqty) * arg_qty,sys_option_produce_dec)
  6589. ll_row = dw_1.InsertRow(arg_row)
  6590. dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode[ll_i]
  6591. dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp[ll_i]
  6592. dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid[ll_i]
  6593. dw_1.Object.u_PrdPF_Sonscale[ll_row] = ld_qty //Sonscale[ll_i]
  6594. dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = ld_qty //Sonscale[ll_i]
  6595. dw_1.Object.u_PrdPF_SonLoss[ll_row] = SonLoss[ll_i]
  6596. dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = SonDECLosS[ll_i]
  6597. dw_1.Object.u_PrdPF_status[ll_row] = status[ll_i]
  6598. dw_1.Object.u_PrdPF_woodcode[ll_row] = woodcode[ll_i]
  6599. dw_1.Object.u_PrdPF_pcode[ll_row] = pcode[ll_i]
  6600. dw_1.Object.u_PrdPF_Sonahead[ll_row] = Sonahead[ll_i]
  6601. dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname[ll_i]
  6602. dw_1.Object.u_mtrldef_unit[ll_row] = unit[ll_i]
  6603. dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode[ll_i]
  6604. dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype[ll_i]
  6605. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode[ll_i]
  6606. dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName[ll_i]
  6607. dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag[ll_i]
  6608. dw_1.Object.u_mtrldef_statustype[ll_row] = statustype[ll_i]
  6609. dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag[ll_i]
  6610. dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype[ll_i]
  6611. dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag[ll_i]
  6612. dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype[ll_i]
  6613. dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode[ll_i]
  6614. dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin[ll_i]
  6615. dw_1.Object.lp[ll_row] = arg_lp
  6616. dw_1.Object.u_mtrldef_mtrlid[ll_row] = SonMtrlid[ll_i]
  6617. dw_1.Object.u_prdpf_sonmtrlid[ll_row] = SonMtrlid[ll_i]
  6618. dw_1.Object.pmtrlid[ll_row] = arg_mtrlid
  6619. dw_1.Object.u_prdpf_printid[ll_row] = printid[ll_i]
  6620. dw_1.Object.u_prdpf_sonpfcode[ll_row] = sonpfcode[ll_i]
  6621. dw_1.Object.u_prdpf_pfgroup[ll_row] = pfgroup[ll_i]
  6622. dw_1.Object.u_prdpf_pfgroupqty[ll_row] = pfgroupqty[ll_i]
  6623. dw_1.Object.u_prdpf_pfgroupmode[ll_row] = pfgroupmode[ll_i]
  6624. dw_1.Object.u_prdpf_pfklmode[ll_row] = pfklmode[ll_i]
  6625. dw_1.Object.u_prdpf_dscrp[ll_row] = dscrp[ll_i]
  6626. dw_1.Object.u_prdpf_baseqty[ll_row] = baseqty[ll_i]
  6627. dw_1.Object.u_prdpf_scllloss[ll_row] = scllloss[ll_i]
  6628. dw_1.Object.u_prdpf_sclldecloss[ll_row] = sclldecloss[ll_i]
  6629. dw_1.Object.u_prdpf_ifover[ll_row] = ifover[ll_i]
  6630. dw_1.Object.u_prdpf_dipztype[ll_row] = dipztype[ll_i]
  6631. dw_1.Object.u_prdpf_buyarg[ll_row] = buyarg[ll_i]
  6632. dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays[ll_i]
  6633. dw_1.Object.u_mtrldef_buydays[ll_row] = buydays[ll_i]
  6634. dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays[ll_i]
  6635. dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder[ll_i]
  6636. dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype[ll_i]
  6637. dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = ll_mtrltypeid[ll_i]
  6638. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = ll_dftwrkgrpid[ll_i]
  6639. dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack[ll_i]
  6640. f_mtrlmode_trans(mtrlmode[ll_i],ld_long,ld_width,ld_height)
  6641. ld_cubage = ld_long * ld_width * ld_height / 1000000000
  6642. dw_1.Object.cubage[ll_row] = ld_cubage
  6643. dw_1.Object.Length[ll_row] = ld_long
  6644. dw_1.Object.Width[ll_row] = ld_width
  6645. dw_1.Object.u_mtrldef_ban_promode[ll_row] = promode_mtrl[ll_i]
  6646. dw_1.Object.u_mtrldef_ban_wenli[ll_row] = wenli_mtrl[ll_i]
  6647. dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = fengbian_mtrl[ll_i]
  6648. dw_1.Object.u_mtrldef_ban_paikong[ll_row] = paikong_mtrl[ll_i]
  6649. dw_1.Object.u_mtrldef_ban_luoji[ll_row] = luoji_mtrl[ll_i]
  6650. dw_1.Object.u_mtrldef_ban_penyou[ll_row] = penyou_mtrl[ll_i]
  6651. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = gydscrp_mtrl[ll_i]
  6652. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = pfklmode_mtrl[ll_i]
  6653. dw_1.Object.u_mtrldef_ban_direction[ll_row] = direction[ll_i]
  6654. dw_1.Object.u_mtrldef_midu[ll_row] = midu[ll_i]
  6655. dw_1.Object.u_mtrldef_dscrp[ll_row] = ls_dscrp_mtrl[ll_i]
  6656. dw_1.Object.u_mtrldef_bantype[ll_row] = bantype[ll_i]
  6657. If wf_addmx_row(SonMtrlid[ll_i],sonpfcode[ll_i],arg_lp + 1,arg_row + 1 ,ld_qty,arg_msg) = 0 Then
  6658. rslt = 0
  6659. Goto ext
  6660. End If
  6661. Next
  6662. ext:
  6663. Return rslt
  6664. end function
  6665. public function integer wf_face_wp ();Int LS_INT
  6666. IF ins_ifmod_wp THEN
  6667. cb_save_wp.Enabled = TRUE
  6668. cb_edit_wp.Text = '放弃'
  6669. cb_edit_wp.normalpicname = 'Undo.bmp'
  6670. cb_addmx_wp.Enabled = TRUE
  6671. cb_delmx_wp.Enabled = TRUE
  6672. rb_1.enabled = false
  6673. rb_2.enabled = false
  6674. cb_templet_ch.enabled = true
  6675. FOR LS_INT = 1 TO 26
  6676. dw_2.SetTabOrder (LS_INT,LS_INT*10 )
  6677. NEXT
  6678. FOR LS_INT = 1 TO 17
  6679. dw_3.SetTabOrder (LS_INT,LS_INT*10 )
  6680. NEXT
  6681. ELSE
  6682. cb_save_wp.Enabled = FALSE
  6683. cb_edit_wp.Text = '修改'
  6684. cb_edit_wp.normalpicname = 'open.bmp'
  6685. cb_addmx_wp.Enabled = FALSE
  6686. cb_delmx_wp.Enabled = FALSE
  6687. rb_1.enabled = true
  6688. rb_2.enabled = true
  6689. cb_templet_ch.enabled = false
  6690. FOR LS_INT = 1 TO 26
  6691. dw_2.SetTabOrder (LS_INT, 0)
  6692. NEXT
  6693. FOR LS_INT = 1 TO 17
  6694. dw_3.SetTabOrder (LS_INT, 0)
  6695. NEXT
  6696. END IF
  6697. cb_edit_wp.of_init_draw()
  6698. cb_edit_wp.of_paint()
  6699. cb_edit_wp.TriggerEvent('ue_textchange')
  6700. RETURN 1
  6701. end function
  6702. public subroutine wf_re_mtrl (integer arg_if_addmx);String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg
  6703. IF ins_mtrlid = 0 THEN
  6704. st_mtrl.Text = ''
  6705. st_mtrl_pf.Text = ''
  6706. RETURN
  6707. END IF
  6708. IF ins_if_saletask = 0 and ins_pfcode = '' THEN
  6709. ins_pfcode = f_get_dft_pf(ins_mtrlid_pf)
  6710. IF ins_pfcode = '' THEN
  6711. MessageBox('系统提示','目标产品未设置默认清单,请检查')
  6712. RETURN
  6713. END IF
  6714. END IF
  6715. SELECT mtrlcode,mtrlname
  6716. INTO :ls_mtrlcode,:ls_mtrlname
  6717. FROM u_mtrldef
  6718. Where mtrlid = :ins_mtrlid_pf;
  6719. IF sqlca.SQLCode <> 0 THEN
  6720. st_mtrl.Text = '查询物料信息失败'
  6721. st_mtrl_pf.Text = '查询物料信息失败'
  6722. ELSE
  6723. st_mtrl.Text = '['+ls_mtrlcode+']'+ls_mtrlname + ' | ' + ins_pfcode
  6724. st_mtrl_pf.Text = '['+ls_mtrlcode+']'+ls_mtrlname
  6725. ins_mtrlcode = ls_mtrlcode
  6726. ins_mtrlname = ls_mtrlname
  6727. END IF
  6728. IF ins_mtrlid > 0 THEN
  6729. dw_1.SetRedraw(False)
  6730. dw_1.Reset()
  6731. String mtrlcode
  6732. Long mtrlprp
  6733. Long wrkgrpid
  6734. String mtrlname,unit,mtrlmode,mtrlsectype,zxmtrlmode,wrkGrpName
  6735. Long statusflag,statustype,woodcodeflag,woodcodetype,pcodeflag,pcodetype
  6736. String usermtrlmode
  6737. Long Mtrlorigin
  6738. Decimal buyarg,orderdays,buydays,wfjgdays
  6739. Long mtrltypeid,scid,dftwrkgrpid
  6740. Int ordertype,ifselforder
  6741. Long ll_row
  6742. int ifpack
  6743. decimal ld_cubage,ld_long , ld_width , ld_height
  6744. int li_bantype
  6745. SELECT u_mtrldef.mtrlcode,
  6746. u_mtrldef.mtrlprp,
  6747. u_mtrldef.mtrlname,
  6748. u_mtrldef.unit,
  6749. u_mtrldef.mtrlmode,
  6750. u_mtrldef.mtrlsectype,
  6751. u_mtrldef.zxmtrlmode,
  6752. u_sc_wkp.wrkGrpName,
  6753. u_mtrldef.statusflag,
  6754. u_mtrldef.statustype,
  6755. u_mtrldef.woodcodeflag,
  6756. u_mtrldef.woodcodetype,
  6757. u_mtrldef.pcodeflag,
  6758. u_mtrldef.pcodetype,
  6759. u_mtrldef.usermtrlmode,
  6760. u_mtrldef.Mtrlorigin,
  6761. u_mtrldef.orderdays,
  6762. u_mtrldef.buydays,
  6763. u_mtrldef.wfjgdays,
  6764. u_mtrldef.mtrltypeid,
  6765. u_mtrldef.scid,
  6766. u_mtrldef.dftwrkgrpid,
  6767. u_mtrldef.ifselforder,
  6768. u_mtrldef.ordertype,
  6769. u_mtrldef.ifpack,
  6770. u_mtrldef.bantype
  6771. INTO :mtrlcode,
  6772. :mtrlprp,
  6773. :mtrlname,
  6774. :unit,
  6775. :mtrlmode,
  6776. :mtrlsectype,
  6777. :zxmtrlmode,
  6778. :wrkGrpName,
  6779. :statusflag,
  6780. :statustype,
  6781. :woodcodeflag,
  6782. :woodcodetype,
  6783. :pcodeflag,
  6784. :pcodetype,
  6785. :usermtrlmode,
  6786. :Mtrlorigin,
  6787. :orderdays,
  6788. :buydays,
  6789. :wfjgdays,
  6790. :mtrltypeid,
  6791. :scid,
  6792. :dftwrkgrpid,
  6793. :ifselforder,
  6794. :ordertype,
  6795. :ifpack,
  6796. :li_bantype
  6797. FROM u_mtrldef LEFT OUTER JOIN
  6798. u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid
  6799. Where u_mtrldef.mtrlid = :ins_mtrlid;
  6800. IF sqlca.SQLCode <> 0 THEN
  6801. MessageBox('Error','查询物料信息失败,'+sqlca.SQLErrText)
  6802. RETURN
  6803. END IF
  6804. ll_row = dw_1.InsertRow(0)
  6805. dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode
  6806. dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp
  6807. dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid
  6808. dw_1.Object.u_PrdPF_Sonscale[ll_row] = 1
  6809. dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = 1
  6810. dw_1.Object.u_PrdPF_SonLoss[ll_row] = 0
  6811. dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = 0
  6812. dw_1.Object.u_PrdPF_status[ll_row] = ''
  6813. dw_1.Object.u_PrdPF_woodcode[ll_row] = ''
  6814. dw_1.Object.u_PrdPF_pcode[ll_row] = ''
  6815. dw_1.Object.u_PrdPF_Sonahead[ll_row] = 0
  6816. dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname
  6817. dw_1.Object.u_mtrldef_unit[ll_row] = unit
  6818. dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode
  6819. dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype
  6820. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode
  6821. dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName
  6822. dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag
  6823. dw_1.Object.u_mtrldef_statustype[ll_row] = statustype
  6824. dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag
  6825. dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype
  6826. dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag
  6827. dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype
  6828. dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode
  6829. dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin
  6830. dw_1.Object.lp[ll_row] = 0
  6831. dw_1.Object.u_mtrldef_mtrlid[ll_row] = ins_mtrlid
  6832. dw_1.Object.u_prdpf_sonmtrlid[ll_row] = ins_mtrlid
  6833. dw_1.Object.pmtrlid[ll_row] = 0
  6834. dw_1.Object.u_prdpf_printid[ll_row] = 1
  6835. dw_1.Object.u_prdpf_sonpfcode[ll_row] = ins_pfcode
  6836. dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays
  6837. dw_1.Object.u_mtrldef_buydays[ll_row] = buydays
  6838. dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays
  6839. dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = mtrltypeid
  6840. dw_1.Object.u_mtrldef_scid[ll_row] = scid
  6841. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = dftwrkgrpid
  6842. dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype
  6843. dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder
  6844. dw_1.Object.iflock[ll_row] = 1
  6845. dw_1.Object.u_prdpf_sonpfcode[ll_row] = ins_pfcode
  6846. dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack
  6847. f_mtrlmode_trans(mtrlmode,ld_long,ld_width,ld_height)
  6848. ld_cubage = ld_long * ld_width * ld_height / 1000000000
  6849. dw_1.Object.cubage[ll_row] = ld_cubage
  6850. dw_1.Object.length[ll_row] = ld_long
  6851. dw_1.Object.width[ll_row] = ld_width
  6852. dw_1.Object.u_mtrldef_bantype[ll_row] = li_bantype
  6853. IF arg_if_addmx = 1 THEN
  6854. IF wf_addmx(ins_mtrlid,ins_pfcode,1,1,arg_msg) = 0 THEN
  6855. MessageBox('Error',arg_msg)
  6856. END IF
  6857. This.TriggerEvent('ue_allowedit')
  6858. This.TriggerEvent('ue_retrieve_workprice')
  6859. END IF
  6860. dw_1.SetRedraw(True)
  6861. END IF
  6862. end subroutine
  6863. public function integer wf_cmpprdpf (long arg_mtrlid, string arg_pfcode);String arg_msg
  6864. w_sys_wait.Show()
  6865. IF uo_pf.f_clearprdpfmx(arg_mtrlid,arg_pfcode,arg_msg,FALSE) = 0 THEN
  6866. MessageBox ("系统提示",arg_msg,exclamation!,ok!)
  6867. RETURN 0
  6868. END IF
  6869. uo_pf.deep_count = 0
  6870. uo_pf.il_printid = 0
  6871. IF uo_pf.f_cmpprdpf(arg_mtrlid,arg_mtrlid,arg_pfcode,arg_pfcode,1,1,1,arg_msg,FALSE,0) = 0 THEN
  6872. MessageBox ("系统提示",arg_msg,exclamation!,ok!)
  6873. RETURN 0
  6874. END IF
  6875. COMMIT;
  6876. w_sys_wait.hide()
  6877. RETURN 1
  6878. end function
  6879. public function integer wf_check_wkp (ref string arg_msg);Int rslt = 1
  6880. Long j,ll_mtrlid,ll_last_cnt
  6881. Long ll_maxlp = 0
  6882. String ls_mtrlcode
  6883. String ls_errmsg
  6884. IF dw_1.GetRow() <= 0 THEN
  6885. rslt = 0
  6886. arg_msg = '请选择物料'
  6887. GOTO ext
  6888. END IF
  6889. redel:
  6890. dw_3.AcceptText()
  6891. FOR j = 1 To dw_3.RowCount()
  6892. IF dw_3.Object.swkpid[j] = 0 Or dw_3.Object.owkpid[j] = 0 And dw_3.Object.iflast[j] = 0 THEN
  6893. dw_3.DeleteRow(j)
  6894. GOTO redel
  6895. END IF
  6896. NEXT
  6897. dw_3.AcceptText()
  6898. FOR j = 1 To dw_3.RowCount()
  6899. IF dw_3.Object.swkpid[j] = dw_3.Object.owkpid[j] THEN
  6900. rslt = 0
  6901. arg_msg = '第'+String(j)+'行,调出工组与调入工组相同,不能保存'
  6902. GOTO ext
  6903. END IF
  6904. IF sys_option_use_sc_date = 0 THEN
  6905. IF dw_3.Object.lastdays[j] < 0 THEN
  6906. rslt = 0
  6907. arg_msg = '第'+String(j)+'行,标准生产天数少于0,不能保存'
  6908. GOTO ext
  6909. END IF
  6910. IF Mod(dw_3.Object.lastdays[j],0.5) <> 0 THEN
  6911. rslt = 0
  6912. arg_msg = '第'+String(j)+'行,标准生产天数只能是0.5的倍数,请检查'
  6913. GOTO ext
  6914. END IF
  6915. dw_3.Object.lasthour[j] = dw_3.Object.lastdays[j] * 8
  6916. ELSE
  6917. IF dw_3.Object.lasthour[j] < 0 THEN
  6918. rslt = 0
  6919. arg_msg = '第'+String(j)+'行,标准生产时数少于0,不能保存'
  6920. GOTO ext
  6921. END IF
  6922. dw_3.Object.lasthour[j] = Int(dw_3.Object.lasthour[j] )
  6923. dw_3.Object.lastdays[j] = dw_3.Object.lasthour[j] / 8
  6924. END IF
  6925. IF dw_3.Object.iflast[j] = 1 THEN
  6926. ll_last_cnt++
  6927. END IF
  6928. NEXT
  6929. IF ll_last_cnt > 1 THEN
  6930. rslt = 0
  6931. arg_msg = '不能设置2个最后流程,请检查'
  6932. GOTO ext
  6933. END IF
  6934. FOR j = 1 To dw_3.RowCount()
  6935. IF dw_3.Object.iflast[j] = 1 THEN
  6936. dw_3.Object.owkpid[j] = 0
  6937. END IF
  6938. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[dw_1.GetRow()]
  6939. dw_3.Object.u_mtrldef_mtrlcode[j] = ls_mtrlcode
  6940. dw_3.Object.printid[j] = j
  6941. NEXT
  6942. dw_3.SetSort('printid')
  6943. dw_3.Sort()
  6944. ext:
  6945. RETURN rslt
  6946. end function
  6947. public function integer wf_add_row (long arg_mtrlid, string arg_pfcode, long arg_lp, decimal arg_qty, ref string arg_msg, ref long arg_row);Int rslt = 1
  6948. Long ll_row
  6949. Long cnt
  6950. Long ll_cnt
  6951. Long ll_mtrlid_p
  6952. String ls_mtrlcode_p
  6953. String ls_pfcode
  6954. Long ll_mtrlid
  6955. String ls_mtrlcode
  6956. String ls_mtrlname
  6957. Int li_mtrlprp
  6958. String ls_mtrlmode
  6959. String ls_unit
  6960. String ls_zxmtrlmode
  6961. String ls_mtrlsectype
  6962. Int li_statusflag
  6963. Int li_statustype
  6964. Int li_woodcodeflag
  6965. Int li_woodcodetype
  6966. Int li_pcodeflag
  6967. Int li_pcodetype
  6968. String ls_usermtrlmode
  6969. Int li_Mtrlorigin
  6970. Long ll_dftwrkgrpid
  6971. Long ll_scid
  6972. Long ll_mtrltypeid
  6973. String ls_wrkGrpName
  6974. Decimal ld_sonscale, lde_qty
  6975. Long ll_wrkgrpid_scll
  6976. Long ll_dftscllwkpid
  6977. Long ll_newrow
  6978. Decimal ld_midu
  6979. Int li_ifpack,li_outtype
  6980. Int ifselforder,ordertype,bantype
  6981. String ls_promode,ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou,ls_gydscrp,ls_pfklmode
  6982. Int ll_direction
  6983. string ls_dscrp
  6984. arg_row = 0
  6985. Select u_mtrldef.mtrlid,
  6986. u_mtrldef.mtrlcode,
  6987. u_mtrldef.mtrlname,
  6988. u_mtrldef.mtrlprp,
  6989. u_mtrldef.mtrlmode,
  6990. u_mtrldef.unit,
  6991. u_mtrldef.zxmtrlmode,
  6992. u_mtrldef.mtrlsectype,
  6993. u_mtrldef.statusflag,
  6994. u_mtrldef.statustype,
  6995. u_mtrldef.woodcodeflag,
  6996. u_mtrldef.woodcodetype,
  6997. u_mtrldef.pcodeflag,
  6998. u_mtrldef.pcodetype,
  6999. u_mtrldef.usermtrlmode,
  7000. u_mtrldef.Mtrlorigin,
  7001. u_mtrldef.dftwrkgrpid,
  7002. u_mtrldef.scid,
  7003. u_mtrldef.mtrltypeid,
  7004. isnull(u_sc_wkp.wrkGrpName,''),
  7005. u_mtrldef.dftscllwkpid,
  7006. u_mtrldef.midu,
  7007. u_mtrldef.ifpack,
  7008. u_mtrldef.outtype,
  7009. u_mtrldef.ifselforder,
  7010. u_mtrldef.ordertype,
  7011. u_mtrldef.bantype,
  7012. isnull(u_mtrldef_ban.promode,'') as promode,
  7013. isnull(u_mtrldef_ban.wenli,'') as wenli,
  7014. isnull(u_mtrldef_ban.fengbian,'') as fengbian,
  7015. isnull(u_mtrldef_ban.paikong,'') as paikong,
  7016. isnull(u_mtrldef_ban.luoji,'') as luoji,
  7017. isnull(u_mtrldef_ban.penyou,'') as penyou,
  7018. isnull(u_mtrldef_ban.gydscrp,'') as gydscrp,
  7019. isnull(u_mtrldef_ban.direction,0) as direction,
  7020. isnull(u_mtrldef_ban.pfklmode,0) as pfklmode,
  7021. u_mtrldef.dscrp
  7022. Into :ll_mtrlid,
  7023. :ls_mtrlcode,
  7024. :ls_mtrlname,
  7025. :li_mtrlprp,
  7026. :ls_mtrlmode,
  7027. :ls_unit,
  7028. :ls_zxmtrlmode,
  7029. :ls_mtrlsectype,
  7030. :li_statusflag,
  7031. :li_statustype,
  7032. :li_woodcodeflag,
  7033. :li_woodcodetype,
  7034. :li_pcodeflag,
  7035. :li_pcodetype,
  7036. :ls_usermtrlmode,
  7037. :li_Mtrlorigin,
  7038. :ll_dftwrkgrpid,
  7039. :ll_scid,
  7040. :ll_mtrltypeid,
  7041. :ls_wrkGrpName,
  7042. :ll_dftscllwkpid,
  7043. :ld_midu,
  7044. :li_ifpack,
  7045. :li_outtype,
  7046. :ifselforder,
  7047. :ordertype,
  7048. :bantype,
  7049. :ls_promode,
  7050. :ls_wenli,
  7051. :ls_fengbian,
  7052. :ls_paikong,
  7053. :ls_luoji,
  7054. :ls_penyou,
  7055. :ls_gydscrp,
  7056. :ll_direction,
  7057. :ls_pfklmode,
  7058. :ls_dscrp
  7059. From u_mtrldef left Outer join u_sc_wkp on
  7060. u_mtrldef.dftwrkgrpid = u_sc_wkp.wrkgrpid LEFT Outer JOIN
  7061. u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid
  7062. Where u_mtrldef.mtrlid = :arg_mtrlid;
  7063. If sqlca.SQLCode <> 0 Then
  7064. rslt = 0
  7065. arg_msg = '查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText
  7066. Goto ext
  7067. End If
  7068. //插入材料
  7069. ll_newrow = dw_1.InsertRow(0)
  7070. arg_qty = Round(arg_qty,sys_option_produce_dec)
  7071. dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode
  7072. dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = li_mtrlprp
  7073. dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_wrkgrpid_scll
  7074. dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = arg_qty
  7075. dw_1.Object.u_PrdPF_Sonscale_ori[ll_newrow] = arg_qty
  7076. dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = 0
  7077. dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0
  7078. dw_1.Object.u_PrdPF_status[ll_newrow] = ''
  7079. dw_1.Object.u_PrdPF_woodcode[ll_newrow] = ''
  7080. dw_1.Object.u_PrdPF_pcode[ll_newrow] = ''
  7081. dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0
  7082. dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = ls_mtrlname
  7083. dw_1.Object.u_mtrldef_unit[ll_newrow] = ls_unit
  7084. dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode
  7085. dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = ls_mtrlsectype
  7086. dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = ls_zxmtrlmode
  7087. dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = ls_wrkGrpName
  7088. dw_1.Object.u_mtrldef_statusflag[ll_newrow] = li_statusflag
  7089. dw_1.Object.u_mtrldef_statustype[ll_newrow] = li_statustype
  7090. dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = li_woodcodeflag
  7091. dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = li_woodcodetype
  7092. dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = li_pcodeflag
  7093. dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = li_pcodetype
  7094. dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = ls_usermtrlmode
  7095. dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = li_Mtrlorigin
  7096. dw_1.Object.lp[ll_newrow] = arg_lp
  7097. If ll_wrkgrpid_scll = 0 Then
  7098. dw_1.Object.iflock[ll_newrow] = 0
  7099. Else
  7100. dw_1.Object.iflock[ll_newrow] = 1
  7101. End If
  7102. dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p
  7103. dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = ll_mtrlid
  7104. dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = ll_mtrlid
  7105. dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow
  7106. If arg_pfcode = '' Then
  7107. dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = f_get_dft_pf(ll_mtrlid)
  7108. Else
  7109. dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = arg_pfcode
  7110. End If
  7111. dw_1.Object.u_prdpf_pfgroup[ll_newrow] = ''
  7112. dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0
  7113. dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = ''
  7114. dw_1.Object.u_prdpf_pfklmode[ll_newrow] = ''
  7115. dw_1.Object.u_prdpf_dscrp[ll_newrow] = ''
  7116. dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1
  7117. dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0
  7118. dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0
  7119. dw_1.Object.u_prdpf_ifover[ll_newrow] = 0
  7120. dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0
  7121. dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0
  7122. dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0
  7123. dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0
  7124. dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0
  7125. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = ll_dftwrkgrpid
  7126. dw_1.Object.u_mtrldef_scid[ll_newrow] = ll_scid
  7127. dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = ll_mtrltypeid
  7128. dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_dftscllwkpid
  7129. dw_1.Object.u_mtrldef_midu[ll_newrow] = ld_midu
  7130. dw_1.Object.u_mtrldef_ifpack[ll_newrow] = li_ifpack
  7131. dw_1.Object.u_mtrldef_outtype[ll_newrow] = li_outtype
  7132. dw_1.Object.u_mtrldef_ifselforder[ll_newrow] = ifselforder
  7133. dw_1.Object.u_mtrldef_ordertype[ll_newrow] = ordertype
  7134. dw_1.Object.u_mtrldef_bantype[ll_newrow] = bantype
  7135. dw_1.Object.u_mtrldef_ban_promode[ll_newrow] = ls_promode
  7136. dw_1.Object.u_mtrldef_ban_wenli[ll_newrow] = ls_wenli
  7137. dw_1.Object.u_mtrldef_ban_fengbian[ll_newrow] = ls_fengbian
  7138. dw_1.Object.u_mtrldef_ban_paikong[ll_newrow] = ls_paikong
  7139. dw_1.Object.u_mtrldef_ban_luoji[ll_newrow] = ls_luoji
  7140. dw_1.Object.u_mtrldef_ban_penyou[ll_newrow] = ls_penyou
  7141. dw_1.Object.u_mtrldef_ban_gydscrp[ll_newrow] = ls_gydscrp
  7142. dw_1.Object.u_mtrldef_ban_pfklmode[ll_newrow] = ls_pfklmode
  7143. dw_1.Object.u_mtrldef_ban_direction[ll_newrow] = ll_direction
  7144. dw_1.Object.u_mtrldef_dscrp[ll_newrow] = ls_dscrp
  7145. arg_row = ll_newrow
  7146. ext:
  7147. Return rslt
  7148. end function
  7149. public function integer wf_add_row_null (string arg_mtrlname, long arg_lp, decimal arg_qty, ref string arg_msg, ref long arg_row);Int rslt = 1
  7150. Long ll_row
  7151. Long cnt
  7152. Long ll_cnt
  7153. Long ll_mtrlid_p
  7154. String ls_mtrlcode_p
  7155. String ls_pfcode
  7156. Long ll_mtrlid
  7157. String ls_mtrlcode
  7158. String ls_mtrlname
  7159. Int li_mtrlprp
  7160. String ls_mtrlmode
  7161. String ls_unit
  7162. String ls_zxmtrlmode
  7163. String ls_mtrlsectype
  7164. Int li_statusflag
  7165. Int li_statustype
  7166. Int li_woodcodeflag
  7167. Int li_woodcodetype
  7168. Int li_pcodeflag
  7169. Int li_pcodetype
  7170. String ls_usermtrlmode
  7171. Int li_Mtrlorigin
  7172. Long ll_dftwrkgrpid
  7173. Long ll_scid
  7174. Long ll_mtrltypeid
  7175. String ls_wrkGrpName
  7176. Decimal ld_sonscale, lde_qty
  7177. Long ll_wrkgrpid_scll
  7178. Long ll_newrow
  7179. arg_row = 0
  7180. //插入材料
  7181. ll_newrow = dw_1.InsertRow(0)
  7182. arg_qty = round(arg_qty,sys_option_produce_dec)
  7183. dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode
  7184. if arg_lp = 1 then //自制,半成品
  7185. dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = 1
  7186. dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = 0
  7187. else//采购
  7188. dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = 2
  7189. dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = 2
  7190. end if
  7191. dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_wrkgrpid_scll
  7192. dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = arg_qty
  7193. dw_1.Object.u_PrdPF_Sonscale_ori[ll_newrow] = arg_qty
  7194. dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = 0
  7195. dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0
  7196. dw_1.Object.u_PrdPF_status[ll_newrow] = ''
  7197. dw_1.Object.u_PrdPF_woodcode[ll_newrow] = ''
  7198. dw_1.Object.u_PrdPF_pcode[ll_newrow] = ''
  7199. dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0
  7200. dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = arg_mtrlname
  7201. dw_1.Object.u_mtrldef_unit[ll_newrow] = ls_unit
  7202. dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode
  7203. dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = ls_mtrlsectype
  7204. dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = ls_zxmtrlmode
  7205. dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = ls_wrkGrpName
  7206. dw_1.Object.u_mtrldef_statusflag[ll_newrow] = li_statusflag
  7207. dw_1.Object.u_mtrldef_statustype[ll_newrow] = li_statustype
  7208. dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = li_woodcodeflag
  7209. dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = li_woodcodetype
  7210. dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = li_pcodeflag
  7211. dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = li_pcodetype
  7212. dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = ls_usermtrlmode
  7213. dw_1.Object.lp[ll_newrow] = arg_lp
  7214. dw_1.Object.iflock[ll_newrow] = 0
  7215. dw_1.Object.ifmod[ll_newrow] = 1
  7216. dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p
  7217. dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = ll_mtrlid
  7218. dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = ll_mtrlid
  7219. dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow
  7220. dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = ''
  7221. dw_1.Object.u_prdpf_pfgroup[ll_newrow] = ''
  7222. dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0
  7223. dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = ''
  7224. dw_1.Object.u_prdpf_pfklmode[ll_newrow] = ''
  7225. dw_1.Object.u_prdpf_dscrp[ll_newrow] = ''
  7226. dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1
  7227. dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0
  7228. dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0
  7229. dw_1.Object.u_prdpf_ifover[ll_newrow] = 0
  7230. dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0
  7231. dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0
  7232. dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0
  7233. dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0
  7234. dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0
  7235. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = ll_dftwrkgrpid
  7236. dw_1.Object.u_mtrldef_scid[ll_newrow] = ll_scid
  7237. dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = ll_mtrltypeid
  7238. arg_row = ll_newrow
  7239. RETURN rslt
  7240. end function
  7241. public function integer wf_auto_wp (boolean arg_ifwpadd, ref string arg_msg);Int rslt = 1
  7242. Long ll_sonmtrlid_arr[]
  7243. String ls_sonpfcode_arr[]
  7244. Long ll_mxbt = 1,ll_i,ll_j,ll_k,ll_l
  7245. String ls_dscrp,ls_wpcode
  7246. String ls_procode_arr[],ls_proname_arr[],ls_empty_arr[]
  7247. String ls_mtrlcode_arr[]
  7248. Decimal ld_workprice_arr[],ld_empty_arr[]
  7249. Long ll_wrkgrpid_arr[],ll_empty_arr[]
  7250. Long cnt
  7251. String ls_promode,ls_pfgroup,ls_mtrlcode
  7252. Int li_ifpack
  7253. Long ll_rowcnt = 0
  7254. String ls_pricestr_arr[]
  7255. s_workpricetable arg_s_mx[],arg_s_empty[]
  7256. If ins_mtrlid = 0 Then
  7257. rslt = 0
  7258. Goto ext
  7259. End If
  7260. Select ifpack,mtrlcode
  7261. Into :li_ifpack,:ls_mtrlcode
  7262. From u_mtrldef
  7263. Where mtrlid = :ins_mtrlid;
  7264. If sqlca.SQLCode <> 0 Then
  7265. rslt = 0
  7266. arg_msg = '查询产品属性失败,'+sqlca.SQLErrText
  7267. Goto ext
  7268. End If
  7269. datastore ds_dscrp
  7270. ds_dscrp = Create datastore
  7271. ds_dscrp.DataObject = 'ds_prdpf_dscrp'
  7272. ds_dscrp.SetTransObject(sqlca)
  7273. If li_ifpack = 0 Then
  7274. Declare cur_pf Cursor For
  7275. Select u_PrdPF.SonMtrlid, u_PrdPF.sonpfcode,u_mtrldef.mtrlcode
  7276. From u_PrdPF Inner JOIN
  7277. u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid
  7278. Where (u_mtrldef.ifpack <> 0)
  7279. And (u_PrdPF.mtrlid = :ins_mtrlid)
  7280. And (u_PrdPF.pfcode = :ins_pfcode);
  7281. Open cur_pf;
  7282. Fetch cur_pf Into :ll_sonmtrlid_arr[ll_mxbt],:ls_sonpfcode_arr[ll_mxbt],:ls_mtrlcode_arr[ll_mxbt];
  7283. Do While sqlca.SQLCode = 0
  7284. ll_mxbt++
  7285. Fetch cur_pf Into :ll_sonmtrlid_arr[ll_mxbt],:ls_sonpfcode_arr[ll_mxbt],:ls_mtrlcode_arr[ll_mxbt];
  7286. Loop
  7287. Close cur_pf;
  7288. ll_rowcnt = ll_mxbt - 1
  7289. Else
  7290. ll_mxbt = 1
  7291. ll_sonmtrlid_arr[ll_mxbt] = ins_mtrlid
  7292. ls_sonpfcode_arr[ll_mxbt] = ins_pfcode
  7293. ls_mtrlcode_arr[ll_mxbt] = ls_mtrlcode
  7294. ll_rowcnt = 1
  7295. End If
  7296. For ll_i = 1 To ll_rowcnt
  7297. ds_dscrp.Retrieve(ll_sonmtrlid_arr[ll_i],ls_sonpfcode_arr[ll_i])
  7298. If ds_dscrp.RowCount() = 0 Then Continue
  7299. ls_procode_arr = ls_empty_arr
  7300. ls_proname_arr = ls_empty_arr
  7301. ld_workprice_arr = ld_empty_arr
  7302. ll_wrkgrpid_arr = ll_empty_arr
  7303. cnt = 0
  7304. For ll_j = 1 To ds_dscrp.RowCount()
  7305. ls_dscrp = ds_dscrp.Object.dscrp[ll_j]
  7306. ls_promode = ds_dscrp.Object.promode[ll_j]
  7307. ls_pfgroup = ds_dscrp.Object.pfgroup[ll_j]
  7308. arg_s_mx = arg_s_empty
  7309. f_cmp_proname(ls_dscrp,arg_s_mx)
  7310. For ll_k = 1 To UpperBound(arg_s_mx)
  7311. cnt++
  7312. ls_procode_arr[cnt] = arg_s_mx[ll_k].procode + '_' + ls_promode
  7313. ls_proname_arr[cnt] = arg_s_mx[ll_k].proname + '_' + ls_pfgroup
  7314. ld_workprice_arr[cnt] = arg_s_mx[ll_k].workprice
  7315. ll_wrkgrpid_arr[cnt] = arg_s_mx[ll_k].wrkgrpid
  7316. ls_pricestr_arr[cnt] = arg_s_mx[ll_k].pricestr
  7317. Next
  7318. Next
  7319. ls_wpcode = f_get_dft_wp(ll_sonmtrlid_arr[ll_i])
  7320. //2014-06-28 需求变更:改为不清空原工价表(优适), 屏蔽以下代码
  7321. // Delete From u_sc_workprice
  7322. // Where mtrlid = :ll_sonmtrlid_arr[ll_i]
  7323. // And wpcode = :ls_wpcode;
  7324. // If sqlca.SQLCode <> 0 Then
  7325. // rslt = 0
  7326. // arg_msg = '物料:'+ls_mtrlcode_arr[ll_i]+',删除原有工价表失败,'+sqlca.SQLErrText
  7327. // Goto ext
  7328. // End If
  7329. For ll_l = 1 To cnt
  7330. Update u_sc_workprice
  7331. Set workPrice = :ld_workprice_arr[ll_l],
  7332. pricestr = :ls_pricestr_arr[ll_l]
  7333. Where mtrlid = :ll_sonmtrlid_arr[ll_i]
  7334. And wpcode = :ls_wpcode
  7335. And procode = :ls_procode_arr[ll_l];
  7336. If sqlca.SQLCode = 0 Then
  7337. //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码
  7338. //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码
  7339. If arg_ifwpadd Then
  7340. If sqlca.SQLNRows = 0 Then
  7341. Insert Into u_sc_workprice
  7342. (Mtrlid,
  7343. wpcode,
  7344. Proorder,
  7345. procode,
  7346. Proname,
  7347. workPrice,
  7348. wrkGrpid,
  7349. lsxtype,
  7350. workqty,
  7351. pricestr)
  7352. Values (:ll_sonmtrlid_arr[ll_i],
  7353. :ls_wpcode,
  7354. :ll_l,
  7355. :ls_procode_arr[ll_l],
  7356. :ls_proname_arr[ll_l],
  7357. :ld_workprice_arr[ll_l],
  7358. :ll_wrkgrpid_arr[ll_l],
  7359. 1,
  7360. 1,
  7361. :ls_pricestr_arr[ll_l]);
  7362. If sqlca.SQLCode <> 0 Then
  7363. rslt = 0
  7364. arg_msg = '物料:'+ls_mtrlcode_arr[ll_i]+',插入新工价表失败,工序号:'+ls_procode_arr[ll_i]+','+sqlca.SQLErrText
  7365. Goto ext
  7366. End If
  7367. End If
  7368. End If
  7369. Else
  7370. rslt = 0
  7371. arg_msg = '物料:'+ls_mtrlcode_arr[ll_i]+',更新工价表失败,工序号:'+ls_procode_arr[ll_i]+','+sqlca.SQLErrText
  7372. Goto ext
  7373. End If
  7374. Next
  7375. Next
  7376. ext:
  7377. Destroy ds_dscrp
  7378. Return rslt
  7379. end function
  7380. public function integer wf_addmx_up (long arg_mtrlid, string arg_pfcode, long arg_pmtrlid, long arg_lp, long arg_row, ref string arg_msg);Int rslt = 1
  7381. Decimal ld_cmpqty
  7382. String ls_mtrlcode
  7383. Long count,ll_i
  7384. Decimal ld_qty
  7385. Long ll_row
  7386. Select mtrlcode,cmpqty
  7387. Into :ls_mtrlcode,:ld_cmpqty
  7388. From u_mtrldef
  7389. Where mtrlid = :arg_mtrlid;
  7390. If sqlca.SQLCode <> 0 Then
  7391. arg_msg = '查询物料清单基数失败,ID:'+String(arg_mtrlid)+','+sqlca.SQLErrText
  7392. rslt = 0
  7393. Goto ext
  7394. End If
  7395. If ld_cmpqty <= 0 Then
  7396. arg_msg = '不合理的物料清单基数,物料:'+ls_mtrlcode
  7397. rslt = 0
  7398. Goto ext
  7399. End If
  7400. String mtrlcode
  7401. Long mtrlprp
  7402. Long wrkgrpid
  7403. String mtrlname,unit,mtrlmode,mtrlsectype,zxmtrlmode,wrkGrpName
  7404. Long statusflag,statustype,woodcodeflag,woodcodetype,pcodeflag,pcodetype
  7405. String usermtrlmode
  7406. Long Mtrlorigin
  7407. Decimal buyarg,orderdays,buydays,wfjgdays
  7408. Int ifselforder,ordertype,outtype,ifpack
  7409. Long ll_mtrltypeid,ll_dftwrkgrpid,ll_dftscllwkpid
  7410. Decimal ld_cubage,ld_long,ld_width,ld_height
  7411. String ls_promode,ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou,ls_gydscrp,ls_pfklmode
  7412. Int ll_direction
  7413. string ls_dscrp_mtrl
  7414. Select u_mtrldef.mtrlcode,
  7415. u_mtrldef.mtrlprp,
  7416. u_mtrldef.mtrlname,
  7417. u_mtrldef.unit,
  7418. u_mtrldef.mtrlmode,
  7419. u_mtrldef.mtrlsectype,
  7420. u_mtrldef.zxmtrlmode,
  7421. u_sc_wkp.wrkGrpName,
  7422. u_mtrldef.statusflag,
  7423. u_mtrldef.statustype,
  7424. u_mtrldef.woodcodeflag,
  7425. u_mtrldef.woodcodetype,
  7426. u_mtrldef.pcodeflag,
  7427. u_mtrldef.pcodetype,
  7428. u_mtrldef.usermtrlmode,
  7429. u_mtrldef.Mtrlorigin,
  7430. u_mtrldef.orderdays,
  7431. u_mtrldef.buydays,
  7432. u_mtrldef.wfjgdays,
  7433. u_mtrldef.ifselforder,
  7434. u_mtrldef.ordertype,
  7435. u_mtrldef.mtrltypeid,
  7436. u_mtrldef.dftwrkgrpid,
  7437. u_mtrldef.dftscllwkpid,
  7438. u_mtrldef.outtype,
  7439. u_mtrldef.ifpack,
  7440. isnull(u_mtrldef_ban.promode,'') as promode,
  7441. isnull(u_mtrldef_ban.wenli,'') as wenli,
  7442. isnull(u_mtrldef_ban.fengbian,'') as fengbian,
  7443. isnull(u_mtrldef_ban.paikong,'') as paikong,
  7444. isnull(u_mtrldef_ban.luoji,'') as luoji,
  7445. isnull(u_mtrldef_ban.penyou,'') as penyou,
  7446. isnull(u_mtrldef_ban.gydscrp,'') as gydscrp,
  7447. isnull(u_mtrldef_ban.direction,0) as direction,
  7448. isnull(u_mtrldef_ban.pfklmode,0) as pfklmode,
  7449. u_mtrldef.dscrp
  7450. Into :mtrlcode,
  7451. :mtrlprp,
  7452. :mtrlname,
  7453. :unit,
  7454. :mtrlmode,
  7455. :mtrlsectype,
  7456. :zxmtrlmode,
  7457. :wrkGrpName,
  7458. :statusflag,
  7459. :statustype,
  7460. :woodcodeflag,
  7461. :woodcodetype,
  7462. :pcodeflag,
  7463. :pcodetype,
  7464. :usermtrlmode,
  7465. :Mtrlorigin,
  7466. :orderdays,
  7467. :buydays,
  7468. :wfjgdays,
  7469. :ifselforder,
  7470. :ordertype,
  7471. :ll_mtrltypeid,
  7472. :ll_dftwrkgrpid,
  7473. :ll_dftscllwkpid,
  7474. :outtype,
  7475. :ifpack,
  7476. :ls_promode,
  7477. :ls_wenli,
  7478. :ls_fengbian,
  7479. :ls_paikong,
  7480. :ls_luoji,
  7481. :ls_penyou,
  7482. :ls_gydscrp,
  7483. :ll_direction,
  7484. :ls_pfklmode,
  7485. :ls_dscrp_mtrl
  7486. From u_mtrldef LEFT Outer JOIN
  7487. u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid LEFT Outer JOIN
  7488. u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid
  7489. Where u_mtrldef.mtrlid = :arg_mtrlid;
  7490. If sqlca.SQLCode <> 0 Then
  7491. rslt = 0
  7492. arg_msg = '查询物料信息失败,'+ls_mtrlcode+','+sqlca.SQLErrText
  7493. Goto ext
  7494. End If
  7495. dw_1.Object.pmtrlid[arg_row] = arg_mtrlid
  7496. //本级及下级的物料层次推后
  7497. dw_1.Object.lp[arg_row] = dw_1.Object.lp[arg_row] + 1
  7498. For ll_i = arg_row + 1 To dw_1.RowCount()
  7499. If dw_1.Object.lp[ll_i] <= arg_lp Then Exit
  7500. dw_1.Object.lp[ll_i] = dw_1.Object.lp[ll_i] + 1
  7501. Next
  7502. ll_row = dw_1.InsertRow(arg_row)
  7503. dw_1.Object.mb_mtrlcode[ll_row] = mtrlcode
  7504. dw_1.Object.mb_mtrlid[ll_row] = arg_mtrlid
  7505. dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode
  7506. dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp
  7507. dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid
  7508. dw_1.Object.u_PrdPF_Sonscale[ll_row] = 1
  7509. dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = 1
  7510. dw_1.Object.u_PrdPF_SonLoss[ll_row] = 0
  7511. dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = 0
  7512. dw_1.Object.u_PrdPF_status[ll_row] = ''
  7513. dw_1.Object.u_PrdPF_woodcode[ll_row] = ''
  7514. dw_1.Object.u_PrdPF_pcode[ll_row] = ''
  7515. dw_1.Object.u_PrdPF_Sonahead[ll_row] = 0
  7516. dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname
  7517. dw_1.Object.u_mtrldef_unit[ll_row] = unit
  7518. dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode
  7519. dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype
  7520. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode
  7521. dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName
  7522. dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag
  7523. dw_1.Object.u_mtrldef_statustype[ll_row] = statustype
  7524. dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag
  7525. dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype
  7526. dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag
  7527. dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype
  7528. dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode
  7529. dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin
  7530. dw_1.Object.lp[ll_row] = arg_lp
  7531. dw_1.Object.u_mtrldef_mtrlid[ll_row] = arg_mtrlid
  7532. dw_1.Object.u_prdpf_sonmtrlid[ll_row] = arg_mtrlid
  7533. dw_1.Object.pmtrlid[ll_row] = arg_pmtrlid
  7534. dw_1.Object.u_prdpf_printid[ll_row] = 1
  7535. dw_1.Object.u_prdpf_sonpfcode[ll_row] = arg_pfcode
  7536. dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays
  7537. dw_1.Object.u_mtrldef_buydays[ll_row] = buydays
  7538. dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays
  7539. dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder
  7540. dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype
  7541. dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = ll_mtrltypeid
  7542. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = ll_dftwrkgrpid
  7543. dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = ll_dftscllwkpid
  7544. dw_1.Object.u_mtrldef_outtype[ll_row] = outtype
  7545. dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack
  7546. dw_1.Object.iflock[ll_row] = 0
  7547. f_mtrlmode_trans(mtrlmode,ld_long,ld_width,ld_height)
  7548. ld_cubage = ld_long * ld_width * ld_height / 1000000000
  7549. dw_1.Object.cubage[ll_row] = ld_cubage
  7550. dw_1.Object.Length[ll_row] = ld_long
  7551. dw_1.Object.Width[ll_row] = ld_width
  7552. dw_1.Object.u_mtrldef_ban_promode[ll_row] = ls_promode
  7553. dw_1.Object.u_mtrldef_ban_wenli[ll_row] = ls_wenli
  7554. dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = ls_fengbian
  7555. dw_1.Object.u_mtrldef_ban_paikong[ll_row] = ls_paikong
  7556. dw_1.Object.u_mtrldef_ban_luoji[ll_row] = ls_luoji
  7557. dw_1.Object.u_mtrldef_ban_penyou[ll_row] = ls_penyou
  7558. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = ls_gydscrp
  7559. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = ls_pfklmode
  7560. dw_1.Object.u_mtrldef_ban_direction[ll_row] = ll_direction
  7561. dw_1.Object.u_mtrldef_dscrp[ll_row] = ls_dscrp_mtrl
  7562. ext:
  7563. Return rslt
  7564. end function
  7565. public function integer wf_addmx_next (long arg_mtrlid, string arg_pfcode, long arg_pmtrlid, long arg_lp, long arg_row, ref string arg_msg, decimal arg_qty, decimal arg_pfgroupqty);Int rslt = 1
  7566. Decimal ld_cmpqty
  7567. String ls_mtrlcode
  7568. Long count,ll_i
  7569. Decimal ld_qty
  7570. Long ll_row
  7571. Select mtrlcode,cmpqty
  7572. Into :ls_mtrlcode,:ld_cmpqty
  7573. From u_mtrldef
  7574. Where mtrlid = :arg_mtrlid;
  7575. If sqlca.SQLCode <> 0 Then
  7576. arg_msg = '查询物料清单基数失败,ID:'+String(arg_mtrlid)+','+sqlca.SQLErrText
  7577. rslt = 0
  7578. Goto ext
  7579. End If
  7580. If ld_cmpqty <= 0 Then
  7581. arg_msg = '不合理的物料清单基数,物料:'+ls_mtrlcode
  7582. rslt = 0
  7583. Goto ext
  7584. End If
  7585. String mtrlcode
  7586. Long mtrlprp
  7587. Long wrkgrpid
  7588. String mtrlname,unit,mtrlmode,mtrlsectype,zxmtrlmode,wrkGrpName
  7589. Long statusflag,statustype,woodcodeflag,woodcodetype,pcodeflag,pcodetype
  7590. String usermtrlmode
  7591. Long Mtrlorigin
  7592. Decimal buyarg,orderdays,buydays,wfjgdays
  7593. Int ifselforder,ordertype,outtype,ifpack
  7594. Long ll_mtrltypeid,ll_dftwrkgrpid,ll_dftscllwkpid
  7595. Decimal ld_cubage,ld_long,ld_width,ld_height
  7596. String ls_promode,ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou,ls_gydscrp,ls_pfklmode
  7597. Int ll_direction,li_bantype
  7598. decimal ld_midu
  7599. string ls_dscrp_mtrl
  7600. Select u_mtrldef.mtrlcode,
  7601. u_mtrldef.mtrlprp,
  7602. u_mtrldef.mtrlname,
  7603. u_mtrldef.unit,
  7604. u_mtrldef.mtrlmode,
  7605. u_mtrldef.mtrlsectype,
  7606. u_mtrldef.zxmtrlmode,
  7607. u_sc_wkp.wrkGrpName,
  7608. u_mtrldef.statusflag,
  7609. u_mtrldef.statustype,
  7610. u_mtrldef.woodcodeflag,
  7611. u_mtrldef.woodcodetype,
  7612. u_mtrldef.pcodeflag,
  7613. u_mtrldef.pcodetype,
  7614. u_mtrldef.usermtrlmode,
  7615. u_mtrldef.Mtrlorigin,
  7616. u_mtrldef.orderdays,
  7617. u_mtrldef.buydays,
  7618. u_mtrldef.wfjgdays,
  7619. u_mtrldef.ifselforder,
  7620. u_mtrldef.ordertype,
  7621. u_mtrldef.mtrltypeid,
  7622. u_mtrldef.dftwrkgrpid,
  7623. u_mtrldef.dftscllwkpid,
  7624. u_mtrldef.outtype,
  7625. u_mtrldef.ifpack,
  7626. isnull(u_mtrldef_ban.promode,'') as promode,
  7627. isnull(u_mtrldef_ban.wenli,'') as wenli,
  7628. isnull(u_mtrldef_ban.fengbian,'') as fengbian,
  7629. isnull(u_mtrldef_ban.paikong,'') as paikong,
  7630. isnull(u_mtrldef_ban.luoji,'') as luoji,
  7631. isnull(u_mtrldef_ban.penyou,'') as penyou,
  7632. isnull(u_mtrldef_ban.gydscrp,'') as gydscrp,
  7633. isnull(u_mtrldef_ban.direction,0) as direction,
  7634. u_mtrldef.midu,
  7635. isnull(u_mtrldef_ban.pfklmode,'') as pfklmode,
  7636. u_mtrldef.dscrp,
  7637. u_mtrldef.bantype
  7638. Into :mtrlcode,
  7639. :mtrlprp,
  7640. :mtrlname,
  7641. :unit,
  7642. :mtrlmode,
  7643. :mtrlsectype,
  7644. :zxmtrlmode,
  7645. :wrkGrpName,
  7646. :statusflag,
  7647. :statustype,
  7648. :woodcodeflag,
  7649. :woodcodetype,
  7650. :pcodeflag,
  7651. :pcodetype,
  7652. :usermtrlmode,
  7653. :Mtrlorigin,
  7654. :orderdays,
  7655. :buydays,
  7656. :wfjgdays,
  7657. :ifselforder,
  7658. :ordertype,
  7659. :ll_mtrltypeid,
  7660. :ll_dftwrkgrpid,
  7661. :ll_dftscllwkpid,
  7662. :outtype,
  7663. :ifpack,
  7664. :ls_promode,
  7665. :ls_wenli,
  7666. :ls_fengbian,
  7667. :ls_paikong,
  7668. :ls_luoji,
  7669. :ls_penyou,
  7670. :ls_gydscrp,
  7671. :ll_direction,
  7672. :ld_midu,
  7673. :ls_pfklmode,
  7674. :ls_dscrp_mtrl,
  7675. :li_bantype
  7676. From u_mtrldef LEFT Outer JOIN
  7677. u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid LEFT Outer JOIN
  7678. u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid
  7679. Where u_mtrldef.mtrlid = :arg_mtrlid;
  7680. If sqlca.SQLCode <> 0 Then
  7681. rslt = 0
  7682. arg_msg = '查询物料信息失败,'+ls_mtrlcode+','+sqlca.SQLErrText
  7683. Goto ext
  7684. End If
  7685. ll_row = dw_1.InsertRow(arg_row)
  7686. dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode
  7687. dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp
  7688. dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid
  7689. dw_1.Object.u_PrdPF_Sonscale[ll_row] = 1
  7690. dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = 1
  7691. dw_1.Object.u_PrdPF_SonLoss[ll_row] = 0
  7692. dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = 0
  7693. dw_1.Object.u_PrdPF_status[ll_row] = ''
  7694. dw_1.Object.u_PrdPF_woodcode[ll_row] = ''
  7695. dw_1.Object.u_PrdPF_pcode[ll_row] = ''
  7696. dw_1.Object.u_PrdPF_Sonahead[ll_row] = 0
  7697. dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname
  7698. dw_1.Object.u_mtrldef_unit[ll_row] = unit
  7699. dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode
  7700. dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype
  7701. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode
  7702. dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName
  7703. dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag
  7704. dw_1.Object.u_mtrldef_statustype[ll_row] = statustype
  7705. dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag
  7706. dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype
  7707. dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag
  7708. dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype
  7709. dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode
  7710. dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin
  7711. dw_1.Object.lp[ll_row] = arg_lp
  7712. dw_1.Object.u_mtrldef_mtrlid[ll_row] = arg_mtrlid
  7713. dw_1.Object.u_prdpf_sonmtrlid[ll_row] = arg_mtrlid
  7714. dw_1.Object.pmtrlid[ll_row] = arg_pmtrlid
  7715. dw_1.Object.u_prdpf_printid[ll_row] = 1
  7716. dw_1.Object.u_prdpf_sonpfcode[ll_row] = arg_pfcode
  7717. dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays
  7718. dw_1.Object.u_mtrldef_buydays[ll_row] = buydays
  7719. dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays
  7720. dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder
  7721. dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype
  7722. dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = ll_mtrltypeid
  7723. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = ll_dftwrkgrpid
  7724. dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = ll_dftscllwkpid
  7725. dw_1.Object.u_mtrldef_outtype[ll_row] = outtype
  7726. dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack
  7727. dw_1.Object.iflock[ll_row] = 0
  7728. f_mtrlmode_trans(mtrlmode,ld_long,ld_width,ld_height)
  7729. ld_cubage = ld_long * ld_width * ld_height / 1000000000
  7730. dw_1.Object.cubage[ll_row] = ld_cubage
  7731. dw_1.Object.Length[ll_row] = ld_long
  7732. dw_1.Object.Width[ll_row] = ld_width
  7733. dw_1.Object.u_mtrldef_ban_promode[ll_row] = ls_promode
  7734. dw_1.Object.u_mtrldef_ban_wenli[ll_row] = ls_wenli
  7735. dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = ls_fengbian
  7736. dw_1.Object.u_mtrldef_ban_paikong[ll_row] = ls_paikong
  7737. dw_1.Object.u_mtrldef_ban_luoji[ll_row] = ls_luoji
  7738. dw_1.Object.u_mtrldef_ban_penyou[ll_row] = ls_penyou
  7739. dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = ls_gydscrp
  7740. dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = ls_pfklmode
  7741. dw_1.Object.u_mtrldef_ban_direction[ll_row] = ll_direction
  7742. dw_1.Object.u_mtrldef_midu[ll_row] = ld_midu
  7743. dw_1.Object.u_mtrldef_dscrp[ll_row] = ls_dscrp_mtrl
  7744. dw_1.Object.u_prdpf_sonscale[ll_row] = arg_qty
  7745. dw_1.Object.u_prdpf_pfgroupqty[ll_row] = arg_pfgroupqty
  7746. dw_1.Object.u_mtrldef_bantype[ll_row] = li_bantype
  7747. If wf_addmx_row(arg_mtrlid,arg_pfcode,arg_lp + 1,arg_row + 1 ,arg_qty,arg_msg) = 0 Then
  7748. rslt = 0
  7749. Goto ext
  7750. End If
  7751. ext:
  7752. Return rslt
  7753. end function
  7754. on w_mtrldef_prdpf_padd.create
  7755. int iCurrent
  7756. call super::create
  7757. this.dw_1=create dw_1
  7758. this.st_2=create st_2
  7759. this.st_mtrl=create st_mtrl
  7760. this.cb_mod_bcp=create cb_mod_bcp
  7761. this.cb_save_bcp=create cb_save_bcp
  7762. this.cb_other_bom=create cb_other_bom
  7763. this.cb_save=create cb_save
  7764. this.st_1=create st_1
  7765. this.st_mtrl_pf=create st_mtrl_pf
  7766. this.cb_delmx=create cb_delmx
  7767. this.mle_log=create mle_log
  7768. this.dw_2=create dw_2
  7769. this.cb_addmx_wp=create cb_addmx_wp
  7770. this.cb_delmx_wp=create cb_delmx_wp
  7771. this.cb_save_wp=create cb_save_wp
  7772. this.cb_edit_wp=create cb_edit_wp
  7773. this.dw_copy=create dw_copy
  7774. this.cb_cmpl_pfklmode=create cb_cmpl_pfklmode
  7775. this.st_arg=create st_arg
  7776. this.em_arg=create em_arg
  7777. this.cbx_cmp_qty=create cbx_cmp_qty
  7778. this.cb_re_mtrl=create cb_re_mtrl
  7779. this.cbx_pfgroup=create cbx_pfgroup
  7780. this.cb_import=create cb_import
  7781. this.cb_1=create cb_1
  7782. this.cb_moban=create cb_moban
  7783. this.cb_change=create cb_change
  7784. this.cb_print=create cb_print
  7785. this.cbx_save_close=create cbx_save_close
  7786. this.rb_1=create rb_1
  7787. this.rb_2=create rb_2
  7788. this.dw_3=create dw_3
  7789. this.dw_copy_wkp=create dw_copy_wkp
  7790. this.dw_copy_main=create dw_copy_main
  7791. this.cb_copy_paste=create cb_copy_paste
  7792. this.cb_bom=create cb_bom
  7793. this.cb_tmp_save=create cb_tmp_save
  7794. this.cb_tmp_read=create cb_tmp_read
  7795. this.cb_templet_ch=create cb_templet_ch
  7796. this.dw_buffer=create dw_buffer
  7797. this.cb_pack=create cb_pack
  7798. this.cb_all_ch=create cb_all_ch
  7799. this.cb_fan_ch=create cb_fan_ch
  7800. this.cbx_ifreset=create cbx_ifreset
  7801. this.cb_autocode=create cb_autocode
  7802. this.cbx_wp_pack=create cbx_wp_pack
  7803. this.cb_2=create cb_2
  7804. this.cb_fj_edit=create cb_fj_edit
  7805. this.cbx_wp_add=create cbx_wp_add
  7806. this.cb_old_to_new=create cb_old_to_new
  7807. this.cb_add_mtrl=create cb_add_mtrl
  7808. this.ln_bar=create ln_bar
  7809. this.ln_bar2=create ln_bar2
  7810. this.r_bar=create r_bar
  7811. this.ln_7=create ln_7
  7812. this.ln_8=create ln_8
  7813. this.ln_1=create ln_1
  7814. this.ln_2=create ln_2
  7815. this.ln_3=create ln_3
  7816. this.ln_4=create ln_4
  7817. this.ln_5=create ln_5
  7818. this.ln_6=create ln_6
  7819. this.ln_9=create ln_9
  7820. this.ln_10=create ln_10
  7821. this.ln_11=create ln_11
  7822. this.ln_12=create ln_12
  7823. iCurrent=UpperBound(this.Control)
  7824. this.Control[iCurrent+1]=this.dw_1
  7825. this.Control[iCurrent+2]=this.st_2
  7826. this.Control[iCurrent+3]=this.st_mtrl
  7827. this.Control[iCurrent+4]=this.cb_mod_bcp
  7828. this.Control[iCurrent+5]=this.cb_save_bcp
  7829. this.Control[iCurrent+6]=this.cb_other_bom
  7830. this.Control[iCurrent+7]=this.cb_save
  7831. this.Control[iCurrent+8]=this.st_1
  7832. this.Control[iCurrent+9]=this.st_mtrl_pf
  7833. this.Control[iCurrent+10]=this.cb_delmx
  7834. this.Control[iCurrent+11]=this.mle_log
  7835. this.Control[iCurrent+12]=this.dw_2
  7836. this.Control[iCurrent+13]=this.cb_addmx_wp
  7837. this.Control[iCurrent+14]=this.cb_delmx_wp
  7838. this.Control[iCurrent+15]=this.cb_save_wp
  7839. this.Control[iCurrent+16]=this.cb_edit_wp
  7840. this.Control[iCurrent+17]=this.dw_copy
  7841. this.Control[iCurrent+18]=this.cb_cmpl_pfklmode
  7842. this.Control[iCurrent+19]=this.st_arg
  7843. this.Control[iCurrent+20]=this.em_arg
  7844. this.Control[iCurrent+21]=this.cbx_cmp_qty
  7845. this.Control[iCurrent+22]=this.cb_re_mtrl
  7846. this.Control[iCurrent+23]=this.cbx_pfgroup
  7847. this.Control[iCurrent+24]=this.cb_import
  7848. this.Control[iCurrent+25]=this.cb_1
  7849. this.Control[iCurrent+26]=this.cb_moban
  7850. this.Control[iCurrent+27]=this.cb_change
  7851. this.Control[iCurrent+28]=this.cb_print
  7852. this.Control[iCurrent+29]=this.cbx_save_close
  7853. this.Control[iCurrent+30]=this.rb_1
  7854. this.Control[iCurrent+31]=this.rb_2
  7855. this.Control[iCurrent+32]=this.dw_3
  7856. this.Control[iCurrent+33]=this.dw_copy_wkp
  7857. this.Control[iCurrent+34]=this.dw_copy_main
  7858. this.Control[iCurrent+35]=this.cb_copy_paste
  7859. this.Control[iCurrent+36]=this.cb_bom
  7860. this.Control[iCurrent+37]=this.cb_tmp_save
  7861. this.Control[iCurrent+38]=this.cb_tmp_read
  7862. this.Control[iCurrent+39]=this.cb_templet_ch
  7863. this.Control[iCurrent+40]=this.dw_buffer
  7864. this.Control[iCurrent+41]=this.cb_pack
  7865. this.Control[iCurrent+42]=this.cb_all_ch
  7866. this.Control[iCurrent+43]=this.cb_fan_ch
  7867. this.Control[iCurrent+44]=this.cbx_ifreset
  7868. this.Control[iCurrent+45]=this.cb_autocode
  7869. this.Control[iCurrent+46]=this.cbx_wp_pack
  7870. this.Control[iCurrent+47]=this.cb_2
  7871. this.Control[iCurrent+48]=this.cb_fj_edit
  7872. this.Control[iCurrent+49]=this.cbx_wp_add
  7873. this.Control[iCurrent+50]=this.cb_old_to_new
  7874. this.Control[iCurrent+51]=this.cb_add_mtrl
  7875. this.Control[iCurrent+52]=this.ln_bar
  7876. this.Control[iCurrent+53]=this.ln_bar2
  7877. this.Control[iCurrent+54]=this.r_bar
  7878. this.Control[iCurrent+55]=this.ln_7
  7879. this.Control[iCurrent+56]=this.ln_8
  7880. this.Control[iCurrent+57]=this.ln_1
  7881. this.Control[iCurrent+58]=this.ln_2
  7882. this.Control[iCurrent+59]=this.ln_3
  7883. this.Control[iCurrent+60]=this.ln_4
  7884. this.Control[iCurrent+61]=this.ln_5
  7885. this.Control[iCurrent+62]=this.ln_6
  7886. this.Control[iCurrent+63]=this.ln_9
  7887. this.Control[iCurrent+64]=this.ln_10
  7888. this.Control[iCurrent+65]=this.ln_11
  7889. this.Control[iCurrent+66]=this.ln_12
  7890. end on
  7891. on w_mtrldef_prdpf_padd.destroy
  7892. call super::destroy
  7893. destroy(this.dw_1)
  7894. destroy(this.st_2)
  7895. destroy(this.st_mtrl)
  7896. destroy(this.cb_mod_bcp)
  7897. destroy(this.cb_save_bcp)
  7898. destroy(this.cb_other_bom)
  7899. destroy(this.cb_save)
  7900. destroy(this.st_1)
  7901. destroy(this.st_mtrl_pf)
  7902. destroy(this.cb_delmx)
  7903. destroy(this.mle_log)
  7904. destroy(this.dw_2)
  7905. destroy(this.cb_addmx_wp)
  7906. destroy(this.cb_delmx_wp)
  7907. destroy(this.cb_save_wp)
  7908. destroy(this.cb_edit_wp)
  7909. destroy(this.dw_copy)
  7910. destroy(this.cb_cmpl_pfklmode)
  7911. destroy(this.st_arg)
  7912. destroy(this.em_arg)
  7913. destroy(this.cbx_cmp_qty)
  7914. destroy(this.cb_re_mtrl)
  7915. destroy(this.cbx_pfgroup)
  7916. destroy(this.cb_import)
  7917. destroy(this.cb_1)
  7918. destroy(this.cb_moban)
  7919. destroy(this.cb_change)
  7920. destroy(this.cb_print)
  7921. destroy(this.cbx_save_close)
  7922. destroy(this.rb_1)
  7923. destroy(this.rb_2)
  7924. destroy(this.dw_3)
  7925. destroy(this.dw_copy_wkp)
  7926. destroy(this.dw_copy_main)
  7927. destroy(this.cb_copy_paste)
  7928. destroy(this.cb_bom)
  7929. destroy(this.cb_tmp_save)
  7930. destroy(this.cb_tmp_read)
  7931. destroy(this.cb_templet_ch)
  7932. destroy(this.dw_buffer)
  7933. destroy(this.cb_pack)
  7934. destroy(this.cb_all_ch)
  7935. destroy(this.cb_fan_ch)
  7936. destroy(this.cbx_ifreset)
  7937. destroy(this.cb_autocode)
  7938. destroy(this.cbx_wp_pack)
  7939. destroy(this.cb_2)
  7940. destroy(this.cb_fj_edit)
  7941. destroy(this.cbx_wp_add)
  7942. destroy(this.cb_old_to_new)
  7943. destroy(this.cb_add_mtrl)
  7944. destroy(this.ln_bar)
  7945. destroy(this.ln_bar2)
  7946. destroy(this.r_bar)
  7947. destroy(this.ln_7)
  7948. destroy(this.ln_8)
  7949. destroy(this.ln_1)
  7950. destroy(this.ln_2)
  7951. destroy(this.ln_3)
  7952. destroy(this.ln_4)
  7953. destroy(this.ln_5)
  7954. destroy(this.ln_6)
  7955. destroy(this.ln_9)
  7956. destroy(this.ln_10)
  7957. destroy(this.ln_11)
  7958. destroy(this.ln_12)
  7959. end on
  7960. event open;call super::open;dw_1.SetTransObject(sqlca)
  7961. dw_2.SetTransObject(sqlca)
  7962. dw_3.SetTransObject(sqlca)
  7963. dw_copy.SetTransObject(sqlca)
  7964. uo_mtrl = Create uo_mtrldef
  7965. uo_pf = Create uo_mtrl_pf
  7966. u_wrkprice = Create uo_workpricetable
  7967. s_tran = Message.PowerObjectParm
  7968. IF s_tran.b_long = 0 THEN //物料资料调用
  7969. IF Not IsNull(s_tran) THEN
  7970. ins_mtrlid = s_tran.c_long
  7971. ins_pfcode = s_tran.b_string
  7972. ins_mtrlid_pf = ins_mtrlid
  7973. ins_if_saletask = s_tran.g_long
  7974. ins_scid = s_tran.d_long
  7975. ins_taskid = s_tran.e_long
  7976. ins_printid = s_tran.f_long
  7977. ins_pfdscrp = s_tran.c_string
  7978. ELSE
  7979. ins_mtrlid = 0
  7980. ins_mtrlid_pf = 0
  7981. ins_pfcode = ''
  7982. ins_if_saletask = 0
  7983. ins_scid = 0
  7984. ins_taskid = 0
  7985. ins_printid = 0
  7986. END IF
  7987. wf_re_mtrl(1)
  7988. ELSEIF s_tran.b_long = 1 THEN
  7989. END IF
  7990. cb_re_mtrl.enabled = (ins_if_saletask = 0)
  7991. end event
  7992. event resize;call super::resize;ln_bar.EndX = THIS.Width
  7993. ln_bar2.EndX = THIS.Width
  7994. ln_3.EndX = THIS.Width
  7995. ln_4.EndX = THIS.Width
  7996. r_bar.Width = THIS.Width
  7997. dw_1.Width = THIS.Width - dw_1.X - 40
  7998. dw_1.Height = THIS.Height - dw_1.Y - 150 - mle_log.height
  7999. mle_log.y = dw_1.y + dw_1.height + 8
  8000. rb_1.y = mle_log.y + 12
  8001. rb_2.y = rb_1.y
  8002. dw_2.y = mle_log.y + 84
  8003. dw_2.width = dw_1.Width - mle_log.Width + 5
  8004. dw_3.y = dw_2.y
  8005. dw_3.x = dw_2.x
  8006. dw_3.width = dw_2.width
  8007. dw_3.height = dw_2.height
  8008. cb_edit_wp.y = dw_2.y + dw_2.height + 16
  8009. cb_save_wp.y = cb_edit_wp.y
  8010. cb_addmx_wp.y = cb_edit_wp.y
  8011. cb_delmx_wp.y = cb_edit_wp.y
  8012. cb_templet_ch.y = cb_edit_wp.y
  8013. end event
  8014. event close;call super::close;DESTROY uo_mtrl
  8015. DESTROY uo_pf
  8016. DESTROY u_wrkprice
  8017. end event
  8018. event key;call super::key;this.triggerevent('user_key')
  8019. end event
  8020. type cb_func from w_publ_base`cb_func within w_mtrldef_prdpf_padd
  8021. boolean visible = false
  8022. end type
  8023. type cb_exit from w_publ_base`cb_exit within w_mtrldef_prdpf_padd
  8024. integer x = 5371
  8025. integer width = 165
  8026. integer height = 164
  8027. integer picsize = 16
  8028. toolbaralignment pic_align = alignattop!
  8029. boolean border = false
  8030. end type
  8031. type dw_1 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd
  8032. event ue_dwndropdown pbm_dwndropdown
  8033. integer y = 352
  8034. integer width = 3589
  8035. integer height = 932
  8036. integer taborder = 20
  8037. boolean bringtotop = true
  8038. string dataobject = "dw_mtrldef_prdpf_padd"
  8039. boolean hscrollbar = true
  8040. boolean vscrollbar = true
  8041. boolean hsplitscroll = true
  8042. boolean rbutton_setposition_use = true
  8043. end type
  8044. event ue_dwndropdown;
  8045. String ls_col_pz,ls_col_mtrlid
  8046. String ls_pz_ch
  8047. Long ll_row,ll_mtrlid
  8048. s_pzwin_open arg_s_win
  8049. ll_row = THIS.GetRow()
  8050. IF ll_row > 0 THEN
  8051. // ls_col_mtrlid = THIS.Describe("#1.Name")
  8052. //
  8053. // IF NOT Pos(Lower(ls_col_mtrlid),'mtrlid') > 0 THEN RETURN
  8054. //
  8055. // ll_mtrlid = THIS.GetItemNumber(ll_row,ls_col_mtrlid)
  8056. //
  8057. ll_mtrlid = dw_1.object.u_prdpf_sonmtrlid[ll_row]
  8058. ls_col_pz = THIS.GetColumnName( )
  8059. arg_s_win.arg_x = THIS.X + THIS.PointerX() + PARENT.X
  8060. arg_s_win.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y
  8061. arg_s_win.arg_col = ls_col_pz
  8062. arg_s_win.arg_mtrlid = ll_mtrlid
  8063. ls_pz_ch = f_mtrl_pz(arg_s_win)
  8064. IF ls_pz_ch = '' THEN RETURN
  8065. THIS.SetItem(ll_row,ls_col_pz,ls_pz_ch)
  8066. END IF
  8067. end event
  8068. event rowfocuschanged;call super::rowfocuschanged;IF ins_ifmod THEN RETURN
  8069. IF ins_ifmod_wp THEN RETURN
  8070. IF currentrow > 0 THEN
  8071. THIS.SelectRow(0,FALSE)
  8072. THIS.SetRow(currentrow)
  8073. THIS.SelectRow(currentrow,TRUE)
  8074. PARENT.TriggerEvent('ue_retrieve_workprice')
  8075. PARENT.TriggerEvent('ue_retrieve_wkp')
  8076. parent.triggerevent('ue_allowedit')
  8077. END IF
  8078. end event
  8079. event clicked;call super::clicked;IF ins_ifmod THEN RETURN
  8080. IF ins_ifmod_wp THEN RETURN
  8081. IF row > 0 THEN
  8082. THIS.SelectRow(0,FALSE)
  8083. THIS.SetRow(row)
  8084. THIS.SelectRow(row,TRUE)
  8085. END IF
  8086. end event
  8087. event doubleclicked;call super::doubleclicked;If dwo.Name = 'u_prdpf_modlename' Then
  8088. Open(w_sc_mtrlwkp_modle_ch)
  8089. s_mtrl_wkp_tech_modle s_return
  8090. s_return = Message.PowerObjectParm
  8091. If s_return.modleid > 0 Then
  8092. dw_1.Object.u_prdpf_modleid[row] = s_return.modleid
  8093. dw_1.Object.u_prdpf_modlename[row] = s_return.modlename
  8094. End If
  8095. End If
  8096. If ins_ifmod_wp Then Return
  8097. If Not ins_ifmod Then Return
  8098. If dwo.Name = 'u_mtrldef_mtrltypeid' Then
  8099. Open(w_mtrltype_ch)
  8100. s_mtrltype s_type
  8101. s_type = Message.PowerObjectParm
  8102. If s_type.mtrltypeid > 0 Then //正常返回值则可以取以下值
  8103. dw_1.SetRedraw(False)
  8104. dw_1.Object.u_mtrldef_mtrltypeid[row] = s_type.mtrltypeid
  8105. dw_1.SetRedraw(True)
  8106. End If
  8107. end if
  8108. end event
  8109. event dwnkey;call super::dwnkey;IF Key = KeyEnter! THEN //
  8110. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  8111. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  8112. RETURN 1
  8113. END IF
  8114. parent.triggerevent('user_key')
  8115. end event
  8116. event itemchanged;call super::itemchanged;If row <= 0 Then Return
  8117. Long ll_lp
  8118. Long ll_i
  8119. Decimal ld_sonscale,ld_sonscale_ori
  8120. This.AcceptText()
  8121. If dwo.Name = 'u_prdpf_sonscale' Then
  8122. ll_lp = dw_1.Object.lp[row]
  8123. ld_sonscale_ori = dw_1.Object.u_prdpf_sonscale_ori[row]
  8124. ld_sonscale = dw_1.Object.u_prdpf_sonscale[row]
  8125. If IsNull(ld_sonscale_ori) Then ld_sonscale_ori = 1
  8126. If ld_sonscale_ori = 0 Then ld_sonscale_ori = 1
  8127. dw_1.SetRedraw(False)
  8128. For ll_i = row + 1 To dw_1.RowCount()
  8129. If dw_1.Object.lp[ll_i] <= ll_lp Then Exit
  8130. dw_1.Object.u_prdpf_sonscale[ll_i] = dw_1.Object.u_prdpf_sonscale_ori[ll_i] * (ld_sonscale / ld_sonscale_ori )
  8131. Next
  8132. dw_1.SetRedraw(True)
  8133. ElseIf dwo.Name = 'ch' Then
  8134. dw_1.SetRedraw(False)
  8135. If dw_1.Object.ch[row] = 1 Then
  8136. //反选
  8137. For ll_i = row + 1 To dw_1.RowCount()
  8138. If dw_1.Object.lp[ll_i] <= dw_1.Object.lp[row] Then Exit
  8139. dw_1.Object.ch[ll_i] = 0
  8140. Next
  8141. If Trim(dw_1.Object.u_prdpf_pfgroup[row]) <> '' Then
  8142. For ll_i = row + 1 To dw_1.RowCount()
  8143. If Pos(dw_1.Object.u_prdpf_pfgroup[ll_i],dw_1.Object.u_prdpf_pfgroup[row]) > 0 Then
  8144. dw_1.Object.ch[ll_i] = 0
  8145. End If
  8146. Next
  8147. End If
  8148. Else
  8149. //选中
  8150. For ll_i = row + 1 To dw_1.RowCount()
  8151. If dw_1.Object.lp[ll_i] <= dw_1.Object.lp[row] Then Exit
  8152. dw_1.Object.ch[ll_i] = 1
  8153. Next
  8154. If Trim(dw_1.Object.u_prdpf_pfgroup[row]) <> '' Then
  8155. For ll_i = row + 1 To dw_1.RowCount()
  8156. If dw_1.Object.u_prdpf_pfgroup[ll_i] = Trim(dw_1.Object.u_prdpf_pfgroup[row]) + '封边带' Then
  8157. dw_1.Object.ch[ll_i] = 1
  8158. End If
  8159. Next
  8160. End If
  8161. End If
  8162. dw_1.SetRedraw(True)
  8163. End If
  8164. end event
  8165. type st_2 from statictext within w_mtrldef_prdpf_padd
  8166. integer x = 18
  8167. integer y = 280
  8168. integer width = 480
  8169. integer height = 48
  8170. boolean bringtotop = true
  8171. integer textsize = -9
  8172. integer weight = 400
  8173. fontcharset fontcharset = gb2312charset!
  8174. fontpitch fontpitch = variable!
  8175. string facename = "宋体"
  8176. long textcolor = 33554432
  8177. long backcolor = 134217739
  8178. string text = "正在使用物料清单:"
  8179. alignment alignment = right!
  8180. boolean focusrectangle = false
  8181. end type
  8182. type st_mtrl from statictext within w_mtrldef_prdpf_padd
  8183. integer x = 494
  8184. integer y = 204
  8185. integer width = 1563
  8186. integer height = 48
  8187. boolean bringtotop = true
  8188. integer textsize = -9
  8189. integer weight = 400
  8190. fontcharset fontcharset = gb2312charset!
  8191. fontpitch fontpitch = variable!
  8192. string facename = "宋体"
  8193. long textcolor = 33554432
  8194. long backcolor = 134217739
  8195. string text = "none"
  8196. boolean focusrectangle = false
  8197. end type
  8198. type cb_mod_bcp from uo_imflatbutton within w_mtrldef_prdpf_padd
  8199. integer x = 1038
  8200. integer width = 306
  8201. integer height = 164
  8202. integer taborder = 30
  8203. boolean bringtotop = true
  8204. string text = "编辑半成品"
  8205. string normalpicname = "open.bmp"
  8206. integer picsize = 16
  8207. toolbaralignment pic_align = alignattop!
  8208. boolean border = false
  8209. end type
  8210. event clicked;call super::clicked;IF ins_ifmod_wp THEN
  8211. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  8212. RETURN
  8213. END IF
  8214. Long ll_row
  8215. Long ll_mtrlid
  8216. dw_1.AcceptText()
  8217. ll_row = dw_1.GetRow()
  8218. IF ll_row <= 0 THEN
  8219. MessageBox('系统提示','请选择要编辑的半成品')
  8220. RETURN
  8221. END IF
  8222. IF NOT ins_ifmod THEN
  8223. // IF dw_1.Object.u_mtrldef_mtrlprp[ll_row] <> 1 THEN
  8224. // MessageBox('系统提示','只能编辑半成品属性的物料')
  8225. // RETURN
  8226. // END IF
  8227. IF dw_1.Object.lp[ll_row] = 0 THEN
  8228. MessageBox('系统提示','主产品资料不能编辑')
  8229. RETURN
  8230. END IF
  8231. dw_1.Object.ifmod[ll_row] = 1
  8232. ins_mtrlcode_ori = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  8233. ins_mtrlname_ori = dw_1.Object.u_mtrldef_mtrlname[ll_row]
  8234. ins_mtrlmode_ori = dw_1.Object.u_mtrldef_mtrlmode[ll_row]
  8235. ins_unit_ori = dw_1.Object.u_mtrldef_unit[ll_row]
  8236. ins_mtrlsectype_ori = dw_1.Object.u_mtrldef_mtrlsectype[ll_row]
  8237. ins_zxmtrlmode_ori = dw_1.Object.u_mtrldef_zxmtrlmode[ll_row]
  8238. ins_usermtrlmode_ori = dw_1.Object.u_mtrldef_usermtrlmode[ll_row]
  8239. ins_mtrltypeid_ori = dw_1.Object.u_mtrldef_mtrltypeid[ll_row]
  8240. ins_scid_ori = dw_1.Object.u_mtrldef_scid[ll_row]
  8241. ins_dftwrkgrpid_ori = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row]
  8242. ins_orderdays_ori = dw_1.Object.u_mtrldef_orderdays[ll_row]
  8243. ins_buydays_ori = dw_1.Object.u_mtrldef_buydays[ll_row]
  8244. ins_wfjgdays_ori = dw_1.Object.u_mtrldef_wfjgdays[ll_row]
  8245. ins_mb_mtrlcode = dw_1.Object.mb_mtrlcode[ll_row]
  8246. dw_1.AcceptText()
  8247. ELSE
  8248. dw_1.SetRedraw(FALSE)
  8249. dw_1.Object.u_mtrldef_mtrlcode[ll_row] = ins_mtrlcode_ori
  8250. dw_1.Object.u_mtrldef_mtrlname[ll_row] = ins_mtrlname_ori
  8251. dw_1.Object.u_mtrldef_mtrlmode[ll_row] = ins_mtrlmode_ori
  8252. dw_1.Object.u_mtrldef_unit[ll_row] = ins_unit_ori
  8253. dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = ins_mtrlsectype_ori
  8254. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = ins_zxmtrlmode_ori
  8255. dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = ins_usermtrlmode_ori
  8256. dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = ins_mtrltypeid_ori
  8257. dw_1.Object.u_mtrldef_scid[ll_row] = ins_scid_ori
  8258. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = ins_dftwrkgrpid_ori
  8259. dw_1.Object.u_mtrldef_orderdays[ll_row] = ins_orderdays_ori
  8260. dw_1.Object.u_mtrldef_buydays[ll_row] = ins_buydays_ori
  8261. dw_1.Object.u_mtrldef_wfjgdays[ll_row] = ins_wfjgdays_ori
  8262. dw_1.Object.mb_mtrlcode[ll_row] = ins_mb_mtrlcode
  8263. dw_1.Object.ifmod[ll_row] = 0
  8264. dw_1.SetRedraw(TRUE)
  8265. dw_1.AcceptText()
  8266. END IF
  8267. ins_ifmod = NOT ins_ifmod
  8268. wf_face()
  8269. end event
  8270. type cb_save_bcp from uo_imflatbutton within w_mtrldef_prdpf_padd
  8271. integer x = 2258
  8272. integer width = 133
  8273. integer height = 164
  8274. integer taborder = 10
  8275. boolean bringtotop = true
  8276. boolean enabled = false
  8277. string normalpicname = "ok.bmp"
  8278. integer picsize = 16
  8279. toolbaralignment pic_align = alignattop!
  8280. boolean border = false
  8281. end type
  8282. event clicked;call super::clicked;Long ll_row
  8283. String ls_mtrlcode
  8284. Long cnt,ll_lp,ll_i,ll_mtrlid
  8285. String ls_mtrlcode_p,ls_procode
  8286. Long ll_k,ll_row_find,ll_j
  8287. ll_row = dw_1.GetRow()
  8288. IF ll_row <= 0 THEN
  8289. MessageBox('系统提示','请选择要编辑的半成品')
  8290. RETURN
  8291. END IF
  8292. dw_1.AcceptText()
  8293. ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_row]
  8294. IF dw_1.Object.u_mtrldef_mtrlid[ll_row] > 0 THEN
  8295. IF dw_1.Object.u_mtrldef_mtrlcode[ll_row] = ins_mtrlcode_ori THEN
  8296. MessageBox('系统提示','物料编辑没有修改,不能保存')
  8297. RETURN
  8298. END IF
  8299. END IF
  8300. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  8301. IF Trim(ls_mtrlcode) = '' THEN
  8302. MessageBox('系统提示','请输入物料编码')
  8303. dw_1.SetFocus()
  8304. dw_1.SetColumn("u_mtrldef_mtrlcode")
  8305. RETURN
  8306. END IF
  8307. SELECT count(*) INTO :cnt
  8308. FROM u_mtrldef
  8309. Where mtrlcode = :ls_mtrlcode;
  8310. IF sqlca.SQLCode <> 0 THEN
  8311. MessageBox('Error','查询新编码是否已存在失败')
  8312. RETURN
  8313. END IF
  8314. IF cnt > 0 THEN
  8315. MessageBox('系统提示','新输入的编码已存在,请重新输入')
  8316. dw_1.SetFocus()
  8317. dw_1.SetColumn("u_mtrldef_mtrlcode")
  8318. RETURN
  8319. END IF
  8320. IF trim(dw_1.Object.u_mtrldef_unit[ll_row]) = '' THEN
  8321. MessageBox('系统提示','请输入库存单位')
  8322. dw_1.SetFocus()
  8323. dw_1.SetColumn("u_mtrldef_unit")
  8324. RETURN
  8325. END IF
  8326. IF dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = 0 THEN
  8327. MessageBox('系统提示','请选择类别')
  8328. dw_1.SetFocus()
  8329. dw_1.SetColumn("u_mtrldef_mtrltypeid")
  8330. RETURN
  8331. END IF
  8332. IF dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = 0 THEN
  8333. MessageBox('系统提示','请选择默认制造车间')
  8334. dw_1.SetFocus()
  8335. dw_1.SetColumn("u_mtrldef_dftwrkgrpid")
  8336. RETURN
  8337. END IF
  8338. dw_1.Object.u_mtrldef_mtrlid[ll_row] = 0
  8339. dw_1.Object.ifnewadd[ll_row] = 1
  8340. dw_1.Object.iflock[ll_row] = 0
  8341. IF cbx_pfgroup.Checked THEN
  8342. dw_1.Object.u_prdpf_pfgroup[ll_row] = dw_1.Object.u_mtrldef_mtrlname[ll_row]
  8343. END IF
  8344. ll_lp = dw_1.Object.lp[ll_row]
  8345. dw_1.SetRedraw(False)
  8346. FOR ll_i = ll_row + 1 To dw_1.RowCount()
  8347. IF dw_1.Object.lp[ll_i] = ll_lp + 1 then //And dw_1.Object.pmtrlid[ll_i] = ll_mtrlid THEN
  8348. dw_1.Object.iflock[ll_i] = 0
  8349. END IF
  8350. if dw_1.Object.lp[ll_i] <= ll_lp then exit
  8351. NEXT
  8352. dw_1.SetRedraw(True)
  8353. dw_1.Object.ifmod[ll_row] = 0
  8354. ins_ifmod = False
  8355. dw_1.AcceptText()
  8356. dw_1.SetColumn("u_sc_wkp_wrkgrpname")
  8357. FOR ll_i = 1 To dw_copy.RowCount()
  8358. IF dw_copy.Object.u_mtrldef_mtrlcode[ll_i] = ins_mtrlcode_ori THEN
  8359. dw_copy.Object.u_mtrldef_mtrlcode[ll_i] = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  8360. END IF
  8361. NEXT
  8362. dw_copy.AcceptText()
  8363. ls_mtrlcode_p = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  8364. FOR ll_i = 1 To dw_2.RowCount()
  8365. ls_procode = dw_2.Object.procode[ll_i]
  8366. dw_2.Object.u_mtrldef_mtrlcode[ll_i] = ls_mtrlcode_p
  8367. dw_2.AcceptText()
  8368. FOR ll_k = 1 To dw_copy.RowCount()
  8369. ll_row_find = dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "' and procode = '"+ls_procode+"'", ll_k, dw_copy.RowCount())
  8370. IF ll_row_find > 0 THEN
  8371. dw_copy.DeleteRow(ll_row_find)
  8372. ll_k = 1
  8373. END IF
  8374. NEXT
  8375. IF dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 THEN CONTINUE
  8376. ll_j++
  8377. dw_2.RowsCopy (ll_i,ll_i,Primary!,dw_copy,ll_j,Primary!)
  8378. NEXT
  8379. IF dw_2.RowCount() > 0 THEN
  8380. dw_1.Object.ifmod_wp[ll_row] = 1
  8381. END IF
  8382. wf_face()
  8383. ins_cnt++
  8384. IF Trim(ins_mtrlcode_ori) <> Trim(dw_1.Object.u_mtrldef_mtrlcode[ll_row]) THEN
  8385. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.编辑半成品:原编码:'+ ins_mtrlcode_ori +' 编辑为新编码:'+dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  8386. END IF
  8387. end event
  8388. type cb_other_bom from uo_imflatbutton within w_mtrldef_prdpf_padd
  8389. integer x = 265
  8390. integer width = 457
  8391. integer height = 164
  8392. integer taborder = 10
  8393. boolean bringtotop = true
  8394. string text = "选择其它物料清单"
  8395. string normalpicname = "p1.BMP"
  8396. integer picsize = 16
  8397. toolbaralignment pic_align = alignattop!
  8398. boolean border = false
  8399. end type
  8400. event clicked;call super::clicked;IF ins_ifmod_wp THEN
  8401. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  8402. RETURN
  8403. END IF
  8404. IF ins_ifmod THEN
  8405. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  8406. RETURN
  8407. END IF
  8408. Long ll_i
  8409. Boolean lb_ifmod = FALSE
  8410. String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg
  8411. FOR ll_i = 1 TO dw_1.RowCount()
  8412. IF dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 THEN
  8413. lb_ifmod = TRUE
  8414. EXIT
  8415. END IF
  8416. NEXT
  8417. IF lb_ifmod THEN
  8418. IF MessageBox('询问','选择其他物料清单会导致你当前的修改全部丢失,是否继续?',question!,yesno!) = 2 THEN RETURN
  8419. END IF
  8420. IF NOT IsValid(w_mtrldef_edit) THEN
  8421. s_edit_index_tran s_ch_tran //传递参数使用
  8422. s_ch_tran.if_retrieve_all = FALSE //是否一次retrieve所有行
  8423. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  8424. s_ch_tran.arg_pkid = 0 //目标定位pkid (备用)
  8425. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  8426. s_ch_tran.if_select_all = FALSE
  8427. s_ch_tran.b_long = 0
  8428. s_ch_tran.c_long = -1
  8429. s_ch_tran.f_long = 0
  8430. THIS.Enabled = FALSE
  8431. OpenWithParm(w_mtrldef_edit,s_ch_tran)
  8432. THIS.Enabled = TRUE
  8433. s_mtrldef_array s_inscust
  8434. s_inscust = Message.PowerObjectParm
  8435. IF UpperBound(s_inscust.mtrlid) = 1 AND s_inscust.mtrlid[1] > 0 THEN
  8436. ins_mtrlid_pf = s_inscust.mtrlid[1]
  8437. st_mtrl_pf.Text = '['+s_inscust.mtrlcode[1]+']'+s_inscust.mtrlname[1]
  8438. IF ins_mtrlid_pf > 0 THEN
  8439. ls_pfcode = f_get_dft_pf(ins_mtrlid_pf)
  8440. dw_1.SetRedraw(FALSE)
  8441. FOR ll_i = dw_1.RowCount() TO 2 STEP -1
  8442. dw_1.DeleteRow(ll_i)
  8443. NEXT
  8444. IF wf_addmx(ins_mtrlid_pf,ls_pfcode,1,1,arg_msg) = 0 THEN
  8445. MessageBox('Error',arg_msg)
  8446. END IF
  8447. dw_1.SetRedraw(TRUE)
  8448. ins_cnt++
  8449. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.选择 ' + s_inscust.mtrlcode[1] + ' 的物料清单,重新生成明细内容'
  8450. dw_copy.Reset()
  8451. END IF
  8452. END IF
  8453. END IF
  8454. end event
  8455. type cb_save from uo_imflatbutton within w_mtrldef_prdpf_padd
  8456. integer x = 4914
  8457. integer width = 251
  8458. integer height = 164
  8459. integer taborder = 20
  8460. boolean bringtotop = true
  8461. string text = "生成资料"
  8462. string normalpicname = "SAVE.BMP"
  8463. integer picsize = 16
  8464. toolbaralignment pic_align = alignattop!
  8465. boolean border = false
  8466. end type
  8467. event clicked;call super::clicked;IF ins_ifmod_wp THEN
  8468. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  8469. RETURN
  8470. END IF
  8471. IF ins_ifmod THEN
  8472. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  8473. RETURN
  8474. END IF
  8475. String arg_msg
  8476. IF MessageBox('询问','确定要按当前内容生成物料及相关清单、工价表吗?',question!,yesno!) = 2 THEN RETURN
  8477. IF wf_checkrand(arg_msg) = 0 THEN
  8478. MessageBox('Error',arg_msg)
  8479. RETURN
  8480. END IF
  8481. IF wf_save(arg_msg) = 0 THEN
  8482. MessageBox('Error',arg_msg)
  8483. RETURN
  8484. END IF
  8485. MessageBox('系统提示','操作成功!')
  8486. IF cbx_save_close.Checked THEN
  8487. Close(Parent)
  8488. ELSE
  8489. wf_re_mtrl(1)
  8490. END IF
  8491. end event
  8492. type st_1 from statictext within w_mtrldef_prdpf_padd
  8493. integer x = 69
  8494. integer y = 204
  8495. integer width = 425
  8496. integer height = 48
  8497. boolean bringtotop = true
  8498. integer textsize = -9
  8499. integer weight = 400
  8500. fontcharset fontcharset = gb2312charset!
  8501. fontpitch fontpitch = variable!
  8502. string facename = "宋体"
  8503. long textcolor = 33554432
  8504. long backcolor = 134217739
  8505. string text = "正在编辑的产品:"
  8506. alignment alignment = right!
  8507. boolean focusrectangle = false
  8508. end type
  8509. type st_mtrl_pf from statictext within w_mtrldef_prdpf_padd
  8510. integer x = 494
  8511. integer y = 280
  8512. integer width = 1563
  8513. integer height = 48
  8514. boolean bringtotop = true
  8515. integer textsize = -9
  8516. integer weight = 400
  8517. fontcharset fontcharset = gb2312charset!
  8518. fontpitch fontpitch = variable!
  8519. string facename = "宋体"
  8520. long textcolor = 33554432
  8521. long backcolor = 134217739
  8522. string text = "none"
  8523. boolean focusrectangle = false
  8524. end type
  8525. type cb_delmx from uo_imflatbutton within w_mtrldef_prdpf_padd
  8526. integer x = 3086
  8527. integer width = 197
  8528. integer height = 164
  8529. integer taborder = 30
  8530. boolean bringtotop = true
  8531. string text = "删明细"
  8532. string normalpicname = "DELETE.BMP"
  8533. integer picsize = 16
  8534. toolbaralignment pic_align = alignattop!
  8535. boolean border = false
  8536. end type
  8537. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  8538. String menustr
  8539. menustr = "Text=勾选删除~tEvent=ue_del_ch"
  8540. menustr = menustr + "|" + "Text=删除本级(下级层次前移)~tEvent=ue_del_this"
  8541. IF Len(Trim(menustr)) <> 0 THEN
  8542. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  8543. dmPopupMenu.mf_BuildMenu(This, menustr)
  8544. dmPopupMenu.mf_PopMenu()
  8545. Destroy dmPopupMenu
  8546. END IF
  8547. end event
  8548. type mle_log from multilineedit within w_mtrldef_prdpf_padd
  8549. integer y = 1292
  8550. integer width = 1545
  8551. integer height = 992
  8552. integer taborder = 30
  8553. boolean bringtotop = true
  8554. integer textsize = -9
  8555. integer weight = 400
  8556. fontcharset fontcharset = gb2312charset!
  8557. fontpitch fontpitch = variable!
  8558. string facename = "宋体"
  8559. long textcolor = 33554432
  8560. string text = "------------------------操作记录-----------------------"
  8561. boolean autovscroll = true
  8562. boolean displayonly = true
  8563. borderstyle borderstyle = stylelowered!
  8564. end type
  8565. type dw_2 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd
  8566. integer x = 1550
  8567. integer y = 1376
  8568. integer width = 2039
  8569. integer height = 788
  8570. integer taborder = 20
  8571. boolean bringtotop = true
  8572. string dataobject = "dw_workpricetable_padd_edit"
  8573. boolean hscrollbar = true
  8574. boolean vscrollbar = true
  8575. boolean hsplitscroll = true
  8576. end type
  8577. event rowfocuschanged;call super::rowfocuschanged;
  8578. IF currentrow > 0 THEN
  8579. THIS.SelectRow(0,FALSE)
  8580. THIS.SetRow(currentrow)
  8581. THIS.SelectRow(currentrow,TRUE)
  8582. END IF
  8583. end event
  8584. event doubleclicked;call super::doubleclicked;IF ins_ifmod_wp THEN
  8585. IF dwo.Name = 'u_sc_workprice_status' THEN
  8586. Parent.TriggerEvent('ue_wp_status')
  8587. ELSEIF dwo.Name = 'u_sc_workprice_pricestr' THEN
  8588. Parent.TriggerEvent('ue_wp_pricestr')
  8589. ELSEIF dwo.Name = 'u_sc_workprice_workqtystr' THEN
  8590. Parent.TriggerEvent('ue_wp_workqtystr')
  8591. ELSEIF dwo.Name = 'u_sc_workprice_u_workqtystr' THEN
  8592. Parent.TriggerEvent('ue_wp_u_workqtystr')
  8593. ELSEIF dwo.Name = 'u_sc_workprice_u_pricestr' THEN
  8594. Parent.TriggerEvent('ue_wp_u_pricestr')
  8595. ELSE
  8596. Parent.TriggerEvent('ue_wp_procode')
  8597. END IF
  8598. END IF
  8599. end event
  8600. event clicked;call super::clicked;IF row > 0 THEN
  8601. THIS.SelectRow(0,FALSE)
  8602. THIS.SetRow(row)
  8603. THIS.SelectRow(row,TRUE)
  8604. END IF
  8605. end event
  8606. event dwnkey;call super::dwnkey;parent.triggerevent('user_key')
  8607. end event
  8608. type cb_addmx_wp from uo_imflatbutton within w_mtrldef_prdpf_padd
  8609. integer x = 2149
  8610. integer y = 2180
  8611. integer width = 288
  8612. integer height = 88
  8613. integer taborder = 30
  8614. boolean bringtotop = true
  8615. boolean enabled = false
  8616. string text = "增明细"
  8617. string normalpicname = "mx1.BMP"
  8618. integer picsize = 16
  8619. end type
  8620. event clicked;call super::clicked;IF Not ins_ifmod_wp THEN RETURN
  8621. IF rb_1.Checked THEN
  8622. Parent.TriggerEvent('ue_wp_procode')
  8623. ELSEIF rb_2.Checked THEN
  8624. Long li_row,ll_row
  8625. String ls_mtrlcode
  8626. ll_row = dw_1.GetRow()
  8627. IF ll_row <= 0 THEN
  8628. MessageBox('系统提示','没有正确的物料内容')
  8629. RETURN
  8630. END IF
  8631. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  8632. li_row = dw_3.InsertRow(0)
  8633. dw_3.Object.u_mtrldef_mtrlcode[li_row] = ls_mtrlcode
  8634. dw_3.SelectRow(0,False)
  8635. dw_3.SetRow(li_row)
  8636. dw_3.ScrollToRow(li_row)
  8637. dw_3.SelectRow(li_row,True)
  8638. dw_3.SetColumn ('printid')
  8639. END IF
  8640. end event
  8641. type cb_delmx_wp from uo_imflatbutton within w_mtrldef_prdpf_padd
  8642. integer x = 2441
  8643. integer y = 2180
  8644. integer width = 288
  8645. integer height = 88
  8646. integer taborder = 40
  8647. boolean bringtotop = true
  8648. boolean enabled = false
  8649. string text = "删明细"
  8650. string normalpicname = "mx2.BMP"
  8651. integer picsize = 16
  8652. end type
  8653. event clicked;call super::clicked;IF Not ins_ifmod_wp THEN
  8654. MessageBox('系统提示','非编辑状态下不可用')
  8655. RETURN
  8656. END IF
  8657. IF MessageBox ("询问","是否确定要删除当前明细记录?",Question!,YesNo! ) = 2 THEN RETURN
  8658. IF rb_1.Checked THEN
  8659. IF dw_2.GetRow() = 0 THEN
  8660. MessageBox('提示','请选择删除的行对象!')
  8661. RETURN
  8662. END IF
  8663. dw_2.DeleteRow (dw_2.GetRow())
  8664. ELSEIF rb_2.Checked THEN
  8665. IF dw_3.GetRow() = 0 THEN
  8666. MessageBox('提示','请选择删除的行对象!')
  8667. RETURN
  8668. END IF
  8669. dw_3.DeleteRow (dw_3.GetRow())
  8670. END IF
  8671. end event
  8672. type cb_save_wp from uo_imflatbutton within w_mtrldef_prdpf_padd
  8673. integer x = 1842
  8674. integer y = 2180
  8675. integer width = 261
  8676. integer height = 88
  8677. integer taborder = 40
  8678. boolean bringtotop = true
  8679. boolean enabled = false
  8680. string text = "保存"
  8681. string normalpicname = "save.bmp"
  8682. integer picsize = 16
  8683. end type
  8684. event clicked;call super::clicked;IF Not ins_ifmod_wp THEN
  8685. MessageBox('系统提示','非编辑状态下不能使用')
  8686. RETURN
  8687. END IF
  8688. Long ll_i,ll_j,ll_row,ll_k,ll_row_find
  8689. String arg_msg
  8690. String ls_mtrlcode,ls_procode,ls_mtrlcode_p
  8691. String ls_wkpname
  8692. Long ll_swkpid,ll_owkpid
  8693. ll_j = 0
  8694. dw_1.AcceptText()
  8695. dw_2.AcceptText()
  8696. ll_row = dw_1.GetRow()
  8697. IF ll_row <= 0 THEN
  8698. MessageBox('系统提示','没有正确的物料内容')
  8699. RETURN
  8700. END IF
  8701. ls_mtrlcode_p = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  8702. IF rb_1.Checked THEN
  8703. FOR ll_k = dw_copy.RowCount() To 1 Step -1
  8704. ll_row_find = dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "'", ll_k, dw_copy.RowCount())
  8705. IF ll_row_find > 0 THEN
  8706. dw_copy.DeleteRow(ll_row_find)
  8707. END IF
  8708. NEXT
  8709. dw_2.SetRedraw(False)
  8710. FOR ll_i = 1 To dw_2.RowCount()
  8711. ls_procode = dw_2.Object.procode[ll_i]
  8712. dw_2.Object.u_mtrldef_mtrlcode[ll_i] = ls_mtrlcode_p
  8713. dw_2.AcceptText()
  8714. IF dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 THEN CONTINUE
  8715. ll_j++
  8716. dw_2.RowsCopy (ll_i,ll_i,Primary!,dw_copy,ll_j,Primary!)
  8717. NEXT
  8718. dw_2.SetRedraw(True)
  8719. dw_1.Object.ifmod_wp[ll_row] = 1
  8720. dw_1.AcceptText()
  8721. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.编辑物料 '+ls_mtrlcode_p+' 工价表 '
  8722. ELSEIF rb_2.Checked THEN
  8723. FOR ll_k = dw_copy_wkp.RowCount() To 1 Step -1
  8724. ll_row_find = dw_copy_wkp.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "'", ll_k, dw_copy_wkp.RowCount())
  8725. IF ll_row_find > 0 THEN
  8726. dw_copy_wkp.DeleteRow(ll_row_find)
  8727. END IF
  8728. NEXT
  8729. IF wf_check_wkp(arg_msg) = 0 THEN
  8730. MessageBox('Error',arg_msg)
  8731. RETURN
  8732. END IF
  8733. dw_3.SetRedraw(False)
  8734. FOR ll_i = 1 To dw_3.RowCount()
  8735. ls_wkpname = dw_3.Object.wkpname[ll_i]
  8736. ll_swkpid = dw_3.Object.swkpid[ll_i]
  8737. ll_owkpid = dw_3.Object.owkpid[ll_i]
  8738. dw_3.Object.u_mtrldef_mtrlcode[ll_i] = ls_mtrlcode_p
  8739. dw_3.AcceptText()
  8740. IF dw_copy_wkp.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "' and wkpname = '"+ls_wkpname+"' and swkpid = "+String(ll_swkpid) + " and owkpid = "+String(ll_owkpid), 1, dw_copy_wkp.RowCount()) > 0 THEN CONTINUE
  8741. ll_j++
  8742. dw_3.RowsCopy (ll_i,ll_i,Primary!,dw_copy_wkp,ll_j,Primary!)
  8743. NEXT
  8744. dw_3.SetRedraw(True)
  8745. dw_1.Object.ifmod_wkp[ll_row] = 1
  8746. dw_1.AcceptText()
  8747. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.编辑物料 '+ls_mtrlcode_p+' 工组流程 '
  8748. END IF
  8749. ins_ifmod_wp = Not ins_ifmod_wp
  8750. wf_face_wp()
  8751. end event
  8752. type cb_edit_wp from uo_imflatbutton within w_mtrldef_prdpf_padd
  8753. integer x = 1577
  8754. integer y = 2180
  8755. integer width = 261
  8756. integer height = 88
  8757. integer taborder = 40
  8758. boolean bringtotop = true
  8759. string text = "修改"
  8760. string normalpicname = "open.BMP"
  8761. integer picsize = 16
  8762. end type
  8763. event clicked;call super::clicked;IF ins_ifmod THEN
  8764. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  8765. RETURN
  8766. END IF
  8767. Long ll_row
  8768. IF Not ins_ifmod_wp THEN
  8769. ll_row = dw_1.GetRow()
  8770. IF ll_row <= 0 THEN
  8771. MessageBox('系统提示','没有正确的物料内容')
  8772. RETURN
  8773. END IF
  8774. IF Trim( dw_1.Object.u_mtrldef_mtrlcode[ll_row]) = '' THEN
  8775. MessageBox('系统提示','请先填写半成品编码')
  8776. RETURN
  8777. END IF
  8778. IF dw_1.Object.u_mtrldef_mtrlorigin[ll_row] <> 0 THEN
  8779. MessageBox('系统提示','只有自制来源的产品及半成品才能编辑工价表明细或工组流利明细,请检查')
  8780. RETURN
  8781. END IF
  8782. ELSE
  8783. Parent.TriggerEvent('ue_retrieve_workprice')
  8784. Parent.TriggerEvent('ue_retrieve_wkp')
  8785. END IF
  8786. ins_ifmod_wp = Not ins_ifmod_wp
  8787. wf_face_wp()
  8788. end event
  8789. type dw_copy from datawindow within w_mtrldef_prdpf_padd
  8790. boolean visible = false
  8791. integer x = 2784
  8792. integer y = 1828
  8793. integer width = 773
  8794. integer height = 392
  8795. integer taborder = 20
  8796. boolean bringtotop = true
  8797. string title = "none"
  8798. string dataobject = "dw_workpricetable_padd_edit"
  8799. boolean hscrollbar = true
  8800. boolean vscrollbar = true
  8801. boolean hsplitscroll = true
  8802. boolean livescroll = true
  8803. borderstyle borderstyle = stylelowered!
  8804. end type
  8805. type cb_cmpl_pfklmode from commandbutton within w_mtrldef_prdpf_padd
  8806. integer x = 2107
  8807. integer y = 196
  8808. integer width = 315
  8809. integer height = 68
  8810. integer taborder = 200
  8811. boolean bringtotop = true
  8812. integer textsize = -9
  8813. integer weight = 400
  8814. fontcharset fontcharset = gb2312charset!
  8815. fontpitch fontpitch = variable!
  8816. string facename = "宋体"
  8817. string text = "计算用料量"
  8818. end type
  8819. event clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  8820. String menustr
  8821. menustr = "Text=按开料规格~tEvent=ue_cmp_pfklmode"
  8822. menustr = menustr + "|" + "Text=按部件规格~tEvent=ue_cmp_pfgroupmode"
  8823. IF Len(Trim(menustr)) <> 0 THEN
  8824. dmPopupMenu = CREATE m_Dfc_Control_PopupMenu
  8825. dmPopupMenu.mf_BuildMenu(THIS, menustr)
  8826. dmPopupMenu.mf_PopMenu()
  8827. DESTROY dmPopupMenu
  8828. END IF
  8829. end event
  8830. type st_arg from statictext within w_mtrldef_prdpf_padd
  8831. integer x = 2423
  8832. integer y = 204
  8833. integer width = 201
  8834. integer height = 48
  8835. boolean bringtotop = true
  8836. integer textsize = -9
  8837. integer weight = 400
  8838. fontcharset fontcharset = gb2312charset!
  8839. fontpitch fontpitch = variable!
  8840. string facename = "宋体"
  8841. long textcolor = 33554432
  8842. long backcolor = 134217739
  8843. string text = "÷参数"
  8844. boolean focusrectangle = false
  8845. end type
  8846. type em_arg from editmask within w_mtrldef_prdpf_padd
  8847. integer x = 2624
  8848. integer y = 188
  8849. integer width = 494
  8850. integer height = 84
  8851. integer taborder = 210
  8852. boolean bringtotop = true
  8853. integer textsize = -9
  8854. integer weight = 400
  8855. fontcharset fontcharset = gb2312charset!
  8856. fontpitch fontpitch = variable!
  8857. string facename = "宋体"
  8858. long textcolor = 33554432
  8859. string text = "1"
  8860. borderstyle borderstyle = stylelowered!
  8861. string mask = "###############.00########"
  8862. end type
  8863. type cbx_cmp_qty from checkbox within w_mtrldef_prdpf_padd
  8864. integer x = 2107
  8865. integer y = 276
  8866. integer width = 631
  8867. integer height = 60
  8868. boolean bringtotop = true
  8869. integer textsize = -9
  8870. integer weight = 400
  8871. fontcharset fontcharset = gb2312charset!
  8872. fontpitch fontpitch = variable!
  8873. string facename = "宋体"
  8874. long textcolor = 33554432
  8875. long backcolor = 134217739
  8876. string text = "计算用料量时乘部件数"
  8877. end type
  8878. type cb_re_mtrl from uo_imflatbutton within w_mtrldef_prdpf_padd
  8879. integer width = 265
  8880. integer height = 164
  8881. integer taborder = 20
  8882. boolean bringtotop = true
  8883. string text = "选择产品"
  8884. string normalpicname = "p2.BMP"
  8885. integer picsize = 16
  8886. toolbaralignment pic_align = alignattop!
  8887. boolean border = false
  8888. end type
  8889. event clicked;call super::clicked;IF ins_ifmod_wp THEN
  8890. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  8891. RETURN
  8892. END IF
  8893. IF ins_ifmod THEN
  8894. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  8895. RETURN
  8896. END IF
  8897. Long ll_i
  8898. Boolean lb_ifmod = FALSE
  8899. String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg
  8900. FOR ll_i = 1 TO dw_1.RowCount()
  8901. IF dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 THEN
  8902. lb_ifmod = TRUE
  8903. EXIT
  8904. END IF
  8905. NEXT
  8906. IF lb_ifmod THEN
  8907. IF MessageBox('询问','重新选择产品会导致你当前的修改全部丢失,是否继续?',question!,yesno!) = 2 THEN RETURN
  8908. END IF
  8909. IF NOT IsValid(w_mtrldef_edit) THEN
  8910. s_edit_index_tran s_ch_tran //传递参数使用
  8911. s_ch_tran.if_retrieve_all = FALSE //是否一次retrieve所有行
  8912. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  8913. s_ch_tran.arg_pkid = 0 //目标定位pkid (备用)
  8914. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  8915. s_ch_tran.if_select_all = FALSE
  8916. s_ch_tran.b_long = 0
  8917. s_ch_tran.c_long = -1
  8918. s_ch_tran.f_long = 0
  8919. THIS.Enabled = FALSE
  8920. OpenWithParm(w_mtrldef_edit,s_ch_tran)
  8921. THIS.Enabled = TRUE
  8922. s_mtrldef_array s_inscust
  8923. s_inscust = Message.PowerObjectParm
  8924. IF UpperBound(s_inscust.mtrlid) = 1 AND s_inscust.mtrlid[1] > 0 THEN
  8925. IF s_inscust.mtrlorigin[1] = 2 THEN
  8926. MessageBox('系统提示','目标产品来源不能为采购')
  8927. RETURN
  8928. END IF
  8929. ins_mtrlid_pf = s_inscust.mtrlid[1]
  8930. ins_mtrlid = ins_mtrlid_pf
  8931. wf_re_mtrl(1)
  8932. END IF
  8933. END IF
  8934. end event
  8935. type cbx_pfgroup from checkbox within w_mtrldef_prdpf_padd
  8936. integer x = 2766
  8937. integer y = 276
  8938. integer width = 795
  8939. integer height = 60
  8940. boolean bringtotop = true
  8941. integer textsize = -9
  8942. integer weight = 400
  8943. fontcharset fontcharset = gb2312charset!
  8944. fontpitch fontpitch = variable!
  8945. string facename = "宋体"
  8946. long textcolor = 33554432
  8947. long backcolor = 134217739
  8948. string text = "新半成品部件名称按物料名称"
  8949. end type
  8950. event clicked;Int if_pfgroup
  8951. IF THIS.Checked THEN
  8952. if_pfgroup = 1
  8953. ELSE
  8954. if_pfgroup = 0
  8955. END IF
  8956. f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_pfgroup", String(if_pfgroup))
  8957. end event
  8958. event constructor;Int if_pfgroup
  8959. if_pfgroup = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_add', "if_pfgroup", '0'))
  8960. IF if_pfgroup = 1 THEN
  8961. THIS.Checked = TRUE
  8962. ELSE
  8963. THIS.Checked = FALSE
  8964. END IF
  8965. end event
  8966. type cb_import from uo_imflatbutton within w_mtrldef_prdpf_padd
  8967. integer x = 727
  8968. integer width = 279
  8969. integer height = 164
  8970. integer taborder = 10
  8971. boolean bringtotop = true
  8972. string text = "Excel导入"
  8973. string normalpicname = "excel.bmp"
  8974. integer picsize = 16
  8975. toolbaralignment pic_align = alignattop!
  8976. boolean border = false
  8977. end type
  8978. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  8979. String menustr
  8980. String ls_bar
  8981. ls_bar = "|"
  8982. menustr = ""
  8983. If Integer(f_ProfileString (0,'excel_menu','龙嘉标准物料清单导入格式', '1')) = 1 Then
  8984. menustr = menustr + "Text=龙嘉标准物料清单导入格式~tEvent=ue_import_xls_3"
  8985. End If
  8986. If Integer(f_ProfileString (0,'excel_menu','圆方板式家具物料清单报价明细格式', '1')) = 1 Then
  8987. If menustr = '' Then
  8988. ls_bar = ''
  8989. Else
  8990. ls_bar = "|"
  8991. End If
  8992. menustr = menustr + ls_bar + "Text=圆方板式家具物料清单报价明细格式~tEvent=ue_import_xls_2"
  8993. End If
  8994. If Integer(f_ProfileString (0,'excel_menu','圆方板式家具全订制板式家具包件产品格式', '1')) = 1 Then
  8995. If menustr = '' Then
  8996. ls_bar = ''
  8997. Else
  8998. ls_bar = "|"
  8999. End If
  9000. menustr = menustr + ls_bar + "Text=圆方板式家具全订制板式家具包件产品格式~tEvent=ue_import_xls_4"
  9001. End If
  9002. If Integer(f_ProfileString (0,'excel_menu','圆方板式家具包件格式', '1')) = 1 Then
  9003. If menustr = '' Then
  9004. ls_bar = ''
  9005. Else
  9006. ls_bar = "|"
  9007. End If
  9008. If menustr <> '' Then
  9009. menustr = menustr + ls_bar + "Text=-"
  9010. End If
  9011. menustr = menustr + ls_bar + "Text=圆方板式家具包件格式~tEvent=ue_import_xls_5" //YS
  9012. End If
  9013. If Integer(f_ProfileString (0,'excel_menu','圆方板式家具包件产品格式', '1')) = 1 Then
  9014. If menustr = '' Then
  9015. ls_bar = ''
  9016. Else
  9017. ls_bar = "|"
  9018. End If
  9019. If menustr <> '' Then
  9020. menustr = menustr + ls_bar + "Text=-"
  9021. End If
  9022. menustr = menustr + ls_bar + "Text=圆方板式家具包件产品格式~tEvent=ue_import_xls_6" //HY
  9023. End If
  9024. If Integer(f_ProfileString (0,'excel_menu','圆方板式家具包件产品格式2', '1')) = 1 Then
  9025. If menustr = '' Then
  9026. ls_bar = ''
  9027. Else
  9028. ls_bar = "|"
  9029. End If
  9030. menustr = menustr + ls_bar + "Text=圆方板式家具包件产品格式2~tEvent=ue_import_xls_7" //HY
  9031. End If
  9032. If Len(Trim(menustr)) <> 0 Then
  9033. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  9034. dmPopupMenu.mf_BuildMenu(This, menustr)
  9035. dmPopupMenu.mf_PopMenu()
  9036. Destroy dmPopupMenu
  9037. End If
  9038. end event
  9039. type cb_1 from uo_imflatbutton within w_mtrldef_prdpf_padd
  9040. integer x = 1344
  9041. integer width = 297
  9042. integer height = 164
  9043. integer taborder = 20
  9044. boolean bringtotop = true
  9045. string text = "选物料类别"
  9046. string normalpicname = "p2.BMP"
  9047. integer picsize = 16
  9048. toolbaralignment pic_align = alignattop!
  9049. boolean border = false
  9050. end type
  9051. event clicked;call super::clicked;IF ins_ifmod_wp THEN
  9052. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  9053. RETURN
  9054. END IF
  9055. IF ins_ifmod THEN
  9056. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  9057. RETURN
  9058. END IF
  9059. Long row
  9060. Long ll_mtrlid
  9061. row = dw_1.GetRow()
  9062. IF row <= 0 THEN
  9063. MessageBox('系统提示','请选择行')
  9064. RETURN
  9065. END IF
  9066. IF dw_1.Object.ifnewadd[row] = 0 THEN
  9067. MessageBox('系统提示','只有新建的半成品资料才能重新选择类别')
  9068. RETURN
  9069. END IF
  9070. //ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[row]
  9071. //
  9072. //IF ll_mtrlid > 0 THEN
  9073. // MessageBox('系统提示','只有没有记录的资料才能选择物料类别')
  9074. // RETURN
  9075. //END IF
  9076. Open(w_mtrltype_ch)
  9077. s_mtrltype s_type
  9078. s_type = Message.PowerObjectParm
  9079. IF s_type.mtrltypeid > 0 THEN //正常返回值则可以取以下值
  9080. dw_1.SetRedraw(False)
  9081. dw_1.Object.u_mtrldef_mtrltypeid[row] = s_type.mtrltypeid
  9082. dw_1.SetRedraw(True)
  9083. END IF
  9084. end event
  9085. type cb_moban from uo_imflatbutton within w_mtrldef_prdpf_padd
  9086. integer x = 1911
  9087. integer width = 347
  9088. integer height = 164
  9089. integer taborder = 10
  9090. boolean bringtotop = true
  9091. boolean enabled = false
  9092. string text = "引用模板编码"
  9093. string normalpicname = "open.bmp"
  9094. integer picsize = 16
  9095. toolbaralignment pic_align = alignattop!
  9096. boolean border = false
  9097. end type
  9098. event clicked;call super::clicked;IF Not ins_ifmod THEN
  9099. MessageBox('系统提示','非编辑半成品状态下,不能执行本操作')
  9100. RETURN
  9101. END IF
  9102. Long ll_row
  9103. Long ll_mtrlid
  9104. dw_1.AcceptText()
  9105. ll_row = dw_1.GetRow()
  9106. IF ll_row <= 0 THEN
  9107. MessageBox('系统提示','请选择要编辑的半成品')
  9108. RETURN
  9109. END IF
  9110. IF Not IsValid(w_mtrldef_edit) THEN
  9111. s_edit_index_tran s_ch_tran //传递参数使用
  9112. s_ch_tran.if_retrieve_all = False //是否一次retrieve所有行
  9113. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  9114. s_ch_tran.arg_pkid = 0 //目标定位pkid (备用)
  9115. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  9116. s_ch_tran.if_select_all = False
  9117. s_ch_tran.b_long = 0
  9118. s_ch_tran.c_long = -1
  9119. s_ch_tran.f_long = 0
  9120. This.Enabled = False
  9121. OpenWithParm(w_mtrldef_edit,s_ch_tran)
  9122. This.Enabled = True
  9123. s_mtrldef_array s_inscust
  9124. s_inscust = Message.PowerObjectParm
  9125. IF UpperBound(s_inscust.mtrlid) = 1 And s_inscust.mtrlid[1] > 0 THEN
  9126. IF s_inscust.mtrlorigin[1] = 2 THEN
  9127. MessageBox('系统提示','目标产品来源不能为采购')
  9128. RETURN
  9129. END IF
  9130. dw_1.Object.u_mtrldef_unit[ll_row] = s_inscust.unit[1]
  9131. dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = s_inscust.mtrltypeid[1]
  9132. dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = s_inscust.mtrlsectype[1]
  9133. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = s_inscust.zxmtrlmode[1]
  9134. dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = s_inscust.usermtrlmode[1]
  9135. dw_1.Object.u_mtrldef_piccode[ll_row] = s_inscust.piccode[1]
  9136. dw_1.Object.u_mtrldef_ifselforder[ll_row] = s_inscust.ifselforder[1]
  9137. dw_1.Object.u_mtrldef_ordertype[ll_row] = s_inscust.ordertype[1]
  9138. dw_1.Object.u_mtrldef_scid[ll_row] = s_inscust.scid[1]
  9139. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = s_inscust.dftwrkgrpid[1]
  9140. dw_1.Object.mb_mtrlcode[ll_row] = s_inscust.mtrlcode[1]
  9141. dw_1.Object.u_mtrldef_orderdays[ll_row] = s_inscust.orderdays[1]
  9142. dw_1.Object.u_mtrldef_buydays[ll_row] = s_inscust.buydays[1]
  9143. dw_1.Object.u_mtrldef_wfjgdays[ll_row] = s_inscust.wfjgdays[1]
  9144. dw_1.Object.mb_mtrlid[ll_row] = s_inscust.mtrlid[1]
  9145. PARENT.TriggerEvent('ue_retrieve_workprice')
  9146. PARENT.TriggerEvent('ue_retrieve_wkp')
  9147. END IF
  9148. END IF
  9149. end event
  9150. type cb_change from uo_imflatbutton within w_mtrldef_prdpf_padd
  9151. integer x = 2875
  9152. integer width = 201
  9153. integer height = 164
  9154. integer taborder = 30
  9155. boolean bringtotop = true
  9156. string text = "换料"
  9157. string normalpicname = "update2.BMP"
  9158. integer picsize = 16
  9159. toolbaralignment pic_align = alignattop!
  9160. boolean border = false
  9161. end type
  9162. event clicked;call super::clicked;IF ins_ifmod_wp THEN
  9163. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  9164. RETURN
  9165. END IF
  9166. IF ins_ifmod THEN
  9167. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  9168. RETURN
  9169. END IF
  9170. Long ll_i
  9171. String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg
  9172. Long ll_row,ll_row_add
  9173. Long ll_pmtrlid,ll_lp
  9174. Long ll_mtrlid
  9175. Long ll_mtrlorigin
  9176. Long ll_mtrlid_pf
  9177. String arg_msg_str
  9178. decimal ld_sonscale,ld_pfgroupqty
  9179. ll_row = dw_1.GetRow()
  9180. IF ll_row > 0 THEN
  9181. ll_pmtrlid = dw_1.Object.pmtrlid[ll_row]
  9182. ll_lp = dw_1.Object.lp[ll_row]
  9183. ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_row]
  9184. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  9185. ll_mtrlorigin = dw_1.Object.u_mtrldef_mtrlorigin[ll_row]
  9186. ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_row]
  9187. ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_row]
  9188. ELSE
  9189. ll_pmtrlid = ins_mtrlid
  9190. ll_lp = 0
  9191. ld_pfgroupqty = 1
  9192. ld_sonscale = 1
  9193. END IF
  9194. IF ll_lp = 0 THEN
  9195. MessageBox('系统提示','主产品不能更换')
  9196. RETURN
  9197. END IF
  9198. //IF ll_mtrlorigin <> 2 THEN
  9199. // MessageBox('系统提示','只能更换采购来源的材料,请检查')
  9200. // RETURN
  9201. //END IF
  9202. IF ll_mtrlorigin = 2 THEN
  9203. //换原料
  9204. IF Not IsValid(w_mtrldef_edit) THEN
  9205. s_edit_index_tran s_ch_tran //传递参数使用
  9206. s_ch_tran.if_retrieve_all = False //是否一次retrieve所有行
  9207. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  9208. s_ch_tran.arg_pkid = 0 //目标定位pkid (备用)
  9209. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  9210. s_ch_tran.if_select_all = False
  9211. s_ch_tran.b_long = 2
  9212. s_ch_tran.c_long = -1
  9213. s_ch_tran.f_long = 2
  9214. This.Enabled = False
  9215. OpenWithParm(w_mtrldef_edit,s_ch_tran)
  9216. This.Enabled = True
  9217. s_mtrldef_array s_inscust
  9218. s_inscust = Message.PowerObjectParm
  9219. IF UpperBound(s_inscust.mtrlid) <> 1 THEN RETURN
  9220. IF s_inscust.mtrlid[1] = 0 THEN RETURN
  9221. ll_mtrlid = s_inscust.mtrlid[1]
  9222. IF s_inscust.Mtrlorigin[1] <> 2 THEN
  9223. MessageBox('系统提示','只能选择采购来源的物料')
  9224. RETURN
  9225. END IF
  9226. IF ll_mtrlid > 0 THEN
  9227. ls_pfcode = f_get_dft_pf(ll_mtrlid)
  9228. dw_1.SetRedraw(False)
  9229. dw_1.Object.u_mtrldef_mtrlcode[ll_row] = s_inscust.mtrlcode[1]
  9230. dw_1.Object.u_mtrldef_mtrlprp[ll_row] = s_inscust.mtrlprp[1]
  9231. dw_1.Object.u_mtrldef_mtrlname[ll_row] = s_inscust.mtrlname[1]
  9232. dw_1.Object.u_mtrldef_unit[ll_row] = s_inscust.unit[1]
  9233. dw_1.Object.u_mtrldef_mtrlmode[ll_row] = s_inscust.mtrlmode[1]
  9234. dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = s_inscust.mtrlsectype[1]
  9235. dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = s_inscust.zxmtrlmode[1]
  9236. dw_1.Object.u_mtrldef_statusflag[ll_row] = s_inscust.statusflag[1]
  9237. dw_1.Object.u_mtrldef_statustype[ll_row] = s_inscust.statustype[1]
  9238. dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = s_inscust.woodcodeflag[1]
  9239. dw_1.Object.u_mtrldef_woodcodetype[ll_row] = s_inscust.woodcodetype[1]
  9240. dw_1.Object.u_mtrldef_pcodeflag[ll_row] = s_inscust.pcodeflag[1]
  9241. dw_1.Object.u_mtrldef_pcodetype[ll_row] = s_inscust.pcodetype[1]
  9242. dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = s_inscust.usermtrlmode[1]
  9243. dw_1.Object.u_mtrldef_mtrlorigin[ll_row] = s_inscust.Mtrlorigin[1]
  9244. dw_1.Object.u_mtrldef_mtrlid[ll_row] = ll_mtrlid
  9245. dw_1.Object.u_prdpf_sonmtrlid[ll_row] = ll_mtrlid
  9246. dw_1.Object.u_prdpf_sonpfcode[ll_row] = f_get_dft_pf(ll_mtrlid)
  9247. dw_1.Object.u_mtrldef_orderdays[ll_row] = s_inscust.orderdays[1]
  9248. dw_1.Object.u_mtrldef_buydays[ll_row] = s_inscust.buydays[1]
  9249. dw_1.Object.u_mtrldef_wfjgdays[ll_row] = s_inscust.wfjgdays[1]
  9250. dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = s_inscust.dftwrkgrpid[1]
  9251. dw_1.Object.u_mtrldef_scid[ll_row] = s_inscust.scid[1]
  9252. dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = s_inscust.mtrltypeid[1]
  9253. dw_1.Object.u_prdpf_pfgroup[ll_row] = s_inscust.mtrlname[1]
  9254. dw_1.Object.u_prdpf_pfgroupmode[ll_row] = s_inscust.mtrlmode[1]
  9255. dw_1.SetRedraw(True)
  9256. ELSE
  9257. RETURN
  9258. END IF
  9259. END IF
  9260. ELSE
  9261. //换半成品
  9262. dw_1.Object.ifdel[ll_row] = 1
  9263. ll_lp = dw_1.Object.lp[ll_row]
  9264. FOR ll_i = ll_row + 1 To dw_1.RowCount()
  9265. IF dw_1.Object.lp[ll_i] <= ll_lp THEN EXIT
  9266. dw_1.Object.ifdel[ll_i] = 1
  9267. NEXT
  9268. IF ll_row = dw_1.RowCount() THEN
  9269. ll_row_add = ll_row
  9270. ELSE
  9271. FOR ll_i = ll_row + 1 To dw_1.RowCount()
  9272. IF dw_1.Object.lp[ll_i] <= ll_lp THEN
  9273. ll_row_add = ll_i - 1
  9274. EXIT
  9275. END IF
  9276. NEXT
  9277. IF ll_row_add = 0 THEN
  9278. ll_row_add = dw_1.RowCount()
  9279. END IF
  9280. END IF
  9281. IF Not IsValid(w_mtrldef_edit) THEN
  9282. s_edit_index_tran s_ch_tran_add //传递参数使用
  9283. s_ch_tran_add.if_retrieve_all = False //是否一次retrieve所有行
  9284. s_ch_tran_add.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  9285. s_ch_tran_add.arg_pkid = 0 //目标定位pkid (备用)
  9286. s_ch_tran_add.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  9287. s_ch_tran_add.if_select_all = false
  9288. s_ch_tran_add.b_long = 0
  9289. s_ch_tran_add.c_long = -1
  9290. s_ch_tran_add.f_long = 1
  9291. This.Enabled = False
  9292. OpenWithParm(w_mtrldef_edit,s_ch_tran_add)
  9293. This.Enabled = True
  9294. s_mtrldef_array s_inscust_add
  9295. s_inscust_add = Message.PowerObjectParm
  9296. IF UpperBound(s_inscust_add.mtrlid) <> 1 THEN RETURN
  9297. IF s_inscust_add.mtrlid[1] = 0 THEN RETURN
  9298. dw_1.SetRedraw(False)
  9299. FOR ll_i = 1 To UpperBound(s_inscust_add.mtrlid)
  9300. ll_mtrlid_pf = s_inscust_add.mtrlid[ll_i]
  9301. IF ll_mtrlid_pf > 0 THEN
  9302. ls_pfcode = f_get_dft_pf(ll_mtrlid_pf)
  9303. IF wf_addmx_next(ll_mtrlid_pf,ls_pfcode,ll_pmtrlid,ll_lp ,ll_row_add + 1 ,arg_msg,ld_sonscale,ld_pfgroupqty) = 0 THEN
  9304. arg_msg_str = arg_msg_str + arg_msg + '~r~n'
  9305. END IF
  9306. // ins_cnt++
  9307. // IF ls_mtrlcode <> '' THEN
  9308. // mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ls_mtrlcode+' 增加下级物料 '+s_inscust_add.mtrlcode[ll_i]
  9309. // ELSE
  9310. // mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust_add.mtrlcode[ll_i]
  9311. // END IF
  9312. END IF
  9313. NEXT
  9314. dw_1.AcceptText()
  9315. FOR ll_i = dw_1.RowCount() To 1 Step -1
  9316. IF dw_1.Object.ifdel[ll_i] = 1 THEN
  9317. dw_1.DeleteRow(ll_i)
  9318. END IF
  9319. NEXT
  9320. dw_1.SetRedraw(True)
  9321. IF Trim(arg_msg_str) <> '' THEN
  9322. MessageBox('Error',arg_msg_str)
  9323. END IF
  9324. END IF
  9325. END IF
  9326. ins_cnt++
  9327. IF ls_mtrlcode <> '' THEN
  9328. IF ll_mtrlorigin = 2 THEN
  9329. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.更新原料,原:'+ls_mtrlcode+',新:'+s_inscust.mtrlcode[1]
  9330. ELSE
  9331. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.更新半成品,原:'+ls_mtrlcode+',新:'+s_inscust_add.mtrlcode[1]
  9332. END IF
  9333. ELSE
  9334. mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust.mtrlcode[1]
  9335. END IF
  9336. end event
  9337. type cb_print from uo_imflatbutton within w_mtrldef_prdpf_padd
  9338. integer x = 5170
  9339. integer width = 192
  9340. integer height = 164
  9341. integer taborder = 40
  9342. boolean bringtotop = true
  9343. string text = "打印&P"
  9344. string normalpicname = "print.bmp"
  9345. integer picsize = 16
  9346. toolbaralignment pic_align = alignattop!
  9347. boolean border = false
  9348. end type
  9349. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  9350. string menustr
  9351. menustr="Text=产品物料清单[工艺]~tEvent=ue_viewprint_gy"
  9352. menustr=menustr + "|" + "Text=-"
  9353. menustr=menustr + "|" + "Text=产品物料清单[用料]~tEvent=ue_viewprint_yl"
  9354. menustr=menustr + "|" + "Text=-"
  9355. menustr=menustr + "|" + "Text=产品物料清单[树型结构]~tEvent=ue_viewprint_tree"
  9356. menustr=menustr + "|" + "Text=-"
  9357. menustr=menustr + "|" + "Text=产品物料清单[车间]~tEvent=ue_viewprint_yl_wrk"
  9358. menustr=menustr + "|" + "Text=-"
  9359. menustr=menustr + "|" + "Text=产品加工说明书~tEvent=ue_viewprint_dy"
  9360. if len(trim(menustr))<>0 then
  9361. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  9362. dmPopupMenu.mf_BuildMenu(This, menustr)
  9363. dmPopupMenu.mf_PopMenu()
  9364. Destroy dmPopupMenu
  9365. end if
  9366. end event
  9367. type cbx_save_close from checkbox within w_mtrldef_prdpf_padd
  9368. integer x = 3173
  9369. integer y = 196
  9370. integer width = 576
  9371. integer height = 60
  9372. boolean bringtotop = true
  9373. integer textsize = -9
  9374. integer weight = 400
  9375. fontcharset fontcharset = gb2312charset!
  9376. fontpitch fontpitch = variable!
  9377. string facename = "宋体"
  9378. long textcolor = 33554432
  9379. long backcolor = 134217739
  9380. string text = "生成资料后关闭窗口"
  9381. end type
  9382. event clicked;int if_close
  9383. IF THIS.Checked THEN
  9384. if_close = 1
  9385. ELSE
  9386. if_close = 0
  9387. END IF
  9388. f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_close", String(if_close))
  9389. end event
  9390. event constructor;int if_close
  9391. if_close = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_close", '0'))
  9392. IF if_close = 0 THEN
  9393. This.Checked = False
  9394. ELSE
  9395. This.Checked = True
  9396. END IF
  9397. end event
  9398. type rb_1 from radiobutton within w_mtrldef_prdpf_padd
  9399. integer x = 1582
  9400. integer y = 1304
  9401. integer width = 293
  9402. integer height = 60
  9403. boolean bringtotop = true
  9404. integer textsize = -9
  9405. integer weight = 400
  9406. fontcharset fontcharset = gb2312charset!
  9407. fontpitch fontpitch = variable!
  9408. string facename = "宋体"
  9409. long textcolor = 33554432
  9410. long backcolor = 134217739
  9411. string text = "工价表"
  9412. boolean checked = true
  9413. end type
  9414. event clicked;dw_2.visible = true
  9415. dw_3.visible = false
  9416. cb_templet_ch.visible = true
  9417. end event
  9418. type rb_2 from radiobutton within w_mtrldef_prdpf_padd
  9419. integer x = 1929
  9420. integer y = 1304
  9421. integer width = 334
  9422. integer height = 60
  9423. boolean bringtotop = true
  9424. integer textsize = -9
  9425. integer weight = 400
  9426. fontcharset fontcharset = gb2312charset!
  9427. fontpitch fontpitch = variable!
  9428. string facename = "宋体"
  9429. long textcolor = 33554432
  9430. long backcolor = 134217739
  9431. string text = "工组流程"
  9432. end type
  9433. event clicked;dw_2.visible = false
  9434. dw_3.visible = true
  9435. cb_templet_ch.visible = false
  9436. end event
  9437. type dw_3 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd
  9438. boolean visible = false
  9439. integer x = 2679
  9440. integer y = 1432
  9441. integer height = 568
  9442. integer taborder = 20
  9443. boolean bringtotop = true
  9444. string dataobject = "dw_mtrl_wkp_padd_edit"
  9445. boolean hscrollbar = true
  9446. boolean vscrollbar = true
  9447. boolean hsplitscroll = true
  9448. end type
  9449. event clicked;call super::clicked;IF row > 0 THEN
  9450. THIS.SelectRow(0,FALSE)
  9451. THIS.SetRow(row)
  9452. THIS.SelectRow(row,TRUE)
  9453. END IF
  9454. IF row > 0 THEN
  9455. IF dwo.Name = 'gydscrplen' THEN
  9456. Parent.TriggerEvent('ue_gydscrp')
  9457. END IF
  9458. END IF
  9459. end event
  9460. event rowfocuschanged;call super::rowfocuschanged;IF currentrow > 0 THEN
  9461. THIS.SelectRow(0,FALSE)
  9462. THIS.SetRow(currentrow)
  9463. THIS.SelectRow(currentrow,TRUE)
  9464. END IF
  9465. end event
  9466. event doubleclicked;call super::doubleclicked;IF NOT ins_ifmod_wp THEN RETURN
  9467. IF row <= 0 THEN RETURN
  9468. IF dwo.Name = 'workgroupid' THEN
  9469. Long ll_wrkgrpid
  9470. ll_wrkgrpid = dw_3.Object.swkpid[row]
  9471. OpenWithParm(w_workgrop_ch_withwrkid,ll_wrkgrpid)
  9472. s_workgroup s_ch
  9473. s_ch = Message.PowerObjectParm
  9474. IF IsNull(s_ch.wrkgrpid) THEN s_ch.wrkgrpid = 0
  9475. IF s_ch.wrkgrpid = 0 THEN RETURN
  9476. dw_3.Object.workgroupid[row] = s_ch.wrkgrpid
  9477. END IF
  9478. end event
  9479. event dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key')
  9480. String ls_procode,ls_proname,ls_techlevel,ls_worklevel
  9481. Long ls_proid
  9482. Dec ls_workhour
  9483. Long child_row
  9484. Long ls_null
  9485. SetNull(ls_null)
  9486. IF dw_edit_mode THEN
  9487. IF KeyDown(Keydownarrow!) THEN
  9488. Long li_row
  9489. IF dw_3.GetRow() = dw_3.RowCount() THEN
  9490. PARENT.TriggerEvent("insert_childrow")
  9491. END IF
  9492. ELSE
  9493. IF Key = KeyEnter! THEN
  9494. IF dw_3.GetRow() = dw_3.RowCount() AND dw_3.GetColumnName() = 'dscrp' THEN
  9495. PARENT.TriggerEvent("ue_addmx")
  9496. dw_3.SetColumn('swkpid')
  9497. ELSE
  9498. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  9499. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  9500. RETURN 1
  9501. END IF
  9502. END IF
  9503. END IF
  9504. END IF
  9505. end event
  9506. type dw_copy_wkp from datawindow within w_mtrldef_prdpf_padd
  9507. boolean visible = false
  9508. integer x = 2679
  9509. integer y = 764
  9510. integer width = 1243
  9511. integer height = 400
  9512. integer taborder = 30
  9513. boolean bringtotop = true
  9514. string title = "none"
  9515. string dataobject = "dw_mtrl_wkp_padd_edit"
  9516. boolean hscrollbar = true
  9517. boolean vscrollbar = true
  9518. boolean livescroll = true
  9519. borderstyle borderstyle = stylelowered!
  9520. end type
  9521. type dw_copy_main from datawindow within w_mtrldef_prdpf_padd
  9522. boolean visible = false
  9523. integer x = 2235
  9524. integer y = 964
  9525. integer width = 686
  9526. integer height = 400
  9527. integer taborder = 40
  9528. boolean bringtotop = true
  9529. string title = "none"
  9530. string dataobject = "dw_mtrldef_prdpf_padd"
  9531. boolean livescroll = true
  9532. borderstyle borderstyle = stylelowered!
  9533. end type
  9534. type cb_copy_paste from uo_imflatbutton within w_mtrldef_prdpf_padd
  9535. integer x = 3282
  9536. integer width = 247
  9537. integer height = 164
  9538. integer taborder = 30
  9539. boolean bringtotop = true
  9540. string text = "复制粘贴"
  9541. string normalpicname = "COPY.BMP"
  9542. integer picsize = 16
  9543. toolbaralignment pic_align = alignattop!
  9544. boolean border = false
  9545. end type
  9546. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  9547. String menustr
  9548. menustr = "Text=复制物料清单~tEvent=ue_copy_mx"
  9549. menustr = menustr + "|" + "Text=复制物料清单(含本级)~tEvent=ue_copy_mx_this"
  9550. menustr = menustr + "|" + "Text=-"
  9551. menustr = menustr + "|" + "Text=粘贴到下级~tEvent=ue_paste_mx"
  9552. menustr = menustr + "|" + "Text=粘贴到同级~tEvent=ue_paste_mx_same"
  9553. IF Len(Trim(menustr)) <> 0 THEN
  9554. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  9555. dmPopupMenu.mf_BuildMenu(This, menustr)
  9556. dmPopupMenu.mf_PopMenu()
  9557. Destroy dmPopupMenu
  9558. END IF
  9559. end event
  9560. type cb_bom from uo_imflatbutton within w_mtrldef_prdpf_padd
  9561. integer x = 2414
  9562. integer width = 270
  9563. integer height = 164
  9564. integer taborder = 20
  9565. boolean bringtotop = true
  9566. string text = "物料清单"
  9567. string normalpicname = "update2.BMP"
  9568. integer picsize = 16
  9569. toolbaralignment pic_align = alignattop!
  9570. boolean border = false
  9571. end type
  9572. event clicked;call super::clicked;IF ins_ifmod THEN
  9573. MessageBox('系统提示','编辑状态下不能使用')
  9574. RETURN
  9575. END IF
  9576. IF ins_ifmod_wp THEN
  9577. MessageBox('系统提示','编辑明细状态下不能使用')
  9578. RETURN
  9579. END IF
  9580. Long ll_row,ll_i,ll_lp
  9581. Long ll_mtrlid
  9582. String ls_pfcode,arg_msg
  9583. ll_row = dw_1.GetRow()
  9584. IF ll_row <= 0 THEN
  9585. MessageBox('系统提示','请先选择物料')
  9586. RETURN
  9587. END IF
  9588. IF dw_1.Object.lp[ll_row] = 0 THEN
  9589. MessageBox('系统提示','主产品不能使用本功能')
  9590. RETURN
  9591. END IF
  9592. IF dw_1.Object.u_mtrldef_mtrlorigin[ll_row] <> 0 THEN
  9593. MessageBox('系统提示','只有自制来源的资料才能执行本功能')
  9594. RETURN
  9595. END IF
  9596. IF dw_1.Object.ifnewadd[ll_row] <> 0 THEN
  9597. MessageBox('系统提示','新建的资料不能执行本功能')
  9598. RETURN
  9599. END IF
  9600. ll_lp = dw_1.Object.lp[ll_row]
  9601. ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_row]
  9602. ls_pfcode = dw_1.Object.u_prdpf_sonpfcode[ll_row]
  9603. s_edit_index_tran s_ch_tran_bom
  9604. s_ch_tran_bom.if_retrieve_all = False //是否一次RETRIEVE所有行
  9605. s_ch_tran_bom.work_mode = 0 //0-单纯编辑模式 1-选择\编辑模式
  9606. s_ch_tran_bom.arg_pkid = 0 //目标定位PKID (备用)
  9607. s_ch_tran_bom.arg_string_code = dw_1.Object.u_mtrldef_mtrlcode[ll_row]
  9608. s_ch_tran_bom.if_select_all = True
  9609. OpenWithParm(w_mtrl_structure_response,s_ch_tran_bom)
  9610. dw_1.SetRedraw(False)
  9611. FOR ll_i = ll_row + 1 To dw_1.RowCount()
  9612. IF dw_1.Object.lp[ll_i] <= ll_lp THEN EXIT
  9613. dw_1.Object.ifdel[ll_i] = 1
  9614. NEXT
  9615. dw_1.AcceptText()
  9616. FOR ll_i = dw_1.RowCount() To 1 Step -1
  9617. IF dw_1.Object.ifdel[ll_i] = 1 THEN
  9618. dw_1.DeleteRow(ll_i)
  9619. END IF
  9620. NEXT
  9621. dw_1.SetRedraw(True)
  9622. IF wf_addmx_row(ll_mtrlid,ls_pfcode,ll_lp + 1,ll_row + 1 ,1,arg_msg) = 0 THEN
  9623. MessageBox('Error',arg_msg)
  9624. RETURN
  9625. END IF
  9626. end event
  9627. type cb_tmp_save from uo_imflatbutton within w_mtrldef_prdpf_padd
  9628. integer x = 4544
  9629. integer width = 165
  9630. integer height = 164
  9631. integer taborder = 40
  9632. boolean bringtotop = true
  9633. string text = "存档"
  9634. string normalpicname = "SAVE.BMP"
  9635. integer picsize = 16
  9636. toolbaralignment pic_align = alignattop!
  9637. boolean border = false
  9638. end type
  9639. event clicked;call super::clicked;IF ins_ifmod_wp THEN
  9640. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  9641. RETURN
  9642. END IF
  9643. IF ins_ifmod THEN
  9644. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  9645. RETURN
  9646. END IF
  9647. IF ins_mtrlid = 0 THEN
  9648. MessageBox('系统提示','请先选择主产品')
  9649. RETURN
  9650. END IF
  9651. String Pathname_dw1,Pathname_dw2,Pathname_dw3
  9652. Blob ls_filedata_dw1,ls_filedata_dw2,ls_filedata_dw3
  9653. String errmsg,ls_dscrp,ls_msg_log
  9654. Long ll_printid
  9655. Open(w_prdpf_temp_save_dscrp)
  9656. s_edit_index_tran s_ch_dscrp
  9657. s_ch_dscrp = Message.PowerObjectParm
  9658. IF s_ch_dscrp.c_long = 0 THEN RETURN
  9659. ls_dscrp = s_ch_dscrp.c_string
  9660. ls_msg_log = mle_log.Text
  9661. Pathname_dw1 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_1.xml'
  9662. IF IsNull(Pathname_dw1) Or Len(Trim(Pathname_dw1)) < 3 THEN RETURN
  9663. Pathname_dw2 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_2.xml'
  9664. IF IsNull(Pathname_dw2) Or Len(Trim(Pathname_dw2)) < 3 THEN RETURN
  9665. Pathname_dw3 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_3.xml'
  9666. IF IsNull(Pathname_dw3) Or Len(Trim(Pathname_dw3)) < 3 THEN RETURN
  9667. dw_1.SaveAs(Pathname_dw1, XML!, False)
  9668. dw_copy.SaveAs(Pathname_dw2, XML!, False)
  9669. dw_copy_wkp.SaveAs(Pathname_dw3, XML!, False)
  9670. IF f_filetoblob(Pathname_dw1,ls_filedata_dw1,errmsg) = 0 THEN
  9671. MessageBox('系统提示',errmsg)
  9672. GOTO _del
  9673. END IF
  9674. IF f_filetoblob(Pathname_dw2,ls_filedata_dw2,errmsg) = 0 THEN
  9675. MessageBox('系统提示',errmsg)
  9676. GOTO _del
  9677. END IF
  9678. IF f_filetoblob(Pathname_dw3,ls_filedata_dw3,errmsg) = 0 THEN
  9679. MessageBox('系统提示',errmsg)
  9680. GOTO _del
  9681. END IF
  9682. SELECT max(printid)
  9683. INTO :ll_printid
  9684. FROM u_prdpf_temp_save
  9685. Where mtrlid = :ins_mtrlid;
  9686. IF sqlca.SQLCode <> 0 THEN ll_printid = 0
  9687. IF IsNull(ll_printid) THEN ll_printid = 0
  9688. ll_printid++
  9689. INSERT INTO u_prdpf_temp_save
  9690. (mtrlid,
  9691. printid,
  9692. msg_log,
  9693. opemp,
  9694. opdate,
  9695. dscrp)
  9696. VALUES (:ins_mtrlid,
  9697. :ll_printid,
  9698. :ls_msg_log,
  9699. :publ_operator,
  9700. getdate(),
  9701. :ls_dscrp);
  9702. IF sqlca.SQLCode <> 0 THEN
  9703. ROLLBACK;
  9704. MessageBox('Error','保存信息失败,'+sqlca.SQLErrText)
  9705. GOTO _del
  9706. END IF
  9707. UpdateBlob u_prdpf_temp_save
  9708. Set dw_main = :ls_filedata_dw1
  9709. Where mtrlid = :ins_mtrlid
  9710. And printid = :ll_printid;
  9711. IF sqlca.SQLCode <> 0 THEN
  9712. ROLLBACK;
  9713. MessageBox('Error','保存临时信息(主表)失败,'+sqlca.SQLErrText)
  9714. GOTO _del
  9715. END IF
  9716. UpdateBlob u_prdpf_temp_save
  9717. Set dw_workprice = :ls_filedata_dw2
  9718. Where mtrlid = :ins_mtrlid
  9719. And printid = :ll_printid;
  9720. IF sqlca.SQLCode <> 0 THEN
  9721. ROLLBACK;
  9722. MessageBox('Error','保存临时信息(工价表)失败,'+sqlca.SQLErrText)
  9723. GOTO _del
  9724. END IF
  9725. UpdateBlob u_prdpf_temp_save
  9726. Set dw_wkp = :ls_filedata_dw3
  9727. Where mtrlid = :ins_mtrlid
  9728. And printid = :ll_printid;
  9729. IF sqlca.SQLCode <> 0 THEN
  9730. ROLLBACK;
  9731. MessageBox('Error','保存临时信息(工组流程)失败,'+sqlca.SQLErrText)
  9732. GOTO _del
  9733. END IF
  9734. commit;
  9735. messagebox('系统提示','存档成功!')
  9736. _del:
  9737. FileDelete(Pathname_dw1)
  9738. FileDelete(Pathname_dw2)
  9739. FileDelete(Pathname_dw3)
  9740. end event
  9741. type cb_tmp_read from uo_imflatbutton within w_mtrldef_prdpf_padd
  9742. integer x = 4704
  9743. integer width = 165
  9744. integer height = 164
  9745. integer taborder = 40
  9746. boolean bringtotop = true
  9747. string text = "读档"
  9748. string normalpicname = "OPEN.BMP"
  9749. integer picsize = 16
  9750. toolbaralignment pic_align = alignattop!
  9751. boolean border = false
  9752. end type
  9753. event clicked;call super::clicked;IF ins_ifmod_wp THEN
  9754. MessageBox('系统提示','正在编辑工价表,不能执行本操作')
  9755. RETURN
  9756. END IF
  9757. IF ins_ifmod THEN
  9758. MessageBox('系统提示','正在编辑半成品,不能执行本操作')
  9759. RETURN
  9760. END IF
  9761. Long ll_mtrlid_parm
  9762. IF ins_if_saletask = 1 THEN
  9763. IF ins_mtrlid = 0 THEN
  9764. MessageBox('系统提示','请先选择主产品')
  9765. RETURN
  9766. END IF
  9767. ll_mtrlid_parm = ins_mtrlid
  9768. ELSE
  9769. ll_mtrlid_parm = -1
  9770. END IF
  9771. IF ins_mtrlid > 0 THEN
  9772. IF MessageBox('询问','读取存档将会覆盖你现有的修改,是否继续?',question!,yesno!) = 2 THEN RETURN
  9773. END IF
  9774. OpenWithParm(w_prdpf_temp_save_ch,ll_mtrlid_parm)
  9775. Long ll_printid,ll_mtrlid
  9776. String ls_mtrlcode,ls_mtrlname
  9777. s_edit_index_tran s_ch_tran
  9778. s_ch_tran = Message.PowerObjectParm
  9779. ll_mtrlid = s_ch_tran.b_long
  9780. ll_printid = s_ch_tran.c_long
  9781. IF ll_printid = 0 THEN RETURN
  9782. IF ll_mtrlid = 0 THEN RETURN
  9783. IF ins_if_saletask = 0 THEN
  9784. ins_mtrlid = ll_mtrlid
  9785. ins_mtrlid_pf = ll_mtrlid
  9786. ins_pfcode = f_get_dft_pf(ins_mtrlid_pf)
  9787. IF ins_pfcode = '' THEN
  9788. MessageBox('系统提示','目标产品未设置默认清单,请检查')
  9789. RETURN
  9790. END IF
  9791. SELECT mtrlcode,mtrlname
  9792. INTO :ls_mtrlcode,:ls_mtrlname
  9793. FROM u_mtrldef
  9794. Where mtrlid = :ll_mtrlid;
  9795. IF sqlca.SQLCode <> 0 THEN
  9796. st_mtrl.Text = '查询物料信息失败'
  9797. st_mtrl_pf.Text = '查询物料信息失败'
  9798. ELSE
  9799. st_mtrl.Text = '['+ls_mtrlcode+']'+ls_mtrlname + ' | ' + ins_pfcode
  9800. st_mtrl_pf.Text = '['+ls_mtrlcode+']'+ls_mtrlname
  9801. ins_mtrlcode = ls_mtrlcode
  9802. END IF
  9803. END IF
  9804. String ls_msg_log
  9805. Blob lb_dw_1,lb_dw_2,lb_dw_3
  9806. String Pathname_dw1,Pathname_dw2,Pathname_dw3
  9807. String arg_msg
  9808. SELECT msg_log
  9809. INTO :ls_msg_log
  9810. FROM u_prdpf_temp_save
  9811. WHERE mtrlid = :ins_mtrlid
  9812. And printid = :ll_printid;
  9813. IF sqlca.SQLCode <> 0 THEN
  9814. MessageBox('Error','查询临时保存信息(操作记录)失败,'+sqlca.SQLErrText)
  9815. RETURN
  9816. END IF
  9817. SelectBlob dw_main
  9818. Into :lb_dw_1
  9819. From u_prdpf_temp_save
  9820. Where mtrlid = :ins_mtrlid
  9821. And printid = :ll_printid;
  9822. IF sqlca.SQLCode <> 0 THEN
  9823. MessageBox('Error','查询临时保存信息(主数据窗口)失败,'+sqlca.SQLErrText)
  9824. RETURN
  9825. END IF
  9826. SelectBlob dw_workprice
  9827. Into :lb_dw_2
  9828. From u_prdpf_temp_save
  9829. Where mtrlid = :ins_mtrlid
  9830. And printid = :ll_printid;
  9831. IF sqlca.SQLCode <> 0 THEN
  9832. MessageBox('Error','查询临时保存信息(工价表数据窗口)失败,'+sqlca.SQLErrText)
  9833. RETURN
  9834. END IF
  9835. SelectBlob dw_wkp
  9836. Into :lb_dw_3
  9837. From u_prdpf_temp_save
  9838. Where mtrlid = :ins_mtrlid
  9839. And printid = :ll_printid;
  9840. IF sqlca.SQLCode <> 0 THEN
  9841. MessageBox('Error','查询临时保存信息(工组流程数据窗口)失败,'+sqlca.SQLErrText)
  9842. RETURN
  9843. END IF
  9844. Pathname_dw1 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_1_down.xml'
  9845. IF IsNull(Pathname_dw1) Or Len(Trim(Pathname_dw1)) < 3 THEN RETURN
  9846. Pathname_dw2 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_2_down.xml'
  9847. IF IsNull(Pathname_dw2) Or Len(Trim(Pathname_dw2)) < 3 THEN RETURN
  9848. Pathname_dw3 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_3_down.xml'
  9849. IF IsNull(Pathname_dw3) Or Len(Trim(Pathname_dw3)) < 3 THEN RETURN
  9850. IF f_blobtofile(Pathname_dw1,lb_dw_1,arg_msg) = 0 THEN
  9851. MessageBox('Error',arg_msg)
  9852. GOTO _del
  9853. END IF
  9854. IF f_blobtofile(Pathname_dw2,lb_dw_2,arg_msg) = 0 THEN
  9855. MessageBox('Error',arg_msg)
  9856. GOTO _del
  9857. END IF
  9858. IF f_blobtofile(Pathname_dw3,lb_dw_3,arg_msg) = 0 THEN
  9859. MessageBox('Error',arg_msg)
  9860. GOTO _del
  9861. END IF
  9862. dw_1.Reset()
  9863. dw_copy.Reset()
  9864. dw_copy_wkp.Reset()
  9865. dw_1.ImportFile(Pathname_dw1)
  9866. dw_copy.ImportFile(Pathname_dw2)
  9867. dw_copy_wkp.ImportFile(Pathname_dw3)
  9868. mle_log.Text = ls_msg_log
  9869. IF dw_1.RowCount() > 0 THEN
  9870. dw_1.SelectRow(0,False)
  9871. dw_1.SetRow(1)
  9872. dw_1.SelectRow(1,True)
  9873. Parent.TriggerEvent('ue_retrieve_workprice')
  9874. Parent.TriggerEvent('ue_retrieve_wkp')
  9875. Parent.TriggerEvent('ue_allowedit')
  9876. END IF
  9877. _del:
  9878. FileDelete(Pathname_dw1)
  9879. FileDelete(Pathname_dw2)
  9880. FileDelete(Pathname_dw3)
  9881. end event
  9882. type cb_templet_ch from uo_imflatbutton within w_mtrldef_prdpf_padd
  9883. integer x = 2752
  9884. integer y = 2180
  9885. integer width = 466
  9886. integer height = 88
  9887. integer taborder = 40
  9888. boolean bringtotop = true
  9889. boolean enabled = false
  9890. string text = "引用工价模板"
  9891. string normalpicname = "p2.BMP"
  9892. integer picsize = 16
  9893. end type
  9894. event clicked;call super::clicked;parent.triggerevent('ue_templet_ch')
  9895. end event
  9896. type dw_buffer from datawindow within w_mtrldef_prdpf_padd
  9897. boolean visible = false
  9898. integer x = 2505
  9899. integer y = 1312
  9900. integer width = 1984
  9901. integer height = 400
  9902. integer taborder = 50
  9903. boolean bringtotop = true
  9904. string title = "none"
  9905. string dataobject = "dw_mtrldef_prdpf_padd"
  9906. boolean hscrollbar = true
  9907. boolean vscrollbar = true
  9908. boolean livescroll = true
  9909. borderstyle borderstyle = stylelowered!
  9910. end type
  9911. type cb_pack from uo_imflatbutton within w_mtrldef_prdpf_padd
  9912. integer x = 3557
  9913. integer width = 247
  9914. integer height = 164
  9915. integer taborder = 40
  9916. boolean bringtotop = true
  9917. string text = "分包件"
  9918. string normalpicname = "update2.BMP"
  9919. integer picsize = 16
  9920. toolbaralignment pic_align = alignattop!
  9921. boolean border = false
  9922. end type
  9923. event clicked;call super::clicked;dw_1.AcceptText()
  9924. If dw_1.Find('ch = 1',2,dw_1.RowCount()) = 0 Then
  9925. MessageBox('系统提示','请先勾选要分包件的明细行')
  9926. Return
  9927. End If
  9928. Long ll_i,ll_j,ll_k
  9929. String ls_mtrlcode_pack,arg_msg
  9930. Long ll_row_p,ll_row_insert
  9931. Long ll_mtrlid
  9932. Int li_ifset_qty
  9933. Long ll_lp_min
  9934. Decimal ld_rate
  9935. decimal ld_qty_pack
  9936. dw_buffer.Reset()
  9937. For ll_i = dw_1.RowCount() To 2 Step -1
  9938. If dw_1.Object.ch[ll_i] = 1 Then
  9939. dw_1.RowsCopy(ll_i,ll_i,Primary!, dw_buffer, 1, Primary!)
  9940. End If
  9941. Next
  9942. s_edit_index_tran s_inscust_pack,s_return
  9943. s_inscust_pack.b_long = ins_mtrlid
  9944. s_inscust_pack.b_string = ins_pfcode
  9945. s_inscust_pack.arg_dw = dw_buffer
  9946. OpenWithParm(w_pack_ch,s_inscust_pack)
  9947. s_return = Message.PowerObjectParm
  9948. ls_mtrlcode_pack = s_return.c_string
  9949. li_ifset_qty = s_return.c_long
  9950. ld_qty_pack = s_return.c_decimal
  9951. If ls_mtrlcode_pack = '-1' Then Return
  9952. ll_row_p = dw_1.Find('u_mtrldef_mtrlcode = "'+ls_mtrlcode_pack+'"',2,dw_1.RowCount())
  9953. If ll_row_p = 0 Then
  9954. Select mtrlid Into :ll_mtrlid
  9955. From u_mtrldef
  9956. Where mtrlcode = :ls_mtrlcode_pack;
  9957. If sqlca.SQLCode <> 0 Then
  9958. MessageBox('Error','查询包件 '+ls_mtrlcode_pack+' 信息失败,可能是包件编码未建立,请检查')
  9959. Return
  9960. End If
  9961. wf_add_row(ll_mtrlid,ins_pfcode,1,ld_qty_pack,arg_msg,ll_row_p)
  9962. dw_1.Object.u_prdpf_pfgroupqty[ll_row_p] = ld_qty_pack
  9963. dw_1.Object.u_prdpf_dipztype[ll_row_p] = 3
  9964. dw_1.Object.u_prdpf_ifover[ll_row_p] = 1
  9965. ll_row_insert = ll_row_p + 1
  9966. Else
  9967. For ll_i = ll_row_p + 1 To dw_1.RowCount()
  9968. If dw_1.Object.lp[ll_i] = 1 Then
  9969. ll_row_insert = ll_i
  9970. Exit
  9971. End If
  9972. Next
  9973. If ll_row_insert = 0 Then
  9974. ll_row_insert = dw_1.RowCount() + 1
  9975. End If
  9976. End If
  9977. dw_buffer.AcceptText()
  9978. ll_lp_min = 999
  9979. For ll_i = 1 To dw_buffer.RowCount()
  9980. If dw_buffer.Object.lp[ll_i] < ll_lp_min Then
  9981. ll_lp_min = dw_buffer.Object.lp[ll_i]
  9982. End If
  9983. Next
  9984. If li_ifset_qty = 1 Then
  9985. For ll_i = 1 To UpperBound(s_return.arr_string)
  9986. If s_return.arr_dec[ll_i] = s_return.arr_dec2[ll_i] Then Continue //没有改数量
  9987. For ll_j = 1 To dw_buffer.RowCount()
  9988. If ll_lp_min = dw_buffer.Object.lp[ll_j] And &
  9989. s_return.arr_string[ll_i] = dw_buffer.Object.u_prdpf_promode[ll_j] And &
  9990. s_return.arr_string2[ll_i] = dw_buffer.Object.u_prdpf_pfgroup[ll_j] And &
  9991. s_return.arr_string3[ll_i] = dw_buffer.Object.u_mtrldef_mtrlcode[ll_j] Then
  9992. ld_rate = s_return.arr_dec[ll_i] / s_return.arr_dec2[ll_i]
  9993. dw_buffer.Object.u_prdpf_pfgroupqty[ll_j] = s_return.arr_dec[ll_i]
  9994. dw_buffer.Object.u_prdpf_sonscale[ll_j] = Round(dw_buffer.Object.u_prdpf_sonscale[ll_j] * ld_rate,sys_option_produce_dec)
  9995. For ll_k = ll_j + 1 To dw_buffer.RowCount()
  9996. If dw_buffer.Object.lp[ll_k] <= dw_buffer.Object.lp[ll_j] Then
  9997. ll_j = ll_k - 1
  9998. Exit
  9999. end if
  10000. dw_buffer.Object.u_prdpf_pfgroupqty[ll_k] = Round(dw_buffer.Object.u_prdpf_pfgroupqty[ll_k] * ld_rate,sys_option_produce_dec)
  10001. dw_buffer.Object.u_prdpf_sonscale[ll_k] = Round(dw_buffer.Object.u_prdpf_sonscale[ll_k] * ld_rate,sys_option_produce_dec)
  10002. dw_buffer.Object.u_prdpf_sonscale_ori[ll_k] = Round(dw_buffer.Object.u_prdpf_sonscale_ori[ll_k] * ld_rate,sys_option_produce_dec)
  10003. Next
  10004. End If
  10005. Next
  10006. Next
  10007. End If
  10008. For ll_i = 1 To dw_buffer.RowCount()
  10009. dw_buffer.Object.ch[ll_i] = 0
  10010. dw_buffer.Object.lp[ll_i] = dw_buffer.Object.lp[ll_i] + ( 2 - ll_lp_min)
  10011. Next
  10012. dw_buffer.RowsCopy(1,dw_buffer.RowCount(),Primary!, dw_1, ll_row_insert, Primary!)
  10013. dw_1.SetRedraw(False)
  10014. If li_ifset_qty = 1 Then
  10015. For ll_i = 1 To UpperBound(s_return.arr_string)
  10016. If s_return.arr_dec[ll_i] >= s_return.arr_dec2[ll_i] Then Continue //没有改数量 或 增加数量,则删除原勾选的数据
  10017. For ll_j = 2 To dw_1.RowCount()
  10018. if dw_1.object.ch[ll_j] = 0 then continue
  10019. If ll_lp_min = dw_1.Object.lp[ll_j] And &
  10020. s_return.arr_string[ll_i] = dw_1.Object.u_prdpf_promode[ll_j] And &
  10021. s_return.arr_string2[ll_i] = dw_1.Object.u_prdpf_pfgroup[ll_j] And &
  10022. s_return.arr_string3[ll_i] = dw_1.Object.u_mtrldef_mtrlcode[ll_j] Then
  10023. ld_rate = 1 - s_return.arr_dec[ll_i] / s_return.arr_dec2[ll_i]
  10024. dw_1.Object.u_prdpf_pfgroupqty[ll_j] = dw_1.Object.u_prdpf_pfgroupqty[ll_j] - s_return.arr_dec[ll_i]
  10025. dw_1.Object.u_prdpf_sonscale[ll_j] = Round(dw_1.Object.u_prdpf_sonscale[ll_j] * ld_rate,sys_option_produce_dec)
  10026. dw_1.Object.u_prdpf_sonscale_ori[ll_j] = Round(dw_1.Object.u_prdpf_sonscale_ori[ll_j] * ld_rate,sys_option_produce_dec)
  10027. dw_1.Object.ch[ll_j] = 0 //不删除
  10028. For ll_k = ll_j + 1 To dw_1.RowCount()
  10029. If dw_1.Object.lp[ll_k] <= dw_1.Object.lp[ll_j] Then
  10030. ll_j = ll_k - 1
  10031. Exit
  10032. end if
  10033. dw_1.Object.ch[ll_k] = 0 //不删除
  10034. dw_1.Object.u_prdpf_pfgroupqty[ll_k] = Round(dw_1.Object.u_prdpf_pfgroupqty[ll_k] * ld_rate,sys_option_produce_dec)
  10035. dw_1.Object.u_prdpf_sonscale[ll_k] = Round(dw_1.Object.u_prdpf_sonscale[ll_k] * ld_rate,sys_option_produce_dec)
  10036. dw_1.Object.u_prdpf_sonscale_ori[ll_k] = Round(dw_1.Object.u_prdpf_sonscale_ori[ll_k] * ld_rate,sys_option_produce_dec)
  10037. Next
  10038. End If
  10039. Next
  10040. Next
  10041. end if
  10042. For ll_i = dw_1.RowCount() To 2 Step -1
  10043. //ch = 1 的删除
  10044. If dw_1.Object.ch[ll_i] = 1 Then
  10045. dw_1.DeleteRow(ll_i)
  10046. End If
  10047. Next
  10048. dw_1.SetRedraw(True)
  10049. end event
  10050. type cb_all_ch from commandbutton within w_mtrldef_prdpf_padd
  10051. integer x = 3621
  10052. integer y = 264
  10053. integer width = 183
  10054. integer height = 72
  10055. integer taborder = 210
  10056. boolean bringtotop = true
  10057. integer textsize = -9
  10058. integer weight = 400
  10059. fontcharset fontcharset = gb2312charset!
  10060. fontpitch fontpitch = variable!
  10061. string facename = "宋体"
  10062. string text = "全选"
  10063. end type
  10064. event clicked;long ll_i
  10065. dw_1.setredraw(false)
  10066. for ll_i = 2 to dw_1.rowcount()
  10067. dw_1.object.ch[ll_i] = 1
  10068. next
  10069. dw_1.setredraw(true)
  10070. end event
  10071. type cb_fan_ch from commandbutton within w_mtrldef_prdpf_padd
  10072. integer x = 3835
  10073. integer y = 264
  10074. integer width = 183
  10075. integer height = 72
  10076. integer taborder = 220
  10077. boolean bringtotop = true
  10078. integer textsize = -9
  10079. integer weight = 400
  10080. fontcharset fontcharset = gb2312charset!
  10081. fontpitch fontpitch = variable!
  10082. string facename = "宋体"
  10083. string text = "反选"
  10084. end type
  10085. event clicked;long ll_i
  10086. dw_1.accepttext()
  10087. dw_1.setredraw(false)
  10088. for ll_i = 2 to dw_1.rowcount()
  10089. dw_1.object.ch[ll_i] = 1 - dw_1.object.ch[ll_i]
  10090. next
  10091. dw_1.setredraw(true)
  10092. end event
  10093. type cbx_ifreset from checkbox within w_mtrldef_prdpf_padd
  10094. integer x = 4073
  10095. integer y = 196
  10096. integer width = 713
  10097. integer height = 60
  10098. boolean bringtotop = true
  10099. integer textsize = -9
  10100. integer weight = 400
  10101. fontcharset fontcharset = gb2312charset!
  10102. fontpitch fontpitch = variable!
  10103. string facename = "宋体"
  10104. long textcolor = 33554432
  10105. long backcolor = 134217739
  10106. string text = "导入excel不清除原来明细"
  10107. end type
  10108. event clicked;int if_reset
  10109. IF THIS.Checked THEN
  10110. if_reset = 1
  10111. ELSE
  10112. if_reset = 0
  10113. END IF
  10114. f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_reset", String(if_reset))
  10115. end event
  10116. event constructor;int if_reset
  10117. if_reset = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_reset", '0'))
  10118. IF if_reset = 0 THEN
  10119. This.Checked = False
  10120. ELSE
  10121. This.Checked = True
  10122. END IF
  10123. end event
  10124. type cb_autocode from uo_imflatbutton within w_mtrldef_prdpf_padd
  10125. integer x = 1646
  10126. integer width = 261
  10127. integer height = 164
  10128. integer taborder = 40
  10129. boolean bringtotop = true
  10130. boolean enabled = false
  10131. string text = "自动编码"
  10132. string normalpicname = "p2.BMP"
  10133. integer picsize = 16
  10134. toolbaralignment pic_align = alignattop!
  10135. boolean border = false
  10136. end type
  10137. event clicked;call super::clicked;If Not ins_ifmod Then
  10138. MessageBox('系统提示','非编辑半成品状态下,不能执行本操作')
  10139. Return
  10140. End If
  10141. Long row
  10142. String ls_mtrlcode_ori,ls_mtrlcode_new
  10143. row = dw_1.GetRow()
  10144. If row <= 0 Then
  10145. MessageBox('系统提示','请选择行')
  10146. Return
  10147. End If
  10148. dw_1.AcceptText()
  10149. ls_mtrlcode_ori = dw_1.Object.u_mtrldef_mtrlcode[row]
  10150. OpenWithParm(w_auto_mtrlcode_prdpf,ls_mtrlcode_ori)
  10151. ls_mtrlcode_new = Message.StringParm
  10152. if trim(ls_mtrlcode_new) = '' then return
  10153. dw_1.Object.u_mtrldef_mtrlcode[row] = ls_mtrlcode_new
  10154. end event
  10155. type cbx_wp_pack from checkbox within w_mtrldef_prdpf_padd
  10156. integer x = 4073
  10157. integer y = 272
  10158. integer width = 773
  10159. integer height = 60
  10160. boolean bringtotop = true
  10161. integer textsize = -9
  10162. integer weight = 400
  10163. fontcharset fontcharset = gb2312charset!
  10164. fontpitch fontpitch = variable!
  10165. string facename = "宋体"
  10166. long textcolor = 33554432
  10167. long backcolor = 134217739
  10168. string text = "按清单说明自动生成工价表"
  10169. end type
  10170. event clicked;int if_wp_pack
  10171. IF THIS.Checked THEN
  10172. if_wp_pack = 1
  10173. ELSE
  10174. if_wp_pack = 0
  10175. END IF
  10176. cbx_wp_add.enabled = THIS.Checked
  10177. f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_wp_pack", String(if_wp_pack))
  10178. end event
  10179. event constructor;int if_wp_pack
  10180. if_wp_pack = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_wp_pack", '0'))
  10181. IF if_wp_pack = 0 THEN
  10182. This.Checked = False
  10183. ELSE
  10184. This.Checked = True
  10185. END IF
  10186. cbx_wp_add.enabled = THIS.Checked
  10187. end event
  10188. type cb_2 from uo_imflatbutton within w_mtrldef_prdpf_padd
  10189. integer x = 3813
  10190. integer width = 494
  10191. integer height = 164
  10192. integer taborder = 40
  10193. boolean bringtotop = true
  10194. string text = "包件体积重量信息"
  10195. string normalpicname = "update2.BMP"
  10196. integer picsize = 16
  10197. toolbaralignment pic_align = alignattop!
  10198. boolean border = false
  10199. end type
  10200. event clicked;call super::clicked;parent.triggerevent('ue_cmp_packinfo')
  10201. end event
  10202. type cb_fj_edit from uo_imflatbutton within w_mtrldef_prdpf_padd
  10203. integer x = 4343
  10204. integer width = 165
  10205. integer height = 164
  10206. integer taborder = 50
  10207. boolean bringtotop = true
  10208. string text = "附件"
  10209. string normalpicname = "update.BMP"
  10210. integer picsize = 16
  10211. toolbaralignment pic_align = alignattop!
  10212. boolean border = false
  10213. end type
  10214. event clicked;call super::clicked;IF Not f_power_ind(4199,sys_msg_pow) THEN
  10215. MessageBox(publ_operator,sys_msg_pow)
  10216. RETURN
  10217. END IF
  10218. IF dw_edit_mode THEN
  10219. MessageBox('提示','编辑状态下不可用')
  10220. RETURN
  10221. END IF
  10222. s_edit_index_tran s_pic
  10223. Long ll_ConnectionID
  10224. String arg_msg
  10225. Long ls_row
  10226. Long ll_cnt
  10227. if ins_mtrlid = 0 then
  10228. messagebox('系统提示','请先选择物料清单')
  10229. return
  10230. end if
  10231. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  10232. MessageBox('提示','没有指定附件数据库连接'+arg_msg)
  10233. RETURN
  10234. END IF
  10235. s_pic.f_long = 202 //物料清单 mainID
  10236. s_pic.f_string = ins_pfcode
  10237. s_pic.g_long = ins_mtrlid
  10238. s_pic.d_long = 0 //relid_mx
  10239. s_pic.d_string = '' //relcode_mx
  10240. s_pic.e_long = 0 // scid
  10241. s_pic.sqltransaction = sys_filedb_sqlca
  10242. OpenWithParm(w_fj_bill_mng,s_pic)
  10243. end event
  10244. type cbx_wp_add from checkbox within w_mtrldef_prdpf_padd
  10245. integer x = 4841
  10246. integer y = 272
  10247. integer width = 850
  10248. integer height = 60
  10249. boolean bringtotop = true
  10250. integer textsize = -9
  10251. integer weight = 400
  10252. fontcharset fontcharset = gb2312charset!
  10253. fontpitch fontpitch = variable!
  10254. string facename = "宋体"
  10255. long textcolor = 33554432
  10256. long backcolor = 134217739
  10257. string text = "增加模板工价表中没有的工序"
  10258. end type
  10259. event clicked;int if_wp_add
  10260. IF THIS.Checked THEN
  10261. if_wp_add = 1
  10262. ELSE
  10263. if_wp_add = 0
  10264. END IF
  10265. f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_wp_add", String(if_wp_add))
  10266. end event
  10267. event constructor;int if_wp_add
  10268. if_wp_add = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_wp_add", '0'))
  10269. IF if_wp_add = 0 THEN
  10270. This.Checked = False
  10271. ELSE
  10272. This.Checked = True
  10273. END IF
  10274. end event
  10275. type cb_old_to_new from commandbutton within w_mtrldef_prdpf_padd
  10276. integer x = 4891
  10277. integer y = 188
  10278. integer width = 494
  10279. integer height = 76
  10280. integer taborder = 220
  10281. boolean bringtotop = true
  10282. integer textsize = -9
  10283. integer weight = 400
  10284. fontcharset fontcharset = gb2312charset!
  10285. fontpitch fontpitch = variable!
  10286. string facename = "宋体"
  10287. string text = "辅助生成板件编码"
  10288. end type
  10289. event clicked;parent.triggerevent('ue_old_to_new')
  10290. end event
  10291. type cb_add_mtrl from uo_imflatbutton within w_mtrldef_prdpf_padd
  10292. integer x = 2683
  10293. integer width = 192
  10294. integer height = 164
  10295. integer taborder = 20
  10296. boolean bringtotop = true
  10297. string text = "增物料"
  10298. string normalpicname = "mx1.bmp"
  10299. integer picsize = 16
  10300. toolbaralignment pic_align = alignattop!
  10301. boolean border = false
  10302. end type
  10303. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  10304. String menustr
  10305. menustr = "Text=增同级F7~tEvent=ue_add_same"
  10306. menustr = menustr + "|" + "Text=增下级F8~tEvent=ue_add_next"
  10307. menustr = menustr + "|" + "Text=增上级~tEvent=ue_add_up"
  10308. IF Len(Trim(menustr)) <> 0 THEN
  10309. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  10310. dmPopupMenu.mf_BuildMenu(This, menustr)
  10311. dmPopupMenu.mf_PopMenu()
  10312. Destroy dmPopupMenu
  10313. END IF
  10314. end event
  10315. type ln_bar from line within w_mtrldef_prdpf_padd
  10316. long linecolor = 268435456
  10317. integer linethickness = 4
  10318. integer beginy = 176
  10319. integer endx = 3323
  10320. integer endy = 176
  10321. end type
  10322. type ln_bar2 from line within w_mtrldef_prdpf_padd
  10323. long linecolor = 16777215
  10324. integer linethickness = 4
  10325. integer beginy = 180
  10326. integer endx = 3323
  10327. integer endy = 180
  10328. end type
  10329. type r_bar from rectangle within w_mtrldef_prdpf_padd
  10330. long linecolor = 16777215
  10331. long fillcolor = 1073741824
  10332. integer x = 5253
  10333. integer width = 73
  10334. integer height = 172
  10335. end type
  10336. event constructor;this.fillcolor = 14215660
  10337. this.linecolor = 14215660
  10338. this.x = -1
  10339. this.y = -1
  10340. this.height = ln_bar2.beginy - 5
  10341. end event
  10342. type ln_7 from line within w_mtrldef_prdpf_padd
  10343. long linecolor = 16777215
  10344. integer linethickness = 4
  10345. integer beginx = 1024
  10346. integer endx = 1024
  10347. integer endy = 176
  10348. end type
  10349. type ln_8 from line within w_mtrldef_prdpf_padd
  10350. long linecolor = 268435456
  10351. integer linethickness = 4
  10352. integer beginx = 1019
  10353. integer endx = 1019
  10354. integer endy = 176
  10355. end type
  10356. type ln_1 from line within w_mtrldef_prdpf_padd
  10357. long linecolor = 16777215
  10358. integer linethickness = 4
  10359. integer beginx = 4325
  10360. integer endx = 4325
  10361. integer endy = 176
  10362. end type
  10363. type ln_2 from line within w_mtrldef_prdpf_padd
  10364. long linecolor = 268435456
  10365. integer linethickness = 4
  10366. integer beginx = 4320
  10367. integer endx = 4320
  10368. integer endy = 176
  10369. end type
  10370. type ln_3 from line within w_mtrldef_prdpf_padd
  10371. long linecolor = 268435456
  10372. integer linethickness = 4
  10373. integer beginy = 344
  10374. integer endx = 2016
  10375. integer endy = 344
  10376. end type
  10377. type ln_4 from line within w_mtrldef_prdpf_padd
  10378. long linecolor = 16777215
  10379. integer linethickness = 4
  10380. integer beginy = 348
  10381. integer endx = 2048
  10382. integer endy = 348
  10383. end type
  10384. type ln_5 from line within w_mtrldef_prdpf_padd
  10385. long linecolor = 268435456
  10386. integer linethickness = 4
  10387. integer beginx = 2400
  10388. integer endx = 2400
  10389. integer endy = 176
  10390. end type
  10391. type ln_6 from line within w_mtrldef_prdpf_padd
  10392. long linecolor = 16777215
  10393. integer linethickness = 4
  10394. integer beginx = 2405
  10395. integer endx = 2405
  10396. integer endy = 176
  10397. end type
  10398. type ln_9 from line within w_mtrldef_prdpf_padd
  10399. long linecolor = 16777215
  10400. integer linethickness = 4
  10401. integer beginx = 4878
  10402. integer endx = 4878
  10403. integer endy = 176
  10404. end type
  10405. type ln_10 from line within w_mtrldef_prdpf_padd
  10406. long linecolor = 268435456
  10407. integer linethickness = 4
  10408. integer beginx = 4873
  10409. integer endx = 4873
  10410. integer endy = 176
  10411. end type
  10412. type ln_11 from line within w_mtrldef_prdpf_padd
  10413. long linecolor = 16777215
  10414. integer linethickness = 4
  10415. integer beginx = 3543
  10416. integer endx = 3543
  10417. integer endy = 176
  10418. end type
  10419. type ln_12 from line within w_mtrldef_prdpf_padd
  10420. long linecolor = 268435456
  10421. integer linethickness = 4
  10422. integer beginx = 3538
  10423. integer endx = 3538
  10424. integer endy = 176
  10425. end type