$PBExportHeader$w_gz_wage_mx0_edit.srw forward global type w_gz_wage_mx0_edit from w_publ_base end type type em_mth from editmask within w_gz_wage_mx0_edit end type type st_421 from statictext within w_gz_wage_mx0_edit end type type cb_retrieve from uo_imflatbutton within w_gz_wage_mx0_edit end type type cb_wage_edit from uo_imflatbutton within w_gz_wage_mx0_edit end type type cb_cancel from uo_imflatbutton within w_gz_wage_mx0_edit end type type ddlb_scid from uo_ddlb_scid within w_gz_wage_mx0_edit end type type cb_2 from uo_imflatbutton within w_gz_wage_mx0_edit end type type tv_1 from uo_tv_deptype within w_gz_wage_mx0_edit end type type dw_wage from u_dw_rbtnfilter within w_gz_wage_mx0_edit end type type ddlb_wageitem from dropdownlistbox within w_gz_wage_mx0_edit end type type rb_1 from radiobutton within w_gz_wage_mx0_edit end type type rb_2 from radiobutton within w_gz_wage_mx0_edit end type type cb_copybasepay from uo_imflatbutton within w_gz_wage_mx0_edit end type type cb_1 from uo_imflatbutton within w_gz_wage_mx0_edit end type type gb_1 from groupbox within w_gz_wage_mx0_edit end type type ln_bar from line within w_gz_wage_mx0_edit end type type ln_bar2 from line within w_gz_wage_mx0_edit end type type r_bar from rectangle within w_gz_wage_mx0_edit end type end forward global type w_gz_wage_mx0_edit from w_publ_base integer x = 59 integer y = 32 integer width = 3611 integer height = 2380 string title = "[每月直接录入]工资项目数据录入" boolean maxbox = true windowstate windowstate = maximized! em_mth em_mth st_421 st_421 cb_retrieve cb_retrieve cb_wage_edit cb_wage_edit cb_cancel cb_cancel ddlb_scid ddlb_scid cb_2 cb_2 tv_1 tv_1 dw_wage dw_wage ddlb_wageitem ddlb_wageitem rb_1 rb_1 rb_2 rb_2 cb_copybasepay cb_copybasepay cb_1 cb_1 gb_1 gb_1 ln_bar ln_bar ln_bar2 ln_bar2 r_bar r_bar end type global w_gz_wage_mx0_edit w_gz_wage_mx0_edit type variables Long cur_0_wageid String ls_handtype = '' Long cur_scid Long cur_scid_arr[] Long cur_wageid[] Int cur_temp_wagecount String cur_column_string[] Int cur_column_style = 0 //0 纵向列表 1 横向列表 end variables forward prototypes public function integer wf_retreve () public function integer wf_refresh_face () public subroutine wf_find_tvchild (long arg_handl, long arg_deptid) public subroutine wf_find_tvnext (long arg_handl, long arg_deptid) public subroutine wf_setopen (long arg_deptid, long arg_scid) public function integer wf_save (ref string arg_msg, boolean ifcommit) public function integer wf_retrieve_wagemx () public function long wf_getwageid (string arg_wagename) public function integer wf_columnstyle () public function integer wf_copybasepay (ref string arg_msg) public function integer wf_retrieve_wagemx_1 () end prototypes public function integer wf_retreve ();//wf_retreve Long ll_wagemth ll_wagemth = Long(em_mth.Text) IF cur_column_style = 0 THEN dw_wage.SetTransObject(sqlca) dw_wage.Retrieve(Long(em_mth.Text),wf_getwageid(ddlb_wageitem.Text),cur_scid_arr,ls_handtype) dw_wage.Object.u_gz_wagemx_wageamt_t.Text = ddlb_wageitem.Text ELSE dw_wage.setredraw(false) dw_wage.SetTransObject(sqlca) dw_wage.Retrieve(ll_wagemth,cur_scid_arr,ls_handtype) String ls_wageitem = '' Long ls_wageid Int ls_j = 1 DO WHILE ls_j <= 20 dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+"_t.visible=true") dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+".visible=true") ls_j++ LOOP DECLARE wageitem_cur CURSOR FOR SELECT DISTINCT u_gz_wageitem.Wagename, u_gz_wageitem.wageid FROM u_gz_wagemx INNER JOIN u_gz_wageitem ON u_gz_wagemx.wageid = u_gz_wageitem.wageid WHERE (u_gz_wageitem.useflag = 1) AND (u_gz_wageitem.wagemode = 0) & AND (u_gz_wagemx.wagemth = :ll_wagemth) Order By u_gz_wageitem.wageid; OPEN wageitem_cur; ls_j = 1 FETCH wageitem_cur INTO :ls_wageitem,:ls_wageid; DO WHILE sqlca.SQLCode = 0 cur_wageid[ls_j] = ls_wageid cur_column_string[ls_j] = "u_gz_wage_wage"+String(ls_j) dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+"_t.Text='"+ls_wageitem+"'") FETCH wageitem_cur INTO :ls_wageitem,:ls_wageid; ls_j++ LOOP CLOSE wageitem_cur; cur_temp_wagecount = ls_j - 1 DO WHILE ls_j <= 20 dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+"_t.visible=false") dw_wage.Modify("u_gz_wage_wage"+String(ls_j)+".visible=false") ls_j++ LOOP String arg_msg = '' IF wf_retrieve_wagemx() = 0 THEN MessageBox('提示',arg_msg, Information!, OK! ) RETURN 0 END IF dw_wage.setredraw(true) END IF RETURN 0 end function public function integer wf_refresh_face ();//wf_refresh_face Int ls_i cb_func.Enabled = NOT dw_edit_mode ddlb_scid.Enabled = NOT dw_edit_mode rb_1.Enabled = NOT dw_edit_mode rb_2.Enabled = NOT dw_edit_mode ddlb_wageitem.Enabled = NOT dw_edit_mode cb_copybasepay.Enabled = dw_edit_mode IF dw_edit_mode THEN cb_cancel.Enabled = TRUE cb_wage_edit.Text = '保存' cb_wage_edit.normalpicname = 'Save.bmp' em_mth.Enabled = FALSE cb_retrieve.Enabled = FALSE IF cur_column_style = 0 THEN dw_wage.SetTabOrder(1,10) ELSE ls_i = 1 DO WHILE ls_i <= 20 dw_wage.SetTabOrder("u_gz_wage_wage"+String(ls_i),10*ls_i) ls_i++ LOOP END IF ELSE cb_cancel.Enabled = FALSE cb_wage_edit.Text = '修改' cb_wage_edit.normalpicname = 'open.bmp' em_mth.Enabled = TRUE cb_retrieve.Enabled = TRUE IF dw_wage.RowCount() > 0 THEN IF dw_wage.Object.u_gz_wage_auditingflag[1] = 0 THEN cb_wage_edit.Enabled = TRUE ELSE cb_wage_edit.Enabled = FALSE END IF ELSE cb_wage_edit.Enabled = TRUE END IF IF cur_column_style = 0 THEN dw_wage.SetTabOrder(1,0) ELSE ls_i = 1 DO WHILE ls_i <= 20 dw_wage.SetTabOrder("u_gz_wage_wage"+String(ls_i),0) ls_i++ LOOP END IF END IF cb_wage_edit.of_init_draw() cb_wage_edit.of_paint() cb_wage_edit.TriggerEvent('ue_textchange') RETURN 0 end function public subroutine wf_find_tvchild (long arg_handl, long arg_deptid);Long ll_handl Long ll_deptid treeviewitem tvi ll_handl = arg_handl ll_handl = tv_1.FindItem(ChildTreeItem!,ll_handl) DO WHILE ll_handl > 0 tv_1.GetItem(ll_handl,tvi) ll_deptid = tvi.Data IF ll_deptid = arg_deptid THEN tv_1.SelectItem (ll_handl) RETURN END IF wf_find_tvnext(ll_handl,arg_deptid) ll_handl = tv_1.FindItem(ChildTreeItem!,ll_handl) LOOP end subroutine public subroutine wf_find_tvnext (long arg_handl, long arg_deptid);Long ll_handl Long ll_deptid treeviewitem tvi ll_handl = arg_handl ll_handl = tv_1.FindItem(NextTreeItem!,ll_handl) DO WHILE ll_handl > 0 tv_1.GetItem(ll_handl,tvi) ll_deptid = tvi.Data IF ll_deptid = arg_deptid THEN tv_1.SelectItem ( ll_handl ) RETURN END IF wf_find_tvchild(ll_handl,arg_deptid) ll_handl = tv_1.FindItem(NextTreeItem!,ll_handl) LOOP end subroutine public subroutine wf_setopen (long arg_deptid, long arg_scid);//tv Long ll_handl ll_handl = tv_1.FindItem(RootTreeItem!,0) IF ll_handl > 0 THEN wf_find_tvchild(ll_handl,arg_deptid) //ddlb String ls_scname Int li_spacenum String ls_space String ls_name Long ll_finditem IF arg_scid = -1 THEN ls_name = '[全部]' ELSE SELECT scname INTO :ls_scname FROM u_scdef Where scid = :arg_scid; IF sqlca.SQLCode <> 0 OR IsNull(ls_scname) THEN ls_scname = '' li_spacenum = 50 - Len(Trim(ls_scname)) - 2 - Len(String(arg_scid)) ls_space = Fill(' ',li_spacenum) ls_name = ls_scname+ls_space+'['+String(arg_scid)+']' END IF ll_finditem = ddlb_scid.FindItem(ls_name,0) IF ll_finditem > 0 THEN ddlb_scid.SelectItem ( ls_name, ll_finditem ) END IF end subroutine public function integer wf_save (ref string arg_msg, boolean ifcommit);int ls_rowcount,ls_j,ls_k,rslt=1 long ll_empid,ll_wagemth,ll_wageid decimal ld_temp_amt long ll_flag dw_wage.accepttext() ls_rowcount=dw_wage.rowcount() for ls_j=1 to ls_rowcount ll_flag=dw_wage.object.u_gz_wage_auditingflag[ls_j] if ll_flag=1 then rslt=0 arg_msg='工资项已经审核,在第'+string(ls_j)+'行' goto ext end if ll_wagemth=dw_wage.object.u_gz_wage_wagemth[ls_j] ll_empid=dw_wage.object.u_gz_wage_empid[ls_j] for ls_k=1 to cur_temp_wagecount ll_wageid= cur_wageid[ls_k] choose case ls_k case 1 ld_temp_amt=dw_wage.object.u_gz_wage_wage1[ls_j] case 2 ld_temp_amt=dw_wage.object.u_gz_wage_wage2[ls_j] case 3 ld_temp_amt=dw_wage.object.u_gz_wage_wage3[ls_j] case 4 ld_temp_amt=dw_wage.object.u_gz_wage_wage4[ls_j] case 5 ld_temp_amt=dw_wage.object.u_gz_wage_wage5[ls_j] case 6 ld_temp_amt=dw_wage.object.u_gz_wage_wage6[ls_j] case 7 ld_temp_amt=dw_wage.object.u_gz_wage_wage7[ls_j] case 8 ld_temp_amt=dw_wage.object.u_gz_wage_wage8[ls_j] case 9 ld_temp_amt=dw_wage.object.u_gz_wage_wage9[ls_j] case 10 ld_temp_amt=dw_wage.object.u_gz_wage_wage10[ls_j] case 11 ld_temp_amt=dw_wage.object.u_gz_wage_wage11[ls_j] case 12 ld_temp_amt=dw_wage.object.u_gz_wage_wage12[ls_j] case 13 ld_temp_amt=dw_wage.object.u_gz_wage_wage13[ls_j] case 14 ld_temp_amt=dw_wage.object.u_gz_wage_wage14[ls_j] case 15 ld_temp_amt=dw_wage.object.u_gz_wage_wage15[ls_j] case 16 ld_temp_amt=dw_wage.object.u_gz_wage_wage16[ls_j] case 17 ld_temp_amt=dw_wage.object.u_gz_wage_wage17[ls_j] case 18 ld_temp_amt=dw_wage.object.u_gz_wage_wage18[ls_j] case 19 ld_temp_amt=dw_wage.object.u_gz_wage_wage19[ls_j] case 20 ld_temp_amt=dw_wage.object.u_gz_wage_wage20[ls_j] end choose update u_gz_wagemx set u_gz_wagemx.wageamt=:ld_temp_amt where u_gz_wagemx.empid=:ll_empid and u_gz_wagemx.wageid=:ll_wageid & and u_gz_wagemx.wagemth=:ll_wagemth; if sqlca.sqlcode<>0 then rslt=0 arg_msg='更新工资失败,在第'+string(ls_j)+'行,第'+string(ls_k)+'列工资项目' goto ext end if next next dw_wage.accepttext() ext: if rslt=1 and ifcommit then commit; else rollback; end if return rslt end function public function integer wf_retrieve_wagemx ();Int ls_rowcount,ls_j,ls_k,rslt = 1 Long ll_empid,ll_wagemth,ll_wageid Decimal ld_temp_amt ls_rowcount = dw_wage.RowCount() FOR ls_j = 1 TO ls_rowcount ll_wagemth = dw_wage.Object.u_gz_wage_wagemth[ls_j] ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j] FOR ls_k = 1 TO cur_temp_wagecount ll_wageid = cur_wageid[ls_k] SELECT wageamt INTO :ld_temp_amt FROM u_gz_wagemx WHERE u_gz_wagemx.wageid = :ll_wageid AND & u_gz_wagemx.empid = :ll_empid AND & u_gz_wagemx.wagemth = :ll_wagemth ; IF sqlca.SQLCode <> 0 THEN ld_temp_amt = 0 END IF CHOOSE CASE ls_k CASE 1 dw_wage.Object.u_gz_wage_wage1[ls_j] = ld_temp_amt CASE 2 dw_wage.Object.u_gz_wage_wage2[ls_j] = ld_temp_amt CASE 3 dw_wage.Object.u_gz_wage_wage3[ls_j] = ld_temp_amt CASE 4 dw_wage.Object.u_gz_wage_wage4[ls_j] = ld_temp_amt CASE 5 dw_wage.Object.u_gz_wage_wage5[ls_j] = ld_temp_amt CASE 6 dw_wage.Object.u_gz_wage_wage6[ls_j] = ld_temp_amt CASE 7 dw_wage.Object.u_gz_wage_wage7[ls_j] = ld_temp_amt CASE 8 dw_wage.Object.u_gz_wage_wage8[ls_j] = ld_temp_amt CASE 9 dw_wage.Object.u_gz_wage_wage9[ls_j] = ld_temp_amt CASE 10 dw_wage.Object.u_gz_wage_wage10[ls_j] = ld_temp_amt CASE 11 dw_wage.Object.u_gz_wage_wage11[ls_j] = ld_temp_amt CASE 12 dw_wage.Object.u_gz_wage_wage12[ls_j] = ld_temp_amt CASE 13 dw_wage.Object.u_gz_wage_wage13[ls_j] = ld_temp_amt CASE 14 dw_wage.Object.u_gz_wage_wage14[ls_j] = ld_temp_amt CASE 15 dw_wage.Object.u_gz_wage_wage15[ls_j] = ld_temp_amt CASE 16 dw_wage.Object.u_gz_wage_wage16[ls_j] = ld_temp_amt CASE 17 dw_wage.Object.u_gz_wage_wage17[ls_j] = ld_temp_amt CASE 18 dw_wage.Object.u_gz_wage_wage18[ls_j] = ld_temp_amt CASE 19 dw_wage.Object.u_gz_wage_wage19[ls_j] = ld_temp_amt CASE 20 dw_wage.Object.u_gz_wage_wage20[ls_j] = ld_temp_amt END CHOOSE NEXT NEXT dw_wage.AcceptText() RETURN rslt end function public function long wf_getwageid (string arg_wagename);//wf_getwageid(arg_wagename) string ls_name long ls_wageid=0 ls_name=ddlb_wageitem.text SELECT u_gz_wageitem.wageid INTO :ls_wageid FROM u_gz_wageitem WHERE u_gz_wageitem.Wagename = :ls_name ; return ls_wageid end function public function integer wf_columnstyle (); if cur_column_style = 0 then ddlb_wageitem.enabled=true dw_wage.dataobject='dw_mthwage_mx0_edit' else ddlb_wageitem.enabled=false dw_wage.dataobject='dw_mthwage_mx0_edit_1' end if return 0 end function public function integer wf_copybasepay (ref string arg_msg);Int ls_rowcount,ls_j,ls_k,rslt = 1 Long ll_empid,ll_wagemth,ll_wageid Decimal ld_temp_amt ls_rowcount = dw_wage.RowCount() dw_wage.SetRedraw(FALSE) IF cur_column_style = 0 THEN IF ddlb_wageitem.Text <> "基本工资" THEN arg_msg = '工资项目名称不是"基本工资",不能导入基本工资' rslt = 0 GOTO ext END IF // ll_wageid = wf_getwageid(ddlb_wageitem.Text) FOR ls_j = 1 TO ls_rowcount // ll_wagemth = dw_wage.Object.u_gz_wage_wagemth[ls_j] -1 ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j] SELECT BasePay INTO :ld_temp_amt FROM U_BasePay Where U_BasePay.EmpId = :ll_empid ; IF sqlca.SQLCode <> 0 THEN ld_temp_amt = 0 END IF dw_wage.Object.u_gz_wagemx_wageamt[ls_j] = ld_temp_amt NEXT ELSE FOR ls_j = 1 TO ls_rowcount ll_wagemth = dw_wage.Object.u_gz_wage_wagemth[ls_j] -1 ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j] FOR ls_k = 1 TO cur_temp_wagecount ll_wageid = cur_wageid[ls_k] IF ll_wageid <> wf_getwageid("基本工资") THEN CONTINUE ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j] SELECT BasePay INTO :ld_temp_amt FROM U_BasePay Where U_BasePay.EmpId = :ll_empid ; IF sqlca.SQLCode <> 0 THEN ld_temp_amt = 0 END IF CHOOSE CASE ls_k CASE 1 dw_wage.Object.u_gz_wage_wage1[ls_j] = ld_temp_amt CASE 2 dw_wage.Object.u_gz_wage_wage2[ls_j] = ld_temp_amt CASE 3 dw_wage.Object.u_gz_wage_wage3[ls_j] = ld_temp_amt CASE 4 dw_wage.Object.u_gz_wage_wage4[ls_j] = ld_temp_amt CASE 5 dw_wage.Object.u_gz_wage_wage5[ls_j] = ld_temp_amt CASE 6 dw_wage.Object.u_gz_wage_wage6[ls_j] = ld_temp_amt CASE 7 dw_wage.Object.u_gz_wage_wage7[ls_j] = ld_temp_amt CASE 8 dw_wage.Object.u_gz_wage_wage8[ls_j] = ld_temp_amt CASE 9 dw_wage.Object.u_gz_wage_wage9[ls_j] = ld_temp_amt CASE 10 dw_wage.Object.u_gz_wage_wage10[ls_j] = ld_temp_amt CASE 11 dw_wage.Object.u_gz_wage_wage11[ls_j] = ld_temp_amt CASE 12 dw_wage.Object.u_gz_wage_wage12[ls_j] = ld_temp_amt CASE 13 dw_wage.Object.u_gz_wage_wage13[ls_j] = ld_temp_amt CASE 14 dw_wage.Object.u_gz_wage_wage14[ls_j] = ld_temp_amt CASE 15 dw_wage.Object.u_gz_wage_wage15[ls_j] = ld_temp_amt CASE 16 dw_wage.Object.u_gz_wage_wage16[ls_j] = ld_temp_amt CASE 17 dw_wage.Object.u_gz_wage_wage17[ls_j] = ld_temp_amt CASE 18 dw_wage.Object.u_gz_wage_wage18[ls_j] = ld_temp_amt CASE 19 dw_wage.Object.u_gz_wage_wage19[ls_j] = ld_temp_amt CASE 20 dw_wage.Object.u_gz_wage_wage20[ls_j] = ld_temp_amt END CHOOSE NEXT NEXT END IF ext: dw_wage.AcceptText() dw_wage.SetRedraw(TRUE) RETURN rslt end function public function integer wf_retrieve_wagemx_1 ();Int ls_rowcount,ls_j,ls_k,rslt = 1 Long ll_empid,ll_wagemth,ll_wagemth1,ll_wageid Decimal ld_temp_amt ls_rowcount = dw_wage.RowCount() FOR ls_j = 1 TO ls_rowcount ll_wagemth = dw_wage.Object.u_gz_wage_wagemth[ls_j] ll_wagemth1 = f_mth(ll_wagemth) ll_empid = dw_wage.Object.u_gz_wage_empid[ls_j] FOR ls_k = 1 TO cur_temp_wagecount ll_wageid = cur_wageid[ls_k] SELECT wageamt INTO :ld_temp_amt FROM u_gz_wagemx WHERE u_gz_wagemx.wageid = :ll_wageid AND & u_gz_wagemx.empid = :ll_empid AND & u_gz_wagemx.wagemth = :ll_wagemth1 ; IF sqlca.SQLCode <> 0 THEN ld_temp_amt = 0 END IF CHOOSE CASE ls_k CASE 1 dw_wage.Object.u_gz_wage_wage1[ls_j] = ld_temp_amt CASE 2 dw_wage.Object.u_gz_wage_wage2[ls_j] = ld_temp_amt CASE 3 dw_wage.Object.u_gz_wage_wage3[ls_j] = ld_temp_amt CASE 4 dw_wage.Object.u_gz_wage_wage4[ls_j] = ld_temp_amt CASE 5 dw_wage.Object.u_gz_wage_wage5[ls_j] = ld_temp_amt CASE 6 dw_wage.Object.u_gz_wage_wage6[ls_j] = ld_temp_amt CASE 7 dw_wage.Object.u_gz_wage_wage7[ls_j] = ld_temp_amt CASE 8 dw_wage.Object.u_gz_wage_wage8[ls_j] = ld_temp_amt CASE 9 dw_wage.Object.u_gz_wage_wage9[ls_j] = ld_temp_amt CASE 10 dw_wage.Object.u_gz_wage_wage10[ls_j] = ld_temp_amt CASE 11 dw_wage.Object.u_gz_wage_wage11[ls_j] = ld_temp_amt CASE 12 dw_wage.Object.u_gz_wage_wage12[ls_j] = ld_temp_amt CASE 13 dw_wage.Object.u_gz_wage_wage13[ls_j] = ld_temp_amt CASE 14 dw_wage.Object.u_gz_wage_wage14[ls_j] = ld_temp_amt CASE 15 dw_wage.Object.u_gz_wage_wage15[ls_j] = ld_temp_amt CASE 16 dw_wage.Object.u_gz_wage_wage16[ls_j] = ld_temp_amt CASE 17 dw_wage.Object.u_gz_wage_wage17[ls_j] = ld_temp_amt CASE 18 dw_wage.Object.u_gz_wage_wage18[ls_j] = ld_temp_amt CASE 19 dw_wage.Object.u_gz_wage_wage19[ls_j] = ld_temp_amt CASE 20 dw_wage.Object.u_gz_wage_wage20[ls_j] = ld_temp_amt END CHOOSE NEXT NEXT dw_wage.AcceptText() RETURN rslt end function on w_gz_wage_mx0_edit.create int iCurrent call super::create this.em_mth=create em_mth this.st_421=create st_421 this.cb_retrieve=create cb_retrieve this.cb_wage_edit=create cb_wage_edit this.cb_cancel=create cb_cancel this.ddlb_scid=create ddlb_scid this.cb_2=create cb_2 this.tv_1=create tv_1 this.dw_wage=create dw_wage this.ddlb_wageitem=create ddlb_wageitem this.rb_1=create rb_1 this.rb_2=create rb_2 this.cb_copybasepay=create cb_copybasepay this.cb_1=create cb_1 this.gb_1=create gb_1 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.em_mth this.Control[iCurrent+2]=this.st_421 this.Control[iCurrent+3]=this.cb_retrieve this.Control[iCurrent+4]=this.cb_wage_edit this.Control[iCurrent+5]=this.cb_cancel this.Control[iCurrent+6]=this.ddlb_scid this.Control[iCurrent+7]=this.cb_2 this.Control[iCurrent+8]=this.tv_1 this.Control[iCurrent+9]=this.dw_wage this.Control[iCurrent+10]=this.ddlb_wageitem this.Control[iCurrent+11]=this.rb_1 this.Control[iCurrent+12]=this.rb_2 this.Control[iCurrent+13]=this.cb_copybasepay this.Control[iCurrent+14]=this.cb_1 this.Control[iCurrent+15]=this.gb_1 this.Control[iCurrent+16]=this.ln_bar this.Control[iCurrent+17]=this.ln_bar2 this.Control[iCurrent+18]=this.r_bar end on on w_gz_wage_mx0_edit.destroy call super::destroy destroy(this.em_mth) destroy(this.st_421) destroy(this.cb_retrieve) destroy(this.cb_wage_edit) destroy(this.cb_cancel) destroy(this.ddlb_scid) destroy(this.cb_2) destroy(this.tv_1) destroy(this.dw_wage) destroy(this.ddlb_wageitem) destroy(this.rb_1) destroy(this.rb_2) destroy(this.cb_copybasepay) destroy(this.cb_1) destroy(this.gb_1) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.r_bar) end on event open;call super::open;dw_wage.SetTransObject(sqlca) s_wageeditw_open s_wageedit_tran s_wageedit_tran = Message.PowerObjectParm cur_0_wageid = s_wageedit_tran.wageid ddlb_wageitem.text=s_wageedit_tran.wagename em_mth.Text = String(s_wageedit_tran.wagemth) ls_handtype = s_wageedit_tran.handtype cur_scid_arr = s_wageedit_tran.scid_arr cur_scid = s_wageedit_tran.scid wf_setopen(s_wageedit_tran.deptid,s_wageedit_tran.scid) wf_columnstyle() wf_retreve() wf_refresh_face() end event event ue_filter;call super::ue_filter;OPENWITHPARM(w_filter_query,dw_wage) STRING LS_EXPR LS_EXPR=Message.StringParm if len(LS_EXPR)>2 and trim(LS_EXPR)='' then return dw_wage.setfilter(LS_EXPR) dw_wage.SetRedraw (false) dw_wage.filter() dw_wage.SetRedraw (TRUE) end event event ue_sort;call super::ue_sort;OPENwithparm(w_sortrow,dw_wage) STRING LS_EXPR LS_EXPR=Message.StringParm IF ISNULL(LS_EXPR) THEN LS_EXPR=' ' if len(LS_EXPR)>2 and trim(LS_EXPR)='' then return dw_wage.setsort(LS_EXPR) dw_wage.SetRedraw (false) dw_wage.sort() dw_wage.SetRedraw (true) end event event close;call super::close;Int ls_j FOR ls_j = 1 TO 20 SetNull(cur_wageid[ls_j]) SetNull(cur_column_string[ls_j]) NEXT cur_temp_wagecount = 0 end event event resize;call super::resize;ln_bar.endx = this.width ln_bar2.endx = this.width //ln_1.endx = this.width //ln_2.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 tv_1.height=this.height - tv_1.y - 140 dw_wage.width=this.width - dw_wage.x - 40 dw_wage.height=this.height - dw_wage.y - 140 end event type cb_func from w_publ_base`cb_func within w_gz_wage_mx0_edit boolean visible = false integer x = 2363 integer y = 112 integer width = 274 boolean enabled = false end type type cb_exit from w_publ_base`cb_exit within w_gz_wage_mx0_edit integer x = 1687 integer width = 165 integer height = 172 integer taborder = 100 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type em_mth from editmask within w_gz_wage_mx0_edit integer x = 1582 integer y = 212 integer width = 320 integer height = 84 integer taborder = 30 boolean bringtotop = true integer textsize = -10 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 borderstyle borderstyle = stylelowered! maskdatatype maskdatatype = datemask! string mask = "yyyymm" boolean spin = true end type type st_421 from statictext within w_gz_wage_mx0_edit integer x = 1417 integer y = 232 integer width = 160 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 boolean enabled = false string text = "月份:" alignment alignment = right! boolean focusrectangle = false end type type cb_retrieve from uo_imflatbutton within w_gz_wage_mx0_edit integer x = 261 integer width = 329 integer height = 172 integer taborder = 90 boolean bringtotop = true string text = "刷新工资表" string normalpicname = "refresh.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;wf_retreve() end event type cb_wage_edit from uo_imflatbutton within w_gz_wage_mx0_edit integer x = 590 integer width = 165 integer height = 172 integer taborder = 40 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;string ls_msg='' if dw_edit_mode then dw_wage.setfilter('') dw_wage.filter() dw_wage.accepttext() if cur_column_style=0 then if dw_wage.update()=1 then commit; messagebox('提示','保存成功!', Information!, OK! ) else rollback; messagebox('提示','保存失败!', Information!, OK! ) end if else if wf_save(ls_msg,true)=1 then messagebox('提示','保存成功!', Information!, OK! ) else messagebox('提示','保存失败!原因:'+ls_msg, Information!, OK! ) end if end if end if dw_edit_mode=not dw_edit_mode wf_refresh_face() end event type cb_cancel from uo_imflatbutton within w_gz_wage_mx0_edit integer x = 754 integer width = 165 integer height = 172 integer taborder = 60 boolean bringtotop = true string text = "放弃" string normalpicname = "undo.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;dw_edit_mode=false wf_retreve() wf_refresh_face() end event type ddlb_scid from uo_ddlb_scid within w_gz_wage_mx0_edit integer x = 1915 integer y = 212 integer width = 517 integer height = 676 integer taborder = 50 boolean bringtotop = true end type event constructor;call super::constructor;cur_scid_arr = THIS.uo_scid_arr end event event selectionchanged;call super::selectionchanged;cur_scid_arr = THIS.uo_scid_arr cb_retrieve.TriggerEvent(Clicked!) end event type cb_2 from uo_imflatbutton within w_gz_wage_mx0_edit integer width = 261 integer height = 172 integer taborder = 70 boolean bringtotop = true string text = "刷新部门" string normalpicname = "refresh.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type tv_1 from uo_tv_deptype within w_gz_wage_mx0_edit integer y = 320 integer width = 814 integer height = 1740 integer taborder = 10 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontfamily fontfamily = anyfont! string facename = "宋体" end type event selectionchanged;call super::selectionchanged;ls_handtype = THIS.uo_cur_info.handtype ls_handtype = ls_handtype + '%' cb_retrieve.TriggerEvent(Clicked!) end event type dw_wage from u_dw_rbtnfilter within w_gz_wage_mx0_edit integer x = 818 integer y = 320 integer width = 2720 integer height = 1740 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_mthwage_mx0_edit" boolean hscrollbar = true boolean vscrollbar = true end type event constructor;call super::constructor; titleclick_sort_use=true //单击标题排序功能开关 RBUTTON_FILTER_USE=true //右键查询功能开关 end event event rowfocuschanged;call super::rowfocuschanged;IF currentrow >0 THEN this.selectrow(0,false) this.selectrow(currentrow,true) end if end event event dwnkey;call super::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 type ddlb_wageitem from dropdownlistbox within w_gz_wage_mx0_edit integer x = 704 integer y = 224 integer width = 667 integer height = 676 integer taborder = 110 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 16777215 borderstyle borderstyle = stylelowered! end type event constructor; string ls_wageitem='' long ls_wageid DECLARE wageitem_cur CURSOR FOR SELECT u_gz_wageitem.Wagename , u_gz_wageitem.wageid FROM u_gz_wageitem WHERE ( u_gz_wageitem.useflag = 1 ) AND ( u_gz_wageitem.wagemode = 0 ) order by u_gz_wageitem.Wagename; open wageitem_cur; fetch wageitem_cur into :ls_wageitem,:ls_wageid; do while sqlca.sqlcode=0 ddlb_wageitem.ADDItem(ls_wageitem) fetch wageitem_cur into :ls_wageitem,:ls_wageid; loop close wageitem_cur; end event event selectionchanged;wf_retreve() end event type rb_1 from radiobutton within w_gz_wage_mx0_edit integer x = 46 integer y = 232 integer width = 320 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "整体列表" end type event clicked;cur_column_style = 1 wf_columnstyle() wf_retreve() end event type rb_2 from radiobutton within w_gz_wage_mx0_edit integer x = 366 integer y = 236 integer width = 320 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "单一列表" boolean checked = true end type event clicked;cur_column_style=0 wf_columnstyle() wf_retreve() end event type cb_copybasepay from uo_imflatbutton within w_gz_wage_mx0_edit integer x = 919 integer width = 384 integer height = 172 integer taborder = 50 boolean bringtotop = true boolean enabled = false string text = "导入基本工资" string normalpicname = "other.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF MessageBox ("IF","是否确定要导入基本工资吗?一旦导入,你所做的所有修改将会丢失。",Question!,YesNo! ) = 2 THEN RETURN String arg_msg IF wf_copybasepay(arg_msg) = 0 THEN MessageBox('系统提示',arg_msg) RETURN END IF end event type cb_1 from uo_imflatbutton within w_gz_wage_mx0_edit integer x = 1303 integer width = 384 integer height = 172 integer taborder = 60 boolean bringtotop = true string text = "复制上月工资" string normalpicname = "other.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;// u_gz_wagemx.wagemth, // u_gz_wagemx.empid, // u_gz_wagemx.wageid, //u_gz_wagemx_wageamt //em_mth Long i,ll_mth,ll_s_mth,ll_wageid,ll_empid Decimal de_wageamt string arg_msg IF cur_column_style = 0 THEN FOR i = 1 To dw_wage.RowCount() ll_mth = Long(dw_wage.Object.u_gz_wage_wagemth[i]) ll_s_mth = f_mth(ll_mth) ll_wageid = Long(dw_wage.Object.u_gz_wagemx_wageid[i]) ll_empid = Long(dw_wage.Object.u_gz_wagemx_empid[i]) SELECT top 1 wageamt INTO :de_wageamt FROM u_gz_wagemx WHERE wagemth = :ll_s_mth AND wageid = :ll_wageid And empid = :ll_empid; IF IsNull(de_wageamt) THEN de_wageamt = 0 dw_wage.Object.u_gz_wagemx_wageamt[i] = de_wageamt NEXT ELSE IF wf_retrieve_wagemx_1() = 0 THEN MessageBox('提示',arg_msg, Information!, OK! ) RETURN 0 END IF END IF end event type gb_1 from groupbox within w_gz_wage_mx0_edit integer y = 188 integer width = 1408 integer height = 128 integer taborder = 30 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 end type type ln_bar from line within w_gz_wage_mx0_edit long linecolor = 268435456 integer linethickness = 4 integer beginy = 176 integer endx = 3429 integer endy = 176 end type type ln_bar2 from line within w_gz_wage_mx0_edit long linecolor = 16777215 integer linethickness = 4 integer beginy = 180 integer endx = 3429 integer endy = 180 end type type r_bar from rectangle within w_gz_wage_mx0_edit long linecolor = 16777215 long fillcolor = 1073741824 integer x = 3200 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