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

📄 main1.pas

📁 思微POS连锁超市管理系统 (商业代码),几年前的东西了
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit main1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, ComCtrls, EHGrids, DBGridEh, StdCtrls, Db, DBTables, Mask,
  ToolEdit, CurrEdit, ExtCtrls, Registry;

type
  TMain = class(TForm)
    StatusBar1: TStatusBar;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    DBGridEh1: TDBGridEh;
    Query1: TQuery;
    Table1: TTable;
    DataSource1: TDataSource;
    Table1spcode: TStringField;
    Table1spname: TStringField;
    Table1unit: TStringField;
    Table1dj: TFloatField;
    Table1sl: TFloatField;
    Table1je: TFloatField;
    Table1zk: TFloatField;
    Table1zkje: TFloatField;
    Table1id: TAutoIncField;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    Table2: TTable;
    N14: TMenuItem;
    N15: TMenuItem;
    Timer1: TTimer;
    N16: TMenuItem;
    N17: TMenuItem;
    N19: TMenuItem;
    N18: TMenuItem;
    N20: TMenuItem;
    N13: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N101: TMenuItem;
    N24: TMenuItem;
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Label5: TLabel;
    RxCalcEdit1: TRxCalcEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Label4: TLabel;
    Label2: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit2: TEdit;
    hyyh: TEdit;
    Table1sfcx: TStringField;
    N26: TMenuItem;
    CheckBox1: TCheckBox;
    N27: TMenuItem;
    N28: TMenuItem;
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure RxCalcEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure N11Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure N12Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure N2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure N20Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure pringbt(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N21Click(Sender: TObject);
    procedure N22Click(Sender: TObject);
    procedure N23Click(Sender: TObject);
    procedure N24Click(Sender: TObject);
    procedure N26Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N27Click(Sender: TObject);
    procedure N28Click(Sender: TObject);
    procedure Edit3KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    print_txt: string;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Main: TMain;
  sss: string;

implementation

uses hfgd1, syjk1, login1, pass1, jscssj1, spzk, qxzk1, zkje1,
  hyk1, zc1, xtzc1, cssz1, xtsd1, print1;

{$R *.DFM}

function AddZero(s: string; HopeLength: Integer; rs: string): string;
begin
  Result := StringReplace(Format('%' + IntToStr(HopeLength) + 's', [s]), ' ', rs, [rfIgnoreCase, rfReplaceAll]);
end;

procedure TMain.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key = 115) then
  begin
    qxzk.Position := poScreenCenter;
    qxzk.ShowModal;
    exit;
  end;
  if (key = 114) or (key = 116) then //N16Click(Sender);
  begin
    zklx.Position := poScreenCenter;
    zklx.ShowModal;
    exit;
  end;
  if (key = 117) then
  begin
    N21.Click;
  end;
  if key = 118 then N10Click(Sender);
  if key = 112 then N8Click(Sender);
  if key = 113 then N9Click(Sender);
  if key = 27 then N14Click(Sender);
  if key = 120 then N15Click(Sender);
  if key = 38 then Table1.Prior;
  if key = 40 then Table1.Next;
  if key = 33 then PostMessage(DBGridEh1.Handle, WM_KEYDOWN, 33, 0);
  if key = 34 then PostMessage(DBGridEh1.Handle, WM_KEYDOWN, 34, 0);
  if key = 46 then N11Click(Sender);
  if (key = 13) and (Edit1.text <> '') then
  begin
    Query1.close;
    Query1.sql.clear;
    Query1.sql.add('select * from spda where code=:code or barcode=:barcode');
    Query1.ParamByName('code').asstring := Edit1.text;
    Query1.ParamByName('barcode').asstring := Edit1.text;
    Query1.open;
    if Query1.RecordCount > 0 then
    begin
      Edit1.text := Query1.fieldbyname('code').asstring;
      Edit2.text := Query1.fieldbyname('name').asstring;
      if StatusBar1.Panels[9].Text = '普通' then
      begin
        if Query1.fieldbyname('cxbz').value = 0 then
          Edit3.Text := floattostr(Query1.fieldbyname('lsj').asfloat)
        else
        begin
          Edit3.Text := floattostr(Query1.fieldbyname('cxj').asfloat);
          sss := '(促销)';
        end;
      end;
      if StatusBar1.Panels[9].Text = '会员' then
      begin
        if Query1.fieldbyname('hyj').asfloat > 0 then
        begin
          Edit3.Text := floattostr(Query1.fieldbyname('hyj').asfloat);
          hyyh.Text := floattostr(strtofloat(hyyh.text) + (Query1.fieldbyname('lsj').asfloat - Query1.fieldbyname('hyj').asfloat));
        end
        else
        begin
          Edit3.Text := floattostr(Query1.fieldbyname('lsj').asfloat);
        end;
      end;
      Edit4.Text := Query1.fieldbyname('jldw').asstring;
      RxCalcEdit1.Text := '1';
      RxCalcEdit1.SetFocus;
      Query1.close;
      Query1.sql.clear;
      Query1.sql.add('select * from spxscx where (code=:code or barcode=:barcode) and time_s<=:time_s and time_e>=:time_e and rq_s<=:rq_s and rq_e>=:rq_e');
      Query1.ParamByName('code').asstring := Edit1.text;
      Query1.ParamByName('barcode').asstring := Edit1.text;
      Query1.ParamByName('rq_s').asstring := formatdatetime('yyyy-mm-dd', now());
      Query1.ParamByName('rq_e').asstring := formatdatetime('yyyy-mm-dd', now());
      Query1.ParamByName('time_s').asstring := formatdatetime('HH:MM:SS', now());
      Query1.ParamByName('time_e').asstring := formatdatetime('HH:MM:SS', now());
      Query1.open;
      if Query1.RecordCount > 0 then
      begin
        Edit3.Text := floattostr(Query1.fieldbyname('lsj').asfloat);
        sss := '(促销)';
      end;
    end
    else
    begin
      if length(Trim(Edit1.text)) = 13 then
      begin
        Query1.close;
        Query1.sql.clear;
        Query1.sql.add('select * from spda where code=:code or barcode=:barcode');
        Query1.ParamByName('code').asstring := copy(Trim(Edit1.text), 3, 5);
        Query1.ParamByName('barcode').asstring := copy(Trim(Edit1.text), 3, 5);
        Query1.open;
        if Query1.RecordCount > 0 then
        begin
          if StatusBar1.Panels[9].Text = '普通' then
          begin
            if Query1.fieldbyname('cxbz').value = 0 then
              Edit3.Text := floattostr(Query1.fieldbyname('lsj').asfloat)
            else
            begin
              Edit3.Text := floattostr(Query1.fieldbyname('cxj').asfloat);
              sss := '(促销)';
            end;
          end;
          if StatusBar1.Panels[9].Text = '会员' then
          begin
            if Query1.fieldbyname('hyj').asfloat > 0 then
            begin
              Edit3.Text := floattostr(Query1.fieldbyname('hyj').asfloat);
              hyyh.Text := floattostr(strtofloat(hyyh.text) + (Query1.fieldbyname('lsj').asfloat - Query1.fieldbyname('hyj').asfloat));
            end
            else
            begin
              Edit3.Text := floattostr(Query1.fieldbyname('lsj').asfloat);
            end;
          end;
          RxCalcEdit1.Text := copy(Trim(Edit1.text), 8, 2) + '.' + copy(Trim(Edit1.text), 10, 3);
          Edit1.text := Query1.fieldbyname('code').asstring;
          Edit2.text := Query1.fieldbyname('name').asstring;
          Edit4.Text := Query1.fieldbyname('jldw').asstring;
          try
            if sss = '(促销)' then
              Table1.AppendRecord([Edit1.text, Edit2.text, Edit4.text, Edit3.text, RxCalcEdit1.text, strtofloat(Edit3.text) * RxCalcEdit1.Value, 0, 0, nil, '是'])
            else
              Table1.AppendRecord([Edit1.text, Edit2.text, Edit4.text, Edit3.text, RxCalcEdit1.text, strtofloat(Edit3.text) * RxCalcEdit1.Value, 0, 0, nil, nil])
          except
          end;
          Table1.close;
          Table1.open;
          Table1.Last;
          pnt.Edit3.Text := Table1.Fields[0].Text;
          pnt.Edit4.Text := Table1.Fields[1].Text + sss;
          pnt.Edit5.Text := Table1.Fields[3].Text;
          pnt.Edit6.Text := Table1.Fields[4].Text;
          pnt.Edit7.Text := Table1.Fields[5].Text;
          pnt.Button14.Click;
          sss := '';
          Edit1.Text := '';
          Edit1.SetFocus;
          Edit2.text := '';
          Edit3.text := '';
          Edit4.text := '';
          RxCalcEdit1.Text := '';
        end;
      end;
      Edit1.SelectAll;
      Edit2.text := '';
      Edit3.text := '';
      Edit4.text := '';
      RxCalcEdit1.Text := '';
    end;
  end;
end;

procedure TMain.RxCalcEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var Txt: string;
begin
  if key = 119 then N7Click(Sender);
  if key = 37 then Edit1.SetFocus;
  if key = 39 then Edit3.SetFocus;
  if (key = 13) or (key = 120) then
  begin
    if CheckBox1.Checked then Main.pringbt(Sender);
    if RxCalcEdit1.Value < 0 then exit;
    if length(Trim(RxCalcEdit1.Text)) > 6 then
    begin
      try
        if sss = '(促销)' then
          Table1.AppendRecord([Edit1.text, Edit2.text, Edit4.text, Edit3.text, 1, round(strtofloat(Edit3.text) * 10) / 10, 0, 0, nil, '是'])
        else
          Table1.AppendRecord([Edit1.text, Edit2.text, Edit4.text, Edit3.text, 1, round(strtofloat(Edit3.text) * 10) / 10, 0, 0, nil, nil])
      except
      end;
      Table1.close;
      Table1.open;
      Table1.Last;
      pnt.Edit3.Text := Table1.Fields[0].Text;
      pnt.Edit4.Text := Table1.Fields[1].Text + sss;
      pnt.Edit5.Text := Table1.Fields[3].Text;
      pnt.Edit6.Text := Table1.Fields[4].Text;
      pnt.Edit7.Text := Table1.Fields[5].Text;
      pnt.Button14.Click;
      sss := '';
      Query1.close;
      Query1.sql.clear;
      Query1.sql.add('select * from spda where code=:code or barcode=:barcode');
      Query1.ParamByName('code').asstring := RxCalcEdit1.text;
      Query1.ParamByName('barcode').asstring := RxCalcEdit1.text;
      Query1.open;
      if Query1.RecordCount > 0 then
      begin
        Edit1.text := Query1.fieldbyname('code').asstring;
        Edit2.text := Query1.fieldbyname('name').asstring;
        if StatusBar1.Panels[9].Text = '普通' then
        begin
          if Query1.fieldbyname('cxbz').value = 0 then
            Edit3.Text := floattostr(Query1.fieldbyname('lsj').asfloat)
          else
          begin
            Edit3.Text := floattostr(Query1.fieldbyname('cxj').asfloat);
            sss := '(促销)';
          end;
        end;
        if StatusBar1.Panels[9].Text = '会员' then
        begin
          if Query1.fieldbyname('hyj').asfloat > 0 then
          begin
            Edit3.Text := floattostr(Query1.fieldbyname('hyj').asfloat);
            hyyh.Text := floattostr(strtofloat(hyyh.text) + (Query1.fieldbyname('lsj').asfloat - Query1.fieldbyname('hyj').asfloat));
          end
          else
          begin
            Edit3.Text := floattostr(Query1.fieldbyname('lsj').asfloat);
          end;
        end;
        Edit4.Text := Query1.fieldbyname('jldw').asstring;
        Query1.close;
        Query1.sql.clear;
        Query1.sql.add('select * from spxscx where (code=:code or barcode=:barcode) and time_s<=:time_s and time_e>=:time_e and rq_s<=:rq_s and rq_e>=:rq_e');
        Query1.ParamByName('code').asstring := Edit1.text;
        Query1.ParamByName('barcode').asstring := Edit1.text;
        Query1.ParamByName('rq_s').asstring := formatdatetime('yyyy-mm-dd', now());
        Query1.ParamByName('rq_e').asstring := formatdatetime('yyyy-mm-dd', now());
        Query1.ParamByName('time_s').asstring := formatdatetime('HH:MM:SS', now());
        Query1.ParamByName('time_e').asstring := formatdatetime('HH:MM:SS', now());
        Query1.open;
        if Query1.RecordCount > 0 then
        begin
          Edit3.Text := Query1.fieldbyname('lsj').asstring;
          sss := '(促销)';
        end;
        RxCalcEdit1.Text := '1';
        RxCalcEdit1.SelectAll;
      end
      else
      begin
        if length(Trim(RxCalcEdit1.text)) = 13 then
        begin
          Query1.close;
          Query1.sql.clear;
          Query1.sql.add('select * from spda where code=:code or barcode=:barcode');
          Query1.ParamByName('code').asstring := copy(Trim(RxCalcEdit1.text), 3, 5);
          Query1.ParamByName('barcode').asstring := copy(Trim(RxCalcEdit1.text), 3, 5);
          Query1.open;
          if Query1.RecordCount > 0 then
          begin
            if StatusBar1.Panels[9].Text = '普通' then
            begin
              if Query1.fieldbyname('cxbz').value = 0 then
                Edit3.Text := floattostr(Query1.fieldbyname('lsj').asfloat)
              else
              begin
                Edit3.Text := floattostr(Query1.fieldbyname('cxj').asfloat);

⌨️ 快捷键说明

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