📄 product_quality.pas
字号:
unit Product_Quality;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, Menus, StdCtrls, Grids, ComCtrls, Buttons, ExtCtrls,
DBGrids, ToolWin;
type
TProduct_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;
Label4: TLabel;
Label7: TLabel;
Label8: TLabel;
DateTimePicker1: TDateTimePicker;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Product_QualitySG: TStringGrid;
Button1: TButton;
PopupMenu1: TPopupMenu;
P_Select: TMenuItem;
ImageList1: TImageList;
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure DateTimePicker1CloseUp(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Product_QualityFrm: TProduct_QualityFrm;
time:string;
state:integer;
SQLS:string;
implementation
uses DataModule,Manufacture,ProductSelect,Login,Product_check;
{$R *.dfm}
procedure TProduct_QualityFrm.ToolButton1Click(Sender: TObject);
var
i,j:integer;
begin
ToolButton1.Enabled:=false; //增加按钮非使能
ToolButton2.Enabled:=false; //编辑按钮非使能
ToolButton3.Enabled:=false; //删除按钮非使能
P_Select.Enabled:=true; //添加产品按钮使能
SpeedButton1.Enabled:=true; //生产部门选择按钮使能
with Product_QualitySG do //对表 Material_QualitySG进行清零
for i:=0 to 11 do
for j:=1 to Product_QualitySG.RowCount do
cells[i,j]:='';
Product_QualitySG.RowCount:=1;
Edit1.Text:=''; //对Edit输入框清零
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
state:=1;
end;
procedure TProduct_QualityFrm.ToolButton2Click(Sender: TObject);
begin
state:=2;
ToolButton1.Enabled:=false; //增加按钮非使能
ToolButton2.Enabled:=false; //编辑按钮非使能
ToolButton3.Enabled:=false; //删除按钮非使能
P_Select.Enabled:=true; //添加产品按钮使能
SpeedButton1.Enabled:=true; //生产部门选择按钮使能
end;
procedure TProduct_QualityFrm.ToolButton3Click(Sender: TObject);
var
i:integer;
begin
DM.AQ_Product_check.Locate('Quality_check_No',SQLS,[]);
DM.AQ_Product_check.Delete;
DM.AQ_Product_check.Next;
with DM.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Select * from Product_check where Quality_check_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;
Product_QualitySG.RowCount:=DM.ADOQuery1.RecordCount+1;
if DM.ADOQuery1.RecordCount<>0 then
with Product_QualitySG do
for i:=1 to DM.ADOQuery1.RecordCount do
begin
cells[0,i]:=fieldbyname('Produce_No').AsString;
cells[1,i]:=fieldbyname('Product_ID').AsString;
cells[2,i]:=fieldbyname('Product_Name').AsString;
cells[3,i]:=fieldbyname('Product_BatchNo').AsString;
cells[4,i]:=fieldbyname('Product_Unit').AsString;
cells[5,i]:=fieldbyname('Complete_Num').AsString;
cells[6,i]:=fieldbyname('Memo').AsString;
next;
end;
end;
end;
procedure TProduct_QualityFrm.ToolButton4Click(Sender: TObject);
var
i:integer;
begin
if state=0 then
Application.MessageBox('没有数据保存!','提示对话框',MB_OK);
if state=1 then
begin
DM.AQ_Product_check.Active:=true;
DM.AQ_Product_check.Insert;
DM.AQ_Product_check['Bill_Time']:=time;
DM.AQ_Product_check['Quality_check_No']:=Edit2.Text;
DM.AQ_Product_check['Handler']:=Edit3.Text;
DM.AQ_Product_check['Constitutor']:=Edit4.Text;
DM.AQ_Product_check['Manufacture_Name']:=ManufactureFrm.M_Name;
DM.AQ_Product_check['Manufacture_ID']:=ManufactureFrm.M_ID;
DM.AQ_Product_check['State']:='否';
DM.AQ_Product_check.Post;
with Product_QualitySG do
for i:=1 to Product_QualitySG.RowCount-1 do
begin
DM.AT_Product_check.Insert;
DM.AT_Product_check['Bill_Time']:=time;
DM.AT_Product_check['Quality_check_No']:=Edit2.Text;
DM.AT_Product_check['Handler']:=Edit3.Text;
DM.AT_Product_check['Constitutor']:=Edit4.Text;
DM.AT_Product_check['Manufacture_Name']:=ManufactureFrm.M_Name;
DM.AT_Product_check['Manufacture_ID']:=ManufactureFrm.M_ID;
DM.AT_Product_check['State']:='否';
DM.AT_Product_check['Produce_No']:=cells[0,i];
DM.AT_Product_check['Product_ID']:=cells[1,i];
DM.AT_Product_check['Product_Name']:=cells[2,i];
DM.AT_Product_check['Product_BatchNo']:=cells[3,i];
DM.AT_Product_check['Product_Unit']:=cells[4,i];
DM.AT_Product_check['Complete_Num']:=cells[5,i];
DM.AT_Product_check['Memo']:=cells[6,i];
DM.AT_Product_check.Post;
end;
end;
if state=2 then
with DM.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Select * from Product_check where Quality_check_No='+''''+SQLS+'''');
open;
with Product_QualitySG do
for i:=1 to DM.ADOQuery1.RecordCount do
begin
DM.AT_Product_check.Edit;
DM.AT_Product_check['Bill_Time']:=time;
DM.AT_Product_check['Quality_check_No']:=Edit2.Text;
DM.AT_Product_check['Handler']:=Edit3.Text;
DM.AT_Product_check['Constitutor']:=Edit4.Text;
DM.AT_Product_check['Manufacture_Name']:=ManufactureFrm.M_Name;
DM.AT_Product_check['Manufacture_ID']:=ManufactureFrm.M_ID;
DM.AT_Product_check['State']:='否';
DM.AT_Product_check['Produce_No']:=cells[0,i];
DM.AT_Product_check['Product_ID']:=cells[1,i];
DM.AT_Product_check['Product_Name']:=cells[2,i];
DM.AT_Product_check['Product_BatchNo']:=cells[3,i];
DM.AT_Product_check['Product_Unit']:=cells[4,i];
DM.AT_Product_check['Complete_Num']:=cells[5,i];
DM.AT_Product_check['Memo']:=cells[6,i];
DM.AT_Product_check.Post;
DM.AT_Product_check.Next;
end;
end;
ToolButton1.Enabled:=true; //增加按钮非使能
ToolButton2.Enabled:=true; //编辑按钮非使能
ToolButton3.Enabled:=true; //删除按钮非使能
state:=0;
end;
procedure TProduct_QualityFrm.ToolButton5Click(Sender: TObject);
begin
Application.CreateForm(TProduct_checkFrm,Product_checkFrm);
Product_checkFrm.Show;
end;
procedure TProduct_QualityFrm.ToolButton6Click(Sender: TObject);
begin
with DM.AQ_Product_Analyse do
begin
close;
SQL.Clear;
SQL.Add('Select * from Product_check where Quality_check_No='+''''+SQLS+'''');
open;
end;
if DM.AQ_Product_Analyse.RecordCount=0 then
Application.MessageBox('没有数据要打印!','提示对话框',MB_OK);
DM.Product_QualityRV.ProjectFile:='.\Product_Check.rav';
DM.Product_QualityRV.Open;
DM.Product_QualityRV.Execute;
DM.Product_QualityRV.Close;
end;
procedure TProduct_QualityFrm.ToolButton7Click(Sender: TObject);
begin
Product_QualityFrm.Close;
end;
procedure TProduct_QualityFrm.DBGrid1CellClick(Column: TColumn);
var
i,j:integer;
begin
with Product_QualitySG do //对表 Product_QualitySG进行清零
for i:=0 to 7 do
for j:=1 to Product_QualitySG.RowCount do
cells[i,j]:='';
SQLS:=DM.AQ_Product_check['Quality_check_No'];
with DM.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Select * from Product_check where Quality_check_No='+''''+SQLS+'''');
open;
first;
Product_QualitySG.RowCount:=DM.ADOQuery1.RecordCount+1;
if DM.ADOQuery1.RecordCount<>0 then
with Product_QualitySG do
for i:=1 to DM.ADOQuery1.RecordCount do
begin
cells[0,i]:=fieldbyname('Produce_No').AsString;
cells[1,i]:=fieldbyname('Product_ID').AsString;
cells[2,i]:=fieldbyname('Product_Name').AsString;
cells[3,i]:=fieldbyname('Product_BatchNo').AsString;
cells[4,i]:=fieldbyname('Product_Unit').AsString;
cells[5,i]:=fieldbyname('Complete_Num').AsString;
cells[6,i]:=fieldbyname('Memo').AsString;
next;
end;
end;
end;
procedure TProduct_QualityFrm.DateTimePicker1CloseUp(Sender: TObject);
begin
time:=formatDatetime('yyyy-m-d',DateTimePicker1.Date);
with DM.ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('Select * From Product_check_Bill where Bill_Time='+'#'+time+'#');
open;
end;
Edit2.Text:=formatDatetime('yyyymmdd',DateTimePicker1.Date)+'00'+inttostr(DM.ADOQuery1.RecordCount+1);
end;
procedure TProduct_QualityFrm.SpeedButton1Click(Sender: TObject);
begin
Application.CreateForm(TManufactureFrm,ManufactureFrm);
ManufactureFrm.ShowModal;
if ManufactureFrm.ModalResult=mrOK then
Edit1.Text:=ManufactureFrm.M_Name;
end;
procedure TProduct_QualityFrm.Button1Click(Sender: TObject);
VAR
i:integer;
begin
Application.CreateForm(TProductSelectFrm,ProductSelectFrm);
ProductSelectFrm.ShowModal;
if ProductSelectFrm.ModalResult=mrOK then
with Product_QualitySG do
for i:=1 to ProductSelectFrm.SelectNo do
begin
Product_QualitySG.RowCount:=i+1;
cells[0,i]:=ProductSelectFrm.ProductSG.Cells[0,i];
cells[1,i]:=ProductSelectFrm.ProductSG.Cells[1,i];
cells[2,i]:=ProductSelectFrm.ProductSG.Cells[2,i];
cells[4,i]:=ProductSelectFrm.ProductSG.Cells[3,i];
cells[5,i]:=floattostr(strtofloat(ProductSelectFrm.ProductSG.Cells[4,i])-strtofloat(ProductSelectFrm.ProductSG.Cells[5,i]));
end;
end;
procedure TProduct_QualityFrm.FormCreate(Sender: TObject);
begin
with Product_QualitySG do
begin
Product_QualitySG.ColCount:=7;
cells[0,0]:='工单号码';
cells[1,0]:='产品编号';
cells[2,0]:='产品名称';
cells[3,0]:='批号';
cells[4,0]:='单位';
cells[5,0]:='待检数量';
cells[6,0]:='备注';
end;
with DM.AQ_Product_check do
begin
close;
SQL.Clear;
SQL.Add('Select * from Product_check_Bill where State='+''''+'否'+'''');
open;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -