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

📄 dc_format.cpp

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

	{

		hj_sum[1]+=sum_fee[i][1];

		hj_sum[2]+=sum_fee[i][2];

		hj_sum[3]+=sum_fee[i][3];

		hj_sum[4]+=sum_fee[i][4];

		hj_sum[5]+=sum_fee[i][5];

		hj_sum[6]+=sum_fee[i][6];

		hj_sum[7]+=sum_fee[i][7];

		hj_sum[8]+=sum_fee[i][8];

		hj_sum[9]+=sum_fee[i][9];



		hj_sum[10]+=sum_amount[i];

	}



	dw_1.Update( true );

	dw_1.ClearList( false );

	

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

	dw_1.AddRow("","帐  期","月租费","区内通话","区间通话","长话通话","电报费","因特网费","新业务费","信息费","其它费","小  计");

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

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

	{

		sprintf(tmpid,"%ld",cycle_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_amount[i]);



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

	}

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



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

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

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

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

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

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

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

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

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

	sprintf(tmp[9],"%.2f",hj_sum[10]);



	dw_1.AddRow("","合  计",tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],tmp[5],tmp[6],tmp[7],tmp[8],tmp[9]);

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

	dw_1.Update();



    lpfree(lpdata,ret1);

	return 1;

}





int StatWnd::wf_sitedcdue_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[2000],*poutstr[1];

	int ret,ret1;

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

	strcpy(ls_start,NULL);

	strcpy(ls_end,NULL);



	float lde_charge=0.0,sum_amount=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( "收费支局", 20, 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, "			          " );

	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("PSSiteDcDue",instr,poutstr);



	if(ret < 0)

	{

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

		lpfree(poutstr,1);

		return -1;

	}



	if(ret==100)

	{

		lpfree(poutstr,1);

		MessageBox("提示",0,"没有找到应收数据记录!");

		return 0; 

	}



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

	lpfree(poutstr,1);



	dw_1.Update( true );

	dw_1.ClearList( false );



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

	{

	    j=i*col;

		

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

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

		sum_amount+=lde_charge;

		

		dw_1.AddRow("",lpdata[j],lsTemp);

	}

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

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

	dw_1.AddRow("","合计应收",lsTemp);



	dw_1.Update();

	lpfree(lpdata,ret1);

	return 1;

}





int StatWnd::wf_siteqf_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, "			          " );

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

	}



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

	{

		hj_sum[1]+=sum_fee[i][1];

		hj_sum[2]+=sum_fee[i][2];

		hj_sum[3]+=sum_fee[i][3];

		hj_sum[4]+=sum_fee[i][4];

		hj_sum[5]+=sum_fee[i][5];

		hj_sum[6]+=sum_fee[i][6];

		hj_sum[7]+=sum_fee[i][7];

		hj_sum[8]+=sum_fee[i][8];

		hj_sum[9]+=sum_fee[i][9];



		hj_sum[10]+=sum_amount[i];

	}



	dw_1.Update( true );

	dw_1.ClearList( false );

	

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

	dw_1.AddRow("","帐  期","月租费","区内通话","区间通话","长话通话","电报费","因特网费","新业务费","信息费","其它费","小  计");

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

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

	{

		sprintf(tmpid,"%ld",cycle_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_amount[i]);



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

	}

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



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

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

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

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

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

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

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

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

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

	sprintf(tmp[9],"%.2f",hj_sum[10]);



	dw_1.AddRow("","合  计",tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],tmp[5],tmp[6],tmp[7],tmp[8],tmp[9]);

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

	dw_1.Update();



    lpfree(lpdata,ret1);

	return 1;

}





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

//达州区乡收费限制

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

int gf_limit_dcpay(long acct_id)

{

	

	if(acct_id<20000000)

	{

		MessageBox( "提示",0,"该帐户属市局收费范围,区乡营业点不能进行处理!" );

		return 0;

	}

	else return 1;		

	

}



























⌨️ 快捷键说明

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