Ошибка bc30205 требуется завершение оператора

  • Remove From My Forums

 locked

SSRS 2005 error: The Value expression for the textbox contains an error: [BC30205] End of statement expected.

  • Question

  • Hello,

    I am trying to run an ssrs 2005 report and receiving the error above.

    I want to run custom code in the CODE tab.

    Here is my code

    Public Function GetDayName (dayIn as integer) as String
    Select Case dayIn
    Case 0
     Return «Sunday»
    Case 1
      Return «Monday»
    Case 2
     Return «Tuesday»
    Case 3
      Return «Wednesday»
    Case 4
      Return «Thrusday»
    Case 5
      Return «Friday»
    Case 6
       Return «Saturday»
     Case Else
      Return  «None»
    End Select
    End Function

    What is wrong with my code?

    THANKS

Answers

  • Hi mexl,

    Both the custom code and expression you post here are right. From the error message «[BC30205] End of statement expected», the issue should be caused because any expression used in this report missed a end statement, for example, «)»..  Please check
    them again.

    Does the report work if you delete the expression «= » Day of Week: » & Code.GetDayName(CInt(Parameters!doweek.Value))»? If no, check other expressions.

    thanks,
    Jerry

    • Marked as answer by

      Wednesday, November 10, 2010 5:36 AM

  • Remove From My Forums
  • Вопрос

  • Dear Team,

    when i am creating a measure it is saying end of statement is expected in the preview tab

    if I am not including this it is showing correctly

    the member query is :

    member [Measures].[ShareIssues] as iif([Measures].[+/- MAT]<=-0.5 OR [Measures].[+/- QTR]<=-1.0,»Major»,iif(([Measures].[+/- MAT]>-0.5 AND [Measures].[+/- MAT]<0.0) OR ([Measures].[+/- QTR]>-1.0 AND [Measures].[+/- QTR]<0.0),»Attention»,»No Issues»))

    Is there any issues in the query

    please reply me back it is little bit urgent..

    Regards

    Ram

Ответы

  • I don’t think the root cause of the error message is the member query, unless you use an expression-based commandtext which doesn’t seem the case.

    BC30205 is a message from the compiler during report publishing which usually means one of our RDL expressions used in the report is not valid.  Posting your RDL may help to narrow down the issue.

    — Robert

Оператор является синтаксически завершенным, однако дополнительный программный элемент элементом, выполненной инструкции. The statement is syntactically complete, but an additional programming element follows the element that completes the statement. Признак конца строки является обязательным в конце каждой инструкции. A line terminator is required at the end of every statement.

Признак конца строки делит символов файла исходного кода в Visual Basic на строки. A line terminator divides the characters of a Visual Basic source file into lines. Признаки конца строки относятся Юникода каретки возвращаемого символа (& HD), Юникод перевода строки символ (& высокой ДОСТУПНОСТИ), и символ, за которым следует символ перевода строки Юникода возврата каретки Юникода. Examples of line terminators are the Unicode carriage return character (&HD), the Unicode linefeed character (&HA), and the Unicode carriage return character followed by the Unicode linefeed character. Дополнительные сведения о признаки конца строки, см. в разделе спецификация языка Visual Basic. For more information about line terminators, see the Visual Basic Language Specification.

Идентификатор ошибки: BC30205 Error ID: BC30205

Исправление ошибки To correct this error

Установите этот флажок, чтобы увидеть, если два отдельных оператора случайно помещенных в той же строке. Check to see if two different statements have inadvertently been put on the same line.

Вставьте знак завершения строки после элемента, выполняемой инструкции. Insert a line terminator after the element that completes the statement.

Sub Макрос1()

‘ Макрос1 Макрос



Dim a1, a2, n, a, b, c, d
a1 = InputBox(«A1=», «Initial value», -10)
a2 = InputBox(«A2=», «Second value», -9)
n = InputBox(«n=», «Number of points», 20)
a = InputBox(«a=», «The value of a», 0.3)
b = InputBox(«b=», «The value of b», -0.5)
c = InputBox(«c=», «The value of c», 3)
d = InputBox(«d=», «The value of d», 11.5)

Рис. 3.14. Запуск пользовательской формы перед добавлением программного кода

Пора перейти к наиболее пугающему и вместе с тем самому увлекательному этапу программирования в VBA — созданию программного кода. Напомню, что для нашей с вами программы требуется создать две процедуры и что они связаны с событиями, возникающими в процессе выполнения программы. Первая процедура должна при появлении на экране формы отобразить нужное сообщение, а вторая — завершить выполнение программы, когда кто-нибудь щелкнет на кнопке ОК.

Чтобы напечатать связанный с формой или одним из ее элементов управления программный код, вам нужно вместо окна формы открыть окно программного кода этой формы. Для этого выделите форму или элемент управления в ней. Для кнопки ОК это сделать легче всего, так почему бы не начать именно с нее? Щелкните на кнопке ОК, чтобы вокруг нее появились маркеры изменения размеров. Теперь для вызова окна программного кода воспользуйтесь любым из следующих способов.

* Выбрать View=Code из меню.

* Щелкнуть на форме правой кнопкой мыши и в появившемся контекстном меню выбрать View Code.

В появившемся при этом окне программного кода должна уже быть заготовка процедуры (рис. 3.15). VBA автоматически создает процедуру для часто используемого в случае кнопки события — простого щелчка на кнопке. Ваша программа использует эту процедуру, когда кто-нибудь щелкнет на кнопке ОК.

Рис. 3.15. VBA создаст такую заготовку процедуры, как только вы откроете окно программного кода для кнопки ОК

По сути, эти две строки программного кода не делают ничего — они просто определяют рамки, показывающие VBA, где начинается и заканчивается процедура. Первой строкой созданного для вас программного кода будет

Private Sub OKButton_Click()

В любой VBA-процедуре первая строка программного кода определяет тип процедуры (в данном случае это процедура .типа Sub, т.е. подпрограмма) и имя процедуры. Private и Sub относятся к ключевым словам VBA, т.е. к словам и символам, которые являются частью языка VBA. Ключевые слова имеют фиксированные специальные значения в VBA, и вы не можете их использовать в качестве имен таких объектов, как процедуры. Кстати, различные виды процедур в VBA обсуждаются в главе 6. В данном случае VBA предлагает для процедуры имя OKButton_Click, которое представляет собой комбинацию имени кнопки и типа события.

Последней строкой автоматически генерируемого программного кода будет:

Такой строкой должны заканчиваться все процедуры типа Sub. Эта строка сообщает VBA о том. что выполнение процедуры пора завершить.

Добавление своего программного кода

Текстовый курсор будет мигать между этими двумя созданными VBA строками. Напечатав лишь одну дополнительную строку программного кода, мы дадим возможность программе завершить работу. Вот этот программный код:

Оператор Unload убирает указанный объект из памяти. Здесь это объект с именем Me, имеющим в VBA специальный смысл. В данном случае оно означает форму и весь ее программный код.

Исправление ошибок при вводе программного кода

Фигурально выражаясь, всегда, когда вы печатаете программный код, за вашей спиной стоит компилятор VBA. Если компилятор обнаруживает очевидную ошибку, вы немедленно получаете соответствующее сообщение с информацией об ошибке, по крайней мере в общих словах. Предположим, например, что после оператора Unload Me вы напечатали какой-нибудь лишний символ. Компилятор VBA знает, что Unload Me вполне завершенный оператор и за ним в строке больше ничего не должно следовать.

Как только вы переместите точку ввода в следующую строку, компилятор перепишет весь неправильный оператор красным цветом и выделит посторонний символ. Вы получите также сообщение Compile error. Expected: end of statement (Ошибка компиляции. Ожидался конец оператора).

Компилятор может обнаружить далеко не все ошибки, допущенные вами при печатании программного кола. Когда вы запустите программу, компилятор обнаружит и другие ошибки, но о них мы поговорим немного позже.

Вторая процедура, которая должна отображать на экране сообщение, чуть сложнее первой. Эта процедура должна вызываться при появлении формы на экране. В окне программного кода, которое должно у вас остаться активным, выполните следующие шаги.

1. В текстовом поле слева вверху окна программного кода, в котором до сих пор было написано OKButton, щелкните на стрелке в правом конце поля.

После этого откроется список объектов, имеющих отношение к форме (рис. 3.16).

Рис. 3.16. В открывающемся списке объектов перечислены объекты, имеющие отношение к форме, которой принадлежит это окно программного кода

2. Из раскрывающегося списка выберите UserForm.

VBA создаст новую процедуру для события Click (щелчок). Эта процедура будет вызвана, если пользователь вашей программы щелкнет кнопкой мыши в любом месте фермы, где нет элементов управления. Нашей с вами программе такая процедура не нужна, поэтому пока оставьте ее.

3. Теперь щелкните на стрелке в конце текстового поля, находящегося справа, чтобы открыть список процедур, в котором будут перечислены все события, которые VBA распознает для объекта UserForm.

Этот список достаточно велик, что дает вам возможность сделать свою программу чуткой практически настолько, насколько захотите (рис. 3.17).

Рис. 3.17. В списке процедур представлены события, которые будут для активного в данный момент объекта

4. Выберите Activate — самый первый пункт в списке. Чтобы увидеть этот пункт, вам придется пролистать список.

VBA добросовестно создаст заготовку процедуры UserForm_Activate, которая вызывается при загрузке формы в память.

5. Если вас раздражает пустая процедура UserForm_Click, удалите ее, выделив весь ее текст и нажав клавишу Del.

Этот шаг не обязателен — соответствующий программный код не принесет никакого вреда. Но из-за того, что этот программный код не делает ничего полезного, а только отвлекает, можете смело прервать его одинокую жизнь.

Поскольку заготовка процедуры и в этом случае, как всегда, создается автоматически, вы сразу можете сосредоточиться на ее наполнении. Между строками, которые любезно предложены вам VBA, напечатайте еще три строки кода. Результат должен выглядеть следующим образом:

Dim Quote As String Quote = Не повторяется такое никогда:

lblNow.Caption = Quote Format(Now, dddddd, hh ч. mm мин.)

Первая из напечатанных вами строк

Dim Quote As String

создает переменную с именем Quote и определяет ее как строковую, что означает последовательность текстовых символов.

Quote = Не повторяется такое никогда:

сохраняет текст Не повторяется такое никогда: в только что созданной переменной Quote. Точно так же, как на уроках алгебры в школе, вы здесь используете знак равенства, чтобы приписать определенное значение переменной. Обратите внимание на то, что VBA перед закрывающими кавычками добавлен пробел, чтобы отделить текст сообщения от следующего за ним текста.

lblNow.Caption = Quote Format(Now, dddddd, hh ч. mm мин.)

содержит программный код, который непосредственно отображает нужное сообщение в форме. Эта строка начинается с идентификации элемента управления с именем lblNow как объекта, с которым идет работа. После имени стоит точка, означающая, что далее идет свойство объекта lblNow — в данном случае это свойство Caption. Вообще любое свойство подобно переменной, и его можно изменить во время выполнения программы. Поэтому, чтобы изменить установки свойства, в программном коде используется знак равенства. Оставшаяся часть строки определяет сообщение, которое должно появиться на экране в виде надписи.

Первой частью сообщения является переменная Quote. Следующий затем знак плюс дает указание VBA добавить то, что следует дальше, к тексту, хранящемуся в переменной Quote. В скобках функция Now говорит VBA, что нужно сбегать и узнать текущие показания часов компьютера, которые постоянно отсчитывают дату и время. Затем функция Format берет эту сырую информацию и представляет ее в виде, который сможете прочитать вы. Странный набор букв в кавычках как раз и определяет вил даты и времени на экране, но здесь я не собираюсь вдаваться в детальные объяснения по этому поводу — подробную информацию вы найдете в главе 11.

What’s the problem of this code??

Compiler Error Message: BC30205: End of statement expected.

Source Error:

Line 1:  <script runat="server" type="css">
Line 2:  protected void Page_Load(object sender, EventArgs e)
Line 3:  {
Line 4:      if (!IsPostBack)
Source File: C:\inetpub\wwwroot\logon\page.aspx    Line: 1

Help please ?

  • asp.net
  • compiler-errors
  • expression-web

asked Jan 6, 2013 at 12:18

Peterson Pilares's user avatar

6

  • The type="css" maybe ?

    Jan 6, 2013 at 12:22

  • Without seeing the rest of your Page_Load method, it’s going to be hard to tell. Any possibility you can add the rest of the method to your question?

    Jan 6, 2013 at 12:24

  • i already solved it. Thanks for your replies. I just add <%@ Page Language=»C#»%> in my code :)

    Jan 6, 2013 at 12:26

  • Is not the type=css, but this is for sure not correct. Show us the page header, maybe there you have defind some wrong, or the rest of your code, you have forget to close some parentheses.

    Jan 6, 2013 at 12:26

  • I already solved my problem :)) i just added <%@ Page Language=»C#»%> in my code :) thanks everyone!

    Jan 6, 2013 at 12:31

1 Answer

I already solved my problem :)) i just added <%@ Page Language=»C#»%> in my code :) thanks everyone!

answered Jan 10, 2013 at 17:18

Peterson Pilares's user avatar

0

0 / 0 / 0

Регистрация: 21.09.2012

Сообщений: 46

1

Почему не работает код с графикой?

07.07.2016, 21:14. Показов 2377. Ответов 3


Студворк — интернет-сервис помощи студентам

VB.NET
1
2
3
4
5
6
7
Private Sub Pic1_Click(sender As System.Object, e As System.EventArgs) Handles Pic1.Click
    Pic1.Scale(-10,10)-(10,-10)
    Pic1.DrawWidth = 20
    Pic1.PSet(0,0),vbWhite
    Pic1.PSet(-8, 8)
    Pic1.PSet(8, -8)
End Sub

не могу понять,почему не работает код в vb2010
Pic1 это PictureBox
все делал по книге.Не могу разобраться. Подскажите мне в чем дело. Заранее благодарен.

C:\Users\roman\Documents\Visual Studio 2010\Projects\8_187\8_187\Form1.vb( 4) : warning BC40000: «Public Sub Scale(dx As Single, dy As Single)» является устаревшим: «This method has been deprecated. Use the Scale(SizeF ratio) method instead. http://go.microsoft.com/fwlink/?linkid=14202».
C:\Users\roman\Documents\Visual Studio 2010\Projects\8_187\8_187\Form1.vb( 4) : error BC30205: Требуется завершение оператора.
C:\Users\roman\Documents\Visual Studio 2010\Projects\8_187\8_187\Form1.vb( 5) : error BC30456: «DrawWidth» не является членом «System.Windows.Forms.PictureBo x».
C:\Users\roman\Documents\Visual Studio 2010\Projects\8_187\8_187\Form1.vb( 6) : error BC30456: «PSet» не является членом «System.Windows.Forms.PictureBo x».
C:\Users\roman\Documents\Visual Studio 2010\Projects\8_187\8_187\Form1.vb( 6) : error BC30205: Требуется завершение оператора.
C:\Users\roman\Documents\Visual Studio 2010\Projects\8_187\8_187\Form1.vb( 7) : error BC30456: «PSet» не является членом «System.Windows.Forms.PictureBo x».
C:\Users\roman\Documents\Visual Studio 2010\Projects\8_187\8_187\Form1.vb( 8) : error BC30456: «PSet» не является членом «System.Windows.Forms.PictureBo x».
Сборка начата 07.07.2016 17:10:22.
ResolveAssemblyReferences:
Будет создан список исключений профиля TargetFramework.
CoreResGen:
Отсутствуют ресурсы, устаревшие по отношению к файлам своих источников. Пропуск формирования ресурсов.
GenerateTargetFrameworkMonikerAttri bute:
Целевой объект «GenerateTargetFrameworkMonikerAttr ibute» пропускается, так как все выходные файлы актуальны по отношению к входным.
CoreCompile:
C:\Windows\Microsoft.NET\Framework\ v4.0.30319\Vbc.exe /noconfig /imports:Microsoft.VisualBasic,Syste m,System.Collections,System.Collect ions.Generic,System.Data,System.Dra wing,System.Diagnostics,System.Wind ows.Forms,System.Linq,System.Xml.Li nq /optioncompare:Binary /optionexplicit+ /optionstrict:custom /nowarn:42016,41999,42017,42018,4201 9,42032,42036,42020,42021,42022 /optioninfer+ /nostdlib /platform:x86 /rootnamespace:_8_187 /sdkpath:»C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client» /highentropyva- /docbj\x86\Debug\8_187.xml /define:»CONFIG=»Debug»,DEBUG=-1,TRACE=-1,_MyType=»WindowsForms»,PLATFORM =»x86″» /reference:»C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client\Syste m.Core.dll»,»C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client\Syste m.Data.DataSetExtensions.dll»,»C:\P rogram Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client\Syste m.Data.dll»,»C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client\Syste m.Deployment.dll»,»C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client\Syste m.dll»,»C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client\Syste m.Drawing.dll»,»C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client\Syste m.Windows.Forms.dll»,»C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client\Syste m.Xml.dll»,»C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NET Framework\v4.0\Profile\Client\Syste m.Xml.Linq.dll» /main:_8_187.My.MyApplication /debug+ /debug:full /filealign:512 /outbj\x86\Debug\8_187.exe /resourcebj\x86\Debug\_8_187.Form1 .resources /resourcebj\x86\Debug\_8_187.Resou rces.resources /target:winexe Form1.vb Form1.Designer.vb «My Project\AssemblyInfo.vb» «My Project\Application.Designer.vb» «My Project\Resources.Designer.vb» «My Project\Settings.Designer.vb» «C:\Users\roman\AppData\Local\Temp\ .NETFramework,Version=v4.0,Profile= Client.AssemblyAttributes.vb»



0



Понравилась статья? Поделить с друзьями:
  • Ошибка boot device led
  • Ошибка boot device and press a key
  • Ошибка boot dat nintendo switch
  • Ошибка boot bcd при установке виндовс
  • Ошибка boot bcd 0xc000000f windows 7