SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2626|回复: 14
打印 上一主题 下一主题

如何将鼠标在table viewer中点击的行数返回

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2003-10-2 21:39:38 | 只看该作者

如何将鼠标在table viewer中点击的行数返回

将一个SAS dataset model与一个table viewer连接,要将鼠标在table viewer中所点击的(数据集的)一行显示在若干个test entry中。

我目前的困惑是,如何辨识用户以鼠标在table viewer中所选择的行号?只有得到这个行号,才能通过fetchobs方法将相应观测的有关变量值读入相应的text entry中。

请shiyiming版主和其他各位高手不吝赐教!感激不尽。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2003-10-3 00:41:15 | 只看该作者
1、打开Properties,将Tableviewer1->runObjectLabel改为SingleClick
2、在SCL中插入
tableviewer1:
tableviewer1._getActiveCell(listRow, listColumn);
if listlen(listRow)>0 then numRow=getitemn(listRow);
return;

numRow应该就是你所要的行号。
希望我没有理解错,对你能有帮助。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2003-10-3 10:28:00 | 只看该作者

thanks a lot!

这正是我所要的,太感谢了!

今后还希望shiyiming版主不要嫌我太麻烦,我肯定还要不断向您请教。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2003-10-3 12:08:59 | 只看该作者
哪里话,能为大家做一点点事情我很快乐!
希望以后我有统计方面的问题请教你和大家,还要不吝赐教哦。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2003-10-4 10:57:32 | 只看该作者
shiyiming斑竹有什么问题,尽管提出来,无论是AF方面还是统计应用方面。

可能有些问题我是无能为力,但这里肯定会有很多高手,有他们参与讨论,就算解决不了问题,也会提供很多有益的思路。

另外,就有关问题扩展开来,还会引发更多有价值的话题讨论。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2005-1-6 17:56:38 | 只看该作者

???

请问
tableviewer1:
tableviewer1._getActiveCell(listRow, listColumn);
if listlen(listRow)>0 then numRow=getitemn(listRow);
return;
这段代码您调试成功了吗?
请问()内的两个参数直接写成listrow和listcolumn在调试中有没有出现缺失值的错误呢?listrow和listcolumn是作为什么变量出现的呢?
我在调试的时候会出现listrow listcolumn分别是却是值,
ERROR: Invalid list identifier.的错误提示
请问如何修改呢?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2005-1-6 19:08:24 | 只看该作者

to shenjuju

tableviewer1:
[color=red:5106b]listRow=makelist();
listColumn=makelist();[/color:5106b]
tableviewer1._getActiveCell(listRow, listColumn);
......
return;

要灵活点嘛 <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2005-1-6 19:43:16 | 只看该作者

不好意思

<!-- s:oops: --><img src="{SMILIES_PATH}/icon_redface.gif" alt=":oops:" title="Embarassed" /><!-- s:oops: --> 因为刚刚开始学者用scl,所以比较笨拙,不好意思让您见笑了!
不过笨鸟有笨鸟的方法阿,下面是在尝试了很多次getactivecell都没有成功后用6的方法想出来的一段笨程序,往指教:
init:                                                                                                                                   
lib_is='sasuser';ds_is='admit';                                                                                                         
lib_dsn=lib_is||'.'||ds_is;                                                                                                                                                                              
dsid=open(lib_dsn);                                                                        
rec_num=1;                                                                                                                              
call notify('.','_get_widget_','table',t_id);                                          
call notify('table','_set_dataset_',lib_dsn,'browse','record','bronly','noadd','nodelete');         
return;   
table:                                                                                         
call send(t_id,'_get_current_row_number_',rec_num);                       
rc=fetchobs(dsid,rec_num);                                                            
t.text=getvarc(dsid,1);  /*获取table中的数据单元得值*/
return;   
想请教您的是那两个call notify能否用8里面的方法代替呢?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2005-1-7 01:03:31 | 只看该作者

kao

这世道,居然还有人喜欢AF?

[code:6e493]init&#58;
   dcl object tableId;
   _frame_&#46;_getWidget&#40;'obj1', tableId&#41;;
   tableId&#46;_setDataset&#40;'sashelp&#46;class'&#41;;
return;

term&#58;
   tableId&#46;_term&#40;&#41;;
return;[/code:6e493]

还有
[code:6e493]tableId&#46;_setColumnAttribute&#40;'var1','dataClass','comboBox'&#41;;
tableId&#46;_setColumnAttribute&#40;'var1','dataAttributes',dataAttrList&#41;;

tableId&#46;_setColumnAttribute&#40;'var2','minValue',0&#41;;
tableId&#46;_setColumnAttribute&#40;'var3','informat','yymmdd10&#46;'&#41;;
tableId&#46;_setColumnAttribute&#40;'var3','format','yymmdd10&#46;'&#41;;[/code:6e493]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2005-1-7 09:47:44 | 只看该作者

呵呵

<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> 本来不是自愿的去学af的,是因为用sas做一个数据仓库的项目别的工具不会用只能用af来展现界面阿。不过说实话,在漫漫的学习过程中,每学会用一个控件就觉得特别有成就感,就更想继续学下去,好像就变成自愿主动地的去喜欢它了, <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> ,能得到这么多的帮助更是出乎意料的喜悦,这里先谢谢各位师兄了;代码还有待小妹继续钻研,有了结果在向各位师兄讨教!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-8 21:35 , Processed in 0.092752 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表