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

📄 material_info.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit material_info;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Spin, StdCtrls, Buttons, ComCtrls, Mask, DBCtrls,
  Grids, DBGrids, ImgList, ToolWin, DB, ADODB;

type
  TForm_Material_info = class(TForm)
    ImageList1: TImageList;
    Label14: TLabel;
    Label15: TLabel;
    DS_material: TDataSource;
    ADOQtmp: TADOQuery;
    TabSheet: TPageControl;
    material: TTabSheet;
    Panel_info: TPanel;
    Label6: TLabel;
    Label8: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label_price: TLabel;
    Label23: TLabel;
    BitBtn_matid: TSpeedButton;
    SpeedButton1: TSpeedButton;
    DBE_mat_name: TDBEdit;
    DBE_unit: TDBEdit;
    DBE_mat_id: TDBEdit;
    DBE_price: TDBEdit;
    DBCheckBox_flag: TDBCheckBox;
    DBMemo1: TDBMemo;
    DBLookup_matype: TDBLookupComboBox;
    DBComboBox1: TDBComboBox;
    TabSheet1: TTabSheet;
    DBGrid6: TDBGrid;
    Panel1: TPanel;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton_save: TToolButton;
    ToolButton_cancel: TToolButton;
    ToolButton11: TToolButton;
    ToolButton_locate: TToolButton;
    ToolButton_refresh: TToolButton;
    ToolButton7: TToolButton;
    ToolButton_exit: TToolButton;
    ADOQ_material: TADOQuery;
    ADOT_matype: TADOTable;
    ADOQ_materialmat_id: TStringField;
    ADOQ_materialmat_name: TStringField;
    ADOQ_materialmatype_id: TIntegerField;
    ADOQ_materialprice: TBCDField;
    ADOQ_materialcolor: TStringField;
    ADOQ_materialunit: TStringField;
    ADOQ_materialmemo: TStringField;
    ADOT_matypematype_id: TAutoIncField;
    ADOT_matypematype_name: TStringField;
    ADOQ_materialmatype_name: TStringField;
    Panel2: TPanel;
    Label4: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Bevel1: TBevel;
    Edit_id: TEdit;
    Edit_name: TEdit;
    Edit_color: TEdit;
    OKBtn: TBitBtn;
    CancelBtn: TBitBtn;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    ComboBox3: TComboBox;
    Edit2: TEdit;
    ComboBox2: TComboBox;
    RadioGroup1: TRadioGroup;
    Lookup_matype: TComboBox;
    Button2: TButton;
    ADOQ_materialflag: TBooleanField;
    ToolButton5: TToolButton;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBCheckBox_flagClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure BitBtn_matidClick(Sender: TObject);
    procedure DS_materialStateChange(Sender: TObject);
    procedure ToolButton_refreshClick(Sender: TObject);
    procedure ToolButton_cancelClick(Sender: TObject);
    procedure ToolButton_saveClick(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ADOQ_materialBeforePost(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure OKBtnClick(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
    procedure ToolButton_exitClick(Sender: TObject);
    procedure ToolButton_locateClick(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure ADOQ_materialAfterInsert(DataSet: TDataSet);
    procedure DBGrid6DblClick(Sender: TObject);
    procedure TabSheetChanging(Sender: TObject; var AllowChange: Boolean);
    procedure TabSheetChange(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
  private
    { Private declarations }
    old_matname:string;   //修改记录时物料的名称
    old_price:real;
  public
    { Public declarations }
  end;

var
  Form_Material_info: TForm_Material_info;

implementation
uses data, sharevar, sharefun, ColorSetup, Main;
{$R *.dfm}

procedure TForm_Material_info.FormShow(Sender: TObject);
begin
  with adoqtmp do
  begin
    close; sql.Clear;
    sql.Add('select matype_name from material_type');
    open;
    Lookup_matype.Clear;
    Lookup_matype.Items.Add(' ');
    while not eof do
    begin
      Lookup_matype.items.Add(fieldvalues['matype_name']);
      next;
    end;
  end;
  //添加颜色
  DBComboBox1.Clear;
  with ADOQtmp do
  begin
    close;sql.clear;
    sql.add('select color from color order by id');
    open;
    if recordcount =0 then
    begin
        MsgErr(handle,'当前无颜色信息,请先定义!');
        exit;
    end;
    DBComboBox1.Items.Add(' ');
    first;
    while not eof do
    begin
        DBComboBox1.Items.Add(fieldvalues['color']);
        next;
    end;
  end;
end;

procedure TForm_Material_info.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action:=cafree;
end;

//显示对应物料是否需支付个人工资
procedure TForm_Material_info.DBCheckBox_flagClick(Sender: TObject);
begin
  if DBCheckBox_flag.Checked then
  begin
    Label_price.Visible:=true;
    DBE_price.Visible:=true;
    DBE_price.Enabled:=true;
  end
  else
  begin
    Label_price.Visible:=false;
    DBE_price.Visible:=false;
    DBE_price.Enabled:=false;
  end;
end;

//显示对应物料是否需支付个人工资
procedure TForm_Material_info.SpeedButton1Click(Sender: TObject);
begin
  FrmColorSetup:=TFrmColorSetup.create(self);
  FrmColorSetup.showmodal;
  //添加颜色
  DBComboBox1.Clear;
  with ADOQtmp do
  begin
    close;sql.clear;
    sql.add('select color from color order by id');
    open;
    if recordcount =0 then
    begin
        MsgErr(handle,'当前无颜色信息,请先定义!');
        exit;
    end;
    DBComboBox1.Items.Add(' ');
    first;
    while not eof do
    begin
        DBComboBox1.Items.Add(fieldvalues['color']);
        next;
    end;
  end;
end;

//根据物料的类别及颜色得到物料的编号
procedure TForm_Material_info.BitBtn_matidClick(Sender: TObject);
var tmpstr:string;
len_str:integer;
begin
  if trim(DBLookup_matype.Text)='' then
  begin
    MsgOk(handle,'请先确认物料所属的类别!');
    DBLookup_matype.SetFocus;
    exit;
  end;
  tmpstr:=getstringpy(trim(DBLookup_matype.Text));
  if length(tmpstr)>3 then tmpstr:=copy(tmpstr,1,3)+'-'
  else tmpstr:=tmpstr+'-';
  if trim(DBComboBox1.Text)<>'' then tmpstr:=tmpstr+copy(getstringpy(trim(DBComboBox1.Text)),1,2);
  with ADOQtmp do
  begin
    close; sql.Clear;
    sql.Add('select mat_id from material where mat_id like '+''''+'%'+tmpstr+'%'+'''');
    sql.Add('order by mat_id desc');
    execsql; open;
    len_str:=length(tmpstr);
    if recordcount=0 then
    tmpstr:=tmpstr+copy('00000000',1,9-len_str)+'1'
    else
    begin
      first;
      tmpstr:=fieldvalues['mat_id'];
    end;
  end;
  ADOQ_material.FieldValues['mat_id']:=tmpstr;
end;

procedure TForm_Material_info.DS_materialStateChange(Sender: TObject);
begin
  if ((sender as Tdatasource).DataSet.State in [dsinsert,dsedit]) then
  begin
    ToolButton1.Enabled:=false;
    ToolButton2.Enabled:=false;
    ToolButton3.Enabled:=false;
    ToolButton_save.Enabled:=true;
    ToolButton_cancel.Enabled:=true;
    Panel_info.Enabled:=true;
    ToolButton_locate.Enabled:=false;
    if (sender as Tdatasource).DataSet.State in [dsinsert] then
    begin
      DBE_mat_id.ParentColor:=false;
      DBE_mat_id.Color:=clwindow;
      BitBtn_matid.Enabled:=true;
    end;
    if (sender as Tdatasource).DataSet.State in [dsedit] then
    begin
      BitBtn_matid.Enabled:=false;
      DBE_mat_id.ParentColor:=true;
      BitBtn_matid.Enabled:=false;
    end;
  end;
  if (sender as Tdatasource).DataSet.State in [dsbrowse] then
  begin
    ToolButton1.Enabled:=true;
    ToolButton2.Enabled:=true;
    ToolButton3.Enabled:=true;
    ToolButton_save.Enabled:=false;
    ToolButton_cancel.Enabled:=false;
    dbe_mat_id.ParentColor:=false;
    dbe_mat_id.Color:=clwindow;
    BitBtn_matid.Enabled:=false;
    panel_info.Enabled:=false;
    ToolButton_locate.Enabled:=true;
  end;
end;

procedure TForm_Material_info.ToolButton_refreshClick(Sender: TObject);
begin
  if not adoq_material.Active then exit;
  adot_matype.Close; adot_matype.Open;
  with adoq_material do
  begin
    sql.Strings[1]:='';
    close; open;
  end;
end;

procedure TForm_Material_info.ToolButton_cancelClick(Sender: TObject);
begin
  if not adoq_material.Active then exit;
  adoq_material.Cancel;
  Panel_info.Enabled:=false;
end;

procedure TForm_Material_info.ToolButton_saveClick(Sender: TObject);
begin
  if not adoq_material.Active then exit;
  if not (adoq_material.State in [dsinsert,dsedit]) then exit;
  adoq_material.Post;
  Panel_info.Enabled:=false;
end;

procedure TForm_Material_info.ToolButton3Click(Sender: TObject);
begin
  if not adoq_material.Active then exit;
  if adoq_material.State in [dsinsert, dsedit] then exit;
  if adoq_material.RecordCount=0 then exit;
  with adoq_material do
  begin
    if recordcount=0 then exit;
    if msgqst(handle,'确定删除物料编号为:['+fieldvalues['mat_id']+'] 的物料 ['+fieldvalues['mat_name']+']吗?')=idno then exit;
    try
      delete;
    except
      msgerr(handle,'当前数据在相关连的表中用到,删除失败!');
    end;
  end;
end;

procedure TForm_Material_info.ToolButton2Click(Sender: TObject);
begin
  if not adoq_material.Active then exit;
  if adoq_material.State in [dsinsert,dsedit] then exit;
  if adoq_material.RecordCount=0 then exit;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -