2014-03-26 42 views
1

當我嘗試從cfc調用函數時,出現Variable undefined錯誤。 最好的部分是上面定義的已經。 「IandI」是cfc名稱。當從cfc調用函數時,「變量TotalCorpAudits未定義」

代碼片段:

<cfparam name="TotalCorpAudits" default="0"> 
<cfset TotalAudits = TotalSiteAudits + TotalCorpAudits> 
<cfinvoke component="#IandI#" 
    method="calcRate" 
    Cases="#TotalCorpAudits#" 
    Hours="#TotalAudits#" 
    iiFactor="1" 
    convertToPercent="true" 
    NumberFormatOn="true" 
    returnOnZeroHours="0" 
    returnOnNonNumericData="0" 
    returnvariable="TotalCorpRatioAudits" 
> 

得到錯誤的...案例= 「#TotalCorpAudits#」

CFC代碼:

<cffunction name="calcRate" access="public" returntype="string" 
    displayname="calcs Rate" hint="" description="">    
    <cfargument name="Hours" required="Yes" type="string"> 
    <cfargument name="Cases" required="Yes" type="string"> 
    <cfargument name="IIFactor" required="No" type="numeric" default="200000"> 
    <cfargument name="FormatMask" required="No" type="string" default="999.99"> 
    <cfargument name="NumberFormatOn" required="No" type="boolean" default="false"> 
    <cfargument name="returnOnZeroHours" required="No" type="string" default="0"> 
    <cfargument name="returnOnNonNumericData" required="No" type="string" default="N/A"> 
    <cfargument name="returnOnZeroCasesWithHours" required="No" type="string" default="0"> 
    <cfargument name="convertToPercent" required="No" type="boolean" default="false"> 
+0

請參閱我已經使用cfparam定義了「TotalCorpAudits」。但仍然在錯誤行...... Cases =「#TotalCorpAudits#」 – Vasu

+1

你可以包括堆棧跟蹤?如果它已經越過了'cfset',那麼你應該沒有錯誤 –

+2

問題更可能發生在組件屬性中的變量上。硬編碼一個值,看看會發生什麼。 –

回答

0

是組件從變量comeing名稱? IandI是一個變量嗎?如果不是,你不必將它包裹在#符號中。這就是我認爲導致問題的原因。

1

CFINVOKE就像這樣:

<cfinvoke component="[CFC_FileName]" method="calcRate" returnvariable="TotalCorpRatioAudits"> 
    <cfinvokeargument name="Hours" value="[whateverValueYouWant]"> 
    <cfinvokeargument name="Cases" value="[whateverValueYouWant]"> 
</cfinvoke> 

注意兩件事情:<cfinvokeargument><cfinvoke>標籤下方。另外,我只使用了這兩個參數,因爲它們在CFC中是必需的,但如果需要,您可以添加更多。以https://wikidocs.adobe.com/wiki/display/coldfusionen/cfinvoke作爲參考。