VF表单中的表格问题

如图已做好表单,表单中的表GRID1是在数据环境中直接将人事表RSB.DBF拖进去形成的,现在我想1、在点击“查询”按钮时,查询到的职工信息显示在表中,没查到的不显示,初... 如图已做好表单,表单中的表GRID1是在数据环境中直接将人事表RSB.DBF拖进去形成的,现在我想
1、在点击“查询”按钮时,查询到的职工信息显示在表中,没查到的不显示,初始运行时表单无显示;
2、如果实行模糊查询,则将查询到的结果显示在表中,此时点击表中的字段“姓名”或“编号”,表单中的文本显示相应记录。
请问高手如何编写代码啊,谢谢了!
展开
 我来答
却彤云S4
推荐于2016-04-18 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.2万
采纳率:0%
帮助的人:9111万
展开全部
表格控件不要直接从数据环境中拖出,可用表单控件工具栏上的表格控件添加。(另,表格控件可将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=姓名
.....
后面你自己补充完整。
FreeSoftnc
2011-07-19 · TA获得超过118个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:272万
展开全部
*查询按钮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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式