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

[求助]在Form中,如何获取单选框的选中项是哪一个

[复制链接]
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    跳转到指定楼层
    1#
    发表于 2020-12-4 12:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    本帖最后由 leilei4908 于 2020-12-4 12:31 编辑

            
            fprintf(f "FIELD _ap\n")
            fprintf(f "FLOC 18 7\n")
            fprintf(f "CHECKLIST \"To All Symbol Parts\" \"Placement\"\n")
            fprintf(f "ENDFIELD\n")
            
            fprintf(f "FIELD _pb\n")
            fprintf(f "FLOC 18 7\n")
            fprintf(f "CHECKLIST \"To PlaceBound\" \"Placement\"\n")
            fprintf(f "ENDFIELD\n")
            
            fprintf(f "FIELD _sk\n")
            fprintf(f "FLOC 18 7\n")
            fprintf(f "CHECKLIST \"To SilkScreen\" \"Placement\"\n")
            fprintf(f "ENDFIELD\n")
            
            fprintf(f "FIELD _as\n")
            fprintf(f "FLOC 18 7\n")
            fprintf(f "CHECKLIST \"To Assembly\" \"Placement\"\n")
            fprintf(f "ENDFIELD\n")
            
            fprintf(f "FIELD _dp\n")
            fprintf(f "FLOC 18 9\n")
            fprintf(f "CHECKLIST \"To DipPin\" \"Placement\"\n")
            fprintf(f "ENDFIELD\n")
            
            fprintf(f "FIELD _sp\n")
            fprintf(f "FLOC 18 11\n")
            fprintf(f "CHECKLIST \"To SmdPin\" \"Placement\"\n")
            fprintf(f "ENDFIELD\n")
            
            fprintf(f "FIELD _hs\n")
            fprintf(f "FLOC 18 13\n")
            fprintf(f "CHECKLIST \"To HighSpeed\" \"Placement\"\n")
            fprintf(f "ENDFIELD\n")
            
            fprintf(f "FIELD _pw\n")
            fprintf(f "FLOC 18 15\n")
            fprintf(f "CHECKLIST \"To Power\" \"Placement\"\n")
            fprintf(f "ENDFIELD\n")

    部分代码如上
    都是根据Placement为关键词的单选项
    目前只能用
            cond(
                    (axlFormGetField(pmcForm "_ap")
                            pmc_type = "_ap"
                    )
                    (axlFormGetField(pmcForm "_pb")
                            pmc_type = "_pb"
                    )
                    (axlFormGetField(pmcForm "_sk")
                            pmc_type == "_sk"
                    )
                    (axlFormGetField(pmcForm "_as")
                            pmc_type = "_as"
                    )
                    (axlFormGetField(pmcForm "_dp")
                            pmc_type = "_dp"
                    )
                    (axlFormGetField(pmcForm "_sp")
                            pmc_type = "_sp"
                    )
                    (axlFormGetField(pmcForm "_hs")
                            pmc_type = "_hs"
                    )
                    (axlFormGetField(pmcForm "_pw")
                            pmc_type = "_pw"
                    )
            )
    判断单选项的结果
    是否有什么功能可以直接获取呢

    20201204123040.png (25.78 KB, 下载次数: 0)

    20201204123040.png
  • TA的每日心情
    奋斗
    2020-9-8 15:12
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-12-4 13:43 | 只看该作者
    js:var sex=$("input[name='sex']:checked").val();

    点评

    抱歉,我需要的是skill的方式,java在allegro中应该是不能使用的吧  详情 回复 发表于 2020-12-4 13:54
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    3#
     楼主| 发表于 2020-12-4 13:54 | 只看该作者
    srilri2 发表于 2020-12-4 13:43
    js:var sex=$("input[name='sex']:checked").val();

    抱歉,我需要的是skill的方式,java在allegro中应该是不能使用的吧
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    4#
     楼主| 发表于 2020-12-9 17:16 | 只看该作者
    本帖最后由 leilei4908 于 2020-12-9 17:22 编辑
    jet2001 发表于 2020-12-9 16:06
    我沒用過axlFormGetField(pmcForm "_ap")
    你是否改用 a888=axlFormGetField(pmcForm "_ap")
    ; a888的資料 ...

    你针对的是CHECKLIST这个控件吗?能看下你的FORM是怎样创建的吗
    看你的代码,应该是 ENUMSET 这个控件吧?这个可以获取到选中的值
    我需要的是CHECKLIST的选中项

    20201209172140.png (22.44 KB, 下载次数: 0)

    20201209172140.png
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    5#
     楼主| 发表于 2020-12-9 17:19 | 只看该作者
    jet2001 发表于 2020-12-9 16:06
    我沒用過axlFormGetField(pmcForm "_ap")
    你是否改用 a888=axlFormGetField(pmcForm "_ap")
    ; a888的資料 ...

    CHECKLIST对应的Field,能获取到的 curValue 只有 t 或者 nil
    也就是有被选上和没被选上的状态

    点评

    前文不是CHECKLIST ; CHECKLIST是如下 ..... ("drc_list" _drcNum=(Form_status->curValueInt) (_p2pdisp) if(NumDRCs>0 && (_drcType=="Top-Text Angle"||_drcType=="Bot-Text Angle") then  详情 回复 发表于 2020-12-9 17:30
  • TA的每日心情
    开心
    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2020-12-9 17:27 | 只看该作者
    drc.form內容如下:
    FILE_TYPE=FORM_DEFN VERSION=2
    FORM
    FIXED
    PORT 46 14
    HEADER "Allegro DRC Walker"
    POPUP <drc_layer_p>"a""a".
    POPUP <drc_type_p>"a""a".
    TILE

    FIELD drc_layer
    FLOC 0 1
    ENUMSET 12
    POP "drc_layer_p"
    ENDFIELD

    FIELD drc_type
    FLOC 15 1
    ENUMSET 29
    POP "drc_type_p"
    ENDFIELD

    FIELD drc_list
    FLOC 0 4
    LIST "Matching DRCs" 47 5
    ENDFIELD

    FIELD drc_showobj
    FLOC 1 13
    CHECKLIST "Report"
    ENDFIELD

    FIELD drc_zoomsize
    FLOC 10 13
    INTSLIDEBAR 2 2
    MIN 1
    MAX 99
    ENDFIELD

    FIELD drc_next
    FLOC 17 13
    MENUBUTTON "下一個" 8 3
    ENDFIELD

    FIELD drc_prev
    FLOC 27 13
    MENUBUTTON "修正" 8 3
    ENDFIELD

    FIELD done
    FLOC 37 13
    MENUBUTTON "離開" 8 3
    ENDFIELD

    ENDTILE
    ENDFORM
  • TA的每日心情
    开心
    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
    发表于 2020-12-9 17:30 | 只看该作者
    leilei4908 发表于 2020-12-9 17:19
    CHECKLIST对应的Field,能获取到的 curValue 只有 t 或者 nil
    也就是有被选上和没被选上的状态

    前文不是CHECKLIST ; CHECKLIST是如下
    .....
      ("drc_list" _drcNum=(Form_status->curValueInt) (_p2pdisp)
        if(NumDRCs>0 && (_drcType=="Top-Text Angle"||_drcType=="Bot-Text Angle") then
                 axlFormSetFieldEditable(_drcForm "drc_prev" 1)
         else    axlFormSetFieldEditable(_drcForm "drc_prev" 0) ) )
      ("drc_next" _drcNum=(add1 _drcNum) (_p2pdisp)
        if(NumDRCs>0 && (_drcType=="Top-Text Angle"||_drcType=="Bot-Text Angle") then
                 axlFormSetFieldEditable(_drcForm "drc_prev" 1)
         else    axlFormSetFieldEditable(_drcForm "drc_prev" 0) ) )
    .....


  • TA的每日心情
    开心
    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    8#
    发表于 2020-12-9 17:37 | 只看该作者
    當我如圖 在 list 選第3個時case( Form_status->curField
    會到這裡開始跑 ("drc_list" _drcNum=(Form_status->curValueInt) (_p2pdisp)...

    _drcNum抓到的值是2 ; (0 1 2 3 4)

    z1.png (17.18 KB, 下载次数: 0)

    z1.png

    点评

    抱歉,可能是我描述的不清楚 我针对的是CHECKLIST这个控件,不是LIST 格式是 CHECKLIST "display" ["radioLabel"] 如果radioLable没有定义 就是你这边的Report这个单独的勾选项 如果radioLable有定义 那么  详情 回复 发表于 2020-12-9 17:50
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    9#
     楼主| 发表于 2020-12-9 17:50 | 只看该作者
    jet2001 发表于 2020-12-9 17:37
    當我如圖 在 list 選第3個時case( Form_status->curField
    會到這裡開始跑 ("drc_list" _drcNum=(Form_stat ...

    抱歉,可能是我描述的不清楚
    我针对的是CHECKLIST这个控件,不是LIST
    格式是
    CHECKLIST "display" ["radioLabel"]
    如果radioLable没有定义
    就是你这边的Report这个单独的勾选项

    如果radioLable有定义
    那么相同的radioLable,组成一个单选项
  • TA的每日心情
    开心
    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    10#
    发表于 2020-12-9 17:53 | 只看该作者
    "我需要的是CHECKLIST的选中项"
    我的作法是放在右上"drc_type" 下拉選項 , 一選好就立刻執行 各選項有各自的skill 在跑
      ("drc_type" _drcType=(Form_status->curValue)
        case( _drcType
             ("Top-Text Angle"   (ttextlst) _drcZoomSize=10)  
             ("Bot-Text Angle"   (btextlst) _drcZoomSize=10)
             ("Top-Text on PAD"  (ttpadlst) _drcZoomSize=6)
             ("Bot-Text on PAD"  (btpadlst) _drcZoomSize=6)
             ("Top-Text on VIA"  (ttvialst) _drcZoomSize=4)
             ("Bot-Text on VIA"  (btvialst) _drcZoomSize=4)
             ("Package to Keepin"  (p2ilst) _drcZoomSize=20)
             ("Package to Keepout" (p2olst) _drcZoomSize=20)
             ("Package to Package" (p2plst) _drcZoomSize=20)
             ("Top-2D on VP"  (tt2dvp) _drcZoomSize=3)

    z2.png (16.04 KB, 下载次数: 0)

    z2.png

    点评

    把几组 CHECKLIST 控件合并成 ENUMSET 当然是个不错的选择 但 CHECKLIST 能够直观的看到所有的选项,也有不可替代的作用 我目前需要的就是怎么能够获取单选的结果是什么 也就是相同 radioLable 的 CHECKLIST,目  详情 回复 发表于 2020-12-9 18:05
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    11#
     楼主| 发表于 2020-12-9 18:05 | 只看该作者
    jet2001 发表于 2020-12-9 17:53
    "我需要的是CHECKLIST的选中项"
    我的作法是放在右上"drc_type" 下拉選項 , 一選好就立刻執行 各選項有各自 ...

    把几组 CHECKLIST 控件合并成 ENUMSET 当然是个不错的选择
    但 CHECKLIST 能够直观的看到所有的选项,也有不可替代的作用
    我目前需要的就是怎么能够获取单选的结果是什么
    也就是相同 radioLable 的 CHECKLIST,目前选中的是哪一个
    所以请不要推荐我把 CHECKLIST 改成 ENUMSET 控件了
  • TA的每日心情
    开心
    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    12#
    发表于 2020-12-10 11:36 | 只看该作者
    早上讀大老寫的rpn的skill , 他的作法和你一樣 也是用另一個參數來設定
    pmc_type = "_ap" ....

    点评

    cond( (axlFormGetField(pmcForm "_ap") pmc_type = "_ap" ) (axlFormGetField(pmcForm "_pb") pm  详情 回复 发表于 2020-12-10 14:19
    所以目前来看,的确是没有更好的方法了 原本以为,根据相同的radioLable,组成的单选项 应该可以根据这个radioLable获取到单选项的结果  详情 回复 发表于 2020-12-10 11:40
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    13#
     楼主| 发表于 2020-12-10 11:40 | 只看该作者
    jet2001 发表于 2020-12-10 11:36
    早上讀大老寫的rpn的skill , 他的作法和你一樣 也是用另一個參數來設定
    pmc_type = "_ap" ....

    所以目前来看,的确是没有更好的方法了
    原本以为,根据相同的radioLable,组成的单选项
    应该可以根据这个radioLable获取到单选项的结果
  • TA的每日心情
    开心
    2019-11-19 15:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    14#
    发表于 2020-12-10 12:49 | 只看该作者
    我去看手上USA CANDENCE 原廠的 SKILL 也都是用另一個參數來設定
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    15#
     楼主| 发表于 2020-12-10 14:19 | 只看该作者
    jet2001 发表于 2020-12-10 11:36
    早上讀大老寫的rpn的skill , 他的作法和你一樣 也是用另一個參數來設定
    pmc_type = "_ap" ....

            cond(
                    (axlFormGetField(pmcForm "_ap")
                            pmc_type = "_ap"
                    )
                    (axlFormGetField(pmcForm "_pb")
                            pmc_type = "_pb"
                    )
                    (axlFormGetField(pmcForm "_sk")
                            pmc_type == "_sk"
                    )
                    (axlFormGetField(pmcForm "_as")
                            pmc_type = "_as"
                    )
                    (axlFormGetField(pmcForm "_dp")
                            pmc_type = "_dp"
                    )
                    (axlFormGetField(pmcForm "_sp")
                            pmc_type = "_sp"
                    )
                    (axlFormGetField(pmcForm "_hs")
                            pmc_type = "_hs"
                    )
                    (axlFormGetField(pmcForm "_pw")
                            pmc_type = "_pw"
                    )
            )

    代码简化下
          fields = list("_ap" "_pb" "_sk" "_as" "_dp" "_sp" "_hs" "_pw")
          foreach(field fields
                when(axlFormGetField(pmcForm field)
                    pmc_type = field
                )
          )

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-22 06:26 , Processed in 0.218750 second(s), 34 queries , Gzip On.

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

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

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