📄 realtyc42b.pas
字号:
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;
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;
bSucceed:=true;
end;
////////////////楼宇///////////////
if query1.fieldbyname('类型').Value='楼宇' then
begin
s:='select * from 房间 where 楼宇='''+query1.fieldbyname('类型编号').Value;
s:=s+'''';
query22.SQL.clear;
query22.SQL.Add(s);
query22.Open;
while not query22.Eof do
begin
s2:=Query22.Fieldbyname('编号').AsString;
s:='select * from 房间抄表 where 抄表月份='''+sMonth;
s:=s+''' and 房间='''+s2;
s:=s+'''';
query3.SQL.clear;
query3.SQL.Add(s);
query3.Open;
if query3.RecordCount>0 then d22:=query3.fieldbyname('实际行度').AsVariant;
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;
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;
query1.Next;
end;
end;
end;
if bSucceed=true then
begin
showmessage('批量生成成功。');
end;
DateTimePicker3.Visible:=false;
Label4.Visible:=false;
Button8.Visible:=false;
end;
procedure Tf_RealtyC42B.Button1Click(Sender: TObject);
begin
TreeView1Click(Sender);
end;
procedure Tf_RealtyC42B.Button9Click(Sender: TObject);
begin
DateTimePicker3.Visible:=true;
Label4.Visible:=true;
Button8.Visible:=true;
end;
procedure Tf_RealtyC42B.ListView1Click(Sender: TObject);
begin
Button10Click(Sender);
end;
procedure Tf_RealtyC42B.Button10Click(Sender: TObject);
var
query,query1:TADOQuery;
s1,s:string;
begin
if listview1.SelCount=0 then exit;
listview2.Items.Clear;
query:=TADOQuery.Create(nil);
query.Connection:=DataModuleADO.ADOConnection1;
query1:=TADOQuery.Create(nil);
query1.Connection:=DataModuleADO.ADOConnection1;
s:='select * from 抄表费用公摊 where 收费月份>='''+copy(datetostr(DateTimePicker1.Date),1,7);
s:=s+''' and 收费月份<='''+copy(datetostr(DateTimePicker2.Date),1,7);
s:=s+''' and 分摊表='''+listview1.Selected.Caption;
s:=s+'''';
query.SQL.Clear;
query.SQL.Add(s);
query.open;
while not Query.Eof do
begin
query1.SQL.Clear;
query1.SQL.Add('select * from 客户资料 where 客户代码='''+Query.FieldByName('客户').Value+'''');
query1.Open;
if query1.RecordCount>0 then
begin
s1:=query1.fieldbyname('客户名称').Value;
end;
with ListView2.Items.Add do
begin
Caption:=Query.FieldByName('单号').Value;
SubItems.Add(mainform.getName('房间',Query.FieldByName('房间').Value));
SubItems.Add(Query.FieldByName('客户').Value);
SubItems.Add(s1);
SubItems.Add(Query.FieldByName('分摊方式').Value);
SubItems.Add(Query.FieldByName('实际行度').Value);
SubItems.Add(Query.FieldByName('分摊行度').Value);
SubItems.Add(Query.FieldByName('单价').Value);
SubItems.Add(Query.FieldByName('金额').Value);
SubItems.Add(Query.FieldByName('制单人').Value);
SubItems.Add(Query.FieldByName('收费月份').Value);
SubItems.Add(mainform.getName('收费项目', query.FieldByName('收费项目').Value));
SubItems.Add(Query.FieldByName('应收日期').Value);
end;
query.Next;
end;
if listview2.Items.Count>0 then listview2.Items.Item[0].Selected:=true;
end;
procedure Tf_RealtyC42B.Button5Click(Sender: TObject);
var
i:integer;
Query:TADOQuery;
s:string;
begin
Query:=TADOQuery.Create(nil);
Query.Connection:=DataModuleADO.ADOConnection1;
DataModuleADO.ADOConnection1.BeginTrans;
Query.SQL.Text:='delete from temp';
query.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
for i:=0 to listview2.Items.Count-1 do
begin
s:= 'insert into temp(列1,列2,列3,列4,列5,列6,列7,列8,列9,列10,';
s:=s+'列11,列12,列13)';
s:=s+'values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,';
s:=s+':s11,:s12,:s13)';
query.sql.Clear ;
query.sql.add(s);
query.Parameters.ParamByName('s1').Value:=listview2.Items.Item[i].Caption;
query.Parameters.ParamByName('s2').Value:=listview2.Items.Item[i].SubItems[0];
query.Parameters.ParamByName('s3').Value:=listview2.Items.Item[i].SubItems[1];
query.Parameters.ParamByName('s4').Value:=listview2.Items.Item[i].SubItems[2];
query.Parameters.ParamByName('s5').Value:=listview2.Items.Item[i].SubItems[3];
query.Parameters.ParamByName('s6').Value:=listview2.Items.Item[i].SubItems[4];
query.Parameters.ParamByName('s7').Value:=listview2.Items.Item[i].SubItems[5];
query.Parameters.ParamByName('s8').Value:=listview2.Items.Item[i].SubItems[6];
query.Parameters.ParamByName('s9').Value:=listview2.Items.Item[i].SubItems[7];
query.Parameters.ParamByName('s10').Value:=listview2.Items.Item[i].SubItems[8];
query.Parameters.ParamByName('s11').Value:=listview2.Items.Item[i].SubItems[9];
query.Parameters.ParamByName('s12').Value:=listview2.Items.Item[i].SubItems[10];
query.Parameters.ParamByName('s13').Value:=listview2.Items.Item[i].SubItems[11];
DataModuleADO.ADOConnection1.BeginTrans;
query.execsql;
DataModuleADO.ADOConnection1.CommitTrans;
end;
query.Close;
query.Free;
sFilep:='RealtyC42B.fr3';
sTitlep:=Caption;
sPrintc:='select * from temp';
f_RealtyPrint1:=Tf_RealtyPrint1.Create(self);
f_RealtyPrint1.showmodal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -