📄 cbgl.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 + -