【delphi开源代码栏目提醒】:本文主要为网学会员提供FrmSetPC.pas,希望对需要FrmSetPC.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 := f