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

📄 cbgl.pas

📁 房屋出租信息管理系统,房屋出租信息的录入、查询、删除以及用户管理等功能
💻 PAS
字号:
unit Cbgl;

interface

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

type
  TCbglForm = class(TForm)
    Panel2: TPanel;
    bitbtn_insert: TBitBtn;
    bitbtn_modify: TBitBtn;
    bitbtn_post: TBitBtn;
    bitbtn_cancel: TBitBtn;
    Panel4: TPanel;
    DBGrid2: TDBGrid;
    Panel1: TPanel;
    Label1: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label3: TLabel;
    DS_Cbgl: TDataSource;
    ADQ_Cbgl: TADOQuery;
    ADOQry_insert: TADOQuery;
    ADOQry_update: TADOQuery;
    Ed_Fh: TEdit;
    Ed_Db: TEdit;
    Ed_Lsb: TEdit;
    Ed_Rsb: TEdit;
    Ed_Mqb: TEdit;
    DT_Cbrq: TDateTimePicker;
    ADQ_Fh: TADOQuery;
    DS_Fh: TDataSource;
    DBGrid1: TDBGrid;
    ADQ_RecordCount: TADOQuery;
    BBtn_Print: TBitBtn;
    bitbtn_quit: TBitBtn;
    procedure bitbtn_insertClick(Sender: TObject);
    procedure bitbtn_quitClick(Sender: TObject);
    procedure bitbtn_postClick(Sender: TObject);
    procedure bitbtn_modifyClick(Sender: TObject);
    procedure bitbtn_cancelClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Ed_FhChange(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure Ed_FhKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Ed_FhKeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BBtn_PrintClick(Sender: TObject);
  private
    { Private declarations }
  public
     Select_flag:integer;
     procedure cleardata;
     procedure enabledAdd;
     procedure enabledfalse;
     procedure AddData;
     procedure insert;
    { Public declarations }
  end;

var
  CbglForm: TCbglForm;

implementation

uses DataModule,DateUtils, Unit_common_files, Cbreport;

{$R *.dfm}
procedure TcbglForm.insert ;
var nYear,nMonth,nDay:word;
begin
     DecodeDate(Now(),nYear,nMonth,nDay);
     GetTableName(nYear,nMonth);
     oldTableName:=StrTableName;
 if ADOQry_insert.Active  then
    ADOQry_insert.Close;
    ADOQry_insert.SQL.Clear ;
    ADOQry_insert.SQL.Add('insert '+ StrTableName+ '(fangno,cbrq,lsb,rsb,db,mqb)');
    ADOQry_insert.SQL.Add('values (:fangno,:cbrq,:lsb,:rsb,:db,:mqb)');
    ADOQry_insert.Parameters.ParamByName('fangNO').Value :=Ed_Fh.Text ;
    ADOQry_insert.Parameters.ParamByName('cbrq').Value   :=DT_Cbrq.Date ;
    ADOQry_insert.Parameters.ParamByName('lsb').Value    :=Ed_Lsb.Text ;
    ADOQry_insert.Parameters.ParamByName('rsb').Value    :=Ed_Rsb.Text ;
    ADOQry_insert.Parameters.ParamByName('db').Value     :=Ed_db.Text ;
    ADOQry_insert.Parameters.ParamByName('mqb').Value    :=Ed_Mqb.Text ;
    ADOQry_insert.ExecSQL;

    DB_module.ADOCon.CommitTrans;
    showmessage('保存成功!');
    if ADQ_Cbgl.Active then
       ADQ_Cbgl.Close;
       ADQ_Cbgl.Open ;
end;
procedure TCbglForm.enabledAdd ;
begin
  bitbtn_insert.Enabled:=false;
  bitbtn_post.Enabled  :=true;
  bitbtn_cancel.Enabled:=true;
  Ed_Fh.Enabled        :=true;
  Ed_Lsb.Enabled       :=true;
  Ed_Rsb.Enabled       :=true;
  Ed_Mqb.Enabled       :=true;
  Ed_db.Enabled        :=true;
  DT_Cbrq.Enabled      :=true;
end;
procedure TCbglForm.cleardata ;
begin
  Ed_fh.Clear ;
  Ed_Lsb.Clear ;
  Ed_rsb.Clear ;
  Ed_db.Clear ;
  Ed_Mqb.Clear ;
end;
procedure TCbglForm.enabledfalse ;
begin
  Ed_fh.Enabled        :=false;
  Ed_Lsb.Enabled       :=false;
  Ed_rsb.Enabled       :=false;
  Dt_Cbrq.Enabled      :=false;
  Ed_db.Enabled        :=false;
  Ed_Mqb.Enabled       :=false;
  bitbtn_cancel.Enabled:=false;
  bitbtn_insert.Enabled:=true;
end;
procedure TCbglForm.AddData ;
begin
  Ed_fh.Text  := ADQ_Cbgl.fieldbyname('fangno').Text ;
  Ed_Lsb.Text := ADQ_Cbgl.fieldbyname('Lsb').Text ;
  Ed_rsb.Text := ADQ_Cbgl.fieldbyname('Rsb').Text ;
  ED_db.Text  := ADQ_Cbgl.fieldbyname('db').Text ;
  Ed_Mqb.Text := ADQ_Cbgl.fieldbyname('mqb').Text ;
  DT_cbrq.Date:= ADQ_Cbgl.fieldbyname('cbrq').Value ;
end;

procedure TCbglForm.bitbtn_insertClick(Sender: TObject);
begin
 select_flag:=1;
 enabledadd;
 cleardata;
 Ed_Fh.SetFocus ;
end;

procedure TCbglForm.bitbtn_quitClick(Sender: TObject);
begin
 close;
end;

procedure TCbglForm.bitbtn_postClick(Sender: TObject);
var nYear,nMonth,nDay:word;
begin
   try
   if Ed_fh.Text=''  then
        begin
          Application.MessageBox('请填写房号','余科华提示',MB_OK+MB_ICONINFORMATION);
          Ed_Fh.SetFocus ;
          exit;
        end;
   if Ed_Rsb.Text ='' then
      Ed_Rsb.Text :='0';
   if Ed_Lsb.Text ='' then
      Ed_Lsb.Text :='0';
   if Ed_Db.Text  ='' then
      Ed_Db.Text  :='0';
   if Ed_Mqb.Text ='' then
      Ed_Mqb.Text :='0';              
  if DB_module.ADOCon.InTransaction then DB_module.ADOCon.RollbackTrans ;
     DB_module.ADOCon.BeginTrans;
  if Select_flag=1 then
  begin
        DecodeDate(Now(),nYear,nMonth,nDay);
        GetTableName(nYear,nMonth);
        oldTableName:=StrTableName;
        ADQ_RecordCount.Close ;
        ADQ_RecordCount.SQL.Clear ;
        ADQ_RecordCount.SQL.Add('select *From '+ StrTableName+ ' where fangno =:fangno');
        ADQ_RecordCount.Parameters.ParamByName('fangno').Value :=trim(Ed_Fh.Text);
        ADQ_RecordCount.Open ;
        if ADQ_Recordcount.RecordCount >0 then
          begin
           //if MessageDlg('抄表每月只能一次!确认要退房吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
           if application.MessageBox('抄表每月只能一次!确认要退房吗?','余科华提示',mb_okcancel)=idok   then
              begin
                insert;
              end;
          end
        else
          begin
          insert;
          end;
   end
 else if select_flag=2 then
  begin
     if ADOQry_update.Active then
        ADOQry_update.Close;
        ADOQry_update.SQL.Clear ;
        ADOQry_update.SQL.Add('update '+ StrTableName+ ' set fangno= :fangno,cbrq = :cbrq,');
        ADOQry_update.SQL.Add('lsb= :lsb,rsb= :rsb,db = :db,mqb= :mqb where ID=:oldID');
        ADOQry_update.Parameters.ParamByName('fangNO').Value :=Ed_Fh.Text ;
        ADOQry_update.Parameters.ParamByName('cbrq').Value   :=DT_Cbrq.Date ;
        ADOQry_update.Parameters.ParamByName('lsb').Value    :=Ed_Lsb.Text ;
        ADOQry_update.Parameters.ParamByName('rsb').Value    :=Ed_Rsb.Text ;
        ADOQry_update.Parameters.ParamByName('db').Value     :=Ed_db.Text ;
        ADOQry_update.Parameters.ParamByName('mqb').Value    :=Ed_Mqb.Text ;
        ADOQry_update.ExecSQL;
        ADOQry_update.ExecSQL;
        ADOQry_update.Parameters.ParamByName('oldID').value:=ADQ_Cbgl.FieldByName('ID').Value ;

        ADOQry_update.ExecSQL;

        DB_module.ADOCon.CommitTrans;
        showmessage('修改成功!');
    if  ADQ_Cbgl.Active then
        ADQ_Cbgl.Close;
        ADQ_Cbgl.Open ;
  end
 except
  begin
   MessageBox(0,'操作失败!','',MB_OK+MB_ICONERROR);
   DB_module.ADOCon.RollbackTrans;
   exit;
  end;
end;
  enabledfalse ;
end;

procedure TCbglForm.bitbtn_modifyClick(Sender: TObject);
begin
   select_flag:=2;
   AddData;
   enabledAdd;
end;

procedure TCbglForm.bitbtn_cancelClick(Sender: TObject);
begin
   enabledfalse ;
   bitbtn_insert.Enabled:=true;
   bitbtn_post.Enabled  :=false;
   bitbtn_cancel.Enabled:=false;
   DBGrid1.Visible      :=false;
end;

procedure TCbglForm.FormCreate(Sender: TObject);
var nYear,nMonth,nDay:word;
begin
  DT_Cbrq.Date:=date();
  DBGrid1.Height:=73;
  DecodeDate(Now(),nYear,nMonth,nDay);
  GetTableName(nYear,nMonth);
  oldTableName:=StrTableName;
  ADQ_Cbgl.Close  ;
  ADQ_Cbgl.SQL.Clear ;
  ADQ_Cbgl.SQL.Add('SELECT A.manid, B.manname, A.fangno,C.Cbrq, C.lsb, C.rsb, ');
  ADQ_Cbgl.SQL.Add('C.db, C.mqb FROM '+StrTableName+' C');
  ADQ_Cbgl.SQL.Add('INNER JOIN  dbo.Zf_Rz A ON C.fangno = A.fangno ');
  ADQ_Cbgl.SQL.Add('INNER JOIN  dbo.Zf_Man B ON A.manid = B.manid'); 
  ADQ_Cbgl.Open ;
end;

procedure TCbglForm.Ed_FhChange(Sender: TObject);
begin
  if ADQ_Fh.Active then
     ADQ_Fh.Close;
     ADQ_Fh.SQL.Clear ;
     ADQ_Fh.SQL.Add('select fangno,area,housetype,facetype,sb,fangya,fangprice,');
     ADQ_Fh.SQL.Add('case status when ''1'' then ''已出租'' else ''未出租'' end as status from fjcb');
     ADQ_Fh.SQL.Add('where fangno like :fangno');
     ADQ_Fh.Parameters.ParamByName('fangno').Value:=trim(Ed_Fh.Text)+'%';
     ADQ_Fh.Prepared ;
     ADQ_Fh.Open ;
     dbgrid1.Visible:=true;
end;

procedure TCbglForm.DBGrid1DblClick(Sender: TObject);
begin
 (sender as tdbgrid).perform(wm_keydown,13,0);
end;

procedure TCbglForm.Ed_FhKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if key=vk_f1 then
  begin
    dbgrid1.Visible:=true;
    dbgrid1.setfocus;
  end
  else if key=13 then
  begin
      ADQ_Fh.Close ;
      ADQ_Fh.Open ;
      Ed_Fh.Text:=ADQ_Fh.fieldbyname('fangno').asstring;
      dbgrid1.visible:=true;
      Ed_Fh.SetFocus;
  end
  else
  if key=40 then
  begin
    dbgrid1.visible:=true;
    dbgrid1.setfocus;
  end;
end;

procedure TCbglForm.Ed_FhKeyPress(Sender: TObject; var Key: Char);
begin
if (key>='0')and(key<='9') then
  begin
    dbgrid1.visible:=true;
    ADQ_Fh.Locate('fangno',trim(Ed_Fh.text+char(key)),[]);
  end;
end;

procedure TCbglForm.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=13 then
  begin
    Ed_Fh.Text:=ADQ_Fh.fieldbyname('fangno').asstring;
    dbgrid1.visible:=false;
    Ed_Fh.SetFocus;
  end;
end;

procedure TCbglForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action  :=cafree;
 CbglForm:=nil; 
end;

procedure TCbglForm.BBtn_PrintClick(Sender: TObject);
begin
{ if ADQ_Cbgl.IsEmpty then
    begin
       messagebox(0,'请查询后再打印!','余科华提示',MB_OK+MB_ICONWARNING);
       Exit;
    end
 else
    begin
      if BbForm_report=nil then
         BbForm_report:=TBbForm_report.Create(nil);
         BbForm_report.QRL_Cbr.Caption :=CurrentUserName;
         BbForm_report.print_date.Caption:=inttostr(yearof(date))+'年'+inttostr(monthof(date))+'月'+inttostr(dayof(date))+'日';
         BbForm_report.Cb_report.Preview ;
    end;}
end;

end.

⌨️ 快捷键说明

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