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

📄 bustrademoneditunit.pas

📁 公交行业的管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
        DBEdit77.OnExit:=DealDBEditExit;
        //------------------------------
        DBEdit80.OnExit:=DealDBEditExit;
        DBEdit81.OnExit:=DealDBEditExit;
        DBEdit82.OnExit:=DealDBEditExit;
        DBEdit83.OnExit:=DealDBEditExit;
end;


procedure TBusTradeMonEditFrm.DealDBEditExit(Sender: TObject);
var num1,num2,num3,num4,num:single;
begin
        if(edit9.Text='')or(combobox1.Text='')or(combobox2.Text='')then
        exit;
        
       if((Sender=DBEdit3) or (Sender=DBEdit4) or (Sender=DBEdit5))then
       begin
               DealProc1(DBEdit2.DataField,DBEdit3.DataField,DBEdit4.DataField,'+');
               DealProc1(DBEdit2.DataField,DBEdit2.DataField,DBEdit5.DataField,'+');

               DealProc1(DBEdit1.DataField,DBEdit2.DataField,DBEdit6.DataField,'+');
       end;
       //----------------------------------------
       if((Sender=DBEdit7) or (Sender=DBEdit8) or (Sender=DBEdit9))then
       begin
               DealProc1(DBEdit6.DataField,DBEdit7.DataField,DBEdit8.DataField,'+');
               DealProc1(DBEdit6.DataField,DBEdit6.DataField,DBEdit9.DataField,'+');

               DealProc1(DBEdit1.DataField,DBEdit2.DataField,DBEdit6.DataField,'+');
       end;

       //----------------------------------------
       if((Sender=DBEdit12) or (Sender=DBEdit13))then
       begin
               DealProc1(DBEdit11.DataField,DBEdit12.DataField,DBEdit13.DataField,'+');

               DealProc1(DBEdit10.DataField,DBEdit11.DataField,DBEdit15.DataField,'+');
       end;
       //----------------------------------------
       if((Sender=DBEdit16) or (Sender=DBEdit17))then
       begin
               DealProc1(DBEdit15.DataField,DBEdit16.DataField,DBEdit17.DataField,'+');

               DealProc1(DBEdit10.DataField,DBEdit11.DataField,DBEdit15.DataField,'+');
       end;
       //----------------------------------------
       if((Sender=DBEdit21) or (Sender=DBEdit22)or (Sender=DBEdit24)or (Sender=DBEdit25))then
       begin
               DealProc1(DBEdit20.DataField,DBEdit21.DataField,DBEdit22.DataField,'+');
               DealProc1(DBEdit23.DataField,DBEdit24.DataField,DBEdit25.DataField,'+');

               DealProc1(DBEdit19.DataField,DBEdit20.DataField,DBEdit23.DataField,'+');
       end;

       //----------------------------------------
       if((Sender=DBEdit29) or (Sender=DBEdit30) or(Sender=DBEdit31)or(Sender=DBEdit32) or (Sender=DBEdit33))then
       begin
               DealProc1(DBEdit28.DataField,DBEdit29.DataField,DBEdit30.DataField,'+');

               DealProc1(DBEdit27.DataField,DBEdit28.DataField,DBEdit31.DataField,'+');
               DealProc1(DBEdit27.DataField,DBEdit27.DataField,DBEdit32.DataField,'+');
               DealProc1(DBEdit27.DataField,DBEdit27.DataField,DBEdit33.DataField,'+');

               DealProc1(DBEdit26.DataField,DBEdit27.DataField,DBEdit34.DataField,'+');
       end;
       //----------------------------------------
       if((Sender=DBEdit36) or (Sender=DBEdit37) or(Sender=DBEdit38)or(Sender=DBEdit39) or (Sender=DBEdit40))then
       begin
               DealProc1(DBEdit35.DataField,DBEdit36.DataField,DBEdit37.DataField,'+');

               DealProc1(DBEdit34.DataField,DBEdit35.DataField,DBEdit38.DataField,'+');
               DealProc1(DBEdit34.DataField,DBEdit34.DataField,DBEdit39.DataField,'+');
               DealProc1(DBEdit34.DataField,DBEdit34.DataField,DBEdit40.DataField,'+');

               DealProc1(DBEdit26.DataField,DBEdit27.DataField,DBEdit34.DataField,'+');
       end;

       //----------------------------------------
       if((Sender=DBEdit44) or (Sender=DBEdit45) or(Sender=DBEdit46)or(Sender=DBEdit47))then
       begin
               DealProc1(DBEdit43.DataField,DBEdit44.DataField,DBEdit45.DataField,'+');

               DealProc1(DBEdit42.DataField,DBEdit43.DataField,DBEdit46.DataField,'+');
               DealProc1(DBEdit42.DataField,DBEdit42.DataField,DBEdit47.DataField,'+');

               DealProc1(DBEdit41.DataField,DBEdit42.DataField,DBEdit48.DataField,'+');
       end;
       //----------------------------------------
       if((Sender=DBEdit50) or (Sender=DBEdit51) or(Sender=DBEdit52)or(Sender=DBEdit53))then
       begin
               DealProc1(DBEdit49.DataField,DBEdit50.DataField,DBEdit51.DataField,'+');

               DealProc1(DBEdit48.DataField,DBEdit49.DataField,DBEdit52.DataField,'+');
               DealProc1(DBEdit48.DataField,DBEdit48.DataField,DBEdit53.DataField,'+');

               DealProc1(DBEdit41.DataField,DBEdit42.DataField,DBEdit48.DataField,'+');
       end;
       //----------------------------------------
       if((Sender=DBEdit56) or (Sender=DBEdit57) or(Sender=DBEdit58) or (Sender=DBEdit77))then
       begin
               DealProc1(DBEdit55.DataField,DBEdit56.DataField,DBEdit57.DataField,'+');
               DealProc1(DBEdit55.DataField,DBEdit55.DataField,DBEdit58.DataField,'+');

               DealProc1(DBEdit54.DataField,DBEdit55.DataField,DBEdit59.DataField,'+');

               if(BusADOQuery.FieldByName(DBEdit54.DataField).Asfloat=0)or (BusADOQuery.FieldByName(DBEdit77.DataField).Asfloat=0)then
                        BusADOQuery.FieldByName(DBEdit78.DataField).AsString:='0'
                else
                begin
                        num:=BusADOQuery.FieldByName(DBEdit54.DataField).AsFloat/BusADOQuery.FieldByName(DBEdit77.DataField).AsFloat*100;
                        BusADOQuery.FieldByName(DBEdit78.DataField).AsString:=ConverterPercent(floattostr(num));
                end;

       end;
       //----------------------------------------
       if((Sender=DBEdit60) or (Sender=DBEdit61) or(Sender=DBEdit62))then
       begin
               DealProc1(DBEdit59.DataField,DBEdit60.DataField,DBEdit61.DataField,'+');
               DealProc1(DBEdit59.DataField,DBEdit59.DataField,DBEdit62.DataField,'+');

               DealProc1(DBEdit54.DataField,DBEdit55.DataField,DBEdit59.DataField,'+');

               if(BusADOQuery.FieldByName(DBEdit54.DataField).Asfloat=0)or (BusADOQuery.FieldByName(DBEdit77.DataField).Asfloat=0)then
                        BusADOQuery.FieldByName(DBEdit78.DataField).AsString:='0'
                else
                begin
                        num:=BusADOQuery.FieldByName(DBEdit54.DataField).AsFloat/BusADOQuery.FieldByName(DBEdit77.DataField).AsFloat;
                        BusADOQuery.FieldByName(DBEdit78.DataField).AsString:=ConverterPercent(floattostr(num));
                end;

       end;
       //----------------------------------------
       if((Sender=DBEdit65) or (Sender=DBEdit66))then
       begin
                if(BusADOQuery.FieldByName(DBEdit65.DataField).Asfloat=0)or (BusADOQuery.FieldByName(DBEdit66.DataField).Asfloat=0)then
                        BusADOQuery.FieldByName(DBEdit64.DataField).AsString:='0'
                else
                begin
                        num:=BusADOQuery.FieldByName(DBEdit65.DataField).AsFloat/BusADOQuery.FieldByName(DBEdit66.DataField).AsFloat*10000;
                        BusADOQuery.FieldByName(DBEdit64.DataField).AsString:=ConverterPercent(floattostr(num));
                end;
       end;

       //----------------------------------------
       if((Sender=DBEdit68) or (Sender=DBEdit69))then
       begin
                if(BusADOQuery.FieldByName(DBEdit68.DataField).Asfloat=0)or (BusADOQuery.FieldByName(DBEdit69.DataField).Asfloat=0)then
                        BusADOQuery.FieldByName(DBEdit67.DataField).AsString:='0'
                else
                begin
                        num:=BusADOQuery.FieldByName(DBEdit68.DataField).AsFloat/BusADOQuery.FieldByName(DBEdit69.DataField).AsFloat*100;
                        BusADOQuery.FieldByName(DBEdit67.DataField).AsString:=ConverterPercent(floattostr(num));
                end;
       end;
       //----------------------------------------
       if((Sender=DBEdit72) or (Sender=DBEdit73))then
       begin
                if(BusADOQuery.FieldByName(DBEdit72.DataField).Asfloat=0)or (BusADOQuery.FieldByName(DBEdit73.DataField).Asfloat=0)then
                        BusADOQuery.FieldByName(DBEdit71.DataField).AsString:='0'
                else
                begin
                        num:=BusADOQuery.FieldByName(DBEdit72.DataField).AsFloat/BusADOQuery.FieldByName(DBEdit73.DataField).AsFloat*100;
                        BusADOQuery.FieldByName(DBEdit71.DataField).AsString:=ConverterPercent(floattostr(num));
                end;
       end;
       //---------------------------------------
        if((Sender=DBEdit75) or (Sender=DBEdit76))then
        begin
                if(BusADOQuery.FieldByName(DBEdit75.DataField).Asfloat=0)or (BusADOQuery.FieldByName(DBEdit76.DataField).Asfloat=0)then
                        BusADOQuery.FieldByName(DBEdit74.DataField).AsString:='0'
                else
                begin
                        num:=BusADOQuery.FieldByName(DBEdit75.DataField).AsFloat/BusADOQuery.FieldByName(DBEdit76.DataField).AsFloat*100;
                        BusADOQuery.FieldByName(DBEdit74.DataField).AsString:=ConverterPercent(floattostr(num));
                end;
        end;
        //-------------------------------------
        if(Sender=DBEdit77)then
        begin
                if(BusADOQuery.FieldByName(DBEdit54.DataField).Asfloat=0)or (BusADOQuery.FieldByName(DBEdit77.DataField).Asfloat=0)then
                        BusADOQuery.FieldByName(DBEdit78.DataField).AsString:='0'
                else
                begin
                        num:=BusADOQuery.FieldByName(DBEdit54.DataField).AsFloat/BusADOQuery.FieldByName(DBEdit77.DataField).AsFloat;
                        BusADOQuery.FieldByName(DBEdit78.DataField).AsString:=ConverterPercent(floattostr(num));
                end;
        end;

        //-------------------------------------
       if((Sender=DBEdit80) or (Sender=DBEdit81) or(Sender=DBEdit82)or(Sender=DBEdit83))then
       begin
               DealProc1(DBEdit79.DataField,DBEdit80.DataField,DBEdit81.DataField,'+');
               DealProc1(DBEdit79.DataField,DBEdit79.DataField,DBEdit82.DataField,'+');
               DealProc1(DBEdit79.DataField,DBEdit79.DataField,DBEdit83.DataField,'+');
       end;
