123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502 |
- $PBExportHeader$w_workprice_pro_ch.srw
- forward
- global type w_workprice_pro_ch from w_pageretr_ch
- end type
- type cbx_mlselect from checkbox within w_workprice_pro_ch
- end type
- type cbx_all from checkbox within w_workprice_pro_ch
- end type
- end forward
- global type w_workprice_pro_ch from w_pageretr_ch
- integer width = 3250
- integer height = 2236
- string title = "物料工价表工序选择 [按Ctrl键反选]"
- cbx_mlselect cbx_mlselect
- cbx_all cbx_all
- end type
- global w_workprice_pro_ch w_workprice_pro_ch
- type variables
- s_workpricetable_array INS_RT_STRU
- Boolean if_changeselect = TRUE
- Int if_mlselect = 0
- string ins_procode
- end variables
- forward prototypes
- public function integer wf_retrieveuc (datawindow arg_dw, string arg_newselect, integer arg_retrmode)
- end prototypes
- public function integer wf_retrieveuc (datawindow arg_dw, string arg_newselect, integer arg_retrmode);//====================================================================
- // Function: wf_retrieveuc()
- //--------------------------------------------------------------------
- // Description: 分页拼retr语句
- //--------------------------------------------------------------------
- // Arguments:
- // integer arg_retrmode: 0 retrieve all;1 first page ;2 prior page;3 next page;4 last page
- //--------------------------------------------------------------------
- // Returns: integer
- //--------------------------------------------------------------------
- // Author: yyx Date: 2003.10.17
- //--------------------------------------------------------------------
- // Modify History:
- //
- //====================================================================
- //取得当前的最大\最小ID
- //按上下翻页命令,拼接最新SELECT语句
- retrmode=arg_retrmode
- IF arg_retrmode=0 or retrieve_all THEN
- arg_dw.Modify("datawindow.table.select = ~"" + arg_newselect+ "~"")
- GOTO EXT
- END IF
- string cur_page_newselect,ls_pkcolname,LS_PAGE_ter=''
- cur_page_newselect=lower(trim(arg_newselect))
- LONG MAX_ID=0,MIN_ID=0,LS_I,ls_id
- ls_pkcolname=arg_dw.Describe("#1.name") //取得ID列名称
- if arg_retrmode<>1 then
- MAX_ID=0
- Min_ID=0
- FOR LS_I=1 TO arg_dw.ROWCOUNT()
- ls_id=arg_dw.GetItemNumber(ls_i, ls_pkcolname)
- if LS_I=1 then
- MAX_ID=ls_id
- Min_ID=ls_id
- end if
- if not isnull(ls_id) then
- if MAX_ID<ls_id then MAX_ID=ls_id
- if Min_ID>ls_id then Min_ID=ls_id
- end if
- NEXT
- FOR LS_I=1 TO arg_dw.FilteredCount()
- ls_id=arg_dw.GetItemNumber(ls_i, ls_pkcolname,filter!,true)
- if LS_I=1 and MAX_ID=0 and Min_ID=0 then
- MAX_ID=ls_id
- Min_ID=ls_id
- end if
- if not isnull(ls_id) then
- if MAX_ID<ls_id then MAX_ID=ls_id
- if Min_ID>ls_id then Min_ID=ls_id
- end if
- NEXT
- end if
- cur_page_newselect=trim(cur_page_newselect)
- IF not (retrieve_all or retrmode=0) then
- cur_page_newselect='select top '+string(onepage_rowlmno)+' '+mid( cur_page_newselect , 16)
- end if
- CHOOSE CASE arg_retrmode
- CASE 1 //第一页
- LS_PAGE_ter=''
- CASE 2 //上一页
- LS_PAGE_ter=pkcolumndbtname+'>'+STRING(MAX_ID)
- CASE 3 //下一页
- LS_PAGE_ter=pkcolumndbtname+'<'+STRING(Min_ID)
- CASE 4 //末页
- LS_PAGE_ter=''
- END CHOOSE
- IF TRIM(LS_PAGE_ter)<>'' THEN
- if Pos(cur_page_newselect," where ") <> 0 then
- cur_page_newselect=cur_page_newselect+" AND ("+LS_PAGE_ter+')'
- else
- cur_page_newselect=cur_page_newselect+" WHERE ("+LS_PAGE_ter+')'
- end if
- END IF
- IF arg_retrmode=2 or arg_retrmode=4 THEN
- cur_page_newselect=cur_page_newselect+' ORDER BY '+pkcolumndbtname
- ELSE
- cur_page_newselect=cur_page_newselect+' ORDER BY '+pkcolumndbtname+' DESC'
- END IF
- arg_dw.Modify("datawindow.table.select = ~"" + cur_page_newselect+ "~"")
- EXT:
- RETURN 1
- end function
- on w_workprice_pro_ch.create
- int iCurrent
- call super::create
- this.cbx_mlselect=create cbx_mlselect
- this.cbx_all=create cbx_all
- iCurrent=UpperBound(this.Control)
- this.Control[iCurrent+1]=this.cbx_mlselect
- this.Control[iCurrent+2]=this.cbx_all
- end on
- on w_workprice_pro_ch.destroy
- call super::destroy
- destroy(this.cbx_mlselect)
- destroy(this.cbx_all)
- 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)
- //<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
- ins_procode = s_tran.c_string
- END IF
- 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
- 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(ins_procode)
- 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
- 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_sc_workprice.proname like '%"+Trim(sle_usual_query.Text)+"%'"
- ELSE
- ls_querystrpart = ls_querystrpart + " or u_sc_workprice.proname 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_workprice_pro_ch
- end type
- type cb_exit from w_pageretr_ch`cb_exit within w_workprice_pro_ch
- end type
- type sle_usual_query from w_pageretr_ch`sle_usual_query within w_workprice_pro_ch
- boolean visible = false
- integer x = 357
- end type
- type cb_retrieveall from w_pageretr_ch`cb_retrieveall within w_workprice_pro_ch
- boolean visible = false
- end type
- type em_pagerowno from w_pageretr_ch`em_pagerowno within w_workprice_pro_ch
- boolean visible = false
- end type
- type dw_pageretr from w_pageretr_ch`dw_pageretr within w_workprice_pro_ch
- integer width = 3223
- integer height = 1848
- string dataobject = "dw_workprice_pro_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;
- cb_choice.TriggerEvent(Clicked!)
- 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
- 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_workprice_pro_ch
- boolean visible = false
- integer x = 23
- integer width = 343
- string text = "工序名称含:"
- end type
- type cb_nextpage from w_pageretr_ch`cb_nextpage within w_workprice_pro_ch
- boolean visible = false
- string normalpicname = ""
- end type
- type cb_choice from w_pageretr_ch`cb_choice within w_workprice_pro_ch
- integer taborder = 120
- end type
- event cb_choice::clicked;call super::clicked;Long ROW,ls_i = 0,chC = 0
- dw_pageretr.AcceptText()
- ROW = dw_pageretr.RowCount()
- IF ROW <= 0 THEN
- MessageBox('系统提示','请先选择目标行!',StopSign!)
- RETURN
- END IF
- FOR ls_i = 1 TO dw_pageretr.RowCount()
- IF dw_pageretr.IsSelected(ls_i) THEN
- chC++
-
- ins_rt_stru.mtrlid[chC] = dw_pageretr.Object.mtrlid[ls_i]
- ins_rt_stru.mtrlname[chC] = dw_pageretr.Object.u_mtrldef_mtrlname[ls_i]
- ins_rt_stru.mtrlcode[chC] = dw_pageretr.Object.u_mtrldef_mtrlcode[ls_i]
- ins_rt_stru.mtrlsectype[chC] = dw_pageretr.Object.u_mtrldef_mtrlsectype[ls_i]
- ins_rt_stru.mtrlmode[chC] = dw_pageretr.Object.u_mtrldef_mtrlmode[ls_i]
- ins_rt_stru.dscrp[chC] = dw_pageretr.Object.dscrp[ls_i]
- ins_rt_stru.procode[chC] = dw_pageretr.Object.procode[ls_i]
- ins_rt_stru.proname[chC] = dw_pageretr.Object.u_sc_workprice_proname[ls_i]
- ins_rt_stru.worklevel[chC] = dw_pageretr.Object.worklevel[ls_i]
- ins_rt_stru.techlevel[chC] = dw_pageretr.Object.techlevel[ls_i]
- ins_rt_stru.workhour[chC] = dw_pageretr.Object.workhour[ls_i]
- ins_rt_stru.workprice[chC] = dw_pageretr.Object.workprice[ls_i]
- ins_rt_stru.workqty[chC] = dw_pageretr.Object.workqty[ls_i]
- ins_rt_stru.lastflag[chC] = dw_pageretr.Object.lastflag[ls_i]
- ins_rt_stru.wrkgrpid[chC] = dw_pageretr.Object.wrkgrpid[ls_i]
- ins_rt_stru.lsxtype[chC] = dw_pageretr.Object.lsxtype[ls_i]
- ins_rt_stru.ifstandard[chC] = dw_pageretr.Object.u_sc_workprice_ifstandard[ls_i]
- ins_rt_stru.zxmtrlmode[chC] = dw_pageretr.Object.u_mtrldef_zxmtrlmode[ls_i]
- ins_rt_stru.status[chC] = dw_pageretr.Object.u_sc_workprice_status[ls_i]
-
- END IF
- NEXT
- Close(PARENT)
- end event
- type cb_refresh from w_pageretr_ch`cb_refresh within w_workprice_pro_ch
- end type
- type ln_bar from w_pageretr_ch`ln_bar within w_workprice_pro_ch
- end type
- type ln_bar2 from w_pageretr_ch`ln_bar2 within w_workprice_pro_ch
- end type
- type r_bar from w_pageretr_ch`r_bar within w_workprice_pro_ch
- integer x = 2272
- end type
- type ln_1 from w_pageretr_ch`ln_1 within w_workprice_pro_ch
- end type
- type ln_2 from w_pageretr_ch`ln_2 within w_workprice_pro_ch
- end type
- type cbx_mlselect from checkbox within w_workprice_pro_ch
- integer x = 32
- integer y = 200
- integer width = 256
- integer height = 60
- 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_all.Enabled = TRUE
- ELSE
- if_mlselect = 0
- cbx_all.Enabled = FALSE
- cbx_all.Checked = FALSE
-
- Long li
- FOR li = 1 TO dw_pageretr.RowCount()
- dw_pageretr.SelectRow(li,FALSE)
- NEXT
-
-
- END IF
- SetProfileString (sys_inifilename,dw_pageretr.DataObject, "if_mlselect", String(if_mlselect))
- end event
- event constructor;if_mlselect = Integer(ProfileString (sys_inifilename,dw_pageretr.DataObject, "if_mlselect", '0'))
- IF if_mlselect = 0 THEN
- THIS.Checked = FALSE
- cbx_all.enabled = false
- ELSE
- THIS.Checked = TRUE
- cbx_all.enabled = true
- END IF
- end event
- type cbx_all from checkbox within w_workprice_pro_ch
- integer x = 261
- integer y = 200
- integer width = 256
- 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 = 134217739
- boolean enabled = false
- string text = "全选"
- end type
- event clicked;IF dw_pageretr.RowCount() <= 0 THEN RETURN
- Long li
- IF THIS.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
|