📄 namebooksalequeryunit.pas
字号:
unit NameBookSaleQueryUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, DB, ADODB;
type
TNameBookSaleQuery = class(TForm)
Panel1: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Panel2: TPanel;
ListView1: TListView;
ListView2: TListView;
ListView3: TListView;
ComboBox1: TComboBox;
Label1: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Panel3: TPanel;
Label2: TLabel;
Label3: TLabel;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
BitBtn3: TBitBtn;
ADOQuery3: TADOQuery;
procedure BitBtn1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
procedure InitListViews(List:TListView);
function FindRow(List:TListView;curField:string):integer;
procedure FillDataToTable(fieldstr:string;Indexnum:integer);
procedure FillDataToTable2(fieldstr:string;Indexnum:integer);
procedure FillDataToTable3(fieldstr:string;Indexnum:integer);
procedure FillDataToTable4(curName:string;curQuery:string;Colnum:integer);
procedure GetSum();
procedure FillSumDataToTable();
procedure FillDataToTable5(curName:string;queryname:string;Colnum:integer);
procedure FillOneRowData(curName:string;colnum:integer);
procedure FillSumMoney(SaleState:string;ColNum:integer);
procedure FillTotalMoney();
public
{ Public declarations }
end;
var
NameBookSaleQuery: TNameBookSaleQuery;
implementation
uses BusTradeDataModuleUnit, PrintInfoUnit, PrintProc;
{$R *.dfm}
procedure TNameBookSaleQuery.BitBtn1Click(Sender: TObject);
var queryname:string;
i,j:integer;
begin
if(combobox1.text='')then
begin
showmessage('请选择年份!');
exit;
end;
//添加业务活动的指标值
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable4('公共汽车、电车',queryname,i);
end;
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable4('地铁',queryname,i);
end;
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable4('轻轨',queryname,i);
end;
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable4('轮渡',queryname,i);
end;
//添加经济类型的指标值
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable(queryname,i);
end;
//添加坐落区域的指标值
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable2(queryname,i);
end;
//添加企业规模的指标值
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable3(queryname,i);
end;
//添加企业注册资本金的指标值
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable5('公共汽车、电车',queryname,i);
end;
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable5('地铁',queryname,i);
end;
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable5('轻轨',queryname,i);
end;
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillDataToTable5('轮渡',queryname,i);
end;
for i:=2 to 6 do
begin
if(i=2)then queryname:='营业';
if(i=3)then queryname:='停业';
if(i=4)then queryname:='在建';
if(i=5)then queryname:='撤消';
if(i=6)then queryname:='其他';
FillOneRowData(queryname,i);
end;
//添加经济类型合计值
FillSumDataToTable(); //添加横者的合计值
GetSum();
FillTotalMoney();
FillSumMoney('营业',2);
FillSumMoney('停业',3);
FillSumMoney('在建',4);
FillSumMoney('撤销',5);
FillSumMoney('其他',6);
//添加所有单位个数
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select distinct 单位代码 from 公用事业单位基本情况表 where 城市代码='
+''''+'022'+''''+' and 统计年份='+combobox1.text);
ADOQuery1.Open;
ListView1.Items[0].SubItems[1]:=inttostr(ADOQuery1.Recordcount);
//----------------------处理小数点-------------------
for i:=6 to 10 do
begin
for j:=1 to 6 do
begin
ListView3.Items[i].SubItems[j]:=ConverterPercent(ListView3.Items[i].SubItems[j]);
end;
end;
BitBtn3.Enabled := true;
end;
procedure TNameBookSaleQuery.InitListViews(List:TListView);
var maxrow,i: integer;
begin
maxrow:=0;
if(List=ListView1)then maxrow:=18;
if(List=ListView2)then maxrow:=20;
if(List=ListView3)then maxrow:=10;
for i:= 0 to maxrow do
begin
List.Items[i].SubItems[1] := '0';
List.Items[i].SubItems[2] := '0';
List.Items[i].SubItems[3] := '0';
List.Items[i].SubItems[4] := '0';
List.Items[i].SubItems[5] := '0';
List.Items[i].SubItems[6] := '0';
end;
end;
procedure TNameBookSaleQuery.ComboBox1Change(Sender: TObject);
begin
InitListViews(ListView1);
InitListViews(ListView2);
InitListViews(ListView3);
end;
procedure TNameBookSaleQuery.BitBtn2Click(Sender: TObject);
begin
NameBookSaleQuery.Close;
end;
procedure TNameBookSaleQuery.FillDataToTable(fieldstr:string;Indexnum:integer);
var sqlstr,Indexstr:string;
i,j:integer;
begin
sqlstr:='select [企业(单位)登记注册类型] as 经济类型 ,count([企业(单位)登记注册类型]) as 合计 from 公用事业单位基本情况表 '
+' where 城市代码='+''''+'022'+''''+' and 统计年份='+combobox1.Text
+' and 营业状况='+''''+fieldstr+''''+' group by [企业(单位)登记注册类型]';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.add(sqlstr);
ADOQuery1.Open;
ADOQuery1.First;
for i:=0 to ADOQuery1.recordcount-1 do
begin
Indexstr:=ADOQuery1.fieldbyname('经济类型').asstring;
j:=FindRow(ListView1,Indexstr);
if (j>0) then
begin
ListView1.Items[j].SubItems[Indexnum]:=ADOQuery1.fieldbyname('合计').asstring;
end;
ADOQuery1.next;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -