📄 bustradezhyearrepunit.~pas
字号:
unit BusTradeZHYearRepUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ADODB, DB, ComCtrls, StdCtrls, Buttons, ExtCtrls;
type
TBusTradeZHYearRepFrm = 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;
Label4: 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();
public
procedure OutputDataToE(iSouList:TListView;iCellRows:Integer;iRowsCou:Integer;iCellCols:Integer);
end;
var
BusTradeZHYearRepFrm: TBusTradeZHYearRepFrm;
implementation
uses PrintProc, BusTradeDataModuleUnit, PrintInfoUnit;
{$R *.dfm}
procedure TBusTradeZHYearRepFrm.BitBtn5Click(Sender: TObject);
var sqlstr:string;
j,iRow,iExistFlag:integer;
begin
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;
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
iExistFlag:=0;
ADOQuery1.First;
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
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>=22)and (j<=43)then
begin
if(ADOQuery1.fieldbyname('全年实际').AsString='')then
begin
ListView2.Items[j-22].SubItems[2]:='0';
end else
ListView2.Items[j-22].SubItems[2]:=Converter(ADOQuery1.fieldbyname('全年实际').AsString);
end;
if(j>=44)and (j<=65)then
begin
if(ADOQuery1.fieldbyname('全年实际').AsString='')then
begin
ListView3.Items[j-44].SubItems[2]:='0';
end else
ListView3.Items[j-44].SubItems[2]:=Converter(ADOQuery1.fieldbyname('全年实际').AsString);
end;
if(j>=66)and (j<=87)then
begin
if(ADOQuery1.fieldbyname('全年实际').AsString='')then
begin
ListView4.Items[j-66].SubItems[2]:='0';
end else
ListView4.Items[j-66].SubItems[2]:=Converter(ADOQuery1.fieldbyname('全年实际').AsString);
end;
if(j>=88)and (j<=109)then
begin
if(ADOQuery1.fieldbyname('全年实际').AsString='')then
begin
ListView5.Items[j-88].SubItems[2]:='0';
end else
ListView5.Items[j-88].SubItems[2]:=Converter(ADOQuery1.fieldbyname('全年实际').AsString);
end;
if(j>=110)and (j<=132)then
begin
if(ADOQuery1.fieldbyname('全年实际').AsString='')then
begin
ListView6.Items[j-110].SubItems[2]:='0';
end else
ListView6.Items[j-110].SubItems[2]:=Converter(ADOQuery1.fieldbyname('全年实际').AsString);
end;
if(j>=133)and (j<=155)then
begin
if(ADOQuery1.fieldbyname('全年实际').AsString='')then
begin
ListView7.Items[j-133].SubItems[2]:='0';
end else
ListView7.Items[j-133].SubItems[2]:=Converter(ADOQuery1.fieldbyname('全年实际').AsString);
end;
if(j>=156)and (j<=178)then
begin
if(ADOQuery1.fieldbyname('全年实际').AsString='')then
begin
ListView8.Items[j-156].SubItems[2]:='0';
end else
ListView8.Items[j-156].SubItems[2]:=Converter(ADOQuery1.fieldbyname('全年实际').AsString);
end;
ADOQuery1.Next;
end;
end;
procedure TBusTradeZHYearRepFrm.BitBtn17Click(Sender: TObject);
var sqlstr,sqlstr1,sqlstr2,sqlstr3:string;
j,iRow,iExistFlag:integer;
begin
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;
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 公交行业综合年报_z where 统计年份='
+combobox1.text;
ADOCommand1.Execute;
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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -