📄 salewin.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 + -