找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 500|回复: 6
打印 上一主题 下一主题

请教各位一个FIELD操作问题?

[复制链接]

57

主题

181

帖子

2349

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2349
跳转到指定楼层
1#
发表于 2013-5-21 15:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 yneda 于 2013-5-21 15:45 编辑

通常某个FIELD的值可以从以下代码获得,
case(form->curField
         ("Field_A"
                 Field_A = form->curValue
                )
         ("Field_B"
                 Field_B = form->curValue
                )
        )

如下代码,假如这个 FIELD是动态生成的呢,又是如何获得它的值呢,我常试做一个循环插入到Case里去,但点击输出不了值,求高手指点下,非常感谢!
l_Field = '("A" "B")
x = 2
y = 2
foreach(item l_Field
         fprintf(port sprintf(nil "Field_%s\n" item))
         fprintf(port sprintf(nil "TLOC %d %d" x y))
         fprintf(port sprintf(nil "CHECKLIST %s%s%s\n" "\"" item "\""))
         fprintf(port "FSIZE 25 2\n")
         fprintf(port "ENDFIELD\n\n")
         y = y + 2
        )
;;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

7

主题

444

帖子

4989

积分

EDA365版主(50)

Rank: 5

积分
4989
2#
发表于 2013-5-21 16:01 | 只看该作者
定义form的时候就把所有的动态生成field归集到一个list中,随form传值到回调函数中
fieldlist = list("1" "2" "3" "4" "5")
form->fieldlist = fieldlist

回调函数中
cond(
  (member(form->curField form->fieldlist)
    do something
  )
)

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

3#
发表于 2013-5-21 16:05 | 只看该作者
代码修改了一些,可以参考一下:
  1. l_Field = '("A" "B")
  2. x = 2
  3. y = 2
  4. foreach(item l_Field
  5.         fprintf(port "Field_%s\n" item)
  6.         fprintf(port "TLOC %d %d\n" x y)
  7.         fprintf(port "CHECKLIST %L\n" item)
  8.         fprintf(port "FSIZE 25 2\n")
  9.         fprintf(port "ENDFIELD\n\n")
  10.         y = y + 2
  11. )
复制代码
谁画出这天地 又画下我和你

57

主题

181

帖子

2349

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2349
4#
 楼主| 发表于 2013-5-21 17:23 | 只看该作者
非常感谢两位版主的指点,问题已解决。
我查看了下form->??,动态生成的Field已在里面,form->fields可以导出所有的Field列表,根据你的指点,稍微修改了下,我在16.3版本调试可行。
cond(
         ( member(form->curField form->fields)
                   println("Test!")
          )
        )
谢谢!受教了。
            

57

主题

181

帖子

2349

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2349
5#
 楼主| 发表于 2013-5-22 08:53 | 只看该作者
昨天下班回去的路上一想,我这样修改会有问题, 一是member查找的范围太大了,另 do something还要做一些约束,要不,"Field_A"和"Field_B"做的是同样一件事情。

7

主题

444

帖子

4989

积分

EDA365版主(50)

Rank: 5

积分
4989
6#
发表于 2013-5-22 09:12 | 只看该作者
搞清楚需求,然后去language help看一下cond的说明,上面的回复中是不用全局变量用form结构传值的例子

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

7#
发表于 2013-5-22 20:54 | 只看该作者
yneda 发表于 2013-5-22 08:53
昨天下班回去的路上一想,我这样修改会有问题, 一是member查找的范围太大了,另 do something还要做一些约 ...

动态生成的FIELD,一般都加一些特殊的索引字段,在回调函数中根据你自己实际的需求来进行过滤条件判断转向。
谁画出这天地 又画下我和你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-29 23:59 , Processed in 0.056930 second(s), 32 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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