📄 nc_format.cpp
字号:
//-------------------------------------------------------------------------
//下面为南充收费发票格式备份
//连打发票格式需要将两处//m_sum_invonum++;改为m_sum_invonum++;使语句有效
//-------------------------------------------------------------------------
//开始打印发票
//userlog("打印开始");
char pt_staff_name[30],pt_pay_time[30],pt_flag[10];
BeginPrint();
if(iflag==1)
{
sprintf(pt_staff_name,"%s(%ld)",gs_staff_name,gl_staff_id);
sprintf(pt_pay_time,"%s",gs_current_time);
sprintf(pt_flag,"%s","");
}
else
{
sprintf(pt_staff_name,"%s(%ld)",reprint.ls_staff_name,reprint.ll_staff_id);
sprintf(pt_pay_time,"%s",reprint.ldt_pay_time);
sprintf(pt_flag,"%s","重打"); //设置重打标记
}
char psfee[30][50];
//打印普通发票
mvi_normal.SeekHead();
for(i=0;i<mvi_normal.GetCount();i++)
{
pnml=mvi_normal.GetNext();
//if(pnml->total_fee_digit==0.0) continue;
//根据普通发票格式定制发票
printf("\n");
printf("\t流水号:%-18s",pnml->bill_serial_nbr);
printf("\t%s",pt_flag);
printf("\n");
//printf("\n\t%-10ld",pnml->billing_cycle_id);
printf("\n %-25s",gf_billing_cycle_date(lsTemp,pnml->billing_cycle_id));
printf("\t\t%-25s",pt_pay_time);
printf("\n");
printf("\t\t\t\t%-30ld",pnml->acct_id);
printf("\n");
if (strlen(pnml->customer_name)>30)
pnml->customer_name[30]=0;
printf("\t%-30s",pnml->customer_name);
printf("\n");
printf("\t\t\t\t%-30s",pnml->acc_nbr);
printf("\n\n");
//对固定格式发票可参照下面格式打印
for(j=0;j<18;j++)
{
if(j>0&&j<11)
{
if(pnml->fee[j]==0.0) sprintf(lsTemp,"%15s","");
else sprintf(lsTemp,"%15.2f",pnml->fee[j]);
strcpy(psfee[j],lsTemp);
}
else if((j>10&&j<16)||j==0)
{
if(pnml->fee[j]==0.0) sprintf(lsTemp,"%23s","");
else sprintf(lsTemp,"%23.2f",pnml->fee[j]);
strcpy(psfee[j],lsTemp);
}
else if(j==16||j==17)
{
if(pnml->fee[j]==0.0) sprintf(lsTemp,"%11s","");
else sprintf(lsTemp,"%11.2f",pnml->fee[j]);
strcpy(psfee[j],lsTemp);
}
}
printf("\t%s\t\t%s",psfee[1],psfee[11]);
printf("\n");
printf("\t%s\t\t%s",psfee[2],psfee[12]);
printf("\n");
printf("\t%s\t\t%s",psfee[3],psfee[13]);
printf("\n");
printf("\t%s\t\t%s",psfee[4],psfee[14]);
printf("\n");
printf("\t%s\t\t%s",psfee[5],psfee[15]);
printf("\n");
printf("\t%s\t\t%s",psfee[6],psfee[0]);
printf("\n");
printf("\t%s\t\t 一次性费%s",psfee[7],psfee[16]);
printf("\n");
printf("\t%s\t\t 信息费%s",psfee[8],psfee[17]);
printf("\n");
printf("\t%s\t\t 上次零钱%11.2f",psfee[9],pnml->last_change);
printf("\n");
printf("\t%s\t\t 本次零钱%11.2f",psfee[10],pnml->new_change);
printf("\n");
DigitalToCapital(pnml->total_fee_digit,0,lsTemp);
printf("\n\t%-40s",lsTemp); //大写
printf("\t%-12.2f",pnml->total_fee_digit);
printf("\n\n");
printf("\t%-20s",pt_staff_name);
printf("\t\t%s",gs_telecom_name);
printf("\n\n\n");
//m_sum_invonum++;
}
//打印代收费发票
mvi_info.SeekHead();
for(i=0;i<mvi_info.GetCount();i++)
{
pmif=mvi_info.GetNext();
//if(pmif->total_fee_digit==0.0) continue;
//根据代收发票格式定制发票
printf("\n");
printf("\t流水号:%-18s",pmif->bill_serial_nbr);
printf("\t%s",pt_flag);
printf("\n");
//printf("\n\t%-10ld",pmif->billing_cycle_id);
printf("\n %-25s",gf_billing_cycle_date(lsTemp,pmif->billing_cycle_id));
printf("\t\t%-25s",pt_pay_time);
printf("\n");
printf("\t\t\t\t%-30ld",pmif->acct_id);
printf("\n");
if (strlen(pmif->customer_name)>30)
pmif->customer_name[30]=0;
printf("\t%-30s",pmif->customer_name);
printf("\n");
printf("\t\t\t\t%-30s",pmif->acc_nbr);
printf("\n\n");
//对固定格式发票可参照下面格式打印
for(j=0;j<18;j++)
{
if(j>0&&j<11)
{
if(pmif->fee[j]==0.0) sprintf(lsTemp,"%15s","");
else sprintf(lsTemp,"%15.2f",pmif->fee[j]);
strcpy(psfee[j],lsTemp);
}
else if((j>10&&j<16)||j==0)
{
if(pmif->fee[j]==0.0) sprintf(lsTemp,"%23s","");
else sprintf(lsTemp,"%23.2f",pmif->fee[j]);
strcpy(psfee[j],lsTemp);
}
else if(j==16||j==17)
{
if(pmif->fee[j]==0.0) sprintf(lsTemp,"%11s","");
else sprintf(lsTemp,"%11.2f",pmif->fee[j]);
strcpy(psfee[j],lsTemp);
}
}
printf("\t%s\t\t%s",psfee[1],psfee[11]);
printf("\n");
printf("\t%s\t\t%s",psfee[2],psfee[12]);
printf("\n");
printf("\t%s\t\t%s",psfee[3],psfee[13]);
printf("\n");
printf("\t%s\t\t%s",psfee[4],psfee[14]);
printf("\n");
printf("\t%s\t\t%s",psfee[5],psfee[15]);
printf("\n");
printf("\t%s\t\t%s",psfee[6],psfee[0]);
printf("\n");
printf("\t%s\t\t 一次性费%s",psfee[7],psfee[16]);
printf("\n");
printf("\t%s\t\t 信息费%s",psfee[8],psfee[17]);
printf("\n");
printf("\t%s\t\t 上次零钱%11.2f",psfee[9],pmif->last_change);
printf("\n");
printf("\t%s\t\t 本次零钱%11.2f",psfee[10],pmif->new_change);
printf("\n");
DigitalToCapital(pmif->total_fee_digit,0,lsTemp);
printf("\n\t%-40s",lsTemp); //大写
printf("\t%-12.2f",pmif->total_fee_digit);
printf("\n\n");
printf("\t%-20s",pt_staff_name);
printf("\t\t%s",gs_telecom_name);
printf("\n\n\n");
//m_sum_invonum++;
}
//结束打印
EndPrint();
//userlog("打印结束");
//---------------------------------------------------------------
//南充本地横向日报,欠费统计
//---------------------------------------------------------------
int StatWnd::wf_ncstat_report()
{
char ls_start[30],ls_end[30];
char start_date[30],end_date[30];
char lsTemp[512],lsch[50],lsch1[50];
int i,j;
long row,col;
char instr[1024],*lpdata[300],*poutstr[1];
int ret,ret1;
Rect rect(0,0,0,0);
float fee[30],sum_fee[10],amount=0.0,sum_amount=0.0,real_amount=0.0,sum_change=0.0;
float sum_num=0;
for(i=0;i<30;i++) fee[i]=0.0;
for(i=0;i<10;i++) sum_fee[i]=0.0;
dw_1.ClearList(true);
dw_1.ClearCols(true);
//显示设置
ShowText( 0, 1, "营业员:" );
ShowText( 0, 30,"归属营业点:");
ShowText( 1, 1, "生成时间:" );
ShowText( 1, 30, "收费日期:" );
dw_1.AddCol( "项目名称", 12, 0 );
dw_1.AddCol( "项目费用", 14, 0 );
dw_1.AddCol( "项目名称", 12, 0 );
dw_1.AddCol( "项目费用", 14, 0 );
strcpy(ls_start,ltrim(sle_start.GetText()));
strcpy(ls_end,ltrim(sle_end.GetText()));
///////////////////////////////////////////////
int min=0,sec=0;
if(sle_start.hour==24)
{
sle_start.hour=23;
min=59;
sec=59;
}
sprintf(start_date,"%4d-%02d-%02d %02d:%02d:%02d",
sle_start.year,sle_start.month,sle_start.day,
sle_start.hour,min,sec);
min=0;
sec=0;
if(sle_end.hour==24)
{
sle_end.hour=23;
min=59;
sec=59;
}
sprintf(end_date,"%4d-%02d-%02d %02d:%02d:%02d",
sle_end.year,sle_end.month,sle_end.day,
sle_end.hour,min,sec);
///////////////////////////////////////////////
//sprintf(start_date,"%s 00:00:00",ls_start);
//sprintf(end_date,"%s 23:59:59",ls_end);
ShowText( 0, 10, " " );
ShowText( 0, 10, gs_staff_name );
ShowText( 0, 42, " " );
ShowText( 0, 42, gs_site_name );
ShowText( 1, 10, " " );
ShowText( 1, 10, gs_current_time );
ShowText( 1, 42, " " );
if(strcmp(ls_start,ls_end)==0)
ShowText(1,42,ls_start);
else
{
sprintf(lsTemp,"%s-%s",ls_start,ls_end);
ShowText(1,42,lsTemp);
}
//call service
sprintf(instr,"%ld\t%s\t%s",gl_staff_id,start_date,end_date);
ret = CallServByStr("PSChargeSum",instr,poutstr);
if(ret < 0)
{
MessageBox("错误",0,poutstr[0]);
lpfree(poutstr,1);
return -1;
}
ret1=GetMulRowData(poutstr[0],lpdata,&row,&col,50);
//userlog(poutstr[0]);
lpfree(poutstr,1);
for(i=0;i<row;i++)
{
j=i*col;
amount=atof(lpdata[j+1]);
switch(atol(lpdata[j]))
{
case 1:
fee[0]=fee[0]+amount;break;
case 110000:
fee[1]=fee[1]+amount;break;
case 120000:
fee[2]=fee[2]+amount;break;
case 130000:
fee[3]=fee[3]+amount;break;
case 140000:
fee[4]=fee[4]+amount;break;
case 150000:
fee[5]=fee[5]+amount;break;
case 160000:
fee[6]=fee[6]+amount;break;
case 170000:
fee[7]=fee[7]+amount;break;
case 180000:
fee[8]=fee[8]+amount;break;
case 190000:
fee[9]=fee[9]+amount;break;
case 200000:
fee[10]=fee[10]+amount;break;
case 210000:
fee[11]=fee[11]+amount;break;
case 220000:
fee[12]=fee[12]+amount;break;
case 230000:
fee[13]=fee[13]+amount;break;
case 240000:
fee[14]=fee[14]+amount;break;
case 250000:
fee[15]=fee[15]+amount;break;
case 260000:
fee[16]=fee[16]+amount;break;
case 270000:
fee[17]=fee[17]+amount;break;
case -1000:
sum_num=amount;break;
case -2000:
real_amount=amount;break;
default:
fee[29]=fee[29]+amount;break;
}
}
for(i=0;i<30;i++)
sum_amount=sum_amount+fee[i];
sum_change=real_amount - sum_amount;
//再次归并费用
sum_fee[0]=fee[0];
sum_fee[1]=fee[1]+fee[9]+fee[10]+fee[11]+fee[12];
sum_fee[2]=fee[2];
sum_fee[3]=fee[3];
sum_fee[4]=fee[4]+fee[5];
sum_fee[5]=fee[6];
sum_fee[6]=fee[14]+fee[15];
sum_fee[7]=fee[16];
sum_fee[8]=fee[17];
sum_fee[9]=fee[7]+fee[8]+fee[13];
dw_1.Update( true );
dw_1.ClearList( false );
dw_1.AddRow("","本地月租费:",ftoch(lsch,"%.2f",sum_fee[1]),"区内通话费:",ftoch(lsch1,"%.2f",sum_fee[2]));
dw_1.AddRow("","区间通话费:",ftoch(lsch,"%.2f",sum_fee[3]),"长话通话费:",ftoch(lsch1,"%.2f",sum_fee[4]));
dw_1.AddRow("","电 报 费:",ftoch(lsch,"%.2f",sum_fee[5]),"网络使用费:",ftoch(lsch1,"%.2f",sum_fee[6]));
dw_1.AddRow("","一次性费用:",ftoch(lsch,"%.2f",sum_fee[7]),"信 息 费:",ftoch(lsch1,"%.2f",sum_fee[8]));
dw_1.AddRow("","其 它 费:",ftoch(lsch,"%.2f",sum_fee[9]),"","");
dw_1.AddRow("","滞 纳 金:",ftoch(lsch,"%.2f",sum_fee[0]),"零 钞:",ftoch(lsch1,"%.2f",sum_change));
dw_1.AddRow("","------------","------------","------------","------------");
dw_1.AddRow("","收费合计:",ftoch(lsch,"%.2f",real_amount),"收费户数:",ftoch(lsch1,"%.0f",sum_num));
dw_1.Update();
lpfree(lpdata,ret1);
return 1;
}
int StatWnd::wf_ncsite_report()
{
char ls_start[30],ls_end[30];
char start_date[30],end_date[30];
char lsTemp[512],lsch[50],lsch1[50];
int i,j;
long row,col;
char instr[1024],*lpdata[8000],*poutstr[1];
int ret,ret1;
Rect rect(0,0,0,0);
float fee[200][30],sum_fee[200][10],amount[200];
float sum_amount[200],real_amount[200],sum_change[200];
float sum_num[200];
long staff_id[200];
char staff_name[200][30];
//初始化
for(i=0;i<200;i++)
for(j=0;j<30;j++)
fee[i][j]=0.0;
for(i=0;i<200;i++)
for(j=0;j<10;j++)
sum_fee[i][j]=0.0;
for(i=0;i<200;i++) amount[i]=0.0;
for(i=0;i<200;i++) sum_amount[i]=0.0;
for(i=0;i<200;i++) real_amount[i]=0.0;
for(i=0;i<200;i++) sum_change[i]=0.0;
for(i=0;i<200;i++) sum_num[i]=0.0;
dw_1.ClearList(true);
dw_1.ClearCols(true);
//显示设置
ShowText( 0, 1, "营业点:" );
ShowText( 0, 30," ");
ShowText( 1, 1, "生成时间:" );
ShowText( 1, 30, "收费日期:" );
dw_1.AddCol( "", 6, 0 );
dw_1.AddCol( "", 8, 0 );
dw_1.AddCol( "", 10, 0 );
dw_1.AddCol( "", 10, 0 );
dw_1.AddCol( "", 10, 0 );
dw_1.AddCol( "", 10, 0 );
dw_1.AddCol( "", 9, 0 );
dw_1.AddCol( "", 10, 0 );
dw_1.AddCol( "", 10, 0 );
dw_1.AddCol( "", 10, 0 );
dw_1.AddCol( "", 10, 0 );
dw_1.AddCol( "", 8, 0 );
dw_1.AddCol( "", 8, 0 );
dw_1.AddCol( "", 12, 0 );
dw_1.AddCol( "", 8, 0 );
strcpy(ls_start,ltrim(sle_start.GetText()));
strcpy(ls_end,ltrim(sle_end.GetText()));
///////////////////////////////////////////////
int min=0,sec=0;
if(sle_start.hour==24)
{
sle_start.hour=23;
min=59;
sec=59;
}
sprintf(start_date,"%4d-%02d-%02d %02d:%02d:%02d",
sle_start.year,sle_start.month,sle_start.day,
sle_start.hour,min,sec);
min=0;
sec=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -