0

クラスの各オブジェクトに対してクロージャーを呼び出し、クロージャーによって返されたオブジェクトを表示しようとしています。閉鎖は次のとおりです。

    def activitiesPlanned={
        cal.set(this.plannedStartDate)
        def planDateMonth=cal.get(Calendar.MONTH)
        def planDateYear=cal.get(Calendar.YEAR)
    }

私が行った呼び出しは次のとおりです。

 def getActivitiesPlanned(int month,int year){
       countActivitiesPlanned=ProgressData.each{it.activitiesPlanned.findAllWhere(planDateMonth:month,planDateYear:year).count()}
    println countActivitiesPlanned
}

ドメインクラス //EDIT

package main
class ProgressData {
//String milestoneName
String taskId   //Added later
String taskDescription
String taskCategory
Integer plannedHours  
Integer actualHours      
Date plannedStartDate     
Date actualStartDate     
Date plannedEndDate     
Date actualEndDate     
Integer stepsCreated=0    
Integer stepsExecuted=0   
String status   //Originally Completed
String assignedTo
//String unplanned
String accepted //Added later
def ProgressData(){}

static constraints = {
   //milestoneName(blank:false)
   taskDescription(blank:false)
   taskCategory(blank:false)
   plannedHours(blank:false)
   actualHours(blank:false)
   id generator:"assigned",name:"taskId"
}

 Calendar cal=Calendar.getInstance()
 def activitiesPlanned={
        cal.set(this.plannedStartDate)
        def planDateMonth=cal.get(Calendar.MONTH)
        def planDateYear=cal.get(Calendar.YEAR)
    }
static hasMany=[defects:DefectData]

}

「そのようなプロパティはありません: クラスの activitiesPlanned: main.ProgressData 可能な解決策: activitiesPlanned」。どのような問題があるでしょうか?

4

1 に答える 1

0

.each{}ではなく.sum{}が必要だと思います

例:

def listThing = [1,2,3]
def sumOfList = listThing.sum{it}
assert sumOfList == 6

また、ProgressDataはドメインクラスであるため、使用できません.each{}。あなたはしなければなりません、そしてそれによって私はあなたがやろうとしていると私が思うことProgressData.list().each{を本当に意味します。ProgressData.list().sum{

また、そのactivitiesPlanned閉鎖はアクティビティを返しません...

于 2012-06-22T18:54:55.580 に答える