楼主: pjx2015
1370 9

[实际应用] 如图求问SAS/AF模块中combobox按钮要多选的时候的取值 [推广有奖]

  • 1关注
  • 0粉丝

大专生

65%

还不是VIP/贵宾

-

威望
0
论坛币
16 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
561 点
帖子
13
精华
0
在线时间
93 小时
注册时间
2016-4-9
最后登录
2022-5-15

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如图所示 想问在AF中如图所示想在左边的框中选择一个逻辑库,在右边名为diplay2的框中显示该逻辑库下所有的数据集,接着想用多选选择右侧框中的一部分数据集名存在一个宏变量中(虽然有multiple 那个属性多选,但是想知道这个值怎么),求问可以用什么SCL语言实现?只找到过单选的令TEXT=display2.selecteditem,那么多选的时候如何处理?非常感谢!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:BOBO COM box Bob MBO combobox选项 selecteditem值

沙发
learsaas 发表于 2017-6-21 20:37:22 |只看作者 |坛友微信交流群
首先不知道你要存于宏变量还是SCL变量中,你找到的单个的例子,应该是存储于SCL变量中:
可以参照如下,主要用SCL的list数据类型来完成:
  1.      dcl list l_member={} strMember char(32);
  2.       l_member = display2.items;
  3.       do j=1 to display2.selectedCount;
  4.          strMember=getitemc(l_member,getitemn(display2.selectedIndexes,j));
  5.           put strMember;
  6.       end;
复制代码

然后再在Submit块中通过单个地址符引用SCL变量。若要生成宏变量可将call symput将SCL变量传递给宏变量。
你在用SAS/af的话,我个人理解可能是要生成SCL变量而非宏变量。
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
eijuhz + 20 + 1 + 3 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 1  热心指数 + 3   查看全部评分

使用道具

藤椅
pjx2015 发表于 2017-6-28 22:56:19 |只看作者 |坛友微信交流群
learsaas 发表于 2017-6-21 20:37
首先不知道你要存于宏变量还是SCL变量中,你找到的单个的例子,应该是存储于SCL变量中:
可以参照如下,主 ...
您好,非常感谢您的回答!我的具体得思路是:我需要选择右边这五个数据集名称到您说的strmember的list中,然后再运行一个宏(里面有个参数是strmember的值)。
右边设置的多选格式并且model是datasetlist
我使用了您的代码运行之后了出现以下错误: 错误如图

想请问您问题是出在了哪里呢?非常感谢!

使用道具

板凳
learsaas 发表于 2017-6-29 09:44:07 |只看作者 |坛友微信交流群
不好意思,手写的代码,没调试过。现在调试过了:
  1.      dcl list l_member={};
  2.          dcl char(32) strMember ;
  3.       l_member = display2.items;
  4.       do j=1 to display2.selectedCount;
  5.          strMember=getitemc(l_member,getitemn(display2.selectedIndexes,j));
  6.           put strMember;
  7.       end;
复制代码

如果还是不行的话,你就把你的scl程序贴出来。

使用道具

报纸
pjx2015 发表于 2017-6-30 19:49:21 |只看作者 |坛友微信交流群
learsaas 发表于 2017-6-21 20:37
首先不知道你要存于宏变量还是SCL变量中,你找到的单个的例子,应该是存储于SCL变量中:
可以参照如下,主 ...
我就是您这样写的,就是把上面dcl部分已经和您一样修改了。但是跑出来出现了上面的问题。会不会是因为我的右侧的这个框里面的model是datasetlist?谢谢您!

使用道具

地板
learsaas 发表于 2017-7-2 15:20:35 |只看作者 |坛友微信交流群
请把你右侧的控件信息列出来

使用道具

7
pjx2015 发表于 2017-7-6 21:12:03 |只看作者 |坛友微信交流群
learsaas 发表于 2017-7-2 15:20
请把你右侧的控件信息列出来
Pushbutton1:                                                                                                                                                                                                                                       
if DisplayGetName.selecteditem ne " " then do;                                                                                                                                                                                                                  
l_member=DisplayGetName.items;                                                                                                                                                                                                                                 
end;
do j=1 to DisplayGetName.selectedCount;
strMember=getitemc(l_member,getitemn(DisplayGetName.selectedIndexes,j));
put strMember;
end;
这是下方有个按钮叫Pushbutton1,然后dcl部分和您的一样,上面就是我跑的,您看问题出在?非常感谢您的回复!


TIM图片20170706210720.png (5.86 KB)

TIM图片20170706210720.png

使用道具

8
learsaas 发表于 2017-7-10 13:36:22 |只看作者 |坛友微信交流群
这个if语句多余的,这个if 条件不真,所以没有定义,报错了。把if语句删除就ok了。
你这个空我猜想是后面对strMember的判断。

使用道具

9
pjx2015 发表于 2017-7-11 01:07:47 |只看作者 |坛友微信交流群
learsaas 发表于 2017-7-10 13:36
这个if语句多余的,这个if 条件不真,所以没有定义,报错了。把if语句删除就ok了。
你这个空我猜想是后面对 ...
1.png
您好,把if语句去掉之后运行时选择了fb逻辑库下图上方所示5个数据集,再在submit continue中调用宏%GeneratePar后,
跑出的日志如图所示,也就是相当于只选择了最后一个数据集这是为啥?不应该是5个数据集都选中么?非常感谢您!

使用道具

10
learsaas 发表于 2017-7-11 13:42:06 |只看作者 |坛友微信交流群
我对你表示无语。我只是举个例子,你不动脑筋的就搬。。。。。。。。。。。。。。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 05:24