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

📄 unit2.pas

📁 该系统是基于Dephli的开发出来的
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -