vivienluo 发表于 2013-10-8 22:42:46

FORM中CHECKLIST(CheckBox RadioBox)使用详解

介绍:
CHECKLIST共分为两种,一种是checkbox,一种是radiobox。
checkbox为复选框,可同时选择多个选项。
radiobox为单选框,只能同时选中一个选项。

如下图所示:


Radio Box形状为圆形的,每次只能选择一个选项。
Check Box形状为方形,每次可同时选中多个选项。

下图中,在"Radio Box - Mode 1"和"Radio Box - Mode 2"中,只能将一个选项选中,而在"Check Box - Mode 1"中,可任意选中多个选项。


使用方法:
在使用CHECKLIST时,需要定义在在FIELD字段部分通过定义关键字“CHECKLIST”。CHECKLIST "display" ["radioLabel"]CHECKLIST后有两个参数需要定义,"display"为选项的名称,比如上图中的Item1、Item2等,"radioLabel"参数为可选,如果未定义,那么CHECKLIST默认为Check Box模式。如果定义了"radioLabel",那么CHEKCLIST为Radio Box模式,且具有相同"radioLabel"的值的Radio Box,一次只能选中一个选项。

上图中的源码如下:FILE_TYPE=FORM_DEFN VERSION=2
FORM
FIXED
PORT 35 10
HEADER "CheckList Test"

TILE

FIELD Item1
FLOC 5 3
CHECKLIST "Item1" "Mode1"
ENDFIELD

FIELD Item2
FLOC 15 3
CHECKLIST "Item2" "Mode1"
ENDFIELD

FIELD Item3
FLOC 25 3
CHECKLIST "Item3" "Mode1"
ENDFIELD

FIELD Item4
FLOC 5 7
CHECKLIST "Item4" "Mode2"
ENDFIELD

FIELD Item5
FLOC 15 7
CHECKLIST "Item5" "Mode2"
ENDFIELD

FIELD Item6
FLOC 25 7
CHECKLIST "Item6" "Mode2"
ENDFIELD

FIELD Item7
FLOC 5 11
CHECKLIST "Item7"
ENDFIELD

FIELD Item8
FLOC 15 11
CHECKLIST "Item8"
ENDFIELD

FIELD Item9
FLOC 25 11
CHECKLIST "Item9"
ENDFIELD


GROUP "Radio Box - Mode 1"
GLOC 3 1
GSIZE 30 4
ENDGROUP

GROUP "Radio Box - Mode 2"
GLOC 3 5
GSIZE 30 4
ENDGROUP

GROUP "Check Box - Mode 1"
GLOC 3 9
GSIZE 30 4
ENDGROUP

ENDTILE
ENDFORM




mmmmyuitian 发表于 2014-1-23 10:59:47

这个选中和不选中分别执行命令的代碼能簡單舉例嗎

mmmmyuitian 发表于 2014-1-23 11:06:44

;------------------------------;
; Set the TP1 create       ;
;------------------------------;

                fprintf(myform "## Button Field in FORM ## \n")
                fprintf(myform "FIELD TP1\n")
                fprintf(myform "FLOC 1 23\n")
                fprintf(myform "CHECKLIST\"TP1\" \n")
                fprintf(myform "FGROUP \"PBTop\"\n")
                fprintf(myform "ENDFIELD \n\n")


如上, 勾選TP1我執行"tp1"

("TP1"
                              axlVisibleDesign(nil)
                                axlVisibleLayer("ETCH/TOP" t)
                                axlVisibleLayer("DRC ERROR CLASS/TOP" t)
                                axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
                                axlVisibleLayer("MANUFACTURING/PROBE_TOP" t)
                                axlVisibleLayer("MANUFACTURING/NO_PROBE_TOP" t)
                                axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" t)
                                axlVisibleLayer("PIN/TOP" t)
                                axlVisibleLayer("VIA CLASS/TOP" t)
                                axlVisibleLayer("VIA CLASS/FILMMASKTOP" t)
                                axlVisibleUpdate(t)
                ;Button Field
                ;Enter Action Here
               
                )
不勾怎麼定義關閉這些層面

XYX365 发表于 2014-1-27 19:05:25

本帖最后由 XYX365 于 2014-1-27 19:08 编辑

mmmmyuitian 发表于 2014-1-23 11:06 static/image/common/back.gif
;------------------------------;
; Set the TP1 create       ;
;------------------------------ ...("TP1"
        if((myform->curValue then
            axlVisibleDesign(nil)
            axlVisibleLayer("ETCH/TOP" t)
            axlVisibleLayer("DRC ERROR CLASS/TOP" t)
            axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
            axlVisibleLayer("MANUFACTURING/PROBE_TOP" t)
            axlVisibleLayer("MANUFACTURING/NO_PROBE_TOP" t)
            axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" t)
            axlVisibleLayer("PIN/TOP" t)
            axlVisibleLayer("VIA CLASS/TOP" t)
            axlVisibleLayer("VIA CLASS/FILMMASKTOP" t)
            axlVisibleUpdate(t)
        else
            axlVisibleLayer("ETCH/TOP" nil)
            axlVisibleLayer("DRC ERROR CLASS/TOP" nil)
            axlVisibleLayer("BOARD GEOMETRY/OUTLINE" nil)
            axlVisibleLayer("MANUFACTURING/PROBE_TOP" nil)
            axlVisibleLayer("MANUFACTURING/NO_PROBE_TOP" nil)
            axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" nil)
            axlVisibleLayer("PIN/TOP" nil)
            axlVisibleLayer("VIA CLASS/TOP" nil)
            axlVisibleLayer("VIA CLASS/FILMMASKTOP" nil)
            axlVisibleUpdate(nil)
       )
               ;Button Field
               ;Enter Action Here
               
               )

wuyuhe 发表于 2014-4-15 12:50:58

下下来研究研究,谢谢分享

stevenzhu 发表于 2014-11-15 11:36:09

很好,很强大~

PKN1216083420 发表于 2015-1-21 17:04:46

谢谢分享!

leilei4908 发表于 2015-8-13 10:19:11

怎么设置默认选项呢? 我需要刚打开form的时候就已经默认选中了

skny2011 发表于 2016-12-6 13:43:13

leilei4908 发表于 2015-8-13 10:19
怎么设置默认选项呢? 我需要刚打开form的时候就已经默认选中了

有结果了吗?我也不知道怎么设置的

leilei4908 发表于 2016-12-8 18:53:55

skny2011 发表于 2016-12-6 13:43
有结果了吗?我也不知道怎么设置的

axlFormSetField(form, field, value)
页: [1] 2 3
查看完整版本: FORM中CHECKLIST(CheckBox RadioBox)使用详解