$PBExportHeader$w_event_setting.srw forward global type w_event_setting from window end type type cb_cancel from uo_imflatbutton within w_event_setting end type type cb_del_mx from uo_imflatbutton within w_event_setting end type type cb_add_mx from uo_imflatbutton within w_event_setting end type type cb_refresh from uo_imflatbutton within w_event_setting end type type dw_1 from u_dw_rbtnfilter within w_event_setting end type type tv_1 from uo_tv_bill_event within w_event_setting end type type cb_edit from uo_imflatbutton within w_event_setting end type type cb_exit from uo_imflatbutton within w_event_setting end type type r_bar from rectangle within w_event_setting end type type ln_bar from line within w_event_setting end type type ln_bar2 from line within w_event_setting end type end forward global type w_event_setting from window integer width = 3840 integer height = 2004 boolean titlebar = true string title = "单据事件脚本设置" boolean controlmenu = true boolean minbox = true boolean maxbox = true windowtype windowtype = popup! windowstate windowstate = maximized! long backcolor = 67108864 string icon = "AppIcon!" boolean center = true event ue_retrieve ( ) event ue_face_refresh ( ) cb_cancel cb_cancel cb_del_mx cb_del_mx cb_add_mx cb_add_mx cb_refresh cb_refresh dw_1 dw_1 tv_1 tv_1 cb_edit cb_edit cb_exit cb_exit r_bar r_bar ln_bar ln_bar ln_bar2 ln_bar2 end type global w_event_setting w_event_setting type variables boolean dw_edit_mode = false end variables forward prototypes public function integer wf_save (ref string arg_msg) end prototypes event ue_retrieve();dw_1.retrieve(tv_1.ins_billtype, tv_1.ins_eventtype) end event event ue_face_refresh();cb_cancel.Enabled = dw_edit_mode cb_add_mx.Enabled = dw_edit_mode cb_del_mx.Enabled = dw_edit_mode cb_refresh.Enabled = not dw_edit_mode if dw_edit_mode then cb_edit.Text = '保存' cb_edit.normalpicname = 'Save.bmp' dw_1.SetTabOrder(4, 10) dw_1.SetTabOrder(5, 20) else cb_edit.Text = '修改' cb_edit.normalpicname = 'Open.bmp' dw_1.SetTabOrder(4, 0) dw_1.SetTabOrder(5, 0) end if cb_edit.of_init_draw() cb_edit.of_paint() cb_edit.TriggerEvent('ue_textchanged') end event public function integer wf_save (ref string arg_msg);Int rslt = 1 Long ll_billtype Long ll_eventtype IF tv_1.ins_billtype = 0 Or tv_1.ins_eventtype = 0 THEN rslt = 0 arg_msg = '请选择事件' GOTO ext END IF ll_billtype = tv_1.ins_billtype ll_eventtype = tv_1.ins_eventtype DELETE From sys_event Where billtype = :ll_billtype And eventtype = :ll_eventtype; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除旧脚本失败,' + sqlca.SQLErrText GOTO ext END IF Long ll_row String ls_escript Long ll_isuse FOR ll_row = 1 To dw_1.RowCount() ls_escript = dw_1.Object.escript[ll_row] ll_isuse = dw_1.Object.isuse[ll_row] INSERT INTO sys_event(billtype, eventtype, printid, escript, isuse) Values(:ll_billtype, :ll_eventtype, :ll_row, :ls_escript, :ll_isuse); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入脚本明细失败,' + sqlca.SQLErrText GOTO ext END IF NEXT ext: IF rslt = 0 THEN ROLLBACK; ELSE COMMIT; END IF RETURN rslt end function on w_event_setting.create this.cb_cancel=create cb_cancel this.cb_del_mx=create cb_del_mx this.cb_add_mx=create cb_add_mx this.cb_refresh=create cb_refresh this.dw_1=create dw_1 this.tv_1=create tv_1 this.cb_edit=create cb_edit this.cb_exit=create cb_exit this.r_bar=create r_bar this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.Control[]={this.cb_cancel,& this.cb_del_mx,& this.cb_add_mx,& this.cb_refresh,& this.dw_1,& this.tv_1,& this.cb_edit,& this.cb_exit,& this.r_bar,& this.ln_bar,& this.ln_bar2} end on on w_event_setting.destroy destroy(this.cb_cancel) destroy(this.cb_del_mx) destroy(this.cb_add_mx) destroy(this.cb_refresh) destroy(this.dw_1) destroy(this.tv_1) destroy(this.cb_edit) destroy(this.cb_exit) destroy(this.r_bar) destroy(this.ln_bar) destroy(this.ln_bar2) end on event resize;ln_bar.EndX = THIS.Width ln_bar2.EndX = THIS.Width r_bar.Width = THIS.Width tv_1.Height = WorkSpaceHeight() - tv_1.Y dw_1.Height = tv_1.Height dw_1.Width = WorkSpaceWidth() - dw_1.X end event event open;dw_1.SetTransObject(sqlca) this.triggerevent('ue_face_refresh') cb_refresh.triggerevent(Clicked!) end event type cb_cancel from uo_imflatbutton within w_event_setting integer x = 1001 integer width = 165 integer height = 164 integer taborder = 50 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;if not dw_edit_mode then return dw_edit_mode = not dw_edit_mode parent.triggerevent('ue_face_refresh') parent.triggerevent('ue_retrieve') end event type cb_del_mx from uo_imflatbutton within w_event_setting integer x = 1403 integer width = 219 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;if not dw_edit_mode then return long ll_row ll_row = dw_1.GetRow() if ll_row <= 0 then MessageBox('提示', '请选择行') return end if dw_1.DeleteRow(ll_row) dw_1.SetColumn('escript') dw_1.SetFocus() end event type cb_add_mx from uo_imflatbutton within w_event_setting integer x = 1175 integer width = 219 integer height = 164 integer taborder = 30 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;if not dw_edit_mode then return long ll_row ll_row = dw_1.InsertRow(0) dw_1.ScrollToRow(ll_row) dw_1.SetRow(ll_row) dw_1.SetColumn('escript') dw_1.SetFocus() end event type cb_refresh from uo_imflatbutton within w_event_setting integer x = 1632 integer width = 165 integer height = 164 integer taborder = 20 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;parent.triggerevent('ue_retrieve') end event type dw_1 from u_dw_rbtnfilter within w_event_setting integer x = 841 integer y = 192 integer width = 3538 integer height = 1820 integer taborder = 30 boolean bringtotop = true string dataobject = "dw_sys_event" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true string cur_allowversion = "0" end type event constructor;// titleclick_sort_use=true //单击标题排序功能开关 // RBUTTON_FILTER_USE=true //右键查询功能开关 // end event event doubleclicked;call super::doubleclicked;Long ll_row String lpo_object s_script_edit s_script IF Not dw_edit_mode THEN RETURN ll_row = dw_1.GetRow() IF ll_row <= 0 THEN RETURN dw_1.AcceptText() //openwithparm(w_outware_error,ss_outware_error) s_script.billtype= tv_1.ins_billtype s_script.lpo_object=dw_1.Object.escript[ll_row] OpenWithParm(w_script_edit,s_script ) lpo_object = String( Message.StringParm) IF lpo_object <> '' THEN dw_1.Object.escript[ll_row] = lpo_object end event event retrieveend;call super::retrieveend;//cb_1.Enabled = cb_reol //if_retrieveing = FALSE // //IF Dec(cur_vspos) > 0 THEN // THIS.Modify("DataWindow.VerticalScrollPosition="+cur_vspos) //END IF // end event event retrievestart;call super::retrievestart;//cb_reol = cb_1.Enabled //cb_1.Enabled = FALSE //if_retrieveing = TRUE // //cur_vspos = THIS.Describe("DataWindow.VerticalScrollPosition") // 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;//PARENT.TRIGGEREVENT('USER_KEY') end event type tv_1 from uo_tv_bill_event within w_event_setting integer y = 184 integer taborder = 20 end type event selectionchanged;call super::selectionchanged;//MessageBox(string(ins_billtype), string (ins_eventtype)) dw_1.Retrieve(ins_billtype, ins_eventtype) end event event selectionchanging;call super::selectionchanging;if dw_edit_mode then return 1 end event type cb_edit from uo_imflatbutton within w_event_setting integer x = 827 integer width = 165 integer height = 164 integer taborder = 10 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 tv_1.ins_billtype = 0 OR tv_1.ins_eventtype = 0 then MessageBox('错误', '请选择事件', StopSign!) return end if dw_1.AcceptText() if dw_edit_mode then if wf_save(ls_msg) <> 1 then MessageBox('错误', ls_msg, StopSign!) return end if parent.triggerevent('ue_retrieve') else if dw_1.RowCount() <= 0 then dw_1.InsertRow(0) end if dw_1.SetRow(1) dw_1.SetColumn('escript') dw_1.SetFocus() end if dw_edit_mode = not dw_edit_mode parent.triggerEvent('ue_face_refresh') end event type cb_exit from uo_imflatbutton within w_event_setting integer x = 1806 integer width = 165 integer height = 164 integer taborder = 10 boolean bringtotop = true string text = "取消" string normalpicname = "exit.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Close(parent) end event type r_bar from rectangle within w_event_setting long linecolor = 16777215 integer linethickness = 4 long fillcolor = 1073741824 integer x = 690 integer y = 4 integer width = 87 integer height = 68 end type event constructor;this.fillcolor = 14215660 this.linecolor = 14215660 this.x = -1 this.y = -1 this.height = ln_bar.beginy - 5 end event type ln_bar from line within w_event_setting long linecolor = 268435456 integer linethickness = 4 integer beginy = 172 integer endx = 4425 integer endy = 172 end type type ln_bar2 from line within w_event_setting long linecolor = 16777215 integer linethickness = 4 integer beginy = 176 integer endx = 4498 integer endy = 176 end type