📄 bushy_monedit.pas
字号:
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 + -