工资软件函数说明.docx
《工资软件函数说明.docx》由会员分享,可在线阅读,更多相关《工资软件函数说明.docx(85页珍藏版)》请在冰点文库上搜索。
![工资软件函数说明.docx](https://file1.bingdoc.com/fileroot1/2023-5/25/70748cb4-9703-40be-818e-2a4b7edcc87f/70748cb4-9703-40be-818e-2a4b7edcc87f1.gif)
工资软件函数说明
1脚本语言4
1.1介绍说明4
1.2应用场景4
2语法介绍5
2.1类型5
2.2运算5
2.3控制6
2.4内置函数7
2.5自定义函数7
2.6注释7
3内置函数8
3.1显示提示函数8
3.2常用基本函数8
3.3界面控件操作函数13
3.3.1例一:
销售发货单里面,当联系人变化时,从数据库查出该联系人的地址作为目的地址。
16
3.3.2例:
客户管理界面,如何改变左下角检索条件的文字16
3.4表格控件操作函数17
3.4.1常用模块中表格的名称19
3.4.2例一:
设置报表中第2行以及res_id列的颜色和背景色19
3.5输入控制函数20
3.6参数访问函数21
3.7单据操作函数22
3.7.1例一:
激活用户自定义菜单123
3.8菜单操作函数23
3.8.1例一:
主窗口中隐藏掉业务处理的菜单项目25
3.8.2例二:
如何将"产品加工单"里面的"查看产品图片信息"加一个F10的快捷键?
26
3.9打印模板脚本函数26
3.10数据库操作函数27
3.10.1例一:
遍历显示app_para里面的内容28
3.10.2例二:
多个sql嵌套执行28
3.10.3例三:
报表打印的时候进行记录定位29
4打印脚本的事件31
4.1相关参数31
4.2函数清单31
4.2.1main31
4.2.2func_gopage31
4.2.3func_gorow31
4.2.4func_gorow_blank31
4.2.5before_draw_obj()32
4.2.6func_cal_row_height()32
4.3例子32
4.3.1如何进行大写金额的套打32
4.3.2打印日期格式的转变32
4.3.3打印单据日期格式的转变33
4.3.4自动根据打印内容长度设置字体大小33
4.3.5利用Auto_Adjust_Detail_Height变量自动调整明细的行高度33
4.3.6根据打印内容长度设置明细的行高度34
4.3.7利用print_cal_obj_height调整明细的行高度34
4.3.8物资单据打印如何打印产品图片34
4.3.9物资单据中如何打印客户所在城市34
4.3.10如何在物资单据中打印保质期限?
35
4.3.11如何在物资单据中打印产品描述信息?
35
4.3.12工资单据打印的时候如何打印公司名称36
4.4其它参考37
5导航界面的定义38
5.1相关函数38
5.2例子程序39
6应用函数40
6.1公共函数40
6.2人力资源系统40
6.3进销存系统41
6.3.1例子:
物资单据打印主物资扩展属性43
6.3.2例子:
物资单据打印明细物资扩展属性43
6.4固定资产系统43
6.5统计报表44
6.5.1报表中脚本45
6.5.2例子45
7物资单据的事件46
7.1函数清单46
7.1.1create_voucher46
7.1.2func_show46
7.1.3init_row46
7.1.4cell_change46
7.1.5obj_change46
7.1.6func_before_print46
7.1.7func_after_print46
7.1.8intfunc_before_save()46
7.1.9func_after_check47
7.1.10adjust_row47
7.2例:
如何设定物资默认数量47
7.3例:
如何限定打印只打印一次47
7.4例:
现款采购里,现金记帐科目可不可以根据不同的操作员绑定相应的科目?
47
7.5例:
入库单中,要求必须输入批次编号,否则不允许保存48
7.6例:
组装单中,如何在保存前自动设置主物资批次日期为第一条明细记录的批次日期?
49
7.7例:
用脚本控制单价列不允许修改49
7.8例:
如何控制明细折扣 不允许小于 85%49
7.9例:
销售发货单里显示客户资料里的备注50
8数据脚本51
8.1func_def_lmt函数51
8.2func_def_imp暂时不用51
8.3func_query51
9综合使用脚本的例子52
9.1用脚本修改报表中检索条件的文本52
10人力资源使用脚本的例子53
10.1工资单的四舍五入53
10.2新增员工时默认设置民族为汉族53
10.3工资单里怎么样让不同职位的人,按照不同的公式计算工资。
53
10.4自定义员工工号54
10.5主窗口启动的时候能不能窗口化,不要最大化的54
10.6工分录入编辑中取工号和部门54
10.7如何自己定义年休标准规则55
10.8自定义保险标准的计算方法55
10.9宿舍管理显示人员的电话和手机号码56
11商贸(进销存)使用脚本的例子58
11.1如何把客户的价格体系名称打印在现款销售单上58
11.2如何把业务员的电话号码打印在销售单上58
11.3输入进价后,系统自动形成参考售价59
11.4出库单怎么设置成单据审核后才能打印59
11.5如何在销售按单据报表中体现净利润=毛利润-(费用一+费用二)60
1脚本语言
1.1介绍说明
系统包含了一个脚本引擎,用于增强系统的适应能力,使得使用者在一定程度上能对系统加以定制。
对于学过简单计算机语言的使用者掌握脚本语言并不困难。
了解脚本的应用场合能最大程度地发挥系统的能力,并带来效率的提升。
1.2应用场景
工资的计算公式定义(人力资源)
打印模板的控制
单据的控制(进销存)
界面的调整
权限的特殊控制
随着系统的扩展,将有更多的环节支持脚本。
2语法介绍
解释执行器基本采用C的语法。
下面是它的功能定义:
2.1类型
num,int,float,string,采用string类型做字符串处理
num类型是高精度的数值类型。
2.2运算
●赋值
=
例:
inta,b;
a=5;
b=2*a+3;
●基本运算
+-*/
例:
floata,b;
a=5.1;
b=2*a+3*2.3-12/4;
●判断运算
>==<>=<=!
=
例:
判断a是否大于bif(a>b)
判断a是否等于bif(a==b)
判断a是否小于bif(a
判断a是否大于等于bif(a>=b)
判断a是否小于等于bif(a<=b)
判断a是否不等于bif(a!
=b)
●逻辑运算
||&&!
例:
判断a大于3或者b大于5if(a>3||b>5)
判断a大于3并且b大于5if(a>3&&b>5)
判断非(a大于3)if(!
(a>3))
2.3控制
●判断
if(条件)
{
}
else
{
};
if(条件)
{
}
elseif(条件)
{
}
elseif(条件)
{
}
else
{
};
●循环
for(id=0;id{
};
●循环
do
{
}while(id<3);
●循环
while(id<3)
{
};
●选择
switch(变量)
{
case1:
break;
.
.
.
};
●其他控制
continue
break
gototest_lab
labeltest_lab
2.4内置函数
系统定义了一些内置函数,可以直接调用。
2.5自定义函数
intadd(intx,inty)
{
returnx+y;
};
2.6注释
采用//作为注释
3内置函数
类型标识:
S字符型I整数型F数值型
3.1显示提示函数
这部分函数可以用来显示调试信息,或者要求确认、弹出告警。
函数名
参数格式
返回类型
函数功能
参数意义
返回值
dbg
S
显示变量。
输出在信息窗口
要显示的变量
dbg_clear
清空信息窗口的内容
msg
S
显示提示。
弹出式显示
要显示的内容
tip
S
显示提示。
弹出式显示,几秒后自动关闭
要显示的内容
warn
S
显示警告。
弹出式显示
要显示的内容
confirm
S
请确认。
弹出式显示
要显示的内容
1确定
0取消
log_all_para
显示所有的变量
3.2常用基本函数
函数名
参数格式
返回类型
函数功能
参数意义
返回值
run_line
S
S
执行一个语句
要执行的语句
执行的结果
intmain()
{
stringl,s;
inti;
l='"abc"+"def"';
s=run_line(l);
msg(s);
l='1+2*3';
i=run_line(l);
msg(i);
return1;
};
上面的代码会输出abcdef和7
dt_get_name
SS
S
获取字典对应字典意义
字典标识,字典取值编码
字典意义
dt_get_code
SS
S
获取字典意义对应的字典编码
字典标识,字典意义
字典编码
dt_get_ext
SSS
S
获取字典对应扩展信息
字典标识,字典取值编码,要返回的扩展列
扩展信息
dt_refresh
S
I
用于脚本直接修改了数据库后通知客户端刷新该数据字典
字典标识
例子:
人力资源系统根据工号emp_id变量获取部门名称
dt_get_name("dept",dt_get_ext("emp",emp_id,"dept_id"))
fen_to_yuan
S
S
字符表达的分转换为元
字符表达的分
字符表达的元
one_cap
SI
S
取得金额其中一位的大写
大写数值
大写表达
one_digit
SI
S
取得金额其中一位的小写
字符表达的元,位数
小写表达
例子:
one_digit("123.45",1)返回5
one_digit("123.45",3)返回3
one_digit("123.45",5)返回1
one_digit("123.45",6)返回
one_digit_ext
SIS
S
取得金额其中一位的小写,如是最左边前面1位返回货币标识
字符表达的元,位数,货币标识
小写表达
例子:
one_digit_ext("123.45",1,"$")返回5
one_digit_ext("123.45",3,"$")返回3
one_digit_ext("123.45",5,"$")返回1
one_digit_ext("123.45",6,"$")返回$
money_cap
S
S
取得金额的大写
金额
大写表达
num_skip_0
S
S
数值为0则返回空
否则返回原来的数。
这个函数主要用在模版打印。
数值
判断后的值
num_dec_cut
SI
S
数字四舍五入
串,小数位数
结果字符串
num_2_grp
S
S
转换数值用分组方式表达
123456.78=>123,456.78
要转换的数值
转换后数值
num_to_cap
S
S
转换数值为大写
123=>
壹百贰拾叁
要转换的数值
大写表达
fmt_date
SS
S
格式化日期
标准日期yyyymmddhhmiss,格式化串
格式化后的串
fmt_time
SS
S
格式化时刻
标准时刻hhmiss,格式化串
格式化后的串
get_cur_date
S
取当天日期
无
日期yyyy-mm-dd
get_cur_date_std
S
取当天日期标准格式
yyyymmdd
get_cur_fmt_date
S
S
取格式化的当天日期
格式化串
格式化后的当天日期
get_cur_time
S
取当前时刻
无
时刻hh:
mi:
ss
get_cur_time_std
S
取当前时刻标准格式
时刻hhmiss
get_cur_fmt_time
S
S
取格式化的当前时刻
格式化串
格式化后的当前时刻
get_cur_month
S
取当天月
无
月yyyymm
get_cur_year
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
get_week_id_num
SSI
I
获取日期范围内某周几的出现次数
开始日期,结束日期,要检测的周几1-7
出现次数
例子:
num6=get_week_id_num('20120701','20120728',6);//返回4
is_date_valid
S
I
盘点一个日期是否合法
标准日期yyyymmdd
合法1,非法0
std_inp_date
S
S
从一个输入的串中取出日期
输入串
标准日期yyyymmdd
std_inp_time
S
S
从一个输入的串中取出时刻
输入串
标准时刻hhmiss
date_add
SI
S
根据开始日期和相差天数计算结果日期
开始日期,相差天数
结果日期
month_add
SI
S
根据开始月份和相差月数计算结果月份
开始月份,相差月数
结果月份
date_nl
S
S
根据公历日期获得农历日期
公历日期yyyymmdd
农历日期yyyymmdd
date_gl
S
S
根据农历日期获得公历日期
农历日期yyyymmdd
公历日期yyyymmdd
nl
S
获得回车字符串
例子:
stringres;
res="AAA";
res=res+nl();
res=res+"abc";
回车字符串
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_pos
SS
I
返回串2在串1中的位置
串1,串2
位置,开始位置为0,未找到返回-1
str_add_as_num
SS
S
2个字符串转为数字相加返回结果字符串
串1,串2
结果字符串
str_sub_as_num
SS
S
2个字符串转为数字相减返回结果字符串
串1,串2
结果字符串
str_std_num
SI
S
字符串数字补齐小数位数
串,小数位数
结果字符串
lower
S
S
根据指定串获得一个小写串
指定串
结果字符串
upper
S
S
根据指定串获得一个大写串
指定串
结果字符串
str_cut
SI
S
字符串截断
串,最大长度
结果字符串
to_int
S
I
字符串转整数
串
结果数
to_float
S
F
字符串转浮点数
串
结果数
fmt_float
FS
S
浮点数转格式字符串
数值,格式
结果串
fmt_int
IS
S
整数转格式字符串
数值,格式
例子:
fmt_int(12,"%03d")就应该是012
结果串
mod
II
I
2个整数取余
数值1,数值2
结果
str_to_num_str
S
S
去掉字符串中不是数值的字符,比如逗号
串
结果字符串
str_lst_to_sql_lst
S
S
逗号分割的字符串转换为sql里面的字符串
字符串
如“12,34,56”
结果串
“(’12’,’34’,’56’)”
call_str
S
I
调用命令
命令,可以是文件或者执行程序
system
S
I
执行外部程序
外部程序
shell
S
I
执行外部程序
外部程序
call_dll_func
SS
I
调用dll里面的函数
Dll名,函数标识
call_func
S
I
调用系统定义的函数
系统函数名
call_html_win
S
I
打开一个html窗口
要打开的网页
exit
I
退出系统
get_home_path
S
获得软件执行目录
软件执行目录
get_ip
S
获取本机ip地址
Ip地址
write_port
SS
I
写串口并口
第一参数如com1lpt1
第2参数为十进制码串100,20,255,可用于钱箱控制
write_port(‘LPT1‘,’27,112,0,60,255’);
check_thr_err
I
检查是否有函数执行错误信息
如果有会弹出信息
str_trim_right
S
S
去掉字符串右边空格
串
结果字符串
str_trim_left
S
S
去掉字符串左边空格
串
结果字符串
str_trim
S
S
去掉字符串2边空格
串
结果字符串
3.3界面控件操作函数
这组函数主要用于在脚本里设定获取或者修改当前窗口输入控件的内容。
这组函数对于修改窗口里面的项目内容非常有用。
函数名
参数格式
返回类型
函数功能
参数意义
返回值
gui_list_inp_all
显示当前窗口所有输入控件
gui_list_inp
S
显示指定名称控件包含的输入控件内容
控件的名称
gui_list_all
显示当前窗口所有控件
gui_list
S
显示指定名称控件包含的控件内容
控件的名称
gui_hide
S
隐藏一个控件
控件的名称
gui_show
S
显示一个控件
控件的名称
gui_focus
S
光标定位到指定的控件
控件的名称
gui_disable
S
使得一个控件不可操作
控件的名称
gui_enable
S
使得一个控件允许操作
控件的名称
gui_disable_edit
S
使得一个控件不可编辑
控件的名称(限于文本输入框、多行输入框)
gui_enable_edit
S
使得一个控件允许编辑
控件的名称(限于文本输入框、多行输入框)
gui_set_val
SS
设置指定控件的内容
控件的名称,要设置的值
gui_get_val
S
获取指定控件的内容
控件的名称
指定控件的内容
gui_set_text
SS
设置指定控件的标签
控件的名称,要设置的标签
gui_get_text
S
获取指定控件的标签
控件的名称
指定控件的标签
gui_set_text、gui_get_text和gui_set_val、gui_get_val的区别在于text相关的函数访问的是显示的标签,val相关的是值,对于编辑框控件这2组是一致的,但对于CheckBox这样的就有区别,CheckBox的val为0或者1,text则表示上面显示的内容
gui_set_hint
SS
设置指定控件的提示信息
控件的名称,要设置的提示信息
gui_replace_str
SSS
替换指定控件标签中的部分文字
控件的名称,要替换的文字,新的文字
gui_set_x
SI
设置控件的横坐标
控件的名称,x
gui_set_y
SI
设置控件的纵坐标
控件的名称,y
gui_set_w
SI
设置控件的宽度
控件的名称,宽度
gui_set_h
SI
设置控件的高度
控件的名称,高度
gui_set_font_size
SI
设置控件的字体大小
控件的名称,字体大小(一般标准为9)
gui_set_font_name
SS
设置控件的字体名称
控件的名称,字体名称
gui_set_font_color
SI
设置控件的字体颜色
控件的名称,字体颜色
例子:
单据里设置新建按钮字体颜色
gui_set_font_color('SpeedButton_Create',0x0000ff);
gui_set_bg_color
SI
设置控件的背景颜色
控件的名称,背景颜色
例子:
单据里设置功能条背景颜色
gui_set_bg_color('Panel_Func',0xff0000);
gui_get_x
S
I
获取控件的横坐标
控件的名称
x
gui_get_y
S
I
获取控件的纵坐标
控件的名称
y
gui_get_w
S
I
获取