0

私はBRIO(Hyperion Interactive Reporting Studio)内で次のコードを書いています。コードはJavaScriptまたはJScriptのいずれかですが、構文を学習しているだけで、それらがどのように異なるかはわかりません。

とにかく、Script(line number) missing; before statement次の行で構文エラーが発生します。

if (xYear == 2012 && yMonth == 10) {stopIt = "Yes"} else (yMonth == 12) {stopIt = "Yes"}

var myDate = New Date(xYear, yMonth, 1)

以下のコードで。

var xYear
var yMonth

for (j = 2009; j =  2012; j++)

{ 

    xYear = j

    if (xYear == 2009) {yMonth = 7} else {yMonth = 1}

    var StopIt = "No"

    Do 

    {
    var myDate = New Date(xYear, yMonth, 1)
    Alert (myDate)

    //var myQuery = ActiveDocument.Sections["qry_billing"]

    //myQuery.Limits["Accounting Year Month"].CustomValues.RemoveAll()
    //myQuery.Limits["Accounting Year Month"].CustomValues.Add(myDate)
    //myQuery.Limits["Accounting Year Month"].SelectedValues.Add(myDate)

    //myQuery.Process()

    //var Path = "W:\\Major Accounts\\Alliance Process\\AAA\\reference_files\\Results"
    //var File = "Results" + "_" + xYear + "_" +  yMonth+ " .txt"

    //ActiveDocument.Sections["Results"].Export(Path + "\\" + File,bqExportFormatText,true)

    yMonth = yMonth + 1

    if (xYear == 2012 && yMonth == 10) {stopIt = "Yes"} else if (yMonth == 12) {stopIt = "Yes"}
    }

    While (stopIt != "Yes")

}

;BRIOドキュメントスクリプトでは必要ないと思っていたので、なぜこの問題が発生するのかわからないので、誰かがこの問題の修正を手伝ってくれませんか。

4

2 に答える 2

7
else (yMonth == 12)

する必要があります:

else if (yMonth == 12)

また、コードを適切にインデントすると、次のエラーに簡単に気付くことができます。

if (xYear == 2012 && yMonth == 10) {
    stopIt = "Yes"
} 
else (yMonth == 12) { // shoule be: else if (yMonth == 12) {
    stopIt = "Yes"
}

注:javascriptでは大文字と小文字が区別されます。つまり、

  • Doそうではありませんdo
  • alert代わりにAlert
  • newそれ以外のNew

ただし、セミコロンは必須ではありません。必要に応じて、セミコロンを使用することも使用しないこともできます。

アップデート:

あなたが投稿した完全なコードを見ると、奇妙なことがたくさんあります。

for (j = 2009; j =  2012; j++)

次のようなものにする必要があります:

for (var j = 2009; j <= 2012; j++)
...

変数を定義します。

var StopIt = "No"

ただし、stopIt代わりに使用してください。

stopIt = "Yes"

javascriptコース\チュートリアルを受講する必要があります。習得するのはそれほど難しくありませんが、現在の状態のコードは完全に壊れています。

于 2012-11-05T16:40:12.483 に答える
0

わかりやすくするために、私の質問に対する答えは2つありました。これは、gdoronの非常に有益で有益な答えと、私の元の投稿の下でのTeemuのコメントに基づいています。答えを要約すると、私は以下の私自身の質問に答えました:

このステートメントのエラー

if (xYear == 2012 && yMonth == 10) {stopIt = "Yes"} else (yMonth == 12) {stopIt = "Yes"}

それはif後に欠けていたということですelse

したがって、次のようになります。

if (xYear == 2012 && yMonth == 10) {
    stopIt = "Yes"
}
else if (yMonth == 12) {
    stopIt = "Yes"
}

このステートメントのエラー

var myDate = New Date(xYear, yMonth, 1)

それは資本化されるNewべきではなかったということでした。したがって、次のように記述する必要があります。

var myDate = new Date(xYear, yMonth, 1)
于 2012-11-05T16:57:48.270 に答える