找回密码
 注册
关于网站域名变更的通知
查看: 918|回复: 6
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    无聊
    2022-6-24 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    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
            )
    ;;

    该用户从未签到

    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
      )
    )

    该用户从未签到

    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. )
    复制代码
  • TA的每日心情
    无聊
    2022-6-24 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
     楼主| 发表于 2013-5-21 17:23 | 只看该作者
    非常感谢两位版主的指点,问题已解决。
    我查看了下form->??,动态生成的Field已在里面,form->fields可以导出所有的Field列表,根据你的指点,稍微修改了下,我在16.3版本调试可行。
    cond(
             ( member(form->curField form->fields)
                       println("Test!")
              )
            )
    谢谢!受教了。
                
  • TA的每日心情
    无聊
    2022-6-24 15:35
  • 签到天数: 2 天

    [LV.1]初来乍到

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

    该用户从未签到

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

    该用户从未签到

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

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

    本版积分规则

    关闭

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

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-16 04:31 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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