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

📄 dc_format.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		sum_amount=sum_amount+fee[i];

	sum_change=real_amount - sum_amount;



	//再次归并费用

	sum_fee[0]=fee[0];		

	sum_fee[1]=fee[1];

	sum_fee[2]=fee[2];

	sum_fee[3]=fee[3];

	sum_fee[4]=fee[4];

	sum_fee[5]=fee[5];

	sum_fee[6]=fee[10];

	sum_fee[7]=fee[7];

	sum_fee[8]=fee[8];

	sum_fee[9]=fee[9]+fee[6]+fee[11]+fee[29];



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



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



	ShowText( 0, 42, "                " );

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



	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("PSSiteSum",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]);

	

	if(strcmp(lpdata[0],NULL)==0||strcmp(lpdata[0],"")==0||strcmp(poutstr[0],NULL)==0)

	{

		lpfree(poutstr,1);

		MessageBox("提示",0,"未找到员工收费记录!");

		return 0; 

	}

	lpfree(poutstr,1);



	int k=0;

	long p_stid=atol(lpdata[0]);

	staff_id[0]=atol(lpdata[0]);

	strcpy(staff_name[0],lpdata[1]);



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

	{

	    j=i*col;

		

		if(p_stid==atol(lpdata[j]))

		{			

			amount[k]=atof(lpdata[j+3]);

			switch(atol(lpdata[j+2]))

			{

			case 1:

				fee[k][0]+=amount[k];break;

			case 3000:

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

			case 3010:

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

			case 3020:

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

			case 3030:

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

			case 3050:

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

			case 3060:

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

			case 3070:

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

			case 3090:

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

			case 3100:

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

			case 3110:

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

			case 3120:

				fee[k][11]+=amount[k];break; 

			case -1000:

				sum_num[k]=amount[k];break;

			case -2000:

				real_amount[k]=amount[k];break;

			default:

				fee[k][29]=fee[k][29]+amount[k];break;



			}

		}

		else 

		{

			p_stid=atol(lpdata[j]);

			k++;i--;

			staff_id[k]=atol(lpdata[j]);

			strcpy(staff_name[k],lpdata[j+1]);

		}

	}



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

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

			sum_amount[i]+=fee[i][j];



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

	sum_change[i]=real_amount[i] - sum_amount[i];	



	//再次归并费用

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

	{

		sum_fee[i][0]=fee[i][0];		

		sum_fee[i][1]=fee[i][1];

		sum_fee[i][2]=fee[i][2];

		sum_fee[i][3]=fee[i][3];

		sum_fee[i][4]=fee[i][4];

		sum_fee[i][5]=fee[i][5];

		sum_fee[i][6]=fee[i][10];

		sum_fee[i][7]=fee[i][7];

		sum_fee[i][8]=fee[i][8];

		sum_fee[i][9]=fee[i][9]+fee[i][6]+fee[i][11]+fee[i][29];

	}



	dw_1.Update( true );

	dw_1.ClearList( false );

	

	char tmp[14][30],tmpid[20];

	dw_1.AddRow("","工  号","姓  名","月租费","区内通话","区间通话","长话通话","电报费","因特网费","新业务费","信息费","其它费","违约金","零  钞","收费合计","收费户数");

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

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

	{

		sprintf(tmpid,"%ld",staff_id[i]);



		sprintf(tmp[0],"%.2f",sum_fee[i][1]);

		sprintf(tmp[1],"%.2f",sum_fee[i][2]);	

		sprintf(tmp[2],"%.2f",sum_fee[i][3]);

		sprintf(tmp[3],"%.2f",sum_fee[i][4]);		

		sprintf(tmp[4],"%.2f",sum_fee[i][5]);

		sprintf(tmp[5],"%.2f",sum_fee[i][6]);

		sprintf(tmp[6],"%.2f",sum_fee[i][7]);

		sprintf(tmp[7],"%.2f",sum_fee[i][8]);

		sprintf(tmp[8],"%.2f",sum_fee[i][9]);

		sprintf(tmp[9],"%.2f",sum_fee[i][0]);

		sprintf(tmp[10],"%.2f",sum_change[i]);

		sprintf(tmp[11],"%.2f",real_amount[i]);

		sprintf(tmp[12],"%.0f",sum_num[i]);



		dw_1.AddRow("",tmpid,staff_name[i],tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],tmp[5],tmp[6],tmp[7],tmp[8],tmp[9],tmp[10],tmp[11],tmp[12]);

	}

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

	dw_1.Update();



    lpfree(lpdata,ret1);

	return 1;

}





int StatWnd::wf_sitedue_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);

	strcpy(ls_start,NULL);

	strcpy(ls_end,NULL);



	float fee[300][30],sum_fee[300][10],amount[300];

	float sum_amount[300],hj_sum[11];

	long  cycle_id[300];



	//初始化

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

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

			fee[i][j]=0.0;

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

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

		sum_fee[i][j]=0.0;

	for(i=0;i<300;i++) 	amount[i]=0.0;

	for(i=0;i<300;i++) 	sum_amount[i]=0.0;

	for(i=0;i<11;i++) 	hj_sum[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( "", 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( "", 10, 0 );

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

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

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

	dw_1.AddCol( "", 11, 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("PSSiteDue",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]);

	

	if(strcmp(lpdata[0],NULL)==0||strcmp(lpdata[0],"")==0||strcmp(poutstr[0],NULL)==0)

	{

		lpfree(poutstr,1);

		MessageBox("提示",0,"没有找到帐户费用数据!");

		return 0; 

	}

	lpfree(poutstr,1);



	int k=0;

	long pt_cycle_id=atol(lpdata[0]);

	cycle_id[0]=atol(lpdata[0]);



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

	{

	    j=i*col;

		

		if(pt_cycle_id==atol(lpdata[j]))

		{			

			amount[k]=atof(lpdata[j+2]);

			switch(atol(lpdata[j+1]))

			{

			case 3000:

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

			case 3010:

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

			case 3020:

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

			case 3030:

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

			case 3050:

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

			case 3060:

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

			case 3070:

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

			case 3090:

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

			case 3100:

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

			case 3110:

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

			case 3120:

				fee[k][11]+=amount[k];break; 

			default:

				fee[k][29]+=amount[k];break;

			}

		}

		else 

		{

			pt_cycle_id=atol(lpdata[j]);

			k++;i--;

			cycle_id[k]=atol(lpdata[j]);

		}

	}



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

		for(j=1;j<30;j++)

			sum_amount[i]+=fee[i][j];



	//再次归并费用

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

	{		

		sum_fee[i][1]=fee[i][1];

		sum_fee[i][2]=fee[i][2];

		sum_fee[i][3]=fee[i][3];

		sum_fee[i][4]=fee[i][4];

		sum_fee[i][5]=fee[i][5];

		sum_fee[i][6]=fee[i][10];

		sum_fee[i][7]=fee[i][7];

		sum_fee[i][8]=fee[i][8];

		sum_fee[i][9]=fee[i][9]+fee[i][6]+fee[i][11]+fee[i][29];

	}



⌨️ 快捷键说明

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