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

📄 unitcommunity.pas

📁 社区服务系统
💻 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 + -