这是我的第一个问题。
我如何在QZ托盘的原始代码中运行“ IF STATEMENT”,其中Var =打印数据[];
下面的代码在没有IF STATEMENT的情况下效果很好,但是一旦使用它,代码将无法解析。
var printData = [
'<xpml><page quantity="0" pitch="127.0 mm"></xpml>^AD\n',
'^O0\n'
'<xpml></page></xpml><xpml><page quantity="9" pitch="127.0 mm"></xpml>~MDELF,FORMAT_0\n',
'^E10.0\n',
'^L\n',
'C0,0000000000000000,+1,prompt_C0\n',
'C1,0000000000000000,+1,prompt_C1\n',
'C2,000,+1,prompt_C2\n',
'Lo,51,438,761,440\n',
'Lo,51,678,761,680\n',
'Lo,51,558,761,560\n',
'Lo,51,158,761,160\n',
'AH,320,31,1,1,0,0,'+ acs +'\n',
'BQ2,160,742,4,8,156,0,0,C^C0\n',
'AD,254,900,1,1,0,0,^C1\n',
'AA,439,440,1,1,0,0,Service\n',
'Lo,425,440,427,678\n',
'AA,442,560,1,1,0,0,Total No of Pieces\n',
'AA,439,684,1,1,0,0,Origin\n',
'AB,511,684,1,1,0,0,' + origin +'\n',
'AF,182,590,1,1,0,0,'+ destination+'\n',
'R49,13,762,999,3,3\n',
'E\n',
'^KFORMAT_0\n',
if (pcstart.length ==1)
{
premawb + postmawb +'0000'+ pcstart +'\n',
}
else {
premawb + postmawb +'000'+ pcstart +'\n',
}
pcstart + '\n',
'E\n',
'~P'+ copyPrint+'\n',
qz.print(config, printData).catch(displayError);
}
答案 0 :(得分:0)
如何在QZ托盘的原始代码旁边运行“ IF STATEMENT”
您不能对数组进行中间排列,但是可以添加ternary operator,它对简单的if/else
语句执行相同的操作:
pcstart.length == 1 ? '0000' : '000'
...以及上下文...
var printData = [
'<xpml><page quantity="0" pitch="127.0 mm"></xpml>^AD\n',
'...',
'^KFORMAT_0\n',
premawb + postmawb + (pcstart.length == 1 ? '0000' : '000') + pcstart + '\n',
pcstart + '\n',
'E\n',
'~P'+ copyPrint + '\n'
];
qz.print(config, printData).catch(displayError);
您还可以在array元素上调用一个函数,因此您可能更希望滚动自己的pad(...)
function,然后在整个数字或连接的字符串上调用pad ...例如:
premawb + postmawb + pad(pcstart, 4) +' \n',
在上面的示例中,pad(...)
是您创建的函数,可以包含所需的所有if/else
语句并返回格式化的值。