Cols

含义:各列的信息；数量: 1

Col

含义: 列的属性；数量: 1-n, 内容: 列标题文字。如果希望分多行显示，可以直接加回车、或加插"\r\n"
属性名称 | 含义 | 可用值 | 默认值 | 示例
主要 | name 或 id | 列名 | 串, 相当于字段名 | (无) |
isUnique | 内容是否允许重复 | true/false | false |
注: 用于生成XML提交文档前的唯一性验证
nullAble | 是否允许为空 | true/false | true |
注: 用于生成XML提交文档前的简单验证
defaultValue | 默认值 | 串, 用于新插入行操作时的初始, 支持以 "=" 开头的表达式，例如 defaultValue="=now( )", 表示将日期型默认值设为当天 | (无) |
注: 仅对新插入的行有效
dataType | 数据类型 | 有 string / int / double / bool / date / datetime 这几种 | string |
decimal | 小数位数 | -1至8, 仅用于 double 型。 -1表示小数位数不确定, 可以在0位和8位之间可以任意输入 | 2 |
isHyperlink | 是否超链接列 | true/false | false |
注: 请参见下面的备注2
isHide | 是否隐藏, | true - 隐藏; false - 显示; absHide 或 absTrue - 绝对隐藏，不会被鼠标右键菜单选择; absShow 或 absFalse - 绝对显示，不会被鼠标右键菜单选择; | false |
sortAble | 是否允许排序, 触发排序的动作包括点击列标题、拖拽列到排序区 | true - 全部允许 false - 全部不允许 drag - 仅允许拖拽到排序区 click - 仅允许点击标题 | true |
注: 如果<Properties>中的sortAble设为false, 则本sortAble无效(false)
sortOption | 列的排序选项 | 为如下可选项的组合, 逗号分隔: byData 或 byText - 按数据排序 或 按显示内容排序, 常见的场景是下拉列按照显示的内容排序。 不指定的话(默认)是按数据排序的, 即 byData; matchCase - 大小写敏感, 不指定的话(默认), 大小写是不敏感的; recogonizeInt 或 recogonizeDouble - 辨认出串中的数字, 在左侧字符相同的情况下按数值排序, recogonizeInt 表示辨认整数, recogonizeDouble 则辨认浮点数, 二选一。 如果不指定的话(默认), 数字和其它字符一视同仁, 比如 “长安街10号” 会排在 “长安街9号” 上方; ignoreComma - 辨认数字过程中, 忽略其中的逗号(千位符); | (无) |
sortSeparateChar | 列的排序分隔符 | 常用于 treeFormat="byId" 时的树的生成, 比如某 2 行 id 分别为 "A.11"、"A.1", 常规情形下 A.1 是 A.11的父亲, 但如果设置了 sortSeparateChar=".", 则 A.11 和 A.1 是平级的. sortSeparateChar必须为单个字符, 如果你希望把空格作为分隔符, 可以这样写: sortSeparateChar="#32" | (无) |
moveAble | 是否允许列的拖动操作 | true/false | true |
注: 如果<Properties>中的moveAble设为false, 则本moveAble无效(false)
pasteAble | 是否允许被粘贴 (非编辑状态下) | true - 允许; false - 不允许; supcan.xml - 通常是允许，但是当列不可编辑时(包括隐藏时)，将以supcan.xml中的 <pasteAbleWhenUnEditAble> 的设定为准; | supcan.xml |
copyExportAble | 列是否允许被复制、被转换输出 | true/false | true |
注1: "复制" 是指鼠标右键菜单的 "复制当前行"; 注2: 如果当前表中有单元格的合并，那么在转换输出时，该选项失效 (相当于全部为 True);
textId | 指向另一列的列名，显示的内容存放在该列中，是另类 key-value对 的简易字典解决方案 | 列名 | (无) |
autoId | 当插入行时，能自动生成并填入唯一的值 (仅用于 string, int, double 型字段) | 对于 int 型、double 型，为 true/false; 对于 string 型，可以为这样格式的串: len=[?];Prefix=[?] len 表示生成的随机串的长度(字数), 范围为1到32之间, Prefix 可选, 表示左侧固定串, 此固定串长度不计入 len string 也用 true/false 表示，true 等同于 "len=6" | false |
注: string 型的随机串是由数字 0-9 和字母 A-Z　混合组成的，每个字符相当于有36种取值, len=6时，其表达范围是36的6次方, 相当于21亿多。如果没有特别的需求，len 建议为 6 |  |
自定义属性 | 自定义属性 | 符合变量命名的任意串, 只要不和其它属性重名即可; 此外，允许有多个自定义属性 | (无) |
外观 | isThousandSeparat | 是否以千位符分隔显示 | true/false | true |
注: 仅用于 datatype 为 int 或 double 时
width | 列宽 | 整数 - 绝对宽度 (单位:像素数); 百分比 - 窗口宽度的百分比, 如：20%; 为小于1的分数 - 比例因子，用于分配剩余的宽度, 如0.2; fitHeader 或 header - 自动伸展到能使表头标题能够完整显示; | 0.1 |
注: 请参考开发者指南"Supcan Treelist组件"中的"16.2 关于列宽"
minWidth | 列的最小宽度 | 像素数 | 10 |
align | 水平对齐 | left / center / right | 随datatype而变 |
vAlign | 垂直对齐 | top / vcenter(或middle) / bottom | vcenter |
isSpaceIndent | 前导空格是否用于整体缩进 | true/false | false |
注: 仅用于左对齐时，"整体缩进"表示空格的空白区域整体有效，例如在自动折行显示时
alignHeader | 列标题文字的对齐 | left / center / right | center |
fontIndex | 采用的字体 | 数字，指向在<Fonts>中定义的字体的顺序号, 从0开始计数, 等级高于<Properties>中的同名属性 | -1 |
headerFontIndex | 列标题采用的字体 | 数字，指向在<Fonts>中定义的字体的顺序号, 从0开始计数, 等级高于<Properties>中的同名属性 | 加粗的顺序号为0的字体 |
headerTextColor | 列标题文字颜色 | 颜色串 | #000000 |
headerIcon | 列标题旁边的小图标 | 可以是图标的URL, 也可以是如下格式的串: url=[?];pos=[?] pos用于指定图标的位置, 是水平(left/right)、 垂直(top/middle/bottom)方向的组合. 举例如下: url=../ac.png;pos=right,bottom 建议采用png或ico这类透明的图片 | (无) |
headerIconTip | 鼠标点击上述小图标时弹出的提示文字 | 文字串, 如果不定义这个串，鼠标点击小图标时将触发Clicked事件 | (无) |
displayMask | 用于显示的格式掩码表达式 | 表达式的内容包括显示内容、 背景色、 文字色、 左图、 右图. 请详见Treelist帮助文档的"3.几个重要的属性" | (无) |
atLayer | 位于多层表头的层位置 | 数字，从0开始 | 0 |
extentRows | 当以多层表头显示时，该列可跨越多行显示的额外行数 | 数字，从0开始 | 0 |
dropDisplayType | 下拉列(droplis, droptreelist)单元格的文字显示方式 | 0 - 仅显示文字部分; 1 - 仅显示键值(即key)部分; 2 - 键值+" - "+文字; | 0 |
VColSep | 虚拟列的数据分隔符 | 串，比如"/", 如果设了这个串，在加载数据后，程序将按这个分隔符自动对各行数据进行处理，使其看上去呈现多列的效果。此外, 各个段中纵向、横向如果有连续相同的数据，将自动呈现纵、横的合并效果 | (无) |
注1: 仅改变显示效果，并不改变数据; 注2: VColSep列有诸多限制，例如只能用于string型、不能作为树的排序列等等;
VColSepStyle | 虚拟列的合并方式 | row - 只允许跨行的垂直合并; col - 只允许跨列的横向合并; row,col - 跨行、跨列自动合并; | row,col |
MouseMoveIn | 预约鼠标移入单元格的事件 | 数字，毫秒数，表示鼠标在该列的某个单元格上方停留超过此毫秒，即触发名为 "MouseMoveIn" 的事件；0表示不触发鼠标移入事件; | 0 |
图片列 | isImage | 是否图片列 | true/false | false |
注1: 若以图片显示, 内容串将是图片的URL(支持图片扩展URL)、或图片二进制的Base64串; 注2: 如果是相对URL, 是指相对于填入数据的URL, 而不是相对于当前XML文档或当前页面; 注3: 如果是URL, 图片是需要显示时才从URL取得图片数据的, 即所谓即用即下载; 注4: 不建议采用Base64串，因为数据包会很大; 注5: 请参见下面的备注2;
isBase64First | 当isImage=true时，内容串是否优先认作是图片的Base64大串 | true/false | false |
imageArrange | 图片展现方式 | useOriSize - 采用原始尺寸, 且从不缩放, 若单元格太小则显示局部; full - 能自动缩小(但从不放大), 使其完整显示, 保持长宽比; stretch - 自动缩放、完整显示, 且全部填满单元格, 不保持长宽比; stretchKeepRatio - 自动缩放、完整显示、保持长宽比, 长、宽中至少有一个是伸缩到满格的; | useOriSize |
输入 | editAble | 是否允许输入 | true/false | true |
注: 其等级低于Properties中的同名属性，也就是说如果 Properties 中的 editAble 为 false，则本editAble无效
editAbleNewRow | 当上方的editable=false时，新插入行(即非Load的行)的单元格是否可编辑 | true/false | false |
isSelectEditWhenFocus | 当输入框取得焦点时，光标是否选中全部文字 | true - 全选; false - 不选; auto - 自动, 表示数据类型为int或double时全选; | 沿用<Properties>中的同名属性 |
editType | 输入控件类型 | Edit - 最普通、允许EditMask的编辑; EditWithButton - 右侧有按钮的Edit; MultiLineEdit - 多行编辑(默认以Ctrl+Enter换行); Checkbox/Check - 复选框 (规则请见注1); RadioButton/Radio - 单选框 (规则请见注2); Button - 按钮; Droplist - 下拉列表; EditAbleDroplist - 可编辑的下拉列表; Droptreelist - 下拉嵌套的treelist; EditAbleDroptreelist - 可编辑的下拉嵌套treelist; | Edit |
注1: Checkbox显示方式和数据的关系: 单元格数据可以为 1 / 0 / 2 / -1, 分别显示为 选中 / 未选中 / 状态不确定(方框内显示一实框) / 不显示Checkbox; 注2: Radio显示方式和数据的关系: 单元格数据可以为 1 / 0, 分别显示为 选中 / 未选中(也不显示), 如果要显示未选中的radio, 请参考 <Properties> 的 isDrawUncheckedRadio 属性;
maxChars | 字符串长度限定 | 长度限制，以Unicode计(中英文均以 '字' 为单位) | 0 |
注: 不能同时使用maxChars和maxMBytes, 仅用于string型
maxMBytes | 字符串长度限定 | 长度限制，以字节计(中文算2字节、英文1字节) | 0 |
注: 不能同时使用maxChars和maxMBytes, 仅用于string型
max | 最大值 | 值串 | (无) |
注: 仅用于int、double、date、datetime型
min | 最小值 | 值串 | (无) |
注: 仅用于int、double、date、datetime型
editmask | 日期型、数值型的输入掩码 | 对于日期型，例如YYYY.MM.DD hh:mm:ss 对于数值型，举例如下: #,###,###.00 表示千位符分隔、小数点固定2位, 输入时, 全部清除时内容为空 #,###,##0.00 表示千位符分隔、小数点固定2位, 输入时, 全部清除时内容为0.00 #,###,##0.00### 同上, 但小数位数最多可以输入5位 #0.##### 整数部分无千位符且任意输入, 小数位数可以自由输入, 但最多5位 +0000 表示固定为4位的正整数 | 如左 |
注: 仅用于日期型、数值型的输入;
spin | 输入框内的垂直旋转滚动条: | true/false | 日期型是true |
注: 仅用于int、date、datetime型
spinAsCalendar | 右侧显示下拉按钮、点击弹出日历 | true/false | false |
注1: 仅用于date、datetime型; 注2: spin="true"才生效;
startDate | 日期为空时，在输入时的起跳日期(即开始日期) | 日期串，例如"2015.1.1", 也可以是表达式, 例如=now('%Y-%m-%d') | 2000.1.1 |
注: 仅用于date、datetime型
isWordWrap | 超宽时是否自动折行 | true/false | false |
注: 仅用于MultiLineEdit
isAutoTrimRight | 是否自动清空后继的空格 | true/false | true |
注: 仅用于string型
isConvertToZeroIfInputNull | 当清除输入框内容(比如全选后按 Del 键、Backspace键)时, 是否将单元格的内容转为0 (因为0和null是有区别的) | true - 转为0; false - 仍然为null; | false |
注: 仅用于数值型的Edit
droplistId | 下拉框的相关联的下拉资源ID | 串，该ID必须存在于下面的<Droplists>节点中 | (无) |
注1: 仅用于edittype为 droplist / droptreelist / editAbleDroplist / editAbleDropTreelist / editWithButton; 注2: 如果是下拉输入, 则为下拉框的相关联的下拉资源ID; 注3: 如果是EditWithButton, 则用作Key-Value字典(该ID须存在，或用"auto"表示自动创建);
delayBeforeDropdown | BeforeDropdown事件重复触发的最短时间差 | 秒 | 0 |
注: 仅用于edittype为 droplist / droptreelist / editAbleDroplist / editAbleDropTreelist
dropdownWidth | 强制设定下拉窗的宽度 | 像素数或百分比 | (无) |
注1: 百分比是指相对于列宽; 注2: 仅用于下拉;
dropdownHeight | 强制设定下拉窗的高度 | 像素数或百分比 | (无) |
注1: 百分比是指相对于屏幕的高度; 注2: 仅用于edittype为 droptreelist / editAbleDropTreelist;
isDropDownWhenFocus | 是否得到焦点就自动弹出下拉 | true/false | false |
enable (或enabled) | 列是否活动状态 | true - 常态; false - 该列不可输入, 且以灰色显示; readonly - 可以进入编辑窗但内容无法被修改, 通常用于 EditWithButton, 其右侧的按钮是 Enable 的 | true |
freeInputAble | 输入内容是否受限 | true - 可任意输入，内容不受限制; false - 受Droplist中的dataCol、dispCol限制, 输入内容必须和dataCol、dispCol匹配, 否则输入无效; | false |
注1: 如果EditWithButton绑定了DroplistID，则强制被设为false; 注2: 仅用于EditAbleDropTreelist, editWithbutton;
isCheckboxOnly | 是否仅仅用于Checkbox选择 | true/false, 如果是True，则不管 <Properties> 中的"editable"是true还是false，该Checkbox均是可操作的，并且左标尺的鼠标右键有全选、反选等菜单功能 | false |
注1: 仅用于 Checkbox; 注2: 一般不允许有多个 isCheckboxOnly 列;
TreeCombine | 以树显示时, CheckBox显示在树的第一列, 本列自动隐藏 | 可以包含如下串： normal - 树杈不允许有复选框; NodeSelectAble 或 node - 树杈允许有复选框; AutoSelectChildren 或 auto - 树杈选中后, 将自动影响到其子孙; | false |
注1: 仅用于Checkbox 且 isCheckboxObly="true"; 注2: 单列多层树、多列多层树均适用; 例如：treeCombine="node,auto"; 注3: 仅仅是显示合并，其单元格数据仍然是独立的;
GroupID | RadioButton(单选框)所在的组 | 串 | (无) |
注1: 仅用于 Radio; 注2: GroupId="row"表示纵向选择，即只有一行的值为1; 注3: 如果仅有一个组, 则可忽略;
EditTextId | 含 TextId 的列的输入方式 | id - 只能输入 id (即key, 单元格的值); text - 优先输入 Text | id |
注: 仅用于非下拉的、通过 TextId 映射或通过 SetCellDataText( ) 设置了key-data映射的列
按钮列 | buttonText | 按钮上的文字 | 串 | (无) |
注: buttonText 和 buttonImg至少要定义一项
buttonImg 或 buttonImage | 按钮上的小图标 | URL | (无) |
注1: buttonText 和 buttonImg至少要定义一项; 注2: buttonImage除了用于按钮列，也能用于EditWithButton、DropTreelist的右侧的图标;
buttonTip | 鼠标划过按钮时的Tip | 文字串 | (无) |
buttonWidth | 按钮宽度 | 数字，像素数 | (无) |
buttonHeight | 按钮高度 | 数字，像素数 | (无) |
buttonSkin | 强制指定按钮皮肤 | windows - 操作系统按钮外观; default - 自动，与全局色调一致; flat - 平坦，无按钮边框，常用于仅有图标的情形; light gray - 浅灰色; caramel - 焦糖色; lilian - 百合花色; lividity - 青黑色; | windows |
关于按钮状态的重要提示: 按钮在每行的显示和单元格的值有关: 1:正常显示按钮, 0:按钮显示为Disabled, 其它值: 不显示按钮，作为纯文字显示;
关于多按钮: 一列中允许同时有多个按钮, 如右图所示. 上述buttonText、buttonTip、buttonImg、buttonWidth的内容只要用逗号(,)分隔即可，例如： buttonText="审核, 不审核"　buttonWidth="50, 70". 关于决定按钮状态的单元格的值, 可以采用单一的 0 或 1 整体决定其 disable / enable 状态, 也可以是 string 型的字段, 以逗号分隔多个 0/1 , 为本行的每个按钮设置状态. |
合计 小计 | totalExpress subtotalExpress | 合计/小计表达式 | 表达式 | (无) |
注1: 表达式可以包含 @开头的宏, 如 @sum、@rows, 请参见《开发者指南》中的“公共内容”的“3.宏”中的“合计宏”; 注2: 表达式可以包含 @开头的其它列的列名, 表示取当前小计范围中第一个明细行中某列的内容; 注3: 表达式可以包含 其它列的列名, 表示取同一行中其它列的内容;
totalAlign subtotalAlign | 合计/小计的水平对齐 | left / center / right | right |
totalDecimal subtotalDecimal | 合计/小计保留的小数位数 | 0 至 8 | 与当前列一致 |
多个合计行的语法: 允许有多个独立的合计行，命名规则为 totalExpress1、 totalExpress2...类推， totalAlign 和 totalDecimal 也可按这个规则书写

备注1: 上述列标题、buttonText，允许以"|"分隔中英文(用于中英文切换);
备注2: isHyperLink、isImage的列，如果加载的单元格数据以特征串 “[NoEffect]” 开头(大小写敏感)，表示该单元格以普通文字显示，特征串 [NoEffect] 使用范围为:
1.仅用于初始数据;
2.对 SetCellData( ) 函数设置的值无效;
3.该特征串在加载时能被自动识别、摘除，不会出现在单元格中;