📄 unit2.pas
字号:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons, StdCtrls, Grids, DBGrids, DB, ADODB, INIFiles,
RzForms, RzStatus, Mask, RzEdit, QRCtrls, QuickRpt, Registry, DBTables;
type
TMain = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
SpeedButton1: TSpeedButton;
Label1: TLabel;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
ADOQuery2: TADOQuery;
RzFormShape1: TRzFormShape;
SpeedButton2: TSpeedButton;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label5: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Bevel1: TBevel;
Label17: TLabel;
Bevel2: TBevel;
Bevel3: TBevel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Bevel4: TBevel;
RzEdit1: TRzEdit;
RzEdit2: TRzEdit;
RzEdit3: TRzEdit;
Label23: TLabel;
Label24: TLabel;
Label27: TLabel;
Label22: TLabel;
Label25: TLabel;
Label26: TLabel;
Label28: TLabel;
Label29: TLabel;
Panel5: TPanel;
QuickRep1: TQuickRep;
DetailBand1: TQRBand;
QRDBText1: TQRDBText;
QRExpr1: TQRExpr;
QRExpr2: TQRExpr;
QRExpr3: TQRExpr;
PageHeaderBand1: TQRBand;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRShape2: TQRShape;
QRShape1: TQRShape;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
SummaryBand1: TQRBand;
QRLabel7: TQRLabel;
QRShape7: TQRShape;
QRLabel9: TQRLabel;
QRLabel8: TQRLabel;
QRLabel10: TQRLabel;
QRLabel12: TQRLabel;
QRLabel11: TQRLabel;
QRLabel13: TQRLabel;
QRShape8: TQRShape;
QRLabel14: TQRLabel;
Label30: TLabel;
QRShape3: TQRShape;
QRShape6: TQRShape;
QRShape5: TQRShape;
QRShape4: TQRShape;
ADOConnection1: TADOConnection;
ADOQuery3: TADOQuery;
RzEdit4: TRzEdit;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure QuickRep1StartPage(Sender: TCustomQuickRep);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure RzEdit1KeyPress(Sender: TObject; var Key: Char);
procedure RzEdit3KeyPress(Sender: TObject; var Key: Char);
procedure RzEdit2KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure RzEdit4KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
procedure QH1;
procedure WRecord;
procedure QH2;
{ Public declarations }
end;
var
Main: TMain;
implementation
uses Unit1, Unit3, Unit4, Unit5, Unit10, Unit7;
{$R *.dfm}
procedure TMain.FormCreate(Sender: TObject);
var
vIniFile : TIniFile;
Reg : TRegistry;
D1, Data, SID : String;
i : Integer;
begin
//建立INI文件关联
vIniFile:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'Config.Ini');
//写是否为注册版本
if Pass.Key(vIniFile.Readstring('System','PCID',''))=vIniFile.Readstring('System','Key','') then
begin
Main.Label1.Caption:='网联科技超市管理系统(已注册)';
end
else
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('Software\WL',True);
D1:=CurrToStr(44-(StrToDate(FormatdateTime('yyyy-mm-dd', Now))-StrToDate(Reg.ReadString('Date'))));
Main.Label1.Caption:='网联科技超市管理系统(未注册)剩余'+D1+'天';
Main.SpeedButton2.Caption:='F12.软件注册';
//打开注册窗口
// RegKey:=TRegKey.Create(Application);
// RegKey.showmodal;
end;
Main.Width:=798;//恢复主窗口大小
Main.Height:=571;//恢复主窗口大小
//使主窗口位于屏幕正中央
Main.Top :=(GetSystemMetrics(SM_CySCREEN)-Main.Height) div 2 - 13;
Main.Left :=(GetSystemMetrics(SM_CxSCREEN)-Main.Width) div 2;
//建立数据库链接
Data:='Provider='+vIniFile.Readstring('System','Provider','')+';';
Data:=Data+'Data Source='+vIniFile.Readstring('System','Data Source','')+';';
Data:=Data+'Persist Security Info=False';
ADOConnection1.ConnectionString:=Data;
//初始单号
for i:=1 to 9999 do
begin
SID:=FormatdateTime('yymmdd', Now)+FormatFloat('0000',i);
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('Select * from Sell_Main Where InvoiceID="'+SID+'"');
ADOQuery2.Open;
if ADOQuery2.RecordCount=0 then
begin
Break;
end;
end;
//读取单号
Label26.Caption:=SID;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from Sell_Minor Where InvoiceID="'+Label26.Caption+'"');
ADOQuery1.Open;
QH2;
end;
procedure TMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if messagedlg('确认退出吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
Application.Terminate
else
Action:=caNone;
end;
procedure TMain.SpeedButton1Click(Sender: TObject);
begin
Main.Close;
end;
procedure TMain.SpeedButton2Click(Sender: TObject);
begin
if SpeedButton2.Caption='F12.软件注册' then begin
//打开注册窗口
RegKey:=TRegKey.Create(Application);
RegKey.showmodal;
end else begin
//使主窗口位于屏幕正中央
Main.Top :=(GetSystemMetrics(SM_CySCREEN)-Main.Height) div 2 - 13;
Main.Left :=(GetSystemMetrics(SM_CxSCREEN)-Main.Width) div 2;
end;
end;
procedure TMain.QuickRep1StartPage(Sender: TCustomQuickRep);
var
vIniFile: TIniFile;
begin
vIniFile:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'Config.Ini');
QRLabel1.Caption:=viniFile.ReadString('System','Name','');
QRLabel2.Caption:=viniFile.ReadString('System','La1','');
QRLabel13.Caption:='电话:'+viniFile.ReadString('System','TEL','');
QRLabel14.Caption:=viniFile.ReadString('System','La2','');
QRLabel7.Caption:='应收:'+Label14.Caption+'元';
QRLabel8.Caption:='实收:'+Label15.Caption+'元';
QRLabel9.Caption:='找零:'+Label16.Caption+'元';
QRLabel10.Caption:='收款:'+Label19.Caption;
QRLabel11.Caption:='日期:'+FormatDateTime('dddddd tt', Now);
QRLabel12.Caption:='单号:№'+Label26.Caption;
end;
procedure TMain.QH1;
begin
//计算合计数
//如果是赠品小计为零
ADOQuery1.Edit;
if ADOQuery1.FieldByName('Gift').AsString='赠品' then begin
ADOQuery1.FieldByName('Subtotal').AsCurrency := 0;
ADOQuery1.Post;
Exit;
end;
//单条记录求合:小计=售价*数量*折扣/100
ADOQuery1.FieldByName('Subtotal').AsCurrency := ADOQuery1.FieldByName('SellPrice').AsCurrency*
ADOQuery1.FieldByName('SellScalar').AsCurrency*
ADOQuery1.FieldByName('Agio').AsCurrency/100;
ADOQuery1.Post;
end;
procedure TMain.WRecord;
begin
//数据检查
try
StrToCurr(RzEdit1.Text);
Except
RzEdit1.Text:='100';
end;
try
StrToCurr(RzEdit3.Text);
Except
RzEdit3.Text:='1';
end;
//初始折扣和数量
RzEdit1.Text:='100';
RzEdit3.Text:='1';
//查销售主库是否有此单号
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add('Select * from Sell_Main Where InvoiceID="'+Label26.Caption+'"');
ADOQuery3.Open;
if ADOQuery3.RecordCount=0 then begin
ADOQuery3.Edit;
ADOQuery3.Append;
ADOQuery3.FieldByName('InvoiceID').AsString := Label26.Caption;
ADOQuery3.FieldByName('AR').AsString := Label7.Caption;
ADOQuery3.FieldByName('Hang').AsBoolean := False;
ADOQuery3.FieldByName('Hang').AsBoolean := False;
ADOQuery3.FieldByName('SellDate').AsString := FormatdateTime('yyyy-mm-dd hh:mm:ss', Now);
ADOQuery3.FieldByName('UserName').AsString := Label19.Caption;
ADOQuery3.Post;
end;
//填扫描记录
ADOQuery1.Edit;
ADOQuery1.Append;
ADOQuery1.FieldByName('InvoiceID').AsString := Label26.Caption;
ADOQuery1.FieldByName('BarCode').AsString := ADOQuery2.FieldByName('BarCode').AsString;
ADOQuery1.FieldByName('GoodsName').AsString := ADOQuery2.FieldByName('GoodsName').AsString;
ADOQuery1.FieldByName('Unit').AsString := ADOQuery2.FieldByName('Unit').AsString;
ADOQuery1.FieldByName('SellScalar').AsString := RzEdit3.Text;
ADOQuery1.FieldByName('Agio').AsString := RzEdit1.Text;
ADOQuery1.FieldByName('PurchasePrice').AsString := ADOQuery2.FieldByName('PurchasePrice').AsString;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -