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

📄 syjk1.pas

📁 思微POS连锁超市管理系统 (商业代码),几年前的东西了
💻 PAS
字号:
unit syjk1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, EHGrids, DBGridEh, DBTables, StdCtrls, ExtCtrls;

type
  Tsyjk = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    DBGridEh1: TDBGridEh;
    Table1fkfsname: TStringField;
    Table1fkje: TCurrencyField;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Table1fkfsid: TStringField;
    Query1: TQuery;
    Table2: TTable;
    Table3: TTable;
    Table4: TTable;
    Table1yn_ce: TStringField;
    Panel1: TPanel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Table5: TTable;
    Table6: TTable;
    procedure Table1BeforeScroll(DataSet: TDataSet);
    procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Table1BeforeEdit(DataSet: TDataSet);
    procedure Table1AfterPost(DataSet: TDataSet);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    jet: real;
    { Public declarations }
  end;

var
  syjk: Tsyjk;

implementation

uses main1, hyk1, print1;

{$R *.DFM}

procedure Tsyjk.Table1BeforeScroll(DataSet: TDataSet);
begin
  if Table1.Eof = true then
    PostMessage(DBGridEh1.Handle, WM_KEYDOWN, 38, 0);
end;

procedure Tsyjk.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var dh, bb: string;
label aa;
begin
  if key = 27 then close;
  if key = 13 then
  begin
    try
      Table1.Post;
    except
    end;
  end;
  if key = 120 then
  begin
    if strtofloat(Label8.Caption) > 0 then
    begin
      Application.MessageBox('尚有欠款,不能进行交易!', '提示', MB_OK + MB_ICONWARNING);
      exit;
    end;
    pnt.Button6.Click;
    dh := Main.StatusBar1.Panels[11].Text;
    aa:
      try
      if Main.StatusBar1.Panels[9].text = '会员' then Table5.AppendRecord([hyk.Edit1.text, dh]);
      Table2.AppendRecord([Main.StatusBar1.panels[1].Text,
        Main.StatusBar1.panels[6].Text, dh, datetostr(now),
          Main.StatusBar1.panels[3].Text,
          Label2.Caption, Label10.Caption, formatdatetime('hh', now())]);
    except
      dh := floattostr(strtofloat(dh) + 1);
      bb := '1';
    end;
    if bb = '1' then
     begin
      bb:='2';
      goto aa;
     end;
    Table2.Last;
    Main.Table1.First;
    while not Main.Table1.Eof do
    begin
      Table3.AppendRecord([Table2.fieldbyname('xsid').asstring,
        Main.Table1.fieldbyname('spcode').asstring,
          Main.Table1.fieldbyname('dj').asstring,
          Main.Table1.fieldbyname('sl').asstring,
          Main.Table1.fieldbyname('je').asstring,
          Main.Table1.fieldbyname('zk').asstring,
          Main.Table1.fieldbyname('zkje').asstring, datetostr(now),
          Main.Table1.fieldbyname('sfcx').asstring, nil]);
      Main.Table1.Next;
    end;
    Main.Label7.Caption := Label4.Caption;
    Table1.First;
    if strtofloat(Label2.Caption) < 0 then
    begin
      Query1.close;
      Query1.sql.clear;
      Query1.sql.add('insert into sybjb(skyid,fkfsid,fkje)');
      Query1.sql.add('values (:skyid,:fkfsid,:fkje)');
      Query1.ParamByName('skyid').asstring := Main.StatusBar1.panels[3].Text;
      Query1.ParamByName('fkfsid').asstring := Table1.fieldbyname('fkfsid').asstring;
      Query1.ParamByName('fkje').asstring := Label2.Caption;
      Query1.ExecSQL;
      Table4.AppendRecord([Main.StatusBar1.panels[1].Text,
        Main.StatusBar1.panels[6].Text, datetostr(now),
          Table2.fieldbyname('xsid').asstring,
          Table1.fieldbyname('fkfsid').asstring,
          Label2.Caption]);
    end;
    while not Table1.Eof do
    begin
      if Table1.FieldByName('fkje').asfloat > 0 then
      begin
        if Table1.FieldByName('yn_ce').asstring = '是' then
          Table4.AppendRecord([Main.StatusBar1.panels[1].Text,
            Main.StatusBar1.panels[6].Text, datetostr(now),
              Table2.fieldbyname('xsid').asstring,
              Table1.fieldbyname('fkfsid').asstring,
              Table1.fieldbyname('fkje').asfloat - strtofloat(Label4.Caption)])
        else
          Table4.AppendRecord([Main.StatusBar1.panels[1].Text,
            Main.StatusBar1.panels[6].Text, datetostr(now),
              Table2.fieldbyname('xsid').asstring,
              Table1.fieldbyname('fkfsid').asstring,
              Table1.fieldbyname('fkje').asfloat])
      end;
      Table1.Next;
    end;
    Main.Table1.close;
    Main.Table1.EmptyTable;
    Main.Table1.open;
    Panel1.Show;
    Label12.Caption := Label4.Caption + ' 元';
    syjk.Update;
    pnt.Button13.Click; //横线
    pnt.Edit1.Text := '金额:' + Label2.Caption + '  ' + '折扣:' + Label10.Caption;
    pnt.Button17.Click;
    pnt.Edit1.Text := '支付:' + Label7.Caption + '  ' + '找补:' + Label4.Caption;
    pnt.Button17.Click;
    if Main.StatusBar1.Panels[9].Text = '会员' then
    begin
      pnt.Edit1.Text := '会员卡号:' + hyk.Edit1.text + ' ' + '会员优惠:' + Main.hyyh.text;
      pnt.Button17.Click;
    end;
    Query1.close;
    Query1.sql.clear;
    Query1.sql.add('update xsid set xsid=:xsid');
    Query1.ParamByName('xsid').asstring := floattostr(strtofloat(dh) + 1);
    Query1.ExecSQL;
    Table6.close;
    Table6.open;
    Table6.First;
    while not Table6.Eof do
    begin
      pnt.Edit1.Text := Table6.Fields[0].Text;
      pnt.Button17.Click;
      Table6.Next;
    end;
    Table6.close;
    pnt.Button18.Click; //走纸
    Main.N21.Checked := false;
    Main.StatusBar1.Panels[9].Text := '普通';
    Main.hyyh.text := '0';
    Panel1.Hide;
    close;
    Main.CheckBox1.Checked := true;
    Main.Edit1.SetFocus;
  end;
end;

procedure Tsyjk.Table1BeforeEdit(DataSet: TDataSet);
begin
  jet := Table1.fieldbyname('fkje').asfloat;
end;

procedure Tsyjk.Table1AfterPost(DataSet: TDataSet);
var jett: real;
begin
  if Table1.FieldByName('yn_ce').asstring = '否' then
  begin
    if Table1.fieldbyname('fkje').asfloat > strtofloat(Label8.Caption) then
    begin
      jett := jet;
      Table1.edit;
      Table1.fieldbyname('fkje').asfloat := jett;
      jet := 0;
      Table1.post;
      application.MessageBox('不允许超额付款.', '提示', MB_OK + MB_ICONERROR);
      exit;
    end;
  end;
  Query1.close;
  Query1.sql.clear;
  Query1.sql.add('select sum(fkje) from syfk_t');
  Query1.open;
  Label7.Caption := Query1.fields[0].asstring;
  if strtofloat(Label2.Caption) - strtofloat(Label7.Caption) > 0 then
  begin
    Label8.Caption := floattostr(strtofloat(Label2.Caption) - strtofloat(Label7.Caption));
    Label4.Caption := '0.00';
  end
  else
  begin
    Label8.Caption := '0.00';
    Label4.Caption := floattostr(strtofloat(Label7.Caption) - strtofloat(Label2.Caption));
  end;
end;

procedure Tsyjk.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := cafree;
end;

end.

⌨️ 快捷键说明

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