$PBExportHeader$w_dwprint_dynamic_saveas.srw forward global type w_dwprint_dynamic_saveas from w_publ_base end type type cb_export from uo_imflatbutton within w_dwprint_dynamic_saveas end type type st_1 from statictext within w_dwprint_dynamic_saveas end type type st_2 from statictext within w_dwprint_dynamic_saveas end type type sle_dw from singlelineedit within w_dwprint_dynamic_saveas end type type sle_chnname from singlelineedit within w_dwprint_dynamic_saveas end type type st_3 from statictext within w_dwprint_dynamic_saveas end type type ddlb_1 from dropdownlistbox within w_dwprint_dynamic_saveas end type type gb_2 from groupbox within w_dwprint_dynamic_saveas end type end forward global type w_dwprint_dynamic_saveas from w_publ_base integer width = 2491 integer height = 788 string title = "打印格式另存" boolean minbox = false windowtype windowtype = response! long backcolor = 67108864 cb_export cb_export st_1 st_1 st_2 st_2 sle_dw sle_dw sle_chnname sle_chnname st_3 st_3 ddlb_1 ddlb_1 gb_2 gb_2 end type global w_dwprint_dynamic_saveas w_dwprint_dynamic_saveas type variables s_edit_index_tran s_tran long flag = 0 String ls_code end variables forward prototypes public function integer wf_save (ref string arg_msg) end prototypes public function integer wf_save (ref string arg_msg);Int rslt = 1 Long ll_newid String dft_new_dwname,pblname,chnname Long old_dwprintid dft_new_dwname = Trim(sle_dw.Text) pblname = Trim(ddlb_1.Text) old_dwprintid = s_tran.b_long chnname = Trim(sle_chnname.text) ll_newid = f_sys_scidentity(0,"sys_dft_dwprint_dynamic","dwprintid",arg_msg,FALSE,sqlca) IF ll_newid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO sys_dft_dwprint_dynamic ( dwprintid, dft_new_dwname, chnname, powerid, dwtype, auditprint, prownum, ptype, pblname, ifuse) SELECT :ll_newid , :dft_new_dwname, :chnname, powerid, dwtype, auditprint, prownum, ptype, :pblname, 1 FROM sys_dft_dwprint_dynamic Where dwprintid = :old_dwprintid; IF sqlca.SQLCode <> 0 THEN IF Pos(sqlca.SQLErrText,"IX_sys_dft_dwprint_dynamic1") > 0 THEN arg_msg = '打印格式名称不能重复,增加打印格式失败!' ELSEIF Pos(sqlca.SQLErrText,"IX_sys_dft_dwprint_dynamic") > 0 THEN arg_msg = '打印格式数据窗口不能重复,增加打印格式失败!' ELSE arg_msg = '增加打印格式失败!' END IF rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSE COMMIT; END IF RETURN rslt end function on w_dwprint_dynamic_saveas.create int iCurrent call super::create this.cb_export=create cb_export this.st_1=create st_1 this.st_2=create st_2 this.sle_dw=create sle_dw this.sle_chnname=create sle_chnname this.st_3=create st_3 this.ddlb_1=create ddlb_1 this.gb_2=create gb_2 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_export this.Control[iCurrent+2]=this.st_1 this.Control[iCurrent+3]=this.st_2 this.Control[iCurrent+4]=this.sle_dw this.Control[iCurrent+5]=this.sle_chnname this.Control[iCurrent+6]=this.st_3 this.Control[iCurrent+7]=this.ddlb_1 this.Control[iCurrent+8]=this.gb_2 end on on w_dwprint_dynamic_saveas.destroy call super::destroy destroy(this.cb_export) destroy(this.st_1) destroy(this.st_2) destroy(this.sle_dw) destroy(this.sle_chnname) destroy(this.st_3) destroy(this.ddlb_1) destroy(this.gb_2) end on event open;call super::open;s_tran = Message.PowerObjectParm ddlb_1.Text = s_tran.b_string sle_chnname.text = s_tran.d_string DateTime server_dt SELECT Top 1 getdate() INTO :server_dt FROM u_user USING sqlca ; //取得系统时间,借用操作员表 IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询系统时间失败!',stopsign!,ok!) return END IF sle_dw.Text = s_tran.c_string end event event close;call super::close;IF flag = 0 THEN ROLLBACK; ELSE IF Pos(sle_dw.Text,ls_code) > 0 THEN COMMIT; ELSE ROLLBACK; END IF END IF end event type cb_func from w_publ_base`cb_func within w_dwprint_dynamic_saveas boolean visible = false end type type cb_exit from w_publ_base`cb_exit within w_dwprint_dynamic_saveas integer x = 1947 integer y = 576 integer width = 325 end type type cb_export from uo_imflatbutton within w_dwprint_dynamic_saveas integer x = 1623 integer y = 576 integer width = 325 integer height = 96 integer taborder = 40 boolean bringtotop = true string text = "另存" end type event clicked;call super::clicked;String dwsyntax String ls_pblpath1,ls_pblpath2 String ls_dwname1,ls_dwname2 String ls_error Long it_max,ll_beg,ll_end String ls_dw[] String dwmxsyntax[] Long i String dwmxname ls_pblpath1 = sys_cur_path + s_tran.b_string ls_dwname1 = s_tran.c_string ls_pblpath2 = sys_cur_path + Trim(ddlb_1.Text) ls_dwname2 = Trim(sle_dw.Text) IF Trim(ls_dwname1) = Trim(ls_dwname2) THEN MessageBox('提示','另存名称重复,不能另存!',information!,ok!) RETURN END IF dwsyntax = LibraryExport(ls_pblpath1,ls_dwname1,ExportDataWindow!) it_max = 0 ll_end = 1 DO WHILE Pos(dwsyntax,'dataobject=',ll_end) > 0 ll_beg = Pos(dwsyntax,'dataobject=',ll_end) IF ll_beg = 0 THEN GOTO ext END IF ll_beg = ll_beg + 12 ll_end = Pos(dwsyntax,'"',ll_beg) it_max ++ ls_dw[it_max] = Mid(dwsyntax,ll_beg,ll_end - ll_beg ) LOOP IF it_max > 0 THEN FOR i = 1 TO it_max dwmxsyntax[i] = LibraryExport(ls_pblpath1,ls_dw[i],ExportDataWindow!) dwmxname = ls_dwname2 + '_mx' + String(i,'###0') IF LibraryImport(ls_pblpath2,dwmxname, ImportDataWindow!, dwmxsyntax[i], ls_error ) = -1 THEN MessageBox('错误',ls_error,stopsign!,ok!) RETURN END IF dwsyntax = Replace(dwsyntax,Pos(dwsyntax,ls_dw[i],1),Len(ls_dw[i]),dwmxname) NEXT END IF ext: IF LibraryImport(ls_pblpath2,ls_dwname2, ImportDataWindow!, dwsyntax, ls_error ) = -1 THEN MessageBox('错误',ls_error,stopsign!,ok!) RETURN END IF String arg_msg IF wf_save(arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) RETURN ELSE MessageBox('提示','另存数据窗口成功!',information!,ok!) END IF flag = 1 Close(PARENT) end event type st_1 from statictext within w_dwprint_dynamic_saveas integer x = 50 integer y = 140 integer width = 384 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 = 79741120 string text = "格式库相对路径" alignment alignment = right! boolean focusrectangle = false end type type st_2 from statictext within w_dwprint_dynamic_saveas integer x = 91 integer y = 264 integer width = 343 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 = 79741120 string text = "数据窗口名称" alignment alignment = right! boolean focusrectangle = false end type type sle_dw from singlelineedit within w_dwprint_dynamic_saveas integer x = 443 integer y = 248 integer width = 1888 integer height = 92 integer taborder = 50 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 borderstyle borderstyle = stylelowered! end type type sle_chnname from singlelineedit within w_dwprint_dynamic_saveas integer x = 443 integer y = 372 integer width = 1888 integer height = 92 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 borderstyle borderstyle = stylelowered! end type type st_3 from statictext within w_dwprint_dynamic_saveas integer x = 91 integer y = 388 integer width = 343 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 = 79741120 string text = "格式名称" alignment alignment = right! boolean focusrectangle = false end type type ddlb_1 from dropdownlistbox within w_dwprint_dynamic_saveas integer x = 443 integer y = 124 integer width = 1888 integer height = 328 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean allowedit = true boolean autohscroll = true boolean vscrollbar = true borderstyle borderstyle = stylelowered! end type event constructor;long i,it_max,no_mxcheck string ls_libname[] i = 1 DECLARE cur_inwaermx CURSOR FOR SELECT u_setliblist.libname from u_setliblist; OPEN cur_inwaermx; FETCH cur_inwaermx INTO :ls_libname[i]; DO WHILE sqlca.SQLCode = 0 i++ FETCH cur_inwaermx INTO :ls_libname[i]; loop CLOSE cur_inwaermx; SELECT count(*) INTO :no_mxcheck FROM u_setliblist ; IF sqlca.SQLCode <> 0 THEN it_max = 0 END IF IF i <> (no_mxcheck+1) THEN it_max = 0 else it_max = i - 1 END IF for i = 1 to it_max THIS.AddItem (ls_libname[i]) next end event type gb_2 from groupbox within w_dwprint_dynamic_saveas integer x = 32 integer y = 8 integer width = 2432 integer height = 524 integer taborder = 20 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 79741120 string text = "导出数据窗口信息" end type