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

📄 materials_quality.pas

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