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

📄 print.cpp

📁 POS前台C++程序
💻 CPP
字号:
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <io.h>
#include "salewin.h"
#include "def.h"
#include "sysinfo.h"

//打印标题。
void
SaleWin::PrintTitle()
{
	//如果存在文本才进行打印。
	if(strlen(sys->CheckTitle1)>0)
	{
		PrOut(sys->CheckTitle1);
		PrOut("\n");
	}
	if(strlen(sys->CheckTitle2)>0)
	{
		PrOut(sys->CheckTitle2);
		PrOut("\n");
	}
	if(strlen(sys->CheckTitle3)>0)
	{
		PrOut(sys->CheckTitle3);
		PrOut("\n");
	}
}

//打印尾标题。
void
SaleWin::PrintTail()
{
	PrOut("---------------------------------------\n");
	//如果存在文本才进行打印。
	if(strlen(sys->CheckTail1)>0)
	{
		PrOut(sys->CheckTail1);
		PrOut("\n");
	}
	if(strlen(sys->CheckTail2)>0)
	{
		PrOut(sys->CheckTail2);
		PrOut("\n");
	}
	if(strlen(sys->CheckTail3)>0)
	{
		PrOut(sys->CheckTail3);
		PrOut("\n");
	}
	PrOut("\n");
	PrOut("\n");
	PrOut("\n");
	PrOut("\n");
	PrOut("\n");
}

//打印销售数据。
void
SaleGrid::PrintSale(char *tmp)
{
	char temp[30], temp1[30];
	if(atof(Data[7])>0)
	{
		strcpy(tmp, "销:<");
	}
	else if(atof(Data[7])<0)
	{
		strcpy(tmp, "  退:<");
	}
	else
	{
		return;
	}
	strcpy(temp, Data[1]);
	strcpy(temp1, Trim(temp));
	strcat(tmp, temp1);
	strcat(tmp, ">");
	strcpy(temp, Data[2]);
	strcpy(temp1, Trim(temp));
	strcat(tmp, temp1);
	strcat(tmp, " ");
	sprintf(temp, "%0.2f", atof(Data[3]));
	strcat(tmp, temp);
	strcat(tmp, "*");
	sprintf(temp, "%0.2f", atof(Data[4]));
	strcat(tmp, temp);
	sprintf(temp, "%0.2f", atof(Data[3])*atof(Data[4]));
	if(atof(temp) != atof(Data[7]))
	{
		strcat(tmp, "-");
		sprintf(temp, "%0.2f", atof(Data[3])*atof(Data[4]) - atof(Data[7]));
		strcat(tmp, temp);
	}
	strcat(tmp, "=");
	sprintf(temp, "%0.2f\n", atof(Data[7]));
	strcat(tmp, temp);
	system(".\\smartdrv /c");
}

//打印退货数据。
void
SaleGrid::PrintEject(char *tmp)
{
	//如果是最后一行,直接返回.
	if(Row >= Rows - 1)
	{
		strcpy(tmp, "");
		return;
	}
	char temp[30];
	strcpy(tmp, "  退:<");
	strcpy(temp, Data[1]);
	Trim(temp);
	strcat(tmp, temp);
	strcat(tmp, ">");
	strcpy(temp, Data[2]);
	Trim(temp);
	strcat(tmp, temp);
	strcat(tmp, " ");
	sprintf(temp, "-(%0.2f", atof(Data[3]));
	strcat(tmp, temp);
	strcat(tmp, "*");
	sprintf(temp, "%0.2f", atof(Data[4]));
	strcat(tmp, temp);
	sprintf(temp, "%0.2f", atof(Data[3])*atof(Data[4]));
	if(atof(temp) != atof(Data[7]))
	{
		strcat(tmp, "-");
		sprintf(temp, "%0.2f", atof(Data[3])*atof(Data[4]) - atof(Data[7]));
		strcat(tmp, temp);
	}
	strcat(tmp, ")=");
	sprintf(temp, "-%0.2f\n", atof(Data[7]));
	strcat(tmp, temp);
}

//打印小票头部信息。
void
SaleWin::PrintHeadInfo()
{
	char temp[14],temp1[100];
	PrOut("=======================================\n");
	//收款台。
	sprintf(temp, "%3s", sys->TermID);
	strcpy(temp1, temp);
	strcat(temp1, "-");
	//收款员。
	sprintf(temp, "%05ld", atol(OpCode->Text()));
	strcat(temp1, temp);
	strcat(temp1, "-");
	//流水号。
	sprintf(temp, "%06ld", atol(SeqNumber->Text()));
	strcat(temp1, temp);
	//营业员。
	if(sys->SalSW == L_YES)
	{
		strcat(temp1, "-");
		sprintf(temp, "%05ld", atol(SaleCode->Text()));
		strcat(temp1, temp);
		strcat(temp1, "-");
		sprintf(temp, "%06ld", atol(SaleGroup->Text()));
		strcat(temp1, temp);
	}
	strcat(temp1, "-");
	sprintf(temp, "%10s\n", GetDate());
	strcat(temp1, temp);
	PrOut(temp1);
	PrOut("\n");
//	PrOut("---------------------------------------\n");
}

//打印应付金额。
void
SaleWin::PrintCheckOut()
{
	//缓冲中的数据.
	struct FDATA data;
	FILE *fp;
	//打开文件.
	if((fp = fopen(".\\Gridtemp.$$$","rb")) == NULL)
	{
		return;
	}
	//定位文件指针到最开始.
	fseek(fp, filelength(fileno(fp)) - sizeof(FDATA), 0);
	//从文件读取数据.
	if(fread(&data, sizeof(FDATA), 1, fp) == 0)
	{
		fclose(fp);
		return;
	}
	//关闭文件.
	fclose(fp);
	//以上从获取文件中最后一个时间.

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

	char temp[30],temp1[120];
//	PrOut("---------------------------------------\n");
	PrOut("\n");
	sprintf(temp, "<结帐>单号:%02d, ", data.CheckNum);
	strcpy(temp1, temp);
	strcat(temp1, "结帐时间:");
	strcat(temp1, data.Time);
	strcat(temp1, "\n");
	PrOut(temp1);
	PrOut("---------------------------------------\n");
	strcpy(temp1, "");
	sprintf(temp, "    总  计:%12.2f ", atof(AllSum->Text())+atof(AllDiscount->Text()));
	strcat(temp1, temp);
	sprintf(temp, "折扣:%10.2f\n", atof(AllDiscount->Text()));
	strcat(temp1, temp);
	sprintf(temp, "    应  付:%12.2f\n", atof(AllSum->Text()));
	strcat(temp1, temp);
	strcat(temp1, "------------------------\n");
	PrOut(temp1);
}

//打印多单小结
void
SaleWin::PrintMulCheck()
{
	//缓冲中的数据.
	struct FDATA data;
	FILE *fp;
	//打开文件.
	if((fp = fopen(".\\Gridtemp.$$$","rb")) == NULL)
	{
		return;
	}
	//定位文件指针到最开始.
	fseek(fp, filelength(fileno(fp)) - sizeof(FDATA), 0);
	//从文件读取数据.
	if(fread(&data, sizeof(FDATA), 1, fp) == 0)
	{
		fclose(fp);
		return;
	}
	//关闭文件.
	fclose(fp);

	//以上从获取文件中最后一个时间.
	char temp[30],temp1[120];
//	PrOut("---------------------------------------\n");
	PrOut("\n");
	
	sprintf(temp, 		"<小结>单号:%02d, ", data.CheckNum);
	strcpy(temp1, 		temp);
	strcat(temp1,		"小结时间:");
	strcat(temp1, 		data.Time);
	strcat(temp1, 		"\n");
	PrOut(temp1);

	//打印单小计金额.
	sprintf(temp, 		"小计:%0.2f", atof(TPref->Text())+atof(TSum->Text()));
	strcpy(temp1, 		temp);
	sprintf(temp, 		"折扣:%0.2f", atof(TPref->Text()));
	strcat(temp1, 		temp);
	sprintf(temp, 		"应付:%0.2f\n", atof(TSum->Text()));
	strcat(temp1, 		temp);
	PrOut(temp1);
//	PrOut("---------------------------------------\n");
	PrOut("\n");

}

⌨️ 快捷键说明

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