《星城软件--顿表》操作说明书

1 组件介绍

        “组件”是《顿表》中最基本的结构与功能单位,通过《顿表》所搭建出来的任何管理系统都是由“组件”构成,就如同建造一座大厦所需要的建筑材料,钢筋、砖块、混凝土……不同的组件有不同的功能,而按功能可划分为:“表格操作组件”、“单据组件”、“关联表格组件”等等,见下图:

        

        不同功能的组件将在后面的内容中逐一细述,这里主要对组件的内部结构做简述:

        A、菜单:几乎每个组件都需要与一个菜单配合使用,一个菜单下可以包含组件的所有元素,如同VC语言中的句柄。《顿表》中有很多操作执行的对象,都是针对菜单的,而菜单下所包含的组件内容,就是被执行的实体。简而言之,菜单就是一个功能模块的载体。

        

        B、数据表:数据表是《顿表》中的核心部分,直接理解为数据库中的表就可以了,没有太大的区别。表同样是由字段组成,字段有不同的类型(字符、整型、备注……)

        值得注意的是,数据表可以脱离组件而存在,或者说数据表可以不和菜单绑定,作为一个内部数据源而隐藏在系统中。如果数据表没有和菜单绑定,那么就不能直观地去管理这些表了,这时要是想了解这些隐藏了的数据表的情况,可以在【开发平台】--【系统开发】--【表管理】中查看,如下图:

        

        C、列表(列表界面):其实就是一个“Tableview控件”加上“Button控件”封装而成的固定界面,让数据以一条条记录的形式呈现。下图就是一个列表界面,列表内容来源于数据表。

        

        D、卡片(卡片界面):由“TextBox控件”、“Button控件”、“Label控件”等控件封装而成的固定界面,把每条记录的数据完全呈现出来,或者可以理解为由操作员录入数据的界面。

        下图是一个常见的卡片界面:

        

        以上所提到的组成部分,除菜单是必须有的,其他部分在一些特殊的组件中可以不存在,如“链接组件”,只需要一个链接与菜单配合使用就行了;还有“数据库操作组件”把一批SQL语句封套在一个菜单(事务)下,以便被调用。这些都将会在后面的内容中讲述,此处作个大致的了解就可以了。

1.1 变量操作

        使用《顿表》构建管理系统时,同样可以使用变量(全局变量)。这些变量是系统重新构造过的,书写格式都为: ([变量名])

1.1.1 操作员

        登录系统的操作员名称变量

        书写格式为: ([操作员])

        效果:张三(人名)

1.1.2 操作员代码

        登录系统的操作员代码(编码)变量

        书写格式为: ([操作员代码])

        效果:01(编码)

1.1.3 年份

        截取当前年份的变量

        书写格式:([年份])

        效果:2016

1.1.4 月份

        截取当前月份的变量

        书写格式:([月份])

        效果:06

1.1.5 年月

1.1.6 日期

        截取当前日期的变量

        书写格式:([日期])

        效果:24

1.1.7 今天

        截取当前系统的日期

        书写格式:([今天])

        效果:2016-06-24

1.1.8 当前精确时间

        截取当前时间(时:分:秒)

        书写格式:([当前精确时间])

        效果:08:59:42

1.1.9 当前时间

        截取当前时间(时:分)

        书写格式:([当前时间])

        效果: 09:01

1.1.10 日期时间

        截取当前数据库的日期和时间(年-月-日 时:分)

        书写格式:([日期时间])

        效果:2016-06-27 09:03

1.1.11 换行

        一个换行符,若在一个长文档中可以使用换行变量进行换行

        书写格式:([换行])

        例子:这是一个使用([换行])测试

        效果:

        这是一个使用

        测试

1.1.12 年份计数_标志_位数

        一个数量累计的变量,每跨一年变量自动归零,重新累计。

        书写格式:([年份计数_标志_位数])

        例子:([年份计数_rk_3]) 前面“年份计数_”是固定格式,表示这个变量按年自动归零;“rk”这是此变量的真实名称,建议使用英文或数字,这个名称不要有重复;“3”是位数,即3位,如果累计数量大于3位会自动增加位数。

        效果:今年内每次调用这个变量就会自动累计,如001、002、003、004……一直累计下去,第二年重新开始累计

