⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bustradecszhyearrepunit.~pas

📁 公交行业的管理系统
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:
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 + -