end;

procedure TBusTradeMonEditFrm.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 TBusTradeMonEditFrm.LookUpZB(var OperValue:single;OperName:string;var curPos:integer);
begin
        OperValue:=BusADOQuery.FieldByName(OperName).asFloat;
end;

procedure TBusTradeMonEditFrm.DealProc(var ResultValue:single;Oper1Value:single;Oper2Value:single;curSigh:string);
begin
                ResultValue:=strtofloat(Converter(floattostr(Oper1Value+Oper2Value)));
end;
procedure TBusTradeMonEditFrm.BitBtn6Click(Sender: TObject);
var sqlstr:string;
 iRow,iCol,iRecNum,i:integer;
begin
        sqlstr:='select 指标代码, 测算值 from 公交行业统计月报_z where 城市代码='+''''+Edit9.text+''''+
                 ' and 统计年份='+combobox1.text+' and 统计月份='+combobox2.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),'BusTradeMonEditTab');
        ADOQuery1.First;
        for iRecNum := 0 to ADOQuery1.RecordCount-1 do
        begin
                if (iRecNum>=0) and (iRecNum<=19) then
                begin
                        iRow := iRecNum+8;
                        iCol := 4;

                end
                else if (iRecNum >= 20) and (iRecNum <= 39) then
                begin
                        iCol:= 8;
                        iRow:= iRecNum - 20+8;

                end;
                if (iRecNum >= 40) and ( iRecNum <= 60)then
                begin
                        iCol:= 4;
                        iRow:= iRecNum - 2;

                end;
                if (iRecNum >= 61) and (iRecNum <= 80)then
                begin
                        iCol:= 8;
                        iRow:= iRecNum - 23;

                end;

                WriteCell(iRow,iCol,Converter(ADOQuery1.FieldByName('测算值').AsString));
                ADOQuery1.Next;
        end;

        for i:=0 to 1 do
        begin
                WriteCell(4+i*30,1,'汇总单位:' + label7.caption);
                WriteCell(3+i*30,3,ComboBox1.Text + ' 年 '+combobox2.Text+' 月 ' );
                WriteCell(28+i*31,1,'统计负责人:' + PrnInfoFrm.StatMainPerson);
                WriteCell(28+i*31,3,'统计人员:' + PrnInfoFrm.StatPerson);
                WriteCell(28+i*31,6,'填报日期:' + DateToStr(PrnInfoFrm.StatDate));

        end;

        PrintExcelShow;
        PrintPreview;
        CloseActiveBook;
end;

function TBusTradeMonEditFrm.YearDataNul():BOOLEAN;
var sqlstr:string;
i:integer;
begin
        sqlstr:='select 指标代码,本月实际 from 公交行业统计月报_z where 城市代码='+
                ''''+Edit9.text+''''+' and 统计年份='+combobox1.text+' and 统计月份='+combobox2.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 TBusTradeMonEditFrm.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 + -