2

私は、VBScript で計算された一連の比率を持っています。これには、1 年の合計日数が組み込まれています。2016 年には、通常の「365」日ではなく「366」日を使用する必要があります。

年に基づいて入力する Dim 変数を作成しましたが、スクリプトが機能していないことは明らかで、代わりにゼロになります。

VB スクリプト:

'/ Adding YrDays to account for Leap Years'/
If POV_Year = "2012" OR "2016" OR "2020" OR "2024" OR "2028" Then 
    YrDays = "366" 
    Else YrDays = "365" 
End If

HS.Exp "A#Ratio007.C1#[None]" & DynC1 & " =  
((A#Tohinc" & Tops & " * (YrDays / A#numberdays.E#PVTB Admin))  
/ (A#Totass" & Tops &")) * 100" 

ビジネス・ルールをOracle HFMにアップロードすると、VBScriptはエラーなしでアップロードされますが、比率の計算に失敗します。

連結および計算中に値 (YrDays) を計算したいので、HFM には YrDays の勘定がありません。POV_Year、Numberdays、およびその他の値が正しく読み込まれていることを確認しました。

私が間違っているかもしれないことは何ですか?

ソフトウェア: Oracle HFM 11.1.2.3.500 Notepad++ での VBScript Rule.rle ファイルの編集

編集: これは私が行った解決策です:

'/ Adding YrDays to account for Leap Years'/
SELECT CASE POV_YEAR
 CASE "2012", "2016", "2020", "2024", "2028"
 YrDays = 366
 Case Else
 YrDays = 365 
End Select

また、数式で YrDays を参照する方法を変更する必要がありました。計算で参照するには、引用符で囲む必要があることを知っておく必要がありました。

HS.Exp "A#Ratio007.C1#[None]" & DynC1 & " =  
((A#Tohinc" & Tops & " * ("& YrDays & "/ A#numberdays.E#PVTB Admin))  
/ (A#Totass" & Tops &")) * 100" 
4

1 に答える 1

1

あなたのコードはSelect Case statementとしてより良いかもしれません。

Select Case POV_Year
    Case 2012, 2016, 2020, 2024, 2028
        YrDays = 366 
    Case Else
        YrDays = 365 
End Select

ただし、もっと簡単な方法があるかもしれません。

'/ Adding YrDays to account for Leap Years'/
YrDays = DateSerial(POV_Year + 1, 1, 1) - DateSerial(POV_Year, 1, 1)
'alternate
YrDays = 365 - (POV_Year = 2012 Or POV_Year = 2016 Or POV_Year = 2020 Or POV_Year = 2024 Or POV_Year = 2028)

引用された数字を削除しました。数字は数字のままであるべきです。ただし"2016"、等しくない2016ため、元に戻すか、コードの残りの部分を調整する必要がある場合があります。真の数を文字列に連結できます。

于 2016-04-12T16:01:29.390 に答える