📄 materials_quality.pas
字号:
unit Materials_Quality;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, Menus, StdCtrls, Grids, ComCtrls, Buttons, ExtCtrls,
DBGrids, ToolWin;
type
TMaterials_QualityFrm = class(TForm)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
GroupBox1: TGroupBox;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
SpeedButton1: TSpeedButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DateTimePicker1: TDateTimePicker;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Material_QualitySG: TStringGrid;
Button1: TButton;
PopupMenu1: TPopupMenu;
M_Add: TMenuItem;
Panel2: TPanel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
ImageList1: TImageList;
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure Button1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure DateTimePicker1CloseUp(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Selects(Sender: TObject);
end;
var
Materials_QualityFrm: TMaterials_QualityFrm;
time:string;
SQLS:string;
state:integer=0;
implementation
uses DataModule,Supply,MaterialsSelect,Login;
{$R *.dfm}
procedure TMaterials_QualityFrm.Selects(Sender: TObject);
begin
with DM.AQ_Materials_Quality do
begin
close;
SQL.Clear;
SQL.Add('Select * from Materials_Check_Bill where State='+''''+'否'+'''');
open;
end;
end;
procedure TMaterials_QualityFrm.ToolButton1Click(Sender: TObject);
var
i,j:integer;
begin
ToolButton1.Enabled:=false; //增加按钮非使能
ToolButton2.Enabled:=false; //编辑按钮非使能
ToolButton3.Enabled:=false; //删除按钮非使能
M_Add.Enabled:=true; //添加原材料按钮使能
SpeedButton1.Enabled:=true; //供应商选择按钮使能
with Material_QualitySG do //对表 Material_QualitySG进行清零
for i:=0 to 11 do
for j:=1 to Material_QualitySG.RowCount do
cells[i,j]:='';
Material_QualitySG.RowCount:=1;
Edit1.Text:=''; //对Edit输入框清零
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
state:=1;
end;
procedure TMaterials_QualityFrm.ToolButton2Click(Sender: TObject);
begin
state:=2;
ToolButton1.Enabled:=false; //增加按钮非使能
ToolButton2.Enabled:=false; //编辑按钮非使能
ToolButton3.Enabled:=false; //删除按钮非使能
M_Add.Enabled:=true; //添加原材料按钮使能
SpeedButton1.Enabled:=true; //供应商选择按钮使能
end;
procedure TMaterials_QualityFrm.ToolButton3Click(Sender: TObject);
var
i:integer;
begin
DM.AQ_Materials_Quality.Locate('UcheckBill_No',SQLS,[]);
DM.AQ_Materials_Quality.Delete;
DM.AQ_Materials_Quality.Next;
with DM.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Select * from Materials_Check where UcheckBill_No='+''''+SQLS+'''');
open;
end;
for i:=1 to DM.ADOQuery1.RecordCount do
begin
DM.AT_Materials_Quality.Locate('UcheckBill_No',SQLS,[]);
DM.AT_Materials_Quality.Delete;
end;
with DM.AQ_Materials_Quality do
begin
close;
SQL.Clear;
SQL.Add('Select * from Materials_Check_Bill where State='+''''+'否'+'''');
open;
end;
with DM.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Select * from Materials_Check where UcheckBill_No='+''''+SQLS+'''');
open;
first;
Material_QualitySG.RowCount:=DM.ADOQuery1.RecordCount+1;
with Material_QualitySG do
for i:=1 to DM.ADOQuery1.RecordCount do
begin
cells[0,i]:=fieldbyname('Materials_ID').AsString;
cells[1,i]:=fieldbyname('Materials_Name').AsString;
cells[2,i]:=fieldbyname('Materials_BatchNo').AsString;
cells[3,i]:=fieldbyname('Materials_MUnit').AsString;
cells[4,i]:=fieldbyname('Materials_Price').AsString;
cells[5,i]:=fieldbyname('Materials_Amount').AsString;
cells[6,i]:=fieldbyname('Materials_SAmount').AsString;
cells[7,i]:=fieldbyname('Materials_AUnit').AsString;
cells[8,i]:=fieldbyname('Materials_AAmount').AsString;
cells[9,i]:=fieldbyname('Materials_Sum').AsString;
cells[10,i]:=fieldbyname('Memo').AsString;
next;
end;
end;
end;
procedure TMaterials_QualityFrm.ToolButton4Click(Sender: TObject);
var
i:integer;
begin
if state=0 then
Application.MessageBox('没有数据保存!','提示对话框',MB_OK);
//写入主表
if state=1 then
begin
DM.AQ_Materials_Quality.Insert; //原材料信息表处于追加记录状态
DM.AQ_Materials_Quality['Bill_Time']:=time;
DM.AQ_Materials_Quality['UcheckBill_No']:=Edit3.Text;
DM.AQ_Materials_Quality['Order_form_No']:=Edit4.Text;
DM.AQ_Materials_Quality['Deliver_No']:=Edit2.Text;
DM.AQ_Materials_Quality['Supply_Name']:=SupplyFrm.S_Name;
DM.AQ_Materials_Quality['Supply_ID']:=SupplyFrm.S_ID;
DM.AQ_Materials_Quality['State']:='否';
DM.AQ_Materials_Quality['Handler']:=Edit6.Text;
DM.AQ_Materials_Quality['Constitutor']:=Edit7.Text;
DM.AQ_Materials_Quality.Post;
//写入明细表
with Material_QualitySG do
for i:=1 to Material_QualitySG.RowCount-1 do
begin
DM.AT_Materials_Quality.Insert; //原材料信息表处于追加记录状态
DM.AT_Materials_Quality['Bill_No']:=inttostr(i);
DM.AT_Materials_Quality['Bill_Time']:=time;
DM.AT_Materials_Quality['UcheckBill_No']:=Edit3.Text;
DM.AT_Materials_Quality['Order_form_No']:=Edit4.Text;
DM.AT_Materials_Quality['Deliver_No']:=Edit2.Text;
DM.AT_Materials_Quality['Supply_Name']:=SupplyFrm.S_Name;
DM.AT_Materials_Quality['Supply_ID']:=SupplyFrm.S_ID;
DM.AT_Materials_Quality['Materials_ID']:=cells[0,i];
DM.AT_Materials_Quality['Materials_Name']:=cells[1,i];
DM.AT_Materials_Quality['Materials_BatchNo']:=cells[2,i];
DM.AT_Materials_Quality['Materials_MUnit']:=cells[3,i];
DM.AT_Materials_Quality['Materials_Price']:=strtofloat(cells[4,i]);
DM.AT_Materials_Quality['Materials_Amount']:=strtofloat(cells[5,i]);
DM.AT_Materials_Quality['Materials_SAmount']:=strtofloat(cells[6,i]);
DM.AT_Materials_Quality['Materials_AUnit']:=cells[7,i];
DM.AT_Materials_Quality['Materials_AAmount']:=strtofloat(cells[8,i]);
DM.AT_Materials_Quality['Materials_Sum']:=strtofloat(cells[9,i]);
DM.AT_Materials_Quality['Memo']:=cells[10,i];
DM.AT_Materials_Quality.Post;
end;
end;
if state=2 then
with DM.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from Materials_Check where UcheckBill_No='+''''+SQLS+'''');
open;
first;
with Material_QualitySG do
for i:=1 to DM.ADOQuery1.RecordCount do
begin
DM.ADOQuery1.Edit; //原材料信息表处于编辑记录状态
DM.ADOQuery1['Materials_ID']:=cells[0,i];
DM.ADOQuery1['Materials_Name']:=cells[1,i];
DM.ADOQuery1['Materials_BatchNo']:=cells[2,i];
DM.ADOQuery1['Materials_MUnit']:=cells[3,i];
DM.ADOQuery1['Materials_Price']:=strtofloat(cells[4,i]);
DM.ADOQuery1['Materials_Amount']:=strtofloat(cells[5,i]);
DM.ADOQuery1['Materials_SAmount']:=strtofloat(cells[6,i]);
DM.ADOQuery1['Materials_AUnit']:=cells[7,i];
DM.ADOQuery1['Materials_AAmount']:=strtofloat(cells[8,i]);
DM.ADOQuery1['Materials_Sum']:=strtofloat(cells[9,i]);
DM.ADOQuery1['Memo']:=cells[10,i];
DM.ADOQuery1['State']:='否';
DM.ADOQuery1.Post;
next;
end;
end;
with DM.AQ_Materials_Quality do
begin
close;
SQL.Clear;
SQL.Add('Select * from Materials_Check_Bill where State='+''''+'否'+'''');
open;
end;
Application.MessageBox('数据保存完毕!','提示对话框',MB_OK);
ToolButton1.Enabled:=true; //增加按钮非使能
ToolButton2.Enabled:=true; //编辑按钮非使能
ToolButton3.Enabled:=true; //删除按钮非使能
state:=0;
end;
procedure TMaterials_QualityFrm.ToolButton5Click(Sender: TObject);
begin
DM.AQ_Materials_Quality.Locate('UcheckBill_No',SQLS,[]);
DM.AQ_Materials_Quality.Edit;
DM.AQ_Materials_Quality['Auditing']:=Edit5.Text;
DM.AQ_Materials_Quality['State']:='是';
if Application.MessageBox('确定审核?','提示对话框',MB_OKCANCEL)=mrok then
DM.AQ_Materials_Quality.Post
else
DM.AQ_Materials_Quality.Cancel;
Selects(Sender);
end;
procedure TMaterials_QualityFrm.ToolButton7Click(Sender: TObject);
begin
Materials_QualityFrm.Close;
end;
procedure TMaterials_QualityFrm.DBGrid1CellClick(Column: TColumn);
var
i,j:integer;
begin
with Material_QualitySG do //对表 Material_QualitySG进行清零
for i:=0 to 11 do
for j:=1 to Material_QualitySG.RowCount do
cells[i,j]:='';
SQLS:=DM.AQ_Materials_Quality['UcheckBill_No'];
with DM.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Select * from Materials_Check where UcheckBill_No='+''''+SQLS+'''');
open;
first;
Material_QualitySG.RowCount:=DM.ADOQuery1.RecordCount+1;
if DM.ADOQuery1.RecordCount<>0 then
with Material_QualitySG do
for i:=1 to DM.ADOQuery1.RecordCount do
begin
cells[0,i]:=fieldbyname('Materials_ID').AsString;
cells[1,i]:=fieldbyname('Materials_Name').AsString;
cells[2,i]:=fieldbyname('Materials_BatchNo').AsString;
cells[3,i]:=fieldbyname('Materials_MUnit').AsString;
cells[4,i]:=fieldbyname('Materials_Price').AsString;
cells[5,i]:=fieldbyname('Materials_Amount').AsString;
cells[6,i]:=fieldbyname('Materials_SAmount').AsString;
cells[7,i]:=fieldbyname('Materials_AUnit').AsString;
cells[8,i]:=fieldbyname('Materials_AAmount').AsString;
cells[9,i]:=fieldbyname('Materials_Sum').AsString;
cells[10,i]:=fieldbyname('Memo').AsString;
next;
end;
end;
end;
procedure TMaterials_QualityFrm.Button1Click(Sender: TObject);
var
i:integer;
begin
Application.CreateForm(TMaterialsSelectFrm,MaterialsSelectFrm);
MaterialsSelectFrm.ShowModal;
if MaterialsSelectFrm.ModalResult=mrOK then
with MaterialsSelectFrm.MaterialsSG1 do
for i:=1 to MaterialsSelectFrm.SelectNo do
with DM.AQ_Materials do
begin
close;
SQL.Clear;
SQL.Add('Select * from Materials where Materials_ID='+''''+cells[0,i]+'''');
open;
Material_QualitySG.RowCount:=MaterialsSelectFrm.SelectNo+1;
with Material_QualitySG do
begin
cells[0,i]:=fieldbyname('Materials_ID').AsString;
cells[1,i]:=fieldbyname('Materials_Name').AsString;
cells[2,i]:=fieldbyname('Materials_BatchNo').AsString;
cells[3,i]:=fieldbyname('Materials_MUnit').AsString;
cells[4,i]:=fieldbyname('Materials_Price').AsString;
cells[5,i]:=fieldbyname('Materials_Amount').AsString;
cells[6,i]:=fieldbyname('Materials_SAmount').AsString;
cells[7,i]:=fieldbyname('Materials_AUnit').AsString;
cells[8,i]:=fieldbyname('Materials_AAmount').AsString;
cells[9,i]:=fieldbyname('Materials_Sum').AsString;
cells[10,i]:=fieldbyname('Materials_Memo').AsString;
end;
end;
end;
procedure TMaterials_QualityFrm.SpeedButton1Click(Sender: TObject);
begin
Application.CreateForm(TSupplyFrm,SupplyFrm);
SupplyFrm.ShowModal;
if SupplyFrm.ModalResult=mrOK then
Edit1.Text:=SupplyFrm.S_Name;
end;
procedure TMaterials_QualityFrm.DateTimePicker1CloseUp(Sender: TObject);
begin
time:=formatDatetime('yyyy-m-d',DateTimePicker1.Date);
with DM.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Select * From Materials_Check where Bill_Time='+'#'+time+'#');
open;
end;
Edit3.Text:=formatDatetime('yyyymmdd',DateTimePicker1.Date)+'00'+inttostr(DM.ADOQuery1.RecordCount+1);
end;
procedure TMaterials_QualityFrm.FormCreate(Sender: TObject);
begin
with Material_QualitySG do
begin
Material_QualitySG.ColCount:=11;
cells[0,0]:='原材料编号';
cells[1,0]:='原材料名称';
cells[2,0]:='批号';
cells[3,0]:='主单位';
cells[4,0]:='单价';
cells[5,0]:='数量';
cells[6,0]:='备损数量';
cells[7,0]:='副单位';
cells[8,0]:='副数量';
cells[9,0]:='金额';
cells[10,0]:='备注';
end;
Selects(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -