$PBExportHeader$w_pageretr_ch2.srw $PBExportComments$分页选择窗口 forward global type w_pageretr_ch2 from w_pageretr_ch end type type cbx_ml from checkbox within w_pageretr_ch2 end type type cb_ok from uo_imflatbutton within w_pageretr_ch2 end type type cb_del from uo_imflatbutton within w_pageretr_ch2 end type type cbx_mlselect from checkbox within w_pageretr_ch2 end type type dw_choice from datawindow within w_pageretr_ch2 end type type cbx_allselect from checkbox within w_pageretr_ch2 end type end forward global type w_pageretr_ch2 from w_pageretr_ch integer width = 3611 integer height = 2380 string title = "库存选择 [按Ctrl键反选]" event ue_retrieve_info ( ) cbx_ml cbx_ml cb_ok cb_ok cb_del cb_del cbx_mlselect cbx_mlselect dw_choice dw_choice cbx_allselect cbx_allselect end type global w_pageretr_ch2 w_pageretr_ch2 type variables //s_mtrlware_noalloc_array INS_RT_STRU boolean if_changeselect=true int if_mlselect=0 end variables forward prototypes public function integer wf_face_change () end prototypes event ue_retrieve_info();//Long ll_row //Long ll_mtrlid // //ll_row = dw_pageretr.GetRow() // //IF ll_row <= 0 THEN // ll_mtrlid = 0 //ELSE // ll_mtrlid = dw_pageretr.Object.mtrlid[ll_row] //END IF // //IF IsValid(w_mtrl_info) THEN // w_mtrl_info.WindowState = Normal! // w_mtrl_info.ins_mtrlid = ll_mtrlid // w_mtrl_info.wf_retrieve(ll_mtrlid) //END IF // end event public function integer wf_face_change ();//wf_face_change() IF cbx_ml.Checked THEN dw_pageretr.Height = this.height - dw_pageretr.y - 140 dw_choice.Visible = FALSE cb_ok.Visible = FALSE cb_del.Visible = FALSE ELSE dw_pageretr.Height = 1040 dw_choice.Visible = TRUE cb_ok.Visible = TRUE cb_del.Visible = TRUE END IF dw_pageretr.X = 9 dw_pageretr.Width = this.Width - dw_pageretr.x - 40 dw_choice.X = 9 dw_choice.Width = this.Width - dw_choice.x - 40 RETURN 1 end function on w_pageretr_ch2.create int iCurrent call super::create this.cbx_ml=create cbx_ml this.cb_ok=create cb_ok this.cb_del=create cb_del this.cbx_mlselect=create cbx_mlselect this.dw_choice=create dw_choice this.cbx_allselect=create cbx_allselect iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cbx_ml this.Control[iCurrent+2]=this.cb_ok this.Control[iCurrent+3]=this.cb_del this.Control[iCurrent+4]=this.cbx_mlselect this.Control[iCurrent+5]=this.dw_choice this.Control[iCurrent+6]=this.cbx_allselect end on on w_pageretr_ch2.destroy call super::destroy destroy(this.cbx_ml) destroy(this.cb_ok) destroy(this.cb_del) destroy(this.cbx_mlselect) destroy(this.dw_choice) destroy(this.cbx_allselect) end on event ue_before_open;call super::ue_before_open;if_ue_retr=true if_ue_sort=true end event event close;call super::close;//cLOSEWITHRETURN(THIS,INS_RT_STRU) // 窗体级子定义结构变量,用于返回 end event event open; This.TriggerEvent('ue_before_open') wf_movetocenter() OLD_TITLE = This.Title s_tran = Message.PowerObjectParm IF Not IsNull(s_tran) THEN retrieve_all = s_tran.if_retrieve_all mode = s_tran.work_mode arg_pkid = s_tran.arg_pkid arg_string_code = s_tran.arg_string_code END IF //////////////// // This.Title = This.Title //////////////// // dw_pageretr.RBUTTON_FILTER_USE = True //右键查询功能开关 dw_pageretr.titleclick_sort_use = True //单击标题排序功能开关 dw_pageretr.SetTransObject (sqlca) pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字 ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select") ls_newselect = ori_oldselect ds_curquery = Create DATASTORE ds_curquery.DataObject = 'd_extr_find' ds_curquery.SetTransObject (sqlca) wf_editindex_lockf() IF Not retrieve_all And Trim(arg_string_code) <> '' THEN sle_usual_query.Text = Trim(arg_string_code) This.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve ELSE wf_retrieveuc(dw_pageretr,ls_newselect,1) This.TriggerEvent('RETRIEVE_pageretr') END IF IF retrieve_all And Trim(arg_string_code) <> '' THEN This.TriggerEvent("ue_usual_query_filt") END IF dw_choice.SetTransObject(sqlca) wf_face_change() //s_hide_col s_col //s_col.col_1 = 'cost' //s_col.col_2 = 'wareamt' //f_hide_col(490,dw_pageretr,s_col) //f_hide_col(490,dw_choice,s_col) // //s_hide_col s_col_mtrlsectype //s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype' //f_hide_col(1308,dw_pageretr,s_col_mtrlsectype) //f_hide_col(1308,dw_choice,s_col_mtrlsectype) // //s_hide_col s_col_zxmtrlmode //s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode' //f_hide_col(1309,dw_pageretr,s_col_zxmtrlmode) //f_hide_col(1309,dw_choice,s_col_zxmtrlmode) end event event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled cb_nextpage_enabled=cb_nextpage.enabled cb_retrieveall_enabled=cb_retrieveall.enabled cb_func_enabled=cb_func.enabled cb_nextpage.enabled=false cb_retrieveall.enabled=false cb_func.enabled=false SetPointer(HourGlass!) dw_pageretr.retrieve() if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1) SetPointer(Arrow!) cb_nextpage.enabled=cb_nextpage_enabled cb_retrieveall.enabled=cb_retrieveall_enabled cb_func.enabled=cb_func_enabled IF cbx_mlselect.Checked AND dw_pageretr.RowCount() > 1 THEN dw_pageretr.SelectRow(1,FALSE) END IF end event event ue_usual_query_filt;call super::ue_usual_query_filt;//string obj_expr='' //if trim(sle_usual_query.text)<>'' then // IF POS(trim(sle_usual_query.text),'%')=0 THEN // obj_expr=obj_expr+'( u_mtrldef_mtrlcode LIKE "%'+trim(sle_usual_query.text)+'%") ' // obj_expr=obj_expr+' or ( u_mtrldef_mtrlname LIKE "%'+trim(sle_usual_query.text)+'%" )' // ELSE // obj_expr=obj_expr+'( u_mtrldef_mtrlcode LIKE "'+trim(sle_usual_query.text)+'" )' // obj_expr=obj_expr+' or ( u_mtrldef_mtrlname LIKE "'+trim(sle_usual_query.text)+'" )' // END IF //end if // //dw_pageretr.setfilter(obj_expr) // //dw_pageretr.SetRedraw(False) //dw_pageretr.filter() //if dw_pageretr.rowcount()>=1 then // dw_pageretr.selectrow(0,false) // dw_pageretr.selectrow(1,true ) //end if //dw_pageretr.SetRedraw(TRUE ) end event event ue_usual_query_retr;call super::ue_usual_query_retr;//String ls_querystrpart = '' //ls_newselect = Lower(ori_oldselect) //IF Trim(sle_usual_query.Text) <> '' THEN // IF Pos(Trim(sle_usual_query.Text),'%') = 0 THEN // ls_querystrpart = ls_querystrpart + "(u_mtrldef.mtrlcode like '%"+Trim(sle_usual_query.Text)+"%'" // ls_querystrpart = ls_querystrpart + " or u_mtrldef.mtrlname like '%"+Trim(sle_usual_query.Text)+"%')" // ELSE // ls_querystrpart = ls_querystrpart + "( u_mtrldef.mtrlcode like '"+Trim(sle_usual_query.Text)+"'" // ls_querystrpart = ls_querystrpart + " or u_mtrldef.mtrlname like '"+Trim(sle_usual_query.Text)+"')" // END IF // // IF Pos(ls_newselect," where ") <> 0 THEN // ls_newselect = ls_newselect+" AND ("+ls_querystrpart+')' // ELSE // ls_newselect = ls_newselect+" where ("+ls_querystrpart+')' // END IF //END IF //wf_retrieveuc(dw_pageretr,ls_newselect,1) //THIS.TriggerEvent('retrieve_pageretr') // // end event type cb_func from w_pageretr_ch`cb_func within w_pageretr_ch2 end type type cb_exit from w_pageretr_ch`cb_exit within w_pageretr_ch2 end type type sle_usual_query from w_pageretr_ch`sle_usual_query within w_pageretr_ch2 integer x = 347 end type type cb_retrieveall from w_pageretr_ch`cb_retrieveall within w_pageretr_ch2 integer x = 1175 end type type em_pagerowno from w_pageretr_ch`em_pagerowno within w_pageretr_ch2 integer x = 859 end type type dw_pageretr from w_pageretr_ch`dw_pageretr within w_pageretr_ch2 integer x = 9 integer width = 3575 integer height = 1040 string dataobject = "dw_mtrlware_noalloc_storageid_ch" end type event dw_pageretr::clicked;IF row > 0 THEN This.SetRow(row) IF if_mlselect = 1 THEN IF if_changeselect THEN This.SelectRow(row,Not This.IsSelected(row)) ELSE if_changeselect = True END IF ELSE This.SelectRow(0,False) This.SelectRow(row,True) END IF END IF end event event dw_pageretr::doubleclicked;IF cbx_ml.Checked THEN cb_choice.TriggerEvent(Clicked!) ELSE cb_ok.TriggerEvent(Clicked!) //缓冲 END IF end event event dw_pageretr::rowfocuschanged;IF if_mlselect = 1 THEN IF currentrow <= 0 THEN RETURN IF KeyDown(keycontrol!) THEN IF This.IsSelected(currentrow) THEN This.SelectRow(currentrow,False) if_changeselect = False ELSE if_changeselect = True END IF ELSE IF Not This.IsSelected(currentrow) THEN This.SelectRow(currentrow,True) if_changeselect = False ELSE if_changeselect = True END IF END IF ELSE IF dw_edit_mode THEN RETURN IF currentrow <= 0 THEN RETURN This.SelectRow(0,False) This.SelectRow(currentrow,True) END IF Parent.TriggerEvent('ue_retrieve_info') end event event dw_pageretr::dwnkey;call super::dwnkey;IF KeyDown(keyenter!) THEN RETURN 1 end event type st_1 from w_pageretr_ch`st_1 within w_pageretr_ch2 integer x = 14 integer width = 343 string text = "编码/名称含:" end type type cb_nextpage from w_pageretr_ch`cb_nextpage within w_pageretr_ch2 integer x = 1326 end type type cb_choice from w_pageretr_ch`cb_choice within w_pageretr_ch2 integer taborder = 120 end type event cb_choice::clicked;call super::clicked;//Long ROW,ls_i = 0,chC = 0 // //datawindow dw //IF cbx_ml.Checked THEN // dw = dw_pageretr // // ROW = dw.GetRow() // IF ROW <= 0 THEN // MessageBox('提示','请先选择目标行!', Information!, OK! ) // RETURN // END IF //ELSE // dw = dw_choice // dw.AcceptText() // ROW = dw.RowCount() // IF ROW <= 0 THEN // MessageBox('提示','请先选择缓冲目标!', Information!, OK! ) // RETURN // END IF //END IF // // //FOR ls_i = 1 To dw.RowCount() // IF not cbx_ml.Checked or dw.IsSelected(ls_i) THEN // chC++ // INS_RT_STRU.mtrlwareid[chC] = dw.Object.mtrlwareid[ls_i] // INS_RT_STRU.mtrlid[chC] = dw.Object.mtrlid[ls_i] // INS_RT_STRU.u_mtrldef_mtrlcode[chC] = dw.Object.u_mtrldef_mtrlcode[ls_i] // INS_RT_STRU.u_mtrldef_mtrlname[chC] = dw.Object.u_mtrldef_mtrlname[ls_i] // INS_RT_STRU.u_mtrldef_mtrlmode[chC] = dw.Object.mtrlmode[ls_i] // INS_RT_STRU.u_mtrldef_unit[chC] = dw.Object.u_mtrldef_unit[ls_i] // INS_RT_STRU.u_mtrldef_prdpackcode[chC] = dw.Object.u_mtrldef_prdpackcode[ls_i] // INS_RT_STRU.u_mtrldef_packqty[chC] = dw.Object.u_mtrldef_packqty[ls_i] // // INS_RT_STRU.noallocqty[chC] = dw.Object.noallocqty[ls_i] // INS_RT_STRU.cost[chC] = dw.Object.cost[ls_i] // INS_RT_STRU.planprice[chC] = dw.Object.planprice[ls_i] // INS_RT_STRU.storageid[chC] = dw.Object.storageid[ls_i] // INS_RT_STRU.plancode[chC] = dw.Object.plancode[ls_i] // INS_RT_STRU.status[chC] = dw.Object.u_mtrlware_status[ls_i] // INS_RT_STRU.sptid[chC] = dw.Object.u_mtrlware_sptid[ls_i] // INS_RT_STRU.dxflag[chC] = dw.Object.u_mtrlware_dxflag[ls_i] // INS_RT_STRU.noauditingqty[chC] = dw.Object.noauditingqty[ls_i] // INS_RT_STRU.woodcode[chC] = dw.Object.u_mtrlware_woodcode[ls_i] // INS_RT_STRU.pcode[chC] = dw.Object.u_mtrlware_pcode[ls_i] // INS_RT_STRU.u_mtrldef_mtrlsectype[chC] = dw.Object.u_mtrldef_mtrlsectype[ls_i] // INS_RT_STRU.u_mtrldef_zxmtrlmode[chC] = dw.Object.u_mtrldef_zxmtrlmode[ls_i] // INS_RT_STRU.sptcode[chC] = dw.Object.sptcode[ls_i] // INS_RT_STRU.sptname[chC] = dw.Object.sptname[ls_i] // INS_RT_STRU.noallocaddqty[chC] = dw.Object.noallocaddqty[ls_i] // INS_RT_STRU.noauditingaddqty[chC] = dw.Object.noauditingaddqty[ls_i] // INS_RT_STRU.wareamt[chC] = dw.Object.wareamt[ls_i] // INS_RT_STRU.barcode[chC] = dw.Object.u_mtrldef_barcode[ls_i] // IF IsNull(INS_RT_STRU.noauditingqty[chC]) THEN INS_RT_STRU.noauditingqty[ls_i] = 0 // IF IsNull(INS_RT_STRU.noauditingaddqty[chC]) THEN INS_RT_STRU.noauditingaddqty[ls_i] = 0 // END IF //NEXT //IF chC = 0 THEN // MessageBox('提示','请至少选择一个目标行!', Information!, OK! ) // RETURN //END IF //CLOSE(PARENT) end event type cb_refresh from w_pageretr_ch`cb_refresh within w_pageretr_ch2 end type type cb_help from w_pageretr_ch`cb_help within w_pageretr_ch2 end type type ln_bar from w_pageretr_ch`ln_bar within w_pageretr_ch2 end type type ln_bar2 from w_pageretr_ch`ln_bar2 within w_pageretr_ch2 end type type r_bar from w_pageretr_ch`r_bar within w_pageretr_ch2 integer x = 1307 end type type ln_1 from w_pageretr_ch`ln_1 within w_pageretr_ch2 end type type ln_2 from w_pageretr_ch`ln_2 within w_pageretr_ch2 end type type cbx_ml from checkbox within w_pageretr_ch2 integer x = 878 integer y = 196 integer width = 357 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 700 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 long backcolor = 134217739 string text = "直接多选" end type event clicked;wf_face_change() Int use_ml IF This.Checked THEN //缓冲 use_ml = 0 ELSE use_ml = 1 END IF f_SetProfileString (sys_empid,dw_pageretr.DataObject, "use_ml", String(use_ml)) end event event constructor;Int use_ml use_ml = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "use_ml", '0')) IF use_ml = 0 THEN This.Checked = True ELSE This.Checked = False END IF end event type cb_ok from uo_imflatbutton within w_pageretr_ch2 integer x = 2775 integer y = 1348 integer width = 379 integer taborder = 60 boolean bringtotop = true string text = "选定[Enter]" end type event clicked;call super::clicked;//Long ROW,ls_i,chC = 0 //ROW = dw_pageretr.GetRow() //IF ROW <= 0 THEN // MessageBox('提示','请先选择目标行!', Information!, OK! ) // RETURN //END IF // //FOR ls_i = 1 To dw_pageretr.RowCount() // IF dw_pageretr.IsSelected(ls_i) THEN // IF dw_choice.Find('mtrlwareid ='+String(dw_pageretr.Object.mtrlwareid[ls_i]),1,dw_choice.RowCount()) = 0 THEN // chC++ // dw_pageretr.RowsCopy(ls_i, ls_i, Primary!, dw_choice, dw_choice.RowCount() + 1, Primary!) // END IF // END IF //NEXT // end event type cb_del from uo_imflatbutton within w_pageretr_ch2 integer x = 3173 integer y = 1348 integer width = 311 integer taborder = 140 boolean bringtotop = true string text = "删除" string normalpicname = "delete.bmp" end type event clicked;call super::clicked;IF dw_choice.GETROW()=0 THEN MESSAGEBOX('提示','请选择删除的行对象!', Information!, OK! ) RETURN END IF dw_choice.DeleteRow (0) dw_choice.TriggerEvent (rowfocuschanged!) end event type cbx_mlselect from checkbox within w_pageretr_ch2 integer x = 1317 integer y = 196 integer width = 219 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 string text = "多选" end type event clicked;if this.checked then if_mlselect=1 // cbx_selectall.visible=true else if_mlselect=0 // cbx_selectall.visible=false end if f_SetProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", string(if_mlselect)) end event event constructor;if_mlselect=integer(f_ProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", '0')) if if_mlselect =0 then this.checked=false // cbx_selectall.visible=false else this.checked=true // cbx_selectall.visible=true end if end event type dw_choice from datawindow within w_pageretr_ch2 integer x = 9 integer y = 1460 integer width = 3575 integer height = 824 integer taborder = 130 string title = "none" string dataobject = "dw_mtrlware_noalloc_storageid_ch" boolean minbox = true boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean livescroll = true borderstyle borderstyle = stylelowered! end type event rowfocuschanged;IF currentrow <=0 THEN RETURN this.selectrow(0,false) this.selectrow(currentrow,true) end event type cbx_allselect from checkbox within w_pageretr_ch2 integer x = 1618 integer y = 196 integer width = 256 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 string text = "全选" end type event clicked;Int li IF THIS.Checked AND cbx_mlselect.Checked THEN FOR li = 1 TO dw_pageretr.RowCount() dw_pageretr.SelectRow(li,TRUE) NEXT ELSE FOR li = 1 TO dw_pageretr.RowCount() dw_pageretr.SelectRow(li,FALSE) NEXT END IF end event event constructor;Int li IF THIS.Checked AND cbx_mlselect.Checked THEN FOR li = 1 TO dw_pageretr.RowCount() dw_pageretr.SelectRow(li,TRUE) NEXT ELSE FOR li = 1 TO dw_pageretr.RowCount() dw_pageretr.SelectRow(li,FALSE) NEXT END IF end event