$PBExportHeader$w_cd_custs.srw forward global type w_cd_custs from w_publ_base_style end type type dw_1 from u_dw_rbtnfilter within w_cd_custs end type type cb_1 from uo_imflatbutton within w_cd_custs end type type cb_2 from uo_imflatbutton within w_cd_custs end type type dw_2 from u_dw_rbtnfilter within w_cd_custs end type end forward global type w_cd_custs from w_publ_base_style integer width = 3465 integer height = 2044 string title = "门店管理" boolean maxbox = true boolean resizable = true event retrieve_dw1 ( ) event retrieve_mx ( ) dw_1 dw_1 cb_1 cb_1 cb_2 cb_2 dw_2 dw_2 end type global w_cd_custs w_cd_custs event retrieve_dw1();// DONE: 获取客户列表 Long i, row, cnt oleobject custs, cust String arg_msg custs = AppCom.GetCusts(app_token, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF dw_1.SetRedraw(False) dw_1.Reset() cnt = custs.Count FOR i = 1 To cnt cust = custs.GetItem(i - 1) row = dw_1.InsertRow(0) dw_1.SetItem(row, 'cusid', cust.GetInt('cusid')) dw_1.SetItem(row, 'cuscode', cust.GetString('cuscode')) dw_1.SetItem(row, 'cusname', cust.GetString('cusname')) dw_1.SetItem(row, 'simplename', cust.GetString('simplename')) dw_1.SetItem(row, 'custype', cust.GetString('custype')) dw_1.SetItem(row, 'tele', cust.GetString('tele')) dw_1.SetItem(row, 'address', cust.GetString('address')) dw_1.SetItem(row, 'freight', cust.GetString('freight')) dw_1.SetItem(row, 'freight_tele', cust.GetString('freight_tele')) dw_1.SetItem(row, 'inuse', cust.GetInt('inuse')) dw_1.SetItem(row, 'precode', cust.GetString('precode')) NEXT dw_1.SetRedraw(True) row = dw_1.GetRow() IF row > 0 THEN dw_1.SelectRow(row, True) END IF This.TriggerEvent('retrieve_mx') end event event retrieve_mx();Long ll_cusid, row dw_2.Reset() row = dw_1.GetRow() IF row <= 0 THEN RETURN END IF ll_cusid = dw_1.Object.cusid[row] if isnull(ll_cusid) then return oleobject users, user Long i String arg_msg = '' users = AppCom.GetUsers(app_token, ll_cusid, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF dw_2.SetRedraw(False) Long ll_cnt, ll_row ll_cnt = users.Count FOR i = 1 To ll_cnt user = users.GetItem(i - 1) ll_row = dw_2.InsertRow(0) dw_2.SetItem(ll_row, 'userid', user.GetInt('userid')) dw_2.SetItem(ll_row, 'cusid', user.GetInt('cusid')) dw_2.SetItem(ll_row, 'usercode', user.GetString('usercode')) dw_2.SetItem(ll_row, 'username', user.GetString('username')) dw_2.SetItem(ll_row, 'tele', user.GetString('tele')) dw_2.SetItem(ll_row, 'email', user.GetString('email')) dw_2.SetItem(ll_row, 'qq', user.GetString('qq')) dw_2.SetItem(ll_row, 'address', user.GetString('address')) dw_2.SetItem(ll_row, 'inuse', user.GetInt('inuse')) dw_2.SetItem(ll_row, 'usertype', user.GetInt('usertype')) NEXT dw_2.SetRedraw(True) end event on w_cd_custs.create int iCurrent call super::create this.dw_1=create dw_1 this.cb_1=create cb_1 this.cb_2=create cb_2 this.dw_2=create dw_2 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.dw_1 this.Control[iCurrent+2]=this.cb_1 this.Control[iCurrent+3]=this.cb_2 this.Control[iCurrent+4]=this.dw_2 end on on w_cd_custs.destroy call super::destroy destroy(this.dw_1) destroy(this.cb_1) destroy(this.cb_2) destroy(this.dw_2) end on event resize;call super::resize;dw_1.width = (this.workspacewidth() - dw_1.x) / 2 dw_2.x = dw_1.x + dw_1.width dw_2.width = dw_1.width dw_1.height = this.workspaceheight() - dw_1.Y dw_2.height = dw_1.height end event event open;call super::open;this.triggerevent('retrieve_dw1') end event type cb_func from w_publ_base_style`cb_func within w_cd_custs integer x = 425 end type type cb_exit from w_publ_base_style`cb_exit within w_cd_custs integer x = 576 end type type ln_bar from w_publ_base_style`ln_bar within w_cd_custs end type type ln_bar2 from w_publ_base_style`ln_bar2 within w_cd_custs end type type r_bar from w_publ_base_style`r_bar within w_cd_custs end type type dw_1 from u_dw_rbtnfilter within w_cd_custs integer y = 188 integer width = 2208 integer height = 1500 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_cd_cust" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean titleclick_sort_use = true end type event clicked;call super::clicked;this.selectrow(0, false) if row > 0 then this.setrow(row) this.selectrow(row, true) end if end event event rowfocuschanged;call super::rowfocuschanged;parent.triggerevent('retrieve_mx') end event type cb_1 from uo_imflatbutton within w_cd_custs integer width = 151 integer height = 164 integer taborder = 30 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('retrieve_dw1') end event type cb_2 from uo_imflatbutton within w_cd_custs integer x = 151 integer width = 274 integer height = 164 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;Open(w_cd_cust_ch) s_custom s_tran s_tran = Message.PowerObjectParm oleobject custs, cus custs = AppCom.CreArrOfPbDictionary() Long i String ls_cuscode, ls_cusname, ls_custype, ls_simplename, ls_tele, ls_address, ls_freight, ls_freight_tele FOR i = 1 To UpperBound(s_tran.cusid_arr) IF s_tran.cusid_arr[i] > 0 THEN SELECT cuscode, name, custype, simplename, tele, address, freight, freight_tele INTO :ls_cuscode, :ls_cusname, :ls_custype, :ls_simplename, :ls_tele, :ls_address, :ls_freight, :ls_freight_tele FROM u_cust Where cusid = :s_tran.cusid_arr[i]; IF sqlca.SQLCode <> 0 THEN MessageBox('ERROR', '查询客户信息失败,' + sqlca.SQLErrText) RETURN END IF cus = AppCom.CreatePbDictionary() cus.SetInt('cusid', s_tran.cusid_arr[i]) cus.SetString('cuscode', ls_cuscode) cus.SetString('cusname', ls_cusname) cus.SetString('simplename', ls_simplename) cus.SetString('custype', ls_custype) cus.SetString('tele', ls_tele) cus.SetString('address', ls_address) cus.SetString('freight', ls_freight) cus.SetString('freight_tele', ls_freight_tele) cus.SetString('precode', ls_cuscode) cus.SetString('usercode', ls_cuscode) cus.SetString('psw', ls_cuscode) custs.Add(cus) END IF NEXT Long ll_cnt String arg_msg ll_cnt = custs.Count IF ll_cnt > 0 THEN IF AppCom.AddCusts(app_token, custs, Ref arg_msg) <> True THEN MessageBox('ERROR', arg_msg) RETURN END IF Parent.TriggerEvent('retrieve_dw1') END IF end event type dw_2 from u_dw_rbtnfilter within w_cd_custs integer x = 2240 integer y = 188 integer width = 2208 integer height = 1500 integer taborder = 30 boolean bringtotop = true string dataobject = "dw_cd_user" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean titleclick_sort_use = true end type event clicked;call super::clicked;this.selectrow(0, false) if row > 0 then this.setrow(row) this.selectrow(row, true) end if end event