📄 printdirectctl.cpp
字号:
// 结构赋值 (内部函数) 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 + -