1.1.13 月份计数_标志_位数

        一个数量累计的变量,每跨一个月变量自动归零,重新累计。

        书写格式:([月份计数_标志_位数])

        例子:([月份计数_rk_3]) 前面“月份计数_”是固定格式,表示这个变量按月自动归零;“rk”这是此变量的真实名称,建议使用英文或数字,这个名称不要有重复;“3”是位数,即3位,如果累计数量大于3位会自动增加位数。

        效果:当月内每次调用这个变量就会自动累计,如001、002、003、004……一直累计下去,第二个月重新开始累计

        与年计数类似

1.1.14 日期计数_标志_位数

        一个数量累计的变量,每跨一日变量自动归零,重新累计。

        书写格式:([日期计数_标志_位数])

        例子:([日期计数_rk_3]) 前面“日期计数_”是固定格式,表示这个变量按日自动归零;“rk”这是此变量的真实名称,建议使用英文或数字,这个名称不要有重复;“3”是位数,即3位,如果累计数量大于3位会自动增加位数。

        效果:当日内每次调用这个变量就会自动累计,如001、002、003、004……一直累计下去,第二天归零,重新开始

        与年、月计数类似

1.1.15 计数_标志_位数

        一个数量累计的变量,从变量开始使用起,会一直累计下去。

        书写格式:([计数_标志_位数])

        例子:([计数_A_3]) 前面“计数_”是固定格式,表示这是一个永远累加的变量;“A”这是此变量的真实名称,建议使用英文或数字,这个名称不要有重复;“3”是位数,即3位,如果累计数量大于3位会自动增加位数。

        效果:变量使用开始起会自动累计为:001、002、003、004、005、006……

1.1.16 表列值_表名_字段名_SQL条件

1.1.17 图片_值

1.1.18 表名_表名称

        使用中文的表名,即建表时的名称,一般使用SQL语句时可以使用这个变量

        书写格式:([表名_表名称])

        例子:([表名_货品信息表]) “表名_”部分是固定不变的,后面的名称就是需要引用的表的中文名称

        效果:D_7452_1003_1022 ,这个是在数据库中的原表名(真实表名),变量只是用中文名称代替了这个表名而已

        

        注:请结合下面【字段名称】变量来理解

1.1.19 t_表序号

1.1.20 字段名_表名称_字段名称

        使用中文的表字段名称,即建表时的字段名称,一般使用SQL语句时可以引用这个变量

        书写格式:([字段名_表名称_字段名称])

        例子:([字段名_货品信息表_产地]) “字段名_”部分是固定不变的,后面的“表名称”就是需要引用的表的中文名称(如“货品信息表”),“字段名称”是前面表名中含有的任意一个字段名称(如“产地”)

        相当于:1先告诉系统这是一个什么变量?(是“字段名”的变量);2是哪个表的字段名?(是“货品信息表”中的字段);3是这个表中具体哪个字段?(是“产地”字段的名称)

        

        效果:X14 (从上图可以看出,“货品信息表”中“产地”字段的原来名称是 X14)

        注:请结合上面【表名称】变量来理解

1.1.21 查询语句值_语句

1.1.22 按纽操作_操作序号_按纽标题

1.1.23 空值_取值_值

1.1.24 是否_判断值_否值_是值

        按条件取值的变量。if (条件) then (值1) else (值2)

        书写格式:([是否_判断值_否值_是值])

        例子:([是否_[开始]_中间部分_开始部分]) “是否_”部分是固定不变的,“[开始]”是条件,即这个字段必须是布尔值,“中间部分”是[开始]=假的取值,“开始部分”是[开始]=真的取值

        效果类似于:

        if [开始] then 开始部分

        else 中间部分

1.1.25 菜单_菜单值

1.1.26 菜单记录数_菜单值

1.1.27 菜单值_菜单名

1.1.28 父表值_父表序号_字段名

1.1.29 卡片ID_表序号-菜单序号

1.1.30 大写_数字

1.1.31 套打大写_数字

1.1.32 页面变量_变量名

1.1.33 表序值_表序号

1.1.34 表序值2_表序号_序号数

1.1.35 自变_自定义变量名称

1.1.36 树表选中值_操作序号

1.1.37 当前单据序号_操作序号

1.1.38 变量组件值_名称

1.1.39 变量组件值图片_名称

1.1.40 CCTEXT_ID_WIDTH_VALUE

1.1.41 CCDATE_ID_WIDTH_VALUE

1.1.42 CCTIME_ID_WIDTH_VALUE

1.1.43 CCMEMO_ID_HIGH_VALUE

1.1.44 CCLIST_ID_WIDTH_SELECTS_VALUE

1.1.45 CCRADIO_ID_SELECTS_VALUE

1.1.46 CCCHECK_ID_VALUE

1.1.47 CCPIC_ID_WIDTH_HIGH_READ

1.1.48 CCPIC2_[FIELD]_WIDTH_HIGH_READ

1.1.49 CCFILE_ID_WIDTH_HIGH_READ

1.1.50 CCFILE2_[FIELD]_WIDTH_HIGH_READ

1.1.51 CCGETFILE_ID

1.1.52 CCGETFILE2_[FIELD]

1.1.53 CCBUTTON_ID_CAPTION_MSG_SQL

1.1.54 CCWIND_BUTCAPTION_OPID_TITLE_WIDTH_HIGH

1.2 表格操作

        即数据表的建立、修改,这是整个系统的核心组件配置部分。本组件分为:基础设计、编辑设计、高级设计。

        注:在建表时,表的名称,字段的名称最好不要使用英文的下划线,例如:“学生_生日表”、“学生_编码”,这样的命名会跟后面变量的运用产生冲突!

1.2.1 基础设计

        建立一个基本的数据表,如增、删字段,定义字段类型、字段长度,还有基本操作控件的显示设置,总的来说【基础设计】是新表建立的一个初始化操作。

        

1.2.1.1 字段设计

        设置表字段,增、删字段(名称),定义字段类型,数据长度等等,即针对每个字段进行的基本设置。

1.2.1.1.1

1.2.1.2 整体设计

        用户表操作界面中各个控件的基本设置。

        

        如图:“增加”、“全部删除”、“导入”、“导出”、“查询”控件,操作中的“查看”、“修改”、“删除”控件,“列表控件”的显示都是通过【基础设计】--【整体设计】这里进行调整。

1.2.1.2.1

1.2.2 编辑设计

        【编辑设计】主要是界面美化或是个性化的处理,及输入字段的输入方式、显示方式的处理模块。

1.2.2.1 字段设计

        针对卡片界面中各个输入字段的特殊处理。

1.2.2.1.1

1.2.2.2 整体设计

        这部分的设置和“基础设计”类似,也是针对控件的处理。不过这里更着重于界面的美化与个性化设计,如列数的设定、脚本的设计都是为了美化列表控件和卡片界面。

1.2.2.2.1

1.2.3 高级设计

        【高级设计】是整个系统最灵活的设计部分,也是比较难掌握的部分。这里更多的使用到变量、计算公式,其中还有多个表之间的操作设置。

1.2.3.1 字段设计

        对表字段(列或是卡片)的特殊处理,如设置缺省值,计算公式等等。

1.2.3.1.1

1.2.3.2 整体设计

        对列表界面、卡片界面的特殊设置,如子操作、卡片新增操作等等。

1.2.3.2.1

1.2.4 综合设计

1.2.4.1 字段设计

1.2.4.1.1

1.2.4.2 整体设计

1.2.4.2.1

