📄 realtyc42a.pas
字号:
unit RealtyC42A;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dbcgrids, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ExtCtrls,
StrUtils, ExtDlgs, ComCtrls, math, ToolWin, ImgList, Menus;
type
Tf_RealtyC42A = class(TForm)
Label2: TLabel;
Button5: TButton;
Button7: TButton;
Edit7: TEdit;
Button1: TButton;
Label3: TLabel;
Edit5: TEdit;
Button2: TButton;
Label7: TLabel;
Edit8: TEdit;
Button3: TButton;
DateTimePicker1: TDateTimePicker;
Label1: TLabel;
ComboBox1: TComboBox;
Label4: TLabel;
procedure NN6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
bMod:bool;
sTable:string;
cols:integer;
bGetdata:bool;
end;
var
f_RealtyC42A: Tf_RealtyC42A;
implementation
uses data, main,RealtyC33,RealtyA12,Car4s931,realtyI11C,RealtyA11;
{$R *.dfm}
//Close*************************************
procedure Tf_RealtyC42A.NN6Click(Sender: TObject);
begin
close;
end;
procedure Tf_RealtyC42A.Button7Click(Sender: TObject);
Var
query,query1,query2,query11,query3:TADOQuery;
sMonth,s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,r,r3,ss,r1,r2,r4,r5,s77,r77,rr,sNum:string;
i:integer;
begin
query:=TADOQuery.Create(nil);
query.Connection:=DataModuleADO.ADOConnection1;
query1:=TADOQuery.Create(nil);
query1.Connection:=DataModuleADO.ADOConnection1;
query2:=TADOQuery.Create(nil);
query2.Connection:=DataModuleADO.ADOConnection1;
query11:=TADOQuery.Create(nil);
query11.Connection:=DataModuleADO.ADOConnection1;
query3:=TADOQuery.Create(nil);
query3.Connection:=DataModuleADO.ADOConnection1;
if (edit5.Text='') and (edit8.text='') and (edit7.Text='') then
begin
showmessage('请选择要新增的单位');
exit;
end;
if combobox1.Text='' then
begin
showmessage('请选择要新增的收费项目');
exit;
end;
s:='select * from 收费项目 where 编号='''+mainform.getNum(combobox1.Text);
s:=s+'''';
query.SQL.clear;
query.SQL.Add(s);
query.Open;
if query.RecordCount>0 then
begin
sNum:=query.fieldbyname('编号').Value ;
r77:=query.fieldbyname('仪表种类').Value;
end;
if edit5.Text<>'' then
begin
ss:='按管理区';
s:='select * from 抄表费用 where 收费月份='''+copy(datetostr(DateTimePicker1.Date),1,7);
s:=s+''' and 收费项目='''+sNum;
s:=s+''' and 自动生成类别='''+ss+'''';
query.SQL.clear;
query.SQL.Add(s);
query.Open;
if query.RecordCount>0 then
begin
showmessage('已经'+ss+'生成'+copy(datetostr(DateTimePicker1.Date),1,7)+'月份的收费项目:'+combobox1.Text+''' 的抄表收费');
exit;
end;
query11.SQL.clear;
query11.SQL.Add('select * from 房间 where 管理区='''+mainform.getNum(edit5.Text)+'''');
query11.Open;
while not query11.Eof do
begin
s2:=query11.fieldbyname('编号').Value;
rr:=query11.fieldbyname('管理区').Value;
s3:='-';
query1.SQL.Clear;
query1.SQL.Add('select * from 入伙登记 where 房间='''+s2+'''');
query1.Open;
if query1.RecordCount>0 then
begin
s3:=query1.fieldbyname('客户').Value;
query1.SQL.Clear;
query1.SQL.Add('select * from 客户资料 where 客户名称='''+s3+'''');
query1.Open;
if query1.RecordCount>0 then
begin
s3:=query1.fieldbyname('客户代码').Value;
end;
end;
s:='select * from 房间收费项目设置 where 房间编号='''+s2;
s:=s+''' and 收费项目编号='''+mainform.getNum(combobox1.text);
s:=s+'''';
s9:='0';
query.SQL.Clear;
query.SQL.Add(s);
query.Open;
while not query.Eof do
begin
s4:=query.fieldbyname('收费项目编号').Value;
s5:=query.fieldbyname('收费标准编号').Value;
s:='select * from 收费项目 where 编号='''+s4;
s:=s+''' and 费用项目类型='''+'抄表收费项目';
s:=s+'''';
query2.SQL.Clear;
query2.SQL.Add(s);
query2.Open;
if query2.RecordCount>0 then
begin
s:='select * from 收费标准 where 编号='''+query.fieldbyname('收费标准编号').Value;
s:=s+'''';
query2.SQL.Clear;
query2.SQL.Add(s);
query2.Open;
if query2.RecordCount>0 then
begin
s9:=query2.fieldbyname('单价').Value;
s:='select * from 收费时间 where 编号='''+query2.fieldbyname('收费时间').Value;
s:=s+'''';
query2.SQL.Clear;
query2.SQL.Add(s);
query2.Open;
if query2.RecordCount>0 then
begin
if query2.fieldbyname('名称').Value='收当月' then
begin
s6:=query2.fieldbyname('收费日期').Value;
if strtoint(s6)<10 then s6:='0'+s6;
s6:=copy(datetostr(DateTimePicker1.Date),1,7)+'-'+ s6;
sMonth:=copy(datetostr(DateTimePicker1.Date),1,7);
end;
if query2.fieldbyname('名称').Value='收上月' then
begin
if strtoint(query2.fieldbyname('收费日期').Value)<10 then s6:='0'+query2.fieldbyname('收费日期').Value
else s6:= query2.fieldbyname('收费日期').Value;
s7:=copy(datetostr(DateTimePicker1.Date),1,7)+'-01';
s7:=datetostr(strtodate(s7)-1);
s6:=copy(s7,1,7)+'-'+ s6;
sMonth:=copy(s7,1,7);
end;
if query2.fieldbyname('名称').Value='收下月' then
begin
if strtoint(query2.fieldbyname('收费日期').Value)<10 then s6:='0'+query2.fieldbyname('收费日期').Value
else s6:= query2.fieldbyname('收费日期').Value;
s7:=copy(datetostr(DateTimePicker1.Date),1,7)+'-28';
s7:=datetostr(strtodate(s7)+4);
s6:=copy(s7,1,7)+'-'+ s6;
sMonth:=copy(s7,1,7);
end;
if query2.fieldbyname('名称').Value='指定月' then
begin
s6:=query2.fieldbyname('收费日期').Value;
if strtoint(s6)<10 then s6:='0'+s6;
s6:=copy(datetostr(DateTimePicker1.Date),1,7)+'-'+ s6;
sMonth:=copy(datetostr(DateTimePicker1.Date),1,7);
s:='select * from 收费时间明细 where 编号='''+query2.fieldbyname('编号').Value;
s:=s+''' and 月份='''+copy(copy(datetostr(DateTimePicker1.Date),1,7),6,2);
s:=s+'''';
query2.SQL.Clear;
query2.SQL.Add(s);
query2.Open;
if query2.RecordCount=0 then
begin
s6:='';
sMonth:='-';
end;
end;
end;
end;
s9:=mainform.StdDou2(s9);
r1:=mainform.StdDou2(r1);
r2:=mainform.StdDou2(r2);
r3:=mainform.StdDou2(r3);
r4:=mainform.StdDou2(r4);
r5:=mainform.StdDou2(r5);
query3.SQL.clear;
query3.SQL.Add('select * from 房间仪表 where 房间 ='''+s2+''' and 仪表种类='''+r77+'''');
query3.Open;
if query3.RecordCount>0 then
begin
s77:=query3.fieldbyname('编号').Value;
end;
s:='select * from 房间抄表 where 房间 ='''+s2;
s:=s+''' and 抄表月份='''+sMonth;
s:=s+''' and 房间仪表='''+s77;
s:=s+'''';
query3.SQL.clear;
query3.SQL.Add(s);
query3.Open;
if query3.RecordCount>0 then
begin
r1:=query3.fieldbyname('实际行度').Value;
r2:=query3.fieldbyname('上次读数').Value;
r3:=query3.fieldbyname('本次读数').Value;
s7:=query3.fieldbyname('上次读数日期').Value;
s8:=query3.fieldbyname('读数日期').Value;
s := 'select top 1 * from 抄表费用 ORDER BY 单号 DESC';
query1.SQL.Clear;
Query1.SQL.Add(s);
Query1.Open ;
if query1.recordcount > 0 then
begin
s:= Query1.Fieldbyname('单号').AsString;
s:= Copy(S, 1, 7);
i:= strtoint(s)+1;
if i<10 then s1 := '000000'+inttostr(i)
else if (i > 9) and (i<100) then s1 := '00000'+inttostr(i)
else if (i > 99) and (i<1000) then s1 := '0000'+inttostr(i)
else if (i > 999) and (i<10000) then s1 := '000'+inttostr(i)
else if (i > 9999) and (i<100000) then s1 := '00'+inttostr(i)
else if (i > 99999) and (i<1000000) then s1 := '0'+inttostr(i)
else if i>999999 then s1 := inttostr(i);
end
else s1 := '0000001';
s:='select * from 抄表费用 where 收费月份='''+sMonth;
s:=s+''' and 房间='''+s2+''' and 收费项目='''+s4;
s:=s+'''';
query1.SQL.clear;
query1.SQL.Add(s);
query1.Open;
if (query1.RecordCount=0) and (s6<>'')then
begin
s:='insert into 抄表费用 (单号,房间,客户,收费项目,收费标准,';
s:=s+'应收日期,仪表,上次读数,本次读数,实际行度,';
s:=s+'公摊,总行度,计费开始日期,计费结束日期,单价,';
s:=s+'金额,优惠金额,优惠后金额,滞纳金截至日期,滞纳金天数,';
s:=s+'滞纳金,减免缴滞纳金,应收滞纳金,收取滞纳金,应收金额,';
s:=s+'已收金额,已收全,收全日期,备注,制单人,';
s:=s+'修订人,自动生成类别,收费月份)';
s:=s+'values (:s1,:s2,:s3,:s4,:s5,';
s:=s+':s6,:s7,:s8,:s9,:s10,';
s:=s+':s11,:s12,:s13,:s14,:s15,';
s:=s+':s16,:s17,:s18,:s19,:s20,';
s:=s+':s21,:s22,:s23,:s24,:s25,';
s:=s+':s26,:s27,:s28,:s29,:s30,';
s:=s+':s31,:s32,:s33)';
query1.SQL.Clear;
query1.SQL.Add(s);
query1.Parameters.ParamByName('s1').Value:=s1;
query1.Parameters.ParamByName('s2').Value:=s2;
query1.Parameters.ParamByName('s3').Value:=s3;
query1.Parameters.ParamByName('s4').Value:=s4;
query1.Parameters.ParamByName('s5').Value:=s5;
query1.Parameters.ParamByName('s6').Value:=s6;
query1.Parameters.ParamByName('s7').Value:=s77;
query1.Parameters.ParamByName('s8').Value:=r2;
query1.Parameters.ParamByName('s9').Value:=r3;
query1.Parameters.ParamByName('s10').Value:=r1;
query1.Parameters.ParamByName('s11').Value:=strtofloat(r5);;
query1.Parameters.ParamByName('s12').Value:=strtofloat(r1)+strtofloat(r5);
query1.Parameters.ParamByName('s13').Value:=s7;
query1.Parameters.ParamByName('s14').Value:=s8;
query1.Parameters.ParamByName('s15').Value:=strtofloat(s9);
query1.Parameters.ParamByName('s16').Value:=strtofloat(s9)*(strtofloat(r1)+strtofloat(r5));
query1.Parameters.ParamByName('s17').Value:=0;
query1.Parameters.ParamByName('s18').Value:=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -