📄 main1.pas
字号:
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 + -