📄 bustradecszhyearrepunit.pas
字号:
unit BusTradeCSZHYearRepUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ADODB, DB, ComCtrls, StdCtrls, Buttons, ExtCtrls;
type
TBusTradeCSZHYearRepFrm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
Panel4: TPanel;
Label2: TLabel;
Panel3: TPanel;
Label17: TLabel;
ComboBox1: TComboBox;
Panel5: TPanel;
BitBtn17: TBitBtn;
BitBtn3: TBitBtn;
BitBtn5: TBitBtn;
BitBtn4: TBitBtn;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
ListView1: TListView;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
TabSheet2: TTabSheet;
ListView2: TListView;
TabSheet5: TTabSheet;
ListView3: TListView;
TabSheet6: TTabSheet;
ListView4: TListView;
TabSheet7: TTabSheet;
ListView5: TListView;
TabSheet8: TTabSheet;
ListView6: TListView;
TabSheet3: TTabSheet;
ListView7: TListView;
TabSheet4: TTabSheet;
ListView8: TListView;
ADOQuery: TADOQuery;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOCommand1: TADOCommand;
ADOQuery3: TADOQuery;
ADOCommand2: TADOCommand;
Label3: TLabel;
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn17Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
private
procedure FillDatatoTable(List:TListView);
procedure initialcolumn(List:TListView);
procedure Insertnum1();
procedure Insertnum2();
procedure Insertnum3();
procedure FillDataToZTable();
procedure FillMonDataToList();
Procedure OutputDataToE(iSouList:TListView;iCellRows:Integer;iRowsCou:Integer;iCellCols:Integer);
public
{ Public declarations }
end;
var
BusTradeCSZHYearRepFrm: TBusTradeCSZHYearRepFrm;
implementation
uses PrintProc, BusTradeDataModuleUnit, BusTradeZHYearRepUnit,
PrintInfoUnit;
{$R *.dfm}
procedure TBusTradeCSZHYearRepFrm.BitBtn5Click(Sender: TObject);
var sqlstr:string;
j,iRow,iExistFlag:integer;
begin
iExistFlag:=0;
if(combobox1.Text='')then
begin
showmessage('请选择年份!');
exit;
end else
begin
if(length(combobox1.Text)<>4)then
begin
showmessage('对不起,您所输入的年份不正确!');
exit;
end else
begin
try
strtoint(combobox1.Text);
except
showmessage('对不起,您所输入的年份不正确!');
exit;
end;
end;
//开始判断
sqlstr:='select 指标代码,测算值 from 公交行业综合年报_z where 统计年份='
+combobox1.text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sqlstr);
ADOQuery1.Open;
if(ADOQuery1.RecordCount<=0)then
begin
showmessage('对不起,不存在'+combobox1.text+'年综合年报数据!');
BitBtn4.Enabled:=false;
exit;
end else
begin
for iRow:=0 to ADOQuery1.recordcount-1 do
begin
if(ADOQuery1.FieldByName('测算值').asstring<>'0')then
begin
iExistFlag:=1;
break;
end;
ADOQuery1.Next;
end;
end;
if(iExistFlag=0)then
begin
showmessage('对不起,不存在'+combobox1.text+'年综合年报数据!');
BitBtn4.Enabled:=false;
exit;
end;
BitBtn4.Enabled:=true;
// 从数据库中取数据添加到ListView中
for j:=0 to ADOQuery1.recordcount-1 do
begin
if(j>=0)and (j<=21)then
ListView1.Items[j].SubItems[2]:=Converter(ADOQuery1.fieldbyname('测算值').AsString);
if(j>=22)and (j<=43)then
ListView2.Items[j-22].SubItems[2]:=Converter(ADOQuery1.fieldbyname('测算值').AsString);
if(j>=44)and (j<=65)then
ListView3.Items[j-44].SubItems[2]:=Converter(ADOQuery1.fieldbyname('测算值').AsString);
if(j>=66)and (j<=87)then
ListView4.Items[j-66].SubItems[2]:=Converter(ADOQuery1.fieldbyname('测算值').AsString);
if(j>=88)and (j<=109)then
ListView5.Items[j-88].SubItems[2]:=Converter(ADOQuery1.fieldbyname('测算值').AsString);
if(j>=110)and (j<=132)then
ListView6.Items[j-110].SubItems[2]:=Converter(ADOQuery1.fieldbyname('测算值').AsString);
if(j>=133)and (j<=155)then
ListView7.Items[j-133].SubItems[2]:=Converter(ADOQuery1.fieldbyname('测算值').AsString);
if(j>=156)and (j<=178)then
ListView8.Items[j-156].SubItems[2]:=Converter(ADOQuery1.fieldbyname('测算值').AsString);
ADOQuery1.Next;
end;
end;
end;
procedure TBusTradeCSZHYearRepFrm.BitBtn17Click(Sender: TObject);
var sqlstr,sqlstr1,sqlstr2,sqlstr3,sqlstr4:string;
j,iRow,iExistFlag:integer;
begin
iExistFlag:=0;
if(combobox1.Text='')then
begin
showmessage('请选择年份!');
exit;
end else
begin
if(length(combobox1.Text)<>4)then
begin
showmessage('对不起,您所输入的年份不正确!');
exit;
end else
begin
try
strtoint(combobox1.Text);
except
showmessage('对不起,您所输入的年份不正确!');
exit;
end;
end;
//开始判断是否存在综合年报数据
sqlstr:='select 指标代码,测算值 from 公交行业综合年报_z where 统计年份='+ Combobox1.text;
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.add(sqlstr);
ADOQuery.Open;
if(ADOQuery.recordcount>0)then
begin
for iRow:=0 to ADOQuery.recordcount-1 do
begin
if(ADOQuery.FieldByName('测算值').AsString<>'')then
begin
iExistFlag:=1;
break;
end;
ADOQuery.Next;
end;
end;
if(iExistFlag=1)then
begin
if(MessageDlg('数据库中已经存在该年综合年报,是否覆盖?',mtConfirmation,[mbYes, mbNo],0) = mrNo)then
begin
BitBtn5Click(nil);
exit;
end else
begin
BusTradeDataModule.ADOConnection1.BeginTrans;
ADOCommand1.CommandText:='delete from 公交行业综合年报表 where 统计年份='
+combobox1.text+' and 生成方式='+''''+'录入'+'''';
ADOCommand1.Execute;
BusTradeDataModule.ADOConnection1.CommitTrans;
end;
end;
iExistFlag:=0;
//结束判断综合年报
//开始判断行业年报中是否有数据
sqlstr1:='select 指标代码,测算值 from 公交行业统计年报_z where 统计年份='
+Combobox1.text+' and 城市代码='+''''+'022'+''''+' order by 指标代码';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sqlstr1);
ADOQuery1.Open;
if(ADOQuery1.RecordCount<=0)then
begin
showmessage('对不起,不存在'+combobox1.text+'年行业年报数据,无法生成综合年报!');
BitBtn4.Enabled:=false;
exit;
end else
begin
for iRow:=0 to ADOQuery1.recordcount-1 do
begin
if(ADOQuery1.FieldByName('测算值').AsString <>'')then
begin
iExistFlag:=1;
break;
end;
ADOQuery1.Next;
end;
end;
if(iExistFlag=0)then
begin
showmessage('对不起,不存在'+combobox1.text+'年行业年报数据,无法生成综合年报!');
BitBtn4.Enabled:=false;
exit;
end;
iExistFlag:=0;
//结束判断行业年报
sqlstr2:='select 指标代码,测算值 from 公交行业统计月报_z where 统计年份='
+combobox1.text+' and 城市代码='+''''+'022'+''''+' and 统计月份=12';
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(sqlstr2);
ADOQuery2.open;
if(ADOQuery2.RecordCount<=0)then
begin
showmessage('对不起,不存在 '+Combobox1.Text+' 年12月份数据,无法生成综合年报!');
BitBtn4.Enabled:=false;
exit;
end else
begin
for iRow:=0 to ADOQuery2.recordcount-1 do
begin
if(ADOQuery2.FieldByName('测算值').AsString <>'')then
begin
iExistFlag:=1;
break;
end;
ADOQuery1.Next;
end;
end;
if(iExistFlag=0)then
begin
showmessage('对不起,不存在'+combobox1.text+'年12月份行业月报数据,无法生成综合年报!');
BitBtn4.Enabled:=false;
exit;
end;
iExistFlag:=0;
//开始判断是否有行业月报数据
sqlstr2:='select 指标代码,测算值 from 公交行业统计月报_z where 统计年份='
+Combobox1.text+' and 城市代码='+''''+'022'+''''+' order by 指标代码';
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(sqlstr2);
ADOQuery2.Open;
if(ADOQuery2.RecordCount<=0)then
begin
showmessage('对不起,不存在'+combobox1.text+'年行业月报数据,无法生成综合年报!');
BitBtn4.Enabled:=false;
exit;
end else
begin
for iRow:=0 to ADOQuery2.recordcount-1 do
begin
if(ADOQuery2.FieldByName('测算值').AsString <>'')then
begin
iExistFlag:=1;
break;
end;
ADOQuery2.Next;
end;
end;
if(iExistFlag=0)then
begin
showmessage('不存在'+combobox1.Text+'年行业月报数据,无法生成综合年报!');
BitBtn4.Enabled:=false;
exit;
end;
iExistFlag:=0;
//结束判断是否有行业月报数据
sqlstr2:='select 指标代码, sum(测算值) as 测算值,max(测算值) as 临时 from 公交行业统计月报_z '
+' where 统计年份='+ combobox1.Text +' and 城市代码='+''''+'022'+''''+' group by 指标代码';
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(sqlstr2);
ADOQuery2.Open;
//从规模指标表中选数据
sqlstr3:='select 指标代码,本年实际 from 公交行业城市规模指标表_z where 城市代码='+
''''+'022'+''''+' and 统计年份='+combobox1.text+' order by 指标代码';
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(sqlstr3);
ADOQuery3.Open;
if(ADOQuery3.RecordCount<=0)then
begin
showmessage('对不起,不存在'+combobox1.text+'年规模数据,无法生成综合年报!');
BitBtn4.Enabled:=false;
exit;
end;
BitBtn4.enabled:=true;
showmessage('生成数据比较慢,请您稍等!');
BitBtn17.enabled:=false;
{从行业年报中选出的数据添加到综合年报中}
for j:=0 to ADOQuery1.recordcount-1 do
begin
if (j>=0)and(j<=1) then
begin
if(ADOQuery1.Fieldbyname('测算值').asstring='')then
begin
ListView1.Items[j].SubItems[2]:='0';
end else
ListView1.Items[j].SubItems[2]:=Converter(ADOQuery1.Fieldbyname('测算值').asstring);
end;
if (j>=2) and (j<=11) then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -