Index: ssts-web/src/main/webapp/disinfectsystem/config/dgsdhyy/print/printConfig.js
===================================================================
diff -u -r13460 -r13776
--- ssts-web/src/main/webapp/disinfectsystem/config/dgsdhyy/print/printConfig.js (.../printConfig.js) (revision 13460)
+++ ssts-web/src/main/webapp/disinfectsystem/config/dgsdhyy/print/printConfig.js (.../printConfig.js) (revision 13776)
@@ -778,14 +778,130 @@
]
}
}
-
+/**
+ * 获取中标签中材料的字体大小。需要根据记录数计算大小,同时要考虑材料的名称,如果当前字体下,名称太长导致换行,则认为行数增加
+ * @param materials 所有需要打印的材料
+ * @param cols 材料的列数 如:名称 数量 名称 数量,这种情况下,cols为2,指一行的记录数
+ */
+function getMaterialsFontSize_middleLable(materials,cols){
+ /**
+ * 计算材料名称列的行数(包括名称和规格)
+ */
+ var nameRows = function(material){
+ var temp = material.name;
+ // 不打印材料
+ if (material.specification != null && material.specification != ""){
+ temp += "[" + material.specification + "]";
+ }
+
+ var nameMaxLenthPerLine = 8;
+ return Math.ceil(temp.length / nameMaxLenthPerLine) ; // 向上取整
+ }
+
+ var materialsAmount = materials.length;
+ var fontSize = 10;
+ var rows = Math.ceil(materialsAmount / cols) ; // 向上取整
+ var addTotalRow = 0;
+ for(var row = 0; row < rows;++row){
+ var addRow = 0;
+ var index = cols * row;
+ while(index < cols*(row + 1)){
+ if(index < materialsAmount){
+ var addRow2 = nameRows(materials[index]);
+ addRow = (addRow > addRow2)?addRow:addRow2;
+ }
+ ++index;
+ }
+ addRow = addRow < 1?1:addRow; //至少有一行
+ addTotalRow += (addRow - 1);
+ }
+ rows += addTotalRow;
+ if ( rows > 15){
+ fontSize = 5;
+ }else if(rows > 13){
+ fontSize = 6;
+ }
+ else if (rows > 12){
+ fontSize = 7;
+ }
+ else if (rows > 10){
+ fontSize = 8;
+ }else if (rows > 8){
+ fontSize = 9;
+ }else if (rows > 6){
+ fontSize = 10;
+ }else if (rows >= 4){
+ fontSize = 12;
+ }else{
+ fontSize = 13;
+ }
+ return fontSize;
+}
+//构造表格
+function getMaterialsTabHtml_middleLable(tousse){
+ //绘制材料明细表格
+ var markTousse = tousse['markTousse'];
+ var materials = tousse.materials;
+ // 打印材料明细
+ var materialsTab = "";
+ var borderSize = 0;
+
+ if(markTousse){
+ //borderSize = 1;
+ }
+
+ var materialsAmount = materials.length;
+ if(materials != null && materialsAmount > 0){
+ var materialStr = "";
+ var fontSize = getMaterialsFontSize_middleLable(materials,2);
+// alert(fontSize)
+ /*materialStr += "
名称 | ";
+ materialStr += "数量 | ";
+ materialStr += "名称 | ";
+ materialStr += "数量 | ";
+ materialStr += "#;";*/
+ for (var i=0;i" + temp + "";
+ materialStr += "" + material.count + " | ";
+ }
+ if (materialsAmount % 2 != 0) {
+ for (var i = 0; i < (2 - materialsAmount % 2); i++) {
+ materialStr += (" | ");
+ }
+ }
+
+ if (materialStr.length > 0) {
+ materialsTab += "";
+ var materialArray = materialStr.split("#;");
+ for (var i=0; i"
+ + materialArray[i] + "";
+ }
+ materialsTab += "
";
+ }
+
+ }
+ //alert(materialsTab)
+ return materialsTab;
+}
function printMiddleLable_gyey(obj){
doGetLodop();
// 划线
if(obj.markTousse){
- LODOP.ADD_PRINT_LINE('30mm','0mm','30mm','60mm',0,1);
- LODOP.ADD_PRINT_LINE('42mm','0mm','42mm','60mm',0,1);
+ LODOP.ADD_PRINT_LINE('40mm','0mm','40mm','60mm',0,1);
+ LODOP.ADD_PRINT_LINE('50mm','0mm','50mm','60mm',0,1);
}
// 设置默认字体
setDefaultFontNameSizeBold('宋体',15,1);
@@ -794,38 +910,43 @@
LODOP.SET_PRINT_STYLE('FontSize', 6);
LODOP.SET_PRINT_STYLE('NotOnlyHighPrecision', true);
- var fontSize = getFontSizeByStr(obj.name,[
+ var fontSize = 25; /*getFontSizeByStr(obj.name,[
{maxLen:10,fontSize:25},
{maxLen:13,fontSize:21},
{maxLen:15,fontSize:19},
{maxLen:20,fontSize:17},
{maxLen:1000,fontSize:15}
- ]);
- LODOP.ADD_PRINT_TEXT("2mm","0mm","RightMargin:0mm","29mm", obj.name);
+ ]);*/
+ LODOP.ADD_PRINT_TEXT("2mm","0mm","RightMargin:0mm","6mm", obj.name);
setFontSizeBold(fontSize,1);// 设置字体
setAlignment('center');// 对齐
- LODOP.ADD_PRINT_TEXT("31mm","1mm","34mm","13mm", "灭菌:"+obj.sterilizationDate);
+ // 打印表格
+ var tableStr = getMaterialsTabHtml_middleLable(obj);
+ addPrintTable(tableStr,"12mm","1mm","RightMargin:1mm","29mm");
+ setAlignment('center');// 居中对齐
+
+ LODOP.ADD_PRINT_TEXT("41mm","1mm","34mm","5mm", "灭菌:"+obj.sterilizationDate);
setFontSizeBold(11,0);// 设置字体
- LODOP.ADD_PRINT_TEXT("31mm","33mm","30mm","13mm", "装配员:"+obj.operator);
+ LODOP.ADD_PRINT_TEXT("41mm","33mm","30mm","5mm", "装配员:"+obj.operator);
setFontSizeBold(11,0);// 设置字体
- LODOP.ADD_PRINT_TEXT("37mm","1mm","34mm","13mm", "失效:"+obj.validDate);
+ LODOP.ADD_PRINT_TEXT("46mm","1mm","34mm","5mm", "失效:"+obj.validDate);
setFontSizeBold(11,0);// 设置字体
- LODOP.ADD_PRINT_TEXT("37mm","33mm","30mm","13mm", "审核员:"+obj.reviewer);
+ LODOP.ADD_PRINT_TEXT("46mm","33mm","30mm","5mm", "审核员:"+obj.reviewer);
setFontSizeBold(11,0);// 设置字体
- LODOP.ADD_PRINT_BARCODE("44mm","10mm","40mm","18mm","128Auto", obj.barcode);// 条码1
+ LODOP.ADD_PRINT_BARCODE("51mm","10mm","40mm","11mm","128Auto", obj.barcode);// 条码1
setAlignment('center');// 对齐
var fontSize = getFontSizeByStr(obj.name,[
{maxLen:10,fontSize:10},
{maxLen:20,fontSize:8},
{maxLen:1000,fontSize:6}
]);
- LODOP.ADD_PRINT_TEXT("64mm","0mm","RightMargin:0mm","3mm", obj.name);
+ LODOP.ADD_PRINT_TEXT("63mm","0mm","RightMargin:0mm","3mm", obj.name);
setFontSizeBold(fontSize,1);// 设置字体
setAlignment('center');// 对齐
- LODOP.ADD_PRINT_BARCODE("69mm","10mm","40mm","11mm","128Auto", obj.barcode);// 条码2
+ LODOP.ADD_PRINT_BARCODE("67mm","10mm","40mm","11mm","128Auto", obj.barcode);// 条码2
setAlignment('center');// 对齐
}
var foreignTousseMiddleLableConfig = {