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

📄 unit_master.~pas

📁 学习程序,用于初学进销存的参考代码学习程序,用于初学进销存的参考代码
💻 ~PAS
字号:
unit unit_master;

interface

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

type
  TfrmMaster = class(TForm)
    CoolBar: TCoolBar;
    SpeedButton30: TSpeedButton;
    SB_Save: TSpeedButton;
    SpeedButton31: TSpeedButton;
    SB_Add: TSpeedButton;
    SB_Delete: TSpeedButton;
    SpeedButton34: TSpeedButton;
    SpeedButton35: TSpeedButton;
    TVMaster: TTreeView;
    Splitter2: TSplitter;
    DBGMaster: TDBGrid;
    StatusBar2: TStatusBar;
    ImageList1: TImageList;
    ADOMaster: TADOQuery;
    DSMaster: TDataSource;
    GB: TGroupBox;
    Label1: TLabel;
    Ed_PName: TEdit;
    Cb_PType: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    Cb_Unit: TComboBox;
    BtAdd: TBitBtn;
    BtDelete: TBitBtn;
    procedure TVMasterClick(Sender: TObject);
    procedure SB_AddClick(Sender: TObject);
    procedure SB_DeleteClick(Sender: TObject);
    procedure SB_SaveClick(Sender: TObject);
    procedure DSMasterDataChange(Sender: TObject; Field: TField);
    procedure DBGMasterKeyPress(Sender: TObject; var Key: Char);
    procedure BtAddClick(Sender: TObject);
    procedure BtDeleteClick(Sender: TObject);
    procedure SpeedButton30Click(Sender: TObject);
   private
    procedure TreeViewClick();
  public
    { Public declarations }
  end;

var
  frmMaster: TfrmMaster;

implementation

uses unit_main_dm;

{$R *.dfm}

procedure TfrmMaster.TreeViewClick();
var col:TColumn; tmp:TADOQuery;
begin
    if TVMaster.Selected.Text='产品资料' then
    begin
    GB.Visible:=true; CoolBar.Enabled:=false;DBGMaster.ReadOnly:=true;
    end
    else
    begin GB.Visible:=false;CoolBar.Enabled:=true;DBGMaster.ReadOnly:=false;
    end;

    if (TVMaster.Selected.Text='基本资料') then
    begin
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
    end;

    if (TVMaster.Selected.Text='员工资料') then
    begin
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
        ADOMaster.SQL.Add('select * from ms_employee');
        ADOMaster.Open;
        with DBGMaster.Columns do
        begin
        DBGMaster.Columns.Clear;
        col:=DBGMaster.Columns.Add;
        col.FieldName:='employee_no';
        col.Width:=60;
        col.Title.Caption:='员工编号';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='employee_name';
        col.Width:=80;
        col.Title.Caption:='员工姓名';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='Dep_ID';
        col.Width:=60;
        col.Title.Caption:='所属部门';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='telephone';
        col.Width:=80;
        col.Title.Caption:='联系电话';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='email';
        col.Width:=160;
        col.Title.Caption:='电子信箱';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='probation';
        col.Width:=60;
        col.Title.Caption:='职位';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='note';
        col.Width:=180;
        col.Title.Caption:='备注';
        end;
    end;

    if (TVMaster.Selected.Text='产品资料') then
    begin
        tmp:=TADOQuery.Create(self);
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
        ADOMaster.SQL.Add('exec sp_cjh_query_product');
        ADOMaster.Open;
        with DBGMaster.Columns do
        begin
        DBGMaster.Columns.Clear;

        col:=DBGMaster.Columns.Add;
        col.FieldName:='Prod_Type';
        col.Width:=100;
        col.Title.Caption:='产品类型';
        col.PickList.Clear;


        col:=DBGMaster.Columns.Add;
        col.FieldName:='Pruduct_Des';
        col.Width:=150;
        col.Title.Caption:='产品描述';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='Prod_Unit';
        col.Width:=70;
        col.Title.Caption:='产品单位';
        col.PickList.Clear;

        tmp.Close;
        tmp.Connection:=Main_DM.ADOConn;
        tmp.SQL.Clear;
        Cb_Unit.Items.Clear;
        tmp.SQL.Add('select Unit_Des from ms_Unit');
        tmp.Open;
        while not tmp.Eof do
        begin
        Cb_Unit.Items.Add(Trim(tmp.FieldByName('Unit_Des').AsString));
        tmp.Next;
        end;

        tmp.Close;
        tmp.Connection:=Main_DM.ADOConn;
        tmp.SQL.Clear;
        Cb_PType.Items.Clear;
        tmp.SQL.Add('select Prod_Type from ms_prod_type');
        tmp.Open;
        while not tmp.Eof do
        begin
        Cb_PType.Items.Add(Trim(tmp.FieldByName('Prod_Type').AsString));
        tmp.Next;
        end;

        tmp.Free;

        end;
    end;
    if (TVMaster.Selected.Text='单位设置') then
    begin
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
        ADOMaster.SQL.Add('select * from ms_unit');
        ADOMaster.Open;
        with DBGMaster.Columns do
        begin
        DBGMaster.Columns.Clear;
        col:=DBGMaster.Columns.Add;
        col.FieldName:='Unit_No';
        col.Width:=60;
        col.Title.Caption:='单位编号';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='Unit_Des';
        col.Width:=80;
        col.Title.Caption:='单位描述';
        end;

    end;
    if (TVMaster.Selected.Text='客户类型') then
    begin
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
        ADOMaster.SQL.Add('select * from ms_customer_type');
        ADOMaster.Open;
        with DBGMaster.Columns do
        begin
        DBGMaster.Columns.Clear;
        col:=DBGMaster.Columns.Add;
        col.FieldName:='Type_No';
        col.Width:=60;
        col.Title.Caption:='类型编号';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='Type_Des';
        col.Width:=80;
        col.Title.Caption:='类型描述';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='note';
        col.Width:=180;
        col.Title.Caption:='备注';
        end;

    end;
    if (TVMaster.Selected.Text='客户等级') then
    begin
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
        ADOMaster.SQL.Add('select * from ms_customer_level');
        ADOMaster.Open;
        with DBGMaster.Columns do
        begin
        DBGMaster.Columns.Clear;
        col:=DBGMaster.Columns.Add;
        col.FieldName:='ms_customer_level';
        col.Width:=60;
        col.Title.Caption:='等级编号';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='Level_Des';
        col.Width:=80;
        col.Title.Caption:='等级描述';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='note';
        col.Width:=180;
        col.Title.Caption:='备注';
        end;
    end;

    if (TVMaster.Selected.Text='产品类型') then
    begin
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
        ADOMaster.SQL.Add('select * from ms_prod_type');
        ADOMaster.Open;
        with DBGMaster.Columns do
        begin
        DBGMaster.Columns.Clear;
        col:=DBGMaster.Columns.Add;
        col.FieldName:='Prod_Type';
        col.Width:=150;
        col.Title.Caption:='类型描述';
        end;

    end;
    if (TVMaster.Selected.Text='付款类型') then
    begin
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
        ADOMaster.SQL.Add('select * from ms_pay_type');
        ADOMaster.Open;
        with DBGMaster.Columns do
        begin
        DBGMaster.Columns.Clear;
        col:=DBGMaster.Columns.Add;
        col.FieldName:='Pay_Type_No';
        col.Width:=60;
        col.Title.Caption:='付款编号';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='Pay_Type_Des';
        col.Width:=150;
        col.Title.Caption:='付款描述';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='note';
        col.Width:=150;
        col.Title.Caption:='备注';
        end;

    end;

    if (TVMaster.Selected.Text='进货类型') then
    begin
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
        ADOMaster.SQL.Add('select * from ms_in_type');
        ADOMaster.Open;
        with DBGMaster.Columns do
        begin
        DBGMaster.Columns.Clear;

        col:=DBGMaster.Columns.Add;
        col.FieldName:='In_Type';
        col.Width:=150;
        col.Title.Caption:='类型描述';

        end;

    end;
    if (TVMaster.Selected.Text='出货类型') then
    begin
        ADOMaster.Close;
        ADOMaster.SQL.Clear;
        ADOMaster.SQL.Add('select * from ms_out_type');
        ADOMaster.Open;
        with DBGMaster.Columns do
        begin
        DBGMaster.Columns.Clear;
        col:=DBGMaster.Columns.Add;
        col.FieldName:='Out_Type';
        col.Width:=100;
        col.Title.Caption:='销售类型';

        col:=DBGMaster.Columns.Add;
        col.FieldName:='note';
        col.Width:=150;
        col.Title.Caption:='备注';
        end;

    end;

end;

procedure TfrmMaster.TVMasterClick(Sender: TObject);
begin
    TreeViewClick();
end;

procedure TfrmMaster.SB_AddClick(Sender: TObject);
begin
    if ADOMaster.Active then
    begin
        if(ADOMaster.RecNo=ADOMaster.RecordCount) then
          begin
              ADOMaster.Append;
          end
        else
          begin
              ADOMaster.Insert;
          end;
     SB_Add.Enabled:=false;
     Sb_Save.Enabled:=true;
    end;
end;

procedure TfrmMaster.SB_DeleteClick(Sender: TObject);
begin
    if((ADOMaster.RecordCount>0) and (MessageBox(handle,'确定删除这笔记录吗?', '提示', MB_YESNO)=IDYES)) then
    ADOMaster.Delete;

end;

procedure TfrmMaster.SB_SaveClick(Sender: TObject);
begin
    ADOMaster.Post;
    SB_Save.Enabled:=false;
    SB_Add.Enabled:=true;
end;

procedure TfrmMaster.DSMasterDataChange(Sender: TObject; Field: TField);
begin
    SB_Save.Enabled:=false;
    SB_Add.Enabled:=true;    
end;

procedure TfrmMaster.DBGMasterKeyPress(Sender: TObject; var Key: Char);
begin
 if(Key=#13)   then
 sendmessage(DBGMaster.handle,WM_KEYDOWN,VK_TAB,0) ;

end;

procedure TfrmMaster.BtAddClick(Sender: TObject);
var sPType,sPName,sUnit,snote,_sql:string;
    tmp:TADOQuery;
begin
    if (Cb_PType.Text='') or  (Ed_PName.Text='') or   (Cb_Unit.Text='') then
    ShowMessage('不可以为空值,请填写完整');
    Cb_PType.SetFocus;
    tmp:=TADOQuery.Create(self);
    tmp.Connection:=Main_DM.ADOConn;
    tmp.Close;
    tmp.SQL.Clear;

    sPType:=Trim(Cb_PType.Text);
    sPName:=Trim(Ed_PName.Text);
    sUnit:= Trim(Cb_Unit.Text);
    _sql:='exec sp_cjh_insert_product '''+sPType+''','''+sPName+''','''+sUnit+'''';
    tmp.SQL.Add(_sql);
    tmp.ExecSQL;
    ADOMaster.Close;
    ADOMaster.Open;
    tmp.Free;
    Cb_PType.Text:='';
    Ed_PName.Text:='';
    Cb_Unit.Text:='';
end;

procedure TfrmMaster.BtDeleteClick(Sender: TObject);
var id:string;tmp:TADOQuery;
begin
 tmp:=TADOQuery.Create(self);
 tmp.Connection:=Main_DM.ADOConn;
 tmp.Close;
 tmp.SQL.Clear;

 if not ADOMaster.IsEmpty then
 begin
    if MessageDlg('确定删除这笔数据吗,这样如果有销售资料将查找不到这种产品?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    begin
        id:=ADOMaster.FieldByName('ID').AsString;
        tmp.SQL.Add('delete ms_product where id='''+id+'''');
        tmp.ExecSQL;
        ADOMaster.Close;
        ADOMaster.Open;
    end;

 end;
end;

procedure TfrmMaster.SpeedButton30Click(Sender: TObject);
var newtab:TTabSheet;
begin

end;

end.

⌨️ 快捷键说明

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