📄 unit10.pas
字号:
unit Unit10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, Grids, DBGridEh, Buttons, ComCtrls, ToolWin;
type
TForm10 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
DateTimePicker1: TDateTimePicker;
GroupBox1: TGroupBox;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label4: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit3: TEdit;
ComboBox1: TComboBox;
ToolBar1: TToolBar;
ToolButton2: TToolButton;
SpeedButton15: TSpeedButton;
ToolButton6: TToolButton;
SpeedButton1: TSpeedButton;
ToolButton8: TToolButton;
SpeedButton5: TSpeedButton;
ToolButton7: TToolButton;
SpeedButton11: TSpeedButton;
DBGridEh1: TDBGridEh;
DataSource1: TDataSource;
Button1: TButton;
ComboBox2: TComboBox;
procedure SpeedButton11Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure SpeedButton15Click(Sender: TObject);
procedure DBGridEh1DblClick(Sender: TObject);
private
function QueryTabel(aSql: string): Boolean;
procedure ZdID(aSql: string);
{ Private declarations }
public
{ Public declarations }
end;
var
Form10: TForm10;
implementation
uses Data, Unit1;
{$R *.dfm}
function TForm10.QueryTabel(aSql: string): Boolean;
begin
with MyData do
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(aSql);
ADOQuery1.Open;
end;
end;
procedure TForm10.ZdID(aSql: string);
var
Sum:string;
begin
with MyData do
begin
aSql:='Select * from 原料出库单资料';
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add(aSql);
ADOSelect.Open;
if ADOSelect.RecordCount>0 then
begin
aSql:='Select max(id) from 原料出库单资料';
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add(aSql);
ADOSelect.Open;
Sum:='OY'+IntToStr(StrToInt(ADOSelect.Fields.Fields[0].Value)+10000);
end
else
Sum:='OY10000';
edit1.Text:=Sum;
end;
end;
procedure TForm10.SpeedButton11Click(Sender: TObject);
begin
close;
end;
procedure TForm10.SpeedButton5Click(Sender: TObject);
begin
if MessageBox(Handle, '你是否要删除?', '操作提示', MB_YESNO +
MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST)=IDYES then
begin
if DataSource1.DataSet.RecordCount>0 then
DataSource1.DataSet.Delete;
end;
end;
procedure TForm10.SpeedButton1Click(Sender: TObject);
begin
QueryTabel('Select * From 原料出库单资料');
end;
procedure TForm10.FormShow(Sender: TObject);
begin
if (Form1.Qx='浏览者') then
begin
SpeedButton15.Enabled:=False;
SpeedButton5.Enabled:=False;
end;
QueryTabel('Select * From 原料出库单资料');
ZdID('');
with MyData do
begin
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add('Select 生产单编号 from 生产单资料');
ADOSelect.Open;
ComboBox1.Clear;
while not ADOSelect.Eof do
begin
ComboBox1.Items.Add(ADOSelect.Fields.Fields[0].Value);
ADOSelect.Next;
end;
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add('Select 原料编号 from 原料资料录入');
ADOSelect.Open;
ComboBox2.Clear;
while not ADOSelect.Eof do
begin
ComboBox2.Items.Add(ADOSelect.Fields.Fields[0].Value);
ADOSelect.Next;
end;
end;
end;
procedure TForm10.ComboBox2Change(Sender: TObject);
var
aSql:string;
begin
with MyData do
begin
aSql:='Select * from 原料库存资料 where 原料编号='''+Combobox2.text+'''';
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add(aSql);
ADOSelect.Open;
if ADOSelect.RecordCount>0 then
begin
edit5.Text:=ADOSelect.FieldByName('原料名称').AsString;
edit3.Text:=ADOSelect.FieldByName('颜色').AsString;
edit6.Text:=ADOSelect.FieldByName('现有库存量').AsString;
edit7.Text:=ADOSelect.FieldByName('所在仓库').AsString;
end;
end;
end;
procedure TForm10.Button1Click(Sender: TObject);
begin
ZdID('');//自动生成编号
end;
procedure TForm10.SpeedButton15Click(Sender: TObject);
var
acheck:string;
i,j,s,d:Integer;
begin
if Trim(ComboBox1.Text)='' then
begin
MessageBox(Handle, '请选择生产单料编号!', '操作提示', MB_OK + MB_ICONWARNING +
MB_DEFBUTTON3 + MB_TOPMOST);
ComboBox1.SetFocus;
Exit;
end;
if Trim(ComboBox2.Text)='' then
begin
MessageBox(Handle, '请选择原料编号!', '操作提示', MB_OK + MB_ICONWARNING +
MB_DEFBUTTON3 + MB_TOPMOST);
ComboBox2.SetFocus;
Exit;
end;
if StrToInt(Trim(Edit8.Text))>StrToInt(Trim(Edit6.Text)) then
begin
MessageBox(Handle, '请输入出库量大于现有库存旦!!', '操作提示', MB_OK + MB_ICONWARNING +
MB_DEFBUTTON3 + MB_TOPMOST);
Edit8.Clear;
Edit8.SetFocus;
Exit;
end;
if Trim(Edit8.Text)='' then
begin
MessageBox(Handle, '请输入出库量!', '操作提示', MB_OK + MB_ICONWARNING +
MB_DEFBUTTON3 + MB_TOPMOST);
Edit8.SetFocus;
Exit;
end;
try
MyData.ADOConnection1.BeginTrans;
DataSource1.DataSet.Insert;
DataSource1.DataSet.FieldByName('原料出库单编号').AsString:=Edit1.Text;
DataSource1.DataSet.FieldByName('生产单编号').AsString:=ComboBox1.Text;
DataSource1.DataSet.FieldByName('原料编号').AsString:=ComboBox2.Text;
DataSource1.DataSet.FieldByName('原料名称').AsString:=Edit5.Text;
DataSource1.DataSet.FieldByName('颜色').AsString:=Edit3.Text;
DataSource1.DataSet.FieldByName('现有库存量').AsString:=Edit6.Text;
DataSource1.DataSet.FieldByName('所在仓库').AsString:=Edit7.Text;
DataSource1.DataSet.FieldByName('出库量').AsString:=Edit8.Text;
DataSource1.DataSet.FieldByName('时间').AsString:=DateToStr(DateTimePicker1.Date);
DataSource1.DataSet.Post;
with MyData do
begin
i:=StrToInt(Trim(Edit8.Text));
j:=StrToInt(Trim(Edit6.Text));
if j>i then
begin
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add('Select * from 原料库存资料 where 原料编号='''+combobox2.Text+'''');
ADOSelect.Open;
ADOSelect.Edit;
s:=j-i;
ADOSelect.FieldByName('现有库存量').AsString:=IntToStr(s);
ADOSelect.FieldByName('最后修改时间').AsString:=DateToStr(DateTimePicker1.Date);
ADOSelect.Post;
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add('Select * from 原料入库单资料 where 原料编号='''+combobox2.Text+'''');
ADOSelect.Open;
ADOSelect.Edit;
ADOSelect.FieldByName('入库量').AsString:=IntToStr(s);
ADOSelect.FieldByName('时间').AsString:=DateToStr(DateTimePicker1.Date);
ADOSelect.Post;
end
else
begin
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add('Delete from 原料库存资料 where 原料编号='''+combobox2.Text+'''');
ADOSelect.ExecSQL;
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add('Delete from 原料入库单资料 where 原料编号='''+combobox2.Text+'''');
ADOSelect.ExecSQL;
end;
end;
MyData.ADOConnection1.CommitTrans;
Edit3.Clear; Edit5.Clear ;Edit6.Clear;
Edit7.Clear;Edit8.Clear;
MessageBox(Handle, '原料出库成功!', '操作提示', MB_OK + MB_ICONWARNING +
MB_DEFBUTTON3 + MB_TOPMOST);
except
DataSource1.DataSet.Cancel;
MyData.ADOConnection1.RollbackTrans;
MessageBox(Handle, '原料出库失败!', '操作提示', MB_OK + MB_ICONWARNING +
MB_DEFBUTTON3 + MB_TOPMOST);
end;
end;
procedure TForm10.DBGridEh1DblClick(Sender: TObject);
begin
MessageBox(Handle, '不能双击,只能出库!', '操作提示', MB_OK + MB_ICONWARNING +
MB_DEFBUTTON3 + MB_TOPMOST);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -