📄 jbprint.c
字号:
*****************************************************************************/
void Print_Fee(void)
{
bool fZero=0;
byte i,bByte,j=0;
byte *p;
p=(byte *)&lTotalTariff;
for(i=1;i<4;i++)
aServer[i-1]=*(p+i);
BINConvBCD(3);
for(i=2;i<8;i++){
bByte=aServer[i];
if((i<5)&&(!fZero)&&(bByte==0))
j++;
else{
WritePrintPort(bByte+0x30);
fZero=1;
}
if(i==5)
WritePrintPort(0x2E);
}
for(i=0;i<j;i++)
WritePrintPort(0x20);
} // End of Print_Fee()
/*void Print_Fee(void)
{
bool fStart;
byte data i,k,j=0;
ulint xdata lTemp;
fStart=0;
for(i=0,lTemp=100000;i<6;i++){
if(i==4)
WritePrintPort(0x2e); // 打印小数点
k=(byte)((lTotalTariff/lTemp)%10);
lTemp/=10;
if((!fStart)&&(k>0))
fStart=1;
if(fStart||(i>=3)){
k+=0x30;
WritePrintPort(k);
}
else
//k=0x20;
j++;
}
for(i=0;i<j;i++)
WritePrintPort(0x20);
}*/ // End of Print_Fee()
/*****************************************************************************
*
* 函数名: uPrint
*
* 说 明: 微打打印驱动程序
*
*****************************************************************************/
void uPrint()
{
byte i;
WritePrintPort(0x4E);
WritePrintPort(0x6F);
WritePrintPort(0x2E);
WritePrintPort(0x20);
PrintBillNo();
PrintSpace(8);
PrintDate();
if(fWorkMode)
i=6;
else
i=1;
PrintSpace(i);
PrintStartTime();
if(fWorkMode)
PrintSpace(8);
PrintCode(PASSI);
PrintTalkTime();
PrintSpace(8);
WritePrintPort(0x52);
WritePrintPort(0x4D);
WritePrintPort(0x42);
WritePrintPort(0x3A); // RMB:
PrintSpace(1);
Print_Fee();
for(i=0;i<4;i++)
WritePrintPort(0x0A);
} // End of uPrint()
bool PrintBaoBiao(void) //lmt add 2001.3.13
{
byte data i,j;
byte data bFormValue;
fPrnSure=1;
if((bStatusWord==S_OLDLOCKWAIT)||(bStatusWord==S_OLDUNLOCKWAIT)||
(bStatusWord==S_NEWLOCKWAIT)||(bStatusWord==S_NEWUNLOCKWAIT))
cbDelay5MS=100;
else
cbDelay5MS=250;
fDelay5MS=0;
fBusy=1;
// 打印机的情况
i=50;
while(--i!=0){ // 80 ms
j=60;
while(--j!=0){
if(fDelay5MS)
return FALSE;
if(fDelay5MS||(cbDelay5MS==120)){
cbDelay5MS=180;
return FALSE;
}
if(fBusy)
i=50;
}
}
cbDelay5MS=180;
fDelay5MS=0;
PrinterInit();
WritePrintPort(0x1b); // 回纸
WritePrintPort(0x6a);
WritePrintPort(250);
WritePrintPort(0x1b); // 回纸
WritePrintPort(0x6a);
Page(6);
i=XBYTE[PARA_59];
Page(5);
WritePrintPort(i);
Print_CR();
for(i=0;i<70;i++){
bFormValue=aPrintForm[34][i]; // aSelfForm[i];
if(bFormValue==ERRVALUE){
fPrnSure=FALSE;
break;
}
if(bFormValue==PRNEND){
if(i==0)
fPrnSure=FALSE;
break;
}
switch(bFormValue){
case MONT:
WritePrintPort('M');
WritePrintPort('O');
WritePrintPort('N');
WritePrintPort('T');
WritePrintPort('H');
break;
case TODAY:
WritePrintPort('T');
WritePrintPort('O');
WritePrintPort('D');
WritePrintPort('A');
WritePrintPort('Y');
break;
case CLAS:
WritePrintPort('C');
WritePrintPort('L');
WritePrintPort('A');
WritePrintPort('S');
WritePrintPort('S');
break;
case CALLS:
WritePrintPort('C');
WritePrintPort('A');
WritePrintPort('L');
WritePrintPort('L');
WritePrintPort('S');
break;
case TIMES:
WritePrintPort('T');
WritePrintPort('I');
WritePrintPort('M');
WritePrintPort('E');
WritePrintPort('S');
break;
case TOTAL:
WritePrintPort('T');
WritePrintPort('O');
WritePrintPort('T');
WritePrintPort('A');
WritePrintPort('L');
break;
case IDD:
WritePrintPort('I');
WritePrintPort('D');
WritePrintPort('D');
break;
case DDD:
WritePrintPort('D');
WritePrintPort('D');
WritePrintPort('D');
break;
case LOCA:
WritePrintPort('L');
WritePrintPort('O');
WritePrintPort('C');
WritePrintPort('A');
WritePrintPort('L');
break;
case DATE:
WritePrintPort('D');
WritePrintPort('a');
WritePrintPort('t');
WritePrintPort('e');
WritePrintPort(0x3a);
break;
case FROM:
WritePrintPort('F');
WritePrintPort('r');
WritePrintPort('o');
WritePrintPort('m');
break;
case TO:
WritePrintPort('T');
WritePrintPort('o');
break;
case CLASSDATE:
WritePrintPort(0x32);
WritePrintPort(0x30);
Page(6);
j=XBYTE[DateAddress];
Page(5);
WritePrintPort((j>>4)+0x30);
WritePrintPort((j&0x0f)+0x30);
WritePrintPort(0x2d);
Page(6);
j=XBYTE[DateAddress+1];
Page(5);
WritePrintPort((j>>4)+0x30);
WritePrintPort((j&0x0f)+0x30);
WritePrintPort(0x2d);
Page(6);
j=XBYTE[DateAddress+2];
Page(5);
WritePrintPort((j>>4)+0x30);
WritePrintPort((j&0x0f)+0x30);
break;
case CLASSTARTTIME:
Page(6);
j=XBYTE[StartTimeAddress];
Page(5);
WritePrintPort((j>>4)+0x30);
WritePrintPort((j&0x0f)+0x30);
WritePrintPort(0x3a);
Page(6);
j=XBYTE[StartTimeAddress+1];
Page(5);
WritePrintPort((j>>4)+0x30);
WritePrintPort((j&0x0f)+0x30);
WritePrintPort(0x3a);
Page(6);
j=XBYTE[StartTimeAddress+2];
Page(5);
WritePrintPort((j>>4)+0x30);
WritePrintPort((j&0x0f)+0x30);
break;
case CLASSENDTIME:
Page(6);
j=XBYTE[EndTimeAddress];
Page(5);
WritePrintPort((j>>4)+0x30);
WritePrintPort((j&0x0f)+0x30);
WritePrintPort(0x3a);
Page(6);
j=XBYTE[EndTimeAddress+1];
Page(5);
WritePrintPort((j>>4)+0x30);
WritePrintPort((j&0x0f)+0x30);
WritePrintPort(0x3a);
Page(6);
j=XBYTE[EndTimeAddress+2];
Page(5);
WritePrintPort((j>>4)+0x30);
WritePrintPort((j&0x0f)+0x30);
WritePrintPort(0x0d);
break;
case IDDOBJECT:
bIDL=2;
PrintObject();
break;
case DDDOBJECT:
bIDL=1;
PrintObject();
break;
case LOCALOBJECT:
bIDL=0;
PrintObject();
break;
case TOTALOBJECT:
bIDL=3;
PrintObject();
break;
case FEED:
bFormValue=aPrintForm[34][++i];
ESC_J(bFormValue);
break;
case PRINTCR:
Print_CR();
break;
default:
PrintSpace(bFormValue);
break;
}
if(!fPrnSure)
break;
}
ESC_J(250);
ESC_J(250);
AutoReadPara(73);
ESC_J(bParaByte);
Page(5);
return fPrnSure;
}
void PrintObject(void) //lmt add 2001.3.13
{
byte data i1,k1,j1;
ulint xdata lTemp;
uint xdata iTemp;
bool fStart=0;
for(j1=0;j1<3;j1++){
if(bIDL==2)
iAddress=MonthIDDAddress+15*j1;
if(bIDL==1)
iAddress=MonthDDDAddress+15*j1;
if(bIDL==0)
iAddress=MonthLOCALAddress+15*j1;
ReadBytes(6,2);
if(bIDL==3){
iAddress=MonthIDDAddress+15*j1;
ReadBytes(6,2);
lTemp=iParaWord;
iAddress=MonthDDDAddress+15*j1;
ReadBytes(6,2);
lTemp+=iParaWord;
iAddress=MonthLOCALAddress+15*j1;
ReadBytes(6,2);
lTemp+=iParaWord;
iParaWord=(uint)(lTemp);
}
ReadBytes(6,3);
if(bIDL==3){
iAddress=MonthIDDAddress+2+15*j1;
ReadBytes(6,3);
lTemp=lParaLWord;
iAddress=MonthDDDAddress+2+15*j1;
ReadBytes(6,3);
lTemp+=lParaLWord;
iAddress=MonthLOCALAddress+2+15*j1;
ReadBytes(6,3);
lTemp+=lParaLWord;
lParaLWord=lTemp;
}
fStart=0;
for(i1=0,iTemp=10000;i1<5;i1++){
k1=(byte)((iParaWord/iTemp)%10);
if(k1!=0){
WritePrintPort(k1+0x30);
fStart=1;
}
else{
if((i1!=4)&&(!fStart))
WritePrintPort(0x20);
else
WritePrintPort(0x30);
}
iTemp=iTemp/10;
}
fStart=0;
PrintSpace(1);
for(i1=0,lTemp=100000;i1<6;i1++){
if(i1==4)
WritePrintPort(0x2e); // 打印小数点
k1=(byte)((lParaLWord/lTemp)%10);
lTemp/=10;
if((!fStart)&&(k1>0))
fStart=1;
if(fStart||(i1>=3)){
k1+=0x30;
}
else
k1=0x20;
WritePrintPort(k1);
}
PrintSpace(4);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -