📄 mc_xzclass.pas
字号:
unit MC_XZCLass;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBTables, Db, StdCtrls, Buttons, Grids, DBGrids, DBCtrls, ExtCtrls,
TeeProcs, TeEngine, Chart;
type
TXZClass = class(TForm)
GroupBox1: TGroupBox;
DBLookupComboBox1: TDBLookupComboBox;
GroupBox2: TGroupBox;
DBGrid1: TDBGrid;
GroupBox3: TGroupBox;
ListBox1: TListBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
DataSource1: TDataSource;
DataSource2: TDataSource;
Table2: TTable;
Table2BDEDesigner2: TStringField;
Table2BDEDesigner5: TIntegerField;
Table2BDEDesigner6: TStringField;
Table2BDEDesigner7: TStringField;
Table2BDEDesigner: TStringField;
Query1: TQuery;
Query1BDEDesigner: TStringField;
Query1BDEDesigner2: TStringField;
Query2: TQuery;
Query3: TQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
XZClass: TXZClass;
implementation
uses MC_SFQKFX;
{$R *.DFM}
procedure TXZClass.FormClose(Sender: TObject; var Action: TCloseAction);
begin
XZCLAss.Release;
XZClass:=Nil;
end;
procedure TXZClass.BitBtn3Click(Sender: TObject);
begin
Close;
end;
procedure TXZClass.BitBtn2Click(Sender: TObject);
var a,b:integer;
begin
For a:=0 to ListBox1.Items.Count-1 do
begin
if ListBox1.Items.Strings[a]=Table2.FieldByName('大楼名称').AsString then
begin
b:=0;
Break;
end else b:=1;
end;
if b=0 then
begin
ShowMessage('此大楼以被选种!!');
end
else
begin
ListBox1.Items.Add(Table2.FieldByName('大楼名称').AsString);
end;
end;
procedure TXZClass.BitBtn4Click(Sender: TObject);
begin
if ListBox1.Items.Count<>0 then
begin
ListBox1.Items.Delete(ListBox1.ItemIndex);
end;
end;
procedure TXZClass.BitBtn1Click(Sender: TObject);
var ZD: String;
ZDZ: Array of String;//设立动态数组
a:integer;
begin
if ListBox1.Items.Count=0 then
begin
ShowMessage('请选择要浏览的大楼.');
end
else
begin
SetLength(ZDZ,ListBox1.Items.Count);//分配动态变量,记得释放掉
SFQKFX.Series1.Clear;//清楚图表
SFQKFX.Series1.RefreshSeries;
if SFQKFX.ComboBox1.ItemIndex=0 then
begin
Query2.Close;
Query2.SQL.Add('Select Sum(实收金额),SUM(应收金额) From 水费 ');
Query2.SQL.Add('Where 水表编号 in (Select 房间编号 From 房屋信息表');
Query2.SQL.Add('Where 大楼名=:A');
Query2.ParamByName('A').AsString:=ListBox1.Items.Strings[0];
For a:=1 to ListBox1.Items.Count-1 do
begin
ZDZ[a]:=ListBox1.Items.Strings[a];
Query2.SQL.Add('or 大楼名='''+ZDZ[a]+'''');
end;
Query2.SQL.Add(')');
Query2.Open;
SFQKFX.Series1.AddPie(Query2.Fields[0].AsFloat,'水费实收金额',clteecolor);
SFQKFX.Series1.AddPie(Query2.Fields[1].AsFloat,'水费应收金额',clTeeColor);
End;
if SFQKFX.ComboBox1.ItemIndex=1 then
begin
Query2.Close;
Query2.SQL.Add('Select Sum(实收金额),SUM(应收金额) From 电费 ');
Query2.SQL.Add('Where 电表编号 in (Select 房间编号 From 房屋信息表');
Query2.SQL.Add('Where 大楼名=:A');
Query2.ParamByName('A').AsString:=ListBox1.Items.Strings[0];
For a:=1 to ListBox1.Items.Count-1 do
begin
ZDZ[a]:=ListBox1.Items.Strings[a];
Query2.SQL.Add('or 大楼名='''+ZDZ[a]+'''');
end;
Query2.SQL.Add(')');
Query2.Open;
SFQKFX.Series1.AddPie(Query2.Fields[0].AsFloat,'电费实收金额',clteecolor);
SFQKFX.Series1.AddPie(Query2.Fields[1].AsFloat,'电费应收金额',clTeeColor);
End;
if SFQKFX.ComboBox1.ItemIndex=2 then
begin
Query2.Close;
Query2.SQL.Add('Select Sum(实收金额),SUM(应收金额) From 煤气费 ');
Query2.SQL.Add('Where 煤气表编号 in (Select 房间编号 From 房屋信息表');
Query2.SQL.Add('Where 大楼名=:A');
Query2.ParamByName('A').AsString:=ListBox1.Items.Strings[0];
For a:=1 to ListBox1.Items.Count-1 do
begin
ZDZ[a]:=ListBox1.Items.Strings[a];
Query2.SQL.Add('or 大楼名='''+ZDZ[a]+'''');
end;
Query2.SQL.Add(')');
Query2.Open;
SFQKFX.Series1.AddPie(Query2.Fields[0].AsFloat,'煤气费实收金额',clteecolor);
SFQKFX.Series1.AddPie(Query2.Fields[1].AsFloat,'煤气费应收金额',clTeeColor);
End;
if SFQKFX.ComboBox1.ItemIndex=3 then
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('Select SUM(应收金额),Sum(实收金额) From 采暖费');
Query2.SQL.Add('Where 采暖费编号 in (Select 房间编号 From 房屋信息表');
Query2.SQL.Add('Where 大楼名=:A');
Query2.ParamByName('A').AsString:=ListBox1.Items.Strings[0];
For a:=1 to ListBox1.Items.Count-1 do
begin
ZDZ[a]:=ListBox1.Items.Strings[a];
Query2.SQL.Add('or 大楼名='''+ZDZ[a]+'''');
end;
Query2.SQL.Add(')');
Query2.Open;
SFQKFX.Series1.AddPie(Query2.Fields[0].AsFloat,'采暖应收金额',clTeeColor);
SFQKFX.Series1.AddPie(Query2.Fields[1].AsFloat,'采暖实收金额',clTeeColor);
end;
if SFQKFX.ComboBox1.ItemIndex=4 then
begin
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('Select 科目名 From 其它科目');
Query3.Open;
While Not Query3.Eof do
begin
Query2.close;
Query2.SQL.Clear;
Query2.SQL.Add('Select Sum(应收金额),Sum(实收金额) From 其它费用表');
Query2.SQL.Add('Where 费用科目=:B and 收费编号 in (Select 房间编号 From 房屋信息表');
Query2.SQL.Add('Where 大楼名=:A');
Query2.ParamByname('A').AsString:=ListBox1.Items.Strings[0];
Query2.ParamByName('B').AsString:=Query3.FieldByName('科目名').AsString;
For a:=1 to Listbox1.Items.Count-1 do
begin
ZDZ[a]:=ListBox1.Items.Strings[a];
Query2.SQL.Add('or 大楼名='''+ZDZ[a]+'''');
end;
Query2.SQL.Add(')');
Query2.Open;
SFQKFX.Series1.AddPie(Query2.Fields[0].AsFloat,'应收'+Query3.FieldByName('科目名').AsString,clTeeColor);
SFQKFX.Series1.AddPie(Query2.Fields[1].AsFloat,'实收'+Query3.FieldByName('科目名').AsString,clTeeColor);
Query3.Next;
end;
end;
if SFQKFX.ComboBox1.ItemIndex=5 then
begin
Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add('Select 科目名 From 费用科目');
Query3.Open;
While Not Query3.Eof do
begin
Query2.close;
Query2.SQL.Clear;
Query2.SQL.Add('Select Sum(应收金额),Sum(实收金额) From 常用费用');
Query2.SQL.Add('Where 费用科目=:B and 收费编号 in (Select 房间编号 From 房屋信息表');
Query2.SQL.Add('Where 大楼名=:A');
Query2.ParamByname('A').AsString:=ListBox1.Items.Strings[0];
Query2.ParamByName('B').AsString:=Query3.FieldByName('科目名').AsString;
For a:=1 to Listbox1.Items.Count-1 do
begin
ZDZ[a]:=ListBox1.Items.Strings[a];
Query2.SQL.Add('or 大楼名='''+ZDZ[a]+'''');
end;
Query2.SQL.Add(')');
Query2.Open;
SFQKFX.Series1.AddPie(Query2.Fields[0].AsFloat,'应收'+Query3.FieldByName('科目名').AsString,clTeeColor);
SFQKFX.Series1.AddPie(Query2.Fields[1].AsFloat,'实收'+Query3.FieldByName('科目名').AsString,clTeeColor);
Query3.Next;
end;
end;
ZDZ:=Nil;
Close;
end;
end;
procedure TXZClass.FormShow(Sender: TObject);
begin
DBLookupCombobox1.KeyValue:=Query1.FieldByName('小区名').asString;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -