1 脚本语言... 2

1.1 语法介绍... 2

1.1.1 类型... 2

1.1.2 运算... 2

1.1.3 控制... 2

1.1.4 内置函数... 3

1.1.5 自定义函数... 3

1.1.6 注释... 3

1.2 内置函数... 3

# 1 脚本语言

系统包含了一个脚本引擎，该脚本引擎主要用于一些高级的定义，比如工资的计算公式定义、报表数据的处理、自定义的数据分析、单据的扩展等。

## 1.1 语法介绍

解释执行器基本采用 C 的语法。下面是它的功能定义：

### 1.1.1 类型

int,float,string,采用 string 类型做字符串处理

### 1.1.2 运算

l 赋值

=

l 基本运算

+ - * /

l 逻辑运算

|| && !

l 判断运算

> == < >= <= !=

l 其他运算

| &

++ --

+= -= *= /=

### 1.1.3 控制

l 判断

if

{

}

else

{

}

l 循环

for(id=0;id<num;id++)

{

};

l 循环

do

{

}while(id<3);

l 循环

while(id<3)

{

};

l 选择

switch(变量)

{

case 1:

break;

.

.

.

};

l 其他控制

continue

break

goto test_lab

label test_lab

### 1.1.4 内置函数

系统定义了一些内置函数，可以直接调用。

### 1.1.5 自定义函数

int add(int x,int y)

{

return x+y;

};

### 1.1.6 注释

采用//作为注释

## 1.2 内置函数

类型标识： S 字符型 I 整数型 F 数值型

函数名 | 参数格式 | 返回类型 | 函数功能 | 参数意义 | 返回值
dt_get_name | SS | S | 获取字典对应字典意义 | 字典标识,字典取值编码 | 字典意义
dt_get_code | SS | S | 获取字典意义对应的字典编码 | 字典标识,字典意义 | 字典编码
fen_to_yuan | S | S | 字符表达的分转换为元 | 字符表达的分 | 字符表达的元
one_cap | SI | S | 取得金额其中一位的大写 | 字符表达的元 | 大写表达
one_digit | SI | S | 取得金额其中一位的小写 | 字符表达的元 | 小写表达
money_cap | S | S | 取得金额的大写 | 字符表达的元 | 大写表达
num_dec_cut | SI | S | 数字四舍五入 | 串,小数位数 | 结果字符串
fmt_date | SS | S | 格式化日期 | 标准日期 yyyymmddhhmiss,格式化串 | 格式化后的串
fmt_time | SS | S | 格式化时刻 | 标准时刻 hhmiss,格式化串 | 格式化后的串
get_cur_date |  | S | 取当天日期 | 无 | 日期 yyyymmdd
get_cur_fmt_date | S | S | 取格式化的当天日期 | 格式化串 | 格式化后的当天日期
get_cur_time |  | S | 取当前时刻 | 无 | 时刻 hhmiss
get_cur_fmt_time | S | S | 取格式化的当前时刻 | 格式化串 | 格式化后的当前时刻
get_cur_month | S | S | 取当天月 | 无 | 月 yyyymm
get_cur_year | S | S | 取当天年 | 无 | 年 yyyy
get_month_days | S | I | 取指定月份的天数 | 月份 yyyymm | 天数
get_year_days | S | I | 取指定年份的天数 | 年份 yyyy | 天数
date_to_second | S | I | 日期转换为秒数 | 标准日期 yyyymmddhhmiss | 秒数
time_to_second | S | I | 时刻转换为秒数 | 标准时刻 hhmiss | 秒数
get_last_month | S | S | 取上一月 | 标准月 yyyymm | 上一月
get_last_year | S | S | 取上一年 | 标准年 yyyy | 上一年
get_next_date | S | S | 取下一天 | 标准日期 yyyymmdd | 下一天
get_last_date | S | S | 取上一天 | 标准日期 yyyymmdd | 上一天
get_month_between | SS | I | 取 2 个日期的月份差 | 开始日期,结束日期 | 月数
get_day_between | SS | I | 取 2 个日期的天数差 | 开始日期,结束日期 | 天数
get_week_id | S | I | 取日期对应的星期 | 标准日期 yyyymmdd | 星期 1-7
is_date_valid | S | I | 盘点一个日期是否合法 | 标准日期 yyyymmdd | 合法 1,非法 0
std_inp_date | S | S | 从一个输入的串中取出日期 | 输入串 | 标准日期 yyyymmdd
std_inp_time | S | S | 从一个输入的串中取出时刻 | 输入串 | 标准时刻 hhmiss
strlen | S | I | 计算字符串的长度 | 字符串 | 长度
strcmp | SS | I | 比较 2 个字符串大小 | 串 1,串 2 | 0 相等,1 大于,-1 小于
strncmp | SSI | I | 比较 2 个字符串前几个字符的大小 | 串 1,串 2,比较长度 | 0 相等,1 大于,-1 小于
str_get_sub | SII | S | 返回部分子串 | 串 1,开始位置(首位为 0),长度 | 结果字符串
str_add_as_num | SS | S | 2 个字符串转为数字相加返回结果字符串 | 串 1,串 2 | 结果字符串
str_sub_as_num | SS | S | 2 个字符串转为数字相减返回结果字符串 | 串 1,串 2 | 结果字符串
str_std_num | SI | S | 字符串数字补齐小数位数 | 串,小数位数 | 结果字符串
str_cut | SI | S | 字符串截断 | 串,最大长度 | 结果字符串
to_int | S | I | 字符串转整数 | 串 | 结果数
to_float | S | F | 字符串转浮点数 | 串 | 结果数
fmt_float | FS | S | 浮点数转格式字符串 | 数值,格式 | 结果串
fmt_int | IS | S | 整数转格式字符串 | 数值,格式 | 结果串
mod | II | I | 2 个整数取余 | 数值 1,数值 2 | 结果