我在 Doctor
是主的主范围对象上有一个触发器,而 Patient
是孩子。Doctor
的字段称为TotalAmount
,Patient
具有一个名为Amount
的字段。现在,当患者填写数量字段时,Doctor
中的TotalAmount
字段应在所有患者记录中给出Amount
的总和。
我已经写了下面的代码,但显示出一个错误:
无效标识符:金额__c
我该如何修复?
trigger tgPatient on Patient__c (after insert,after update) {
Set<Id>SetDoctor = new Set<Id>();
for (Patient__c p : trigger.new) {
if( p.Amount__c != Null ) {
SetDoctor.add(p.Doctor__c);
}
}
List<Doctor> lstDoctor = new List<Doctor>();
for( Doctor__c d : [SELECT Id, (SELECT Id,Amount__c FROM Patients__r) FROM Doctor__c WHERE Id IN:SetDoctor]){
Integer Amount__c = 0;
for (Patient__c p : d.Patient__r) {
int Amount__c += p.Amount__c;
}
d.Total_Amount__c = int Amount__c;
lstDoctor.add(d);
}
update lstDoctor;
}
尝试以下一个:
trigger tgPatient on Patient__c (after insert,after update) {
Set<Id>SetDoctor = new Set<Id>();
for (Patient__c p : trigger.new){
if( p.Amount__c != Null ){
SetDoctor.add(p.Doctor__c);
}
}
List<Doctor> lstDoctor = new List<Doctor>();
for( Doctor__c d : [SELECT Id, (SELECT Id,Amount__c FROM Patients__r) FROM Doctor__c WHERE Id IN:SetDoctor]){
Integer amountVAR = 0;
for (Patient__c p : d.Patient__r){
amountVAR += p.Amount__c;
}
d.Total_Amount__c = amountVAR ;
lstDoctor.add(d);
}
update lstDoctor;
问候ajay
尝试以下:
trigger tgPatient on Patient__c(after insert, after update) {
Set < Id > SetDoctor = new Set < Id > ();
for (Patient__c p: trigger.new) {
if (p.Amount__c != Null) {
SetDoctor.add(p.Doctor__c);
}
}
List < Doctor > lstDoctor = new List < Doctor > ();
for (Doctor__c d: [SELECT Id, (SELECT Id, Amount__c FROM Patients__r) FROM Doctor__c WHERE Id IN: SetDoctor]) {
d.Total_Amount__c = 0;
for (Patient__c p: d.Patient__r) {
d.Total_Amount__c += p.Amount__c;
}
lstDoctor.add(d);
}
update lstDoctor;
}
但是为什么要使用触发器?为什么不在医生上创建一个汇总摘要字段?
创建滚动摘要字段