📄 unitcommunity.pas
字号:
unit UnitCommunity;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls, DB, ADODB;
type
TfrmCommunity = class(TForm)
GroupBox1: TGroupBox;
DBGrid1: TDBGrid;
Panel1: TPanel;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
edtCID: TEdit;
edtCName: TEdit;
edtCMainMan: TEdit;
edtCPhone: TEdit;
edtCEmail: TEdit;
edtCAddress: TEdit;
edtCPost: TEdit;
memCInfo: TMemo;
memCommu: TMemo;
adoCommu: TADOQuery;
DataSource1: TDataSource;
bbtnAdd: TBitBtn;
bbtnModify: TBitBtn;
bbtnDel: TBitBtn;
bbtnSave: TBitBtn;
bbtnCancel: TBitBtn;
bbtnExit: TBitBtn;
procedure bbtnAddClick(Sender: TObject);
procedure bbtnModifyClick(Sender: TObject);
procedure bbtnCancelClick(Sender: TObject);
procedure bbtnExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bbtnSaveClick(Sender: TObject);
procedure adoCommuAfterScroll(DataSet: TDataSet);
procedure bbtnDelClick(Sender: TObject);
private
{ Private declarations }
procedure ButtonState(btag:integer); //定义按钮状态过程
procedure ShowList; //社区列表显示
public
{ Public declarations }
end;
var
frmCommunity: TfrmCommunity;
iflag : integer; //记录操作,如添加,iflag=1;修改,iflag=2
strCID : string; //社区编号
strMsg : string;
strsql : string;
const DOADD = 1;
const DOMODIFY = 2;
const DOCANCEL = 3;
const DOSHOW = 4;
implementation
uses UnitADOConn;
{
*************************************************************************************
函数名称:按钮状态
功能描述:要求在增加状态后,只有保存,取消可以操作,别的按钮不可操作。修改、删除状态也一样。
输入参数:btag,添加,btag=1;修改,btag=2
输出参数:
返回 值: 无
说 明:
*************************************************************************************
}
procedure TfrmCommunity.ButtonState(btag : integer);
begin
case btag of
1 : //添加时按钮状态
begin
bbtnModify.Enabled := false;
bbtnSave.Enabled := true;
bbtnCancel.Enabled := true;
bbtnDel.Enabled := false;
end;
2: //修改
begin
bbtnAdd.Enabled := false;
bbtnSave.Enabled := true;
bbtnCancel.Enabled := true;
bbtnDel.Enabled := false;
end;
3: //取消
begin
bbtnadd.Enabled := true;
bbtnModify.Enabled := true;
bbtnDel.Enabled := true;
bbtnSave.Enabled := false;
end;
4: //显示状态
begin
bbtnadd.Enabled := true;
bbtnModify.Enabled := true;
bbtnDel.Enabled := true;
bbtnSave.Enabled := false;
end;
end;
end;
{$R *.dfm}
procedure TfrmCommunity.bbtnAddClick(Sender: TObject);
var
iTmp : integer;
iMax : integer;
i : integer;
strTmp : string;
begin
iflag := DOADD;
buttonState(DOADD);
try
adoshare.Close;
adoshare.SQL.Text := 'select * from TCommunity';
adoshare.Open;
if adoshare.RecordCount=0 then
edtCID.Text := 'C001'
else
begin
adoshare.First;
iMax := strtoint(copy(adoshare.fieldbyname('CID').AsString,2,length(adoshare.fieldbyname('CID').AsString)));
adoshare.First;
for i := 0 to adoshare.RecordCount-1 do
begin
iTmp := strtoint(copy(adoshare.fieldbyname('CID').AsString,2,length(adoshare.fieldbyname('CID').AsString)));
if iTmp>iMax then
iMax := iTmp;
adoshare.Next;
end;
iMax := iMax + 1;
if length(inttostr(iMax))=1 then
strTmp :='C00'+inttostr(iMax)
else if length(inttostr(iMax))=2 then
strTmp :='C0'+inttostr(iMax);
edtCId.Text := strTmp;
edtCId.ReadOnly := true;
end;
adoshare.close;
edtCName.ReadOnly := false;
edtCPhone.ReadOnly := false;
edtCMainMan.ReadOnly := false;
edtCEmail.ReadOnly := false;
edtCAddress.ReadOnly := false;
edtCPost.ReadOnly := false;
memCInfo.ReadOnly := false;
memCommu.ReadOnly := false;
edtCName.Text := '';
edtCPhone.Text := '';
edtCMainMan.Text := '';
edtCEmail.Text := '';
edtCAddress.Text := '';
edtCPost.Text := '';
memCInfo.Text := '';
memCommu.Text := '';
except
on e:exception do
showmessage(e.Message);
end;
end;
procedure TfrmCommunity.bbtnModifyClick(Sender: TObject);
begin
iflag := DOMODIFY;
ButtonState(DOMODIFY);
edtCName.ReadOnly := false;
edtCPhone.ReadOnly := false;
edtCMainMan.ReadOnly := false;
edtCEmail.ReadOnly := false;
edtCAddress.ReadOnly := false;
edtCPost.ReadOnly := false;
memCInfo.ReadOnly := false;
memCommu.ReadOnly := false;
edtCName.SetFocus;
end;
procedure TfrmCommunity.bbtnCancelClick(Sender: TObject);
begin
ButtonState(DOCANCEL);
if iflag=1 then
begin
edtCID.Text := adoCommu.fieldbyname('CID').AsString;
edtCName.Text := adoCommu.fieldbyname('CName').AsString;
edtCPhone.Text :=adoCommu.fieldbyname('CPhone').AsString;
edtCMainMan.Text := adoCommu.fieldbyname('CMainMan').AsString;
edtCEmail.Text := adoCommu.fieldbyname('CEmail').AsString;
edtCAddress.Text := adoCommu.fieldbyname('CAddress').AsString;
edtCPost.Text := adoCommu.fieldbyname('CPost').AsString;
memCInfo.Text := adoCommu.fieldbyname('CInfo').AsString;
memCommu.Text := adoCommu.fieldbyname('CMemo').AsString;
iflag := 0;
end;
if iflag = 2 then
begin
adoshare.Close;
adoshare.SQL.Text := 'select CID,CName,CMainMan,CPhone,CEmail,CAddress,CPost,CInfo,CMemo';
adoshare.SQL.Text := adoshare.SQL.Text+' from Tcommunity where CID='''+edtCID.Text+'''';
adoshare.Open;
edtCName.Text := adoshare.fieldbyname('CName').AsString;
edtCPhone.Text :=adoshare.fieldbyname('CPhone').AsString;
edtCMainMan.Text := adoshare.fieldbyname('CMainMan').AsString;
edtCEmail.Text := adoshare.fieldbyname('CEmail').AsString;
edtCAddress.Text := adoshare.fieldbyname('CAddress').AsString;
edtCPost.Text := adoshare.fieldbyname('CPost').AsString;
memCInfo.Text := adoshare.fieldbyname('CInfo').AsString;
memCommu.Text := adoshare.fieldbyname('CMemo').AsString;
adoshare.Close;
iflag := 0;
end;
end;
procedure TfrmCommunity.bbtnExitClick(Sender: TObject);
begin
close;
end;
{
*************************************************************************************
函数名称:显示DBGrid列表
功能描述:将TCommunity表中的数据在DBGrid列表中显示出来
输入参数: 无
输出参数: 无
返回 值: 无
说 明: 添加、修改、删除操作要调用该函数以达到显示更新后的数据显示目的
*************************************************************************************
}
procedure TfrmCommunity.ShowList;
begin
adoCommu.Connection := adoconn;
adoCommu.Close;
adoCommu.SQL.Text := 'select * from Tcommunity where CState=''1'' order by CID';
adoCommu.Open;
edtCID.ReadOnly := true;
edtCName.ReadOnly := true;
edtCPhone.ReadOnly := true;
edtCMainMan.ReadOnly := true;
edtCEmail.ReadOnly := true;
edtCAddress.ReadOnly := true;
edtCPost.ReadOnly := true;
memCInfo.ReadOnly := true;
memCommu.ReadOnly := true;
edtCID.Text := adoCommu.fieldbyname('CID').AsString;
edtCName.Text := adoCommu.fieldbyname('CName').AsString;
edtCPhone.Text :=adoCommu.fieldbyname('CPhone').AsString;
edtCMainMan.Text := adoCommu.fieldbyname('CMainMan').AsString;
edtCEmail.Text := adoCommu.fieldbyname('CEmail').AsString;
edtCAddress.Text := adoCommu.fieldbyname('CAddress').AsString;
edtCPost.Text := adoCommu.fieldbyname('CPost').AsString;
memCInfo.Text := adoCommu.fieldbyname('CInfo').AsString;
memCommu.Text := adoCommu.fieldbyname('CMemo').AsString;
ButtonState(4);
end;
procedure TfrmCommunity.FormShow(Sender: TObject);
begin
showlist;
if blnAdd = false then //如果用户没有添加的权限,则将添加按钮置为不可见状态
bbtnAdd.Visible := false;
if blnModify = false then //如果用户没有修改的权限,则将修改按钮置为不可见状态
bbtnModify.Visible := false;
if blnDel = false then //如果用户没有删除的权限,则将删除按钮置为不可见状态
bbtnDel.Visible := false;
end;
procedure TfrmCommunity.bbtnSaveClick(Sender: TObject);
begin
try
case iflag of
1:
begin
strMsg := '添加';
strsql := 'insert into Tcommunity (CID,CName,CMainMan,CPhone,CEmail,CAddress,CPost,CState,CInfo,CMemo)';
strsql := strsql + ' values ('''+edtCID.Text+''','''+edtCName.Text+''','''+edtCMainMan.Text+''',''';
strsql := strsql + edtCPhone.Text+''','''+edtCEmail.Text+''','''+edtCAddress.Text+''','''+edtCPost.Text;
strsql := strsql + ''','+'''1'''+','''+memCInfo.Text+''','''+memCommu.Text+''')';
adopub.Close;
adopub.SQL.Text := strsql;
adopub.ExecSQL;
showmessage('添加成功');
showlist;
end;
2:
begin
strMsg := '修改';
adopub.Close;
strsql := 'update TCommunity set CName=''' + edtCName.Text + ''',CMainMan=''' + edtCMainMan.Text;
strsql := strsql + ''',CPhone=''' + edtCPhone.Text + ''',CEmail=''' + edtCEmail.Text + ''',CAddress=''';
strsql := strsql + edtCAddress.Text + ''',CPost=''' + edtCPost.Text + ''',CInfo=''' + memCInfo.Text;
strsql := strsql + ''',CMemo=''' + memCommu.Text + ''' where CID=''' + edtCID.Text + '''';
adopub.SQL.Text := strsql;
adopub.ExecSQL;
adopub.Close;
showmessage('修改成功');
showlist;
end
else
exit;
end;
except
showmessage('执行'+strMsg+'操作不成功');
end;
end;
procedure TfrmCommunity.adoCommuAfterScroll(DataSet: TDataSet);
begin
edtCID.Text := adoCommu.fieldbyname('CID').AsString;
edtCName.Text := adoCommu.fieldbyname('CName').AsString;
edtCPhone.Text :=adoCommu.fieldbyname('CPhone').AsString;
edtCMainMan.Text := adoCommu.fieldbyname('CMainMan').AsString;
edtCEmail.Text := adoCommu.fieldbyname('CEmail').AsString;
edtCAddress.Text := adoCommu.fieldbyname('CAddress').AsString;
edtCPost.Text := adoCommu.fieldbyname('CPost').AsString;
memCInfo.Text := adoCommu.fieldbyname('CInfo').AsString;
memCommu.Text := adoCommu.fieldbyname('CMemo').AsString;
end;
procedure TfrmCommunity.bbtnDelClick(Sender: TObject);
var
iDel : integer;
begin
iDel := application.MessageBox('确定要删除吗?','删除提示',MB_YESNO+MB_Iconquestion);
if iDel=6 then
begin
adoshare.Close;
adoshare.SQL.Text := 'update Tcommunity set CState=''0'' where CID='''+edtCID.Text+'''';
adoshare.ExecSQL;
adoshare.Close;
showmessage('删除成功');
showlist;
end
else
begin
exit;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -