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

📄 bustrazhyearunit.pas

📁 公交行业的管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit BusTraZHYearUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls, DB, ADODB;

type
  TBusTraZhYearFm = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel4: TPanel;
    Label6: TLabel;
    Edit1: TEdit;
    Panel5: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    ComboBox1: TComboBox;
    Panel6: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Panel3: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    ListView1: TListView;
    BitBtn4: TBitBtn;
    BitBtn5: 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;
    ADOQuery1: TADOQuery;
    Panel14: TPanel;
    Label4: TLabel;
    Label5: TLabel;
    ComboBox2: TComboBox;
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    iExistFlag:Integer;
    { Public declarations }
    function CalculatePercent(sDiv:string;sDivd:String;sAddPar:Integer):string;
  end;

var
  BusTraZhYearFm: TBusTraZhYearFm;

implementation

uses BusTradeDataModuleUnit, PrintInfoUnit, PrintProc;

{$R *.dfm}
function TBusTraZhYearFm.CalculatePercent(sDiv:string;sDivd:String;sAddPar:Integer):string;
var
        iReturn:String;
        iDiv:single;
        iDivd:single;
        iResult:single;
begin
        if (sDiv='') then
        begin
                iDiv:=0;
        end
        else
        begin
                iDiv:=StrToFloat(sDiv);
        end;

        iDivd:=StrToFloat(sDivd);
        if iDivd=0 then
        begin
                iResult:=0;
        end
        else
        begin
                iResult:=(iDiv-iDivd)/iDivd*sAddPar;
        end;

        iReturn:=FloatToStr(iResult);

        CalculatePercent:=ConverterPercent(iReturn);

end;

procedure TBusTraZhYearFm.BitBtn3Click(Sender: TObject);
begin
        Close;
end;

procedure TBusTraZhYearFm.BitBtn1Click(Sender: TObject);
var
        iYear:String;
        iLYear:String;
        sqlString:String;
        iRow:integer;
        iCityCode:String;
        iListView:TListView;
        iDataType:String;
begin
        iYear:=ComboBox1.Text;
        if ((Length(iYear) <> 4) or (iYear<'1990') or (iYear >'2030')) then
        begin
                ShowMessage('请输入在时间范围1990-2030内的合法年份!');
                exit;
        end;

        iLYear:=IntToStr(StrToInt(iYear)-1);
        iDataType:=ComboBox2.Text;
        iCityCode:='''' + '022' + '''';

        //-----判断是否存在今年的数据-----{查询}
        sqlString:= 'select 指标代码,' + iDataType + ' as 实际 from 公交行业综合年报_z where '
                   //+ ' 城市代码=' + iCItyCode +
                  +' 统计年份=' + iYear + ' order by 指标代码';
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add(sqlString);
        ADOQuery1.Open;

        if ADOQuery1.RecordCount=0 then
        begin
                ShowMessage('不存在' + iYear + '年的行业综合年报数据,请先生成!');
                ClearData(ListView1,22,0,3,2);
                ClearData(ListView2,22,0,3,2);
                ClearData(ListView3,22,0,3,2);
                ClearData(ListView4,22,0,3,2);
                ClearData(ListView5,22,0,3,2);
                ClearData(ListView6,23,0,3,2);
                ClearData(ListView7,23,0,3,2);
                ClearData(ListView8,23,0,3,2);
                BitBtn2.Enabled:=false;
                exit;
        end
        else
        begin
                ADOQuery1.First;
                for  iRow:= 0 to ADOQuery1.RecordCount-1 do
                begin
                        if ADOQuery1.FieldByName('实际').AsString<>'' then
                        begin
                                iExistFlag:=1;
                                break;
                        end;
                        ADOQuery1.Next;
                end;

                if iExistFlag=0 then
                begin
                        ShowMessage('不存在' + iYear + '年的行业综合年报数据,请先生成!');
                        ClearData(ListView1,22,0,3,2);
                        ClearData(ListView2,22,0,3,2);
                        ClearData(ListView3,22,0,3,2);
                        ClearData(ListView4,22,0,3,2);
                        ClearData(ListView5,22,0,3,2);
                        ClearData(ListView6,23,0,3,2);
                        ClearData(ListView7,23,0,3,2);
                        ClearData(ListView8,23,0,3,2);

                        exit;
                end;
        end;

        iExistFlag:=0;
        sqlString:= 'select 指标代码,' + iDataType+ ' as 实际 from 公交行业综合年报_z where '
                   //+ ' 城市代码=' + iCityCode
                   + ' 统计年份=' + iLYear + ' order by 指标代码';

        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add(sqlString);
        ADOQuery1.Open;

        if ADOQuery1.RecordCount=0 then
        begin
                ShowMessage('不存在' + iLYear + '年的行业综合年报数据,请先生成!');
                ClearData(ListView1,22,0,3,2);
                ClearData(ListView2,22,0,3,2);
                ClearData(ListView3,22,0,3,2);
                ClearData(ListView4,22,0,3,2);
                ClearData(ListView5,22,0,3,2);
                ClearData(ListView6,23,0,3,2);
                ClearData(ListView7,23,0,3,2);
                ClearData(ListView8,23,0,3,2);
                BitBtn2.Enabled:=false;
                exit;
        end
        else
        begin
                ADOQuery1.First;
                for  iRow:= 0 to ADOQuery1.RecordCount-1 do
                begin
                        if ADOQuery1.FieldByName('实际').AsString<>'' then
                        begin
                                iExistFlag:=1;
                                break;
                        end;
                        ADOQuery1.Next;
                end;

                if iExistFlag=0 then
                begin
                        ShowMessage('不存在' + iYear + '年的行业综合年报数据,请先生成!');
                        ClearData(ListView1,22,0,3,2);
                        ClearData(ListView2,22,0,3,2);
                        ClearData(ListView3,22,0,3,2);
                        ClearData(ListView4,22,0,3,2);
                        ClearData(ListView5,22,0,3,2);
                        ClearData(ListView6,23,0,3,2);
                        ClearData(ListView7,23,0,3,2);
                        ClearData(ListView8,23,0,3,2);
                        exit;
                end;

                iExistFlag:=0;

                {ADOQuery1.First;
                for iRow := 0 to ADOQuery1.RecordCount-1 do
                begin
                        if ADOQuery1.FieldByName('全年实际').Value=0 then
                        begin
                                ShowMessage('对不起,基期数据不能为零,请你重新生成数据,或者选择新的基期!');
                                ClearData(ListView1,22,0,3,2);
                                ClearData(ListView2,22,0,3,2);
                                ClearData(ListView3,22,0,3,2);
                                ClearData(ListView4,22,0,3,2);
                                ClearData(ListView5,22,0,3,2);
                                ClearData(ListView6,23,0,3,2);
                                ClearData(ListView7,23,0,3,2);
                                ClearData(ListView8,23,0,3,2);
                                BitBtn2.Enabled:=false;
                                exit;
                        end;
                        ADOQuery1.Next;
                end;
                }
        end;

        //-------查询数据填如ListView-------
        sqlString:= ' select a.指标代码,a.' + iDataType + ' as 全年实际,b.' + iDataType + ' as 去年同期'//,(全年实际-去年同期)/去年同期*100 as 比较'
                  + ' from 公交行业综合年报_z a,公交行业综合年报_z b'
                  + ' where '//a.城市代码=' + iCityCode + ' and b.城市代码=a.城市代码'
                  + ' a.统计年份=' + iYear + ' and b.统计年份=' + iLYear
                  + ' and b.指标代码=a.指标代码 order by a.指标代码';

        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add(sqlString);
        ADOQuery1.Open;

        ADOQuery1.First;
        //-------第一页-------------
        iListView:=ListView1;
        for iRow := 0 to 21 do
        begin
                iListView.Items[iRow].SubItems[2]:= Converter(ADOQuery1.FieldByName('全年实际').AsString);
                iListView.Items[iRow].SubItems[3]:= Converter(ADOQuery1.FieldByName('去年同期').AsString);
                if (iListView.Items[iRow].SubItems[3]='') or (iListView.Items[iRow].SubItems[3]='0') then
                begin
                        iListView.Items[iRow].SubItems[4]:='0';
                end
                else
                begin
                        iListView.Items[iRow].SubItems[4]:= CalculatePercent(iListView.Items[iRow].SubItems[2],iListVIew.Items[iRow].SubItems[3],100);
                end;
                ADOQuery1.Next;
        end;

        //--------第二页------------
        iListVIew:=ListView2;
        for iRow := 0 to 21 do
        begin
                iListView.Items[iRow].SubItems[2]:= Converter(ADOQuery1.FieldByName('全年实际').AsString);
                iListView.Items[iRow].SubItems[3]:= Converter(ADOQuery1.FieldByName('去年同期').AsString);
                if (iListView.Items[iRow].SubItems[3]='') or (iListView.Items[iRow].SubItems[3]='0') then

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -