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

📄 frmsetpc.pas

📁 这是一个商品管理系统
💻 PAS
字号:
unit FrmSetPC;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ADODB, DB, Grids, DBGrids, StdCtrls;

type
  TFormSetPC = class(TForm)
    Label2: TLabel;
    Label3: TLabel;
    Label1: TLabel;
    EditID: TEdit;
    EditName: TEdit;
    BtnAdd: TButton;
    CBObject: TComboBox;
    DataGrid: TDBGrid;
    BtnModify: TButton;
    BtnRemove: TButton;
    BtnOK: TButton;
    DataSource1: TDataSource;
    DataSetPC: TADODataSet;
    CmdSetPC: TADOCommand;
    Label4: TLabel;
    Label5: TLabel;
    CBNation: TComboBox;
    CBArea: TComboBox;
    Label6: TLabel;
    Label7: TLabel;
    EditContact: TEdit;
    EditTel: TEdit;
    Label8: TLabel;
    EditMail: TEdit;
    DataSetNationArea: TADODataSet;
    procedure FormShow(Sender: TObject);
    procedure CBObjectChange(Sender: TObject);
    procedure BtnAddClick(Sender: TObject);
    procedure BtnModifyClick(Sender: TObject);
    procedure BtnRemoveClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormSetPC: TFormSetPC;

implementation

{$R *.dfm}

procedure TFormSetPC.FormShow(Sender: TObject);
var
        TableName, item: string;
        Min, Max, i: integer;
begin
        CBObjectChange(Sender);
        
        CBNation.Clear;
        DataSetNationArea.Active := False;
        DataSetNationArea.CommandText := 'select name from Nation';
        DataSetNationArea.Active := True;
        Min := 0;
        Max := DataSetNationArea.RecordCount;
        DataSetNationArea.First;
        for i := Min to (Max-1) do
        begin
                item := DataSetNationArea.FieldByName('name').AsString;
                CBNation.Items.Add(item);
                DataSetNationArea.Next;
        end;

        CBArea.Clear;
        DataSetNationArea.Active := False;
        DataSetNationArea.CommandText := 'select name from Area';
        DataSetNationArea.Active := True;
        Min := 0;
        Max := DataSetNationArea.RecordCount;
        DataSetNationArea.First;
        for i := Min to (Max-1) do
        begin
                item := DataSetNationArea.FieldByName('name').AsString;
                CBArea.Items.Add(item);
                DataSetNationArea.Next;
        end;
end;

procedure TFormSetPC.CBObjectChange(Sender: TObject);
var
        TableName: string;
begin
        if (CBObject.Text = '供应商') then
                TableName := 'Provider'
        else if (CBObject.Text = '客户') then
                TableName := 'Customer'
        else
                TableName := '';
        if not(TableName = '') then
        begin
                DataSetPC.Active := false;
                DataSetPC.CommandText := 'select * from ' + TableName;
                DataSetPC.Active := true;
        end;
        EditID.Text := '';
        EditName.Text := '';
        EditContact.Text := '';
        EditTel.Text := '';
        EditMail.Text := '';
        CBNation.Text := '';
        CBArea.Text := '';
end;

procedure TFormSetPC.BtnAddClick(Sender: TObject);
var
        TableName, NationID, AreaID: string;
begin
        if (CBObject.Text = '供应商') then
                TableName := 'Provider'
        else if (CBObject.Text = '客户') then
                TableName := 'Customer'
        else
                TableName := '';
        if not(TableName = '') then
        begin
                if (EditID.Text = '') or (EditName.Text = '') or (CBNation.Text = '') or (CBArea.Text = '') then
                begin
                        Application.MessageBox('输入不能为空!', '错误', MB_OK);
                        exit;
                end;

                DataSetNationArea.Active := false;
                DataSetNationArea.CommandText := 'select id from Nation where name = ''' + CBNation.Text + '''';
                DataSetNationArea.Active := true;
                if not(DataSetNationArea.IsEmpty) then
                begin
                       NationID := DataSetNationArea.FieldByName('id').AsString;
                end
                else
                begin
                       Application.MessageBox('无效的国家名称!', '错误', MB_OK);
                       Exit;
                end;

                DataSetNationArea.Active := false;
                DataSetNationArea.CommandText := 'select id from Area where name = ''' + CBArea.Text + '''';
                DataSetNationArea.Active := true;
                if not(DataSetNationArea.IsEmpty) then
                begin
                        AreaID := DataSetNationArea.FieldByName('id').AsString;
                end
                else
                begin
                        Application.MessageBox('无效的地区名称!', '错误', MB_OK);
                        Exit;
                end;

                CmdSetPC.CommandText :=
                        'INSERT INTO ' + TableName
                        + ' VALUES('''
                        + EditID.Text
                        + ''',''' + EditName.Text
                        + ''',''' + NationID
                        + ''',''' + AreaID
                        + ''',''' + EditContact.Text
                        + ''',''' + EditTel.Text
                        + ''',''' + EditMail.Text
                        + ''')';
                CmdSetPC.Execute;

                CBObjectChange(Sender);                                                      
        end
end;

procedure TFormSetPC.BtnModifyClick(Sender: TObject);
var
        TableName, NationID, AreaID: string;
begin
        if (CBObject.Text = '供应商') then
                TableName := 'Provider'
        else if (CBObject.Text = '客户') then
                TableName := 'Customer'
        else
                TableName := '';
        if not(TableName = '') then
        begin
                if (EditID.Text = '') or (EditName.Text = '') or (CBNation.Text = '') or (CBArea.Text = '') then
                begin
                        Application.MessageBox('输入不能为空!', '错误', MB_OK);
                        exit;
                end;

                DataSetNationArea.Active := false;
                DataSetNationArea.CommandText := 'select id from Nation where name = ''' + CBNation.Text + '''';
                DataSetNationArea.Active := true;
                if not(DataSetNationArea.IsEmpty) then
                begin
                       NationID := DataSetNationArea.FieldByName('id').AsString;
                end
                else
                begin
                       Application.MessageBox('无效的国家名称!', '错误', MB_OK);
                       Exit;
                end;

                DataSetNationArea.Active := false;
                DataSetNationArea.CommandText := 'select id from Area where name = ''' + CBArea.Text + '''';
                DataSetNationArea.Active := true;
                if not(DataSetNationArea.IsEmpty) then
                begin
                        AreaID := DataSetNationArea.FieldByName('id').AsString;
                end
                else
                begin
                        Application.MessageBox('无效的地区名称!', '错误', MB_OK);
                        Exit;
                end;

                CmdSetPC.CommandText :=
                        'UPDATE ' + TableName
                        + ' SET name = '''
                        + EditName.Text
                        + ''', nation = ''' + NationID
                        + ''', area = ''' + AreaID
                        + ''', contact = ''' + EditContact.Text
                        + ''', tel = ''' + EditTel.Text
                        + ''', email = ''' + EditMail.Text
                        + ''' WHERE ID = '''
                        + EditID.Text +
                        '''';
                CmdSetPC.Execute;

                CBObjectChange(Sender);
        end
end;

procedure TFormSetPC.BtnRemoveClick(Sender: TObject);
var
        TableName: string;
begin
        if (CBObject.Text = '供应商') then
                TableName := 'Provider'
        else if (CBObject.Text = '客户') then
                TableName := 'Customer'
        else
                TableName := '';
        if not(TableName = '') then
        begin
                CmdSetPC.CommandText :=
                        'DELETE FROM ' + TableName
                        + ' WHERE ID = '''
                        + EditID.Text +
                        '''';
                CmdSetPC.Execute;

                CBObjectChange(Sender);
        end
end;

end.

⌨️ 快捷键说明

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