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

📄 goodsinfounit.pas

📁 在数据库应用系统开发之前
💻 PAS
字号:
unit GoodsInfoUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, DBGrids, ComCtrls, ToolWin, ExtCtrls;

type
  TGoodsInfoForm = class(TForm)
    PanelBkGnd: TPanel;
    Splitter1: TSplitter;
    ControlBar1: TControlBar;
    ToolBar1: TToolBar;
    TB_add: TToolButton;
    TB_EDIT: TToolButton;
    TB_DEL: TToolButton;
    ToolButton5: TToolButton;
    TB_EXIT: TToolButton;
    DBG_BASSMESS: TDBGrid;
    DBG_name: TDBGrid;
    Query_name: TQuery;
    DataSource_name: TDataSource;
    DataSource: TDataSource;
    Query_data: TQuery;
    Query_DEL: TQuery;
    tb_refresh: TToolButton;
    procedure TB_addClick(Sender: TObject);
    procedure tb_refreshClick(Sender: TObject);
    procedure TB_EDITClick(Sender: TObject);
    procedure TB_DELClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TB_EXITClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DBG_nameCellClick(Column: TColumn);
    procedure DBG_BASSMESSDblClick(Sender: TObject);
  private
    B_create: boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  GoodsInfoForm: TGoodsInfoForm;

implementation

uses GoodsEditUnit, MainUnit, FunctionUnit;

{$R *.dfm}

procedure TGoodsInfoForm.TB_addClick(Sender: TObject);
begin
  if not Checkrights(USERRIGHTS, '增加') then
  begin
    messagedlg(Errormsg0006 + '0007', mterror, [mbok], 0);
    exit;
  end;
  Application.CreateForm(TGoodsEditForm, GoodsEditForm);
  GoodsEditForm.e_name.Text := Query_data.fieldbyname('name').asstring;
  GoodsEditForm.Caption := '商品信息(增加)';
  GoodsEditForm.P_state := 0;
  GoodsEditForm.showmodal;
  GoodsEditForm.free;
  tb_refresh.Click;
  query_data.Last;
end;

procedure TGoodsInfoForm.tb_refreshClick(Sender: TObject);
var
  I_index: integer;
begin
  I_index := query_data.RecNo;
  QUERY_data.Close;
  QUERY_data.Open;
  if I_index < query_data.RecordCount then
    query_data.RecNo := I_index
  else
    query_data.Last;
end;

procedure TGoodsInfoForm.TB_EDITClick(Sender: TObject);
begin
  //检查用户是否拥有编辑权限
  if not Checkrights(USERRIGHTS, '编辑') then
  begin
    messagedlg(Errormsg0006 + '0007', mterror, [mbok], 0);
    exit;
  end;
  Application.CreateForm(TGoodsEditForm, GoodsEditForm);
  GoodsEditForm.Caption := '商品信息(编辑)';
  GoodsEditForm.P_state := 1;  //1表示编辑记录,0表示增加记录
  with query_data do
  begin
    GoodsEditForm.E_name.Text := fieldbyname('name').asstring;
    GoodsEditForm.E_type.Text := fieldbyname('type').asstring;
    GoodsEditForm.E_id.Text := fieldbyname('id').asstring;
    GoodsEditForm.E_unit.Text := fieldbyname('unit').asstring;
    GoodsEditForm.E_price.Text := fieldbyname('price').asstring;
    GoodsEditForm.E_sellprice.Text := fieldbyname('sellprice').asstring;
    GoodsEditForm.E_memo.Text := fieldbyname('memo').asstring;
  end;
  GoodsEditForm.showmodal;
  GoodsEditForm.free;
  tb_refresh.Click;  //刷新窗体

end;

procedure TGoodsInfoForm.TB_DELClick(Sender: TObject);
begin
  if not Checkrights(USERRIGHTS, '删除') then
  begin
    messagedlg(Errormsg0006 + '0007', mterror, [mbok], 0);
    exit;
  end;
  if messagedlg('警告:删除商品信息数据可能产生严重数据丢失现象,请不要在此删除商品信息数据' + chr(13) + chr(13)
    + '删除数据操作将不可恢复,确定要删除本记录吗?', mtWarning, [mbyes, mbno], 0) = mryes then
    if messagedlg('再次警告:为了保证数据库内数据信息的完整性,请不要在此商品信息数据' + chr(13) + chr(13)
      + '删除数据操作将不可恢复,确定要删除本记录吗?', mtWarning, [mbyes, mbno], 0) = mryes then
    begin
      with query_del do
      begin
        close;
        sql.Clear;
        sql.Text := 'delete from goods where id=''' + query_data.fieldbyname('ID').asstring + '''';
        try
          execsql;
        except
          messagedlg(Errormsg0005 + '0009', mtError, [mbok], 0);
          close;
          exit;
        end;
        messagedlg(Infmsg0002, mtInformation, [mbok], 0);
        close;
        tb_refresh.Click;
      end;
    end;

end;

procedure TGoodsInfoForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Datasource_name.Free;
  query_name.Free;
  query_del.Free;
end;

procedure TGoodsInfoForm.TB_EXITClick(Sender: TObject);
begin
  Self.Close;
end;

procedure TGoodsInfoForm.FormCreate(Sender: TObject);
begin
  B_create := false;
  self.Caption := Application.Title + ' - 商品资料信息设置';
  query_data.DatabaseName := 'CPXSGL';
  query_name.DatabaseName := 'CPXSGL';
  query_del.DatabaseName := 'CPXSGL';
  with query_name do
  begin
    close;
    sql.Clear;
    sql.Text := 'SELECT NAME FROM goods GROUP BY NAME ORDER BY NAME';
    try
      open;
      B_create := true;
    except
      messagedlg(Errormsg0001 + '0012', mtError, [mbok], 0);
      close;
      B_create := false;
    end;
  end;
  with query_data do
  begin
    close;
    sql.Clear;
    sql.Text := 'SELECT * FROM goods ORDER BY NAME';
    try
      open;
      B_create := true;
    except
      messagedlg(Errormsg0001 + '0012', mtError, [mbok], 0);
      close;
      B_create := false;
    end;
  end;
  Query_name.First;

end;

procedure TGoodsInfoForm.DBG_nameCellClick(Column: TColumn);
begin
  with query_data do
  begin
    close;
    sql.Clear;
    sql.Text := 'SELECT * FROM goods where Name="' + DBG_name.SelectedField.Text
      + '" ORDER BY NAME';
    try
      open;
      B_create := true;
    except
      messagedlg(Errormsg0001 + '0012', mtError, [mbok], 0);
      close;
      B_create := false;
    end;
  end;
end;

procedure TGoodsInfoForm.DBG_BASSMESSDblClick(Sender: TObject);
begin
  TB_edit.Click
end;

end.

⌨️ 快捷键说明

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