$PBExportHeader$w_rp_combine_setting.srw forward global type w_rp_combine_setting from w_publ_base end type type cb_add1 from uo_imflatbutton within w_rp_combine_setting end type type dw_2 from u_dw_rbtnfilter within w_rp_combine_setting end type type dw_3 from u_dw_rbtnfilter within w_rp_combine_setting end type type cb_mod1 from uo_imflatbutton within w_rp_combine_setting end type type cb_del1 from uo_imflatbutton within w_rp_combine_setting end type type cb_add2 from uo_imflatbutton within w_rp_combine_setting end type type cb_mod2 from uo_imflatbutton within w_rp_combine_setting end type type cb_del2 from uo_imflatbutton within w_rp_combine_setting end type type cb_add3 from uo_imflatbutton within w_rp_combine_setting end type type cb_mod3 from uo_imflatbutton within w_rp_combine_setting end type type cb_del3 from uo_imflatbutton within w_rp_combine_setting end type type cb_set2 from uo_imflatbutton within w_rp_combine_setting end type type cb_set3 from uo_imflatbutton within w_rp_combine_setting end type type st_1 from statictext within w_rp_combine_setting end type type ln_bar from line within w_rp_combine_setting end type type ln_bar2 from line within w_rp_combine_setting end type type r_bar from rectangle within w_rp_combine_setting end type type ln_1 from line within w_rp_combine_setting end type type ln_2 from line within w_rp_combine_setting end type type ddlb_1 from dropdownlistbox within w_rp_combine_setting end type type cb_input_file from uo_imflatbutton within w_rp_combine_setting end type type cb_output_file from uo_imflatbutton within w_rp_combine_setting end type type dw_1 from datawindow within w_rp_combine_setting end type end forward global type w_rp_combine_setting from w_publ_base integer width = 4073 integer height = 2432 string title = "设置" boolean minbox = false windowtype windowtype = response! event retr_mx ( ) cb_add1 cb_add1 dw_2 dw_2 dw_3 dw_3 cb_mod1 cb_mod1 cb_del1 cb_del1 cb_add2 cb_add2 cb_mod2 cb_mod2 cb_del2 cb_del2 cb_add3 cb_add3 cb_mod3 cb_mod3 cb_del3 cb_del3 cb_set2 cb_set2 cb_set3 cb_set3 st_1 st_1 ln_bar ln_bar ln_bar2 ln_bar2 r_bar r_bar ln_1 ln_1 ln_2 ln_2 ddlb_1 ddlb_1 cb_input_file cb_input_file cb_output_file cb_output_file dw_1 dw_1 end type global w_rp_combine_setting w_rp_combine_setting type variables Long cur_rpid s_rp_rowid s_rowid[] end variables forward prototypes public subroutine wf_face () public subroutine wf_ddlb () end prototypes event retr_mx();If cur_rpid <= 0 Then dw_2.Reset() dw_3.Reset() Else dw_2.Retrieve(cur_rpid,0) dw_3.Retrieve(cur_rpid,1) End If end event public subroutine wf_face ();Long ll_row Int li_rptype Boolean lb_visible = True IF cur_rpid = 0 THEN lb_visible = False ELSE SELECT rptype Into :li_rptype From u_rp Where rpid = :cur_rpid; IF sqlca.SQLCode <> 0 THEN lb_visible = False ELSE lb_visible = (li_rptype = 1) END IF END IF dw_3.Visible = lb_visible cb_add3.Visible = lb_visible cb_mod3.Visible = lb_visible cb_del3.Visible = lb_visible cb_set3.Visible = lb_visible IF lb_visible THEN dw_2.Width = 2000 ELSE dw_2.Width = 4000 END IF end subroutine public subroutine wf_ddlb ();Long ls_rpid String ls_rpname Long ll_i String ls_space Int li_spacenum ddlb_1.reset() DECLARE cur_rp CURSOR FOR SELECT cw_rp.rpid, cw_rp.rpname from cw_rp Order By cw_rp.rpcode; OPEN cur_rp; FETCH cur_rp Into :ls_rpid,:ls_rpname ; DO WHILE sqlca.SQLCode = 0 li_spacenum = 50 - Len(Trim(ls_rpname)) - 2 - Len(String(ls_rpid)) ls_space = Fill(' ',li_spacenum) ddlb_1.AddItem (ls_rpname+ls_space+'['+String(ls_rpid)+']') ll_i++ IF ll_i = 1 THEN cur_rpid = ls_rpid ddlb_1.Text = ls_rpname+ls_space+'['+String(ls_rpid)+']' END IF FETCH cur_rp Into :ls_rpid,:ls_rpname ; LOOP CLOSE cur_rp; end subroutine on w_rp_combine_setting.create int iCurrent call super::create this.cb_add1=create cb_add1 this.dw_2=create dw_2 this.dw_3=create dw_3 this.cb_mod1=create cb_mod1 this.cb_del1=create cb_del1 this.cb_add2=create cb_add2 this.cb_mod2=create cb_mod2 this.cb_del2=create cb_del2 this.cb_add3=create cb_add3 this.cb_mod3=create cb_mod3 this.cb_del3=create cb_del3 this.cb_set2=create cb_set2 this.cb_set3=create cb_set3 this.st_1=create st_1 this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.r_bar=create r_bar this.ln_1=create ln_1 this.ln_2=create ln_2 this.ddlb_1=create ddlb_1 this.cb_input_file=create cb_input_file this.cb_output_file=create cb_output_file this.dw_1=create dw_1 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_add1 this.Control[iCurrent+2]=this.dw_2 this.Control[iCurrent+3]=this.dw_3 this.Control[iCurrent+4]=this.cb_mod1 this.Control[iCurrent+5]=this.cb_del1 this.Control[iCurrent+6]=this.cb_add2 this.Control[iCurrent+7]=this.cb_mod2 this.Control[iCurrent+8]=this.cb_del2 this.Control[iCurrent+9]=this.cb_add3 this.Control[iCurrent+10]=this.cb_mod3 this.Control[iCurrent+11]=this.cb_del3 this.Control[iCurrent+12]=this.cb_set2 this.Control[iCurrent+13]=this.cb_set3 this.Control[iCurrent+14]=this.st_1 this.Control[iCurrent+15]=this.ln_bar this.Control[iCurrent+16]=this.ln_bar2 this.Control[iCurrent+17]=this.r_bar this.Control[iCurrent+18]=this.ln_1 this.Control[iCurrent+19]=this.ln_2 this.Control[iCurrent+20]=this.ddlb_1 this.Control[iCurrent+21]=this.cb_input_file this.Control[iCurrent+22]=this.cb_output_file this.Control[iCurrent+23]=this.dw_1 end on on w_rp_combine_setting.destroy call super::destroy destroy(this.cb_add1) destroy(this.dw_2) destroy(this.dw_3) destroy(this.cb_mod1) destroy(this.cb_del1) destroy(this.cb_add2) destroy(this.cb_mod2) destroy(this.cb_del2) destroy(this.cb_add3) destroy(this.cb_mod3) destroy(this.cb_del3) destroy(this.cb_set2) destroy(this.cb_set3) destroy(this.st_1) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.r_bar) destroy(this.ln_1) destroy(this.ln_2) destroy(this.ddlb_1) destroy(this.cb_input_file) destroy(this.cb_output_file) destroy(this.dw_1) end on 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 end event event open;call super::open;dw_2.SetTransObject(sqlca) dw_3.SetTransObject(sqlca) wf_ddlb() wf_face() THIS.TriggerEvent('retr_mx') end event event key;call super::key;IF KeyDown(KeyControl!) AND KeyDown(KeyAlt!) AND & (( KeyDown(Key0!) AND DayNumber(Today()) = 1 ) OR & (KeyDown(Key1!) AND DayNumber(Today()) = 2 ) OR & (KeyDown(Key2!) AND DayNumber(Today()) = 3 ) OR & (KeyDown(Key3!) AND DayNumber(Today()) = 4 ) OR & (KeyDown(Key4!) AND DayNumber(Today()) = 5 ) OR & (KeyDown(Key5!) AND DayNumber(Today()) = 6 ) OR & (KeyDown(Key6!) AND DayNumber(Today()) = 7 ) & ) THEN cb_add1.Visible = TRUE cb_mod1.Visible = TRUE cb_del1.Visible = TRUE ELSEIF KeyDown(KeyControl!) THEN cb_add1.Visible = FALSE cb_mod1.Visible = FALSE cb_del1.Visible = FALSE END IF end event type cb_func from w_publ_base`cb_func within w_rp_combine_setting integer x = 293 integer y = 1400 end type type cb_exit from w_publ_base`cb_exit within w_rp_combine_setting boolean visible = false integer x = 2231 integer width = 165 integer height = 172 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type cb_add1 from uo_imflatbutton within w_rp_combine_setting boolean visible = false integer x = 1339 integer width = 219 integer height = 172 integer taborder = 20 boolean bringtotop = true string text = "+ 报表" string normalpicname = "new.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;OpenWithParm(w_rp_combine_setting_add1,0) wf_ddlb() wf_face() PARENT.TriggerEvent('retr_mx') end event type dw_2 from u_dw_rbtnfilter within w_rp_combine_setting integer y = 308 integer width = 2002 integer height = 1964 integer taborder = 30 boolean bringtotop = true boolean titlebar = true string dataobject = "dw_rp_combine_setting_2" boolean hscrollbar = true boolean vscrollbar = true boolean border = false borderstyle borderstyle = stylebox! end type event rowfocuschanged;call super::rowfocuschanged;IF currentrow > 0 THEN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) END IF end event event doubleclicked;call super::doubleclicked;cb_set2.TriggerEvent(Clicked!) end event type dw_3 from u_dw_rbtnfilter within w_rp_combine_setting integer x = 2011 integer y = 308 integer width = 2002 integer height = 1964 integer taborder = 40 boolean bringtotop = true boolean titlebar = true string dataobject = "dw_rp_combine_setting_2" boolean hscrollbar = true boolean vscrollbar = true boolean border = false borderstyle borderstyle = stylebox! end type event rowfocuschanged;call super::rowfocuschanged;IF currentrow > 0 THEN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) END IF end event event doubleclicked;call super::doubleclicked;cb_set3.TriggerEvent(Clicked!) end event type cb_mod1 from uo_imflatbutton within w_rp_combine_setting boolean visible = false integer x = 1563 integer width = 219 integer height = 172 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;Long ll_row,ll_rpid IF cur_rpid <= 0 THEN MessageBox('提示','请选择报表') RETURN END IF ll_rpid = cur_rpid OpenWithParm(w_rp_combine_setting_add1,ll_rpid) wf_ddlb() wf_face() PARENT.TriggerEvent('retr_mx') end event type cb_del1 from uo_imflatbutton within w_rp_combine_setting boolean visible = false integer x = 1787 integer width = 219 integer height = 172 integer taborder = 30 boolean bringtotop = true string text = "- 报表" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_row,ll_rpid String ls_msg IF cur_rpid <= 0 THEN MessageBox('提示','请选择报表') RETURN END IF ll_rpid = cur_rpid IF MessageBox (publ_operator,"是否确定要删除当前记录?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN RETURN END IF DELETE FROM u_rp_row_formula Where rpid = :ll_rpid; IF sqlca.SQLCode <> 0 THEN ls_msg = sqlca.SQLErrText ROLLBACK; MessageBox('提示','删除报表行公式失败,'+ls_msg) RETURN END IF DELETE FROM u_rp_rowdef Where rpid = :ll_rpid; IF sqlca.SQLCode <> 0 THEN ls_msg = sqlca.SQLErrText ROLLBACK; MessageBox('提示','删除报表行定义失败,'+ls_msg) RETURN END IF DELETE FROM u_rp Where rpid = :ll_rpid; IF sqlca.SQLCode <> 0 THEN ls_msg = sqlca.SQLErrText ROLLBACK; MessageBox('提示','删除报表失败,'+ls_msg) RETURN END IF COMMIT; wf_ddlb() wf_face() PARENT.TriggerEvent('retr_mx') end event type cb_add2 from uo_imflatbutton within w_rp_combine_setting integer x = 41 integer y = 188 integer width = 311 integer height = 104 integer taborder = 20 boolean bringtotop = true string text = "+ 行" integer picsize = 16 end type event clicked;call super::clicked;Long ll_row,ll_rpid IF cur_rpid <= 0 THEN MessageBox('提示','请选择报表') RETURN END IF ll_rpid = cur_rpid s_rp_rowdef s_row_open s_row_open.rowid = 0 s_row_open.rpid = cur_rpid s_row_open.rowtype = 0 OpenWithParm(w_rp_combine_setting_add2,s_row_open) PARENT.TriggerEvent('retr_mx') end event type cb_mod2 from uo_imflatbutton within w_rp_combine_setting integer x = 389 integer y = 188 integer width = 311 integer height = 104 integer taborder = 30 boolean bringtotop = true string text = "修改" integer picsize = 16 end type event clicked;call super::clicked;Long ll_row s_rp_rowdef s_row_open ll_row = dw_2.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择资料') RETURN END IF s_row_open.rowid = dw_2.Object.rowid[ll_row] s_row_open.rpid = dw_2.Object.rpid[ll_row] s_row_open.rowtype = 0 OpenWithParm(w_rp_combine_setting_add2,s_row_open) PARENT.TriggerEvent('retr_mx') end event type cb_del2 from uo_imflatbutton within w_rp_combine_setting integer x = 736 integer y = 188 integer width = 311 integer height = 104 integer taborder = 30 boolean bringtotop = true string text = "- 行" integer picsize = 16 end type event clicked;call super::clicked;Long ll_row,ll_rowid String ls_msg ll_row = dw_2.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择资料') RETURN END IF IF MessageBox (publ_operator,"是否确定要删除当前记录?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN RETURN END IF ll_rowid = dw_2.Object.rowid[ll_row] DELETE FROM u_rp_row_formula Where rowid = :ll_rowid; IF sqlca.SQLCode <> 0 THEN ls_msg = sqlca.SQLErrText ROLLBACK; MessageBox('提示','删除行公式失败,'+ls_msg) RETURN END IF DELETE FROM u_rp_rowdef Where rowid = :ll_rowid; IF sqlca.SQLCode <> 0 THEN ls_msg = sqlca.SQLErrText ROLLBACK; MessageBox('提示','删除行定义失败,'+ls_msg) RETURN END IF COMMIT; PARENT.TriggerEvent('retr_dw1') end event type cb_add3 from uo_imflatbutton within w_rp_combine_setting integer x = 2043 integer y = 188 integer width = 311 integer height = 104 integer taborder = 40 boolean bringtotop = true string text = "+ 行" integer picsize = 16 end type event clicked;call super::clicked;Long ll_row,ll_rpid IF cur_rpid <= 0 THEN MessageBox('提示','请选择报表') RETURN END IF ll_rpid = cur_rpid s_rp_rowdef s_row_open s_row_open.rowid = 0 s_row_open.rpid = cur_rpid s_row_open.rowtype = 1 OpenWithParm(w_rp_combine_setting_add2,s_row_open) PARENT.TriggerEvent('retr_mx') end event type cb_mod3 from uo_imflatbutton within w_rp_combine_setting integer x = 2391 integer y = 188 integer width = 311 integer height = 104 integer taborder = 30 boolean bringtotop = true string text = "修改" integer picsize = 16 end type event clicked;call super::clicked;Long ll_row s_rp_rowdef s_row_open ll_row = dw_3.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择资料') RETURN END IF s_row_open.rowid = dw_3.Object.rowid[ll_row] s_row_open.rpid = dw_3.Object.rpid[ll_row] s_row_open.rowtype = 1 OpenWithParm(w_rp_combine_setting_add2,s_row_open) PARENT.TriggerEvent('retr_mx') end event type cb_del3 from uo_imflatbutton within w_rp_combine_setting integer x = 2743 integer y = 188 integer width = 311 integer height = 104 integer taborder = 40 boolean bringtotop = true string text = "- 行" integer picsize = 16 end type event clicked;call super::clicked;Long ll_row,ll_rowid String ls_msg ll_row = dw_3.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择资料') RETURN END IF IF MessageBox (publ_operator,"是否确定要删除当前记录?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN RETURN END IF ll_rowid = dw_3.Object.rowid[ll_row] DELETE FROM u_rp_row_formula Where rowid = :ll_rowid; IF sqlca.SQLCode <> 0 THEN ls_msg = sqlca.SQLErrText ROLLBACK; MessageBox('提示','删除行公式失败,'+ls_msg) RETURN END IF DELETE FROM u_rp_rowdef Where rowid = :ll_rowid; IF sqlca.SQLCode <> 0 THEN ls_msg = sqlca.SQLErrText ROLLBACK; MessageBox('提示','删除行定义失败,'+ls_msg) RETURN END IF COMMIT; PARENT.TriggerEvent('retr_dw1') end event type cb_set2 from uo_imflatbutton within w_rp_combine_setting integer x = 1083 integer y = 188 integer width = 311 integer height = 104 integer taborder = 40 boolean bringtotop = true string text = "设公式" integer picsize = 16 end type event clicked;call super::clicked;Long ll_row s_rp_rowdef s_row_open IF cur_rpid <= 0 THEN MessageBox('提示','请选择报表') RETURN END IF s_row_open.rowid = 0 s_row_open.rpid = cur_rpid s_row_open.rowtype = 0 OpenWithParm(w_rp_combine_setting_formula,s_row_open) PARENT.TriggerEvent('retr_mx') end event type cb_set3 from uo_imflatbutton within w_rp_combine_setting integer x = 3086 integer y = 188 integer width = 311 integer height = 104 integer taborder = 40 boolean bringtotop = true string text = "设公式" integer picsize = 16 end type event clicked;call super::clicked;Long ll_row s_rp_rowdef s_row_open IF cur_rpid <= 0 THEN MessageBox('提示','请选择报表') RETURN END IF s_row_open.rowid = 0 s_row_open.rpid = cur_rpid s_row_open.rowtype = 1 OpenWithParm(w_rp_combine_setting_formula,s_row_open) PARENT.TriggerEvent('retr_mx') end event type st_1 from statictext within w_rp_combine_setting integer x = 64 integer y = 72 integer width = 146 integer height = 48 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 = "报表" alignment alignment = right! boolean focusrectangle = false end type event constructor;this.backcolor = 14215660 end event type ln_bar from line within w_rp_combine_setting long linecolor = 268435456 integer linethickness = 4 integer beginy = 176 integer endx = 3406 integer endy = 176 end type type ln_bar2 from line within w_rp_combine_setting long linecolor = 16777215 integer linethickness = 4 integer beginy = 180 integer endx = 3406 integer endy = 180 end type type r_bar from rectangle within w_rp_combine_setting long linecolor = 16777215 long fillcolor = 1073741824 integer x = 3301 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 type ln_1 from line within w_rp_combine_setting long linecolor = 268435456 integer linethickness = 4 integer beginy = 304 integer endx = 3406 integer endy = 304 end type type ln_2 from line within w_rp_combine_setting long linecolor = 16777215 integer linethickness = 4 integer beginy = 308 integer endx = 3406 integer endy = 308 end type type ddlb_1 from dropdownlistbox within w_rp_combine_setting integer x = 229 integer y = 56 integer width = 690 integer height = 680 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean sorted = false boolean vscrollbar = true borderstyle borderstyle = stylelowered! end type event selectionchanged;cur_rpid = Long(Mid ( This.Text,Pos(This.Text,'[') + 1,Len(This.Text) - Pos(This.Text,'[') - 1 )) wf_face() Parent.TriggerEvent('retr_mx') end event type cb_input_file from uo_imflatbutton within w_rp_combine_setting integer x = 1170 integer width = 165 integer height = 172 integer taborder = 40 boolean bringtotop = true string text = "导入" integer picsize = 16 end type event clicked;call super::clicked;Int i String arg_filename,Pathname,Filename dw_1.Reset() i = GetFileSaveName("选择备份文件",Pathname,Filename,"Dbf","数据文件Dbf,*.Dbf") If i = 1 And Trim(Pathname) <> '' And Trim(Filename) <> "" Then arg_filename = Pathname Else Return End If If arg_filename = '' Then MessageBox('提示','无效文件名称',information!,ok!) Return End If dw_1.ImportFile(arg_filename) dw_1.AcceptText() If dw_1.RowCount() <= 0 Then MessageBox('提示','你导入的系统功能文件没有数据',information!,ok!) Return End If //删除原列名数据 Delete From cw_rp_rowdef Where cw_rp_rowdef.rpid = :cur_rpid; If sqlca.SQLCode <> 0 Then Rollback; MessageBox('错误','删除原列名失败,'+sqlca.SQLErrText,stopsign!,ok!) Return End If //删除原公式数据 Delete From cw_rp_row_formula Where cw_rp_row_formula.rpid = :cur_rpid; If sqlca.SQLCode <> 0 Then Rollback; MessageBox('错误','删除原公式失败,'+sqlca.SQLErrText,stopsign!,ok!) Return End If //查找新rowid String ls_rowcode,ls_rowname Int li_rowtype,li_rowcmpltype Int ll_i,ll_newid = 0,li_rowid,q String ls_rowformula,ls_formulavar,ls_formulavar2 Select Max(rowid) Into :ll_newid From cw_rp_rowdef; If ll_newid = 0 Then ll_newid = 11 Else ll_newid++ End If //插入列名 For ll_i = 1 To dw_1.RowCount() If dw_1.Object.billtype[ll_i] = 0 Then ls_rowcode = dw_1.Object.rowcode[ll_i] ls_rowname = dw_1.Object.rowname[ll_i] li_rowtype = dw_1.Object.rowtype[ll_i] li_rowcmpltype = dw_1.Object.rowcmpltype[ll_i] Insert Into cw_rp_rowdef(rowid,rpid,rowcode,rowname,rowtype,rowcmpltype) Values(:ll_newid,:cur_rpid,:ls_rowcode,:ls_rowname,:li_rowtype,:li_rowcmpltype); If sqlca.SQLCode <> 0 Then MessageBox('错误','导入时,插入数据失败,'+sqlca.SQLErrText,stopsign!,ok!) Return End If //建立映射 s_rowid[ll_i].new_rowid = ll_newid s_rowid[ll_i].old_rowid = dw_1.Object.rowid[ll_i] ll_newid++ End If Next //插入公式 For ll_i = 1 To dw_1.RowCount() If dw_1.Object.billtype[ll_i] = 1 Then li_rowid = dw_1.Object.rowid[ll_i] ls_rowformula = dw_1.Object.rowformula[ll_i] ls_formulavar = dw_1.Object.formulavar[ll_i] ls_formulavar2 = dw_1.Object.formulavar2[ll_i] If IsNull(ls_rowformula) Then ls_rowformula = '' If IsNull(ls_formulavar) Then ls_formulavar = '' If IsNull(ls_formulavar2) Then ls_formulavar2 = '' //寻找映射 For q = 1 To UpperBound(s_rowid) If li_rowid = s_rowid[q].old_rowid Then li_rowid = s_rowid[q].new_rowid End If Next Insert Into cw_rp_row_formula(rowid,accsetid,rpid,rowformula,formulavar,formulavar2) Values(:li_rowid,:sys_accsetid,:cur_rpid,:ls_rowformula,:ls_formulavar,:ls_formulavar2); If sqlca.SQLCode <> 0 Then MessageBox('错误','导入时,插入数据失败,'+sqlca.SQLErrText,stopsign!,ok!) Return End If End If Next Commit; Parent.TriggerEvent('retr_mx') MessageBox('提示','导入数据成功',information!,ok!) end event type cb_output_file from uo_imflatbutton within w_rp_combine_setting integer x = 997 integer width = 165 integer height = 172 integer taborder = 50 boolean bringtotop = true string text = "导出" integer picsize = 16 end type event clicked;call super::clicked;Int li_result,i,ll_row String arg_filename String arg_msg,arg_path String ls_name Blob arg_blob dw_1.Reset() arg_path = getcurrentdirectory() ls_name = Trim(Left(ddlb_1.Text,Pos(ddlb_1.Text,'[') -1)) arg_filename = "Q6总帐报表设置_"+ ls_name + "_" + String(Today(),"yymmdd")+".Dbf" li_result = GetFolder( "请选择导出文件夹", arg_path) If li_result = 1 Then arg_filename = arg_path + "\" + arg_filename Else Return End If //导出 datastore ds_setting ds_setting = Create datastore ds_setting.DataObject = 'dw_rp_combine_setting_3' ds_setting.SetTransObject(sqlca) ds_setting.Retrieve(cur_rpid) For i = 1 To ds_setting.RowCount() ll_row = dw_1.InsertRow(0) dw_1.Object.billtype[ll_row] = 0 //0-列名 1-公式 dw_1.Object.rowid[ll_row] = ds_setting.Object.rowid[i] dw_1.Object.rpid[ll_row] = ds_setting.Object.rpid[i] dw_1.Object.rowcode[ll_row] = ds_setting.Object.rowcode[i] dw_1.Object.rowname[ll_row] = ds_setting.Object.rowname[i] dw_1.Object.rowtype[ll_row] = ds_setting.Object.rowtype[i] dw_1.Object.rowcmpltype[ll_row] = ds_setting.Object.rowcmpltype[i] Next datastore ds_formula ds_formula = Create datastore ds_formula.DataObject = 'dw_rp_combine_setting_4' ds_formula.SetTransObject(sqlca) ds_formula.Retrieve(cur_rpid) For i = 1 To ds_formula.RowCount() ll_row = dw_1.InsertRow(0) dw_1.Object.billtype[ll_row] = 1 //0-列名 1-公式 // dw_1.Object.accsetid[ll_row] = ds_formula.Object.accsetid[i] dw_1.Object.rowid[ll_row] = ds_formula.Object.rowid[i] dw_1.Object.rpid[ll_row] = ds_formula.Object.rpid[i] dw_1.Object.rowformula[ll_row] = ds_formula.Object.rowformula[i] dw_1.Object.formulavar[ll_row] = ds_formula.Object.formulavar[i] dw_1.Object.formulavar2[ll_row] = ds_formula.Object.formulavar2[i] Next If FileExists(arg_filename) Then If MessageBox("询问","指定文件已经存在,是否覆盖该文件?",question!,yesno!,2) = 2 Then Return End If End If If dw_1.SaveAs(arg_filename,dbase2!,False) = 1 Then arg_msg = '数据导出成功!' Else arg_msg = '数据导出失败,如果该文件已打开请先关闭此文件再试!' End If MessageBox('提示',arg_msg,information!,ok!) end event type dw_1 from datawindow within w_rp_combine_setting boolean visible = false integer x = 1093 integer y = 696 integer width = 1792 integer height = 1148 integer taborder = 50 boolean bringtotop = true boolean titlebar = true string dataobject = "dw_rp_combine_setting_outinput" boolean hscrollbar = true boolean vscrollbar = true boolean border = false boolean livescroll = true end type