⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 product_quality.pas

📁 随着计算机的日益普及
💻 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 + -