VF表单中的表格问题
如图已做好表单,表单中的表GRID1是在数据环境中直接将人事表RSB.DBF拖进去形成的,现在我想1、在点击“查询”按钮时,查询到的职工信息显示在表中,没查到的不显示,初...
如图已做好表单,表单中的表GRID1是在数据环境中直接将人事表RSB.DBF拖进去形成的,现在我想
1、在点击“查询”按钮时,查询到的职工信息显示在表中,没查到的不显示,初始运行时表单无显示;
2、如果实行模糊查询,则将查询到的结果显示在表中,此时点击表中的字段“姓名”或“编号”,表单中的文本显示相应记录。
请问高手如何编写代码啊,谢谢了! 展开
1、在点击“查询”按钮时,查询到的职工信息显示在表中,没查到的不显示,初始运行时表单无显示;
2、如果实行模糊查询,则将查询到的结果显示在表中,此时点击表中的字段“姓名”或“编号”,表单中的文本显示相应记录。
请问高手如何编写代码啊,谢谢了! 展开
2个回答
展开全部
表格控件不要直接从数据环境中拖出,可用表单控件工具栏上的表格控件添加。(另,表格控件可将readonly属性设为.T.,将deleteMark属性设为.F.)
1、查询按钮:
t1=alltrim(thisform.text1.value)
loca for t1$编号 or t1$姓名
if found()
sele * from 表名 where t1$编号 or t1$姓名 into cursor "temp"
thisform.grid1.recordsource="temp"
else
messagebox("查无此人!",64,"提示")
endif
初始运行时表单无显示,需要在表单的init事件中加上:
thisform.grid1.recordsource=""
2、在grid控件的afterrowcolchange事件中加上代码:
thisform.txt编号.value=编号
thisform.txt姓名.value=姓名
.....
后面你自己补充完整。
1、查询按钮:
t1=alltrim(thisform.text1.value)
loca for t1$编号 or t1$姓名
if found()
sele * from 表名 where t1$编号 or t1$姓名 into cursor "temp"
thisform.grid1.recordsource="temp"
else
messagebox("查无此人!",64,"提示")
endif
初始运行时表单无显示,需要在表单的init事件中加上:
thisform.grid1.recordsource=""
2、在grid控件的afterrowcolchange事件中加上代码:
thisform.txt编号.value=编号
thisform.txt姓名.value=姓名
.....
后面你自己补充完整。
展开全部
*查询按钮click:
lcgrd=allt(thisform.grid1.recordsource)
thisform.grid1.recordsource=''
lcdbf='nulldbf'
lcsearch=allt(thisform.text1.value)
if used(lcdbf)
use in lcdbf
sele 0
select * from &lcgrd where 1=2 into cursor &lcdbf
endif
if used(lcgrd) and lcgrd#lcdbf
select &lcgrd
locate all for lcsearch$allt(姓名) or lcsearch$编号
if found()
*显示数据
set filter to lcsearch$allt(姓名) or lcsearch$编号
go top
else
set filter to 1=2
go top
endif
endif
thisform.grid1.recordsource=lcgrd
thisform.refresh
return
*grid中相应列的textbox控件的双击事件
*或者AfterRowColChange事件里--根据你个人实际吧
lcgrd=allt(thisform.grid1.recordsource)
if used(lcgrd)
with thisform
for i=1 to fcount(lcgrd)
lctitle=allt(field(i,lcgrd))
lcname='txt'+lctitle
.&lcname..value=allt(tran(nvl(&lcgrd..&lctitle,'') ) )
endfor
endwith
endif
lcgrd=allt(thisform.grid1.recordsource)
thisform.grid1.recordsource=''
lcdbf='nulldbf'
lcsearch=allt(thisform.text1.value)
if used(lcdbf)
use in lcdbf
sele 0
select * from &lcgrd where 1=2 into cursor &lcdbf
endif
if used(lcgrd) and lcgrd#lcdbf
select &lcgrd
locate all for lcsearch$allt(姓名) or lcsearch$编号
if found()
*显示数据
set filter to lcsearch$allt(姓名) or lcsearch$编号
go top
else
set filter to 1=2
go top
endif
endif
thisform.grid1.recordsource=lcgrd
thisform.refresh
return
*grid中相应列的textbox控件的双击事件
*或者AfterRowColChange事件里--根据你个人实际吧
lcgrd=allt(thisform.grid1.recordsource)
if used(lcgrd)
with thisform
for i=1 to fcount(lcgrd)
lctitle=allt(field(i,lcgrd))
lcname='txt'+lctitle
.&lcname..value=allt(tran(nvl(&lcgrd..&lctitle,'') ) )
endfor
endwith
endif
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询