1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056 |
- $PBExportHeader$w_define.srw
- forward
- global type w_define from w_publ_base
- end type
- type tab_1 from tab within w_define
- end type
- type tabpage_1 from userobject within tab_1
- end type
- type dw_1 from u_dw_rbtnfilter within tabpage_1
- end type
- type tabpage_1 from userobject within tab_1
- dw_1 dw_1
- end type
- type tabpage_2 from userobject within tab_1
- end type
- type dw_2 from u_dw_rbtnfilter within tabpage_2
- end type
- type tabpage_2 from userobject within tab_1
- dw_2 dw_2
- end type
- type tabpage_3 from userobject within tab_1
- end type
- type dw_3 from u_dw_rbtnfilter within tabpage_3
- end type
- type tabpage_3 from userobject within tab_1
- dw_3 dw_3
- end type
- type tab_1 from tab within w_define
- tabpage_1 tabpage_1
- tabpage_2 tabpage_2
- tabpage_3 tabpage_3
- end type
- type cb_1 from uo_imflatbutton within w_define
- end type
- type cb_2 from uo_imflatbutton within w_define
- end type
- type cb_3 from uo_imflatbutton within w_define
- end type
- type cb_4 from uo_imflatbutton within w_define
- end type
- type cb_5 from uo_imflatbutton within w_define
- end type
- type cb_6 from uo_imflatbutton within w_define
- end type
- type cb_help from uo_imflatbutton within w_define
- end type
- type ln_bar from line within w_define
- end type
- type ln_bar2 from line within w_define
- end type
- type r_bar from rectangle within w_define
- end type
- end forward
- global type w_define from w_publ_base
- integer width = 3602
- integer height = 2296
- string title = "定义资料导入"
- boolean maxbox = true
- windowstate windowstate = maximized!
- long printnum = 34165640
- event ue_help ( )
- tab_1 tab_1
- cb_1 cb_1
- cb_2 cb_2
- cb_3 cb_3
- cb_4 cb_4
- cb_5 cb_5
- cb_6 cb_6
- cb_help cb_help
- ln_bar ln_bar
- ln_bar2 ln_bar2
- r_bar r_bar
- end type
- global w_define w_define
- type variables
- datawindow dw_2,dw_3,dw_1
- end variables
- forward prototypes
- public subroutine wf_insertrow (datawindow arg_dw)
- public subroutine wf_delrow (datawindow arg_dw)
- public subroutine wf_savefile (datawindow arg_dw)
- public function integer wf_check_mtrl (ref string arg_msg)
- public function integer wf_check_cust (ref string arg_msg)
- public function integer wf_check_spt (ref string arg_msg)
- protected function integer wf_openfile (datawindow arg_dw)
- public subroutine wf_import_mtrl ()
- public subroutine wf_import_spt ()
- public subroutine wf_import_cust ()
- end prototypes
- event ue_help();Int i
- i = htmlhelpA(Handle(THIS), sys_help_chm, 0, THIS.Title+".html")
- end event
- public subroutine wf_insertrow (datawindow arg_dw);long li_row
- li_row=arg_dw.insertrow(0)
- arg_dw.scrolltorow(li_row)
- arg_dw.setcolumn(1)
- end subroutine
- public subroutine wf_delrow (datawindow arg_dw);
- IF arg_dw.GETROW()=0 THEN
- RETURN
- END IF
- arg_dw.DeleteRow (0)
- arg_dw.TriggerEvent (rowfocuschanged!)
- end subroutine
- public subroutine wf_savefile (datawindow arg_dw);////IF NOT sys_power_issuper THEN
- //// MessageBox(publ_operator,'你没有使用权限!')
- //// RETURN
- ////END IF
- ////
- //
- ////new
- //Integer i
- //String Pathname,Filename
- //String arg_filename,arg_msg
- //Blob arg_blob
- //
- //
- //IF GetFileSaveName("选择备份文件",Pathname,Filename,'xls',"Excel,*.xls") < 1 THEN RETURN
- //IF Trim(Pathname) <> '' AND Trim(Filename) <> "" THEN
- //// Pathname
- //END IF
- //
- //arg_filename = Trim(Pathname)
- //IF arg_filename = '' THEN
- // MessageBox('提示','请输入文件名称', Information!, OK! )
- // RETURN
- //END IF
- //
- //IF FileExists(arg_filename) THEN
- // IF MessageBox("询问","指定文件已经存在,是否覆盖该文件?",question!,yesno!,2) = 2 THEN
- // RETURN
- // END IF
- //END IF
- //
- //arg_dw.AcceptText( )
- //
- ////n_cst_dw2excel n_excel
- ////n_excel.OF_SetTipsWindow("w_tipsabc","正在生成Excel文件,请稍候.....")
- ////n_excel.OF_dw2Excel(arg_dw,arg_filename)
- //gf_dw_to_excel(arg_dw,arg_filename)
- //
- //
- //IF NOT sys_power_issuper THEN
- // MessageBox(publ_operator,'你没有使用权限!')
- // RETURN
- //END IF
- //
- //new
- Integer i
- String Pathname,Filename
- String arg_filename,arg_msg
- Blob arg_blob
- IF GetFileSaveName("选择备份文件",Pathname,Filename,'xls',"Excel,*.xls") < 1 THEN RETURN
- IF Trim(Pathname) <> '' AND Trim(Filename) <> "" THEN
- // Pathname
- END IF
- arg_filename = Trim(Pathname)
- IF arg_filename = '' THEN
- MessageBox('提示','请输入文件名称', Information!, OK! )
- RETURN
- END IF
- IF FileExists(arg_filename) THEN
- IF MessageBox("询问","指定文件已经存在,是否覆盖该文件?",question!,yesno!,2) = 2 THEN
- RETURN
- END IF
- END IF
- arg_dw.AcceptText( )
- //n_cst_dw2excel n_excel
- //n_excel.OF_SetTipsWindow("w_tipsabc","正在生成Excel文件,请稍候.....")
- //n_excel.OF_dw2Excel(arg_dw,arg_filename)
- // TODO: 隐藏批修改
- string ls_objs
- long ll_pos = 1, ll_end, ll_cnt = 0
- string ls_name, ls_names[]
- string ls_oldvalues[]
- ls_objs = arg_dw.describe('DataWindow.Objects')
- if len(ls_objs) > 0 then
- ll_end = pos(ls_objs, '~t', ll_pos)
- do while ll_end > 0
- ls_name = mid(ls_objs, ll_pos, ll_end - ll_pos)
- if mid(ls_name, 1, 6) = 't_mod_' OR ls_name = 'compute_1' then
- ll_cnt ++
- ls_names[ll_cnt] = ls_name
- end if
- ll_pos = ll_end + 1
- ll_end = pos(ls_objs, '~t', ll_pos)
- loop
-
- ls_name = mid(ls_objs, ll_pos)
- if mid(ls_name, 1, 6) = 't_mod_' OR ls_name = 'compute_1' then
- ll_cnt ++
- ls_names[ll_cnt] = ls_name
- end if
- for ll_cnt = 1 to upperbound(ls_names)
- ls_oldvalues[ll_cnt] = arg_dw.describe(ls_names[ll_cnt] + ".Visible")
- arg_dw.modify(ls_names[ll_cnt] + ".Visible = '0'")
- next
-
- end if
- //gf_dw_to_excel(arg_dw,arg_filename)
- n_cst_dw2Excel lnv_Excel
- lnv_Excel.OF_dw2Excel(arg_dw,arg_filename,'Sheet1')
- // TODO: 显示批修改
- for ll_cnt = 1 to upperbound(ls_names)
- arg_dw.modify(ls_names[ll_cnt] + ".Visible = '" + ls_oldvalues[ll_cnt] + "'")
- next
- end subroutine
- public function integer wf_check_mtrl (ref string arg_msg);Long i,rowcnt,rslt = 1,cnt,j,cur,strcunt,k,mtrlorigin
- String Columnname,storagename,storname
- String mtrlcode
- String ls_temp,dscrp
- String mtrlname,mtrlmodes
- rowcnt = dw_1.RowCount( )
- IF rowcnt < 1 THEN RETURN rslt
- Open(w_sys_wait_jdt) //初始化进度条
- w_sys_wait_jdt.Show()
- w_sys_wait_jdt.wf_accepttol(rowcnt)
- w_sys_wait_jdt.wf_inc(0.5)
- w_sys_wait_jdt.st_msg.Text = "正在检查数据..."
- dw_1.AcceptText( )
- //检查数据
- FOR i = 1 TO rowcnt
- w_sys_wait_jdt.wf_inc(i)
-
-
- dw_1.Object.mtrlcode[i] = Trim(dw_1.Object.mtrlcode[i])
- dw_1.Object.mtrlname[i] = Trim(dw_1.Object.mtrlname[i])
- // dw_1.Object.mtrltype[i] = Trim(dw_1.Object.mtrltype[i])
- // dw_1.Object.mtrlmodes[i] = Trim(dw_1.Object.mtrlmodes[i])
- dw_1.Object.dscrp[i] = Trim(dw_1.Object.dscrp[i])
- dw_1.Object.unit[i] = Trim(dw_1.Object.unit[i])
-
- mtrlname = dw_1.Object.mtrlname[i]
- IF Len(mtrlname) <= 50 THEN
- dw_1.Object.mtrlname[i] = mtrlname
- ELSE
- MessageBox('提示',"物料名称不能超过50个字符", Information!, OK! )
- dw_1.Object.mtrlname[i] = ''
- END IF
-
- dscrp = dw_1.Object.dscrp[i]
- IF Len(dscrp) <= 255 THEN
- dw_1.Object.dscrp[i] = dscrp
- ELSE
- MessageBox('提示',"备注不能超过255个字符", Information!, OK! )
- dw_1.Object.dscrp[i] = ''
- END IF
-
- // if dw_1.Object.mtrlname[i]='' and dw_1.Object.mtrlcode[i]='' then
- // continue
- // end if
-
-
- String ls_mtrltype
- Long ll_mtrltypeid
- ls_mtrltype = Trim(dw_1.Object.mtrltype[i])
-
- IF ls_mtrltype = '' THEN
- rslt = 0
- arg_msg = '请输入物料类别'
- Columnname = 'mtrltype'
- GOTO ext
- END IF
- mtrlorigin = dw_1.Object.mtrlorigin[i]
-
-
- SELECT count(mtrltypeid)
- INTO :ll_mtrltypeid
- FROM u_mtrltype
- Where u_mtrltype.handtype = :ls_mtrltype ;
- //and mtrlprp=:mtrlorigin;
-
- IF ll_mtrltypeid = 0 THEN
- rslt = 0
- arg_msg = '请先在系统中输入物料类别!'
- Columnname = 'mtrltype'
- GOTO ext
- END IF
-
-
- // if sqlca.sqlcode<>0 then
- // rslt = 0
- // arg_msg = '请选择物料类别'+sqlca.sqlerrtext//+string(ll_mtrltypeid)
- // Columnname = 'handtype'
- // GOTO ext
- // else
- // dw_1.object.handtype[i]=lls_handtype
- // dw_1.object.mtrltypeid[i]=ll_mtrltypeid
- // dw_1.accepttext( )
- // end if
-
-
-
- IF dw_1.Object.mtrlcode[i] = '' THEN
- rslt = 0
- arg_msg = '请输入物料编号'
- Columnname = 'mtrlcode'
- GOTO ext
- END IF
-
-
- IF dw_1.Object.mtrlname[i] = '' THEN
- rslt = 0
- arg_msg = '请输物料名称'
- Columnname = 'mtrlname'
- GOTO ext
- END IF
-
-
- IF dw_1.Object.unit[i] = '' THEN
- rslt = 0
- arg_msg = '请输入物料计量单位'
- Columnname = 'unit'
- GOTO ext
- END IF
-
- // IF dw_1.Object.Mtrlorigin[i] = '' THEN
- // rslt = 0
- // arg_msg = '请输入来源'
- // Columnname = 'Mtrlorigin'
- // GOTO ext
- // END IF
- If (dw_1.Object.mtrlorigin[i] = 0 OR dw_1.Object.mtrlorigin[i] = 1 OR dw_1.Object.mtrlorigin[i] = 2 OR dw_1.Object.mtrlorigin[i] = 3 OR dw_1.Object.mtrlorigin[i] = 4 ) THEN
- ELSE
- rslt = 0
- arg_msg = ' "来源"必须为:"自制产品" 或 "产品包装件" 或 "采购" 或 "外协部件" 或 "自制部件"!'
- Columnname = 'Mtrlorigin'
- GOTO ext
- END IF
-
-
- // //检查物料编码是否重复
- // cnt = 0
- // if i>1 then
- // for j=1 to i - 1
- // if dw_1.object.mtrlcode[i]=dw_1.object.mtrlcode[j] then
- // cnt=1
- // end if
- // next
- // end if
- // mtrlcode=dw_1.Object.mtrlcode[i]
- // SELECT count(mtrlid) INTO :cnt
- // FROM u_mtrldef
- // Where mtrlcode = :mtrlcode;
- //
- // IF cnt > 0 THEN
- // dw_1.Object.repeat[i] = 1
- // rslt=0
- // arg_msg='物料编码不能重复!'
- // Columnname = 'mtrlcode'
- // GOTO ext
- // END IF
- //判断仓库
- storagename = Trim(dw_1.Object.u_storage_storagename[i])
- // if storagename<>'' then
- // do while len(storagename)>0
- // cur=pos(storagename,'、')
- //
- // if cur=0 then
- // select count(storageid)
- // into :strcunt
- // from u_storage
- // where storagename=:storagename;
- // if strcunt=0 then
- // rslt=0
- //
- // arg_msg='错误的仓库!'
- // Columnname = 'u_storage_storagename'
- // GOTO ext
- // end if
- // storagename=trim(left(storagename,cur - 1))
- //
- // else
- // storname=trim(left(storagename,cur - 1))
- //
- // select count(storageid)
- // into :strcunt
- // from u_storage
- // where storagename=:storname;
- // if strcunt=0 then
- // rslt=0
- //
- // arg_msg='错误的仓库!'
- // Columnname = 'u_storage_storagename'
- // GOTO ext
- // end if
- //
- // storagename=trim(right(storagename,len(storagename)-cur))
- // end if
- // loop
- // end if
- SELECT count(storageid)
- INTO :strcunt
- FROM u_storage
- Where storagename = :storagename;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询仓库资料失败'+sqlca.SQLErrText
- Columnname = 'u_storage_storagename'
- GOTO ext
- END IF
- IF strcunt = 0 THEN
- rslt = 0
- arg_msg = '请先在系统中定义仓库资料!'
- Columnname = 'u_storage_storagename'
- GOTO ext
- END IF
-
-
- NEXT
- ext:
- Close(w_sys_wait_jdt)
- IF rslt = 0 THEN
- //MessageBox('系统提示',arg_msg)
- dw_1.SetFocus()
- dw_1.ScrollToRow( i)
- dw_1.SetColumn(Columnname)
- END IF
- RETURN rslt
- end function
- public function integer wf_check_cust (ref string arg_msg);//Long i,rowcnt,rslt = 1,cnt,j,cnt1,repcnt,cusid
- //String Columnname,custype,cusareaname
- //string cuscode
- //rowcnt = dw_3.RowCount( )
- //
- //IF rowcnt < 1 THEN RETURN rslt
- //
- //Open(w_sys_wait_jdt) //初始化进度条
- //w_sys_wait_jdt.Show()
- //w_sys_wait_jdt.wf_accepttol(rowcnt)
- //w_sys_wait_jdt.wf_inc(0.5)
- //w_sys_wait_jdt.st_msg.Text = "正在检查数据..."
- //
- //dw_3.AcceptText( )
- //
- ////检查数据
- //FOR i = 1 TO rowcnt
- // w_sys_wait_jdt.wf_inc(i)
- //
- // dw_3.Object.Name[i] = Trim(dw_3.Object.Name[i])
- // dw_3.Object.custype[i] = Trim(dw_3.Object.custype[i])
- // dw_3.Object.rep[i] = Trim(dw_3.Object.rep[i])
- // dw_3.Object.tele[i] = Trim(dw_3.Object.tele[i])
- // dw_3.Object.bank[i] = Trim(dw_3.Object.bank[i])
- // dw_3.Object.cunt[i] = Trim(dw_3.Object.cunt[i])
- // dw_3.Object.cuscode[i] = Trim(dw_3.Object.cuscode[i])
- // dw_3.Object.Address[i] = Trim(dw_3.Object.Address[i])
- // dw_3.Object.dscrp[i] = Trim(dw_3.Object.dscrp[i])
- // custype=dw_3.Object.custype[i]
- // cusareaname=dw_3.Object.cusareaname[i]
- //
- // IF dw_3.Object.cuscode[i] = '' THEN
- // rslt = 0
- // arg_msg = '请输入客户编号'
- // Columnname = 'cuscode'
- // GOTO ext
- // END IF
- //
- // IF dw_3.Object.Name[i] = '' THEN
- //
- // rslt = 0
- // arg_msg = '请输入客户名称'
- // Columnname = 'name'
- // GOTO ext
- // END IF
- //
- // IF dw_3.Object.cusareaname[i] = '' THEN
- //
- // rslt = 0
- // arg_msg = '请输入区域'
- // Columnname = 'cusareaname'
- // GOTO ext
- // END IF
- //
- //
- // //检查客户编号是否重复
- // cnt = 0
- // if i>1 then
- // for j=1 to i - 1
- // if dw_3.object.cuscode[i]=dw_3.object.cuscode[j] then
- // cnt1=1
- // end if
- // next
- // end if
- // cuscode=dw_3.Object.cuscode[i]
- // SELECT count(cusid) INTO :cnt1
- // FROM u_cust
- // Where cuscode = :cuscode;
- //
- // IF cnt1 > 0 THEN
- // dw_3.Object.repeat[i] = 1
- // rslt=0
- // arg_msg='客户编号不能重复!'
- // Columnname = 'cuscode'
- // GOTO ext
- // END IF
- //
- ////检查业务员
- // select count(outrepcode)
- // into :repcnt
- // from u_outrepdef
- // where outrepname=:custype;
- // if repcnt=0 then
- // rslt=0
- // arg_msg='请先在系统中定义业务员资料!'
- // Columnname = 'custype'
- // GOTO ext
- // end if
- //
- // String ll_cusareaname,ll_areaname
- // string ls_temp
- // Long ll_cusareaid
- //
- //
- ////检查地区
- //
- // select count(CusareaID)
- // into :cusID
- // from u_cusarea
- // where cusareaname=:cusareaname;
- // if sqlca.sqlcode<>0 then
- // rslt = 0
- // arg_msg = '请输入客户区域'+sqlca.sqlerrtext//+string(ll_mtrltypeid)
- // Columnname = 'cusareaname'
- // GOTO ext
- // end if
- // if cusid=0 then
- // rslt=0
- // arg_msg = '请先在系统中定义地区资料!'
- // Columnname = 'cusareaname'
- // GOTO ext
- // end if
- //NEXT
- //
- //ext:
- //Close(w_sys_wait_jdt)
- //IF rslt = 0 THEN
- // //MessageBox('系统提示',arg_msg)
- // dw_3.SetFocus()
- // dw_3.ScrollToRow( i)
- // dw_3.SetColumn(Columnname)
- //END IF
- //
- //return rslt
- //
- Long i,rowcnt,rslt = 1,cnt,j,cnt1,repcnt,cusid
- String Columnname,custype,cusareaname
- String cuscode, name
- rowcnt = dw_3.RowCount( )
- IF rowcnt < 1 THEN RETURN rslt
- Open(w_sys_wait_jdt) //初始化进度条
- w_sys_wait_jdt.Show()
- w_sys_wait_jdt.wf_accepttol(rowcnt)
- w_sys_wait_jdt.wf_inc(0.5)
- w_sys_wait_jdt.st_msg.Text = "正在检查数据..."
- dw_3.AcceptText( )
- //检查数据
- FOR i = 1 TO rowcnt
- w_sys_wait_jdt.wf_inc(i)
-
- dw_3.Object.Name[i] = Trim(dw_3.Object.Name[i])
- dw_3.Object.custype[i] = Trim(dw_3.Object.custype[i])
- dw_3.Object.rep[i] = Trim(dw_3.Object.rep[i])
- dw_3.Object.tele[i] = Trim(dw_3.Object.tele[i])
- dw_3.Object.bank[i] = Trim(dw_3.Object.bank[i])
- dw_3.Object.cunt[i] = Trim(dw_3.Object.cunt[i])
- dw_3.Object.cuscode[i] = Trim(dw_3.Object.cuscode[i])
- dw_3.Object.Address[i] = Trim(dw_3.Object.Address[i])
- dw_3.Object.dscrp[i] = Trim(dw_3.Object.dscrp[i])
- custype = dw_3.Object.custype[i]
- cusareaname = dw_3.Object.cusareaname[i]
-
- IF dw_3.Object.cuscode[i] = '' THEN
- rslt = 0
- arg_msg = '请输入客户编号'
- Columnname = 'cuscode'
- GOTO ext
- END IF
-
- IF dw_3.Object.Name[i] = '' THEN
-
- rslt = 0
- arg_msg = '请输入客户名称'
- Columnname = 'name'
- GOTO ext
- END IF
-
- IF dw_3.Object.cusareaname[i] = '' THEN
-
- rslt = 0
- arg_msg = '请输入区域'
- Columnname = 'cusareaname'
- GOTO ext
- END IF
-
-
- //检查客户编号是否重复
- cnt = 0
- IF i > 1 THEN
- FOR j = 1 TO i - 1
- IF dw_3.Object.cuscode[i] = dw_3.Object.cuscode[j] THEN
- dw_3.Object.repeat[i] = 1
- rslt = 0
- arg_msg = '客户编号不能重复!第 ' + string(i) + ' 行与第 ' + string(j) + ' 行重复'
- Columnname = 'cuscode'
- GOTO ext
- END IF
-
- if dw_3.Object.name[i] = dw_3.Object.name[j] then
- dw_3.object.repeat[i] = 1
- rslt = 0
- arg_msg = '客户名称不能重复!第 ' + string(i) + ' 行与第 ' + string(j) + ' 行重复'
- Columnname = 'name'
- GOTO ext
- end if
-
- NEXT
- END IF
-
-
-
- cuscode = dw_3.Object.cuscode[i]
- SELECT count(cusid) INTO :cnt1
- FROM u_cust
- Where cuscode = :cuscode;
- if sqlca.sqlcode <> 0 then
- rslt = 0
- arg_msg = '数据库连失败,' + sqlca.sqlerrtext
- Columnname = 'cuscode'
- goto ext
- end if
-
- IF cnt1 > 0 THEN
- dw_3.Object.repeat[i] = 1
- rslt = 0
- arg_msg = '客户编号不能重复!编号已经使用'
- Columnname = 'cuscode'
- GOTO ext
- END IF
-
- name = dw_3.Object.name[i]
- SELECT count(cusid) INTO :cnt1
- FROM u_cust
- Where name = :name;
- if sqlca.sqlcode <> 0 then
- rslt = 0
- arg_msg = '数据库连失败,' + sqlca.sqlerrtext
- Columnname = 'name'
- goto ext
- end if
-
-
- IF cnt1 > 0 THEN
- dw_3.Object.repeat[i] = 1
- rslt = 0
- arg_msg = '客户名称不能重复!"' + name + '"已经存在'
- Columnname = 'name'
- GOTO ext
- END IF
-
- // //检查业务员
- // SELECT count(outrepcode)
- // INTO :repcnt
- // FROM u_outrepdef
- // Where outrepname = :custype;
- // IF repcnt = 0 THEN
- // rslt = 0
- // arg_msg = '请先在系统中定义业务员资料!'
- // Columnname = 'custype'
- // GOTO ext
- // END IF
- //
- String ll_cusareaname,ll_areaname
- String ls_temp
- Long ll_cusareaid
-
-
- //检查地区
-
- SELECT count(CusareaID)
- INTO :cusID
- FROM u_cusarea
- Where cusareaname = :cusareaname;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '请输入客户区域'+sqlca.SQLErrText //+string(ll_mtrltypeid)
- Columnname = 'cusareaname'
- GOTO ext
- END IF
- IF cusid = 0 THEN
- rslt = 0
- arg_msg = '请先在系统中定义地区资料!'
- Columnname = 'cusareaname'
- GOTO ext
- END IF
- NEXT
- ext:
- Close(w_sys_wait_jdt)
- IF rslt = 0 THEN
- //MessageBox('系统提示',arg_msg)
- dw_3.SetFocus()
- dw_3.ScrollToRow( i)
- dw_3.SetColumn(Columnname)
- END IF
- RETURN rslt
- end function
- public function integer wf_check_spt (ref string arg_msg);Long i,rowcnt,rslt = 1,cnt,j
- String Columnname
- string sptcode
- rowcnt = dw_2.RowCount( )
- IF rowcnt < 1 THEN RETURN rslt
- Open(w_sys_wait_jdt) //初始化进度条
- w_sys_wait_jdt.Show()
- w_sys_wait_jdt.wf_accepttol(rowcnt)
- w_sys_wait_jdt.wf_inc(0.5)
- w_sys_wait_jdt.st_msg.Text = "正在检查数据..."
- dw_2.accepttext( )
- //检查数据
- FOR i = 1 TO rowcnt
- w_sys_wait_jdt.wf_inc(i)
- dw_2.Object.sptcode[i] = Trim(dw_2.Object.sptcode[i])
- dw_2.Object.Name[i] = Trim(dw_2.Object.Name[i])
- dw_2.Object.spttype[i] = Trim(dw_2.Object.spttype[i])
- dw_2.Object.rep[i] = Trim(dw_2.Object.rep[i])
- dw_2.Object.tele[i] = Trim(dw_2.Object.tele[i])
- dw_2.Object.tele1[i] = Trim(dw_2.Object.tele1[i])
- dw_2.Object.bank[i] = Trim(dw_2.Object.bank[i])
- dw_2.Object.cunt[i] = Trim(dw_2.Object.cunt[i])
- dw_2.Object.code[i] = Trim(dw_2.Object.code[i])
- dw_2.Object.Address[i] = Trim(dw_2.Object.Address[i])
- dw_2.Object.dscrp[i] = Trim(dw_2.Object.dscrp[i])
- dw_2.Object.faxno[i] = Trim(dw_2.Object.faxno[i])
-
- IF dw_2.Object.sptcode[i] = '' THEN
- rslt = 0
- arg_msg = '请输入供应商编号'
- Columnname = 'sptcode'
- GOTO ext
- END IF
-
- IF dw_2.Object.Name[i] = '' THEN
- rslt = 0
- arg_msg = '请输入供应商名称'
- Columnname = 'name'
- GOTO ext
- END IF
-
- //检查供应商编号
-
-
- cnt = 0
- if i>1 then
- for j=1 to i - 1
- if dw_2.object.sptcode[i]=dw_2.object.sptcode[j] then
- cnt=1
- end if
- next
- end if
- sptcode=dw_2.Object.sptcode[i]
- SELECT count(sptid) INTO :cnt
- FROM u_spt
- Where sptcode = :sptcode;
-
- IF cnt > 0 THEN
- dw_2.Object.repeat[i] = 1
- rslt=0
- arg_msg='供应商编码不能重复!'
- Columnname = 'sptcode'
- GOTO ext
- END IF
- NEXT
- ext:
- Close(w_sys_wait_jdt)
- IF rslt = 0 THEN
- // MessageBox('系统提示',arg_msg)
- dw_2.SetFocus()
- dw_2.ScrollToRow( i)
- dw_2.SetColumn(Columnname)
- END IF
- RETURN rslt
- end function
- protected function integer wf_openfile (datawindow arg_dw);
- String str_savename,named,s_grxh
- Int excelok,li_net
- Long li_count,i
- oleobject excelserver
- excelserver = CREATE oleobject
- excelok = excelserver.ConnectToNewObject("excel.application")
- //检查返回值,以确保已成功地连接到了Excel
- IF excelok <> 0 THEN
- MessageBox("提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!", Information!, OK! )
- RETURN -1
- END IF
- li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls")
- IF li_net > 0 THEN
- IF str_savename = "" THEN RETURN -1
- arg_dw.SetTransObject(sqlca)
- arg_dw.InsertRow(0)
- arg_dw.Reset()
- excelserver.workbooks.Open(str_savename)
- excelserver.activesheet.cells.Copy
- datastore ds_col30
-
- /////////////建立映射//////////////////////
- ds_col30 = create datastore
- ds_col30.dataobject = 'dw_col30'
-
- ds_col30.importclipboard(1)
- long ll_s_col_count = 30
- long ll_d_col_count
- ll_d_col_count = long(arg_dw.object.datawindow.Column.Count)
- long ll_map[] // 目标表与原表的映射,0为没有映射
- string ls_colType[] // 目标表列类型
-
- long col_d, col_s
- for col_d = 1 to ll_d_col_count
- string ls_col_title, ls_col_name
- ls_col_name = arg_dw.describe('#' + string(col_d) + '.Name')
- ls_colType[col_d] = arg_dw.describe('#' + string(col_d) + '.ColType')
- ls_col_title = arg_dw.describe(ls_col_name + '_t.Text')
- ll_map[col_d] = 0
- for col_s = 1 to ll_s_col_count
- string ls_s_title
- ls_s_title = ds_col30.GetItemString(1, col_s)
- if lower(trim(ls_col_title)) = lower(trim(ls_s_title)) then
- ll_map[col_d] = col_s
- exit
- end if
- next
- next
-
- // TODO: 人工干预,设置映射
-
-
-
- long row_s, row_d
- for row_s = 2 to ds_col30.rowcount( )
- row_d = arg_dw.insertrow(0)
- for col_d = 1 to ll_d_col_count
- if ll_map[col_d] = 0 then continue
- any value
- string ls_value
- ls_value = trim(ds_col30.GetItemString(row_s, ll_map[col_d]))
- if lower(left(ls_colType[col_d], 4)) = 'char' then
- value = ls_value
- elseif lower(left(ls_colType[col_d], 4)) = 'long' &
- OR lower(left(ls_colType[col_d], 3)) = 'int' &
- OR lower(left(ls_colType[col_d], 3)) = 'num' &
- OR lower(left(ls_colType[col_d], 5)) = 'ulong' then
- value = long(ls_value)
- elseif lower(left(ls_colType[col_d], 4)) = 'deci' &
- OR lower(left(ls_colType[col_d], 4)) = 'real' then
- value = dec(ls_value)
- elseif lower(left(ls_colType[col_d], 4)) = 'date' then
- value = Datetime(Date(left(ls_value, 10)), Time(mid(ls_value, 12)))
- end if
- arg_dw.SetItem(row_d, col_d, value)
- next
- next
- destroy ds_col30
- ///////////////////////////////////////
-
- // li_count = arg_dw.ImportClipboard(2) //导入数据 (从第几行开始导入)
- Clipboard("")
-
- excelserver.quit()
- excelserver.DisconnectObject()
- DESTROY excelserver
-
- FOR i = 1 TO arg_dw.RowCount( )
- arg_dw.Object.repeat[i] = 0
- NEXT
- arg_dw.AcceptText( )
- RETURN 1
- ELSE
- MessageBox('提示','没有指定导入文件!', Information!, OK! )
- RETURN -1
- END IF
- end function
- public subroutine wf_import_mtrl ();String mtrlcode ,mtrlname ,mtrlengname,ls_storagename,ls_handtype
- String ls_mtrltype ,mtrlsectype,mtrlmode,unit,dscrp,zxmtrlmode
- Long Mtrlprp,Mtrlorigin,mtrltypeid,mtrlkind,ifsafa
- Dec planprice ,ctokg ,packqty ,lspacklimit
- Dec LMsaleprice,lmbuyprice,net_weight,gross_weight,cubage
- Dec price,cost
- String prdpackcode ,barcode,ls_temp
- Long ll_mtrlid,cnt_temp
- Long ls_storageid
- string ls_storage_str
- String arg_msg
- Long i,cnt,rowcnt,rslt = 1,k,j,l,t = 0,p = 1,cur,m
- String unit_buy,unit_scll,unit_sale
- Dec rate_buy,rate_scll,rate_sale
- String stro_name[]
- String descmtrl,sptname
- String mtrlnames,mtrlmodes
- String repeats
- dw_1.AcceptText( )
- rowcnt = dw_1.RowCount( )
- IF rowcnt = 0 THEN
- MessageBox('提示','当前没有数据', Information!, OK! )
- RETURN
- END IF
- IF wf_check_mtrl(arg_msg) = 0 THEN
- MessageBox('提示',arg_msg, Information!, OK! )
- RETURN
- END IF
- Open(w_sys_wait_jdt) //初始化进度条
- w_sys_wait_jdt.Show()
- w_sys_wait_jdt.wf_accepttol(rowcnt)
- w_sys_wait_jdt.wf_inc(0.5)
- w_sys_wait_jdt.st_msg.Text = "正在导入数据..."
- FOR i = 1 TO rowcnt
- w_sys_wait_jdt.wf_inc(i)
-
-
- mtrlcode = Trim(dw_1.Object.mtrlcode[i])
- mtrlname = Trim(dw_1.Object.mtrlname[i])
- mtrlengname = Trim(dw_1.Object.mtrlengname[i])
-
- ls_handtype = Trim(dw_1.Object.mtrltype [i])
- mtrlsectype = Trim(dw_1.Object.mtrlsectype [i])
- mtrlmode = Trim(dw_1.Object.mtrlmode[i])
- zxmtrlmode = Trim(dw_1.Object.zxmtrlmode[i])
- unit = Trim(dw_1.Object.unit[i])
- net_weight = dw_1.Object.net_weight[i]
- gross_weight = dw_1.Object.gross_weight[i]
- cubage = dw_1.Object.cubage[i]
- barcode = Trim(dw_1.Object.barcode[i])
- prdpackcode = Trim(dw_1.Object.prdpackcode[i])
- packqty = dw_1.Object.packqty[i]
- unit_buy = Trim(dw_1.Object.unit_buy[i])
- rate_buy = dw_1.Object.rate_buy[i]
- unit_scll = Trim(dw_1.Object.unit_scll[i])
- rate_scll = dw_1.Object.rate_scll[i]
- unit_sale = Trim(dw_1.Object.unit_sale[i])
- rate_sale = dw_1.Object.rate_sale[i]
- dscrp = Trim(dw_1.Object.dscrp[i])
- lmbuyprice = dw_1.Object.lmbuyprice[i]
- LMsaleprice = dw_1.Object.LMsaleprice[i]
- Mtrlorigin = dw_1.Object.Mtrlorigin[i]
- ls_storagename = Trim(dw_1.Object.u_storage_storagename[i])
-
-
- //插入新记录
- ll_mtrlid = f_sys_scidentity(0,"u_Mtrldef","mtrlid",arg_msg,FALSE,sqlca)
- IF ll_mtrlid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
-
- SELECT mtrltype,mtrltypeid
- INTO :ls_mtrltype,:mtrltypeid
- FROM u_mtrltype
- Where handtype = :ls_handtype ;// and mtrlprp=:mtrlorigin;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询物料类别失败'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
-
-
-
- IF ls_storagename <> '' THEN
- IF Right(ls_storagename,1) = '/' THEN
- ELSE
- ls_storagename = ls_storagename+'/'
- END IF
- IF Pos(ls_storagename,'/') > 0 THEN
- DO WHILE Len(ls_storagename) > 0
- cur = Pos(ls_storagename,'/')
- stro_name[p] = Trim(Left(ls_storagename,cur - 1))
- p++
- ls_storagename = Trim(Right(ls_storagename,Len(ls_storagename)-cur))
- LOOP
- p = p - 1
- END IF
-
-
- ls_storage_str = ','
- FOR m = 1 TO p
-
-
- SELECT storageid
- INTO :ls_storageid
- FROM u_storage
- Where storagename = :stro_name[m];
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询仓库失败'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- INSERT INTO u_mtrl_storage
- (mtrlid,storageid)
- VALUES
- (:ll_mtrlid,:ls_storageid);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '插入仓库失败'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ls_storage_str = ls_storage_str + string(ls_storageid) + ','
- NEXT
-
- INSERT INTO u_mtrldef
- (mtrlid,mtrlcode, mtrlname, mtrlengname, mtrltype, mtrlsectype, mtrlmode, unit,
- zxmtrlmode, dscrp, packqty, prdpackcode, LMsaleprice,
- lmbuyprice, Mtrlorigin, mtrltypeid, handtype, barcode, net_weight,
- gross_weight, cubage, unit_buy,unit_scll,unit_sale,rate_buy,rate_scll,rate_sale,storagestr)
- VALUES
- (:ll_mtrlid,:mtrlcode, :mtrlname, :mtrlengname, :ls_mtrltype, :mtrlsectype, :mtrlmode, :unit,
- :zxmtrlmode, :dscrp, :packqty, :prdpackcode, :LMsaleprice,
- :lmbuyprice, :Mtrlorigin, :mtrltypeid, :ls_handtype, :barcode, :net_weight,
- :gross_weight, :cubage, :unit_buy,:unit_scll,:unit_sale,:rate_buy,:rate_scll,:rate_sale,:ls_storage_str);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '插入产品定义资料失败'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
-
- END IF
- k++
-
- NEXT
- ext:
- Close(w_sys_wait_jdt)
- IF rslt = 0 THEN
- ROLLBACK ;
- MessageBox('提示',arg_msg, Information!, OK! )
- ELSEIF rslt = 1 THEN
- COMMIT ;
- MessageBox('提示','导入定义资料成功,数据共'+String(rowcnt)+'~n成功'+String(k)+'~n重复'+String(l)+' '+repeats+'~n空白行'+String(j), Information!, OK! )
- END IF
- end subroutine
- public subroutine wf_import_spt ();string sptcode , sptname ,rep,spttype
- string tele ,tele1 ,bank ,cunt ,code ,address,dscrp
- Long ll_sptid
- String arg_msg,repeats,faxno,email
- Long i,cnt,rowcnt,rslt = 1,k,j,l
- rowcnt=dw_2.RowCount( )
- IF rowcnt= 0 THEN
- MessageBox('提示','当前没有数据', Information!, OK! )
- RETURN
- END IF
- if wf_check_spt(arg_msg)=0 then
- messagebox('提示',arg_msg, Information!, OK! )
- return
- end if
- Open(w_sys_wait_jdt) //初始化进度条
- w_sys_wait_jdt.Show()
- w_sys_wait_jdt.wf_accepttol(rowcnt)
- w_sys_wait_jdt.wf_inc(0.5)
- w_sys_wait_jdt.st_msg.Text = "正在导入数据..."
- FOR i = 1 TO rowcnt
- w_sys_wait_jdt.wf_inc(i)
-
- sptcode=trim(dw_2.object.sptcode[i])
- sptname=dw_2.object.name[i]
- rep=dw_2.object.rep[i]
- spttype=dw_2.object.spttype[i]
- tele=dw_2.object.tele[i]
- tele1=dw_2.object.tele1[i]
- bank=dw_2.object.bank[i]
- cunt=dw_2.object.cunt[i]
- code=dw_2.object.code[i]
- faxno=dw_2.object.faxno[i]
- email=dw_2.object.email[i]
- address=dw_2.object.address[i]
- dscrp=dw_2.object.dscrp[i]
-
-
- //插入新记录
- ll_sptid = f_sys_scidentity(0,"u_spt","sptid",arg_msg,FALSE,sqlca)
- IF ll_sptid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- INSERT INTO u_spt
- (sptid,sptcode, name, rep, spttype, tele, tele1, bank, cunt, code,faxno,email, address, dscrp)
- VALUES (:ll_sptid,:sptcode, :sptname, :rep, :spttype, :tele, :tele1, :bank, :cunt, :code,:faxno,:email, :address, :dscrp);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '插入供应商资料失败'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- k++
- NEXT
- ext:
- Close(w_sys_wait_jdt)
- IF rslt = 0 THEN
- ROLLBACK ;
- MessageBox('提示',arg_msg, Information!, OK! )
- ELSEIF rslt = 1 THEN
- COMMIT ;
- MessageBox('提示','导入定义资料成功,数据共'+string(rowcnt)+'~n成功'+string(k)+'~n重复'+string(l)+' '+repeats+'~n空白行'+string(j), Information!, OK! )
- END IF
- end subroutine
- public subroutine wf_import_cust ();String cuscode, cusname, rep, custype, tele, tele1, bank, cunt, code, Address
- String dscrp, faxno, cusareaname, email,areaname
- long cusareaid
- Long ll_cusid
- String freight_tele,arg_msg,repeats,freight,freight_address
- Long i,cnt,rowcnt,rslt = 1,k,j,l
- dec givebackrate
- rowcnt = dw_3.RowCount( )
- IF rowcnt = 0 THEN
- MessageBox('提示','当前没有数据', Information!, OK! )
- RETURN
- END IF
- if wf_check_cust(arg_msg)=0 then
- messagebox('',arg_msg)
- return
- end if
- Open(w_sys_wait_jdt) //初始化进度条
- w_sys_wait_jdt.Show()
- w_sys_wait_jdt.wf_accepttol(rowcnt)
- w_sys_wait_jdt.wf_inc(0.5)
- w_sys_wait_jdt.st_msg.Text = "正在导入数据..."
- FOR i = 1 TO rowcnt
- w_sys_wait_jdt.wf_inc(i)
-
- cuscode = dw_3.Object.cuscode[i]
- cusname = dw_3.Object.Name[i]
- rep = dw_3.Object.rep[i]
- custype = dw_3.Object.custype[i]
- tele = dw_3.Object.tele[i]
- tele1 = dw_3.Object.tele1[i]
- bank = dw_3.Object.bank[i]
- cunt = dw_3.Object.cunt[i]
- code = dw_3.Object.code[i]
- Address = dw_3.Object.Address[i]
- dscrp = dw_3.Object.dscrp[i]
- faxno = dw_3.Object.faxno[i]
- givebackrate = dw_3.Object.givebackrate[i]
- cusareaname = dw_3.Object.cusareaname[i]
- email = dw_3.Object.email[i]
- freight = dw_3.Object.freight[i]
- freight_tele = dw_3.Object.freight_tele[i]
- freight_address= dw_3.Object.freight_address[i]
-
-
-
-
- select areaname,cusareaid
- into :areaname,:cusareaid
- from u_cusarea
- where cusareaname=:cusareaname;
-
- //插入新记录
- ll_cusid = f_sys_scidentity(0,"u_cust","cusid",arg_msg,FALSE,sqlca)
- IF ll_cusid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- INSERT INTO u_cust
- (cusid,cuscode, name, rep, custype, tele, tele1, bank, cunt, code, address, dscrp, faxno,
- cusareaname, areaname, email,cusareaid,givebackrate,freight,freight_tele,freight_address)
- VALUES (:ll_cusid,:cuscode, :cusName, :rep, :custype, :tele, :tele1, :bank, :cunt, :code, :Address, :dscrp, :faxno,
- :cusareaname, :areaname, :email,:cusareaid,:givebackrate,:freight,:freight_tele,:freight_address);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '插入客户资料失败'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- k++
- NEXT
- ext:
- Close(w_sys_wait_jdt)
- IF rslt = 0 THEN
- ROLLBACK ;
- MessageBox('提示',arg_msg, Information!, OK! )
- ELSEIF rslt = 1 THEN
- COMMIT ;
- MessageBox('提示','导入定义资料成功,数据共'+string(rowcnt)+'~n成功'+string(k)+'~n重复'+string(l)+' '+repeats+'~n空白行'+string(j), Information!, OK! )
- END IF
- end subroutine
- on w_define.create
- int iCurrent
- call super::create
- this.tab_1=create tab_1
- this.cb_1=create cb_1
- this.cb_2=create cb_2
- this.cb_3=create cb_3
- this.cb_4=create cb_4
- this.cb_5=create cb_5
- this.cb_6=create cb_6
- this.cb_help=create cb_help
- this.ln_bar=create ln_bar
- this.ln_bar2=create ln_bar2
- this.r_bar=create r_bar
- iCurrent=UpperBound(this.Control)
- this.Control[iCurrent+1]=this.tab_1
- this.Control[iCurrent+2]=this.cb_1
- this.Control[iCurrent+3]=this.cb_2
- this.Control[iCurrent+4]=this.cb_3
- this.Control[iCurrent+5]=this.cb_4
- this.Control[iCurrent+6]=this.cb_5
- this.Control[iCurrent+7]=this.cb_6
- this.Control[iCurrent+8]=this.cb_help
- this.Control[iCurrent+9]=this.ln_bar
- this.Control[iCurrent+10]=this.ln_bar2
- this.Control[iCurrent+11]=this.r_bar
- end on
- on w_define.destroy
- call super::destroy
- destroy(this.tab_1)
- destroy(this.cb_1)
- destroy(this.cb_2)
- destroy(this.cb_3)
- destroy(this.cb_4)
- destroy(this.cb_5)
- destroy(this.cb_6)
- destroy(this.cb_help)
- destroy(this.ln_bar)
- destroy(this.ln_bar2)
- destroy(this.r_bar)
- end on
- event open;call super::open;String ls_sql
- dw_1 = tab_1.tabpage_1.dw_1
- dw_2 = tab_1.tabpage_2.dw_2
- dw_3 = tab_1.tabpage_3.dw_3
- dw_1.SetTransObject(sqlca)
- dw_2.SetTransObject(sqlca)
- dw_3.SetTransObject(sqlca)
- Long i
- Long row
- Any la_parm
- s_define_import_parm s_parm
- la_parm = Message.PowerObjectParm
- IF IsValid(la_parm) THEN
- IF ClassName(la_parm) = 's_define_import_parm' THEN
- s_parm = la_parm
-
- FOR i = 1 To UpperBound(s_parm.cust_arr)
- row = dw_3.InsertRow(0)
- dw_3.Object.cuscode[row] = s_parm.cust_arr[i].cuscode
- dw_3.Object.Name[row] = s_parm.cust_arr[i].Name
- dw_3.Object.rep[row] = s_parm.cust_arr[i].rep
- dw_3.Object.custype[row] = s_parm.cust_arr[i].custype
- dw_3.Object.cusareaname[row] = s_parm.cust_arr[i].cusareaname
- dw_3.Object.tele[row] = s_parm.cust_arr[i].tele
- dw_3.Object.tele1[row] = s_parm.cust_arr[i].tele1
- dw_3.Object.faxno[row] = s_parm.cust_arr[i].faxno
- dw_3.Object.bank[row] = s_parm.cust_arr[i].bank
- dw_3.Object.cunt[row] = s_parm.cust_arr[i].cunt
- dw_3.Object.Address[row] = s_parm.cust_arr[i].Address
- dw_3.Object.code[row] = s_parm.cust_arr[i].code
- dw_3.Object.givebackrate[row] = s_parm.cust_arr[i].givebackrate
- dw_3.Object.email[row] = s_parm.cust_arr[i].email
- dw_3.Object.dscrp[row] = s_parm.cust_arr[i].dscrp
- dw_3.Object.freight[row] = s_parm.cust_arr[i].freight
- dw_3.Object.freight_tele[row] = s_parm.cust_arr[i].freight_tele
- NEXT
-
- END IF
- END IF
- end event
- event resize;call super::resize;ln_bar.EndX = THIS.Width
- ln_bar2.EndX = THIS.Width
- r_bar.Width = THIS.Width
- Long w_width,w_height
- w_width = 3600
- w_height = 2300
- IF newwidth < w_width THEN THIS.Width = w_width
- IF newheight < w_height THEN THIS.Height = w_height
- tab_1.Width = THIS.Width - (w_width - 3525)
- tab_1.Height = THIS.Height - (w_height - 1952)
- dw_1.Width = THIS.Width - (w_width - 3474)
- dw_1.Height = THIS.Height - (w_height - 1824)
- dw_2.Width = THIS.Width - (w_width - 3474)
- dw_2.Height = THIS.Height - (w_height - 1824)
- dw_3.Width = THIS.Width - (w_width - 3474)
- dw_3.Height = THIS.Height - (w_height - 1824)
- end event
- type cb_func from w_publ_base`cb_func within w_define
- boolean visible = false
- integer x = 2011
- integer taborder = 30
- end type
- type cb_exit from w_publ_base`cb_exit within w_define
- integer x = 1513
- integer width = 151
- integer height = 164
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- type tab_1 from tab within w_define
- integer y = 188
- integer width = 3525
- integer height = 1952
- integer taborder = 20
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long backcolor = 134217739
- boolean raggedright = true
- boolean focusonbuttondown = true
- integer selectedtab = 1
- tabpage_1 tabpage_1
- tabpage_2 tabpage_2
- tabpage_3 tabpage_3
- end type
- on tab_1.create
- this.tabpage_1=create tabpage_1
- this.tabpage_2=create tabpage_2
- this.tabpage_3=create tabpage_3
- this.Control[]={this.tabpage_1,&
- this.tabpage_2,&
- this.tabpage_3}
- end on
- on tab_1.destroy
- destroy(this.tabpage_1)
- destroy(this.tabpage_2)
- destroy(this.tabpage_3)
- end on
- type tabpage_1 from userobject within tab_1
- integer x = 18
- integer y = 112
- integer width = 3488
- integer height = 1824
- long backcolor = 134217739
- string text = "物料产品"
- long tabtextcolor = 33554432
- long tabbackcolor = 134217739
- string picturename = "CheckDiff!"
- long picturemaskcolor = 536870912
- dw_1 dw_1
- end type
- on tabpage_1.create
- this.dw_1=create dw_1
- this.Control[]={this.dw_1}
- end on
- on tabpage_1.destroy
- destroy(this.dw_1)
- end on
- type dw_1 from u_dw_rbtnfilter within tabpage_1
- integer width = 3474
- integer height = 1824
- integer taborder = 20
- string dataobject = "dw_define_mtrl"
- boolean hscrollbar = true
- boolean vscrollbar = true
- boolean hsplitscroll = true
- end type
- event constructor;call super::constructor;//wf_lock_uc
- Int LS_INT,uc_column_int
- Long ls_row
- uc_column_int = Long(THIS.Describe("DataWindow.Column.Count"))
-
- FOR LS_INT = 1 TO uc_column_int
- THIS.SetTabOrder (LS_INT,LS_INT*10 )
- NEXT
- end event
- event rowfocuschanged;call super::rowfocuschanged;//IF dw_edit_mode THEN RETURN
- IF currentrow <= 0 THEN RETURN
- THIS.SelectRow(0,FALSE)
- THIS.SelectRow(currentrow,TRUE)
- datawindowchild dw_child
- Integer rtncode,mtrlorigin
- dw_1.AcceptText()
- if dw_1.getrow()>0 then
- rtncode = dw_1.GetChild('mtrltype',dw_child)
- mtrlorigin = dw_1.Object.mtrlorigin[dw_1.getrow()]
- IF mtrlorigin >= 0 THEN
- dw_child.SetTransObject(Sqlca)
- dw_child.SetFilter('mtrlprp='+String(mtrlorigin))
- dw_child.Filter()
- END IF
- end if
- end event
- event dwnkey;If key = KeyEnter! Then //
- keybd_event ( 9, 0, 0 , 0 ) // 按下tab
- keybd_event ( 9, 0, 2, 0 ) // 释放tab
- return 1
- end if
- end event
- event itemchanged;call super::itemchanged;datawindowchild dw_child
- integer rtncode,mtrlorigin
- dw_1.accepttext()
- rtncode=dw_1.getchild('mtrltype',dw_child)
- mtrlorigin=dw_1.object.mtrlorigin[row]
- dw_child.settransobject(Sqlca)
- dw_child.setfilter('mtrlprp='+string(mtrlorigin))
- dw_child.filter()
- end event
- event clicked;call super::clicked;s_inputbox s_parm
- string ls_return
- long ll_row
- if dwo.Name = 't_mod_mtrlorigin' then // 来源
- open(w_mtrlorigin_ch)
- s_mtrlorigin rls_mtrlorigin
- rls_mtrlorigin = message.powerobjectparm
- if rls_mtrlorigin.mtrloriginid = -1 then return
- for ll_row = 1 to this.rowcount( )
- this.object.mtrlorigin[ll_row] = rls_mtrlorigin.mtrloriginid
- next
-
- elseif dwo.Name = 't_mod_mtrltype' then // 类别
- open(w_mtrltype_ch)
- s_mtrltype s_mtrltype_rst
- s_mtrltype_rst = message.powerobjectparm
- if s_mtrltype_rst.mtrltypeid <= 0 then return
- for ll_row = 1 to this.rowcount( )
- this.object.mtrltype[ll_row] = s_mtrltype_rst.handtype
- next
-
-
-
- elseif dwo.Name = 't_mod_mtrlmode' then // 规格
- s_parm.title = '规格'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.mtrlmode[ll_row] = ls_return
- next
-
-
- elseif dwo.Name = 't_mod_unit' then // 库存单位
- s_parm.title = '库存单位'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.unit[ll_row] = ls_return
- next
- elseif dwo.Name = 't_mod_mtrlsectype' then // 自定义1
- s_parm.title = '自定义1'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.mtrlsectype[ll_row] = ls_return
- next
- elseif dwo.Name = 't_mod_zxmtrlmode' then // 自定义2
- s_parm.title = '自定义2'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.zxmtrlmode[ll_row] = ls_return
- next
- elseif dwo.Name = 't_mod_prdpackcode' then // 包装单位
- s_parm.title = '包装单位'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.prdpackcode[ll_row] = ls_return
- next
- elseif dwo.Name = 't_mod_packqty' then // 包装件数
- s_parm.title = '包装件数'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.packqty[ll_row] = dec(ls_return)
- next
- elseif dwo.Name = 't_mod_u_storage_storagename' then // 仓库
- s_parm.title = '仓库'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.u_storage_storagename[ll_row] = ls_return
- next
-
- elseif dwo.Name = 't_mod_dscrp' then // 备注
- s_parm.title = '备注'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.dscrp[ll_row] = ls_return
- next
- end if
- end event
- type tabpage_2 from userobject within tab_1
- integer x = 18
- integer y = 112
- integer width = 3488
- integer height = 1824
- long backcolor = 134217739
- string text = "供应商"
- long tabtextcolor = 33554432
- long tabbackcolor = 134217739
- string picturename = "Custom081!"
- long picturemaskcolor = 536870912
- dw_2 dw_2
- end type
- on tabpage_2.create
- this.dw_2=create dw_2
- this.Control[]={this.dw_2}
- end on
- on tabpage_2.destroy
- destroy(this.dw_2)
- end on
- type dw_2 from u_dw_rbtnfilter within tabpage_2
- integer width = 3474
- integer height = 1824
- integer taborder = 20
- string dataobject = "dw_define_spt"
- boolean hscrollbar = true
- boolean vscrollbar = true
- boolean hsplitscroll = true
- end type
- event constructor;//wf_lock_uc
- Int LS_INT,uc_column_int
- Long ls_row
- uc_column_int = Long(THIS.Describe("DataWindow.Column.Count"))
- FOR LS_INT = 1 TO uc_column_int
- THIS.SetTabOrder (LS_INT,LS_INT*10 )
- NEXT
- end event
- event dwnkey;If key = KeyEnter! Then //
- keybd_event ( 9, 0, 0 , 0 ) // 按下tab
- keybd_event ( 9, 0, 2, 0 ) // 释放tab
- return 1
- end if
- end event
- event rowfocuschanged;call super::rowfocuschanged;//IF dw_edit_mode THEN RETURN
- IF currentrow <=0 THEN RETURN
- this.selectrow(0,false)
- this.selectrow(currentrow,true)
- end event
- event clicked;call super::clicked;s_inputbox s_parm
- string ls_return
- long ll_row
- if dwo.Name = 't_mod_spttype' then // 类别
- s_parm.title = '类别'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.spttype[ll_row] = ls_return
- next
- elseif dwo.Name = 't_mod_dscrp' then // 备注
- s_parm.title = '备注'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.dscrp[ll_row] = ls_return
- next
- end if
- end event
- type tabpage_3 from userobject within tab_1
- integer x = 18
- integer y = 112
- integer width = 3488
- integer height = 1824
- long backcolor = 134217739
- string text = "客户"
- long tabtextcolor = 33554432
- long tabbackcolor = 134217739
- string picturename = "ComputeToday!"
- long picturemaskcolor = 536870912
- dw_3 dw_3
- end type
- on tabpage_3.create
- this.dw_3=create dw_3
- this.Control[]={this.dw_3}
- end on
- on tabpage_3.destroy
- destroy(this.dw_3)
- end on
- type dw_3 from u_dw_rbtnfilter within tabpage_3
- integer width = 3474
- integer height = 1824
- integer taborder = 20
- string dataobject = "dw_define_cust"
- boolean hscrollbar = true
- boolean vscrollbar = true
- boolean hsplitscroll = true
- end type
- event constructor;//wf_lock_uc
- Int LS_INT,uc_column_int
- Long ls_row
- uc_column_int = Long(THIS.Describe("DataWindow.Column.Count"))
- FOR LS_INT = 1 TO uc_column_int
- THIS.SetTabOrder (LS_INT,LS_INT*10 )
- NEXT
- end event
- event dwnkey;If key = KeyEnter! Then //
- keybd_event ( 9, 0, 0 , 0 ) // 按下tab
- keybd_event ( 9, 0, 2, 0 ) // 释放tab
- return 1
- end if
- end event
- event rowfocuschanged;call super::rowfocuschanged;//IF dw_edit_mode THEN RETURN
- IF currentrow <=0 THEN RETURN
- this.selectrow(0,false)
- this.selectrow(currentrow,true)
- end event
- event clicked;call super::clicked;s_inputbox s_parm
- string ls_return
- long ll_row
- if dwo.Name = 't_mod_custype' then // 业务员
- s_parm.title = '业务员'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.custype[ll_row] = ls_return
- next
- elseif dwo.Name = 't_mod_cusareaname' then // 区域
- s_parm.title = '区域'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.cusareaname[ll_row] = ls_return
- next
- elseif dwo.Name = 't_mod_givebackrate' then // 返利率
- s_parm.title = '返利率'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.givebackrate[ll_row] = dec(ls_return)
- next
- elseif dwo.Name = 't_mod_dscrp' then // 备注
- s_parm.title = '备注'
- s_parm.old_text = ''
- openwithparm(w_inputbox, s_parm)
- ls_return = message.stringparm
- if trim(ls_return) = '' then return
- for ll_row = 1 to this.rowcount( )
- this.object.dscrp[ll_row] = ls_return
- next
- end if
- end event
- type cb_1 from uo_imflatbutton within w_define
- integer width = 265
- integer height = 164
- integer taborder = 20
- boolean bringtotop = true
- string text = "打开文件"
- string normalpicname = "open.bmp"
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- event clicked;call super::clicked;CHOOSE CASE tab_1.SelectedTab
- CASE 1
- wf_openfile(dw_1)
- CASE 2
- wf_openfile(dw_2)
- CASE 3
- wf_openfile(dw_3)
- END CHOOSE
- end event
- type cb_2 from uo_imflatbutton within w_define
- integer x = 265
- integer width = 265
- integer height = 164
- integer taborder = 10
- boolean bringtotop = true
- string text = "保存文件"
- string normalpicname = "save.bmp"
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- event clicked;call super::clicked;CHOOSE CASE tab_1.SelectedTab
- CASE 1
- wf_savefile(dw_1)
- CASE 2
- wf_savefile(dw_2)
- CASE 3
- wf_savefile(dw_3)
- END CHOOSE
- end event
- type cb_3 from uo_imflatbutton within w_define
- integer x = 530
- integer width = 151
- integer height = 164
- integer taborder = 40
- boolean bringtotop = true
- string text = "增行"
- string normalpicname = "mx1.bmp"
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- event clicked;call super::clicked;choose case tab_1.selectedtab
- case 1
- wf_insertrow(dw_1)
- case 2
- wf_insertrow(dw_2)
- case 3
- wf_insertrow(dw_3)
- end choose
- end event
- type cb_4 from uo_imflatbutton within w_define
- integer x = 681
- integer width = 151
- integer height = 164
- integer taborder = 40
- boolean bringtotop = true
- string text = "删行"
- string normalpicname = "mx2.bmp"
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- event clicked;call super::clicked;CHOOSE CASE tab_1.SelectedTab
- CASE 1
- wf_delrow(dw_1)
- CASE 2
- wf_delrow(dw_2)
- CASE 3
- wf_delrow(dw_3)
- END CHOOSE
- end event
- type cb_5 from uo_imflatbutton within w_define
- integer x = 832
- integer width = 265
- integer height = 164
- integer taborder = 50
- boolean bringtotop = true
- string text = "检查数据"
- string normalpicname = "update2.bmp"
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- event clicked;call super::clicked;String arg_msg
- CHOOSE CASE tab_1.SelectedTab
- CASE 1
- IF wf_check_mtrl(arg_msg) = 0 THEN
- MessageBox('提示',arg_msg, Information!, OK! )
- END IF
- CASE 2
- IF wf_check_spt(arg_msg) = 0 THEN
- MessageBox('提示',arg_msg, Information!, OK! )
- END IF
- CASE 3
- IF wf_check_cust(arg_msg) = 0 THEN
- MessageBox('提示',arg_msg, Information!, OK! )
- END IF
- END CHOOSE
- end event
- type cb_6 from uo_imflatbutton within w_define
- integer x = 1097
- integer width = 265
- integer height = 164
- integer taborder = 60
- boolean bringtotop = true
- string text = "导入数据"
- string normalpicname = "update.bmp"
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- event clicked;call super::clicked;choose case tab_1.selectedtab
- case 1
- wf_import_mtrl()
- case 2
- wf_import_spt()
- case 3
- wf_import_cust()
- end choose
- end event
- type cb_help from uo_imflatbutton within w_define
- string tag = "帮助[F1]"
- integer x = 1362
- integer width = 151
- integer height = 164
- integer taborder = 20
- boolean bringtotop = true
- string text = "帮助"
- string normalpicname = "help.bmp"
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- event clicked;call super::clicked;PARENT.TriggerEvent('ue_help')
- end event
- type ln_bar from line within w_define
- long linecolor = 268435456
- integer linethickness = 4
- integer beginy = 172
- integer endx = 3323
- integer endy = 172
- end type
- type ln_bar2 from line within w_define
- long linecolor = 16777215
- integer linethickness = 4
- integer beginy = 176
- integer endx = 3323
- integer endy = 176
- end type
- type r_bar from rectangle within w_define
- long linecolor = 16777215
- long fillcolor = 1073741824
- integer x = 2747
- integer width = 73
- integer height = 172
- end type
- event constructor;this.fillcolor = 14215660
- this.linecolor = 14215660
- this.x = -1
- this.y = -1
- this.height = ln_bar2.beginy - 5
- end event
|