📄 frminputstorebill.~pas
字号:
unit FrmInputStoreBill;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ADODB, DB, StdCtrls, ExtCtrls;
type
TFormInputStoreBill = class(TForm)
Label2: TLabel;
Label3: TLabel;
Shape1: TShape;
EditTime: TEdit;
BtnNew: TButton;
BtnInput: TButton;
BtnOK: TButton;
EditNote: TEdit;
DataSet: TADODataSet;
CBCommodity: TComboBox;
Label1: TLabel;
CBDepot: TComboBox;
Label6: TLabel;
CBProvider: TComboBox;
Label7: TLabel;
CBDeliver: TComboBox;
Label8: TLabel;
Label9: TLabel;
Shape2: TShape;
CmdInputStoreBill: TADOCommand;
EditSysUser: TEdit;
Label4: TLabel;
EditAmount: TEdit;
procedure FormShow(Sender: TObject);
procedure BtnNewClick(Sender: TObject);
procedure BtnInputClick(Sender: TObject);
function GetIDByName(name: string; table: string) : string;
function GetNameByID(ID: string; table: string) : string;
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormInputStoreBill: TFormInputStoreBill;
implementation
{$R *.dfm}
function TFormInputStoreBill.GetIDByName(name: string; table: string) : string;
begin
DataSet.Active := false;
DataSet.CommandText :=
'select id from '
+ table
+ ' where name = '''
+ name
+ '''';
DataSet.Active := true;
if not(DataSet.IsEmpty) then
begin
GetIDByName := DataSet.FieldByName('id').AsString;
end
else
begin
Application.MessageBox('无效的商品名称!', '错误', MB_OK);
end;
end;
function TFormInputStoreBill.GetNameByID(ID: string; table: string) : string;
begin
DataSet.Active := false;
DataSet.CommandText :=
'select name from '
+ table
+ ' where id = '''
+ ID
+ '''';
DataSet.Active := true;
if not(DataSet.IsEmpty) then
begin
GetNameByID := DataSet.FieldByName('name').AsString;
end
else
begin
Application.MessageBox('无效的商品名称!', '错误', MB_OK);
end;
end;
procedure TFormInputStoreBill.FormShow(Sender: TObject);
var
DateTime : TDateTime;
i, Min, Max:integer;
item: string;
begin
DateTime := Date;
EditTime.Text := DateToStr(DateTime);
DateTime := Time;
EditTime.Text := EditTime.Text + ' ' + TimeToStr(DateTime);
CBCommodity.Clear;
DataSet.Active := False;
DataSet.CommandText := 'select name from Commodity';
DataSet.Active := True;
Min := 0;
Max := DataSet.RecordCount;
DataSet.First;
for i := Min to (Max-1) do
begin
item := DataSet.FieldByName('name').AsString;
CBCommodity.Items.Add(item);
DataSet.Next;
end;
CBDepot.Clear;
DataSet.Active := False;
DataSet.CommandText := 'select name from Depot';
DataSet.Active := True;
Min := 0;
Max := DataSet.RecordCount;
DataSet.First;
for i := Min to (Max-1) do
begin
item := DataSet.FieldByName('name').AsString;
CBDepot.Items.Add(item);
DataSet.Next;
end;
CBProvider.Clear;
DataSet.Active := False;
DataSet.CommandText := 'select name from Provider';
DataSet.Active := True;
Min := 0;
Max := DataSet.RecordCount;
DataSet.First;
for i := Min to (Max-1) do
begin
item := DataSet.FieldByName('name').AsString;
CBProvider.Items.Add(item);
DataSet.Next;
end;
CBDeliver.Clear;
DataSet.Active := False;
DataSet.CommandText := 'select name from Deliver';
DataSet.Active := True;
Min := 0;
Max := DataSet.RecordCount;
DataSet.First;
for i := Min to (Max-1) do
begin
item := DataSet.FieldByName('name').AsString;
CBDeliver.Items.Add(item);
DataSet.Next;
end;
end;
procedure TFormInputStoreBill.BtnNewClick(Sender: TObject);
var
DateTime: TDateTime;
begin
DateTime := Date;
EditTime.Text := DateToStr(DateTime);
DateTime := Time;
EditTime.Text := EditTime.Text + ' ' + TimeToStr(DateTime);
CBCommodity.Text := '';
CBDepot.Text := '';
CBProvider.Text := '';
CBDeliver.Text := '';
EditNote.Text := '';
EditAmount.Text := '';
end;
procedure TFormInputStoreBill.BtnInputClick(Sender: TObject);
var
CommodityID, SysUserID, DepotID, ProviderID, DeliverID: string;
Amount: integer;
begin
CommodityID := GetIDByName(CBCommodity.Text, 'Commodity');
SysUserID := GetIDByName(EditSysUser.Text, 'SysUser');
DepotID := GetIDByName(CBDepot.Text, 'Depot');
ProviderID := GetIDByName(CBProvider.Text, 'Provider');
DeliverID := GetIDByName(CBDeliver.Text, 'Deliver');
Amount := StrToInt(EditAmount.Text);
if (Amount <= 0) then
begin
Application.MessageBox('进货数量不能为负!', '错误', MB_OK);
Exit;
end;
CmdInputStoreBill.CommandText :=
'INSERT INTO StoreBill Values('''
+ EditTime.Text
+ ''','''
+ CommodityID
+ ''','''
+ IntToStr(Amount)
+ ''','''
+ SysUserID
+ ''','''
+ DepotID
+ ''','''
+ ProviderID
+ ''','''
+ DeliverID
+ ''','''
+ EditNote.Text
+ ''','
+ '0'
+ ')';
try
CmdInputStoreBill.Execute;
except
ShowMessage('录入失败,请正确输入!');
exit;
end;
ShowMessage('录入成功!');
BtnNewClick(sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -