Отсутствует точка с запятой в JavaScript / JScript
У меня есть следующий код, который я пишу в 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.
2 ответа
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, его не так сложно выучить, но ваш код в его текущем состоянии полностью поврежден!
Для ясности, ответ на мой вопрос был двояким, основываясь на очень полезном и информативном ответе Гдорона и комментарии Теему под моим первоначальным постом. Подводя итог, я ответил на свой вопрос ниже:
Ошибка в этом утверждении
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)