?? busjlzbunit.pas
字號:
unit BusJLZBUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Buttons, Grids, DBGrids, Db, ADODB, ExtCtrls, DBCtrls,
QuickRpt, QRCtrls,comobj,Variants;
type
TBusJLZBForm = class(TForm)
ADOQuery2: TADOQuery;
ADOCommand1: TADOCommand;
ADOQPrintMon: TADOQuery;
QueryPageLeft1: TADOQuery;
QueryPageLeft1Src: TDataSource;
QueryPageRight1Src: TDataSource;
ADOQuery4: TADOQuery;
QueryPageLeft1DSDesigner: TSmallintField;
QueryPageLeft1DSDesigner3: TWideStringField;
QueryPageLeft1DSDesigner6: TWideStringField;
QueryPageLeft1StringField: TStringField;
QueryPageLeft1StringField3: TStringField;
QueryPageRight1: TADOQuery;
QueryPageRight1DSDesigner6: TWideStringField;
QueryPageRight1DSDesigner: TSmallintField;
QueryPageRight1DSDesigner3: TWideStringField;
QueryPageRight1StringField: TStringField;
QueryPageRight1StringField2: TStringField;
QueryPageRight1StringField3: TStringField;
QueryPageLeft1DSDesigner2: TFloatField;
QueryPageRight1DSDesigner2: TFloatField;
Panel6: TPanel;
DataSource1: TDataSource;
Panel2: TPanel;
Label13: TLabel;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
SpeedButton2: TSpeedButton;
Label12: TLabel;
SpeedButton1: TSpeedButton;
ComboBox1: TComboBox;
Edit9: TEdit;
Panel3: TPanel;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
Panel4: TPanel;
Label3: TLabel;
BitBtn2: TBitBtn;
BitBtn6: TBitBtn;
BitBtn4: TBitBtn;
BitBtn3: TBitBtn;
BitBtn5: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
DBMemo1: TDBMemo;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboBox1Change(Sender: TObject);
procedure QueryPageLeft1AfterInsert(DataSet: TDataSet);
procedure QueryPageLeft1AfterEdit(DataSet: TDataSet);
procedure QueryPageLeft1AfterPost(DataSet: TDataSet);
procedure QueryPageLeft1AfterScroll(DataSet: TDataSet);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid2KeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton1Click(Sender: TObject);
private
IsDelete:boolean;
function CheckYearMon:boolean;
procedure ButtonEnable(curButton:TBitBtn);
public
IsModifyIndex:boolean;
PostIndex:string;
curYear,curMon:string;
function IsEmptyRep:boolean;
procedure CheckBalanceRel(curRecordStr:string);
procedure DealProc1(ResultValue:string;Oper1Value:string;Oper2Value:string;curSigh:string);
procedure DealProc2(ResultValue:string;Oper1Value:string;Oper2Value:single;curSigh:string);
function AddPrnQuery:boolean;
procedure ToZTable;
procedure LookUpZB(var OperValue:single;OperName:string;var curPos:integer);
procedure OpenAllPage;
function BalanceRelRight(curRecordStr:string):boolean;
procedure RefreshPage;
end;
var
BusJLZBForm: TBusJLZBForm;
implementation
uses BusTradeDataModuleUnit, PrintInfoUnit,PrintProc, CitySelectUnit;//, InputMonth;
{$R *.DFM}
function TBusJLZBForm.CheckYearMon:boolean;
var
YearValue:integer;
MonValue:integer;
begin
try
YearValue:=StrToInt(ComboBox1.Text);
except
ShowMessage('年份不是數值.');
CheckYearMon:=false;
exit;
end;
if((YearValue<2000) or (YearValue>2050))then
begin
ShowMessage('輸入年份不對.');
CheckYearMon:=false;
exit;
end;
CheckYearMon:=true;
end;
function TBusJLZBForm.IsEmptyRep:boolean;
begin
if((QueryPageLeft1.RecordCount>0) or
(QueryPageRight1.RecordCount>0)
)then
begin
IsEmptyRep:=false;
exit;
end;
IsEmptyRep:=true;
end;
procedure TBusJLZBForm.BitBtn2Click(Sender: TObject);{添加}
begin
if(not CheckYearMon)then exit;
if(not IsEmptyRep)then
begin
showmessage('該月數據已存在,請先刪除該月數據.');
exit;
end;
ButtonEnable(BitBtn2);
DBMemo1.ReadOnly:=false;
BusTradeDataModule.ADOConnection1.BeginTrans;
ADOCommand1.CommandText:='insert into 公交行業城市交流指標表_z(指標代碼,統計年份,城市代碼)'
+' select 指標代碼,'+ComboBox1.text+','
+''''+Edit9.text+''''+' from 公交行業城市交流指標定義表 ';
ADOCommand1.Execute;
OpenAllPage;
end;
procedure TBusJLZBForm.BitBtn4Click(Sender: TObject);{刪除}
begin
if(MessageBox(self.Handle,'你是否刪除?','提示',MB_OKCANCEL)=IDOK)then
begin
BusTradeDataModule.ADOConnection1.BeginTrans;
ADOCommand1.CommandText:='delete from 公交行業城市交流指標表_z '+
' where 統計年份='+ComboBox1.text+
' and 城市代碼='+''''+Edit9.text+'''';
ADOCommand1.Execute;
ADOCommand1.CommandText:='delete from 公交行業城市交流指標表 '+
' where 統計年份='+ComboBox1.text+
' and 城市代碼='+''''+Edit9.text+'''';
ADOCommand1.Execute;
BusTradeDataModule.ADOConnection1.CommitTrans;
OpenAllPage;
DBGrid1.ReadOnly:=true;
DBMemo1.ReadOnly:=true;
exit;
end;
end;
procedure TBusJLZBForm.ButtonEnable(curButton:TBitBtn);
begin
if(curButton=nil)then
begin
BitBtn2.Enabled:=True;
BitBtn4.Enabled:=True;
BitBtn6.Enabled:=True;
BitBtn3.Enabled:=False;
BitBtn5.Enabled:=False;
BitBtn8.Enabled:=false;
DBGrid1.ReadOnly:=true;
DBGrid2.ReadOnly:=true;
exit;
end;
if((curButton.Name='BitBtn2') or (curButton.Name='BitBtn4') or (curButton.Name='BitBtn6'))then
begin
BitBtn2.Enabled:=False;
BitBtn4.Enabled:=False;
BitBtn6.Enabled:=False;
BitBtn7.Enabled:=false;
BitBtn8.Enabled:=False;
BitBtn3.Enabled:=True;
BitBtn5.Enabled:=True;
ComboBox1.Enabled:=false;
DBGrid1.ReadOnly:=false;
DBGrid2.ReadOnly:=false;
end;
if((curButton.Name='BitBtn3') or (curButton.Name='BitBtn5'))then
begin
BitBtn2.Enabled:=True;
BitBtn4.Enabled:=True;
BitBtn6.Enabled:=True;
BitBtn7.Enabled:=true;
BitBtn8.Enabled:=True;
BitBtn3.Enabled:=False;
BitBtn5.Enabled:=False;
ComboBox1.Enabled:=true;
DBGrid1.ReadOnly:=true;
DBGrid2.ReadOnly:=true;
end;
end;
procedure TBusJLZBForm.BitBtn3Click(Sender: TObject);{確定}
var
i:integer;
WrongMessage:string;
begin
if(not CheckYearMon)then exit;
RefreshPage;
BusTradeDataModule.ADOConnection1.CommitTrans;
ButtonEnable(BitBtn3);
DBGrid1.ReadOnly:=True;
DBMemo1.ReadOnly:=true;
ToZTable;
showmessage('數據已經保存!');
end;
procedure TBusJLZBForm.ToZTable;
var
i:integer;
begin
if(ADOQuery4.RecordCount<=0)then
ADOQuery4.Append else
ADOQuery4.Edit;
ADOQuery4.FieldByName('統計年份').AsInteger:=StrToInt(ComboBox1.Text);
ADOQuery4.FieldByName('城市代碼').AsString:=trim(Edit9.text);
ADOQPrintMon.Close;
ADOQPrintMon.Open;
ADOQPrintMon.First;
while not ADOQPrintMon.Eof do
begin
for i:=0 to ADOQuery4.FieldCount-1 do
begin
if((ADOQuery4.Fields[i].FieldName<>'統計年份') and
(ADOQuery4.Fields[i].FieldName<>'企業代碼')
)then
begin
if(ADOQPrintMon.FieldByName('指標代碼').AsString=ADOQuery4.Fields[i].FieldName)then
ADOQuery4.Fields[i].Value:=ADOQPrintMon.FieldByName('本年實際').Value;
end;
end;
ADOQPrintMon.Next;
end;
ADOQuery4.Post;
end;
procedure TBusJLZBForm.BitBtn5Click(Sender: TObject);{取消}
begin
ButtonEnable(BitBtn5);
BusTradeDataModule.ADOConnection1.RollbackTrans;
DBGrid1.ReadOnly:=True;
DBMemo1.ReadOnly:=true;
OpenAllPage;
end;
procedure TBusJLZBForm.FormCreate(Sender: TObject);
begin
IsDelete:=false;
IsModifyIndex:=false;
end;
procedure TBusJLZBForm.BitBtn6Click(Sender: TObject);{修改}
begin
if(IsEmptyRep)then
begin
MessageBox(self.handle,'數據為空!','消息',MB_OK);
exit;
end;
ButtonEnable(BitBtn6);
DBMemo1.ReadOnly:=false;
BusTradeDataModule.ADOConnection1.BeginTrans;
end;
function TBusJLZBForm.BalanceRelRight(curRecordStr:string):boolean;
var
Oper1,Oper2:single;
curPos:integer;
WrongMessage:string;
begin
WrongMessage:='';
{if((curRecordStr='G14') or (curRecordStr='G11'))then
begin
LookUpZB(Oper1,'G14',curPos);
LookUpZB(Oper2,'G11',curPos);
if(Oper1>Oper2)then
begin
WrongMessage:='G14<=G11的平衡關系不滿足!';
end;
end;
if((curRecordStr='G18') or (curRecordStr='G15'))then
begin
LookUpZB(Oper1,'G18',curPos);
LookUpZB(Oper2,'G15',curPos);
if(Oper1>Oper2)then
begin
WrongMessage:='G18<=G15的平衡關系不滿足!';
end;
end;
if(WrongMessage<>'')then
begin
BalanceRelRight:=false;
//MessageBox(self.Handle,PCHAR(WrongMessage),PCHAR('錯誤'),MB_OK);
exit;
end;
}
BalanceRelRight:=true;
end;
procedure TBusJLZBForm.CheckBalanceRel(curRecordStr:string);
var
WrongMessage:string;
begin
{ if((curRecordStr='JG02') or (curRecordStr='JG05'))then
begin
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -