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

📄 material_kc.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
字号:
unit Material_KC;

interface

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

type
  TForm_Material_KC = class(TForm)
    ADOQ_KC_Mate: TADOQuery;
    DS_KC_Mate_Q: TDataSource;
    ADOQ_KC_Matemat_id: TStringField;
    ADOQ_KC_Matenum: TFloatField;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    DBGrid1: TDBGrid;
    TabSheet2: TTabSheet;
    Label20: TLabel;
    DBE_mat_id: TDBEdit;
    DBE_num: TDBEdit;
    Label3: TLabel;
    Label6: TLabel;
    DBE_mat_name: TDBEdit;
    Label8: TLabel;
    Label18: TLabel;
    DBE_color: TDBEdit;
    DBCheckBox_flag: TDBCheckBox;
    DBE_price: TDBEdit;
    Label_price: TLabel;
    ADOQ_KC_Matemat_name: TStringField;
    ADOQ_KC_Matematype_name: TStringField;
    ADOQ_KC_Mateprice: TFloatField;
    ADOQ_KC_Matecolor: TStringField;
    ADOQ_KC_Mateunit: TStringField;
    DBMemo1: TDBMemo;
    Panel1: TPanel;
    ExtBtn: TBitBtn;
    DetailBtn: TBitBtn;
    RefreshBtn: TBitBtn;
    LocateBtn: TBitBtn;
    Panel2: TPanel;
    Label4: TLabel;
    Label14: TLabel;
    Label1: TLabel;
    Label2: 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;
    Label12: TLabel;
    DBEdit1: TDBEdit;
    Panel3: TPanel;
    Label21: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    ADOQ_KC_Matememo: TStringField;
    RadioGroup1: TRadioGroup;
    DBText1: TDBText;
    Lookup_matype: TComboBox;
    ADOQ_tmp: TADOQuery;
    ADOQ_KC_Mateflag: TBooleanField;
    BtnExport: TBitBtn;
    procedure LocateBtnClick(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
    procedure Edit_priceKeyPress(Sender: TObject; var Key: Char);
    procedure OKBtnClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DetailBtnClick(Sender: TObject);
    procedure RefreshBtnClick(Sender: TObject);
    procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure DBCheckBox_flagClick(Sender: TObject);
    procedure BtnExportClick(Sender: TObject);
  private
    { Private declarations }
    procedure refreshdb;
  public
    { Public declarations }
  end;

var
  Form_Material_KC: TForm_Material_KC;

implementation
uses sharevar, sharefun, data, Main;

{$R *.dfm}

procedure TForm_material_kc.refreshdb;
begin
  with ADOQ_KC_Mate do
  begin
      try
         close;
         sql.Strings[2]:='';
         sql.Strings[3]:='order by c.matype_name,b.flag,a.num desc';
         execsql;
         open;
      except
         MsgErr(handle,'刷新数据库失败(Material_KC_Q)!');
      end;
  end;
end;

procedure TForm_Material_KC.LocateBtnClick(Sender: TObject);
begin
  if panel2.Visible then exit;
  PageControl1.ActivePageIndex:=0;
  Panel2.Enabled:=true;
  Panel2.Visible:=true;
  with adoq_tmp do
  begin
      close; sql.Clear;
      sql.Add('select matype_name from material_type');
      open;
      Lookup_matype.Items.Clear;
      Lookup_matype.Items.Add(' ');
      first;
      while not eof do
      begin
        Lookup_matype.Items.Add(fieldvalues['matype_name']);
        next;
      end;
  end;
  DetailBtn.Enabled:=false;
  LocateBtn.Enabled:=false;
  RefreshBtn.Enabled:=false;
  Edit_id.Clear; Edit_name.Clear;
  Edit_color.Clear; Lookup_matype.ItemIndex:=0;
  edit1.Clear; edit2.Clear;
  CancelBtn.Cancel:=true;
  ExtBtn.Cancel:=false;
end;

procedure TForm_Material_KC.CancelBtnClick(Sender: TObject);
begin
  Panel2.Enabled:=false;
  Panel2.Visible:=false;
  DetailBtn.Enabled:=true;
  LocateBtn.Enabled:=true;
  RefreshBtn.Enabled:=true;
  CancelBtn.Cancel:=false;
  ExtBtn.Cancel:=true;
end;

procedure TForm_Material_KC.Edit_priceKeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (key in ['0'..'9',#13, #8,#46]) then abort;
end;

procedure TForm_Material_KC.ComboBox2KeyPress(Sender: TObject;
  var Key: Char);
begin
  abort;
end;

procedure TForm_Material_KC.OKBtnClick(Sender: TObject);
label get_sqltext;
var
tmpnum, tmpid, tmpname, tmpcolor, tmpmatype,
Bool_str, strwhere: string;
begin
  case RadioGroup1.ItemIndex of
  0:
    bool_str:='';
  1:
    bool_str:='1';
  2:
    bool_str:='0';
  end;
  tmpid:=trim(Edit_id.text);
  tmpname:=trim(Edit_name.text);
  tmpcolor:=trim(Edit_color.Text);
  tmpmatype:=trim(Lookup_matype.Text);
  tmpnum:=Getquery_char(ComboBox1.Text,trim(Edit1.Text),trim(ComboBox2.Text),ComboBox3.Text,trim(Edit2.Text),'a.num');
  strwhere:='';
  //得到查询的条件语句
  begin
        if trim(bool_str)<>'' then bool_str:='(b.flag = '+''''+bool_str+''''+')';
        if tmpname<>'' then tmpname:='(mat_name like '+''''+'%'+tmpname+'%'+''''+')';
        if tmpcolor<>'' then tmpcolor:='(color like '+''''+'%'+tmpcolor+'%'+''''+')';
        if tmpmatype<>'' then tmpmatype:='(matype_id in (select matype_id from material_type where matype_name ='+''''+tmpmatype+''''+')'+')';

        if bool_str<>'' then
        begin
          strwhere:='and '+bool_str;
          if tmpname<>'' then strwhere:=strwhere+' and '+tmpname;
          if tmpcolor<>'' then strwhere:=strwhere+' and '+tmpcolor;
          if tmpmatype<>'' then strwhere:=strwhere+' and '+tmpmatype;
          goto Get_sqltext;
        end;

        if tmpname<>'' then
        begin
          strwhere:='and '+tmpname;
          if tmpcolor<>'' then strwhere:=strwhere+' and '+tmpcolor;
          if tmpmatype<>'' then strwhere:=strwhere+' and '+tmpmatype;
          goto Get_sqltext;
        end;

        if tmpcolor<>'' then
        begin
          strwhere:='and '+tmpcolor;
          if tmpmatype<>'' then strwhere:=strwhere+' and '+tmpmatype;
          goto Get_sqltext;
        end;

        if tmpmatype<>'' then
        begin
          strwhere:='and '+tmpmatype;
          goto Get_sqltext;
        end;

        Get_sqltext:
        if (bool_str<>'') or (tmpname<>'') or (tmpcolor<>'') or (tmpmatype<>'')
        then strwhere:=(strwhere + tmpnum)
        else
        begin
          if tmpnum<>'' then strwhere:=' and '+copy(tmpnum,5,length(tmpnum));
        end;
  end;

  with ADOQ_KC_Mate do
  begin
      try
         close;
         sql.Strings[2]:=strwhere;
         sql.Strings[3]:='order by c.matype_name,b.flag,a.num desc';
         execsql;
         open;
      except
         MsgErr(handle,'数据库检索失败(Material_KC_Q)!');
         refreshdb;
         exit;
      end;
      btnexport.Enabled:=recordcount>0;
  end;
  Panel2.Enabled:=false;
  Panel2.Visible:=false;
  DetailBtn.Enabled:=true;
  LocateBtn.Enabled:=true;
  RefreshBtn.Enabled:=true;
end;

procedure TForm_Material_KC.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if ADOQ_KC_Mate.Active then ADOQ_KC_Mate.Close;
  action:=cafree;
end;

procedure TForm_Material_KC.DetailBtnClick(Sender: TObject);
begin
  PageControl1.ActivePageIndex:=1;
end;

procedure TForm_Material_KC.RefreshBtnClick(Sender: TObject);
begin
  if not ADOQ_KC_Mate.Active then exit;
  refreshdb;
end;

procedure TForm_Material_KC.DBGrid1DblClick(Sender: TObject);
begin
  if not ADOQ_KC_Mate.Active then exit;
  if adoq_kc_mate.RecordCount=0 then exit;
  PageControl1.ActivePageIndex:=1;
end;

procedure TForm_Material_KC.DBCheckBox_flagClick(Sender: TObject);
var flag_bool:boolean;
begin
  flag_bool:=DBCheckBox_flag.Checked;
  if flag_bool then
  begin
    Label_price.Visible:=true;
    DBE_price.Visible:=true;
    Label12.Visible:=true;
  end
  else
  begin
    Label_price.Visible:=false;
    DBE_price.Visible:=false;
    Label12.Visible:=false;
  end;
end;

procedure TForm_Material_KC.BtnExportClick(Sender: TObject);
begin
  Form_main.WriteIntoExcel(DBGrid1,datetostr(date),'物料库存信息报表');
end;

end.

⌨️ 快捷键说明

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