?? unit2.pas
字號(hào):
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文件關(guān)聯(lián)
vIniFile:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'Config.Ini');
//寫是否為注冊(cè)版本
if Pass.Key(vIniFile.Readstring('System','PCID',''))=vIniFile.Readstring('System','Key','') then
begin
Main.Label1.Caption:='網(wǎng)聯(lián)科技超市管理系統(tǒng)(已注冊(cè))';
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:='網(wǎng)聯(lián)科技超市管理系統(tǒng)(未注冊(cè))剩余'+D1+'天';
Main.SpeedButton2.Caption:='F12.軟件注冊(cè)';
//打開注冊(cè)窗口
// RegKey:=TRegKey.Create(Application);
// RegKey.showmodal;
end;
Main.Width:=798;//恢復(fù)主窗口大小
Main.Height:=571;//恢復(fù)主窗口大小
//使主窗口位于屏幕正中央
Main.Top :=(GetSystemMetrics(SM_CySCREEN)-Main.Height) div 2 - 13;
Main.Left :=(GetSystemMetrics(SM_CxSCREEN)-Main.Width) div 2;
//建立數(shù)據(jù)庫(kù)鏈接
Data:='Provider='+vIniFile.Readstring('System','Provider','')+';';
Data:=Data+'Data Source='+vIniFile.Readstring('System','Data Source','')+';';
Data:=Data+'Persist Security Info=False';
ADOConnection1.ConnectionString:=Data;
//初始單號(hào)
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;
//讀取單號(hào)
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('確認(rèn)退出嗎?',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.軟件注冊(cè)' then begin
//打開注冊(cè)窗口
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:='應(yīng)收:'+Label14.Caption+'元';
QRLabel8.Caption:='實(shí)收:'+Label15.Caption+'元';
QRLabel9.Caption:='找零:'+Label16.Caption+'元';
QRLabel10.Caption:='收款:'+Label19.Caption;
QRLabel11.Caption:='日期:'+FormatDateTime('dddddd tt', Now);
QRLabel12.Caption:='單號(hào):№'+Label26.Caption;
end;
procedure TMain.QH1;
begin
//計(jì)算合計(jì)數(shù)
//如果是贈(zèng)品小計(jì)為零
ADOQuery1.Edit;
if ADOQuery1.FieldByName('Gift').AsString='贈(zèng)品' then begin
ADOQuery1.FieldByName('Subtotal').AsCurrency := 0;
ADOQuery1.Post;
Exit;
end;
//單條記錄求合:小計(jì)=售價(jià)*數(shù)量*折扣/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
//數(shù)據(jù)檢查
try
StrToCurr(RzEdit1.Text);
Except
RzEdit1.Text:='100';
end;
try
StrToCurr(RzEdit3.Text);
Except
RzEdit3.Text:='1';
end;
//初始折扣和數(shù)量
RzEdit1.Text:='100';
RzEdit3.Text:='1';
//查銷售主庫(kù)是否有此單號(hào)
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;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -