📄 bustramonlrunit.pas
字号:
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 + -