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

📄 printdirectctl.cpp

📁 直接控制端口打印的MFC控件程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//  结构赋值 (内部函数)			B/S									   //
//																		   //
//  参数值:int 4 个字节长度 (打印设备资源句柄)	PrintHandle				   //																   //
//																		   //
//			字符串, 打印数据。列分割符号 "@",行分隔符 "*"  szInputData  //	 			   //
//					 sdfgsdg@sdfgsdgfsdfg@sdfgsdfg*					   //
//			Lines: 结构的数组个数,打印多少行							   //
//			BBFlag:  报表标志不同代表不同的报表							   //
//					 1:	养路费征收情况分析表							   //
//					 2:													   //
//	返回值:int 4 个字节长度 (打印信息返回码)							   //
//																		   //
//			= 0 ---  错误 ;												   //
//			> 0 ---  正确												   //					   //
//																		   //
/***************************************************************************/

long CPrintDirectCtrl::SetStructData(LPCTSTR szInputData, int BBFlag)
{
	//struYLF_FX
	int nRet = -1 ;
	int i = 0 ,j = 0 ,k = 0 ,l = 0 ;
	int nCount = 0 ;

	nCount = strlen(szInputData);
	if ( nCount <=0 && nCount > 50000 )
		return -1;

/*	// 初始化结构
	for ( i = 0 ;i < 50 ;i++ )
	{
		ZeroMemory( struYLF_FX, 50 * sizeof(YLF_FX) );

	}
*/
	// 初始化数组
	for ( i = 0 ; i< 50 ; i++ )
	{
		for( j = 0 ; j < 50 ; j ++ ) 
		{
			szPrintData[i][j] = new char[100];		// 每一个字段的最大字符数
			strcpy( szPrintData[i][j], "");
		}
	}
	// 字符串处理
	i = 0 ; j = 0 ; l = 0 ;
	for ( k = 0 ; k< nCount ; k++ )
	{
		switch ( *(szInputData + k)	)
		{
			case '@':
				*(szPrintData[i][j] + l ) = '\0';
				l = 0 ;
				j++;
				break;

			case '*' : 
				*(szPrintData[i][j] + l ) = '\0';
				Cols[i] = j+1;
				l = 0 ;
				j = 0 ;
				i++;
				
				break;

			default:
				*(szPrintData[i][j] + l ) = *(szInputData + k);
				l++;
				break;

		}
	
		
	}
	
	Lines = i +1;

	return 1 ;

}

/***************************************************************************/
//																		   //
//  打印  "养路费车辆动态情况表"	B/S									   //
//																		   //
//  参数值:int 4 个字节长度 (打印设备资源句柄)	PrintHandle				   //
//																		   //
//			字符串, 打印数据。列分割符号 "@",行分隔符 "*"	PrintData  //
//																		   //
//	返回值:int 4 个字节长度 (打印信息返回码)							   //
//																		   //
//			= 0 ---  错误 ;												   //
//			> 0 ---  正确												   //
//																		   //
/***************************************************************************/

long CPrintDirectCtrl::PrintYLFCLDTQKB(long PrintHandle, LPCTSTR PrintData) 
{
	// ─ ━│┃┄ ┅┆┇┈ ┉┊┋┛┚┙┘┗┖┕└ ┓┒┑┐
	//
	//┏┎┍┌├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱
	//
	// ┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋

/*	int nRet = -1 ;	
	int i = 0 , j = 0 ;
	

	// 行数据
	char LineData[1024];

	HANDLE hHandle = NULL ;
	hHandle = (HANDLE) PrintHandle;

	if ( PrintHandle <= 0 )			// 非法的设备句柄
		return -11 ;

	DWORD t1,dwRead;
	DWORD dwError ;
	COMSTAT t2;

	// 结构和数组赋值
	nRet = CPrintDirectCtrl::SetStructData( PrintData, 1) ;

	if ( nRet < 0  )
		return  nRet ;


	//**********************************************************************
	//  开始打印数据
	//	char *szPrintData[50][50] ;
	//  int Lines ;
	//  int Cols[50];
	//  标题 "养路费车辆动态情况表"
	
	strcpy( LineData,  CPrintDirectCtrl::szSpaceData(20) ) ;
	strcat( LineData,  "养 路 费 车 辆 动 态 情 况 表 ") ;

	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 30, 0) ;


	// 表一(表头)
	// 画表格顶线
	strcpy( LineData, "┏━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┃                ┃        月初数        ┃      本月增加数      ┃      本月减少数      ┃      本月特减数      ┃      月末合计数      ┃") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┃    车辆类别    ┣━━━━━┳━━━━━╋━━━━━┳━━━━━╋━━━━━┳━━━━━╋━━━━━┳━━━━━╋━━━━━┳━━━━━┫") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┃                ┃  车辆数  ┃  吨位数  ┃  车辆数  ┃  吨位数  ┃  车辆数  ┃  吨位数  ┃  车辆数  ┃  吨位数  ┃  车辆数  ┃  吨位数  ┃") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┣━━━━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━┫") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	// 循环计算

	for ( i = 0 ; i < Lines -1 ; i ++ )		// 行
	{

		strcpy( LineData, "┃") ;
		for ( j = 0 ; j < Cols[i] ; j ++ )
		{
			if ( j == 0 ) 
			{
				strcat( LineData, CPrintDirectCtrl::szSpaceData(6) ) ;
				strcat( LineData, szPrintData[i][j]) ;
				strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[i][j]) )) ;
				
			}
			else
			{
				strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[i][j]) )) ;
				strcat( LineData, szPrintData[i][j]) ;
			}
			

			strcat( LineData, "┃") ;
		}

		CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

		if ( i == (Lines - 2) )			// 最后一条底线
		{
			strcpy( LineData, "┗━━━━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┛") ;
		}
		else
		{
			strcpy( LineData, "┣━━━━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━┫") ;	
		}

		CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;
	
	}
*/
	return 0;
}

/***************************************************************************/
//																		   //
//  打印  "票据情况汇总表"	B/S											   //
//																		   //
//  参数值:int 4 个字节长度 (打印设备资源句柄)	PrintHandle				   //
//																		   //
//			字符串, 打印数据。列分割符号 "@",行分隔符 "*"	PrintData  //
//																		   //
//	返回值:int 4 个字节长度 (打印信息返回码)							   //
//																		   //
//			= 0 ---  错误 ;												   //
//			> 0 ---  正确												   //
//																		   //
/***************************************************************************/

long CPrintDirectCtrl::PrintPJQKHZB(long PrintHandle, LPCTSTR PrintData) 
{
	// ─ ━│┃┄ ┅┆┇┈ ┉┊┋┛┚┙┘┗┖┕└ ┓┒┑┐
	//┏┎┍┌├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱
	// ┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋
/*
	int nRet = -1 ;	
	int i = 0 , j = 0 ;
	
	// 行数据
	char LineData[1024];

	HANDLE hHandle = NULL ;
	hHandle = (HANDLE) PrintHandle;

	if ( PrintHandle <= 0 )			// 非法的设备句柄
		return -11 ;

	DWORD t1,dwRead;
	DWORD dwError ;
	COMSTAT t2;

	// 结构和数组赋值
	nRet = CPrintDirectCtrl::SetStructData( PrintData, 1) ;

	if ( nRet < 0  )
		return  nRet ;



	//**********************************************************************
	//  开始打印数据
	//	char *szPrintData[50][50] ;
	//  int Lines ;
	//  int Cols[50];
	//  标题 "票据情况汇总表"
	
	strcpy( LineData,  CPrintDirectCtrl::szSpaceData(20) ) ;
	strcat( LineData,  "票 据 情 况 汇 总 表 ") ;

	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 30, 0) ;
	
	// 填报单位
	if ( Cols[0] < 2 ) 
		return -21;
	strcpy( LineData, "填报单位: ") ;
	strcat( LineData, szPrintData[0][0]) ;

	strcat( LineData, CPrintDirectCtrl::szSpaceData(60 - strlen(szPrintData[0][0]) ) ) ;
	strcat( LineData, szPrintData[0][1]) ;
	strcat( LineData, CPrintDirectCtrl::szSpaceData(20 ) ) ;
	strcat( LineData, "征收 03 表") ;
			
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;
	
	// ─ ━│┃┄ ┅┆┇┈ ┉┊┋┛┚┙┘┗┖┕└ ┓┒┑┐┏┎┍┌├┝┞┟┠┡┢
	//
	//┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋

	
	// 表一(表头)
	// 画表格顶线
	strcpy( LineData, "┏━┳━━━━━━━━━━━━┳━┳━━━━┳━━━━┳━━━━━━━━━━━━━━━━━┳━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┓") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┃种┃                        ┃单┃        ┃        ┃         本  月  缴  销           ┃        ┃                 收  入  分  解                   ┃") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┃  ┃     票  据  名  称     ┃  ┃上月结存┃本月领取┣━━━┳━━━┳━━━┳━━━━━┫月末结存┣━━━━━━━┳━━━━━┳━━━━━┳━━━━━┫") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┃类┃                        ┃位┃        ┃        ┃ 缴销 ┃ 作废 ┃ 上缴 ┃  金额/元 ┃        ┃     项目     ┃ 本地收入 ┃本地收外地┃外地收本地┃") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┣━╋━━━━━━━━━━━━╋━╋━━━━╋━━━━╋━━━╋━━━╋━━━╋━━━━━╋━━━━╋━━━━━━━╋━━━━━╋━━━━━╋━━━━━┫") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	// 数据(第一行)

	strcpy( LineData, "┃  ┃汽车月份缴讫证          ┃号┃") ;
	strcat( LineData, CPrintDirectCtrl::szSpaceData(8 - strlen(szPrintData[1][0]) ) ) ;
	strcat( LineData, szPrintData[1][0]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(8 - strlen(szPrintData[1][1]) ) ) ;
	strcat( LineData, szPrintData[1][1]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(6 - strlen(szPrintData[1][2]) ) ) ;
	strcat( LineData, szPrintData[1][2]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(6 - strlen(szPrintData[1][3]) ) ) ;
	strcat( LineData, szPrintData[1][3]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(6 - strlen(szPrintData[1][4]) ) ) ;
	strcat( LineData, szPrintData[1][4]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[1][5]) ) ) ;
	strcat( LineData, szPrintData[1][5]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(8 - strlen(szPrintData[1][6]) ) ) ;
	strcat( LineData, szPrintData[1][6]) ; 


	strcat( LineData, "┃ 前期预收本月 ┃") ;

	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[1][7]) ) ) ;
	strcat( LineData, szPrintData[1][7]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[1][8]) ) ) ;
	strcat( LineData, szPrintData[1][8]) ; 
	strcat( LineData, "┃");	
	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[1][9]) ) ) ;
	strcat( LineData, szPrintData[1][9]) ;
	strcat( LineData, "┃");	
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┃  ┣━━━━━━━━━━━━╋━╋━━━━╋━━━━╋━━━╋━━━╋━━━╋━━━━━╋━━━━╋━━━━━━━╋━━━━━╋━━━━━╋━━━━━┫") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;


	// 数据(第二行)

	strcpy( LineData, "┃  ┃汽车月份缴讫证(银行代收)┃号┃") ;
	strcat( LineData, CPrintDirectCtrl::szSpaceData(8 - strlen(szPrintData[2][0]) ) ) ;
	strcat( LineData, szPrintData[2][0]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(8 - strlen(szPrintData[2][1]) ) ) ;
	strcat( LineData, szPrintData[2][1]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(6 - strlen(szPrintData[2][2]) ) ) ;
	strcat( LineData, szPrintData[2][2]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(6 - strlen(szPrintData[2][3]) ) ) ;
	strcat( LineData, szPrintData[2][3]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(6 - strlen(szPrintData[2][4]) ) ) ;
	strcat( LineData, szPrintData[2][4]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[2][5]) ) ) ;
	strcat( LineData, szPrintData[2][5]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(8 - strlen(szPrintData[2][6]) ) ) ;
	strcat( LineData, szPrintData[2][6]) ; 


	strcat( LineData, "┃ 本月预收收入 ┃") ;

	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[2][7]) ) ) ;
	strcat( LineData, szPrintData[2][7]) ; 
	strcat( LineData, "┃");	
	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[2][8]) ) ) ;
	strcat( LineData, szPrintData[2][8]) ; 
	strcat( LineData, "┃");	
	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[2][9]) ) ) ;
	strcat( LineData, szPrintData[2][9]) ;
	strcat( LineData, "┃");	
	// 写入行
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;

	strcpy( LineData, "┃  ┣━━━━━━━━━━━━╋━╋━━━━╋━━━━╋━━━╋━━━╋━━━╋━━━━━╋━━━━╋━━━━━━━╋━━━━━╋━━━━━╋━━━━━┫") ;
	CPrintDirectCtrl::PrintOneLine( PrintHandle, LineData, 26, 1) ;


	// 数据(第三行)

	strcpy( LineData, "┃  ┃临时月份缴讫证          ┃号┃") ;
	strcat( LineData, CPrintDirectCtrl::szSpaceData(8 - strlen(szPrintData[3][0]) ) ) ;
	strcat( LineData, szPrintData[3][0]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(8 - strlen(szPrintData[3][1]) ) ) ;
	strcat( LineData, szPrintData[3][1]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(6 - strlen(szPrintData[3][2]) ) ) ;
	strcat( LineData, szPrintData[3][2]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(6 - strlen(szPrintData[3][3]) ) ) ;
	strcat( LineData, szPrintData[3][3]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(6 - strlen(szPrintData[3][4]) ) ) ;
	strcat( LineData, szPrintData[3][4]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[3][5]) ) ) ;
	strcat( LineData, szPrintData[3][5]) ; 
	strcat( LineData, "┃");
	strcat( LineData, CPrintDirectCtrl::szSpaceData(8 - strlen(szPrintData[3][6]) ) ) ;
	strcat( LineData, szPrintData[3][6]) ; 


	strcat( LineData, "┃   本月收入   ┃") ;

	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[3][7]) ) ) ;
	strcat( LineData, szPrintData[3][7]) ; 
	strcat( LineData, "┃");	
	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[3][8]) ) ) ;
	strcat( LineData, szPrintData[3][8]) ; 
	strcat( LineData, "┃");	
	strcat( LineData, CPrintDirectCtrl::szSpaceData(10 - strlen(szPrintData[3][9]) ) ) ;
	strcat( LineData, szPrintData[3][9]) ;
	strcat( LineData

⌨️ 快捷键说明

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