在有些报表没有其他表的字段,如果能够自己添加上去,就可以用sql函数获取了,不知道这说法对不对?能不能自己添加的呢?如何添加呢?
问题补充:编辑器没有的字段,不能调用吧?
大家都没有测试就回答我的问题……计算列的语句我都测试过了,不行的,软件编辑器根本没有提供的字段,可以调用吗?怎么大家都没有看重点呢?
大家给的答案不是解决我的问题呢,举个例子:客户往来账添加实际销售数量。
大家觉得网站上有答案吗?
网站上的计算列都没有呢!呵呵,大家要测试了才知道回答问题,也是有难度的!
有几个不会先搜索网站呢……
表达式编辑器能自己添加字段吗?
- 提问者: bonchen
- 等级:问不倒翁
- 时间:2012-03-05 01:45
- 悬赏:0
- 解决时间:2012-03-15 01:45
回答 共 10 条
嗯,可以添加,请在网站中搜索计算列等关键字。
- 回答者:ytkf007
- 等级:问不倒翁
- 时间:2012-03-05 09:24
A5、A6计算列使用方法:
参考资料:http://www.yt-pos.com/a/fuwuyuxiazai/zaixianjishushouce/chanpinchangjian/2011/0201/76.html
参考资料:http://www.yt-pos.com/a/fuwuyuxiazai/zaixianjishushouce/chanpinchangjian/2011/0201/76.html
- 回答者:李祥
- 等级:问不倒翁
- 时间:2012-03-05 09:37
计算列的使用方法:相关单据→设置→增加新列→计算列→输入以下语句→确定。 其它问题请到问答系统中提问:http://www.yt-pos.com/ask/
1. 赢通A5标签小票/样式设计(视频),欢迎初学者下载观看学习:
下载网址 http://dl.dbank.com/c0h5vyybn6
如若不能下载,请注册一个帐号就可以下载了。
2. 请注意:以下函数未注明的则是A5、A6通用,注明了的则是A5/A6专用。
计算列的使用方法:相关单据→设置→增加新列→计算列→输入以下语句→确定。
进入表达式编辑器:相关单据设置→增加新列→计算列→计算列表达式框右边选“...”号进入表达式编辑器:
或者报表样式、商品价签、条码标签设计器中→点“+/=”按钮→右边放下该列双击该列→表达式框右边选“...”号进入表达式编辑器:
3. 下面详细讲述一些常用计算列的使用方法: 2012-2-19更新
这里以批发取多包装明细为例,可以将多反算出来的多包装取为几列,用到的是“gf_item_qty_unit”函数
gf_item_qty_unit(as_item_no,ad_qty,ai_all,ai_order,ai_have_unit)
as_item_no:商品内部码
ad_qty:数量(如批发数量为不含多包装数量now_qty,含多包装数量sub_qty)
ai_all:要显示几个单位,比如要显示3个单位,ai_all = 3
ai_order:这个值是第几个单位,大单位就是 ai_order=3,小包装就是 ai_order =2 ,最小单位就是 ai_order =1
ai_have_unit:1,显示单位,0,不显示单位
gf_item_qty_unit( item_no , sub_qty ,3,3,1) 显示3个单位中第3个单位总数量,显示单位
(其实其它报表也可以,要注意数量列名sub_qty不同报表/单据不一样)
函数使用方法(以2个单位为例,要注意数量列名sub_qty不同报表/单据不一样):
相关单据→设置→增加新列→计算列→输入以下语句:
gf_item_qty_unit( item_no , sub_qty ,2,2,1) 显示 X箱
gf_item_qty_unit( item_no , sub_qty ,2,1,1) 显示 Y个
gf_item_qty_unit( item_no , sub_qty ,2,2,0) 显示 X
gf_item_qty_unit( item_no , sub_qty ,2,1,0) 显示 Y
4. 库存取包装明细:(其实其它报表也可以,要注意数量列名sub_qty不同报表/单据不一样)
gf_item_qty_disp(item_no, stock_qty ) 库存类报表
gf_item_qty_disp(item_no, sub_qty ) 批发、零售销售类报表
其它出入库表取包装明细:
gf_item_qty_disp(db_data2('select item_no from t_item_info where item_subno=?',item_subno), sub_qty )
5. 报表、档案、模块取商品档案库存:
gf_item_stock_qty(参数1,参数2,参数3):
参数1:商品内部码列;
参数2:机构仓库列,所有机构 用 '';
参数3:是否为实时库存 '1'-实时库存 '0'-当前库存;
例如:gf_item_stock_qty(item_no,'0001','1')
6. 用计算列取数据库表数据,db_data函数用法
db_data1,db_data2
用db_data1~db_data6函数
后面的数字代表参数的数量
db_data2('select item_name from t_item_info where item_no=?',item_no)
db_data3('select item_name from t_item_info where item_subno = ? or item_barcode =? ','0001','0001')
参数1:查询SQL ,里面有两个?,?
参数2:用于代替第一个?号,
参数3:用于代替第二个?号,
用后面的参数值去替换前面相应的SQL里的?号,然后得到一条完整的SQL,执行这个SQL,就是这个函数的返回值,固定值要用单引号
要注意:参数若用字段名,该字段名必须在该单据、报表中存在,可以通增计算列编辑框中看得到,否则无法取到。
例如:
条码标签打印中用语句直接取商品档案条码:
db_data2('select item_barcode from t_item_info where item_no=?',item_no)
条码标签打印中用语句直接取商品档案货号:
db_data2('select item_subno from t_item_info where item_no=?',item_no)
7. 显示该货号的条码列,用于多包装商品只显示基本包装的条码:
db_data2('select item_barcode from t_item_info where item_no=?',item_no)
A6服装,条码标签打印时,取商品档案中主条码(不是主码):
db_data2("select item_barcode from t_item_Info where item_subno=?",item_subno)
在库存查询表中,增加计算列提取商品档案的商品备注1:
db_data2(~"select item_bytxt1 from t_item_info where item_no=?~",item_no)
A5、A6在批发、入库单,增加计算列提取商品成本价:(最后0001条件是指总部仓库)
db_data3('select cost_price from t_branch_stock where item_no=? and branch_no = ?',item_no,'0001')
IF语句和db_data函数混合使用,取批发销售单是否审核标志:
if(db_data2('select app_sign from t_pf_out_master where sheet_no =?',sheet_no)='1','审','未审')
8. string函数使用方法:
打印商品价签、条码标签时,零售价只显示2位小数(系统设置是3位小数,用于精确入库):
string(sale_price,'0.00')
入库单的日期取月份,要注意在表达式编辑框中选列:
right(left(string(create_date),7),2)
取今天时间作为打印时间:
'打印日期:' + string(today(),'yyyy-mm-dd' + ' ' + String(Now(), 'hh:mm:ss '))
9. 打印商品价签、条码标签时,零售价称重商品:
(这里注意,是按货号位数判断,普通商品建议设置为6位)显示斤价格,商品档案中是公斤价格:
if(len(sub_no)=5,price/2,price)
if语句的用法:
if( b, t, f ) 。如果条件b成立,则结果为t,否则 结果为f
10. 批发销售单中无法调用【已付金额】这个函数转换成大写形式
gf_num_to_rmb(Dec(Describe('cdw_paid_amt$$.text')))
因已付金额列是个文本列,要用Describe 取文本值,再转成数值型,最后使用大写函数转换。
很多场合会用到DEC函数,用于将字符型字段转为数值型字段,才可以使用比如格式化函数string等,如:
进销差:
if(item_in_price=0,~"0~", db_data2(~"select item_sale_price- item_in_price from t_item_info where item_subno=? and item_in_price>0~",item_subno) )
进售差价率:
if(item_in_price=0,~"0~",string(db_data2(~"select left((item_sale_price- item_in_price)/item_sale_price*100,5) from t_item_info where item_subno=? and item_in_price>0~",item_subno))+~"%~")
进销差价均价:
string(Dec(db_data1('select avg(item_sale_price - item_in_price) from t_item_info where item_in_price>0 and item_sale_price>0')),'0.00')
进销差价均价率:
db_data1('select left(avg((item_sale_price - item_in_price)/item_sale_price)*100,5) from t_item_info where item_in_price>0 and item_sale_price>0')+'%'
11. A6取机构商品价格函数:
gf_item_branch_price(商品内码,机构仓库,价格类型),用于连锁时取该机构商品的实际价格:
gf_item_branch_price(item_no, stock_branch_no ,'S')
S代表零售价,V代表会员价,P代表批发价,I代表进价,Z1—Z9代表自定义价格
请注意:一般用于商品零售明细、库存查询、批发销售报表,报表明细区有机构的均可以使用。
12. A6自定义报表显示颜色尺码名称函数:(用于报表取商品颜色尺码称名,默认只有编号)
尺码:db_data2(~"select size_name from t_item_size where size_no=?~", yt_size )
颜色: db_data2(~"select color_name from t_item_color where color_no=?~",yt_color)
请注意:一般用于商品零售明细、库存查询、批发销售报表,报表明细区有机构的均可以使用。
13. 前台小票设计器中取单号后四位、小票大字体函数:(用于特定的小票格式)
小票设计器中小票号取后四位:right(sheet_no,4)
小票大字体行指令gf_big():添加行为gf_big('ABC'),小票上会打出ABC为大写的。
请注意:将以上格式放入小票设计器→新增行/编辑行→数据中,小票机要支持大字体指令。
14. 配出单中取总部的库存数:(在总部使用)
db_data2(~"select real_qty = a.stock_qty - IsNull(b.sale_qty,0.00) from t_branch_stock a left join view_stock_real b on a.item_no=isnull(b.item_No,a.item_no) where isnull(b.branch_no,0001)=0001 and a.branch_no=0001 and a.item_no=?~",item_no)
请注意:在后其单据中可以使用gf_item_stock_qty(item_no,'0001','1')函数来取库存。
15. 其它函数的使用方法(只是一部分,更多函数可以参见软件计算列中有说明或者咨询客服):
取时间:
string(today(),'yyyy-mm-dd')
String(Now(), 'hh:mm:ss')
取打印次数:
'共打印' + db_data1('select prn_times from sys_t_sheet_change where sheet_no=?',sheet_no) + '次'
'公司' + db_data1('select branch_name from bi_t_branch_info where branch_no=?',branch_no) + '公司'
取数据不要小数点:
string(truncate(item_sale_price,0))
mid( string(item_sale_price), 0, 4 )
string(item_sale_price)
销售明细取会员名称:
db_data1('select vip_name from pos_t_vip_info where card_id=?',vip_no)
前台取收银员名称:
db_data1('select oper_name From sa_t_operator_i where oper_id=?',db_data1('select oper_id from pos_t_sale_master where sheet_no=?',sheet_no))
取仓库名:
db_data1("select branch_name from bi_t_branch_info where branch_no=?",db_data1("select branch_no from ic_t_inout_store_master where sheet_no=?",sheet_no))
大写单个金额:
pub_f_num_to_cn(金额表单式,4)
1分 2角 3元 4十元 5百 6千 7万
例如:做面包、生日蛋糕的都可以这样在标签上打印下面这些日期
保质期天数:
real(db_data1('select valid_day from bi_t_item_info where item_subno=?',item_subno))
生产日期(就是今天):
string(today(),'yyyy-mm-dd')
有效期到:
string(RelativeDate(today(),real(db_data1('select valid_day from bi_t_item_info where item_subno=?',item_subno))),'yyyy-mm-dd')
单据、报表显示商品库存:
db_data2('select stock_qty from t_branch_stock where item_no=? and branch_no=? ',item_no,'0001')
其它高级计算列:
db_data1('select case when sell_way='B' then '退货单' when sell_way='C' then '赠送单' else '正常销售' end from pos_t_payflow where flow_no = ?',flow_no)
(责任编辑:赢通软件管理团队)
俺是直接复制过来的
1. 赢通A5标签小票/样式设计(视频),欢迎初学者下载观看学习:
下载网址 http://dl.dbank.com/c0h5vyybn6
如若不能下载,请注册一个帐号就可以下载了。
2. 请注意:以下函数未注明的则是A5、A6通用,注明了的则是A5/A6专用。
计算列的使用方法:相关单据→设置→增加新列→计算列→输入以下语句→确定。
进入表达式编辑器:相关单据设置→增加新列→计算列→计算列表达式框右边选“...”号进入表达式编辑器:
或者报表样式、商品价签、条码标签设计器中→点“+/=”按钮→右边放下该列双击该列→表达式框右边选“...”号进入表达式编辑器:
3. 下面详细讲述一些常用计算列的使用方法: 2012-2-19更新
这里以批发取多包装明细为例,可以将多反算出来的多包装取为几列,用到的是“gf_item_qty_unit”函数
gf_item_qty_unit(as_item_no,ad_qty,ai_all,ai_order,ai_have_unit)
as_item_no:商品内部码
ad_qty:数量(如批发数量为不含多包装数量now_qty,含多包装数量sub_qty)
ai_all:要显示几个单位,比如要显示3个单位,ai_all = 3
ai_order:这个值是第几个单位,大单位就是 ai_order=3,小包装就是 ai_order =2 ,最小单位就是 ai_order =1
ai_have_unit:1,显示单位,0,不显示单位
gf_item_qty_unit( item_no , sub_qty ,3,3,1) 显示3个单位中第3个单位总数量,显示单位
(其实其它报表也可以,要注意数量列名sub_qty不同报表/单据不一样)
函数使用方法(以2个单位为例,要注意数量列名sub_qty不同报表/单据不一样):
相关单据→设置→增加新列→计算列→输入以下语句:
gf_item_qty_unit( item_no , sub_qty ,2,2,1) 显示 X箱
gf_item_qty_unit( item_no , sub_qty ,2,1,1) 显示 Y个
gf_item_qty_unit( item_no , sub_qty ,2,2,0) 显示 X
gf_item_qty_unit( item_no , sub_qty ,2,1,0) 显示 Y
4. 库存取包装明细:(其实其它报表也可以,要注意数量列名sub_qty不同报表/单据不一样)
gf_item_qty_disp(item_no, stock_qty ) 库存类报表
gf_item_qty_disp(item_no, sub_qty ) 批发、零售销售类报表
其它出入库表取包装明细:
gf_item_qty_disp(db_data2('select item_no from t_item_info where item_subno=?',item_subno), sub_qty )
5. 报表、档案、模块取商品档案库存:
gf_item_stock_qty(参数1,参数2,参数3):
参数1:商品内部码列;
参数2:机构仓库列,所有机构 用 '';
参数3:是否为实时库存 '1'-实时库存 '0'-当前库存;
例如:gf_item_stock_qty(item_no,'0001','1')
6. 用计算列取数据库表数据,db_data函数用法
db_data1,db_data2
用db_data1~db_data6函数
后面的数字代表参数的数量
db_data2('select item_name from t_item_info where item_no=?',item_no)
db_data3('select item_name from t_item_info where item_subno = ? or item_barcode =? ','0001','0001')
参数1:查询SQL ,里面有两个?,?
参数2:用于代替第一个?号,
参数3:用于代替第二个?号,
用后面的参数值去替换前面相应的SQL里的?号,然后得到一条完整的SQL,执行这个SQL,就是这个函数的返回值,固定值要用单引号
要注意:参数若用字段名,该字段名必须在该单据、报表中存在,可以通增计算列编辑框中看得到,否则无法取到。
例如:
条码标签打印中用语句直接取商品档案条码:
db_data2('select item_barcode from t_item_info where item_no=?',item_no)
条码标签打印中用语句直接取商品档案货号:
db_data2('select item_subno from t_item_info where item_no=?',item_no)
7. 显示该货号的条码列,用于多包装商品只显示基本包装的条码:
db_data2('select item_barcode from t_item_info where item_no=?',item_no)
A6服装,条码标签打印时,取商品档案中主条码(不是主码):
db_data2("select item_barcode from t_item_Info where item_subno=?",item_subno)
在库存查询表中,增加计算列提取商品档案的商品备注1:
db_data2(~"select item_bytxt1 from t_item_info where item_no=?~",item_no)
A5、A6在批发、入库单,增加计算列提取商品成本价:(最后0001条件是指总部仓库)
db_data3('select cost_price from t_branch_stock where item_no=? and branch_no = ?',item_no,'0001')
IF语句和db_data函数混合使用,取批发销售单是否审核标志:
if(db_data2('select app_sign from t_pf_out_master where sheet_no =?',sheet_no)='1','审','未审')
8. string函数使用方法:
打印商品价签、条码标签时,零售价只显示2位小数(系统设置是3位小数,用于精确入库):
string(sale_price,'0.00')
入库单的日期取月份,要注意在表达式编辑框中选列:
right(left(string(create_date),7),2)
取今天时间作为打印时间:
'打印日期:' + string(today(),'yyyy-mm-dd' + ' ' + String(Now(), 'hh:mm:ss '))
9. 打印商品价签、条码标签时,零售价称重商品:
(这里注意,是按货号位数判断,普通商品建议设置为6位)显示斤价格,商品档案中是公斤价格:
if(len(sub_no)=5,price/2,price)
if语句的用法:
if( b, t, f ) 。如果条件b成立,则结果为t,否则 结果为f
10. 批发销售单中无法调用【已付金额】这个函数转换成大写形式
gf_num_to_rmb(Dec(Describe('cdw_paid_amt$$.text')))
因已付金额列是个文本列,要用Describe 取文本值,再转成数值型,最后使用大写函数转换。
很多场合会用到DEC函数,用于将字符型字段转为数值型字段,才可以使用比如格式化函数string等,如:
进销差:
if(item_in_price=0,~"0~", db_data2(~"select item_sale_price- item_in_price from t_item_info where item_subno=? and item_in_price>0~",item_subno) )
进售差价率:
if(item_in_price=0,~"0~",string(db_data2(~"select left((item_sale_price- item_in_price)/item_sale_price*100,5) from t_item_info where item_subno=? and item_in_price>0~",item_subno))+~"%~")
进销差价均价:
string(Dec(db_data1('select avg(item_sale_price - item_in_price) from t_item_info where item_in_price>0 and item_sale_price>0')),'0.00')
进销差价均价率:
db_data1('select left(avg((item_sale_price - item_in_price)/item_sale_price)*100,5) from t_item_info where item_in_price>0 and item_sale_price>0')+'%'
11. A6取机构商品价格函数:
gf_item_branch_price(商品内码,机构仓库,价格类型),用于连锁时取该机构商品的实际价格:
gf_item_branch_price(item_no, stock_branch_no ,'S')
S代表零售价,V代表会员价,P代表批发价,I代表进价,Z1—Z9代表自定义价格
请注意:一般用于商品零售明细、库存查询、批发销售报表,报表明细区有机构的均可以使用。
12. A6自定义报表显示颜色尺码名称函数:(用于报表取商品颜色尺码称名,默认只有编号)
尺码:db_data2(~"select size_name from t_item_size where size_no=?~", yt_size )
颜色: db_data2(~"select color_name from t_item_color where color_no=?~",yt_color)
请注意:一般用于商品零售明细、库存查询、批发销售报表,报表明细区有机构的均可以使用。
13. 前台小票设计器中取单号后四位、小票大字体函数:(用于特定的小票格式)
小票设计器中小票号取后四位:right(sheet_no,4)
小票大字体行指令gf_big():添加行为gf_big('ABC'),小票上会打出ABC为大写的。
请注意:将以上格式放入小票设计器→新增行/编辑行→数据中,小票机要支持大字体指令。
14. 配出单中取总部的库存数:(在总部使用)
db_data2(~"select real_qty = a.stock_qty - IsNull(b.sale_qty,0.00) from t_branch_stock a left join view_stock_real b on a.item_no=isnull(b.item_No,a.item_no) where isnull(b.branch_no,0001)=0001 and a.branch_no=0001 and a.item_no=?~",item_no)
请注意:在后其单据中可以使用gf_item_stock_qty(item_no,'0001','1')函数来取库存。
15. 其它函数的使用方法(只是一部分,更多函数可以参见软件计算列中有说明或者咨询客服):
取时间:
string(today(),'yyyy-mm-dd')
String(Now(), 'hh:mm:ss')
取打印次数:
'共打印' + db_data1('select prn_times from sys_t_sheet_change where sheet_no=?',sheet_no) + '次'
'公司' + db_data1('select branch_name from bi_t_branch_info where branch_no=?',branch_no) + '公司'
取数据不要小数点:
string(truncate(item_sale_price,0))
mid( string(item_sale_price), 0, 4 )
string(item_sale_price)
销售明细取会员名称:
db_data1('select vip_name from pos_t_vip_info where card_id=?',vip_no)
前台取收银员名称:
db_data1('select oper_name From sa_t_operator_i where oper_id=?',db_data1('select oper_id from pos_t_sale_master where sheet_no=?',sheet_no))
取仓库名:
db_data1("select branch_name from bi_t_branch_info where branch_no=?",db_data1("select branch_no from ic_t_inout_store_master where sheet_no=?",sheet_no))
大写单个金额:
pub_f_num_to_cn(金额表单式,4)
1分 2角 3元 4十元 5百 6千 7万
例如:做面包、生日蛋糕的都可以这样在标签上打印下面这些日期
保质期天数:
real(db_data1('select valid_day from bi_t_item_info where item_subno=?',item_subno))
生产日期(就是今天):
string(today(),'yyyy-mm-dd')
有效期到:
string(RelativeDate(today(),real(db_data1('select valid_day from bi_t_item_info where item_subno=?',item_subno))),'yyyy-mm-dd')
单据、报表显示商品库存:
db_data2('select stock_qty from t_branch_stock where item_no=? and branch_no=? ',item_no,'0001')
其它高级计算列:
db_data1('select case when sell_way='B' then '退货单' when sell_way='C' then '赠送单' else '正常销售' end from pos_t_payflow where flow_no = ?',flow_no)
(责任编辑:赢通软件管理团队)
俺是直接复制过来的
- 回答者:wangze2005
- 等级:问不倒翁
- 时间:2012-03-05 09:52
学习
- 回答者:赢通技术
- 等级:金牌会员
- 时间:2012-03-05 11:54
是哦。这个多参考一下以上几楼资料,有些报表是不可表和表之间取字段的,多和区域经理联系哦。
- 回答者:zhaoshuai888
- 等级:问不倒翁
- 时间:2012-03-05 14:55
学习了
- 回答者:小燕子
- 等级:钻石会员
- 时间:2012-03-05 17:20
没有吧,太复杂了
- 回答者:dympkj
- 等级:银牌会员
- 时间:2012-03-05 18:27
好像不能取别的数据库表字段吧
- 回答者:kh359
- 等级:问不倒翁
- 时间:2012-03-05 20:24
http://www.yt-pos.com/a/fuwuyuxiazai/zaixianjishushouce/chanpinchangjian/2011/0201/76.html
- 回答者:JCLH
- 等级:问不倒翁
- 时间:2012-03-07 14:44
参考资料:http://www.yt-pos.com/a/fuwuyuxiazai/zaixianjishushouce/chanpinchangjian/2011/0201/76.html
其实你在问答系统内搜就行了,谁在这里刷屏。
其实你在问答系统内搜就行了,谁在这里刷屏。
- 回答者:赢通华中区
- 等级:钻石会员
- 时间:2012-03-07 18:10
快到期问题