这是好多年前我在编程爱好者论坛上回复的一个帖子,是不是你所有解决的问题:
主题:能否将GRID1.CLOUMN.text1.value的值取出来,自动赋给需要打开OFFICE文档
作者:winya2004
发表时间:2009-11-18 18:11:00
楼主
希望好心人 帮帮我 谢谢
自己需要编写一个文案查询系统,关键是在GRID里面加入了表后,比如文号,查找到文号后,只需要单激该纪录就能打开该文号的命名OFFICE文档,只知道可以用locate for
以及eole.Workbooks.Open("")打开指定XLS,但是虽然结合起来可以使用,但是维护起来比较麻烦,有没有办法可以将查到的纪录的文号的值自动打开该文档,或直接CLICK纪录就能打开该OFFICE文档
cbl518大师的方法:“直接在表格列对象的text1.CLICK 写入打开 off文档代码”
自己使用没有问题的,但是领导使用每次还需要去CLICK代码定位文件名~~就不方便了,能否将GRID1.CLOUMN.text1.value的值取出来,自动赋给需要打开OFFICE文档,因为文号同需要打开OFFICE的文档同名~~
现在的代码如下:
operate= "open"
ShellExecute(0,operate,"C:\文件名",0,0,1)
每次增加和修改文号就要去改CLICK代码~~ 领导今天看了觉得太麻烦了,还埋怨我这么小的事情都办不了,单位上不了网,一到家马上请教各位朋友了的确刚来贵论坛没有给贵论坛带来好的东东~~希望各位朋友能够伸出援助之手,谢谢!
作者:zxl931
发表时间:2009-11-18 23:06:00
第1楼
不需要将GRID1.CLOUMN.text1.value的值取出来。鼠标单击的那条记录就是当前记录,只要取得的Grid绑定的数据表的文号那个字段具体值即可。
如果数据表为Table1,文号字段名为fCode,在Grid(allowcellSelection属性设为.F.)的Click事件中加入:
select Table1
cFileName="C:\"+allt(fCode)+".xls"
if file(cFileName)
ShellExecute(0,"open","&cFileName",0,0,1)
else
messagebox("文档不存在")
endi
如果自动打开查找到的文号对应的文档:
select Table1
locate for ...
if found()
cFileName="C:\"+allt(fCode)+".xls"
if file(cFileName)
ShellExecute(0,"open","&cFileName",0,0,1)
else
messagebox("文档不存在!")
endi
else
messagebox("文号不存在!")
endif
以上代码未经测试。
作者:winya2004
发表时间:2009-11-18 23:17:00
第2楼
完全正确~~~~非常感谢 !!!!!
第二种正在测试~~
以上代码中缺少了相应API的声明,应用ShellExecute()时加上。
DECLARE INTEGER ShellExecute IN shell32;
INTEGER hwnd,;
STRING lpOperation,;
STRING lpFile,;
STRING lpParameters,;
STRING lpDirectory,;
INTEGER nShowCmd