Index: ssts-web/src/main/webapp/disinfectsystem/print/print.js
===================================================================
diff -u -r28814 -r29119
--- ssts-web/src/main/webapp/disinfectsystem/print/print.js (.../print.js) (revision 28814)
+++ ssts-web/src/main/webapp/disinfectsystem/print/print.js (.../print.js) (revision 29119)
@@ -234,6 +234,22 @@
return;
}
var foreignTousseList = printSummaryObj.foreignTousseList || [];
+ //LODOP.SET_PRINT_STYLE("ItemType",0);
+ // 如果设置了paperType为连续纸张,必须设置pageWidth和pageHeight属性
+ if(myObj.paperType == '连续纸张'){
+
+ // 打印的页面对象
+ var page = printSummaryObj.pages[printSummaryObj.pageIndex];
+ var rows = page.rows;
+ if(rows != null && rows.length > 0){
+ // 表格的总行数 = 物品的行数page.rows + 合计行 + 页脚行
+ var linesCount = rows.length + 2;
+ // rowHeight + 1,因为表格线有占高度
+ setContinuousPaperHeight(myObj.pageHeightOfDengFenPaper,myObj.pageWidth,myObj.pageHeight,linesCount,myObj.goodsTable.rowHeight+1,myObj.goodsTable.position[0]);
+
+ }
+ }
+
// 打印表头的内容
if (!isObjEmpty(myObj.headerFooter)){
// 设置为页眉页脚模式
@@ -812,6 +828,62 @@
}
}
+/**
+ * 设置连续纸的纸张高度。适用于打印发货计划,单据的内容不固定,打印内容的高度不固定的场景。
+ * 根据传入的打印表格的行数和行高、表格的上边距,打印纸的高度,动态计算出本次打印占用的纸张的张数及高度。
+ *
+ * pageHeightOfDengFenPaper:等分纸的每页的高度。单位为毫米mm(值为数值,不能包含单位)。
+ * 三等分纸,高度为93.1mm;二等分纸,高度为139.7mm;连续纸(没有切割线的纸)的高度设置为0,洗水布属于此类型
+ *
+ * pageWidth:打印纸的宽度
+ * pageHeight:打印纸的高度,如果是连续纸,是指打印完毕后的下边距。
+ * rowsCount:打印表格的总行数,包括表格的合计行、页脚行
+ * rowHeight:表格的行高,值为数值,单位为px
+ * topOfTable:表格的上边距,值为数值,单位为px。如果为其它,则会报错,程序提示异常信息
+ *
+ */
+function setContinuousPaperHeight(pageHeightOfDengFenPaper,pageWidth,pageHeight,rowsCount,rowHeight,topOfTable){
+
+ // 如果没有定义每等分纸的高度,则为洗水布,真正的连续纸
+ if (isUndefinedOrNull(pageHeightOfDengFenPaper)){
+ LODOP.SET_PRINT_PAGESIZE(3,pageWidth,pageHeight,'');
+ }
+ else{
+ // 计算打印内容的实际高度,设置为固定纸张,高度为占用的等分纸的总高度
+
+ // 打印内容的实际高度
+ var dynamicPageHeight = 0;
+
+ // 页面上打印表格的内容所占的总行数
+ if(rowsCount != null ){
+ // 表格的高度 = 表格的行数 * 每行的高度 + 表格的上边距 + 页面最上面的不可打印区域高度
+ try{
+ dynamicPageHeight = rowsCount * rowHeight + parseInt(topOfTable) + 30;
+ }
+ catch(e){
+
+ alert("hmtl表格定义的上边距必须为数值,并且不能加单位。")
+ return;
+
+ }
+ // 将纸张的动态高度,由px单位的数值,转换为mm单位的数值
+ var dynamicPageHeightInMM = 25.4 * dynamicPageHeight / 96;
+
+ // 计算所占用的等分纸的页数
+ var pageCount = Math.ceil(dynamicPageHeightInMM / pageHeightOfDengFenPaper);
+ // 计算所占用的等分纸的高度
+ dynamicPageHeight = pageCount * pageHeightOfDengFenPaper;
+ }
+ else{
+ alert("打印表格的内容为空!")
+ }
+
+ // 设置打印纸张的大小,高度为动态计算出来的高度,单位为毫米,必须加上'mm'的单位
+ LODOP.SET_PRINT_PAGESIZE(1,pageWidth,dynamicPageHeight + "mm",'');
+ }
+}
+
+
//根据配置的表单打印信息,以及从服务器取到的物品信息数据,打印表单
//@Deprecated,新的打印函数采用Lodop的自动分页以及页眉页脚打印方式
function print(printSummaryObj){
@@ -828,7 +900,21 @@
myObj.customPrint(printSummaryObj);
return;
}
+ //LODOP.SET_PRINT_STYLE("ItemType",0);
+ // 如果设置了paperType为连续纸张,必须设置pageWidth和pageHeight属性
+ if(myObj.paperType == '连续纸张'){
+
+ // 打印的页面对象
+ var page = printSummaryObj.pages[printSummaryObj.pageIndex];
+ var rows = page.rows;
+ if(rows != null && rows.length > 0){
+ // 表格的总行数 = 物品的行数page.rows + 合计行 + 页脚行
+ var linesCount = rows.length + 2;
+ // rowHeight + 1,因为表格线有占高度
+ setContinuousPaperHeight(myObj.pageHeightOfDengFenPaper,myObj.pageWidth,myObj.pageHeight,linesCount,myObj.goodsTable.rowHeight+1,myObj.goodsTable.position[0]);
+ }
+ }
logPrintTousse(printSummaryObj,printSummaryObj.barcode);
// 根据配置过滤掉材料列表里面的一次性物品(后台会返回所有材料和一次性物品)
if(!isUndefinedOrNull(printSummaryObj.materials)){
@@ -3354,7 +3440,7 @@
tableHtml += "";
tableHtml += "
";
- tableHtml += "";
+ tableHtml += " | ";
tableHtml += "规格:"+specification;
tableHtml += "
";
tableHtml += " "+barcode;
Index: ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/print/printConfig.js
===================================================================
diff -u -r29116 -r29119
--- ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/print/printConfig.js (.../printConfig.js) (revision 29116)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gdszyy/print/printConfig.js (.../printConfig.js) (revision 29119)
@@ -167,7 +167,17 @@
// 在器械包和一次性物品不合并打印的情况下,消毒物品打印方式:
// 1:优先与一次性物品合并打印,如果无一次性物品则与器械包合并打印, 2:优先与器械包一起合并打印,如果没有器械包则与一次性物品合并打印 ,3:单独打印
disinfectGoodsPrintMode : 2,
- rowsPerPage : 9,
+ rowsPerPage : 1000,
+ paperType : '连续纸张',
+ pageWidth : '241mm',
+ /**
+ * 等分纸的高度,单位为毫米mm(只能写数值),三等分纸,高度为93.1mm;二等分纸,高度为139.7mm;连续纸(没有切割线的纸)的高度设置为0,洗水布属于此类型
+ * mm和pt的转换关系:25.4mm = 72pt = 96px,
+ **/
+ //本项目为三等分打印纸
+ pageHeightOfDengFenPaper : 93.1,
+ //底边的空白高度
+ pageHeight : '20mm',
headerContent : [
// 页眉名称
{label : "广东省中医院", dataIndex : '', fontSize : 12, position : ["5","1%","90%",5]},
@@ -178,27 +188,29 @@
{label : "仓库:消毒供应中心", dataIndex : '', fontSize : 11, position : ["55","75%","90%",5]},
{label : "制单人:", dataIndex : 'printUser', fontSize : 11, position : ["80","75%","90%",5]},
{label : "提交时间:", dataIndex : 'applicationTime', fontSize : 11, position : ["80","35%","90%",5]},
- {label : "备注:", dataIndex : 'remark', fontSize : 11, position : ["80","2%","90%",5]}
+ {label : "部门地址:", dataIndex : 'remark', fontSize : 11, position : ["80","2%","90%",5]}
+ //{label : "备注:", dataIndex : 'remark', fontSize : 11, position : ["80","2%","90%",5]}
],
goodsTable :{
rowHeight : 24,
- position : ["100","1%","97%","14.0cm"],
+ //表格的高度必须足够高,否则打印的内容超过打印区域的高度后,会自动分页
+ position : ["100","1%","97%","100.0cm"],
content : [
{header : "序号", dataIndex : 'serialNumber', width : 60, align : 'center', fontSize : 11},
- {header : "名称", dataIndex : 'goodsName', width : 280, align : 'left', fontSize : 11},
- {header : "规格", dataIndex : 'sp', width : 245, align : 'center', fontSize : 11},
- // {header : "包装规格", dataIndex : 'packageSpec', width : 100, align : 'center', fontSize : 11},
- {header : "单位", dataIndex : 'unit', width : 60, align : 'center', fontSize : 11},
- {header : "数量", dataIndex : 'goodsAmount', width : 60, align : 'center', fontSize : 11},
- {header : "单价", dataIndex : 'price', width : 60, align : 'center', fontSize : 11},
- {header : "金额", dataIndex : 'rowPrice', width : 75, align : 'center', fontSize : 11}
+ {header : "名称", dataIndex : 'goodsName', width : 200, align : 'center', fontSize : 11},
+ {header : "规格", dataIndex : 'sp', width : 120, align : 'center', fontSize : 11},
+ {header : "包装规格", dataIndex : 'packageSpec', width : 120, align : 'center', fontSize : 11},
+ {header : "领用数量", dataIndex : 'goodsAmount', width : 90, align : 'center', fontSize : 11},
+ {header : "单位", dataIndex : 'unit', width : 80, align : 'center', fontSize : 11}
+ //{header : "单价", dataIndex : 'price', width : 60, align : 'center', fontSize : 11},
+ //{header : "金额", dataIndex : 'rowPrice', width : 75, align : 'center', fontSize : 11}
]
},
footer: {
fontSize : 12,
content : [
- {label : " 主管: ", dataIndex : ''},
- {label : " 领料人: ", dataIndex : ''},
+ //{label : " 主管: ", dataIndex : ''},
+ {label : " 领料人: ", dataIndex : ''},
{label : " 发料人: ", dataIndex : 'printUser'},
{label : " 发货日期:", dataIndex : 'printTime'}
]
@@ -225,7 +237,17 @@
// 在器械包和一次性物品不合并打印的情况下,消毒物品打印方式:
// 1:优先与一次性物品合并打印,如果无一次性物品则与器械包合并打印, 2:优先与器械包一起合并打印,如果没有器械包则与一次性物品合并打印 ,3:单独打印
disinfectGoodsPrintMode : 2,
- rowsPerPage : 9,
+ rowsPerPage : 1000,
+ paperType : '连续纸张',
+ pageWidth : '241mm',
+ /**
+ * 等分纸的高度,单位为毫米mm(只能写数值),三等分纸,高度为93.1mm;二等分纸,高度为139.7mm;连续纸(没有切割线的纸)的高度设置为0,洗水布属于此类型
+ * mm和pt的转换关系:25.4mm = 72pt = 96px,
+ **/
+ //本项目为三等分打印纸
+ pageHeightOfDengFenPaper : 93.1,
+ //底边的空白高度
+ pageHeight : '20mm',
headerContent : [
// 页眉名称
{label : "广东省中医院", dataIndex : '', fontSize : 12, position : ["5","1%","90%",5]},
@@ -236,25 +258,29 @@
{label : "仓库:消毒供应中心", dataIndex : '', fontSize : 11, position : ["55","75%","90%",5]},
{label : "制单人:", dataIndex : 'printUser', fontSize : 11, position : ["80","75%","90%",5]},
{label : "提交时间:", dataIndex : 'applicationTime', fontSize : 11, position : ["80","35%","90%",5]},
- {label : "备注:", dataIndex : 'remark', fontSize : 11, position : ["80","2%","90%",5]}
+ {label : "部门地址:", dataIndex : 'remark', fontSize : 11, position : ["80","2%","90%",5]}
+ //{label : "备注:", dataIndex : 'remark', fontSize : 11, position : ["80","2%","90%",5]}
],
goodsTable :{
rowHeight : 24,
position : ["100","1%","97%","14.0cm"],
content : [
{header : "序号", dataIndex : 'serialNumber', width : 60, align : 'center', fontSize : 11},
- {header : "名称", dataIndex : 'goodsName', width : 260, align : 'center', fontSize : 11},
- {header : "数量", dataIndex : 'goodsAmount', width : 100, align : 'center', fontSize : 11},
- {header : "单价", dataIndex : 'price', width : 100, align : 'center', fontSize : 11},
- {header : "金额", dataIndex : 'rowPrice', width : 100, align : 'center', fontSize : 11}
+ {header : "名称", dataIndex : 'goodsName', width : 240, align : 'center', fontSize : 11},
+ {header : "单位", dataIndex : '', width : 80, align : 'center', fontSize : 11},
+ {header : "回收数量", dataIndex : 'goodsAmount', width : 90, align : 'center', fontSize : 11},
+ {header : "实发数量", dataIndex : '', width : 90, align : 'center', fontSize : 11},
+ {header : "备注", dataIndex : 'remark', width : 130, align : 'center', fontSize : 11},
+ //{header : "单价", dataIndex : 'price', width : 100, align : 'center', fontSize : 11},
+ //{header : "金额", dataIndex : 'rowPrice', width : 100, align : 'center', fontSize : 11}
]
},
footer: {
fontSize : 12,
content : [
- {label : " 主管: ", dataIndex : ''},
- {label : " 领料人: ", dataIndex : ''},
- {label : " 发料人: ", dataIndex : 'printUser'},
+ {label : " 经领人: ", dataIndex : ''},
+ {label : " 经收人: ", dataIndex : ''},
+ {label : " 经发人: ", dataIndex : ''},
{label : " 发货日期:", dataIndex : 'printTime'}
]
},
@@ -396,48 +422,47 @@
}
var applicationPrintConfig = {
+
isPrintTousse : true,
isPrintDisinfectGoods : true,
- isPrintDisposableGoods : true, // 打印申请单是否打印一次性物品
+ isPrintDisposableGoods : false, // 打印申请单是否打印一次性物品
isMergePrintTousseAndDiposable : true, // 器械包和一次性物品是否合并打印
printApplyInfo : true,
// 在器械包和一次性物品不合并打印的情况下,消毒物品打印方式:
// 1:优先与一次性物品合并打印,如果无一次性物品则与器械包合并打印, 2:优先与器械包一起合并打印,如果没有器械包则与一次性物品合并打印 ,3:单独打印
disinfectGoodsPrintMode : 1,
- rowsPerPage : 11,
+ rowsPerPage : 20,
headerContent : [
// 页眉名称
{label : "广东省中医院", dataIndex : '', fontSize : 10, position : ["5","1%","90%",5]},
// 标题
- {label : "无菌物品申领单", dataIndex : '', fontSize : 15, position : ["20","40%","99%",5]},
- {label : "部门:", dataIndex : 'depart', fontSize : 11, position : ["55","2%","90%",5]},
+ {label : "部门回收凭证", dataIndex : '', fontSize : 15, position : ["20","15%","99%",5]},
+ {label : "申请科室:", dataIndex : 'depart', fontSize : 11, position : ["55","2%","90%",5]},
{label : "单号:", dataIndex : 'serialNum', fontSize : 11, position : ["55","35%","90%",5]},
- {label : "制单人:", dataIndex : 'printUser', fontSize : 11, position : ["80","75%","90%",5]},
- {label : "提交时间:", dataIndex : 'applicationTime', fontSize : 11, position : ["80","35%","90%",5]},
+ {label : "申请人:", dataIndex : 'applicant', fontSize : 11, position : ["80","75%","90%",5]},
+ {label : "提交时间:", dataIndex : 'applicationTime', fontSize : 11, position : ["80","45%","90%",5]},
{label : "备注:", dataIndex : 'remark', fontSize : 11, position : ["80","2%","90%",5]}
],
goodsTable :{
rowHeight : 25,
position : ["100","1%","97%","2000"],
content : [
- {header : "序号", dataIndex : 'serialNumber', width : 60, align : 'center', fontSize : 11},
- {header : "名称", dataIndex : 'goodsName', width : 340, align : 'left', fontSize : 11},
- {header : "规格", dataIndex : 'sp', width : 185, align : 'center', fontSize : 11},
- {header : "包装规格", dataIndex : 'packageSpec', width : 100, align : 'center', fontSize : 11},
- {header : "单位", dataIndex : 'unit', width : 60, align : 'center', fontSize : 11},
- {header : "数量", dataIndex : 'goodsAmount', width : 60, align : 'right', fontSize : 11},
- {header : "单价", dataIndex : 'price', width : 60, align : 'right', fontSize : 11},
- {header : "金额", dataIndex : 'rowPrice', width : 75, align : 'right', fontSize : 11}
+ {header : "序号", dataIndex : 'serialNumber', width : "10%", align : 'center', fontSize : 11},
+ {header : "名称", dataIndex : 'goodsName', width : "45%", align : 'left', fontSize : 11},
+ {header : "数量", dataIndex : 'goodsAmount', width : "15%", align : 'center', fontSize : 11},
+ {header : "备注", dataIndex : '', width : "30%", align : 'center', fontSize : 11}
+ //{header : "单价", dataIndex : 'price', width : 60, align : 'right', fontSize : 11},
+ //{header : "金额", dataIndex : 'rowPrice', width : 75, align : 'right', fontSize : 11}
]
},
footer: {
fontSize : 15,
content : [
- {label : " 主管: ", dataIndex : ''},
- {label : " 领料人: ", dataIndex : ''},
+ {label : " 回收人: ", dataIndex : ''},
{label : " 打印人: ", dataIndex : 'printUser'},
- {label : " 打印日期:", dataIndex : 'printTime'}
+ {label : " 打印日期:", dataIndex : 'printTime'},
+ {label : " 验收: 复核: ", dataIndex : ''}
]
},
barcodes : [
@@ -449,8 +474,9 @@
}
]
-}
+ }
+
var borrowPrintConfig = {
isPrintTousse : true,
isPrintDisinfectGoods : true,
@@ -1233,8 +1259,8 @@
invoiceTousse : invoiceComboPrintConfig,
// 发货单(消毒物品)
invoiceDisinfectGoods : invoiceComboPrintConfig,
- // 申请单(一次性物品)
- application : invoicePlanPrintConfig, //invoicePlanPrintConfig applicationPrintConfig
+ // 申请单
+ application : applicationPrintConfig, //invoicePlanPrintConfig applicationPrintConfig
// 器械包申请单
application_tousse:invoiceToussePlanPrintConfig,
// 消毒物品申请单
|