1.3 单据操作

        单据设计,比如一个采购入库单,一般是有表头、表尾和表体(货品明细),所以一个单据在系统中就包含了两个表,一个单据头尾表,另外一个是单据表体(明细部分)。

        下面以建立一个“采购入库单”为例,讲解一下单据的设计:

        1、建立两个表,一个是“采购入库单头尾表”、一个是“采购入库单明细表”(表体),建立这个两个表前,先新建两个菜单

        

        在各自的菜单下再建立这两个表(“采购入库单_头尾表”,“采购入库单_明细表”)

        

        

        注:建立这两个菜单的作用只是为了方便管理表的来源而已,其实以上两个表可以在任意菜单下新建的。新建了表后,也可以把对应的菜单删除,菜单和表互相之间是分离的,没有必然的联系。这里建立两个菜单,再建立两个表,只是其中一种构建形式而已。

        “采购入库单_头尾表”,如果要做单据审核流程的话,在建立这个头尾表的时候可以增加“流程控制字段”(见【流程设置】的说明),下图为头尾表的一般字段:

        

        “采购入库单_明细表”,见下图

        

        2、表建立好之后,下面就要建立单据。首先是要新建一个菜单,就叫“采购入库单”,再在此菜单下建立一个“采购入库单据”,见下图:

        

        如上图,点“单据”组件,然后“新建单据”,输入一个单据的名称,最后,“表头表”和“表体表”各自对应好前面新建的“采购入库单_头尾表”和“采购入库单_明细表”

        3、单据建立好,下面就是对单据表头尾、表体部分的设计(要结合前面【基础设计】、【编辑设计】、【高级设计】的内容)

        

        表头设计:字段区分表头、表尾的设计:进入“单据表头尾设计”—“编辑”,把“表尾”对应的字段勾上即可,见下图:

        

        表体设计:增加计算公式,如“数量X单价=金额”,金额的反算“金额/数量=单价”,合计部分的显示,选择表的对应等等,见下图:

        

        两个设计和前面说明的【基础设计】【编辑设计】【高级设计】都类似的,这里就不做冗诉了。

        4、单据效果,见下图:

        

        5、单据的审核流程设置:在“单据头尾设计”--“编辑”--“增加审核控制字段”,添加“已审”、“审核人”、“审核时间”三个字段,如下图

        

        添加了字段之后,单据操作界面中自动会增加上“审核”/“反审”按钮,如下图

        

        

1.4 父子表格

1.5 页面操作

1.6 关联表格

        关联两个表(单据)进行查询,并生成一个新的关联表。

        一次最多关联两个表

        

        “建立关联关系”:将两个表的关联字段标选出来并对应好

        

        “设置数据条件”:设置两个表的过滤条件,只留下符合条件的记录进行关联。设置方式见:【表格操作】--【基础设计】--【整体设计】--【设置数据条件】

        “选择关联类型”:控制关联表中获得的记录类型。(类似于inner join 、left join 、right join 的用法。)

        

        生成的关联表,有些字段是不需要的,可以隐藏起来

        

        关联表出来的效果

        

1.7 合并表格

        多个表(或单据)的合并成一个表,要选择每个表中相同的字段进行合并,如果是数量(整数、实数)类型的字段还可以选择正、负值。生成一个合并的表后,就可以对这个表进行统计分析。

        下图为新建合并表,可以同时把9个表(单据)合并为一个

        

        下图是选择不同的表(单据)中相同的字段进行合并统计(主表无需选择)

        

        表(单据)合并后有些字段我们是不需要的,可以将其隐藏

        

        合并后的效果如下图:(正数部分为入库单记录,负数部分为出库单记录)

        

1.8 报表设计

        对单表进行分组、分类的统计处理,有3种报表类型:“分组报表”、“交叉报表”、“图形报表”

        分组报表:

        “设置报表项目”:选择对应的字段进行分组,一共可以分为3组,然后再选择需要进行统计的字段(即做累加的字段 sum(字段)),见下图:

        

        “数据条件”:设置过滤条件,把不符合条件的记录过滤掉,设置方式见:【表格操作】--【基础设计】--【整体设计】--【设置数据条件】(类似操作)

        “公式设置”:对查询出来的字段进行计算

        “设置查询定制”:这是查询记录的功能,设置方式见:【表格操作】--【基础设计】--【整体设计】--【查询设计】(类似操作)

        交叉报表:把需要交叉查询的字段放在表头列进行查看,其他分组字段类似于“分组报表”的设置。如服装行业ERP的尺码字段一般以列的形式显示,就可以使用这样的报表。

        图形报表:以图形界面的方式呈现报表,有“柱状图”、“饼状图”、“折线图”、“面积图”4种图形,见下图:

        

        

        

        

1.9 外部数据

        可以联接外部数据库,从外部数据库中得到对应的表,再对表进行编辑设计,相当于一个接口的接入。

        

1.10 审批流程

        审批流程设置的基础设置组件。

        如果要使用到审批流程,必须要先在这里设置好两个部分:“流程种类”(即“工作流程的名称”或者叫“工作流程的项目”),“流程定义”(定义每个“流程项目”中包含的步骤)

        设置方法:见【表格操作】--【高级设计】--【整体设计】--【流程设置】,这个地方的设置是互相对应的。

1.11 链接操作

        插入一个网站的链接,在单据、表格保存后执行界面的跳转,或在卡片中执行打开对应网站界面的操作,如下图:

        

        

1.12 选择表格

        建立一个可供选择录入的表组件。

        应用场景:在录入单据的时候,或者建立资料的时候,一般需要从另外一个表中读取某个字段值,这时就可以使用“选择表”。

        设置方法:具体的设置方法在【表格操作】--【高级设计】--【字段设计】--【选择表】中有详述,这里的设置是和前面的说明互相对应的。

1.13 代码操作

1.13.1 表格

<button>
<cap>标题</cap>
<control-field>(x17<>1 or x17 is null)</control-field>
<wind>2</wind>(2是菜单序号)
<ask>提问是否执行</ask>
<op>2</op>(2是菜单序号)
<sql>DO:PUTTBKEY;1005;XX</sql>
<sql>INSERT INTO D_1005_1161(XTABLEID,x11) SELECT ([PUTTBKEY;1005;XX]),x6 FROM D_1002_1161 WHERE xtableid=([BILLKEY])(支持变量:([WINDKEY]))</sql>
支持页面变量,再如:<sql>INSERT INTO D_1003_1406(x8) VALUES('([页面变量_x1])')</sql>(及页面日期变量)
在列表页眉中设置如:<input type='input' id='x1' name='x1' />
<result>操作完成</result>
</button>

**<add-msg>增加提示</add-msg>
**<mod-stop>不能修改的条件,是一个WHERE语句</mod-stop>
**<mod-msg>修改提示</mod-msg>
**<del-msg>删除提示</del-msg>
**<del-sql>删除前执行的SQL</del-sql>
**<del-stop>不能删除的条件,是一个WHERE语句</del-stop>
**<del-stop-msg>不能删除的提示</del-stop-msg>
**<del2-stop>不能删除的条件,是一个WHERE语句,从列表上禁止</del2-stop>

**<save-sql-add>保存后执行SQL</save-sql-add>
**<save-sql-mod>修改后执行SQL</save-sql-mod>
**<del-after-sql>删除后执行SQL</del-after-sql>
注意:以上三个操作支持本条数据字段变量,格式[字段].支持条件[本条],[XTABLEID];同时支持全局变量.

**<title-from-main>取主表内容为标题</title-from-main>
**<start-sql>打开菜单时即执行SQL</start-sql>

**<real-sql>表格中真实显示的数据</real-sql>

**<multi-select-row>多选字段/返回值分隔符 (格式如:X12/,)</multi-select-row>
注意:多选值点击操作后即写入到数据库中了,写入SESSION变量为:GRIDMULTICHOSE-菜单编码。凡变量保存于表S_S_PARA2中,可使用([SESSION_])调用

**<order-by>语句,如:X2,XTABLEID,ID</order-by>
sql语句支持:
DO:PUTTBKEY;1002;XX 取值([PUTTBKEY;1002;XX])

**<excel-getin-dosql>EXCEL导入后执行的SQL语句</excel-getin-dosql>

注意:在卡片专业设计中,保存了当前卡片数据的ID值,变量是:TBID-表值-菜单值

<save-sql-where>保存条件(是一个SQL WHERE语句,[x1]表示输入的值)</save-sql-where>
<save-sql-wheremsg>条件不成立时的提示</save-sql-wheremsg>

1.13.2 单据

<button>
<cap>标题</cap>
<control-field>(x17<>1 or x17 is null)</control-field>
<wind>2</wind>(2是菜单序号)
<ask>提问是否执行</ask>
<op>2</op>(2是菜单序号)
<sql>DO:PUTTBKEY;1005;XX</sql>
<sql>INSERT INTO D_1005_1161(XTABLEID,x11) SELECT ([PUTTBKEY;1005;XX]),x6 FROM D_1002_1161 WHERE xtableid=([BILLKEY])(支持变量:([WINDKEY]))</sql>
支持页面变量,再如:<sql>INSERT INTO D_1003_1406(x8) VALUES('([页面变量_x1])')</sql>(及页面日期变量)
在列表页眉中设置如:<input type='input' id='x1' name='x1' />
<sql>update D_1002_1161 set x17=1 where xtableid=([BILLKEY]) (支持变量:([BILLKEY])、([WINDKEY]))</sql>
<result>操作完成</result>
</button>
<edit-do>1</edit-do>编辑状态有效
<noedit-do>1</noedit-do>非编辑状态有效

