📄 bustradeyeareditunit.~pas
字号:
try
YearValue:=StrToInt(ComboBox1.Text);
except
ShowMessage('年份不是数值!');
CheckYear:=false;
exit;
end;
if((YearValue<1990) or (YearValue>2030))then
begin
ShowMessage('输入年份不对!');
CheckYear:=false;
exit;
end;
CheckYear:=true;
end;
procedure TBusTradeYearEditFrm.ButtonEnable(curButton:TButton);
begin
if(curButton=nil)then
begin
BitBtn2.Enabled:=True;
BitBtn3.Enabled:=True;
BitBtn4.Enabled:=false;
BitBtn5.Enabled:=false;
BitBtn8.Enabled:=true;
PanelEnable(false);
exit;
end;
if((curButton.Name='BitBtn2') or (curButton.Name='BitBtn3'))then
begin
BitBtn2.Enabled:=False;
BitBtn3.Enabled:=False;
BitBtn8.Enabled:=False;
BitBtn7.Enabled:=False;
BitBtn6.Enabled:=false;
BitBtn4.Enabled:=True;
BitBtn5.Enabled:=True;
PanelEnable(true);
end;
if((curButton.Name='BitBtn4') or (curButton.Name='BitBtn5'))then
begin
BitBtn2.Enabled:=True;
BitBtn3.Enabled:=True;
BitBtn7.Enabled:=True;
BitBtn8.Enabled:=True;
BitBtn4.Enabled:=False;
BitBtn5.Enabled:=False;
PanelEnable(false);
end;
IF(curButton.Name='BitBtn8')Then
begin
BitBtn2.Enabled:=true;
BitBtn3.Enabled:=true;
BitBtn4.Enabled:=false;
BitBtn5.Enabled:=false;
PanelEnable(true);
end;
end;
procedure TBusTradeYearEditFrm.PanelEnable(Bool:Boolean);
begin
Panel6.enabled:=Bool;
Panel7.enabled:=Bool;
Panel11.enabled:=Bool;
Panel13.enabled:=Bool;
end;
function TBusTradeYearEditFrm.AddPrnQuery:boolean;
var sqlstr:string;
begin
if(not CheckYear)then
begin
AddPrnQuery:=false;
exit;
end;
sqlstr:='select 城市代码,统计年份,指标代码,测算值 from 公交行业统计年报_z where 统计年份='+ComboBox1.text+
' and 城市代码='+''''+Edit9.text+'''';
ADOQPrintYear.Close;
ADOQPrintYear.SQL.Clear;
ADOQPrintYear.SQL.Add(sqlstr);
try
ADOQPrintYear.Open;
AddPrnQuery:=true;
except
AddPrnQuery:=false;
end;
end;
procedure TBusTradeYearEditFrm.OpenAllPage();
var sqlstr:string;
begin
sqlstr:='select * from 公交行业统计年报表 where 城市代码='+''''+Edit9.text+''''+
' and 统计年份='+combobox1.text+' and 生成方式='+''''+'录入'+'''';
BusADOQuery.close;
BusADOQuery.SQL.clear;
BusADOQuery.SQL.Add(sqlstr);
BusADOQuery.open;
end;
function TBusTradeYearEditFrm.IsEmptyRep():boolean;
begin
if(BusADOQuery.RecordCount<=0) then
begin
IsEmptyRep:=true;
exit;
end;
IsEmptyRep:=false;
end;
procedure TBusTradeYearEditFrm.BitBtn7Click(Sender: TObject);
begin
close;
end;
procedure TBusTradeYearEditFrm.BitBtn2Click(Sender: TObject);
begin
if(not CheckYear)then exit;
if(not IsEmptyRep)then
begin
showmessage('该年数据已存在,请先删除该年数据!');
exit;
end;
ButtonEnable(BitBtn2);
BusADOQuery.Append;
end;
procedure TBusTradeYearEditFrm.BitBtn3Click(Sender: TObject);
begin
if(IsEmptyRep)then
begin
MessageBox(self.handle,'数据为空!','消息',MB_OK);
exit;
end;
ButtonEnable(BitBtn3);
BusADOQuery.Edit;
end;
procedure TBusTradeYearEditFrm.BitBtn8Click(Sender: TObject);
begin
if(IsEmptyRep())then
begin
showmessage('对不起,不存在本年数据!');
BitBtn6.enabled:=false;
exit;
end;
if(MessageBox(self.Handle,'你是否删除?','提示',MB_OKCANCEL)=IDOK)then
begin
showmessage('由于速度较慢,请您稍等!');
BusTradeDataModule.ADOConnection1.BeginTrans;
ADOCommand1.CommandText:='delete from 公交行业统计年报表'+
' where 统计年份='+ComboBox1.text+
' and 城市代码='+''''+Edit9.text+''''+' and 生成方式='+''''+'录入'+'''';
ADOCommand1.Execute;
if(YearDataNul())then
begin
ADOCommand1.CommandText:='update 公交行业统计年报_z set 测算值='+' 0 where 城市代码='+
''''+Edit9.text+''''+' and 统计年份='+combobox1.Text;
ADOCommand1.Execute;
end else
begin
ADOCommand1.CommandText:='delete from 公交行业统计年报_z '+
' where 城市代码='+''''+Edit9.text+''''+' and 统计年份='+combobox1.Text;
ADOCommand1.Execute;
end;
BusTradeDataModule.ADOConnection1.CommitTrans;
ButtonEnable(BitBtn8);
BitBtn6.Enabled:=false;
OpenAllPage;
AddPrnQuery;
exit;
end;
BitBtn6.Enabled:=true;
end;
procedure TBusTradeYearEditFrm.BitBtn4Click(Sender: TObject);
begin
if(CheckBalance)then exit;
if(BusADOQuery.State in [dsInsert,dsEdit])then
BusADOQuery.Post;
ButtonEnable(BitBtn4);
FillDataToZTable(BusADOQuery,ADOQPrintYear);
showmessage('数据已经保存!');
BitBtn6.Enabled:=true;
end;
procedure TBusTradeYearEditFrm.FillDataToZTable(SrcTable:TADOQuery;DesTable:TADOQuery);
var
i:integer;
begin
DesTable.Close;
DesTable.Open;
for i:=0 to SrcTable.FieldCount-1 do
begin
if (SrcTable.Fields[i].FieldName<>'统计年份') and
(SrcTable.Fields[i].FieldName<>'城市代码') and
(SrcTable.Fields[i].FieldName<>'备注')and
(SrcTable.Fields[i].FieldName<>'生成方式')then
begin
if(DesTable.Locate('统计年份;城市代码;指标代码',
VarArrayOf([StrToInt(ComboBox1.Text),
trim(Edit9.text),SrcTable.Fields[i].FieldName]),[]))then
DesTable.Edit else
DesTable.Append;
DesTable.FieldByName('测算值').Value:=SrcTable.Fields[i].Value;
DesTable.FieldByName('统计年份').AsInteger:=StrToInt(ComboBox1.Text);
DesTable.FieldByName('城市代码').AsString:=trim(Edit9.text);
DesTable.FieldByName('指标代码').AsString:=SrcTable.Fields[i].FieldName;
DesTable.Post;
end;
end;
end;
procedure TBusTradeYearEditFrm.BitBtn5Click(Sender: TObject);
begin
ButtonEnable(BitBtn5);
BusADOQuery.Cancel;
end;
procedure TBusTradeYearEditFrm.BusADOQueryAfterInsert(DataSet: TDataSet);
begin
BusADOQuery.FieldByName('统计年份').AsString:=ComboBox1.Text;
BusADOQuery.FieldByName('城市代码').AsString:=Edit9.Text;
BusADOQuery.FieldByName('生成方式').AsString:='录入';
end;
procedure TBusTradeYearEditFrm.BusADOQueryBeforePost(DataSet: TDataSet);
var i:integer;
begin
for i:=0 to BusADOQuery.FieldCount-1 do
begin
if(trim(BusADOQuery.Fields[i].AsString)='')then
BusADOQuery.Fields[i].AsString:='0';
end;
end;
function TBusTradeYearEditFrm.CheckBalance():boolean;
var WrongMessage:string;
begin
WrongMessage:='';
if(BusADOQuery.FieldByName(DBEdit3.DataField).asfloat<
BusADOQuery.FieldByName(DBEdit4.DataField).asfloat+
BusADOQuery.FieldByName(DBEdit5.DataField).AsFloat)
then
WrongMessage:=WrongMessage+' GN03>=GN04+GN05 ';
if(BusADOQuery.FieldByName(DBEdit6.DataField).AsFloat<
BusADOQuery.FieldByName(DBEdit7.DataField).asfloat+
BusADOQuery.FieldByName(DBEdit8.DataField).asfloat)
then
WrongMessage:=WrongMessage+' GN06>=GN07+GN08 ';
if(BusADOQuery.FieldByName(DBEdit13.DataField).AsFloat<
BusADOQuery.FieldByName(DBEdit14.DataField).asfloat+
BusADOQuery.FieldByName(DBEdit15.DataField).AsFloat)
then
WrongMessage:=WrongMessage+' GN13>=GN14+GN15 ';
if(BusADOQuery.FieldByName(DBEdit16.DataField).asfloat<
BusADOQuery.FieldByName(DBEdit17.DataField).AsFloat+
BusADOQuery.FieldByName(DBEdit18.DataField).AsFloat)
then
WrongMessage:=WrongMessage+' GN16>=GN17+GN18 ';
if(BusADOQuery.FieldByName(DBEdit30.DataField).asfloat<
BusADOQuery.FieldByName(DBEdit31.DataField).AsFloat)
then
WrongMessage:=WrongMessage+' GN30>=GN31 ';
if(BusADOQuery.FieldByName(DBEdit32.DataField).asfloat<
BusADOQuery.FieldByName(DBEdit33.DataField).AsFloat)
then
WrongMessage:=WrongMessage+' GN32>=GN33 ';
if(BusADOQuery.FieldByName(DBEdit37.DataField).asfloat<>
BusADOQuery.FieldByName(DBEdit1.DataField).AsFloat)
then
WrongMessage:=WrongMessage+' GN37=GN01 ';
if(BusADOQuery.FieldByName(DBEdit56.DataField).asfloat<
BusADOQuery.FieldByName(DBEdit57.DataField).asfloat)
then
WrongMessage:=WrongMessage+' GN56>=GN57 ';
if(BusADOQuery.FieldByName(DBEdit58.DataField).AsFloat<
BusADOQuery.FieldByName(DBEdit59.DataField).AsFloat)
then
WrongMessage:=WrongMessage+' GN58>=GN59 ';
if(BusADOQuery.FieldByName(DBEdit83.DataField).asfloat<=
BusADOQuery.FieldByName(DBEdit86.DataField).AsFloat)
then
WrongMessage:=WrongMessage+' GN83>GN86 ';
if(WrongMessage<>'')then
begin
showmessage('不满足'+WrongMessage+'指标之间的关系!');
CheckBalance:=true;
end else
CheckBalance:=false;
end;
procedure TBusTradeYearEditFrm.FormCreate(Sender: TObject);
begin
DBEdit3.OnExit:=DealDBEditExit;
DBEdit6.OnExit:=DealDBEditExit;
DBEdit9.OnExit:=DealDBEditExit;
DBEdit10.OnExit:=DealDBEditExit;
DBEdit11.OnExit:=DealDBEditExit;
//------------------------------
DBEdit13.OnExit:=DealDBEditExit;
DBEdit16.OnExit:=DealDBEditExit;
DBEdit19.OnExit:=DealDBEditExit;
DBEdit20.OnExit:=DealDBEditExit;
DBEdit21.OnExit:=DealDBEditExit;
//------------------------------
DBEdit23.OnExit:=DealDBEditExit;
DBEdit24.OnExit:=DealDBEditExit;
//------------------------------
DBEdit26.OnExit:=DealDBEditExit;
DBEdit27.OnExit:=DealDBEditExit;
//------------------------------
DBEdit28.OnExit:=DealDBEditExit;
//------------------------------
DBEdit30.OnExit:=DealDBEditExit;
DBEdit32.OnExit:=DealDBEditExit;
//------------------------------
DBEdit35.OnExit:=DealDBEditExit;
DBEdit36.OnExit:=DealDBEditExit;
//------------------------------
DBEdit38.OnExit:=DealDBEditExit;
DBEdit42.OnExit:=DealDBEditExit;
//------------------------------
DBEdit39.OnExit:=DealDBEditExit;
DBEdit40.OnExit:=DealDBEditExit;
DBEdit41.OnExit:=DealDBEditExit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -