📄 bustradeyeareditunit.~pas
字号:
//------------------------------
DBEdit43.OnExit:=DealDBEditExit;
DBEdit44.OnExit:=DealDBEditExit;
DBEdit45.OnExit:=DealDBEditExit;
//------------------------------
DBEdit48.OnExit:=DealDBEditExit;
DBEdit49.OnExit:=DealDBEditExit;
//------------------------------
DBEdit51.OnExit:=DealDBEditExit;
DBEdit52.OnExit:=DealDBEditExit;
//------------------------------
DBEdit54.OnExit:=DealDBEditExit;
DBEdit55.OnExit:=DealDBEditExit;
//------------------------------
DBEdit60.OnExit:=DealDBEditExit;
//------------------------------
DBEdit69.OnExit:=DealDBEditExit;
DBEdit70.OnExit:=DealDBEditExit;
DBEdit71.OnExit:=DealDBEditExit;
DBEdit72.OnExit:=DealDBEditExit;
//------------------------------
{DBEdit75.OnExit:=DealDBEditExit;
DBEdit76.OnExit:=DealDBEditExit;
DBEdit77.OnExit:=DealDBEditExit;}
//------------------------------
DBEdit84.OnExit:=DealDBEditExit;
DBEdit85.OnExit:=DealDBEditExit;
end;
procedure TBusTradeYearEditFrm.DealDBEditExit(Sender: TObject);
var num1,num2,num3,num4,num:single;
begin
if(edit9.Text='')or(combobox1.Text='')then
exit;
if((Sender=DBEdit3) or (Sender=DBEdit6) or (Sender=DBEdit9) or (Sender=DBEdit10) or (Sender=DBEdit11))then
begin
DealProc1(DBEdit2.DataField,DBEdit3.DataField,DBEdit6.DataField,'+');
DealProc1(DBEdit2.DataField,DBEdit2.DataField,DBEdit9.DataField,'+');
DealProc1(DBEdit2.DataField,DBEdit2.DataField,DBEdit10.DataField,'+');
DealProc1(DBEdit2.DataField,DBEdit2.DataField,DBEdit11.DataField,'+');
DealProc1(DBEdit1.DataField,DBEdit2.DataField,DBEdit12.DataField,'+');
end;
//----------------------------------------
if((Sender=DBEdit13) or (Sender=DBEdit16) or (Sender=DBEdit19) or (Sender=DBEdit20) or (Sender=DBEdit21))then
begin
DealProc1(DBEdit12.DataField,DBEdit13.DataField,DBEdit16.DataField,'+');
DealProc1(DBEdit12.DataField,DBEdit12.DataField,DBEdit19.DataField,'+');
DealProc1(DBEdit12.DataField,DBEdit12.DataField,DBEdit20.DataField,'+');
DealProc1(DBEdit12.DataField,DBEdit12.DataField,DBEdit21.DataField,'+');
DealProc1(DBEdit1.DataField,DBEdit2.DataField,DBEdit12.DataField,'+');
end;
//----------------------------------------
if((Sender=DBEdit23) or (Sender=DBEdit24))then
begin
DealProc1(DBEdit22.DataField,DBEdit23.DataField,DBEdit24.DataField,'+');
end;
//----------------------------------------
if((Sender=DBEdit26) or (Sender=DBEdit27))then
begin
DealProc1(DBEdit25.DataField,DBEdit26.DataField,DBEdit27.DataField,'+');
end;
//----------------------------------------
if((Sender=DBEdit28) or (Sender=DBEdit60))then
begin
if(BusADOQuery.FieldByName(DBEdit28.DataField).Asfloat=0)or (BusADOQuery.FieldByName(DBEdit60.DataField).Asfloat=0)then
BusADOQuery.FieldByName(DBEdit61.DataField).AsString:='0'
else
begin
num:=BusADOQuery.FieldByName(DBEdit60.DataField).AsFloat/BusADOQuery.FieldByName(DBEdit28.DataField).AsFloat*100;
BusADOQuery.FieldByName(DBEdit61.DataField).AsString:=ConverterPercent(floattostr(num));
end;
end;
//----------------------------------------
if((Sender=DBEdit29) or (Sender=DBEdit41) or (Sender=DBEdit45))then
begin
if(BusADOQuery.FieldByName(DBEdit34.DataField).Asfloat=0)and
(BusADOQuery.FieldByName(DBEdit41.DataField).Asfloat=0)and
(BusADOQuery.FieldByName(DBEdit45.DataField).Asfloat=0)
then
BusADOQuery.FieldByName(DBEdit46.DataField).AsString:='0'
else
begin
num1:=BusADOQuery.FieldByName(DBEdit34.DataField).Asfloat;
num2:=BusADOQuery.FieldByName(DBEdit41.DataField).Asfloat;
num3:=BusADOQuery.FieldByName(DBEdit45.DataField).Asfloat;
num4:=BusADOQuery.FieldByName(DBEdit29.DataField).AsFloat;
num:=num1+num2+num3;
BusADOQuery.FieldByName(DBEdit46.DataField).AsString:=ConverterPercent(floattostr(num4/num*100));
end;
end;
//----------------------------------------
if((Sender=DBEdit30) or (Sender=DBEdit32))then
begin
DealProc1(DBEdit29.DataField,DBEdit30.DataField,DBEdit32.DataField,'+');
end;
//----------------------------------------
if((Sender=DBEdit35) or (Sender=DBEdit36))then
begin
DealProc1(DBEdit34.DataField,DBEdit35.DataField,DBEdit36.DataField,'+');
if(BusADOQuery.FieldByName(DBEdit34.DataField).Asfloat=0)and
(BusADOQuery.FieldByName(DBEdit41.DataField).Asfloat=0)and
(BusADOQuery.FieldByName(DBEdit45.DataField).Asfloat=0)
then
BusADOQuery.FieldByName(DBEdit46.DataField).AsString:='0'
else
begin
num1:=BusADOQuery.FieldByName(DBEdit34.DataField).Asfloat;
num2:=BusADOQuery.FieldByName(DBEdit41.DataField).Asfloat;
num3:=BusADOQuery.FieldByName(DBEdit45.DataField).Asfloat;
num4:=BusADOQuery.FieldByName(DBEdit29.DataField).AsFloat;
num:=num1+num2+num3;
BusADOQuery.FieldByName(DBEdit46.DataField).AsString:=ConverterPercent(floattostr(num4/num*100));
end;
end;
//----------------------------------------
if((Sender=DBEdit39) or (Sender=DBEdit40) or (Sender=DBEdit41))then
begin
DealProc1(DBEdit38.DataField,DBEdit39.DataField,DBEdit40.DataField,'+');
DealProc1(DBEdit38.DataField,DBEdit38.DataField,DBEdit41.DataField,'+');
DealProc1(DBEdit37.DataField,DBEdit38.DataField,DBEdit42.DataField,'+');
//------------------
if(BusADOQuery.FieldByName(DBEdit34.DataField).Asfloat=0)and
(BusADOQuery.FieldByName(DBEdit41.DataField).Asfloat=0)and
(BusADOQuery.FieldByName(DBEdit45.DataField).Asfloat=0)
then
BusADOQuery.FieldByName(DBEdit46.DataField).AsString:='0'
else
begin
num1:=BusADOQuery.FieldByName(DBEdit34.DataField).Asfloat;
num2:=BusADOQuery.FieldByName(DBEdit41.DataField).Asfloat;
num3:=BusADOQuery.FieldByName(DBEdit45.DataField).Asfloat;
num4:=BusADOQuery.FieldByName(DBEdit29.DataField).AsFloat;
num:=num1+num2+num3;
BusADOQuery.FieldByName(DBEdit46.DataField).AsString:=ConverterPercent(floattostr(num4/num*100));
end;
end;
//----------------------------------------
if((Sender=DBEdit43) or (Sender=DBEdit44) or (Sender=DBEdit45))then
begin
DealProc1(DBEdit42.DataField,DBEdit43.DataField,DBEdit44.DataField,'+');
DealProc1(DBEdit42.DataField,DBEdit42.DataField,DBEdit45.DataField,'+');
DealProc1(DBEdit37.DataField,DBEdit38.DataField,DBEdit42.DataField,'+');
//----------------------
if(BusADOQuery.FieldByName(DBEdit34.DataField).Asfloat=0)and
(BusADOQuery.FieldByName(DBEdit41.DataField).Asfloat=0)and
(BusADOQuery.FieldByName(DBEdit45.DataField).Asfloat=0)
then
BusADOQuery.FieldByName(DBEdit46.DataField).AsString:='0'
else
begin
num1:=BusADOQuery.FieldByName(DBEdit34.DataField).Asfloat;
num2:=BusADOQuery.FieldByName(DBEdit41.DataField).Asfloat;
num3:=BusADOQuery.FieldByName(DBEdit45.DataField).Asfloat;
num4:=BusADOQuery.FieldByName(DBEdit29.DataField).AsFloat;
num:=num1+num2+num3;
BusADOQuery.FieldByName(DBEdit46.DataField).AsString:=ConverterPercent(floattostr(num4/num*100));
end;
end;
//----------------------------------------
if((Sender=DBEdit48) or (Sender=DBEdit49))then
begin
DealProc1(DBEdit47.DataField,DBEdit48.DataField,DBEdit49.DataField,'+');
end;
//----------------------------------------
if((Sender=DBEdit51) or (Sender=DBEdit52))then
begin
DealProc1(DBEdit50.DataField,DBEdit51.DataField,DBEdit52.DataField,'+');
end;
//----------------------------------------
if((Sender=DBEdit54) or (Sender=DBEdit55))then
begin
DealProc1(DBEdit53.DataField,DBEdit54.DataField,DBEdit55.DataField,'+');
end;
//----------------------------------------
if((Sender=DBEdit69) or (Sender=DBEdit70) or (Sender=DBEdit71) or (Sender=DBEdit72))then
begin
DealProc1(DBEdit68.DataField,DBEdit69.DataField,DBEdit70.DataField,'+');
DealProc1(DBEdit68.DataField,DBEdit68.DataField,DBEdit71.DataField,'+');
DealProc1(DBEdit68.DataField,DBEdit68.DataField,DBEdit72.DataField,'+');
end;
//----------------------------------------
{if((Sender=DBEdit75) or (Sender=DBEdit76) or (Sender=DBEdit77))then
begin
DealProc1(DBEdit74.DataField,DBEdit75.DataField,DBEdit76.DataField,'+');
DealProc1(DBEdit74.DataField,DBEdit74.DataField,DBEdit77.DataField,'+');
end;}
//----------------------------------------
if((Sender=DBEdit84) or (Sender=DBEdit85))then
begin
DealProc1(DBEdit83.DataField,DBEdit84.DataField,DBEdit85.DataField,'+');
end;
end;
procedure TBusTradeYearEditFrm.DealProc1(ResultValue:string;Oper1Value:string;Oper2Value:string;curSigh:string);
var
Oper1,Oper2,curResult:single;
curPos:integer;
begin
LookUpZB(Oper1,Oper1Value,curPos);
LookUpZB(Oper2,Oper2Value,curPos);
DealProc(curResult,Oper1,Oper2,curSigh);
BusAdoQuery.FieldByName(ResultValue).AsFloat:=curResult;
end;
procedure TBusTradeYearEditFrm.LookUpZB(var OperValue:single;OperName:string;var curPos:integer);
begin
OperValue:=BusADOQuery.FieldByName(OperName).asFloat;
end;
procedure TBusTradeYearEditFrm.DealProc(var ResultValue:single;Oper1Value:single;Oper2Value:single;curSigh:string);
begin
ResultValue:=strtofloat(Converter(floattostr(Oper1Value+Oper2Value)));
end;
procedure TBusTradeYearEditFrm.BitBtn6Click(Sender: TObject);
var sqlstr:string;
iRow,iCol,iRecNum,i:integer;
begin
sqlstr:='select 指标代码, 测算值 from 公交行业统计年报_z where 城市代码='+''''+Edit9.text+''''+
' and 统计年份='+combobox1.text+' order by 指标代码';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sqlstr);
ADOQuery1.Open;
if(ADOQuery1.Active=false)then
begin
if(not AddPrnQuery)then
begin
exit;
end;
end;
if DeviceDetect=0 then
begin
exit;
end;
//AddPrn;
if(PrnInfoFrm.ShowModal<>mrOK)then
begin
exit;
end;
PrintInit(ExtractFilePath(Application.ExeName),'BusTradeYearEditTab');
iRow := 1 ;
iRecNum := 1 ;
ADOQuery1.First;
iCol := 4;
for iRecNum := 0 to 85 do
begin
if (iRecNum>=0) and (iRecNum<=22) then
begin
iRow := iRecNum+8;
iCol := 4;
end
else if (iRecNum >= 23) and (iRecNum <= 45) then
begin
iCol:= 8;
iRow:= iRecNum - 23+8;
end;
if (iRecNum >= 46) and ( iRecNum <= 66)then
begin
iCol:= 4;
iRow:= iRecNum - 7;
end;
if (iRecNum >= 67) and (iRecNum <= 85)then
begin
iCol:= 8;
iRow:= iRecNum - 28;
end;
WriteCell(iRow,iCol,Converter(ADOQuery1.FieldByName('测算值').AsString));
ADOQuery1.Next;
end;
for i:=0 to 1 do
begin
WriteCell(4+i*31,1,'汇总单位:' + label6.Caption);
WriteCell(3+i*31,4,ComboBox1.Text + ' 年' );
WriteCell(31+i*29,1,'统计负责人:' + PrnInfoFrm.StatMainPerson);
WriteCell(31+i*29,4,'统计人员:' + PrnInfoFrm.StatPerson);
WriteCell(31+i*29,6,'填报日期:' + DateToStr(PrnInfoFrm.StatDate));
end;
PrintExcelShow;
PrintPreview;
CloseActiveBook;
end;
function TBusTradeYearEditFrm.YearDataNul():BOOLEAN;
var sqlstr:string;
i:integer;
begin
sqlstr:='select 指标代码,全年实际 from 公交行业统计年报_z where 城市代码='+
''''+Edit9.text+''''+' and 统计年份='+combobox1.text;
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add(sqlstr);
ADOQuery1.open;
ADOQuery1.first;
for i:=0 to ADOQuery1.recordcount-1 do
begin
YearDataNul:=false;
if(ADOQuery1.fieldbyname('全年实际').asstring<>'0')then
begin
YearDataNul:=true;
break;
end;
ADOQuery1.next;
end;
end;
procedure TBusTradeYearEditFrm.FormKeyPress(Sender: TObject;
var Key: Char);
begin
if(Key=char(13))then
begin
Key:=char(0);
SelectNext(self.ActiveControl,true,true);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -