用康虎云报表打印二维码
1 安装:
下载地址: https://www.khcloud.net/cfprint_download, 选择Odoo免代码报表模块和自定义SQL报表模块
下载下来后解压缩,一共有四个模块
cf_report_designer # 报表设计模块
cf_sale_print_ext # 演示模块
cf_sql_report
cfprint # 基础模块
只要安装cf_report_designer就可以.
该模块需要两个python包,
$ pip install pycryptodome
报了一个错用
No module named 'distutils.cmd'
百度了一下,需要安装
sudo apt install python3-distutils
然后再安装就没有问题了
$ pip install pycryptodome
$ pip install pycfloader
2 从odoo网页下载报表服务
下载完成后直接安装,安装完启动的时候报了一个错
启动WS监听失败.错误原因:10048:[10048] Address already in use
一开始以为是10048端口被占用了,然后
C:\Users\Administrator>netstat -aon | findstr "10048"
发现没有程序占用10048端口,
后来看到康虎云报表的端口是54321,然后查了一下54321
C:\Users\Administrator>netstat -aon | findstr "54321"TCP 0.0.0.0:54321 0.0.0.0:0 LISTENING 37480TCP 127.0.0.1:54321 127.0.0.1:62629 CLOSE_WAIT 37480TCP 127.0.0.1:62629 127.0.0.1:54321 FIN_WAIT_2 4092TCP [::]:54321 [::]:0 LISTENING 22940
然后到任务管理器,查了一下进程号,发现是被迅雷占用了.停掉迅雷. 服务就起来了.
3 业务需求
要实现的业务需求是给零部件扫码,当满箱的时候,系统自动打印箱号,思路是这样的:
1 后台检测是否满箱,如果满箱,那么将满箱的箱号传递给前台
2 前台js 根据后来传递的数据,判断是否打印箱号
3 获取打印按钮元素, 调用它的点击事件
$('span:contains("打印")').click()
4 获取对应的报表元素,调用它的点击事件
$('span:contains("特斯拉装箱单康虎")').click()
为什么要分两步呢,因为如果不点击打印按钮,dom中没有需要打印的菜单, 打印菜单里面的内容是动态生成的.
模板设计:
设定模板大小:
在模板空白处点击右键,可以设定模板大小,还可以设置页边距,默认是1cm, 如果是比较小的条形码之类的,可以改成0