⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dc_format.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//达川发票打印格式





	//开始打印发票

	//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],aa[50],bb[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("流水号:%-18s",pnml->bill_serial_nbr);

		printf("\t\t%s",pt_flag);

		printf("\n");

		//printf("\n\t%-10ld",pnml->billing_cycle_id);

		printf("           %-20s",gf_billing_cycle_date(lsTemp,pnml->billing_cycle_id));

		printf("\t         %-25s",pt_pay_time);

		printf("\n\n");		

		if (strlen(pnml->customer_name)>30)

			pnml->customer_name[30]=0;

		printf("     %-30s",pnml->customer_name);

        printf("\t\t%-30ld",pnml->acct_id);

		printf("\n");

		printf("\t\t\t\t%-30s",pnml->acc_nbr);

		printf("\n\n");

		//对固定格式发票可参照下面格式打印

		for(j=0;j<12;j++)

		{

			if(j>0&&j<8)

			{

				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==11||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==8||j==9)

			{

				if(pnml->fee[j]==0.0) sprintf(lsTemp,"%11s","");

				else sprintf(lsTemp,"%11.2f",pnml->fee[j]);

				strcpy(psfee[j],lsTemp);

			}

		}



		sprintf(aa,"%15s","");sprintf(bb,"%23s","");

		

		printf("\t%s\t\t%s",psfee[1],bb);   

		printf("\n");

		printf("\t%s\t\t%s",psfee[2],bb);	

		printf("\n");

		printf("\t%s\t\t%s",psfee[3],psfee[11]);   

		printf("\n");

		printf("\t%s\t\t%s",psfee[4],psfee[10]);   

		printf("\n");

		printf("\t%s\t\t%s",aa,bb);   

		printf("\n");

		printf("\t%s\t\t%s",psfee[5],psfee[0]);

		printf("\n");

		printf("\t%s\t\t    其它费  %s",aa,psfee[9]);

		printf("\n");

		printf("\t%s\t\t    信息费  %s",psfee[6],psfee[8]);

		printf("\n");

		printf("\t%s\t\t  上次零钱  %11.2f",psfee[7],pnml->last_change);

		printf("\n");

		printf("\t%s\t\t  本次零钱  %11.2f",aa,pnml->new_change);

		printf("\n");

		

		DigitalToCapital(pnml->total_fee_digit,0,lsTemp);

		printf("\n           %-40s",lsTemp);  //大写		

		printf("\t%      -12.2f",pnml->total_fee_digit);

		printf("\n\n");

		printf("        %-20s",pt_staff_name);

		printf("\t\t  %20s",gs_telecom_name);

		printf("\n\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("流水号:%-18s",pmif->bill_serial_nbr);

		printf("\t\t%s",pt_flag);

		printf("\n");

		//printf("\n\t%-10ld",pmif->billing_cycle_id);

		printf("           %-20s",gf_billing_cycle_date(lsTemp,pmif->billing_cycle_id));

		printf("\t         %-25s",pt_pay_time);

		printf("\n\n");		

		if (strlen(pmif->customer_name)>30)

			pmif->customer_name[30]=0;

		printf("     %-30s",pmif->customer_name);

        printf("\t\t%-30ld",pmif->acct_id);

		printf("\n");

		printf("\t\t\t\t%-30s",pmif->acc_nbr);

		printf("\n\n");

		//对固定格式发票可参照下面格式打印

		for(j=0;j<12;j++)

		{

			if(j>0&&j<8)

			{

				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==11||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==8||j==9)

			{

				if(pmif->fee[j]==0.0) sprintf(lsTemp,"%11s","");

				else sprintf(lsTemp,"%11.2f",pmif->fee[j]);

				strcpy(psfee[j],lsTemp);

			}

		}



		sprintf(aa,"%15s","");sprintf(bb,"%23s","");

		

		printf("\t%s\t\t%s",psfee[1],bb);   

		printf("\n");

		printf("\t%s\t\t%s",psfee[2],bb);	

		printf("\n");

		printf("\t%s\t\t%s",psfee[3],psfee[11]);   

		printf("\n");

		printf("\t%s\t\t%s",psfee[4],psfee[10]);   

		printf("\n");

		printf("\t%s\t\t%s",aa,bb);   

		printf("\n");

		printf("\t%s\t\t%s",psfee[5],psfee[0]);

		printf("\n");

		printf("\t%s\t\t    其它费  %s",aa,psfee[9]);

		printf("\n");

		printf("\t%s\t\t    信息费  %s",psfee[6],psfee[8]);

		printf("\n");

		printf("\t%s\t\t  上次零钱  %11.2f",psfee[7],pmif->last_change);

		printf("\n");

		printf("\t%s\t\t  本次零钱  %11.2f",aa,pmif->new_change);

		printf("\n");

		

		DigitalToCapital(pmif->total_fee_digit,0,lsTemp);

		printf("\n           %-40s",lsTemp);  //大写		

		printf("\t%      -12.2f",pmif->total_fee_digit);

		printf("\n\n");

		printf("        %-20s",pt_staff_name);

		printf("\t\t  %20s",gs_telecom_name);

		printf("\n\n\n\n");

		

		//m_sum_invonum++;

	}



	//结束打印

	EndPrint();

	//userlog("打印结束");







//----------------------------------------------------

//达州日报,欠费统计报表

//----------------------------------------------------



int StatWnd::wf_siteqf_list()

{

	char ls_start[30],ls_end[30];

	char start_date[30],end_date[30];

	char lsTemp[512];

	int i,j;

	long row,col;

	char instr[1024],*lpdata[6*50000],*poutstr[1];

	int ret,ret1;

    Rect rect(0,0,0,0);

	strcpy(ls_start,NULL);

	strcpy(ls_end,NULL);



	double lde_charge=0.0,lde_sum=0.0;

	char ls_charge[20];



	dw_1.ClearList(true);

	dw_1.ClearCols(true);

	

	//显示设置

	ShowText( 0, 1, "营业点:" );

	ShowText( 0, 30,"            ");

	ShowText( 1, 1, "生成时间:" );

	ShowText( 1, 30, "统计帐期:" );



	dw_1.AddCol( "",10, 0 );

	dw_1.AddCol( "",10, 0 );

	dw_1.AddCol( "",20, 0 );	

	dw_1.AddCol( "",8, 0 );

	dw_1.AddCol( "",12, 0 );



	strcpy(ls_start,ltrim(sle_start.GetText()));

	strcpy(ls_end,ltrim(sle_end.GetText()));



	MidOfStr(lsTemp,ls_start,0,4);

	sprintf(start_date,"%s%c%c",lsTemp,ls_start[5],ls_start[6]);

	MidOfStr(lsTemp,ls_end,0,4);

	sprintf(end_date,"%s%c%c",lsTemp,ls_end[5],ls_end[6]);



	ShowText( 0, 10, "                " );

	ShowText( 0, 10, gs_site_name );



	ShowText( 0, 42, "                " );

	//ShowText( 0, 42, "" );



	ShowText( 1, 10, "                " );

	ShowText( 1, 10, gs_current_time );



	ShowText( 1, 42, "			          " );

	strcpy(lsTemp,NULL);

	if(strcmp(start_date,end_date)==0)

		ShowText(1,42,start_date);

	else

	{

		sprintf(lsTemp,"%s-%s",start_date,end_date);

		ShowText(1,42,lsTemp);

	}



	//call service

	sprintf(instr,"%ld\t%s\t%s",gl_staff_id,start_date,end_date);

	ret = CallServByStr("PSSiteQfList",instr,poutstr);



	if(ret < 0)

	{

		MessageBox("错误",0,poutstr[0]);

		lpfree(poutstr,1);

		return -1;

	}



	if(ret == 100)

	{

		MessageBox("提示",0,"没有检索到用户欠费记录!");

		lpfree(poutstr,1);

		return -1;

	}



	ret1=GetMulRowData(poutstr[0],lpdata,&row,&col,100);

	lpfree(poutstr,1);



	dw_1.Update( true );

	dw_1.ClearList( false );



	dw_1.AddRow("","----------","----------","--------------------","--------","------------");

	dw_1.AddRow("","合同号","电话号码","      客户名称","欠费帐期","当月话费");

	dw_1.AddRow("","----------","----------","--------------------","--------","------------");

	for(i=0;i<row;i++)

	{

	    j=i*col;

		

		lde_charge=atof(lpdata[j+4]);

		sprintf(ls_charge,"%.2f",lde_charge);

		lde_sum+=lde_charge;

		sprintf(lsTemp,"%20s",lpdata[j+2]);



		dw_1.AddRow("",lpdata[j],lpdata[j+1],lsTemp,lpdata[j+3],ls_charge);

	}

	dw_1.AddRow("","----------","----------","--------------------","--------","------------");

	sprintf(lsTemp,"%.2f",lde_sum);

	dw_1.AddRow("","","","","   合计:",lsTemp);



	dw_1.Update();

	lpfree(lpdata,ret1);

	return 1;



}





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()));



	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 3000:

			fee[1]=fee[1]+amount;break;        

		case 3010:

			fee[2]=fee[2]+amount;break;  

		case 3020:

			fee[3]=fee[3]+amount;break;  

		case 3030:

			fee[4]=fee[4]+amount;break;  

		case 3050:

			fee[5]=fee[5]+amount;break;  

		case 3060:

			fee[6]=fee[6]+amount;break;  

		case 3070:

			fee[7]=fee[7]+amount;break;  

		case 3090:

			fee[8]=fee[8]+amount;break;  

		case 3100:

			fee[9]=fee[9]+amount;break;  

		case 3110:

			fee[10]=fee[10]+amount;break; 

		case 3120:

			fee[11]=fee[11]+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++)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -