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

📄 bustramonlrunit.pas

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

interface

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

type
  TBusTraMonLRFm = class(TForm)
    Panel3: TPanel;
    Panel5: TPanel;
    Panel1: TPanel;
    Label6: TLabel;
    Edit1: TEdit;
    Panel4: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label9: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Panel2: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Panel6: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    ListView1: TListView;
    TabSheet2: TTabSheet;
    ListView2: TListView;
    TabSheet3: TTabSheet;
    ListView3: TListView;
    TabSheet4: TTabSheet;
    ListView4: TListView;
    ADOQuery1: TADOQuery;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    iAddFlag:Integer;
    iExistFlag:Integer;
    procedure WriteListView(LView:TListView;Row:Integer;Source:TADOQuery);
    function TwoDisim(input:string):string;
    function DealString(input:String):single;{ Public declarations }
  end;

var
  BusTraMonLRFm: TBusTraMonLRFm;

implementation

uses PrintInfoUnit, PrintProc;

{$R *.dfm}
function TBusTraMonLRFm.DealString(input:String):single;
var
        iReturnValue:Single;
begin
        if input='' then
        begin
                iReturnValue:=0;
        end
        else
        begin
                iReturnValue:=StrToFloat(input);
        end;

        DealString:= iReturnValue;
end;

procedure TBusTraMonLRFm.WriteListView(LView:TListView;Row:Integer;Source:TADOQuery);
var
i:integer;
begin
        for i:=0 to Row-1 do
        begin
                if LView.Items[i].SubItems.Count<3 then
                begin
                        LView.Items[i].SubItems.Add(TwoDisim(Source.fieldbyname('本年本月实际').AsString));
                        LView.Items[i].SubItems.Add(TwoDisim(Source.fieldbyname('本年累计').AsString));
                        LView.Items[i].SubItems.Add(TwoDisim(Source.fieldbyname('去年本月实际').AsString));
                        LView.Items[i].SubItems.Add(TwoDisim(Source.fieldbyname('去年累计').AsString));
                        LView.Items[i].SubItems.Add(TwoDisim(Source.fieldbyname('本月比较百分比').AsString));
                        LView.Items[i].SubItems.Add(TwoDisim(Source.fieldbyname('累计比较百分比').AsString));
                        Source.Next;
                end else
                begin
                        LView.Items[i].SubItems[2]:=TwoDisim(Source.fieldbyname('本年本月实际').AsString);
                        LView.Items[i].SubItems[3]:=TwoDisim(Source.fieldbyname('本年累计').AsString);
                        LView.Items[i].SubItems[4]:=TwoDisim(Source.fieldbyname('去年本月实际').AsString);
                        LView.Items[i].SubItems[5]:=TwoDisim(Source.fieldbyname('去年累计').AsString);
                        LView.Items[i].SubItems[6]:=TwoDisim(Source.fieldbyname('本月比较百分比').AsString);
                        LView.Items[i].SubItems[7]:=TwoDisim(Source.fieldbyname('累计比较百分比').AsString);                                                                        
                        Source.Next;
                end;
        end;
end;

function TBusTraMonLRFm.TwoDisim(input:string):string;
var
iPosNum:integer;
sString:string;
begin
        iPosNum:=Pos('.',input);
        if iPosNum<>0 then
        begin
                sString:=copy(input,1,iPosNum+2);
                TwoDisim:=sString;
        end
        else if iPosNum=0 then TwoDisim:=input;
end;

procedure TBusTraMonLRFm.BitBtn1Click(Sender: TObject);
var
        ThisYear,LastYear,StartMon,MonTime:string;
        j:integer;
        iRow:Integer;
        iCityCode:String;
        sqlString:String;
        iDiv:Single;
        iDivd:Single;
begin
        ThisYear:=ComboBox1.Text;
        StartMon:=ComboBox2.Text;
        iCityCode:='''' + '022' + '''';
        if ((Length(ThisYear) <> 4) or (ThisYear<'1990') or (ThisYear >'2030')) then
        begin
                ShowMessage('请输入在时间范围1990-2030内的合法年份!');
                exit;
        end
        else if StartMon='' then
        begin
                ShowMessage('请选择统计月份!');
                exit;
        end;

        LastYear:=IntToStr(StrToInt(ThisYear)-1);


        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        sqlString:='select 指标代码,测算值 as 本月实际 from 公交行业统计月报_z'
                       +' where 城市代码=' + iCityCode + ' and 统计年份='+ThisYear+' and 统计月份='+StartMon;
        ADOQuery1.SQL.Add(sqlString);
        ADOQuery1.Open;
        if ADOQuery1.RecordCount=0 then
        begin
                showmessage('对不起!数据库中没有'+ThisYear+'年'+StartMon+'月的测算数据,请先录入!');
                if iAddFlag=1 then
                begin
                        ClearData(ListView1,20,0,6,2);
                        ClearData(ListView2,20,0,6,2);
                        ClearData(ListView3,21,0,6,2);
                        ClearData(ListView4,20,0,6,2);
                end;
                exit;
        end
        else
        begin
                ADOQuery1.First;
                for iRow := 0 to ADOQuery1.RecordCount-1 do
                begin
                        if ADOQuery1.FieldByName('本月实际').Value<>0 then
                        begin
                                iExistFlag:=1;
                                break;
                        end;
                        ADOQuery1.Next;
                end;
                if iExistFlag=0 then
                begin
                        ShowMessage('对不起!数据库中没有'+ThisYear+'年'+StartMon+'月的测算数据,请先录入!');
                        if iAddFlag=1 then
                        begin
                                ClearData(ListView1,20,0,6,2);
                                ClearData(ListView2,20,0,6,2);
                                ClearData(ListView3,21,0,6,2);
                                ClearData(ListView4,20,0,6,2);
                        end;

                        exit;
                end;

        end;

        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        sqlString:='select 指标代码,测算值 as 本月实际  from 公交行业统计月报_z'
                       +' where 城市代码=' + iCityCode + ' and 统计年份='+LastYear+' and 统计月份='+StartMon;
        ADOQuery1.SQL.Add(sqlString);
        ADOQuery1.Open;
        if ADOQuery1.RecordCount=0 then
        begin
                showmessage('对不起!数据库中没有'+LastYear+'年'+StartMon+'月的测算数据数据,请先录入!');
                if iAddFlag=1 then
                begin
                        ClearData(ListView1,20,0,6,2);
                        ClearData(ListView2,20,0,6,2);
                        ClearData(ListView3,21,0,6,2);
                        ClearData(ListView4,20,0,6,2);
                end;
                exit;
        end
        else
        begin
                ADOQuery1.First;
                for  iRow:= 0 to ADOQuery1.RecordCount-1 do
                begin
                        if ADOQuery1.FieldByName('本月实际').AsString<>'' then
                        begin

⌨️ 快捷键说明

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