📄 rssf.pas
字号:
unit RsSf;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Buttons, ComCtrls, ExtCtrls;
type
TRsSfForm = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
Label12: TLabel;
Label9: TLabel;
Label3: TLabel;
Label6: TLabel;
Label11: TLabel;
Ed_Fh: TEdit;
Ed_Bh: TEdit;
Ed_Xm: TEdit;
Ed_Sybd: TEdit;
Ed_Bybd: TEdit;
Ed_Sys: TEdit;
Ed_Dj: TEdit;
Ed_Yfj: TEdit;
Ed_Sfj: TEdit;
DT_Jkrq: TDateTimePicker;
Com_Status: TComboBox;
Ed_Sycbrq: TEdit;
Panel2: TPanel;
bitbtn_insert: TBitBtn;
bitbtn_modify: TBitBtn;
bitbtn_post: TBitBtn;
bitbtn_cancel: TBitBtn;
Panel3: TPanel;
DBGrid1: TDBGrid;
DS_RsSf: TDataSource;
ADQ_RsSf: TADOQuery;
ADQ_Rsglshow: TADOQuery;
ADOQry_update: TADOQuery;
ADOQry_insert: TADOQuery;
ADQ_Dj: TADOQuery;
ADQ_Date: TADOQuery;
ADQ_RecordCount: TADOQuery;
Ed_rq: TEdit;
BBtn_Print: TBitBtn;
fieldname: TComboBox;
BitBtn_find: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure bitbtn_insertClick(Sender: TObject);
procedure bitbtn_modifyClick(Sender: TObject);
procedure bitbtn_cancelClick(Sender: TObject);
procedure bitbtn_postClick(Sender: TObject);
procedure Ed_FhChange(Sender: TObject);
procedure Ed_FhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Ed_FhKeyPress(Sender: TObject; var Key: Char);
procedure BitBtn_findClick(Sender: TObject);
procedure BBtn_PrintClick(Sender: TObject);
private
{ Private declarations }
public
select_flag:integer;
procedure cleardata;
procedure enabledAdd;
procedure enabledfalse;
procedure AddData;
procedure Fhquery;
procedure Fhquery1;
procedure Fhadddata;
procedure Fhdate;
{ Public declarations }
end;
var
RsSfForm: TRsSfForm;
implementation
uses DataModule, Unit_common_files, RsSfGjCx, Cbreport;
{$R *.dfm}
procedure TRsSfForm.Fhdate ;
var nYear,nMonth,nDay:word;
begin
DecodeDate(Now(),nYear,nMonth,nDay);
GetTableName(nYear,nMonth);
GetsyTableName(nYear,nMonth);
ADQ_RecordCount.Close ;
ADQ_RecordCount.SQL.Clear ;
ADQ_Recordcount.SQL.Add('SELECT A.fangno, B.Zjm, A.Cbrq, A.lsb, A.rsb, A.db,A.mqb');
ADQ_Recordcount.SQL.Add('from '+ StrTableName+ ' A INNER JOIN ');
ADQ_RecordCount.SQL.Add('dbo.Zf_Rz C ON A.fangno = C.fangno INNER JOIN ');
ADQ_Recordcount.SQL.Add('dbo.Zf_Man B ON C.manid = B.manid ');
ADQ_Recordcount.SQL.Add('where A.fangno like :fangno or zjm like :zjm');
ADQ_Recordcount.Parameters.ParamByName('fangno').Value :=trim(Ed_Fh.Text)+'%';
ADQ_Recordcount.Parameters.ParamByName('zjm').Value :=trim(Ed_Fh.Text)+'%';
ADQ_RecordCount.Open ;
end;
procedure TRsSfForm.Fhadddata ;
var Sys,Yfj:Double;
begin
Ed_Bh.Text :=ADQ_Rsglshow.fieldByName('manid').Text ;
Ed_Xm.Text :=ADQ_Rsglshow.FieldByName('manname').Text ;
Ed_Sybd.Text :=ADQ_Rsglshow.FieldByName('rsb').Text ;
Ed_Sycbrq.Text:=ADQ_Rsglshow.FieldByName('cbrq').Text ;
Ed_Bybd.Text :=ADQ_Rsglshow.FieldByName('byrsb').Text ;
Ed_Dj.Text :=ADQ_Dj.FieldByName('price').Text ;
if (trim(Ed_Bybd.Text)='') and (trim(Ed_Sybd.Text)='') then
begin
Ed_Bybd.Text:='0';
Ed_Sybd.Text:='0';
end ;
Sys:=StrToFloat(trim(Ed_Bybd.Text))-StrToFloat(trim(Ed_Sybd.Text));
Yfj:=sys*StrTofloat(trim(Ed_Dj.Text));
Ed_Sys.Text :=FloatToStr(Sys);
Ed_Sfj.Text :=FloatToStr(Yfj);
Ed_Yfj.Text :=FloatTostr(Yfj);
end;
procedure TRssfForm.Fhquery1 ;
begin
ADQ_Date.Close ;
ADQ_Date.SQL.Clear ;
ADQ_Date.SQL.Add('select * From XmXf ');
ADQ_Date.SQL.Add('where fangno like :fangno or zjm like :zjm');
ADQ_Date.Parameters.ParamByName('fangno').Value :=trim(Ed_Fh.Text)+'%';
ADQ_Date.Parameters.ParamByName('zjm').Value :=trim(Ed_Fh.Text)+'%';
ADQ_Date.Open ;
if ADQ_Date.IsEmpty then
begin
showmessage('本房间月底还未抄表!请先抄表再收费');
Ed_Fh.SelectAll ;
exit;
end
else
begin
ADQ_Date.Close ;
ADQ_Date.SQL.Clear ;
ADQ_Date.SQL.Add('select max(cbrq)as cbrq From XmXf ');
ADQ_Date.SQL.Add('where fangno like :fangno or zjm like :zjm');
ADQ_Date.Parameters.ParamByName('fangno').Value :=trim(Ed_Fh.Text)+'%';
ADQ_Date.Parameters.ParamByName('zjm').Value :=trim(Ed_Fh.Text)+'%';
ADQ_Date.Open ;
Ed_rq.Text:=ADQ_Date.FieldByName('cbrq').Text ;
ADQ_Rsglshow.Close ;
ADQ_Rsglshow.SQL.Clear ;
ADQ_Rsglshow.SQL.Add('SELECT *from xmxf');
ADQ_Rsglshow.SQL.Add('where (fangno like :fangno or zjm like :zjm) and cbrq =:cbrq');
ADQ_Rsglshow.Parameters.ParamByName('cbrq').Value :=trim(Ed_rq.Text );
ADQ_Rsglshow.Parameters.ParamByName('fangno').Value :=trim(Ed_Fh.Text)+'%';
ADQ_Rsglshow.Parameters.ParamByName('zjm').Value :=trim(Ed_Fh.Text)+'%';
ADQ_Rsglshow.Open ;
ADQ_Dj.Open ;
FhAdddata;
end;
end;
procedure TRsSfForm.Fhquery ;
var nYear,nMonth,nDay:word;
begin
DecodeDate(Now(),nYear,nMonth,nDay);
GetTableName(nYear,nMonth);
GetsyTableName(nYear,nMonth);
ADQ_Rsglshow.Close ;
ADQ_Rsglshow.SQL.Clear ;
ADQ_Rsglshow.SQL.Add('SELECT C.manid, D.manname, D.Zjm, C.fangno,B.Cbrq, B.lsb, B.rsb, B.db, B.mqb,');
ADQ_Rsglshow.SQL.Add('A.Cbrq AS bycbrq, A.lsb AS bylsb,A.rsb AS byrsb, A.db AS bydb,A.mqb AS bymqb');
ADQ_Rsglshow.SQL.Add('FROM dbo.Zf_Man D INNER JOIN dbo.Zf_Rz C ON D.manid = C.manid INNER JOIN');
ADQ_Rsglshow.SQL.Add(''+ StrTableName+ ' A ON C.fangno = A.fangno INNER JOIN');
ADQ_Rsglshow.SQL.Add(''+ StrTableName+ ' B ON A.fangno = B.fangno');
ADQ_Rsglshow.SQL.Add('where (A.fangno like :fangno or D.zjm like :zjm) and b.cbrq<a.cbrq');
ADQ_Rsglshow.Parameters.ParamByName('fangno').Value :=trim(Ed_Fh.Text)+'%';
ADQ_Rsglshow.Parameters.ParamByName('zjm').Value :=trim(Ed_Fh.Text)+'%';
ADQ_Rsglshow.Open ;
ADQ_Dj.Open ;
FhAdddata;
end;
procedure TRsSfForm.enabledAdd ;
begin
bitbtn_insert.Enabled :=false;
bitbtn_post.Enabled :=true;
bitbtn_cancel.Enabled :=true;
Ed_yfj.Enabled :=true;
Ed_fh.Enabled :=true;
Ed_sfj.Enabled :=true;
Com_Status.Enabled :=true;
end;
procedure TRsSfForm.cleardata ;
begin
Ed_fh.Text :='' ;
com_status.Text:='';
end;
procedure TRsSfForm.AddData ;
begin
Ed_Fh.Text := ADQ_RsSf.fieldbyname('fangno').Text ;
Ed_Bh.Text := ADQ_RsSf.fieldbyname('manid').Text ;
DT_Jkrq.Date := ADQ_RsSf.fieldbyname('Jkrq').Value ;
Ed_Sybd.Text := ADQ_RsSf.fieldbyname('Sybd').Text ;
Ed_Bybd.Text := ADQ_RsSf.fieldbyname('bybd').Text ;
Ed_Sys.Text := ADQ_RsSf.fieldbyname('sys').Text ;
Ed_Dj.Text := ADQ_RsSf.fieldbyname('rsdj').Text ;
Ed_Yfj.Text := ADQ_RsSf.fieldbyname('yfj').Text ;
Ed_Sfj.Text := ADQ_RsSf.fieldbyname('sfj').Text ;
Com_status.Text:= ADQ_RsSf.fieldbyname('status').Text ;
end;
procedure TRsSfForm.enabledfalse ;
begin
Ed_yfj.Enabled :=false;
Ed_fh.Enabled :=false;
Ed_sfj.Enabled :=false;
Com_status.Enabled :=false;
bitbtn_cancel.Enabled:=false;
bitbtn_insert.Enabled:=true;
end;
procedure TRsSfForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action :=cafree;
RsSfForm:=nil;
end;
procedure TRsSfForm.FormCreate(Sender: TObject);
begin
DT_Jkrq.Date:=date();
ADQ_RsSf.Open ;
end;
procedure TRsSfForm.bitbtn_insertClick(Sender: TObject);
begin
select_flag:=1;
enabledAdd;
cleardata;
Ed_Fh.SetFocus ;
DT_Jkrq.Date:=date();
end;
procedure TRsSfForm.bitbtn_modifyClick(Sender: TObject);
begin
select_flag:=2;
AddData;
enabledAdd;
end;
procedure TRsSfForm.bitbtn_cancelClick(Sender: TObject);
begin
enabledfalse ;
bitbtn_insert.Enabled:=true;
bitbtn_post.Enabled :=false;
bitbtn_cancel.Enabled:=false;
end;
procedure TRsSfForm.bitbtn_postClick(Sender: TObject);
begin
try
if Ed_fh.Text='' then
begin
Application.MessageBox('请填写房号','余科华提示',MB_OK+MB_ICONINFORMATION);
Ed_Fh.SetFocus ;
exit;
end;
if Ed_Sfj.Text='' then
begin
Application.MessageBox('请填写实收金额','余科华提示',MB_OK+MB_ICONINFORMATION);
Ed_Sfj.SetFocus ;
exit;
end;
if Com_status.Text='' then
begin
Application.MessageBox('请填写状态','余科华提示',MB_OK+MB_ICONINFORMATION);
Com_status.SetFocus ;
exit;
end;
if DB_module.ADOCon.InTransaction then DB_module.ADOCon.RollbackTrans ;
DB_module.ADOCon.BeginTrans;
if Select_flag=1 then
begin
if ADOQry_insert.Active then
ADOQry_insert.Close;
ADOQry_insert.Parameters.ParamByName('fangNO').Value :=Ed_Fh.Text ;
ADOQry_insert.Parameters.ParamByName('manid').Value:=Ed_Bh.Text;
ADOQry_insert.Parameters.ParamByName('jkrq').Value:=DT_Jkrq.Date ;
ADOQry_insert.Parameters.ParamByName('sybd').Value:=Ed_Sybd.Text ;
ADOQry_insert.Parameters.ParamByName('bybd').Value:=Ed_Bybd.Text ;
ADOQry_insert.Parameters.ParamByName('sys').Value:=Ed_Sys.Text ;
ADOQry_insert.Parameters.ParamByName('Rsdj').Value:=Ed_Dj.Text;
ADOQry_insert.Parameters.ParamByName('Yfj').Value:=Ed_Yfj.Text;
ADOQry_insert.Parameters.ParamByName('sfj').Value:=Ed_sfj.Text ;
if trim(Com_status.text)='已交款' then
ADOQry_insert.Parameters.ParamByName('status').Value:='1'
else
ADOQry_insert.Parameters.ParamByName('status').Value:='0';
ADOQry_insert.ExecSQL;
DB_module.ADOCon.CommitTrans;
showmessage('保存成功!');
if ADQ_RsSf.Active then
ADQ_RsSf.Close;
ADQ_RsSf.Open ;
end
else if select_flag=2 then
begin
if ADOQry_update.Active then
ADOQry_update.Close;
ADOQry_update.Parameters.ParamByName('fangno').Value :=Ed_Fh.Text ;
ADOQry_update.Parameters.ParamByName('manid').Value:=Ed_Bh.Text;
ADOQry_update.Parameters.ParamByName('jkrq').Value:=DT_Jkrq.Date ;
ADOQry_update.Parameters.ParamByName('sybd').Value:=Ed_Sybd.Text ;
ADOQry_update.Parameters.ParamByName('bybd').Value:=Ed_Bybd.Text ;
ADOQry_update.Parameters.ParamByName('sys').Value:=Ed_Sys.Text ;
ADOQry_update.Parameters.ParamByName('Rsdj').Value:=Ed_Dj.Text;
ADOQry_update.Parameters.ParamByName('Yfj').Value:=Ed_Yfj.Text ;
ADOQry_update.Parameters.ParamByName('sfj').Value:=Ed_sfj.Text ;
if trim(Com_status.text)='已交款' then
ADOQry_update.Parameters.ParamByName('status').Value:='1'
else
ADOQry_update.Parameters.ParamByName('status').Value:='0';
ADOQry_update.ExecSQL;
ADOQry_update.ExecSQL;
ADOQry_update.Parameters.ParamByName('oldID').value:=ADQ_RsSf.FieldByName('ID').Value ;
ADOQry_update.ExecSQL;
DB_module.ADOCon.CommitTrans;
showmessage('修改成功!');
if ADQ_RsSf.Active then
ADQ_RsSf.Close;
ADQ_RsSf.Open ;
end
except
begin
MessageBox(0,'操作失败!','',MB_OK+MB_ICONERROR);
DB_module.ADOCon.RollbackTrans;
exit;
end;
end;
enabledfalse ;
end;
procedure TRsSfForm.Ed_FhChange(Sender: TObject);
begin
Fhdate;
if ADQ_RecordCount.IsEmpty then
begin
showmessage('对不起!没有此用户');
Ed_Fh.SelectAll ;
exit;
end;
if ADQ_RecordCount.RecordCount >1 then
Fhquery
else
begin
AlterView;
Fhquery1;
end;
end;
procedure TRsSfForm.Ed_FhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
Ed_fh.Text:=ADQ_Rsglshow.FieldByName('fangno').asstring;
end;
end;
procedure TRsSfForm.Ed_FhKeyPress(Sender: TObject; var Key: Char);
begin
if (key>='0')and(key<='9') then
begin
ADQ_Rsglshow.Locate('fangno',trim(Ed_fh.text+char(key)),[]);
end;
end;
procedure TRsSfForm.BitBtn_findClick(Sender: TObject);
var
lop,f_count:integer;
begin
RsSfGjCxForm:= TRsSfGjCxForm.create(nil);
try
if not ADQ_RsSf.Active then ADQ_RsSf.Open;
f_count := DBGrid1.columns.Count;
for lop := 0 to f_count -1 do
begin
fieldname.Items.Add(DBGrid1.columns[lop].FieldName);
RsSfGjcxForm.Com_jl.Items.Add(DBGrid1.columns[lop].Title.Caption);
end;
RsSfGjCxForm.fieldname.items.Assign(fieldname.items);
if RsSfGjCxForm.ShowModal = mryes then
begin
ADQ_RsSf.Close;
ADQ_RsSf.SQL.Clear;
ADQ_RsSf.SQL.Add('SELECT A.ID,A.fangno, A.manid , B.manname,A.Jkrq, A.Sybd, A.Bybd, A.Sys,A.rsdj,');
ADQ_RsSf.SQL.Add('A.Yfj,A.sfj,case A.status when ''1'' then ''已交款'' else ''未交款'' end as status ');
ADQ_RsSf.SQL.Add(' FROM dbo.Zf_Reshui A INNER JOIN dbo.Zf_Man B ON A.manid = B.manid ');
ADQ_RsSf.SQL.Add(RsSfGjCxForm.returnstr);
ADQ_RsSf.Open;
end;
finally
RsSfGjCxForm.Free;
end;
end;
procedure TRsSfForm.BBtn_PrintClick(Sender: TObject);
begin
if ADQ_RsSf.IsEmpty then
begin
messagebox(0,'请查询后再打印!','余科华提示',MB_OK+MB_ICONWARNING);
Exit;
end
else
begin
BbForm_report:=TBbForm_report.Create(nil);
try
BbForm_report.QRL_RsRmbDx.Caption:=tochinesecurrency(ADQ_RsSf.fieldbyname('sfj').AsCurrency);
BbForm_report.Qp_RsSfSj.Preview ;
finally
BbForm_report.Free ;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -