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

📄 bustradeyeareditunit.~pas

📁 公交行业的管理系统
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:
        //------------------------------
        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 + -