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

📄 salewin.cpp

📁 金融pos机前台源码
💻 CPP
字号:
#include <graphics.h>
#include <string.h>
#include <stdlib.h>
#include <io.h>
#include "salegrid.h"
#include "salewin.h"
#include "han.h"
#include "def.h"
#include "sysinfo.h"

SaleWin::SaleWin()
{
	DrawOp(46);
	DrawSale(76);
	DrawSum(347);
	DrawPay(377);
	DrawInfo(426);
	DrawBack();

	//临时文件中最大单号。0表示没有。
	MaxCheck = 0;
	//当前单号。
	CheckNumber = 1;
}

SaleWin::~SaleWin()
{
	delete OpCode;
	delete OpName;
	delete OpTerm;

	if(sys->SalSW==L_YES)
	{
		delete SaleCode;
		delete SaleName;
		delete SaleGroup;
	}
	delete SeqNumber;

	delete TotalDisRate;
	delete AllDiscount;
	delete AllSum;

	delete ShouldPay;
	delete Get;
	delete Change;

	delete IsPrint;
	delete IsNetwork;
	delete IsSingle;
	delete IsSale;
	delete IsMail;
	delete IsGroupBy;
}

void
SaleWin::DrawBack()
{
	setviewport(0, 0, 639, 479, 1);
	//清除视口.
//	clearviewport();
	setcolor(15);
	//大边框.
	rectangle(0,0,639,479);
	//大边框1.
	rectangle(0,0,639,46);
	//标题边框.
//	rectangle(10, 4, 629, 42);
	//下标题框.
	rectangle(0, 450, 639, 479);
	//写下标题.
	han.Color = 7;
	han.Out(5, 457, "青 岛 黄 河 电 子 系 统 有 限 公 司   服务电话:0532-5813975");
	//写上标题.采用24点阵汉字输出.只能显示汉字.西文字符不支持.
	Out24((640 - strlen(sys->ScreenTitle)*30)/2, 11, sys->ScreenTitle);
}

//画操作员信息框及其控件.
void
SaleWin::DrawOp(int Top)
{
	//操作员信息框.
	setviewport(0, 0, 639, 479, 1);
	rectangle(0, Top, 639, Top + 30);

	//操作员编码框.
	setviewport(0, 0, 639, 479, 1);
	han.Color = 7;
	han.Out(8, Top + 7, "操作员");
	OpCode = new Edit(CreateRect(64, Top + 1, 80, 28));
	OpCode->SetBkColor(0);
	OpCode->SetColor(7);
	OpCode->SetFrameColor(0);
	OpCode->Show();

	//操作员姓名框.
	setviewport(0, 0, 639, 479, 1);
	han.Color = 7;
	han.Out(152, Top + 7, "姓  名");
	OpName = new Edit(CreateRect(208, Top + 1, 80, 28));
	OpName->SetBkColor(0);
	OpName->SetColor(7);
	OpName->SetFrameColor(0);
	OpName->Show();

	//操作员台号.
	setviewport(0, 0, 639, 479, 1);
	han.Color = 7;
	han.Out(296, Top + 7, "台  号");
	OpTerm = new Edit(CreateRect(352, Top + 1, 80, 28));
	OpTerm->SetBkColor(0);
	OpTerm->SetColor(7);
	OpTerm->SetFrameColor(0);
	OpTerm->Show();

}

//画营业员信息框及其控件.
void
SaleWin::DrawSale(int Top)
{
	//营业员信息框.
	setviewport(0, 0, 639, 479, 1);
	setfillstyle(SOLID_FILL, 7);
	bar(0, Top, 639, Top + 30);
	setcolor(15);
	rectangle(0, Top, 639, Top + 30);

	//营业员代码.
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	if(sys->SalSW==L_YES)
	{
		han.Out(8, Top + 7, "营业员");
		SaleCode = new Edit(CreateRect(64, Top + 1, 80, 28));
		SaleCode->SetBkColor(7);
		SaleCode->SetColor(0);
		SaleCode->SetFrameColor(7);
		SaleCode->Show();
	}

	//营业员姓名.
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	if(sys->SalSW==L_YES)
	{
		han.Out(152, Top + 7, "姓  名");
		SaleName = new Edit(CreateRect(208, Top + 1, 80, 28));
		SaleName->SetBkColor(7);
		SaleName->SetColor(0);
		SaleName->SetFrameColor(7);
		SaleName->Show();
	}

	//营业员台号.
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	if(sys->SalSW==L_YES)
	{
		han.Out(296, Top + 7, "柜组号");
		SaleGroup = new Edit(CreateRect(352, Top + 1, 80, 28));
		SaleGroup->SetBkColor(7);
		SaleGroup->SetColor(0);
		SaleGroup->SetFrameColor(7);
		SaleGroup->Show();
	}

	//交易流水号.
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	han.Out(496, Top + 7, "流水号");
	SeqNumber = new Edit(CreateRect(552, Top + 1, 80, 28));
	SeqNumber->SetBkColor(7);
	SeqNumber->SetColor(0);
	SeqNumber->SetFrameColor(7);
	SeqNumber->Show();
}

//画统计信息框及其控件.
void
SaleWin::DrawSum(int Top)
{
	//统计信息框。
	setviewport(0, 0, 639, 479, 1);
	setfillstyle(SOLID_FILL, 7);
	bar(0, Top, 639, Top + 30);
	setcolor(15);
	rectangle(0, Top, 639, Top + 30);

	//折扣率代码。
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	han.Out(8, Top + 7, "折扣率");
	TotalDisRate = new Edit(CreateRect(64, Top, 50, 30));
	TotalDisRate->SetBkColor(7);
	TotalDisRate->SetColor(0);
	TotalDisRate->SetFrameColor(15);
	TotalDisRate->Show();

	//整体折扣额。
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	han.Out(202, Top + 7, "折扣额");
	AllDiscount = new Edit(CreateRect(258, Top, 110, 30));
	AllDiscount->SetBkColor(7);
	AllDiscount->SetColor(0);
	AllDiscount->SetFrameColor(15);
	AllDiscount->Show();

	//总计额。
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	han.Out(465, Top + 7, "总计额");
	AllSum = new Edit(CreateRect(529, Top, 110, 30));
	AllSum->SetBkColor(7);
	AllSum->SetColor(0);
	AllSum->SetFrameColor(15);
	AllSum->Show();
}

void
SaleWin::DrawPay(int Top)
{
	//付款信息框。
	setviewport(0, 0, 639, 479, 1);
	setfillstyle(SOLID_FILL, 7);
	bar(0, Top, 639, Top + 49);
	setcolor(15);
	rectangle(0, Top, 639, Top + 49);

	//应付金额。
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	han.Out(8, Top + 16, "应  付");
	ShouldPay = new Edit(CreateRect(64, Top, 110, 49));
	ShouldPay->SetBkColor(7);
	ShouldPay->SetColor(0);
	ShouldPay->SetFrameColor(15);
	ShouldPay->Show();

	//实收金额。
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	han.Out(202, Top + 16, "实  收");
	Get = new Edit(CreateRect(258, Top, 110, 49));
	Get->SetBkColor(7);
	Get->SetColor(0);
	Get->SetFrameColor(15);
	Get->Show();

	//找零。
	setviewport(0, 0, 639, 479, 1);
	han.Color = 0;
	han.Out(465, Top + 16, "找  零");
	Change = new Edit(CreateRect(529, Top, 110, 49));
	Change->SetBkColor(7);
	Change->SetColor(0);
	Change->SetFrameColor(15);
	Change->Show();
}

//画状态信息框。
void
SaleWin::DrawInfo(int Top)
{
	//状态信息外框。
	setviewport(0, 0, 639, 479, 1);
	setfillstyle(SOLID_FILL, 0);
	bar(0, Top, 639, Top + 24);
	setcolor(15);
	rectangle(0, Top, 639, Top + 24);

	//打印开关。
	IsPrint = new Edit(CreateRect(40, Top + 1, 52, 22));
	IsPrint->SetBkColor(0);
	IsPrint->SetColor(7);
	IsPrint->SetFrameColor(0);
	IsPrint->SetText("打  印");
	IsPrint->Show();

	//网络状态。
	IsNetwork = new Edit(CreateRect(140, Top + 1, 52, 22));
	IsNetwork->SetBkColor(0);
	IsNetwork->SetColor(7);
	IsNetwork->SetFrameColor(0);
	if(sys->NetSW==L_NO)
	{
		IsNetwork->SetText("不联网");
	}
	else
	{
		IsNetwork->SetText("联  网");
	}
	IsNetwork->Show();

	//单笔。
	IsSingle = new Edit(CreateRect(240, Top + 1, 52, 22));
	IsSingle->SetBkColor(0);
	IsSingle->SetColor(7);
	IsSingle->SetFrameColor(0);
	IsSingle->SetText("单  笔");
	IsSingle->Show();

	//销售。
	IsSale = new Edit(CreateRect(340, Top + 1, 52, 22));
	IsSale->SetBkColor(0);
	IsSale->SetColor(7);
	IsSale->SetFrameColor(0);
	IsSale->SetText("销  售");
	IsSale->Show();

	//邮件。
	IsMail = new Edit(CreateRect(440, Top + 1, 52, 22));
	IsMail->SetBkColor(0);
	IsMail->SetColor(7);
	IsMail->SetFrameColor(0);
	IsMail->SetText("无邮件");
	IsMail->Show();

	//累加开关。
	IsGroupBy = new Edit(CreateRect(540, Top + 1, 52, 22));
	IsGroupBy->SetBkColor(0);
	IsGroupBy->SetColor(7);
	IsGroupBy->SetFrameColor(0);
	IsGroupBy->SetText("不累加");
	IsGroupBy->Show();
}

//从数据文件获得最大流水号.
long
SaleWin::GetSeqNum()
{
	char Buf[101], buf[10];
	char *temp;
	FILE *fp;
	//打开汇总文件.如果文件不存在,返回流水号1.
	if((fp=fopen(".\\data\\total.dat","rb")) == NULL)
	{
		fclose(fp);
		return 1L;
	}
	//定位最后一条记录.
	fseek(fp, filelength(fileno(fp)) - 100, 0);
	fread(Buf, 100, 1, fp);
	temp = Buf;
	//定位流水号.
	temp += 23;
	strncpy(buf, temp, 6);
	fclose(fp);
	//返回流水号.
	return atol(buf) + 1L;
}

⌨️ 快捷键说明

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