<grid-sum-to-X201>X278</grid-sum-to-X201>(注意:X要大写)

**<start-sql>打开菜单时即执行SQL</start-sql>

sql语句支持:
DO:PUTTBKEY;1002;XX 取值([PUTTBKEY;1002;XX])

<save-sql-where>保存条件(是一个SQL WHERE语句,[x1]表示输入的值)</save-sql-where>
<save-sql-wheremsg>条件不成立时的提示</save-sql-wheremsg>

1.14 操作组合

1.15 电子邮件

1.16 微信推送

1.17 电商组件

1.18 更多组件

1.18.1 菜单权限设置

1.18.2 权限组管理

1.18.3 工作日志

1.18.4 服务号成员

1.18.5 重置密码

1.18.6 字段访问控制

1.18.7 login

1.18.8 modHelp

1.18.9 demoBillType

1.18.10 modDemoBill

1.18.11 modDemoBillDel

1.18.12 TEST

2 变量介绍

        使用《顿表》构建管理系统时,同样可以使用变量(全局变量)。这些变量是系统重新构造过的,书写格式都为: ([变量名])

2.1 操作员

        登录系统的操作员名称变量

        书写格式为: ([操作员])

        效果:张三(人名)

2.2 操作员代码

        登录系统的操作员代码(编码)变量

        书写格式为: ([操作员代码])

        效果:01(编码)

2.3 年份

        截取当前年份的变量

        书写格式:([年份])

        效果:2016

2.4 月份

        截取当前月份的变量

        书写格式:([月份])

        效果:06

2.5 年月

2.6 日期

        截取当前日期的变量

        书写格式:([日期])

        效果:24

2.7 今天

        截取当前系统的日期

        书写格式:([今天])

        效果:2016-06-24

2.8 当前精确时间

        截取当前时间(时:分:秒)

        书写格式:([当前精确时间])

        效果:08:59:42

2.9 当前时间

        截取当前时间(时:分)

        书写格式:([当前时间])

        效果: 09:01

2.10 日期时间

        截取当前数据库的日期和时间(年-月-日 时:分)

        书写格式:([日期时间])

        效果:2016-06-27 09:03

2.11 换行

        一个换行符,若在一个长文档中可以使用换行变量进行换行

        书写格式:([换行])

        例子:这是一个使用([换行])测试

        效果:

        这是一个使用

        测试

2.12 年份计数_标志_位数

        一个数量累计的变量,每跨一年变量自动归零,重新累计。

        书写格式:([年份计数_标志_位数])

        例子:([年份计数_rk_3]) 前面“年份计数_”是固定格式,表示这个变量按年自动归零;“rk”这是此变量的真实名称,建议使用英文或数字,这个名称不要有重复;“3”是位数,即3位,如果累计数量大于3位会自动增加位数。

        效果:今年内每次调用这个变量就会自动累计,如001、002、003、004……一直累计下去,第二年重新开始累计

2.13 月份计数_标志_位数

        一个数量累计的变量,每跨一个月变量自动归零,重新累计。

        书写格式:([月份计数_标志_位数])

        例子:([月份计数_rk_3]) 前面“月份计数_”是固定格式,表示这个变量按月自动归零;“rk”这是此变量的真实名称,建议使用英文或数字,这个名称不要有重复;“3”是位数,即3位,如果累计数量大于3位会自动增加位数。

        效果:当月内每次调用这个变量就会自动累计,如001、002、003、004……一直累计下去,第二个月重新开始累计

        与年计数类似

2.14 日期计数_标志_位数

        一个数量累计的变量,每跨一日变量自动归零,重新累计。

        书写格式:([日期计数_标志_位数])

        例子:([日期计数_rk_3]) 前面“日期计数_”是固定格式,表示这个变量按日自动归零;“rk”这是此变量的真实名称,建议使用英文或数字,这个名称不要有重复;“3”是位数,即3位,如果累计数量大于3位会自动增加位数。

        效果:当日内每次调用这个变量就会自动累计,如001、002、003、004……一直累计下去,第二天归零,重新开始

        与年、月计数类似

2.15 计数_标志_位数

        一个数量累计的变量,从变量开始使用起,会一直累计下去。

        书写格式:([计数_标志_位数])

        例子:([计数_A_3]) 前面“计数_”是固定格式,表示这是一个永远累加的变量;“A”这是此变量的真实名称,建议使用英文或数字,这个名称不要有重复;“3”是位数,即3位,如果累计数量大于3位会自动增加位数。

        效果:变量使用开始起会自动累计为:001、002、003、004、005、006……

2.16 表列值_表名_字段名_SQL条件

2.17 图片_值

2.18 表名_表名称

        使用中文的表名,即建表时的名称,一般使用SQL语句时可以使用这个变量

        书写格式:([表名_表名称])

        例子:([表名_货品信息表]) “表名_”部分是固定不变的,后面的名称就是需要引用的表的中文名称

        效果:D_7452_1003_1022 ,这个是在数据库中的原表名(真实表名),变量只是用中文名称代替了这个表名而已

        

        注:请结合下面【字段名称】变量来理解

2.19 t_表序号

2.20 字段名_表名称_字段名称

        使用中文的表字段名称,即建表时的字段名称,一般使用SQL语句时可以引用这个变量

        书写格式:([字段名_表名称_字段名称])

        例子:([字段名_货品信息表_产地]) “字段名_”部分是固定不变的,后面的“表名称”就是需要引用的表的中文名称(如“货品信息表”),“字段名称”是前面表名中含有的任意一个字段名称(如“产地”)

        相当于:1先告诉系统这是一个什么变量?(是“字段名”的变量);2是哪个表的字段名?(是“货品信息表”中的字段);3是这个表中具体哪个字段?(是“产地”字段的名称)

        

        效果:X14 (从上图可以看出,“货品信息表”中“产地”字段的原来名称是 X14)

        注:请结合上面【表名称】变量来理解

2.21 查询语句值_语句

2.22 按纽操作_操作序号_按纽标题

2.23 空值_取值_值

2.24 是否_判断值_否值_是值

        按条件取值的变量。if (条件) then (值1) else (值2)

        书写格式:([是否_判断值_否值_是值])

        例子:([是否_[开始]_中间部分_开始部分]) “是否_”部分是固定不变的,“[开始]”是条件,即这个字段必须是布尔值,“中间部分”是[开始]=假的取值,“开始部分”是[开始]=真的取值

        效果类似于:

        if [开始] then 开始部分

        else 中间部分

2.25 菜单_菜单值

2.26 菜单记录数_菜单值

2.27 菜单值_菜单名

2.28 父表值_父表序号_字段名

2.29 卡片ID_表序号-菜单序号

2.30 大写_数字

2.31 套打大写_数字

2.32 页面变量_变量名

2.33 表序值_表序号

2.34 表序值2_表序号_序号数

2.35 自变_自定义变量名称

2.36 树表选中值_操作序号

2.37 当前单据序号_操作序号

2.38 变量组件值_名称

2.39 变量组件值图片_名称

2.40 CCTEXT_ID_WIDTH_VALUE

2.41 CCDATE_ID_WIDTH_VALUE

2.42 CCTIME_ID_WIDTH_VALUE

2.43 CCMEMO_ID_HIGH_VALUE

2.44 CCLIST_ID_WIDTH_SELECTS_VALUE

2.45 CCRADIO_ID_SELECTS_VALUE

2.46 CCCHECK_ID_VALUE

2.47 CCPIC_ID_WIDTH_HIGH_READ

2.48 CCPIC2_[FIELD]_WIDTH_HIGH_READ

2.49 CCFILE_ID_WIDTH_HIGH_READ

2.50 CCFILE2_[FIELD]_WIDTH_HIGH_READ

2.51 CCGETFILE_ID

2.52 CCGETFILE2_[FIELD]

2.53 CCBUTTON_ID_CAPTION_MSG_SQL

2.54 CCWIND_BUTCAPTION_OPID_TITLE_WIDTH_HIGH

3 脚本介绍

3.1 表格

<button>
<cap>标题</cap>
<control-field>(x17<>1 or x17 is null)</control-field>
<wind>2</wind>(2是菜单序号)
<ask>提问是否执行</ask>
<op>2</op>(2是菜单序号)
<sql>DO:PUTTBKEY;1005;XX</sql>
<sql>INSERT INTO D_1005_1161(XTABLEID,x11) SELECT ([PUTTBKEY;1005;XX]),x6 FROM D_1002_1161 WHERE xtableid=([BILLKEY])(支持变量:([WINDKEY]))</sql>
支持页面变量,再如:<sql>INSERT INTO D_1003_1406(x8) VALUES('([页面变量_x1])')</sql>(及页面日期变量)
在列表页眉中设置如:<input type='input' id='x1' name='x1' />
<result>操作完成</result>
</button>

**<add-msg>增加提示</add-msg>
**<mod-stop>不能修改的条件,是一个WHERE语句</mod-stop>
**<mod-msg>修改提示</mod-msg>
**<del-msg>删除提示</del-msg>
**<del-sql>删除前执行的SQL</del-sql>
**<del-stop>不能删除的条件,是一个WHERE语句</del-stop>
**<del-stop-msg>不能删除的提示</del-stop-msg>
**<del2-stop>不能删除的条件,是一个WHERE语句,从列表上禁止</del2-stop>

**<save-sql-add>保存后执行SQL</save-sql-add>
**<save-sql-mod>修改后执行SQL</save-sql-mod>
**<del-after-sql>删除后执行SQL</del-after-sql>
注意:以上三个操作支持本条数据字段变量,格式[字段].支持条件[本条],[XTABLEID];同时支持全局变量.

**<title-from-main>取主表内容为标题</title-from-main>
**<start-sql>打开菜单时即执行SQL</start-sql>

**<real-sql>表格中真实显示的数据</real-sql>

**<multi-select-row>多选字段/返回值分隔符 (格式如:X12/,)</multi-select-row>
注意:多选值点击操作后即写入到数据库中了,写入SESSION变量为:GRIDMULTICHOSE-菜单编码。凡变量保存于表S_S_PARA2中,可使用([SESSION_])调用

**<order-by>语句,如:X2,XTABLEID,ID</order-by>
sql语句支持:
DO:PUTTBKEY;1002;XX 取值([PUTTBKEY;1002;XX])

**<excel-getin-dosql>EXCEL导入后执行的SQL语句</excel-getin-dosql>

注意:在卡片专业设计中,保存了当前卡片数据的ID值,变量是:TBID-表值-菜单值

<save-sql-where>保存条件(是一个SQL WHERE语句,[x1]表示输入的值)</save-sql-where>
<save-sql-wheremsg>条件不成立时的提示</save-sql-wheremsg>

3.2 单据

<button>
<cap>标题</cap>
<control-field>(x17<>1 or x17 is null)</control-field>
<wind>2</wind>(2是菜单序号)
<ask>提问是否执行</ask>
<op>2</op>(2是菜单序号)
<sql>DO:PUTTBKEY;1005;XX</sql>
<sql>INSERT INTO D_1005_1161(XTABLEID,x11) SELECT ([PUTTBKEY;1005;XX]),x6 FROM D_1002_1161 WHERE xtableid=([BILLKEY])(支持变量:([WINDKEY]))</sql>
支持页面变量,再如:<sql>INSERT INTO D_1003_1406(x8) VALUES('([页面变量_x1])')</sql>(及页面日期变量)
在列表页眉中设置如:<input type='input' id='x1' name='x1' />
<sql>update D_1002_1161 set x17=1 where xtableid=([BILLKEY]) (支持变量:([BILLKEY])、([WINDKEY]))</sql>
<result>操作完成</result>
</button>
<edit-do>1</edit-do>编辑状态有效
<noedit-do>1</noedit-do>非编辑状态有效

<grid-sum-to-X201>X278</grid-sum-to-X201>(注意:X要大写)

**<start-sql>打开菜单时即执行SQL</start-sql>

sql语句支持:
DO:PUTTBKEY;1002;XX 取值([PUTTBKEY;1002;XX])

<save-sql-where>保存条件(是一个SQL WHERE语句,[x1]表示输入的值)</save-sql-where>
<save-sql-wheremsg>条件不成立时的提示</save-sql-wheremsg>