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

📄 bushy_monedit.pas

📁 公交行业的管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
        ADOQuery4.Edit;
        ADOQuery4.FieldByName('统计年份').AsInteger:=StrToInt(ComboBox1.Text);
        ADOQuery4.FieldByName('统计月份').AsInteger:=StrToInt(ComboBox2.text);
        ADOQuery4.FieldByName('城市代码').AsString:=trim(Edit9.text);
        ADOQuery4.FieldByName('生成方式').AsString:='录入';
        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<>'统计月份') and
                           (ADOQuery4.Fields[i].FieldName<>'城市代码') )then
                        begin
                                if(ADOQPrintMon.FieldByName('指标代码').AsString=ADOQuery4.Fields[i].FieldName)then
                                if(ADOQPrintMon.FieldByName('测算值').AsString<>'')then
                                ADOQuery4.Fields[i].Value:=ADOQPrintMon.FieldByName('测算值').Value else
                                ADOQuery4.Fields[i].Value:=0;
                        end;
                end;
                ADOQPrintMon.Next;
        end;
        ADOQuery4.Post;
end;
procedure TBusHYMonRep.BitBtn5Click(Sender: TObject);{取消}
begin
       ButtonEnable(BitBtn5);
       BusTradeDataModule.ADOConnection1.RollbackTrans;
       DBGrid1.ReadOnly:=True;
       DBMemo1.ReadOnly:=true;
       OpenAllPage;
end;

procedure TBusHYMonRep.FormCreate(Sender: TObject);
begin
         IsDelete:=false;
         IsModifyIndex:=false;
end;

procedure TBusHYMonRep.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  TBusHYMonRep.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  TBusHYMonRep.CheckBalanceRel(curRecordStr:string);
var
WrongMessage:string;
begin
                if(not BalanceRelRight(curRecordStr))then
                begin
                        if((curRecordStr='G14') or (curRecordStr='G11'))then
                        begin
                                WrongMessage:='G14<=G11的平衡关系不满足!';
                                MessageBox(self.Handle,PCHAR(WrongMessage),PCHAR('错误'),MB_OK);
                        end;
                        if((curRecordStr='G18') or (curRecordStr='G15'))then
                        begin
                              WrongMessage:='G18<=G15的平衡关系不满足!';
                              MessageBox(self.Handle,PCHAR(WrongMessage),PCHAR('错误'),MB_OK);
                        end;
                end;
                if((curRecordStr='G03') or (curRecordStr='G04') or (curRecordStr='G05'))then
                begin
                        DealProc1('G02','G03','G04','+');
                        DealProc1('G02','G02','G05','+');
                        DealProc1('G01','G02','G06','+');
                end;
                if((curRecordStr='G07') or (curRecordStr='G08') or (curRecordStr='G09'))then
                begin
                        DealProc1('G06','G07','G08','+');
                        DealProc1('G06','G06','G09','+');
                        DealProc1('G01','G02','G06','+');

                end;
                if((curRecordStr='G12') or (curRecordStr='G13') or (curRecordStr='G14'))then
                begin
                        DealProc1('G11','G12','G13','+');
                        DealProc1('G10','G11','G15','+');

                end;
                if((curRecordStr='G16') or (curRecordStr='G17') or (curRecordStr='G18'))then
                begin
                        DealProc1('G15','G16','G17','+');
                        DealProc1('G10','G11','G15','+');

                end;
                if((curRecordStr='G21') or (curRecordStr='G22'))then
                begin
                        DealProc1('G20','G21','G22','+');
                        DealProc1('G19','G20','G23','+');

                end;
                if((curRecordStr='G24') or (curRecordStr='G25'))then
                begin
                        DealProc1('G23','G24','G25','+');
                        DealProc1('G19','G20','G23','+');

                end;
                if((curRecordStr='G29') or (curRecordStr='G30')or (curRecordStr='G31')or (curRecordStr='G32')or (curRecordStr='G33'))then
                begin
                        DealProc1('G28','G29','G30','+');
                        DealProc1('G27','G28','G31','+');
                        DealProc1('G27','G27','G32','+');
                        DealProc1('G27','G27','G33','+');
                        DealProc1('G26','G27','G34','+');

                end;
                if((curRecordStr='G36') or (curRecordStr='G37')or (curRecordStr='G38')or (curRecordStr='G39')or (curRecordStr='G40'))then
                begin
                        DealProc1('G35','G36','G37','+');
                        DealProc1('G34','G35','G38','+');
                        DealProc1('G34','G34','G39','+');
                        DealProc1('G34','G34','G40','+');
                        DealProc1('G26','G27','G34','+');

                end;
                 if((curRecordStr='G44') or (curRecordStr='G45')or (curRecordStr='G46')or (curRecordStr='G47'))then
                begin
                        DealProc1('G43','G44','G45','+');
                        DealProc1('G42','G43','G46','+');
                        DealProc1('G42','G42','G47','+');
                        DealProc1('G41','G42','G48','+');

                end;
                if((curRecordStr='G50') or (curRecordStr='G51')or (curRecordStr='G52')or (curRecordStr='G53'))then
                begin
                        DealProc1('G49','G50','G51','+');
                        DealProc1('G48','G49','G52','+');
                        DealProc1('G48','G48','G53','+');
                        DealProc1('G41','G42','G48','+');

                end;
                if((curRecordStr='G56') or (curRecordStr='G57')or (curRecordStr='G58'))then
                begin
                        DealProc1('G55','G56','G57','+');
                        DealProc1('G55','G55','G58','+');
                        DealProc1('G54','G55','G59','+');

                end;
                if((curRecordStr='G60') or (curRecordStr='G61')or (curRecordStr='G62'))then
                begin
                        DealProc1('G59','G60','G61','+');
                        DealProc1('G59','G59','G62','+');
                        DealProc1('G54','G55','G59','+');

                end;
                if((curRecordStr='G65') or (curRecordStr='G66'))then
                begin
                        DealProc2('G64','G65',10000,'*');
                        DealProc1('G64','G64','G66','/');

                end;
                if((curRecordStr='G68') or (curRecordStr='G69'))then
                begin
                        DealProc1('G67','G68','G69','/');
                        DealProc2('G67','G67',100,'*');
                end;
                if((curRecordStr='G72') or (curRecordStr='G73'))then
                begin
                        DealProc1('G71','G72','G73','/');
                        DealProc2('G71','G71',100,'*');
                end;
                if((curRecordStr='G75') or (curRecordStr='G76'))then
                begin
                        DealProc1('G74','G75','G76','/');
                        DealProc2('G74','G74',100,'*');
                end;
                if((curRecordStr='G77'))then
                begin
                        DealProc1('G78','G54','G77','/');

                end;
                if((curRecordStr='G80') or (curRecordStr='G81')or (curRecordStr='G82')or (curRecordStr='G83'))then
                begin
                        DealProc1('G79','G80','G81','+');
                        DealProc1('G79','G79','G82','+');
                        DealProc1('G79','G79','G83','+');

                end;

end;
procedure DealProc(var ResultValue:single;Oper1Value:single;Oper2Value:single;curSigh:string);
begin
          if(curSigh='+')then
          ResultValue:=Oper1Value+Oper2Value;
          if(curSigh='-')then
          ResultValue:=Oper1Value-Oper2Value;
          if(curSigh='*')then
          ResultValue:=Oper1Value*Oper2Value;
          if(curSigh='/')then
          begin
                if(Oper2Value=0)then exit;
                ResultValue:=(Oper1Value/Oper2Value);
          end;
end;
procedure TBusHYMonRep.LookUpZB(var OperValue:single;OperName:string;var curPos:integer);
var
V1,V2,V3,V4: Variant;
begin
           V1:=QueryPageLeft1.Lookup('指标代码',OperName,'测算值');
           if not (VarType(V1) in [varNull]) then
           begin
                OperValue:=V1;
                curPos:=0;
           end;
           V2:=QueryPageRight1.Lookup('指标代码',OperName,'测算值');
           if not (VarType(V2) in [varNull]) then
           begin
                OperValue:=V2;
                curPos:=1;
           end;
           V3:=QueryPageLeft2.Lookup('指标代码',OperName,'测算值');
           if not (VarType(V3) in [varNull]) then
           begin
                OperValue:=V3;
                curPos:=2;
           end;
           V4:=QueryPageRight2.Lookup('指标代码',OperName,'测算值');
           if not (VarType(V4) in [varNull]) then
           begin
                OperValue:=V4;
                curPos:=3;
           end;
end;
procedure TBusHYMonRep.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);


           LookUpZB(curResult,ResultValue,curPos);
            DealProc(curResult,Oper1,Oper2,curSigh);
            if(ResultValue='G20')then
            curPos:=0;
            IsModifyIndex:=True;
           case curPos of
             0:
             begin
                QueryPageLeft1.Locate('指标代码',ResultValue,[]);
                QueryPageLeft1.Edit;
                QueryPageLeft1.fieldbyname('测算值').AsFloat:=curResult;
                QueryPageLeft1.Post;
             end;
             1:
             begin
                QueryPageRight1.Locate('指标代码',ResultValue,[]);
                QueryPageRight1.Edit;
                QueryPageRight1.fieldbyname('测算值').AsFloat:=curResult;
                QueryPageRight1.Post;
             end;
             2:
             begin
                QueryPageLeft2.Locate('指标代码',ResultValue,[]);
                QueryPageLeft2.Edit;
                QueryPageLeft2.fieldbyname('测算值').AsFloat:=curResult;
                QueryPageLeft2.Post;
             end;
             3:
             begin
                QueryPageRight2.Locate('指标代码',ResultValue,[]);
                QueryPageRight2.Edit;
                QueryPageRight2.fieldbyname('测算值').AsFloat:=curResult;
                QueryPageRight2.Post;
             end;
           end;
           IsModifyIndex:=False; 
end;

procedure TBusHYMonRep.DealProc2(ResultValue:string;Oper1Value:string;Oper2Value:single;curSigh:string);
var
Oper1,Oper2,curResult,temp:single;
curPos:integer;
begin
           LookUpZB(Oper1,Oper1Value,curPos);
           Oper2:=Oper2Value;
           DealProc(curResult,Oper1,Oper2,curSigh);            
           LookUpZB(temp,ResultValue,curPos);
           IsModifyIndex:=True;
           case curPos of
             0:
             begin
                QueryPageLeft1.Locate('指标代码',ResultValue,[]);
                QueryPageLeft1.Edit;
                QueryPageLeft1.fieldbyname('测算值').AsFloat:=curResult;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -