2016-04-12 17 views
2

VBScriptで計算された一連の比率があり、その年の合計日数が組み込まれています。 2016年には、通常の「365」の代わりに「366」日を利用する必要があります。Dimうるう年、VBScript

年に基づいて作成するDim変数を作成しましたが、スクリプトが機能しておらず、ゼロになっています。

のVBScript:

'/ 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)を計算したいので、YrDays用のHFMには勘定がありません。 POV_Year、Numberdaysなどの値が正しく読み込まれていることを確認しました。

私は間違っていると思いますか?

ソフトウェア:メモ帳++

編集中 のOracle HFM 11.1.2.3.500 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が公式で参照された方法を変更する必要があったので、私は計算で参照するために引用符に入れる必要があることを知っていたはずです。

答えて

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と等しくないので、コードを戻したり、コードの残りの部分を調整する必要があります。 することができます真の数字を文字列に連結します。

+0

select caseステートメントは完璧に動作します - 私は引用符を入れなければなりませんでしたが、そのコメントは私が何を持っていてもいけないのかを参照するのに役立ちました。 \t「リープイヤーズ/ \t SELECT CASE POV_YEARを説明するためにYrDays \t \t CASE "2012"、 "2016"、 "2020"、 "2024"、 "2028" YrDays = 366エルス ケース YrDays = 365 を追加します\t End Select ' – Mike

関連する問題