📄 realtyc42b.pas
字号:
query2.SQL.Clear;
query2.SQL.Add(s);
query2.Open;
if query2.RecordCount=0 then s6:='';
end;
sDay:=s6;
s7:=s8;/////////////////////////单价
end;
end;
s:='select * from 收费项目 where 编号='''+query.fieldbyname('收费项目').Value;
s:=s+'''';
query2.SQL.Clear;
query2.SQL.Add(s);
query2.Open;
if query2.RecordCount>0 then s12:=query2.fieldbyname('仪表种类').Value;
s:='select * from 管理区公摊抄表 where 公摊仪表 ='''+listview1.Selected.Caption;
s:=s+''' and 抄表月份='''+sMonth;
s:=s+'''';
d1:=0;
query3.SQL.clear;
query3.SQL.Add(s);
query3.Open;
if query3.RecordCount>0 then
begin
d1:=query3.fieldbyname('实际行度').AsVariant;
end;
//房间仪表总用量、建筑面积、仪表总数 ----------始
s:='select * from 公摊仪表明细 where 编号='''+query.fieldbyname('编号').Value;
s:=s+'''';
query2.SQL.clear;
query2.SQL.Add(s);
query2.Open;
if query2.RecordCount>0 then sStyle:=query2.fieldbyname('类型').Value;
d2:=0;
d3:=0;
n:=0;
if sStyle='房间' then
begin
s:='select * from 公摊仪表明细 where 编号='''+query.fieldbyname('编号').Value;
s:=s+'''';
query2.SQL.clear;
query2.SQL.Add(s);
query2.Open;
while not query2.Eof do
begin
s:='select * from 房间 where 编号='''+query2.fieldbyname('类型编号').Value+'''';
query3.SQL.clear;
query3.SQL.Add(s);
query3.Open;
if query3.RecordCount>0 then d3:=d3+query3.fieldbyname('建筑面积').AsVariant;
s:='select * from 房间抄表 where 抄表月份='''+sMonth;
s:=s+''' and 房间='''+query2.fieldbyname('类型编号').Value;
s:=s+'''';
query3.SQL.clear;
query3.SQL.Add(s);
query3.Open;
while not query3.Eof do
begin
query4.SQL.Clear;
query4.SQL.Add('select * from 房间仪表 where 编号='''+query3.fieldbyname('房间仪表').Value+'''');
query4.Open;
if query4.RecordCount>0 then
begin
if query4.fieldbyname('仪表种类').Value=s12 then
begin
d2:=d2+query3.fieldbyname('实际行度').AsVariant;
break;
end;
end;
query3.Next;
end;
query2.Next;
end;
n:=query2.RecordCount;
end;
if sStyle='楼宇' then
begin
s:='select * from 公摊仪表明细 where 编号='''+query.fieldbyname('编号').Value;
s:=s+'''';
query2.SQL.clear;
query2.SQL.Add(s);
query2.Open;
while not query2.Eof do
begin
s:='select * from 房间 where 楼宇='''+query2.fieldbyname('类型编号').Value;
s:=s+'''';
query1.SQL.clear;
query1.SQL.Add(s);
query1.Open;
while not query1.Eof do
begin
n:=n+1;
d3:=d3+query1.fieldbyname('建筑面积').AsVariant;
s:='select * from 房间抄表 where 抄表月份='''+sMonth;
s:=s+''' and 房间='''+query1.fieldbyname('编号').Value;
s:=s+'''';
query3.SQL.clear;
query3.SQL.Add(s);
query3.Open;
while not query3.Eof do
begin
query4.SQL.Clear;
query4.SQL.Add('select * from 房间仪表 where 编号='''+query3.fieldbyname('房间仪表').Value+'''');
query4.Open;
if query4.RecordCount>0 then
begin
if query4.fieldbyname('仪表种类').Value=s12 then
begin
d2:=d2+query3.fieldbyname('实际行度').AsVariant;
break;
end;
end;
query3.Next;
end;
query1.Next;
end;
query2.Next;
end;
end;
//房间仪表总用量、建筑面积、仪表总数 ----------止
s4:=Query.Fieldbyname('分摊方式').AsString;
s11:=query.fieldbyname('收费项目').Value;
if query.fieldbyname('公摊仪表类型').Value='总表' then
begin
s:='select * from 房间 where 管理区='''+query.fieldbyname('管理区').Value;
s:=s+'''';
query22.SQL.clear;
query22.SQL.Add(s);
query22.Open;
while not query22.Eof do
begin
s2:=Query22.Fieldbyname('编号').AsString;
d33:=query22.fieldbyname('建筑面积').AsVariant;
s:='select * from 房间抄表 where 抄表月份='''+sMonth;
s:=s+''' and 房间='''+s2;
s:=s+'''';
query3.SQL.clear;
query3.SQL.Add(s);
query3.Open;
while not query3.Eof do
begin
query2.SQL.Clear;
query2.SQL.Add('select * from 房间仪表 where 编号='''+query3.fieldbyname('房间仪表').Value+'''');
query2.Open;
if query2.RecordCount>0 then
begin
if query2.fieldbyname('仪表种类').Value=s12 then
begin
d22:=query3.fieldbyname('实际行度').AsVariant;
break;
end;
end;
query3.Next;
end;
s3:='-';
query2.SQL.Clear;
query2.SQL.Add('select * from 入伙登记 where 房间='''+s2+'''');
query2.Open;
if query2.RecordCount>0 then
begin
s3:=query2.fieldbyname('客户').Value;
query2.SQL.Clear;
query2.SQL.Add('select * from 客户资料 where 客户名称='''+s3+'''');
query2.Open;
if query2.RecordCount>0 then
begin
s3:=query2.fieldbyname('客户代码').Value;
end;
end;
//房间仪表总用量、建筑面积、仪表总数
d2:=0;
d3:=0;
n:=0;
s:='select * from 房间 where 管理区='''+query.fieldbyname('管理区').Value;
s:=s+'''';
query2.SQL.clear;
query2.SQL.Add(s);
query2.Open;
while not query2.Eof do
begin
d3:=d3+query2.fieldbyname('建筑面积').AsVariant;
s:='select * from 房间抄表 where 抄表月份='''+sMonth;
s:=s+''' and 房间='''+query2.fieldbyname('编号').Value;
s:=s+'''';
query3.SQL.clear;
query3.SQL.Add(s);
query3.Open;
if query3.RecordCount>0 then d2:=d2+query3.fieldbyname('实际行度').AsVariant;
query2.Next;
end;
n:=query2.RecordCount;
if (s4='按用量分摊') and (d2>0) then d22:=d1/d2*d22;
if (s4='按建筑面积分摊') and (d3>0) then d22:=d1/d3*d33;
if (s4='平均分摊') then d22:=d1/n;
s5:=Format('%.2f', [d1]);
s6:=Format('%.2f', [d22]);
s8:=Format('%.2f',[d22*strtofloat(s7)]);
s9:=czy;
s10:=copy(datetostr(DateTimePicker3.Date),1,7);
//////////////////////////////////////////////////////////// 生成
s := 'select top 1 * from 抄表费用公摊 ORDER BY 单号 DESC';
query2.SQL.Clear;
Query2.SQL.Add(s);
Query2.Open ;
if query2.recordcount > 0 then
begin
s:= Query2.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:='insert into 抄表费用公摊 (单号,房间,客户,分摊方式,实际行度,分摊行度,';
s:=s+'单价,金额,制单人,收费月份,分摊表,收费项目,审核,发生日期,应收日期)';
s:=s+'values (:s1,:s2,:s3,:s4,:s5,';
s:=s+':s6,:s7,:s8,:s9,:s10,:s11,:s12,:s13,:s14,:s15)';
query2.SQL.Clear;
query2.SQL.Add(s);
query2.Parameters.ParamByName('s1').Value:=s1;
query2.Parameters.ParamByName('s2').Value:=s2;
query2.Parameters.ParamByName('s3').Value:=s3;
query2.Parameters.ParamByName('s4').Value:=s4;
query2.Parameters.ParamByName('s5').Value:=s5;
query2.Parameters.ParamByName('s6').Value:=s6;
query2.Parameters.ParamByName('s7').Value:=s7;
query2.Parameters.ParamByName('s8').Value:=s8;
query2.Parameters.ParamByName('s9').Value:=s9;
query2.Parameters.ParamByName('s10').Value:=s10;
query2.Parameters.ParamByName('s11').Value:=query.fieldbyname('编号').Value;
query2.Parameters.ParamByName('s12').Value:=s11;
query2.Parameters.ParamByName('s13').Value:='N';
query2.Parameters.ParamByName('s14').Value:=datetostr(date);
query2.Parameters.ParamByName('s15').Value:=sDay;
DataModuleADO.ADOConnection1.BeginTrans;
query2.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
query22.Next;
bSucceed:=true;
end;
end;
if query.fieldbyname('公摊仪表类型').Value<>'总表' then
begin
s:='select * from 公摊仪表明细 where 编号='''+query.fieldbyname('编号').Value;
s:=s+'''';
query1.SQL.clear;
query1.SQL.Add(s);
query1.Open;
while not query1.Eof do
begin
////////////////房间/////////////////
if query1.fieldbyname('类型').Value='房间' then
begin
s2:=Query1.Fieldbyname('类型编号').AsString;
s:='select * from 房间 where 编号='''+s2;
s:=s+'''';
query3.SQL.clear;
query3.SQL.Add(s);
query3.Open;
if query3.RecordCount>0 then d33:=query3.fieldbyname('建筑面积').AsVariant;
s3:='-';
query2.SQL.Clear;
query2.SQL.Add('select * from 入伙登记 where 房间='''+s2+'''');
query2.Open;
if query2.RecordCount>0 then
begin
s3:=query2.fieldbyname('客户').Value;
query2.SQL.Clear;
query2.SQL.Add('select * from 客户资料 where 客户名称='''+s3+'''');
query2.Open;
if query2.RecordCount>0 then
begin
s3:=query2.fieldbyname('客户代码').Value;
end;
end;
//////////////////////
s:='select * from 房间抄表 where 抄表月份='''+sMonth;
s:=s+''' and 房间='''+s2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -