123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- $PBExportHeader$w_rpt_manage.srw
- $PBExportComments$登记管理--窗口
- forward
- global type w_rpt_manage from w_rpt_base
- end type
- type dw1 from datawindow within w_rpt_manage
- end type
- type uo_1 from uo_tlbar within w_rpt_manage
- end type
- type dw01 from datawindow within w_rpt_manage
- end type
- type dw02 from datawindow within w_rpt_manage
- end type
- type dw03 from datawindow within w_rpt_manage
- end type
- end forward
- global type w_rpt_manage from w_rpt_base
- integer x = 14
- integer y = 4
- integer width = 3634
- integer height = 2380
- string title = "数据窗口登记"
- string menuname = "m_rpt_manage"
- windowstate windowstate = normal!
- long backcolor = 80269524
- boolean toolbarvisible = false
- event ue_open_report ( string s_label )
- event ue_preview ( )
- event ue_moveup ( )
- event ue_movedown ( )
- dw1 dw1
- uo_1 uo_1
- dw01 dw01
- dw02 dw02
- dw03 dw03
- end type
- global w_rpt_manage w_rpt_manage
- type variables
- datawindow id_userdw
- string is_rid,is_cname,is_filt,is_label,is_rsys
- end variables
- event ue_open_report;dw1.accepttext()
- i=dw1.getrow()
- if i=0 then return
- is_rid=f_myget(dw1,i,'rid')
- if is_datasource='dw' and (not isvalid(id_userdw)) then
- MessageBox("出错信息","原窗口已关闭,请重新打开!")
- return
- end if
- istr_rpt.rid=long(is_rid)
- istr_rpt.rcname=f_myget(dw1,i,'rcname')
- istr_rpt.rdname=f_myget(dw1,i,'rdname')
- istr_rpt.auto=s_label
- opensheetwithparm(w_rpt_main,istr_rpt,iw_mdi,0,Original!)
- return
- end event
- event ue_preview;if dw1.getrow()=0 then return
- is_rid=dw1.getitemstring(dw1.getrow(),'rid')
- istr_rpt.rid=long(is_rid)
- BLOB lblob
- selectblob rsyntax into :lblob from reports where rid=:is_rid using it_report;
- if it_report.sqlcode=0 THEN
- istr_rpt.isdw=string(lblob)
- opensheetwithparm(w_rpt_preview,istr_rpt,iw_mdi,0,Original!)
- end if
- return
- end event
- event ue_moveup;i=dw1.getrow()
- if i>1 then
- dw1.RowsMove(i,i,Primary!,dw1,i -1,Primary!)
- dw1.scrolltorow(i -1)
- dw1.setitem(i -1,'rxh',i -1)
- end if
- end event
- event ue_movedown;i=dw1.getrow()
- ii_temp=dw1.rowcount()
- if i<ii_temp then
- dw1.RowsMove(i+1,i+1,Primary!,dw1,i,Primary!)
- dw1.scrolltorow(i+1)
- dw1.setitem(i+1,'rxh',i+1)
- end if
- end event
- on w_rpt_manage.create
- int iCurrent
- call super::create
- if this.MenuName = "m_rpt_manage" then this.MenuID = create m_rpt_manage
- this.dw1=create dw1
- this.uo_1=create uo_1
- this.dw01=create dw01
- this.dw02=create dw02
- this.dw03=create dw03
- iCurrent=UpperBound(this.Control)
- this.Control[iCurrent+1]=this.dw1
- this.Control[iCurrent+2]=this.uo_1
- this.Control[iCurrent+3]=this.dw01
- this.Control[iCurrent+4]=this.dw02
- this.Control[iCurrent+5]=this.dw03
- end on
- on w_rpt_manage.destroy
- call super::destroy
- if IsValid(MenuID) then destroy(MenuID)
- destroy(this.dw1)
- destroy(this.uo_1)
- destroy(this.dw01)
- destroy(this.dw02)
- destroy(this.dw03)
- end on
- event open;call super::open;if not isvalid(istr_rpt) then
- close(this)
- return
- end if
- if isvalid(istr_rpt.userds) and not isvalid(istr_rpt.userdw) then//为了兼容前台报表传递datastore而不传递datawindow
- dw01.create(istr_rpt.userds.object.datawindow.syntax)
- dw01.dataobject=istr_rpt.userds.dataobject
- istr_rpt.userds.sharedata(dw01)
- istr_rpt.userdw=dw01
- end if
- if isvalid(istr_rpt.userds2) and not isvalid(istr_rpt.userdw2) then
- dw02.create(istr_rpt.userds2.object.datawindow.syntax)
- dw02.dataobject=istr_rpt.userds2.dataobject
- istr_rpt.userds2.sharedata(dw02)
- istr_rpt.userdw2=dw02
- end if
- if isvalid(istr_rpt.userds3) and not isvalid(istr_rpt.userdw3) then
- dw03.create(istr_rpt.userds3.object.datawindow.syntax)
- dw03.dataobject=istr_rpt.userds3.dataobject
- istr_rpt.userds3.sharedata(dw03)
- istr_rpt.userdw3=dw03
- end if
- is_rid=string(istr_rpt.rid)
- iw_mdi=istr_rpt.window_mdi
- id_userdw=istr_rpt.userdw
- it_report=istr_rpt.transation
- is_label=istr_rpt.label
- is_rsys=istr_rpt.rsys
- if isvalid(id_userdw) then
- is_datasource='dw'
- istr_rpt.datasource='dw'
- end if
- dw1.settransobject(it_report)
- if is_rsys>'' then f_addwhere(dw1,"rsys='"+is_rsys+"'")
- if is_datasource='dw' then
- is_filt=id_userdw.dataobject
- else
- is_filt='database'
- end if
- if istr_rpt.label<>'报表设计' then
- title='报表选择窗口'
- m_rpt_manage.m_1.visible=false
- m_rpt_manage.m_3.visible=false
- m_rpt_manage.m_1.m_11.toolbaritemvisible=false
- m_rpt_manage.m_1.m_12.toolbaritemvisible=false
- m_rpt_manage.m_1.m_13.toolbaritemvisible=false
- m_rpt_manage.m_1.m_14.toolbaritemvisible=false
- m_rpt_manage.m_1.m_15.toolbaritemvisible=false
- m_rpt_manage.m_3.m_31.toolbaritemvisible=false
- m_rpt_manage.m_3.m_32.toolbaritemvisible=false
- WindowState=Maximized!//这个设置必须放在m_1.visible=false下面
- dw1.modify('rcname.edit.displayonly=true')
- if is_rid>'' then//报表编号已经通过参数传递
- f_myretrieve(dw1,"rid='"+is_rid+"'")
- else
- f_myretrieve(dw1,"rfilt='"+is_filt+"'")
- end if
- if dw1.rowcount()=1 or istr_rpt.label='直接打印' then
- if isvalid(this) then WindowState=Minimized!
- event ue_preview()
- return//不要删除
- end if
- else
- f_myretrieve(dw1,"rfilt='"+is_filt+"'")
- WindowState=Maximized!
- end if
- uo_1.of_bott()
- dw1.setfocus()
- return
- end event
- event ue_new;select max(rid) into :is_temp from reports using it_report;//取数据库中最大编号
- if isnull(is_temp) then is_temp=''
- is_rid=string(long(is_temp)+1,'00000')
- if ue_row=0 then
- i=dw1.insertrow(0)
- else
- i=dw1.insertrow(dw1.getrow())
- end if
- dw1.scrolltorow(i)
- dw1.setitem(i,'rid',is_rid)
- dw1.setitem(i,'rsys',is_rsys)
- dw1.setitem(i,'rfilt',is_filt)
- f_mysave(dw1,it_report,1)
- dw1.setitem(i,'rxh',i)
- end event
- event ue_delete;int li
- li=dw1.getrow()
- if li>0 then
- if messagebox("提示信息","删除 "+f_myget(dw1,li,'rid')+" ?",QUESTION!,YESNO!,2)=1 then
- dw1.deleterow(li)
- end if
- end if
- end event
- event closequery;dw1.accepttext()
- if dw1.ModifiedCount()+dw1.DeletedCount()>0 then
- ii_rows=dw1.rowcount()
- for i=1 to ii_rows
- ii_temp=dw1.getitemnumber(i,'rxh')
- if isnull(ii_temp) or ii_temp<>i then
- dw1.setitem(i,'rxh',i)
- end if
- next
- f_mysave(dw1,it_report,1)
- end if
- end event
- event resize;dw1.x=(newwidth -dw1.width)/2
- dw1.resize(dw1.width,newheight -(dw1.y) -20)
- end event
- event close;close(w_report_open)
- end event
- type dw1 from datawindow within w_rpt_manage
- event ue_key pbm_dwnkey
- integer x = 791
- integer y = 216
- integer width = 1797
- integer height = 1940
- integer taborder = 10
- boolean bringtotop = true
- string dataobject = "dw_rpts"
- boolean vscrollbar = true
- boolean livescroll = true
- borderstyle borderstyle = stylelowered!
- end type
- event ue_key;if key=KeyEscape! then
- close(parent)
- return 1
- end if
- end event
- event dberror;return 1
- end event
- event losefocus;parent.event closequery()
- end event
- event doubleclicked;if istr_rpt.label='报表设计' then
- parent.event ue_open_report('maner')
- else
- parent.event ue_preview()
- end if
- end event
- event clicked;if row>0 then
- scrolltorow(row)
- end if
- end event
- type uo_1 from uo_tlbar within w_rpt_manage
- integer width = 3506
- integer height = 184
- integer taborder = 40
- boolean bringtotop = true
- boolean border = false
- end type
- on uo_1.destroy
- call uo_tlbar::destroy
- end on
- type dw01 from datawindow within w_rpt_manage
- boolean visible = false
- integer x = 142
- integer y = 492
- integer width = 494
- integer height = 456
- integer taborder = 20
- boolean bringtotop = true
- boolean livescroll = true
- borderstyle borderstyle = stylelowered!
- end type
- type dw02 from datawindow within w_rpt_manage
- boolean visible = false
- integer x = 142
- integer y = 1232
- integer width = 494
- integer height = 120
- integer taborder = 30
- boolean bringtotop = true
- boolean livescroll = true
- borderstyle borderstyle = stylelowered!
- end type
- type dw03 from datawindow within w_rpt_manage
- boolean visible = false
- integer x = 142
- integer y = 1452
- integer width = 494
- integer height = 120
- integer taborder = 31
- boolean bringtotop = true
- boolean livescroll = true
- borderstyle borderstyle = stylelowered!
- end type
|