原创_脚本:重新实现更灵活、更强大、可追溯的标签打印。请大家探讨改进。9月5日修正_使用经验
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 25  1/2   1  2  >  >|  
作者
内容
afoo  [个人空间]
QQ名  常德-ZEN


注册  2010-04-08
发贴数  204
精华贴  6
原创贴  6
来自  常德-ZEN
状态  正常

级别  会员
#1»发布于2014-09-05 11:54

onlyit oit自身也带有标签打印功能,在商品基础资料的选项里面。但这个标签打印功能比较弱, 
比如不能直观的加入和调用批号、生产日期等可变信息、不能记录哪些产品打印了多少张标签, 
累计打印了多少张,于是有了自己弄一个标签打印的单据想法。 
 
经过多次尝试和测试,有了下面这个打印脚本: 
 
********************【update 1:8月28日终于实现不用拆分而直接一行打两张标签的方法了】***************** 
********************【update 2:9月05日修复当总标签数量为奇数时最后一张不打印的问题。】*************** 
 
int main() 

  db_select_dbio("data");//根据名称选择数据内容 
  int rowcount,rowid,i,id,num,v_inp_num; 
  string v_res_id,v_res_name,v_batch_no,v_produce_date,v_inp_unit_type_name,v_res_id_2; 
  rowcount=db_row_count();//获得记录数 
 
  for(i=0;i<rowcount;i++) 
  { 
    v_res_id=db_res_ext('res_id');//获得指定列名的值 
    v_res_name=db_res_ext('res_name'); 
    v_batch_no=db_res_ext('batch_no'); 
    v_produce_date=db_res_ext('produce_date'); 
    v_inp_unit_type_name=db_res_ext('inp_unit_type_name'); 
    v_inp_num=db_res_ext('inp_num'); 
 
    rowid=db_row_id(); 
    id=1; 
    while(id<v_inp_num) 
    { 
      db_insert_before(rowid);//在指定行前插入一记录 
      db_set_value_ext('res_id',v_res_id); 
      db_set_value_ext('res_name',v_res_name); 
      db_set_value_ext('batch_no',v_batch_no); 
      db_set_value_ext('produce_date',v_produce_date); 
      db_set_value_ext('inp_unit_type_name',v_inp_unit_type_name); 
      db_set_value_ext('inp_num',v_inp_num - id); 
 
      i++; 
      id++; 
      rowcount++; 
    }; 
    db_go_row(rowid+v_inp_num);//记录定位到下一产品 
  }; 
 
  string v_res_id_3,v_res_name_3,v_batch_no_3,v_produce_date_3,v_inp_unit_type_name_3,v_inp_num_3,v_res_id_3,v_res_id_4; 
  db_add_field('res_id_2'); 
  db_add_field('res_name_2'); 
  db_add_field('batch_no_2'); 
  db_add_field('produce_date_2'); 
  db_add_field('inp_unit_type_name_2'); 
  db_add_field('inp_num_2'); 
 
  mod_rowcount=rowcount/2+mod(rowcount,2);               //9月5日修复标签的总数量奇偶数打印出错的情况 
 
  db_go_head(); 
  for(i=0;i<rowcount;i++) 
  { 
    if(rowcount==mod_rowcount)          //9月5日修复标签的总数量奇偶数打印出错的情况 
    { 
        return 1; 
    }; 
 
    db_next(); 
    v_res_id_3=db_res_ext('res_id');//获得指定列名的值 
    v_res_name_3=db_res_ext('res_name'); 
    v_batch_no_3=db_res_ext('batch_no'); 
    v_produce_date_3=db_res_ext('produce_date'); 
    v_inp_unit_type_name_3=db_res_ext('inp_unit_type_name'); 
    v_inp_num_3=db_res_ext('inp_num'); 
 
    db_go_row(i); 
 
    db_set_value_ext('res_id_2',v_res_id_3); 
    db_set_value_ext('res_name_2',v_res_name_3); 
    db_set_value_ext('batch_no_2',v_batch_no_3); 
    db_set_value_ext('produce_date_2',v_produce_date_3); 
    db_set_value_ext('inp_unit_type_name_2',v_inp_unit_type_name_3); 
    db_set_value_ext('inp_num_2',v_inp_num_3); 
 
    db_next(); 
    db_del_row(); 
    rowcount--; 
 
  }; 
 
  return 1; 
}; 
 
 
操作步骤: 
1、业务环境里面启用一张仓库类自定义单据 
2、在单据的显示定制里面去掉不需要的列,只保留产品编号、名称、批号、生产日期、单位、数量这几列 
3、将以上脚本写入到打印模板里的脚本编写框内保存 
4、定制打印格式如附图【update 1:设定用于承载第二列标签的模板如图】 
 
这个脚本还有改善的空间,还望高手门指点!




        于 2014-09-05 11:54 被 afoo 修改




官方认证第三方服务团队  蒋逸凡(常德-ZEN) QQ:50636277
服务介绍: http://www.onlyit.cn/user_home?user_id=13498

xwb514  [个人空间]
QQ名  福建流浪(340298101)


注册  2010-03-19
发贴数  560
精华贴  7
原创贴  7
来自  
状态  正常

级别  会员
#2»发布于2014-08-07 11:01

谢谢老师分享。






官方认证第三方服务团队  徐文标(福建-流浪) QQ:340298101 V&P :177-5046-4787
服务介绍:http://www.onlyit.cn/onlyit_service.html

ayangzhi  [个人空间]


注册  2010-07-18
发贴数  855
精华贴  1
原创贴  2
来自  
状态  正常

级别  贵宾
#3»发布于2014-08-07 21:58

哥们,再尝试,一行打两张。。






杨清云,承接商贸管理、人力资源实施、综合管理实施服务.
可扩展开发WEB, 物联网, 大屏展示报表, 移动端, 微信公众号等.
联系QQ:13836962    TEL:13058180007

afoo  [个人空间]
QQ名  常德-ZEN


注册  2010-04-08
发贴数  204
精华贴  6
原创贴  6
来自  常德-ZEN
状态  正常

级别  会员
#4»发布于2014-08-08 12:31

一行打两张没问题啊,在打印预览里面做个拆分打印就行,我就是这么干的。






官方认证第三方服务团队  蒋逸凡(常德-ZEN) QQ:50636277
服务介绍: http://www.onlyit.cn/user_home?user_id=13498

ayangzhi  [个人空间]


注册  2010-07-18
发贴数  855
精华贴  1
原创贴  2
来自  
状态  正常

级别  贵宾
#5»发布于2014-08-11 08:03

不拆分呢?那天看群中上海-吴维,弄了个打印预览里不拆分的。是不是弄得太复杂了。






杨清云,承接商贸管理、人力资源实施、综合管理实施服务.
可扩展开发WEB, 物联网, 大屏展示报表, 移动端, 微信公众号等.
联系QQ:13836962    TEL:13058180007

afoo  [个人空间]
QQ名  常德-ZEN


注册  2010-04-08
发贴数  204
精华贴  6
原创贴  6
来自  常德-ZEN
状态  正常

级别  会员
#6»发布于2014-08-28 21:00

的确比较复杂,不拆分的话得设左右两个用来承载打印数据的格式,然后用脚本来动态赋值给这两个用来承载打印内容的格式。


        于 2014-08-28 21:00 被 afoo 修改




官方认证第三方服务团队  蒋逸凡(常德-ZEN) QQ:50636277
服务介绍: http://www.onlyit.cn/user_home?user_id=13498

afoo  [个人空间]
QQ名  常德-ZEN


注册  2010-04-08
发贴数  204
精华贴  6
原创贴  6
来自  常德-ZEN
状态  正常

级别  会员
#7»发布于2014-08-28 11:13

终于实现不用拆分的两列标签打印方法了!






官方认证第三方服务团队  蒋逸凡(常德-ZEN) QQ:50636277
服务介绍: http://www.onlyit.cn/user_home?user_id=13498

southman  [个人空间]


注册  2013-12-06
发贴数  34
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#8»发布于2014-09-03 09:12

学习了,不错




awfixtdm  [个人空间]


注册  2011-08-18
发贴数  445
精华贴  2
原创贴  5
来自  
状态  正常

级别  版主
#9»发布于2014-09-04 09:55

很好,很强大






QQ:80240800

afoo  [个人空间]
QQ名  常德-ZEN


注册  2010-04-08
发贴数  204
精华贴  6
原创贴  6
来自  常德-ZEN
状态  正常

级别  会员
#10»发布于2014-09-05 11:48

9月5日修复当总标签数量为奇数时最后一张不打印的问题。






官方认证第三方服务团队  蒋逸凡(常德-ZEN) QQ:50636277
服务介绍: http://www.onlyit.cn/user_home?user_id=13498

ayangzhi  [个人空间]


注册  2010-07-18
发贴数  855
精华贴  1
原创贴  2
来自  
状态  正常

级别  贵宾
#11»发布于2014-09-09 10:22

向常德-Zen学习~~~ :)






杨清云,承接商贸管理、人力资源实施、综合管理实施服务.
可扩展开发WEB, 物联网, 大屏展示报表, 移动端, 微信公众号等.
联系QQ:13836962    TEL:13058180007

vshine  [个人空间]


注册  2014-09-02
发贴数  101
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#12»发布于2014-09-25 15:24

这个要支持,太强大了。




jiaxing360  [个人空间]


注册  2016-04-09
发贴数  1
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#13»发布于2016-04-09 14:17

很强大!值得收藏




1934184799  [个人空间]
QQ名  河内-服装


注册  2015-06-23
发贴数  472
精华贴  1
原创贴  0
来自  
状态  正常

级别  会员
#14»发布于2016-04-11 08:32

超牛..........




1934184799  [个人空间]
QQ名  河内-服装


注册  2015-06-23
发贴数  472
精华贴  1
原创贴  0
来自  
状态  正常

级别  会员
#15»发布于2016-04-16 06:54

楼主可以改改,做成产品目录册打印,如果加入变量就方便了 
比如,竖排X,横排Y





 25  1/2   1  2  >  >|  

登录后方可发贴


[ 电话: 0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 杭州 - 浙ICP备19051128号-1 网安 33010402003225 ]