WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     | 1 |   ...   | 4 | 5 || 7 | 8 |   ...   | 17 |

«Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Содержание 1 Руководство SAP Crystal Reports.NET SDK Developer Guide............................ 4 1.1 Начало ...»

-- [ Страница 6 ] --

1.5.1.2.2.2 Тестирование загрузки отчета CustomersByCity Контекст Все готово к сборке и запуску проекта. Ожидается, что загрузить отчета не удастся, так как еще не написан код для установки значения поля параметра "Город".

Процедура 1. В меню Построение выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. Если в проекте Windows используется невстроенный отчет, найдите скомпилированный исполняемый файл Windows в подкаталоге \bin\ [Visual Basic] или \bin\debug\ [C#] и скопируйте отчет в этот подкаталог.

Чтобы невстроенный отчет загружался исполняемым файлом Windows во время выполнения, отчет должен храниться в том же каталоге, что и исполняемый файл Windows.

4. В меню Отладка выберите команду Начать.

Отчет CustomersByCity не отображается. Он отобразится после того, как в поле параметра "Город" будет добавлено значение, о чем рассказывается далее в этом учебном пособии.

Результаты могут различаться в зависимости от используемой версии SAP Crystal Reports. В более поздних версиях может отображаться запрос с формой для ввода значений параметров для отчета.

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

5. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.2.3 Ручная настройка параметров в коде Теперь все готово для того, чтобы задать два значения ("Париж" и "Токио") для отчета CustomersByCity.

Это включает в себя кодирование, которое можно разделить на два процесса.

Необходима константа PARAMETER_FIELD_NAME для имени поля параметра "Город".

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

В методе ConfigureCrystalReports() параметры "Париж" и "Токио" добавляются в экземпляр ArrayList и передаются как в отчет, так и в экземпляр ArrayList для обработки вспомогательного 1.5.1.2.3.1 Создание константы PARAMETER_FIELD_NAME Процедура 1. Вернитесь в класс code-behind для этой веб-формы или формы Windows.

2. На уровне класса создайте новую строчную константу PARAMETER_FIELD_NAME и задайте ей значение Private Const PARAMETER_FIELD_NAME As String = "City" private const string PARAMETER_FIELD_NAME = "City";

1.5.1.2.3.2 Создание вспомогательного метода, который добавляет текущие значения в параметр отчета Контекст Теперь все готово к созданию вспомогательного метода, который добавляет текущие значения в параметр отчета.

Процедура 1. Вернитесь в класс code-behind для этой веб-формы или формы Windows.

2. Над подписью класса добавьте объявление "Imports" [Visual Basic] или "using" [C#] в верхней части класса для пространства имен System.Collections (если это пространство имен еще не объявлено).

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Это объявление необходимо для доступа к классу ArrayList.

Imports System.Collections using System.Collections;

3. Внизу класса создайте новый private-метод с именем SetCurrentValuesForParameterField() и с двумя переменными в подписи метода: ParameterFields и ArrayList.

Private Sub SetCurrentValuesForParameterField(ByVal myParameterFields As ParameterFields, ByVal myArrayList As private void SetCurrentValuesForParameterField(ParameterFields parameterFields, ArrayList arrayList) 4. В этом методе объявите и инициализируйте класс ParameterValues как переменную currentParameterValues.

Чтобы класс ParameterValues был доступным, необходимо включить объявление "Imports" [Visual Basic] или "using" [C#] в верхней части класса code-behind для пространства имен CrystalDecisions.Shared. (Это объявление было добавлено в разделе Настройка проекта [стр. 16].) Dim currentParameterValues As ParameterValues = New ParameterValues() ParameterValues currentParameterValues = new ParameterValues();

5. Создайте цикл foreach для получения всех предоставленных значений (как тип Object) для экземпляра ArrayList.

В этом методе выполняется извлечение значений из ArrayList. Позже необходимо написать код, который добавляет значения в ArrayList.

For Each submittedValue As Object In myArrayList foreach(object submittedValue in arrayList) Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 6. В цикле foreach объявите и инициализируйте класс ParameterDiscreteValue.

Dim myParameterDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue() ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();

7. В цикле foreach преобразуйте submittedValue в строку и передайте ее свойству Value экземпляра ParameterDiscreteValue.

myParameterDiscreteValue.Value = submittedValue.ToString() parameterDiscreteValue.Value = submittedValue.ToString();

8. В цикле foreach добавьте экземпляр ParameterDiscreteValue в индексированный классcurrentParameterValues.

Это действие завершит код в цикле foreach. Разместите оставшийся код (из последующих шагов) после цикла foreach.

currentParameterValues.Add(myParameterDiscreteValue) currentParameterValues.Add(parameterDiscreteValue);

9. Вне цикла foreach извлеките экземпляр ParameterField из индексированного класса ParameterFields, который основывается на индексной записи константы PARAMETER_FIELD_NAME.

Dim myParameterField As ParameterField = myParameterFields(PARAMETER_FIELD_NAME) ParameterField parameterField = parameterFields[PARAMETER_FIELD_NAME];

10. Передайте экземпляр currentParameterValues в свойство CurrentValues экземпляра ParameterField.

myParameterField.CurrentValues = currentParameterValues parameterField.CurrentValues = currentParameterValues;

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.2.3.3 Вызов метод SetCurrentValuesForParameterField() перед связыванием отчета с элементом управления CrystalReportViewer Контекст В этой пошаговой процедуре рассказывается о том, как создать метод, который извлекает предоставленные значения из экземпляра ArrayList и размещает их в качестве текущих значений в экземпляре ParameterField. Теперь необходимо вызвать этот метод перед связыванием отчета с элементом управления CrystalReportViewer, чтобы отчет учитывал настройки параметров.

Процедура 1. В методе ConfigureCrystalReports() объявите и инициализируйте ArrayList над строкой, которая связывает отчет с элементом управления CrystalReportViewer.

Dim myArrayList As ArrayList = New ArrayList() ArrayList arrayList = new ArrayList();

2. Добавьте названия городов "Париж" и "Токио" в виде строки в экземпляр ArrayList.

myArrayList.Add("Paris") myArrayList.Add("Tokyo") arrayList.Add("Paris");

arrayList.Add("Tokyo");

3. Ниже кода, который связывает элемент управления CrystalReportViewer, извлеките экземпляр ParameterFields из свойства ParameterFieldInfo элемента управления CrystalReportViewer.

Dim myParameterFields As ParameterFields = myCrystalReportViewer.ParameterFieldInfo ParameterFields parameterFields = crystalReportViewer.ParameterFieldInfo;

4. Вызовите метод SetCurrentValuesForParameterField() и передайте экземпляры ParameterFields и ArrayList.

SetCurrentValuesForParameterField(myParameterFields, myArrayList) SetCurrentValuesForParameterField(parameterFields, arrayList);

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.2.3.4 Тестирование загрузки отчета CustomersByCity Контекст Все готово к сборке и запуску проекта. Ожидается, что отчет успешно отобразится, так как теперь написан код для задания текущих значений поля параметра.

Процедура 1. В меню Построение выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. В меню Отладка выберите команду Начать.

4. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

Результаты В следующем разделе рассказывается о том, как получить значения по умолчанию из поля параметра и установить эти значения в элементе управления ListBox. Они используются в конце учебного пособия для динамического выбора новых городов и фильтрации отчета на основе выбранных городов.

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

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

Необходимо помнить, что при создании этого отчета в начале данного пособия устанавливаются значения по умолчанию – большой список городов.

Чтобы выполнить это действие, необходимо добавить элемент управления ListBox и настроить его, а затем создать вспомогательный метод для заполнения элемента управления ListBox.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.2.4.1 Создание и настройка элемента управления ListBox в форме Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите команду Конструктор.

3. Если разрабатывается веб-сайт, выполните такие действия:

a) Щелкните элемент управления CrystalReportViewer, чтобы выделить его.

b) Нажмите на клавиатуре клавишу СТРЕЛКА ВЛЕВО, чтобы появился мигающий курсор, а затем 4. Если разрабатывается проект Windows, выполните следующие действия:

a) Щелкните элемент управления CrystalReportViewer, чтобы выделить его.

b) В окне Свойства установите для свойства Dock значение "Bottom" c) Задайте размер элемента управления CrystalReportViewer так, чтобы сверху осталось достаточно места для элемента управления ListBox.

d) В окне Свойства установите для свойства Anchor набор значений "Top, Bottom, Left, Right".

5. Из панели инструментов перетащите мышью элемент управления ListBox сверху элемента управления CrystalReportViewer.

6. Щелкните элемент управления ListBox, чтобы выделить его.

7. В окне Свойства выполните следующие действия:

a) Задайте для свойства ID или Name значение defaultParameterValuesList.

b) Задайте для свойства SelectionMode значение "Multiple" (в проекте Windows – "MultiExtended").

8. В меню Файл выберите команду Сохранить все.

1.5.1.2.4.2 Создание вспомогательного метода, извлекающего значения по умолчанию из поля параметра Контекст Теперь все готово для создания вспомогательного метода, который извлекает значения по умолчанию из поля параметра.

Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите команду Код.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Внизу этого класса создайте private-метод с именем GetDefaultValuesFromParameterField(), который возвращает экземпляр ArrayList, с передачей ParameterFields в подписи метода.

Private Function GetDefaultValuesFromParameterField(ByVal myParameterFields As ParameterFields) As ArrayList private ArrayList GetDefaultValuesFromParameterField(ParameterFields parameterFields) 4. Извлеките экземпляр ParameterField из индексированного класса ParameterFields, который основывается на индексной записи константы PARAMETER_FIELD_NAME.

Dim myParameterField As ParameterField = myParameterFields(PARAMETER_FIELD_NAME) ParameterField parameterField = parameterFields[PARAMETER_FIELD_NAME];

5. Извлеките индексированный класс ParameterValues (как переменную defaultParameterValues) из свойства DefaultValues экземпляра ParameterField.

Dim defaultParameterValues As ParameterValues = myParameterField.DefaultValues ParameterValues defaultParameterValues = parameterField.DefaultValues;

6. Объявите и инициализируйте ArrayList.

Dim myArrayList As ArrayList = New ArrayList() ArrayList arrayList = new ArrayList();

7. Создайте цикл foreach для извлечения каждого экземпляра ParameterValue из defaultParameterValues.

В цикле foreach создайте вложенный условный блок, который проверяет наличие дискретных (в отличие от диапазона) значений параметра. Существует две версии этого условного блока, поскольку в разных версиях SAP Crystal Reports для разработчика Microsoft Visual Studio имеются изменения в интерфейсе API. Проверьте интерфейс API (используя IntelliSense), чтобы узнать, какое свойство доступно в разделе ParameterValue.

For Each myParameterValue As ParameterValue In defaultParameterValues © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide foreach(ParameterValue parameterValue in defaultParameterValues) 8. Если доступно свойство IsRange, то в цикле foreach введите такой код:

If (Not myParameterValue.IsRange) Then if(!parameterValue.IsRange) 9. Если доступно свойство Kind (DiscreteOrRangeKind, перечисление с тремя значениями:

DiscreteValue, RangeValue, DiscreteAndRangeValue), то в цикле foreach взамен введите следующий код:

If (myParameterValue.Kind = DiscreteOrRangeKind.DiscreteValue) Then if(parameterValue.Kind == DiscreteOrRangeKind.DiscreteValue) 10. В этом вложенном условном блоке приведите экземпляр ParameterValue к его расширенному классу, DiscreteParameterValue.

Dim myParameterDiscreteValue As ParameterDiscreteValue = CType(myParameterValue, ParameterDiscreteValue) ParameterDiscreteValue parameterDiscreteValue = (ParameterDiscreteValue)parameterValue;

11. Также во вложенном условном блоке добавьте свойство Value экземпляра ParameterDiscreteValue (преобразованного в строку) в экземпляр ArrayList.

myArrayList.Add(myParameterDiscreteValue.Value.ToString()) arrayList.Add(parameterDiscreteValue.Value.ToString());

12. Вне условного блока и вне цикла foreach, в конце метода, верните экземпляр ArrayList из метода.

Return myArrayList Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide return arrayList;

1.5.1.2.4.3 Установка связи между ArrayList, возвращаемым из метода, и ListBox в веб-проекте Контекст Мы извлекли значения по умолчанию из поля параметра и вернули их из метода как ArrayList. Теперь будет установлена связь между ArrayList и элементом управления defaultParameterValuesList ListBox.

Код немного отличается в зависимости от того, используется ли веб-проект или проект Windows, поэтому необходимо выполнить процедуру либо только для веб-проекта, либо только для проекта Windows.

Процедура 1. В методе ConfigureCrystalReports() создайте несколько разрывов строк в коде сразу после строки кода, которая извлекает экземпляр ParameterFields.

2. В разрывах строк создайте условный блок Not IsPostBack.

Условный блок Not IsPostBack используется для инкапсуляции кода, который должен запускаться только при первой загрузке страницы. Элементы управления обычно связаны со значениями данных в условных блоках Not IsPostBack таким образом, что их значения данных (и любые последующие события элементов управления) не сбрасываются во время перезагрузок If Not IsPostBack Then if(!IsPostBack) 3. В условном блоке Not IsPostBack задайте для свойства DataSource элемента defaultParameterValuesList ListBox вспомогательный метод GetDefaultValuesFromParameterField(), передав его в экземпляр ParameterFields как параметр defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(myParameterFields) © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(parameterFields);

4. В условном блоке Not IsPostBack вызовите метод DataBind() объекта defaultParameterValuesListListBox.

defaultParameterValuesList.DataBind() defaultParameterValuesList.DataBind();

1.5.1.2.4.4 Установка связи между ArrayList, возвращаемым из метода, и ListBox в проекте Windows Процедура 1. В методе ConfigureCrystalReports() создайте несколько разрывов строк в коде сразу после строки кода, которая извлекает экземпляр ParameterFields.

В разрывы строк теперь можно ввести дополнительный код, который устанавливает источник данных для элемента управления ListBox с именем defaultParameterValuesList при первой загрузке страницы.

2. В разрывах строк задайте для свойства DataSource элемента управления ListBox с именем defaultParameterValuesList вспомогательный метод GetDefaultValuesFromParameterField(), передав экземпляр ParameterFields как параметр метода.

defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(myParameterFields) defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(parameterFields);

1.5.1.2.4.5 Тестирования заполнения элемента управления defaultParameterValuesList ListBox Контекст Теперь можно собрать и запустить проект, и проверить, заполняется ли элемент управления ListBox defaultParameterValuesList.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. В меню "Построение" выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. В меню Отладка выберите команду Начать.

Элемент управления defaultParameterValuesListListBox отображает полный список значений по умолчанию (в данном пособии это города).

4. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

1.5.1.2.5 Установка параметров из выбранных элементов ListBox В этом разделе рассказывается о том, как добавить кнопку для повторного отображения отчета на основе выбранных элементов из элемента управления defaultParameterValuesList ListBox. В методе обработки события для данной кнопки вызывается тот же метод, что и при первой загрузке страницы:

SetCurrentValuesForParameterField(). Но в этот раз вместо передачи произвольных значений (Париж и Токио) происходит передача выбранных значений из элемента управления defaultParameterValuesListListBox.

1.5.1.2.5.1 Создание и настройка элемента Button с именем redisplay на форме Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите команду Конструктор.

3. Из панели инструментов перетащите мышью элемент управления Button в правую часть элемента управления ListBox.

4. Щелкните элемент управления Button, чтобы выбрать его.

5. В окне Свойства выполните следующие действия:

a) Задайте для свойства ID или Name значение «redisplay».

b) установите для свойства Text значение "Отобразить отчет повторно".

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.2.5.2 Создание метода обработки события click для элемента Button с именем redisplay в веб-проекте Контекст Теперь все готово для создания метода обработки события нажатия кнопки, который проверяет выбранные элементы в элементе управления ListBox и передает их в метод SetCurrentValuesForParameterField().

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

Процедура 1. Дважды щелкните кнопку Повторно отобразить отчет.

Происходит переход к классу code-behind, где метод обработки событий redisplay_Click() сгенерирован автоматически.

2. Над подписью класса добавьте объявление "Imports" [Visual Basic] или "using" [C#] в верхней части класса для пространства имен System.Web.UI.WebControls (если это пространство имен еще не объявлено).

Imports System.Web.UI.WebControls using System.Web.UI.WebControls;

3. В методе обработки события redisplay_Click(), который только что был автоматически создан, объявите и инициализируйте ArrayList.

Dim myArrayList As ArrayList = New ArrayList() ArrayList arrayList = new ArrayList();

4. Создайте цикл foreach для извлечения каждого экземпляра ListItem из свойства Items элемента ListBox с именем defaultParameterValuesList.

For Each item As ListItem In defaultParameterValuesList.Items foreach(ListItem item in defaultParameterValuesList.Items) Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 5. В цикле foreach создайте вложенный условный блок, который проверяет, установлено ли для свойства Selected текущего экземпляра Item значение True.

If item.Selected Then if(item.Selected) 6. В условном блоке добавьте свойство Value экземпляра Item к экземпляру ArrayList.

myArrayList.Add(item.Value) arrayList.Add(item.Value);

7. Вне условного блока и вне цикла foreach повторно установите связь пути к каталогу отчета CustomersByCity со свойством ReportSource класса CrystalReportViewer.

Путь к каталогу, который отображается ниже, предназначен для проекта Visual Studio. Элемент "ProjectName" заменяется именем веб-сайта. Элемент "UserName" заменяется именем, которое использовалось при входе в систему.

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

myCrystalReportViewer.ReportSource = "C:\WebSites\ProjectName \CustomersByCity.rpt" crystalReportViewer.ReportSource = "C:\\WebSites\\ProjectName\ \CustomersByCity.rpt";

8. Извлеките экземпляр ParameterFields из свойства ParameterFieldInfo элемента управления CrystalReportViewer.

Dim myParameterFields As ParameterFields = myCrystalReportViewer.ParameterFieldInfo ParameterFields parameterFields = crystalReportViewer.ParameterFieldInfo;

9. Передайте экземпляр ParameterFields и ArrayList в метод SetCurrentValuesForParameterField().

SetCurrentValuesForParameterField(myParameterFields, myArrayList) © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide SetCurrentValuesForParameterField(parameterFields, arrayList);

1.5.1.2.5.3 Создание метода обработки события click для элемента Button с именем redisplay в проекте Windows Процедура 1. Дважды щелкните элемент управления Button с именем redisplay.

Происходит переход к классу code-behind, где метод обработки событий redisplay_Click() сгенерирован автоматически.

2. В методе обработки события redisplay_Click(), который только что был автоматически создан, объявите и инициализируйте ArrayList.

Dim myArrayList As ArrayList = New ArrayList() ArrayList arrayList = new ArrayList();

3. Создайте цикл foreach, чтобы получить каждый элемент (в виде строки) из свойства SelectedItems элемента ListBox с именем defaultParameterValuesList.

For Each item As String In defaultParameterValuesList.SelectedItems foreach(string item in defaultParameterValuesList.SelectedItems) 4. В цикле foreach добавьте экземпляр строки элемента в экземпляр ArrayList.

myArrayList.Add(item) arrayList.Add(item);

5. Вне цикла foreach повторно установите связь отчета CustomersByCity со свойством ReportSource класса CrystalReportViewer.

Путь к каталогу, который отображается ниже, предназначен для проекта Visual Studio. Элемент "ProjectName" заменяется именем проекта Windows. Элемент "UserName" заменяется именем, которое использовалось при входе в систему.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Путь для проекта Windows по умолчанию:

myCrystalReportViewer.ReportSource = "C:\Documents and Settings\UserName\My Documents\Visual Studio\Projects\ProjectName\CustomersByCity.rpt" crystalReportViewer.ReportSource = "C:\\Documents and Settings\\UserName\\My Documents\\Visual Studio\\Projects\\ProjectName\\CustomersByCity.rpt";

6. Извлеките экземпляр ParameterFields из свойства ParameterFieldInfo элемента управления CrystalReportViewer.

Dim myParameterFields As ParameterFields = myCrystalReportViewer.ParameterFieldInfo ParameterFields parameterFields = crystalReportViewer.ParameterFieldInfo;

7. Передайте экземпляр ParameterFields и ArrayList в метод SetCurrentValuesForParameterField().

SetCurrentValuesForParameterField(myParameterFields, myArrayList) SetCurrentValuesForParameterField(parameterFields, arrayList);

1.5.1.2.5.4 Тестирования заполнения элемента управления defaultParameterValuesList ListBox Контекст После того как выбранные значения из элемента управления ListBox были применены в качестве текущих значений для поля параметра, можно повторно отобразить отчет.

Теперь все готово для сборки и запуска проекта с целью проверки успешного сброса поля параметра.

Процедура 1. В меню Построение выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. В меню Отладка выберите команду Начать.

4. В элементе управления ListBox, удерживая клавишу Ctrl, выберите города в списке.

5. Нажмите кнопку Повторно отобразить отчет.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Страница перезагрузится и отобразятся записи о клиентах, которые живут в городах, выбранных в 6. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

1.5.1.2.6 Настройка сохранения параметров В этом разделе настраивается сохранение (в учебном веб-пособии) для элементов поля параметра, выбранных в элементе управления ListBox.

1.5.1.2.6.1 Добавление кода сохранения к методу ConfigureCrystalReports() Контекст Необходимо добавить в приложение код сохранения, чтобы сделанные изменения сохранялись при перезагрузке веб-страниц.

Для начала добавьте код сохранения в метод ConfigureCrystalReports(), добавив блок Else к условному блоку If Not IsPostBack. Затем задайте уникальные значения для экземпляра ArrayList для любого условия в условном блоке. После запуска страницы задайте значения по умолчанию ("Париж" и "Токио") в экземпляре ArrayList. После перезагрузки страницы будет извлечен экземпляр ArrayList, хранящийся в Session.

Процедура 1. В методе ConfigureCrystalReports() вырежьте две строки кода, которые добавляют Париж и Токио в список ArrayList, и вставьте их внизу условного блока Not IsPostBack.

После окончания условный блок должен выглядеть так:

If Not IsPostBack Then defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(myParameterFields) defaultParameterValuesList.DataBind() myArrayList.Add("Paris") myArrayList.Add("Tokyo") if (!IsPostBack) defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(parameterFields);

defaultParameterValuesList.DataBind();

arrayList.Add("Paris");

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide arrayList.Add("Tokyo");

2. Добавьте последнюю строку кода в условный блок, которая назначит экземпляр ArrayList переменной Имя переменной можно использовать в качестве идентификатора строки для добавляемого сеанса.

Session("myArrayList") = myArrayList Session["arrayList"] = arrayList;

3. Добавьте условие Else в условный блок Not IsPostBack.

4. В блоке Else извлеките экземпляр ArrayList из Session и приведите его к типу ArrayList.

myArrayList = Ctype(Session("myArrayList"), ArrayList) arrayList = (ArrayList)Session["arrayList"];

Результаты После окончания условный блок должен выглядеть так:

If Not IsPostBack Then defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(myParameterFields) defaultParameterValuesList.DataBind() myArrayList.Add("Paris") myArrayList.Add("Tokyo") Session("myArrayList") = myArrayList Else myArrayList = Ctype(Session("myArrayList"), ArrayList) End If if (!IsPostBack) defaultParameterValuesList.DataSource = GetDefaultValuesFromParameterField(parameterFields);

defaultParameterValuesList.DataBind();

arrayList.Add("Paris");

arrayList.Add("Tokyo");

Session["arrayList"] = arrayList;

else arrayList = (ArrayList)Session["arrayList"];

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Эти изменения метода ConfigureCrystalReports() гарантируют, что текущий экземпляр ArrayList также доступен для передачи в метод SetCurrentValuesForParameterField().

В следующем разделе будут сделаны два изменения кода обработки события click для кнопки:

Выберите созданный ArrayList и назначьте его переменной Session.

Замените две последние строки кода (которые настраивают и отображают отчет) вызовом метода ConfigureCrystalReports(), чтобы эта функция выполнялась в обычном наборе кода.

1.5.1.2.6.2 Изменение кода в методе обработки нажатия кнопки для работы с сохранением сеанса Процедура 1. Удалите последние три строки кода в методе обработки события click для кнопки.

Первая удаляемая строка кода представляет собой код, который устанавливает связь пути к файлу отчета со свойством ReportSource элемента управления CrystalReportViewer.

Вторая удаляемая строка — код, который получает экземпляр ParameterFields из свойства ParameterFieldInfo элемента управления CrystalReportViewer.

Третья строка кода — вызов метода SetCurrentValuesForParameterField().

В следующем действии добавьте две новые строки кода, чтобы заменить удаленный код.

2. В методе обработки события click для кнопки сразу за пределами цикла foreachдобавьте строку кода, которая назначает экземпляр ArrayList переменной Session.

Имя переменной можно использовать в качестве идентификатора строки для добавляемой Session("myArrayList") = myArrayList Session["arrayList"] = arrayList;

3. Вызовите метод ConfigureCrystalReports().

В результате будет получен экземпляр ArrayList, применен к отчету, и будет установлена связь отчета с элементом управления CrystalReportViewer.

ConfigureCrystalReports() ConfigureCrystalReports();

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.2.6.3 Тестирования заполнения элемента управления defaultParameterValuesList ListBox Контекст Теперь все готово для сборки и запуска проекта с целью проверки успешного сброса поля параметра.

Процедура 1. В меню Построение выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. В меню Отладка выберите команду Начать.

4. В элементе управления ListBox, удерживая нажатой клавишу SHIFT, выберите все города в списке.

5. Нажмите кнопку Повторно отображать отчет.

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

6. На панели инструментов CrystalReportViewer нажмите кнопку Следующая страница.

7. Теперь список выбранных городов будет сохранен. Страница 2 отчета отображается.

8. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

1.5.1.3 Учебное пособие: чтение и установка параметров диапазона для подотчета В этом учебном пособии рассматривается дополнительная сложность: что, если отчет содержит подотчет, требующий других параметров?

Вступление В предыдущем учебном пособии, Учебное пособие: чтение и установка дискретных параметров [стр. 256], рассказывалось о том, как создать отчет с дискретными параметрами и как написать код для задания этих параметров во время выполнения – как с жестко запрограммированными значениями параметров, так и со значениями параметров, которые передаются из элемента управления ListBox или TextBox.

В этом учебном пособии рассказывается о том, как добавить диапазон параметров в подотчет.

Необходимо выполнить четыре изменения в проекте, созданном ранее:

Добавить подотчет к исходному отчету.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Этот подотчет обращается к таблице "Заказы" базы данных Xtreme. Таблица "Заказы" связана с таблицей "Клиенты", которая используется в предыдущем учебном пособии, внешним ключом "Идентификатор клиента".

Параметры диапазона добавляются в подотчет, который выполняет фильтрацию по диапазону дат заказов.

В форму добавляются два элемента управления Text: orderStartDate и orderEndDate, для задания диапазона дат заказов во время выполнения.

Изменяется метод SetCurrentValuesForParameter(), который был создан в предыдущем учебном пособии.

Этот метод создает экземпляр ParameterRangeValue, содержащий значения startDate и endDate, и затем передает этот экземпляр ParameterRangeValue в параметр диапазона внутри подотчета.

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

Это пособие также может быть выполнено с классами объектной модели ReportDocument, подробнее см. в разделе Учебное пособие: чтение и установка параметров для подотчета [стр. 421].

Примеры кода Данное учебное пособие содержит образцы кода на языках Visual Basic и C#, демонстрирующие готовую версию проекта. Следуя инструкциям пособия, создайте новый проект или откройте проект примера кода, чтобы начать работу с завершенной версией.

Примеры кода хранятся в папках, упорядоченных по языку и типу проекта. Ниже приведены имена папок для каждой версии примера кода.

Веб-сайт C#: CS_Web_CRVObjMod_ParametersSubrpt Windows-проект C#: CS_Win_CRVObjMod_ParametersSubrpt Веб-сайт Visual Basic:VB_Web_CRVObjMod_ParametersSubrpt Windows-проект Visual Basic: VB_Win_CRVObjMod_ParametersSubrpt Связанные сведения Выбор правильной объектной модели для проекта [стр. 32] Каталог образцов отчетов [стр. 15] 1.5.1.3.1 Добавление подотчета в исходный отчет Для начала необходимо добавить подотчет в исходный отчет.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. Откройте проект, созданный в предыдущем учебном пособии, Учебное пособие: чтение и установка дискретных параметров [стр. 256].

2. В Проводнике решений дважды щелкните отчет CustomersByCity, чтобы открыть его.

3. Щелкните правой кнопкой мыши серую панель Подробности и выберите команду Вставить раздел 4. Щелкните правой кнопкой мыши в созданном разделе Подробности b, укажите пункт Вставить и выберите команду Подотчет.

Вокруг курсора мыши появится серый квадрат.

5. Перетащите серый прямоугольник в новый раздел Подробности b.

6. В диалоговом окне Вставка подотчета на вкладке Подотчет выберите элемент Создать подотчет с помощью мастера отчетов.

Диалоговое окно "Вставка подотчета" содержит другие функции, которые позволяют выбирать существующий отчет и подотчеты по запросу. Дополнительные сведения об этих функциях см. в разделе Вкладка "Подотчет" (диалоговое окно "Вставка подотчета") [стр. 951].

7. В поле Имя нового отчета введите "CustomerOrders".

8. Щелкните элемент Мастер отчетов....

9. На панели Доступные источники данных окна мастера создания стандартных отчетов разверните папку Создать новое соединение.

10. В открывшейся подпапке разверните папку ODBC (RDO).

11. В окне ODBC (RDO) выберите правильную запись ODBC DSN для базы данных Xtreme, затем нажмите кнопку Готово.

Папка ODBC (RDO) развернется и отобразит базу данных Xtreme.

12. Выберите таблицу Заказы и щелкните символ >, чтобы переместить таблицу "Заказы" на панель Выбор таблиц, затем нажмите кнопку Далее.

13. На панели Доступные поля выберите элементы Идентификатор заказа, Дата заказа, Дата отгрузки и Отгрузка из.

14. Щелкните символ >, чтобы переместить эти поля в панель Поля для отображения, и нажмите кнопку Готово.

15. В диалоговом окне Вставка подотчета выберите вкладку Ссылка.

16. На панели Поля исходного отчета, с которыми необходимо установить связь, в списке Доступные поля раскройте таблицу Клиенты, выберите элемент Идентификатор клиента и щелкните символ >.

17. На панели Связь поля Клиенты.Идентификатор клиента, которая отобразится, оставьте настройки, установленные по умолчанию.

Эти параметры и данные автоматически создают связь между главным отчетом и подотчетом.

18. Нажмите кнопку ОК.

Новый подотчет, CustomerOrders, отображается в разделе "Подробности b" главного отчета.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide При добавлении подотчета в раздел "Подробности" подотчет отображается для каждой строки, которая добавляет затраты на выполнение в отчет. Если информация подотчета с таким уровнем структурирования не нужна, разместите подотчет в разделе "Группы" вместо раздела "Подробности".

Процедура 1. В разделе отчета "Подробности" дважды щелкните подотчет CustomerOrders, чтобы открыть его.

Внизу представления "Конструктор" отображаются кнопки навигации как для основного отчета, так и для подотчета CustomerOrders.

2. Если Проводник полей не отображается, на панели инструментов Crystal Reports нажмите кнопку Переключение вида поля.

Для отображения Проводника полей также можно открыть меню Crystal Reports и выбрать пункт Проводник полей.

3. В Проводнике полей разверните элемент Поля параметров.

4. Убедитесь, что поле параметра Pm-Клиенты.Идентификатор клиента было автоматически создано при установлении связи с подотчетом.

5. На панели инструментов Crystal Reports щелкните элемент Мастер выбора.

6. В диалоговом окне Мастер выбора убедитесь, что установлен критерий Заказы.Идентификатор клиента равно {Pm-Клиенты.Идентификатор клиента}, и нажмите кнопку ОК.

7. В меню Файл выберите команду Сохранить все.

Результаты Подотчет CustomerOrders успешно добавлен в отчет CustomersByCity.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.3.1.3 Добавление параметра OrderDateRange в подотчет Процедура 1. В Проводнике полей щелкните правой кнопкой мыши элемент Поля параметров и выберите команду 2. В диалоговом окне "Создание поля параметра" выполните следующие действия:

a) Для элемента Имя задайте значение "OrderDateRange".

b) Для элемента Текст подсказки задайте значение "Укажите диапазон дат заказов для c) Для элемента Тип значения задайте значение "Дата".

d) Для элемента Параметры задайте только одно значение "Значение диапазона".

3. Нажмите кнопку ОК.

4. На панели инструментов Crystal Reports щелкните элемент Мастер выбора.

5. Перейдите на вкладку Создать.

6. В диалоговом окне Выбор поля разверните таблицу Заказы, выберите элемент Дата заказа и нажмите 7. На новой вкладке Заказы.Дата заказа из раскрывающегося списка критериев выберите вариант формула и введите следующую формулу: {Заказы.Дата заказа} в {?OrderDateRange}.

8. Нажмите кнопку ОК.

9. В меню Файл выберите команду Сохранить все.

Параметр OrderDateRange успешно добавлен в подотчет и связан со столбцом Заказы.Дата заказа.

В следующем разделе будет добавлен код для обращения к параметру OrderDateRange в подотчете.

1.5.1.3.2 Добавление кода параметра подотчета Контекст Теперь все готово для добавления кода параметра для подотчета в класс code-behind. Для начала создайте вспомогательный private-метод, SetDateRangeForOrders().

Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите команду Код.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Вверху класса добавьте две новые константы под уже существующей константой PARAMETER_FIELD_NAME, добавленной в предыдущем руководстве.

Private Const SUBREPORT_PARAMETER_FIELD_NAME As String = "OrderDateRange" Private Const SUBREPORT_NAME As String = "CustomerOrders" private const string SUBREPORT_PARAMETER_FIELD_NAME = "OrderDateRange";

private const string SUBREPORT_NAME = "CustomerOrders";

4. Внизу класса создайте новый private метод с именем SetDateRangeForOrders() и с тремя параметрами: ParameterFields, строкой startDate и строкой endDate.

Private Sub SetDateRangeForOrders(ByVal myParameterFields As ParameterFields, ByVal startDate As String, ByVal endDate As private void SetDateRangeForOrders(ParameterFields parameterFields, string startDate, string endDate) 5. В этом методе определите и задайте класс ParameterRangeValue.

Чтобы класс ParameterRangeValue был доступным, необходимо включить определение "Imports" [Visual Basic] или "using" [C#] вверху класса code-behind для пространства имен CrystalDecisions.Shared. (Это объявление было добавлено в разделе Настройка проекта [стр.

Dim myParameterRangeValue As ParameterRangeValue = New ParameterRangeValue() ParameterRangeValue parameterRangeValue = new ParameterRangeValue();

6. Задайте свойство StartValue экземпляра ParameterRangeValue для параметра метода startDate.

Свойства StartValue и EndValue класса ParameterRangeValue принимают значения типа Object.

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

myParameterRangeValue.StartValue = startDate Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide parameterRangeValue.StartValue = startDate;

7. Задайте свойство EndValue экземпляра ParameterRangeValue для параметра метода endDate.

myParameterRangeValue.EndValue = endDate parameterRangeValue.EndValue = endDate;

8. Установите нижнюю и верхнюю границы так, чтобы они включали крайние значения.

Для BoundInclusive верхнее и нижнее значения диапазона включены в диапазон.

myParameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive myParameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive parameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive;

parameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive;

Теперь все готово для того, чтобы назначить экземпляр ParameterRangeValue для параметра подотчета.

9. Извлеките экземпляр ParameterField из индексированного класса ParameterFields, который основывается на двух индексированных значениях: имя поля параметра подотчета и имя подотчета.

Передайте два значения констант, определенных вверху класса.

Dim myParameterField As ParameterField = myParameterFields(SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME) ParameterField parameterField = parameterFields[SUBREPORT_PARAMETER_FIELD_NAME, SUBREPORT_NAME];

10. Вызовите метод Clear() свойства CurrentValues экземпляра ParameterField, чтобы удалить любые существующие значения из свойства CurrentValues.

myParameterField.CurrentValues.Clear() parameterField.CurrentValues.Clear();

11. Добавьте экземпляр ParameterRangeValue, который был создан ранее, в свойство CurrentValues экземпляра ParameterField.

myParameterField.CurrentValues.Add(myParameterRangeValue) © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide parameterField.CurrentValues.Add(parameterRangeValue);

Результаты Эта пошаговая процедура задала значения даты начала и окончания в экземпляре ParameterRangeValue и передала эти значения параметру OrderDateRange в подотчете CustomerOrders.

1.5.1.3.3 Добавление элемента управления TextBox для хранения значений параметров диапазона В этом разделе будут добавлены два элемента управления TextBox для обеспечения значений даты начала и даты конца во время выполнения для параметра диапазона OrderDateRange в подотчете CustomerOrders.

Если выполнить это учебное пособие на веб-сайте, то сохранение значений даты, введенных пользователями в текстовые поля, осуществляет ViewState.

1.5.1.3.3.1 Создание и настройка элемента Button с именем redisplay на форме Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите команду Конструктор.

3. Если разрабатывается веб-сайт, выполните такие действия:

a) Щелкните между элементами управления ListBox и Button.

b) Нажмите клавишу Enter три раза для создания двух строк между элементами управления ListBox и c) В первой строке, созданной ниже элемента ListBox, введите Начальная дата заказа.

d) Во второй строке, созданной ниже элемента ListBox, введите Конечная дата заказа.

4. Если разрабатывается проект Windows, выполните следующие действия:

a) Из панели инструментов перетащите два элемента управления Label в область справа от элемента управления ListBox. Разместите элементы Label друг над другом и над элементом управления b) Выберите первый элемент Label и в окне Свойства задайте для свойства Text значение Начальная Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide c) Выберите второй элемент Label и в окне Свойства задайте для свойства Text значение Конечная 5. Из панели инструментов перетащите элемент управления в область справа от элемента "Начальная дата заказа".

6. Щелкните элемент управления TextBox, чтобы выделить его.

7. В окне Свойства задайте для свойства ID (или Name) значение orderStartDate.

8. Из Панели инструментов перетащите элемент управления TextBox в область справа от элемента "Конечная дата заказа".

9. Щелкните элемент управления TextBox, чтобы выделить его.

10. В окне Свойства задайте для свойства ID (или Name) значение orderEndDate.

11. В меню Файл выберите команду Сохранить все.

1.5.1.3.4 Изменение методов вызова подотчета Теперь необходимо изменить метод ConfigureCrystalReports() и метод обработки события redisplay_Click(), чтобы получить информацию от этих элементов управления TextBox и применить их к методу SetDateRangeForOrders(), чтобы информация параметра обрабатывалась для подотчетов.

В предыдущем учебном пособии, Учебное пособие: чтение и установка дискретных параметров [стр. 256], эти методы создавались двумя разными способами, в зависимости от того, включено ли сохранение сеанса.

Проекты Windows не требуют сохранения сеанса. Веб-сайты обычно требуют сохранения сеанса.

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

1.5.1.3.4.1 Изменение методов, которые не включают сохранение сеанса Если было создано Учебное пособие: чтение и установка дискретных параметров [стр. 256] предыдущего руководства и не было включено сохранение сеанса, выполните приведенные ниже действия. В противном случае перейдите к разделу Изменение методов, которые включают сохранение сессий [стр. 290].

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.3.4.1.1 Изменение метода ConfigureCrystalReports(), который не включает сохранение сеанса Процедура 1. В методе ConfigureCrystalReports() создайте несколько разрывов строк в коде после строк, которые назначают "Париж" и "Токио" в качестве переменных ArrayList.

2. В разрывах строк определите и установите жестко заданные значения для двух строковых переменных, startDate и endDate.

Dim startDate As String = "8/1/1997" Dim endDate As String = "8/31/1997" string startDate = "8/1/1997";

string endDate = "8/31/1997";

3. Под кодом, который вызывает SetCurrentValuesForParameterField(), вызовите метод SetDateRangeForOrders() и передайте экземпляр ParameterFields и переменные startDate и endDate.

SetDateRangeForOrders(myParameterFields, startDate, endDate) SetDateRangeForOrders(parameterFields, startDate, endDate);

4. В меню Файл выберите команду Сохранить все.

1.5.1.3.4.1.2 Изменение метода redisplay_Click(), который не включает сохранение сеанса Процедура 1. В методе обработки события redisplay_Click(), создайте несколько разрывов строк в коде над строкой, которая связывает отчет с элементом управления CrystalReportViewer.

2. В разрывах строк определите и задайте значения двух строковых переменных startDate и endDate из элементов управления TextBox, добавленных в веб- или Windows-форму.

Dim startDate As String = orderStartDate.Text Dim endDate As String = orderEndDate.Text string startDate = orderStartDate.Text;

string endDate = orderEndDate.Text;

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Под кодом, который вызывает SetCurrentValuesForParameterField(), вызовите метод SetDateRangeForOrders() и передайте экземпляр ParameterFields и переменные startDate и endDate.

SetDateRangeForOrders(myParameterFields, startDate, endDate) SetDateRangeForOrders(parameterFields, startDate, endDate);

4. В меню Файл выберите команду Сохранить все.

1.5.1.3.4.2 Изменение методов, которые включают сохранение сессий Если вы создали Учебное пособие: чтение и установка дискретных параметров [стр. 256] из предыдущего учебного пособия и включили сохранение сеанса, выполните приведенные ниже процедуры. В противном случае перейдите к разделу Изменение методов, которые не включают сохранение сеанса [стр. 288].

1.5.1.3.4.2.1 Изменение метода ConfigureCrystalReports(), который включает сохранение сеанса Процедура 1. В методе ConfigureCrystalReports() создайте несколько разрывов строк в коде после строки, которая объявляет и инициализирует ArrayList.

2. В разрывах строк определите две строковые переменные, startDate и endDate.

Dim startDate As String Dim endDate As String string startDate;

string endDate;

3. В условном блоке Not IsPostBack введите значения по умолчанию для переменных startDate и startDate = "8/1/1997" endDate = "8/31/1997" startDate = "8/1/1997";

endDate = "8/31/1997";

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 4. В условном блоке Not IsPostBack назначьте переменные startDate и endDate в Session.

Session("startDate") = startDate Session("endDate") = endDate Session["startDate"] = startDate;

Session["endDate"] = endDate;

5. В блоке Else, после получения экземпляра ArrayList из сеанса, извлеките переменные startDate и endDate из сеанса.

startDate = Session("startDate").ToString() endDate = Session("endDate").ToString() startDate = Session["startDate"].ToString();

endDate = Session["endDate"].ToString();

С таким подходом вы достигните конца блока с переменными дат, назначенными в одном из случаев.

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

6. Под кодом, который вызывает SetCurrentValuesForParameterField(), вызовите метод SetDateRangeForOrders() и передайте экземпляр ParameterFields и переменные startDate и endDate.

SetDateRangeForOrders(myParameterFields, startDate, endDate) SetDateRangeForOrders(parameterFields, startDate, endDate);

7. В меню Файл выберите команду Сохранить все.

1.5.1.3.4.2.2 Изменение метода redisplay_Click(), который включает сохранение сеанса Контекст Теперь будет выполнено изменение метода обработки события redisplay_Click.

Процедура 1. В методе обработки события redisplay_Click() создайте несколько разрывов строк в коде после строки, которая назначает экземпляр ArrayList переменной Session.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 2. В разрывах строк назначьте свойство Text элементов TextBox с именами orderStartDate и orderEndDate переменной Session.

Session("startDate") = orderStartDate.Text Session("endDate") = orderEndDate.Text Session["startDate"] = orderStartDate.Text;

Session["endDate"] = orderEndDate.Text;

3. В меню Файл выберите команду Сохранить все.

Результаты Теперь значения сеанса startDate и endDate извлекаются и применяются при вызове метода ConfigureCrystalReports().

Теперь все готово для сборки и запуска проекта, что позволяет убедиться, что значения TextBox сбрасывают параметр диапазона в подотчете.

1.5.1.3.5 Тестирование параметра подотчета Контекст Теперь все готово к тестированию настройки параметра подотчета из значений TextBox.

Процедура 1. В меню Построение выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. В меню Отладка выберите команду Начать.

4. В элементе управления ListBox, удерживая клавишу CTRL, выберите как минимум четыре разных города из списка.

5. В элементе управления TextBox orderStartDate введите значение 1/1/1997.

6. В элементе управления TextBox orderEndDate введите значение 8/31/1997.

7. Нажмите кнопку Повторно отобразить отчет.

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

8. В элементе управления CrystalReportViewer увеличьте Масштаб до 125%.

Страница перезагрузится с масштабом 125%. Выбранные для обоих городов значения и диапазон дат заказов сохранятся.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 9. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

1.5.1.4 Учебное пособие: фильтрация данных с использованием формул выбора В этом учебном пособии рассказывается о том, как использовать формулы выбора для фильтрации записей, которые необходимо отобразить в отчете Crystal.

Вступление Формулы выбора используются для фильтрации записей, которые необходимо отобразить в отчете Crystal.

Чтобы написать формулу выбора, можно использовать синтаксис Basic и синтаксис Crystal.

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

Формула передается в виде строковой переменной свойству SelectionFormula класса CrystalReportViewer.

Когда свойство задано, отчет Crystal, который устанавливает связь с элементом управления CrystalReportViewer, фильтруется перед отображением.

Примеры кода Данное учебное пособие содержит образцы кода на языках Visual Basic и C#, демонстрирующие готовую версию проекта. Следуя инструкциям пособия, создайте новый проект или откройте проект примера кода, чтобы начать работу с завершенной версией.

Примеры кода хранятся в папках, упорядоченных по языку и типу проекта. Ниже приведены имена папок для каждой версии примера кода.

Веб-сайт C#: CS_Web_CRVObjMod_FilteringData Windows-проект C#: CS_Win_CRVObjMod_FilteringData Веб-сайт Visual Basic: VB_Web_CRVObjMod_FilteringData Windows-проект Visual Basic: VB_Win_CRVObjMod_FilteringData Связанные сведения Справочник формул [стр. 794] Каталог образцов отчетов [стр. 15] Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.4.1 Создание отчета с формулой выбора В этом разделе создается отчет, который черпает сведения из базы данных Xtreme.

1.5.1.4.1.1 Создание отчета с защищенными данными из базы данных Xtreme Процедура 1. В Проводнике решений щелкните правой кнопкой мыши имя проекта, выделенное жирным шрифтом, укажите пункт Добавить, а затем выберите команду Добавить новый элемент.

2. В диалоговом окне Добавление нового элемента в представлении Шаблоны выберите шаблон Crystal 3. В поле Имя введите имя CustomersBySalesName.rpt и нажмите кнопку Добавить.

4. На панели Создание нового документа Crystal Report диалогового окна Галерея Crystal Reports выберите С помощью мастера отчетов.

5. На панели Выбор мастера выберите параметр Стандарт, затем нажмите кнопку ОК.

6. На панели Доступные источники данных окна Мастер создания стандартных отчетов разверните папку Создать новое соединение.

7. В открывшейся подпапке разверните папку ODBC (RDO).

8. В окне ODBC (RDO) выберите правильную запись ODBC DSN для образца базы данных Xtreme, затем нажмите кнопку Готово.

Папка ODBC (RDO) развернется и отобразит базу данных Xtreme.

9. Разверните узел Таблицы, дважды щелкните таблицу Клиент, чтобы переместить ее на панель Выбранные таблицы, и нажмите кнопку Далее.

10. Разверните таблицу Клиент, затем, нажав и удерживая клавишу CTRL, щелкните элементы Имя клиента и Продажи за прошлый год.

11. Щелкните символ > для перемещения этих полей на панель Отображаемые поля, а затем нажмите кнопку Далее.

12. На панели Доступные поля в разделе Поля отчета, дважды щелкните элемент Клиент.Имя клиента, чтобы переместить это поле на панель Сгруппировать по, и нажмите кнопку Готово.

Будет создан отчет CustomersBySalesName, который будет загружен в главное окно Visual Studio.

1.5.1.4.1.2 Создание формулы выбора на основе продаж за прошлый год Контекст Далее создается формула выбора для фильтрации данных на основе поля "Продажи за прошлый год".

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите пункт Код для просмотра класса code-behind для этой веб-формы или формы Windows.

3. Для веб-сайта в методе ConfigureCrystalReports() (созданном в разделе Настройка проекта [стр.

16]) создайте условный блок Not IsPostBack.

Условный блок Not IsPostBack содержит код, который должен быть запущен только при первой загрузке страницы.

If Not IsPostBack Then if(!IsPostBack) 4. Для веб-сайта добавьте следующие линии кода в условный блок Not IsPostBack. Для проекта Windows добавьте код в метод ConfigureCrystalReports() без условного блока Not IsPostBack.

a) Введите формулу для выбора только тех записей, значение поля "Продажи за прошлый год" в которых больше 11000 долларов, а имена клиентов начинаются с буквы A.

Dim mySelectFormula As String = "{Customer.Last Year's Sales} > & "AND Mid({Customer.Customer Name}, 1, 1) = ""A"" " string selectFormula = "{Customer.Last Year's Sales} > 11000. + "AND Mid({Customer.Customer Name}, 1, 1) = \"A\"";

b) Назначьте строку формулы выбора свойству SelectionFormula элемента управления CrystalReportViewer.

myCrystalReportViewer.SelectionFormula = mySelectFormula crystalReportViewer.SelectionFormula = selectFormula;

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Следуя инструкциям в разделе Настройка проекта [стр. 16] для подготовки к этому учебному пособию, мы разместили элемент управления CrystalReportViewer в веб-форме или форме Windows. В предыдущих действиях в проект был добавлен отчет CustomersBySalesName и формула выбора.

В этом разделе устанавливается связь между путем к каталогу отчета CustomersBySalesName и элементом управления CrystalReportViewer. Затем выполняется тестирование правильного отображения отчета с записями, которые фильтруются по формуле выбора.

1.5.1.4.2.1 Установка связи между путем к каталогу отчета CustomersBySalesName и элементом управления CrystalReportViewer Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите пункт Код для просмотра класса code-behind для этой веб-формы или формы 3. Найдите метод ConfigureCrystalReports() (созданный в разделе Настройка проекта [стр. 16]).

4. Объявите строковую переменную с именем reportPath и назначьте для нее путь исполняемого модуля, ведущий к локальному отчету. Этот путь определяется по-разному для веб-сайтов и для проектов Для веб-сайта передайте имя локального файла отчета в виде строкового параметра в метод Server.MapPath(). Это определит расположение локального отчета как путь к каталогу на жестком диске во время выполнения.

Server.MapPath("CustomersBySalesName.rpt") string reportPath = Server.MapPath("CustomersBySalesName.rpt");

Для проекта Windows соедините свойство Application.StartupPath с обратной косой чертой и именем файла локального отчета. Это определит расположение отчета в том же каталоге, что и исполняемый файл Windows.

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

Dim reportPath As String = Application.StartupPath & "\" & "CustomersBySalesName.rpt" © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide string reportPath = Application.StartupPath + "\\" + "CustomersBySalesName.rpt";

5. Назначьте путь к каталогу отчета NorthwindCustomers для свойства ReportSource элемента управления CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportPath crystalReportViewer.ReportSource = reportPath;

1.5.1.4.2.2 Тестирование формулы выбора для отчета CustomersBySalesName Процедура 1. В меню Построение выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. Если в проекте Windows используется невстроенный отчет, найдите скомпилированный исполняемый файл Windows в подкаталоге \bin\ [Visual Basic] или \bin\debug\ [C#] и скопируйте отчет в этот подкаталог.

Чтобы невстроенный отчет загружался исполняемым файлом Windows во время выполнения, отчет должен храниться в том же каталоге, что и исполняемый файл Windows.

4. В меню Отладка выберите команду Начать.

Отчет Crystal отображает четыре записи о клиентах: Alley Cat Cycles, Ankara Bicycle Company, Arsenault et Maurier и Athens Bicycle Co.

5. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

1.5.1.4.3 Добавление элементов управления для использования в формуле выбора Контекст В этом разделе добавляются элементы управления для динамического изменения значений, которые используются в формуле выбора. Для поля "Продажи за прошлый год" добавляется поле для указания минимального значения продаж, которое будет отображаться в отчете Crystal. Для поля "Имя клиента" добавляется элемент управления DropDownList и TextBox для указания имен клиентов, которые следует отображать.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите команду Конструктор.

3. Если разрабатывается веб-сайт, выполните такие действия:

a) Щелкните элемент управления CrystalReportViewer, чтобы выделить его.

b) Нажмите клавишу СТРЕЛКА ВЛЕВО, чтобы появился мигающий курсор, а затем три раза нажмите Элемент управления CrystalReportViewer сместится вниз на три строки.

4. Если разрабатывается проект Windows, выполните следующие действия:

a) Щелкните элемент управления CrystalReportViewer, чтобы выделить его.

b) В окне Свойства установите элемент Фиксация в положение "Кнопка".

c) Измените размер элемента управления CrystalReportViewer так, чтобы над ним помещались d) В окне Свойства задайте для свойства Anchor значения "Top, Bottom, Left, Right".

5. Если разрабатывается веб-сайт, в первой строке введите Введите минимальное значение продаж 6. Если разрабатывается проект Windows, выполните следующие действия:

a) Из панели управления перетащите элемент управления Label в верхнюю часть формы.

b) В окне Свойства установите для свойства Text значение Введите минимальное значение продаж 7. Из панели управления перетащите элемент управления TextBox в область справа от текста.

8. Выберите элемент управления TextBox, а затем в окнеСвойства выполните следующие действия:

a) Задайте для свойства ID (или Name) значение lastYearsSales.

b) Задайте для свойства Text значение 11000.00.

9. Если разрабатывается веб-сайт, во второй строке введите Отображать имена клиентов.

10. Если разрабатывается проект Windows, выполните следующие действия:

a) Из панели инструментов перетащите элемент управления Label на вторую строку формы.

b) В окне Свойства задайте для свойства Text значение "Отображать имена клиентов".

11. Из Панели инструментов перетащите элемент DropDownList (ComboBox для проекта Windows) в область справа от текста.

12. Выберите элемент управления DropDownList (ComboBox), затем в окне Свойства задайте для свойства ID (или Name) значение "selectOperatorList".

13. Из Панели инструментов перетащите элемент управления TextBox в область справа от элемента DropDownList.

14. Выберите элемент управления TextBox, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID (или Name) значение customerName.

b) Установите для свойства Text значение A.

15. Из панели инструментов перетащите элемент управления Button на третью строку формы над элементом CrystalReportViewer.

16. Выберите элемент управления Button, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID (или Name) значение redisplay.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide b) Установите для свойства Text значение Повторно отобразить отчет.

1.5.1.4.4 Настройка формулы выбора в коде вручную Теперь все готово для добавления кода для изменения формулы выбора в классе code-behind.

Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите команду Конструктор.

3. Дважды щелкните кнопку Повторно отобразить отчет.

Отображается класс code-behind для отчета, указывая, что метод обработки события redisplay_Click() был создан автоматически.

4. Для формулы выбора создайте строковую переменную, которая берет значения из элементов управления TextBox.

Формула выбора похожа на текст, который был введен в методе ConfigureCrystalReports(). Вместо минимального значения продаж в 11000 долларов используется значение из элемента управления TextBox с именем lastYearsSales. Для поля "Имя клиента" используется значение из элемента управления TextBox с именем customerName.

Dim mySelectFormula As String = "{Customer.Last Year's Sales} > " & lastYearsSales.Text _ & " AND Mid({Customer.Customer Name}, 1, 1) > """ & customerName.Text & """" string selectFormula = "{Customer.Last Year's Sales} > " + lastYearsSales.Text + " AND Mid({Customer.Customer Name}, 1, 1) > \"" + customerName.Text + "\"";

5. Назначьте строковую переменную для свойства SelectionFormula элемента управления CrystalReportViewer.

myCrystalReportViewer.SelectionFormula = mySelectFormula crystalReportViewer.SelectionFormula = selectFormula;

6. Повторно установите связь отчета CustomerBySalesName со свойством ReportSource элемента управления CrystalReportViewer.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Путь к каталогу, который отображается здесь, предназначен для проекта Visual Studio. ProjectName заменяется именем веб-проекта или проекта Windows. UserName заменяется именем, с которым пользователь регистрируется на компьютере.

Путь по умолчанию для проекта веб-сайта следующий:

myCrystalReportViewer.ReportSource = "C:\WebSites\ ProjectName \CustomersBySalesName.rpt" crystalReportViewer.ReportSource = "C:\\WebSites\\ ProjectName\ \CustomersBySalesName.rpt";

Путь по умолчанию для проекта Windows следующий:

myCrystalReportViewer.ReportSource = "C:\Documents and Settings\ UserName\My Documents\Visual Studio\Projects\ ProjectName\CustomersBySalesName.rpt" crystalReportViewer.ReportSource = "C:\\Documents and Settings\\ UserName\\My Documents\\Visual Studio\\Projects\\ ProjectName\\CustomersBySalesName.rpt";

Результаты Теперь создана формула выбора, которую можно изменять во время выполнения.

Процедура 1. В меню Построение выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. В меню Отладка выберите команду Начать.

4. В поле TextBox с именем lastYearsSales введите 200000.

5. В поле TextBox с именем customerName введитеSAB.

6. Нажмите кнопку Повторно отобразить отчет.

Отчет Crystal отображает три записи о клиентах: SAB Mountain, Tek Bikes и Tienda de Bicicletas El Pardo.

Отображаются только записи о клиентах с именами больше "SAB" и прошлогодние продажи на сумму более 200000.

7. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.4.5 Использование элемента управления DropDownList для изменения формулы выбора В этом разделе производится заполнение элемента управления DropDownList операторами сравнения.

Создается перечисление, которое содержит операторы сравнения.

Элемент управления DropDownList определяет, необходимо ли отображать имена клиентов, которые равны, меньше, больше, меньше или равны, больше или равны, или не равны тексту, введенному в элемент управления TextBox.

В методе обработки события redisplay_Click() выполняется изменение строки, которая на данный момент назначена свойству SelectionFormula элемента управления CrystalReportViewer.

1.5.1.4.5.1 Создание перечисления CeComparisonOperator Процедура 1. В Проводнике решений щелкните правой кнопкой мыши имя проекта, выделенное жирным шрифтом, укажите пункт Добавить, а затем выберите команду Добавить новый элемент.

2. В диалоговом окне Добавление нового элемента выберите Класс в представлении Шаблоны.

3. В поле Имя введите значение CeComparisonOperator и нажмите кнопку Добавить.

Система может предложить поместить этот класс в каталог Code. Нажмите кнопку "Да".

4. В подписи класса замените слово class на enum, чтобы преобразовать класс в перечисление.

В Windows-проектах на языке C# также необходимо изменить пространство имен на имя вашего проекта.

В Visual Basic не забудьте поменять открывающую и закрывающую подписи класса на enum.

5. Поскольку теги не имеют конструктора, удалите метод-конструктор, предлагаемый в C#-версии кода по умолчанию.

6. В перечислении введите следующие значения:

LessThan_or_EqualTo GreaterThan_or_EqualTo Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide GreaterThan, LessThan_or_EqualTo, GreaterThan_or_EqualTo, 1.5.1.4.5.2 Заполнение элемента управления DropDownList из перечисления CeComparisonOperator для веб-сайта Контекст Приведенные ниже процедуры объясняют, как установить связь перечисления CeComparisonOperator с элементом управления DropDownList для веб-сайта или для проекта Windows. Следуйте инструкциям одной из пошаговых процедур, приведенных ниже.

Процедура 1. Откройте веб-форму.

2. В меню Вид выберите команду Код.

3. В условном блоке Not IsPostBack метода ConfigureCrystalReports() перед объявлением строки формулы выбора установите для свойства DataSource элемента управления DropDownList значения из перечисления CeComparisonOperator.

selectOperatorList.DataSource = System.Enum.GetValues(GetType(CeComparisonOperator)) selectOperatorList.DataSource = System.Enum.GetValues(typeof(CeComparisonOperator));

4. Теперь вызовите метод DataBind() элемента DropDownList с именем selectOperatorList, чтобы установить связь значений с элементом управления.

selectOperatorList.DataBind() selectOperatorList.DataBind();

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.4.5.3 Заполнение элемента управления DropDownList из перечисления CeComparisonOperator для проекта Windows Процедура 1. Откройте форму Windows.

2. В меню Вид выберите команду Код.

3. В методе ConfigureCrystalReports() перед объявлением строки формулы выбора установите для свойства DataSource элемента ComboBox с именем selectOperatorList значения из перечисления CeComparisonOperator.

selectOperatorList.DataSource = System.Enum.GetValues(GetType(CeComparisonOperator)) selectOperatorList.DataSource = System.Enum.GetValues(typeof(CeComparisonOperator));

1.5.1.4.5.4 Создание вспомогательного метода GetSelectedCompareOperator() Контекст Далее создается вспомогательный метод GetSelectedCompareOperator() для возврата выбранного индекса в виде строки, которая соответствует знаку оператора сравнения.

Процедура 1. Внизу класса создайте вспомогательный private-метод с именем GetSelectedCompareOperator(), который возвращает строковую переменную.

Private Function GetSelectedCompareOperator() As String private string GetSelectedCompareOperator() Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 2. В этом методе создайте определение "Select Case" [Visual Basic] или "switch" [C#], которое ссылается на элементы перечисления CeComparisonOperator и возвращает знак оператора сравнения в виде строковой переменной.

Select Case selectOperatorList.SelectedIndex Case CeComparisonOperator.EqualTo Case CeComparisonOperator.LessThan Case CeComparisonOperator.LessThan_or_EqualTo Case CeComparisonOperator.Not_EqualTo switch ((CeComparisonOperator)selectOperatorList.SelectedIndex) case CeComparisonOperator.EqualTo:

case CeComparisonOperator.LessThan:

case CeComparisonOperator.LessThan_or_EqualTo:

case CeComparisonOperator.Not_EqualTo:

1.5.1.4.5.5 Изменение оператора сравнения имени клиента, который назначен для свойства SelectionFormula Контекст В методе обработки событий redisplay_Click() для выбора поля "Имя клиента" в данный момент используется знак "больше" (>). Далее рассказывается о том, как изменить этот знак на оператор сравнения, выбранный в элементе управления DropDownList. Выбранный знак возвращается в виде строки при вызове вспомогательного метода GetSelectedCompareOperator().

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. Вверху метода обработки события redisplay_Click() вызовите вспомогательный метод GetSelectedCompareOperator() и присвойте результат строковой переменной.

Dim mySelectedOperator As String = GetSelectedCompareOperator() string selectedOperator = GetSelectedCompareOperator();

2. Для строковой переменной формулы выбора замените знак "больше" (>) строкой выбранного оператора.

Dim mySelectFormula As String = "{Customer.Last Year's Sales} > " & lastYearsSales.Text _ & " AND Mid({Customer.Customer Name}, 1, 1) " & mySelectedOperator & " """ & customerName.Text & """" string selectFormula = "{Customer.Last Year's Sales} > " + lastYearsSales.Text + " AND Mid({Customer.Customer Name}, 1, 1) " + selectedOperator + " \"" + customerName.Text + "\"";

1.5.1.4.5.6 Тестирование формулы выбора для отчета CustomersBySalesName Контекст Мы создали формулу выбора, которая зависит от значений, введенных для полей "Продажи за прошлый год" и "Имя клиента".

Теперь можно собрать и протестировать формулу выбора.

Процедура 1. В меню Построение выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. В меню Отладка выберите команду Начать.

a) В поле TextBox с именем lastYearsSales введите значение 40000.

b) В поле TextBox с именем customerName введите значение Athens Bicycle Co..

c) В списке DropDownList выберите LessThan.

d) Нажмите кнопку Повторно отображать отчет.

Отчет Crystal отображает две записи о клиентах: Alley Cat Cycles и Ankara Bicycle Company.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 4. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

1.5.1.5 Учебное пособие: настройка элемента управления Crystalreportviewer Данное пособие содержит описание настройки отображения элемента управления CrystalReportViewer.

Вступление Данное учебное пособие содержит описание настройки отображения элемента управления CrystalReportViewer при помощи использования свойств его основного класса.

В ней также содержится описание использования методов выбора страниц, изменения масштаба, поиска и печати.

Начнем с описания настройки панели инструментов CrystalReportViewer. Для этого необходим элемент ListBox, который содержит свойства, доступные для панели инструментов. На панели инструментов CrystalReportViewer отображаются только те свойства, которые были выбраны в элементе управления ListBox.

Далее выберите второй ListBox для хранения элементов отчета. Для веб-сайта можно отображать все страницы отчета как одну или как отдельные страницы.

Элемент управления DropDownList позволяет настроить фоновый цвет.

Далее описывается процесс выбора необходимой для просмотра страницы. Элемент управления TextBox требуется для ввода номера страницы, а элемент Button – для перезагрузки отчета на выбранную страницу. Также потребуются элементы управления TextBox и Button для изменения коэффициента масштабирования, а также для поиска текста в отчете.

При использовании веб-сайта пользователь имеет доступ к свойствам элемента управления CrystalReportViewer, которые недоступны при использовании проекта Windows: выбор режима печати, изменение ширины, цвета и границ.

Примеры кода Данное учебное пособие содержит образцы кода на языках Visual Basic и C#, демонстрирующие готовую версию проекта. Следуя инструкциям пособия, создайте новый проект или откройте проект примера кода, чтобы начать работу с завершенной версией.

Примеры кода хранятся в папках, упорядоченных по языку и типу проекта. Ниже приведены имена папок для каждой версии примера кода.

Веб-сайт C#: CS_Web_CRVObjMod_CustomizeViewer Windows-проект C#:CS_Win_CRVObjMod_CustomizeViewer © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Веб-сайт Visual Basic:VB_Web_CRVObjMod_CustomizeViewer Windows-проект Visual Basic: VB_Win_CRVObjMod_CustomizeViewer Связанные сведения Каталог образцов отчетов [стр. 15] 1.5.1.5.1 Создание таблицы пользовательских настроек В данном разделе описан процесс создания и настройки таблицы (на веб-сайте) или элемента управления TableLayoutPanel (в проекте Windows) с различными элементами управления, составляющими таблицу пользовательских настроек.

Поскольку в веб-сайтах и проектах Windows используются различные виды таблиц, выберите пошаговую процедуру, которая соответствует веб-сайту или проекту Windows.

1.5.1.5.1.1 Создание таблицы пользовательских настроек для веб-сайта Процедура 1. Откройте страницу Default.aspx (веб-форму) в представленииКонструктор 2. Щелкните элемент управления CrystalReportViewer, чтобы выделить его.

3. Нажмите клавишу со стрелкой влево, чтобы передвинуть курсор влево от элемента управления CrystalReportViewer, а затем нажмите клавишу Enter.

4. Нажмите клавишу со стрелкой вверх, чтобы переместить курсор в пустую строку над элементом управления CrystalReportViewer.

5. В меню Макет выберите команду Вставить таблицу.

6. В диалоговом окне Вставка таблицы установите переключатель Пользовательский.

7. На панели Макет установите флажок Ширина и оставьте значение 100%.

8. Увеличьте число Строк до 6, а Столбцов — до 4.

9. На панели Атрибуты установите флажок Границы и увеличьте число до 1.

10. Нажмите кнопку Свойства ячейки....

11. В диалоговом окне Свойства ячейки на панели Макет выберите из списка Выравнивание по вертикали пункт Сверху.

12. Установите флажок Не переносить, а затем нажмите кнопку ОК.

13. Нажмите кнопку ОК еще раз, чтобы закрыть диалоговое окно Вставка таблицы.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Результаты Теперь можно добавить в таблицу пользовательские элементы управления для веб-сайта.

Перейдите к разделу Элементы отчета и панели инструментов в элементе управления CrystalReportViewer [стр. 309].



Pages:     | 1 |   ...   | 4 | 5 || 7 | 8 |   ...   | 17 |
Похожие работы:

«Сибирское отделение Российской Академии наук И НСТИТУТ М А Т Е М А Т И К И им. С. Л. С О Б О Л Е В А ОМСКИЙ ФИЛИАЛ УТВЕРЖДАЮ: И.о.директора, д.ф-м.н., профессор _ В.А. Топчий 2000 г. ОТЧЕТ РЕЗУЛЬТАТЫ НАУЧНО-ОРГАНИЗАЦИОННОЙ ДЕЯТЕЛЬНОСТИ в 2000 г. Утвержден ученым советом 17.11.2000 Омск - 2000 РЕФЕРАТ Отчет содержит 39 стр. текста и 111 названий публикаций. В отчете представлены результаты фундаментальных и прикладных исследований и разработок, проведенных в 2000 г. Омским филиалом Института...»

«Тема 3.2. Использование систем автоматизированного проектирования в нефтегазовой отрасли Направления применения САПР в нефтегазовой отрасли. Задачи, решаемые САПР Ни одна из множества прикладных задач, связанных с разведкой и освоением месторождений, добычей, транспортом, переработкой, хранением и реализацией нефти и газа, не может быть решена без тщательного планирования, подготовки и контроля выполняемых работ, которым предшествует проведение научно-исследовательских, опытно-конструкторских...»

«МАТЕМАТИКА, 11 класс Вариант № 1, Январь 2014 МАТЕМАТИКА, 11 класс Вариант № 1, Январь 2014 В аэропорту чемоданы пассажиров поднимают в зал выдачи багажа по Краевая диагностическaя рaбота по МАТЕМАТИКЕ B3 транспортерной ленте. При проектировании транспортера необходимо ВАРИАНТ № 1 учитывать допустимую силу натяжения ленты транспортера. На рисунке изображена зависимость натяжения ленты от угла наклона транспортера к горизонту Инструкция по выполнению работы при расчетной нагрузке. На оси абсцисс...»

«Электроэнергетический Совет Содружества Независимых Государств РЕШЕНИЕ О проектах Инструкции по расследованию технологических нарушений в работе межгосударственных электроэнергетических объектов и Инструкции по ликвидации аварий, повлекших нарушение в работе энергосистем сопредельных государств, разработанных в соответствии с Планом НИР 2005 Заслушав и обсудив информацию Исполнительного комитета по данному вопросу Электроэнергетический Совет Содружества Независимых Государств решил: 1....»

«Проведение доказательной государственной политики: Что это? Как это работает? Какое значение имеет для развивающихся стран? Софи Сатклифф и Юлиус Корт Институт развития зарубежных стран Ноябрь 2005 г. Содержание Краткий обзор 3 Доказательная государственная политика: Значение и вопросы 3 Растущее применение доказательств: Подходы и инструменты для прогрессивных политиков 4 Раздел I: Доказательная государственная политика: Значение и Проблемы 6 Введение 6 Ключевые вопросы вокруг ДГП 8 Примеры...»

«РНБ иНфоРмация № 5  2011 г.  МАЙ ОФИЦИАЛЬНЫЕ ДОКУМЕНТЫ МАЙ 2011 г. Генеральному директору ФГБУ Российская государственная библиотека А. И. Вислому Генеральному директору ФГБУ Российская национальная библиотека А. В. Лихоманову Минкультуры России рассмотрело Ваше письмо о сложнейшей ситуации с заработной платой персонала национальных библиотек. Были подготовлены соответствующие предложе­ ния в Правительство Россий­ ской Федерации, в том числе связанные с выступлением Председателя Правитель­ ства...»

«УТВЕРЖДЕНО: ПРИКАЗОМ [] ОТ [] 20_ Г. № [] КОНКУРСНАЯ ДОКУМЕНТАЦИЯ К ОТКРЫТОМУ КОНКУРСУ НА ПРАВО ЗАКЛЮЧЕНИЯ КОНЦЕССИОННОГО СОГЛАШЕНИЯ О ФИНАНСИРОВАНИИ, ПРОЕКТИРОВАНИИ, СОЗДАНИИ И ЭКСПЛУАТАЦИИ СИСТЕМЫ ВЗИМАНИЯ ПЛАТЫ В СЧЕТ ВОЗМЕЩЕНИЯ ВРЕДА, ПРИЧИНЯЕМОГО АВТОМОБИЛЬНЫМ ДОРОГАМ ОБЩЕГО ПОЛЬЗОВАНИЯ ФЕДЕРАЛЬНОГО ЗНАЧЕНИЯ ТРАНСПОРТНЫМИ СРЕДСТВАМИ, ИМЕЮЩИМИ РАЗРЕШЕННУЮ МАКСИМАЛЬНУЮ МАССУ СВЫШЕ 12 ТОНН ТОМ 1. ПРЕДМЕТ И УСЛОВИЯ КОНКУРСА СОГЛАСОВАНО: Минтранс России Минэкономразвития Минфин России России...»

«Российский национальный конкурс водных проектов старшеклассников Изучение гидрометеорологического режима р. Чумляк (Южный Урал). Авторы: Редреев Всеволод, 11 класс Курбангалиева Алина, 8 класс, воспитанники ДЭЦ, МОУ СОШ №5, г. Копейск Руководитель: Рудниченко Мария Ильинична педагог детского экологического центра высшей квалификационной категории Научный консультант: Панина Мария Викторовна к.г.н., доцент ГОУ ВПО ЧГПУ г. Челябинск 2010 г. Оглавление Аннотация Введение Раздел...»

«Электронное научное издание Альманах Пространство и Время. Т. 1. Вып. 2 • 2012 Electronic Scientific Edition Almanac Space and Time Elektronische wissenschaftliche Auflage Almabtrieb ‘Raum und Zeit‘ Человек и среда обитания Man a nd Livi ng Enviro nment / Mensch u nd Lebensraum УДК 551.321.7:551.342:551.578.465 Геворкян С.Г. Критические коэффициенты интенсивности напряжений мёрзлых грунтов, содержащих органическое вещество Геворкян Сергей Георгиевич, кандидат физико-математических наук, старший...»

«Лаборатория социологических исследований и социального проектирования ПГПУ Агафонова Н. Н., Брехач Р.А.,Жадаев Д.Н Содержание общественного заказа системе образования: эффективные механизмы способов оформления профессиональной среде и механизмы предъявления результатов выполнения общественного заказа профессиональным сообществом Материалы социологического исследования ПГПУ -2009 Лаборатория социологических исследований и социального проектирования ПГПУ Агафонова Н. Н., Брехач Р.А.,Жадаев...»

«НЕКОММЕРЧЕСКОЕ ПАРТНЕРСТВО ОБЪЕДИНЕНИЕ ПРОИЗВОДИТЕЛЕЙ ЖЕЛЕЗНОДОРОЖНОЙ ТЕХНИКИ СТАНДАРТ СТО ОРГАНИЗАЦИИ ОПЖТ 15.4СИСТЕМЫ МЕНЕДЖМЕНТА КАЧЕСТВА ДЛЯ ОРГАНИЗАЦИЙ ПРОИЗВОДИТЕЛЕЙ ЖЕЛЕЗНОДОРОЖНОЙ ТЕХНИКИ Рекомендации по обеспечению качества на этапе проектирования и разработки Издание официальное Москва НП ОПЖТ 2011 СТО ОПЖТ 15.4-2011 Предисловие Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. № 184-ФЗ О техническом регулировании, а объекты...»

«, © Мир науки СОДЕРЖАНИЕ НОМЕРА: htpp:// www.mirnauki.ucoz.ru/ E-mail: [email protected]/ International Standard Book Number – ISBN 5-89930-097-3. ВСТУПИТЕЛЬНАЯ СТАТЬЯ Учредитель и издатель – коллектив редакции Юлий Оганисьян Роль государства в развитии малого и среднего бизнеса в России. 3 Редакционный Совет Хохолкова А.А. Современное состояние конкурентоспособности России на глобальном уровне..11 Егорова Н.В. Особенность и экономические аспекты Алисова Любовь Николаевна – управления...»

«История и зарубежный опыт создания и деятельности технопарков и бизнес инкубаторов (инновационных центров). Лазарев В.С. (БНТУ), Демещик Т.А.(РУП Технопарк БНТУ Метолит) Понятие технопарк (научный парк) в странах СНГ появилось сравнительно недавно. Сама идея технопарков почерпнута из рыночной практики Запада. Там данные структуры обеспечивают финансирование и выведение на рынок научных разработок. Такие же цели при создании технопарков преследуются и в Беларуси. Однако, исходя из...»

«Дж. Г. Николлс, А. Р. Мартин, Б. Дж. Валлас, П. А. Фукс ОТ НЕЙРОНА МОЗГУ К Перевод с четвертого английского издания под редакцией П. М. БАЛАБАНА и Р. А. ГИНИАТУЛЛИНА Москва · 2003 ББК 28.70 Настоящее издание осуществлено при финансовой поддержке Российского фонда фундаментальных исследований (проект № 02-04-62007) Николлс Джон, Мартин Роберт, Валлас Брюс, Фукс Пол От нейрона к мозгу / Пер. с англ. П. М. Балабана, А.В.Галкина, Р. А. Гиниатуллина, Р.Н.Хазипова, Л.С.Хируга. — М.: Едиториал УРСС,...»

«.qxd 27.10.2008 17:47 Page 1 ПРИОРИТЕТНЫЙ НАЦИОНАЛЬНЫЙ ПРОЕКТ ОБРАЗОВАНИЕ.qxd 27.10.2008 17:47 Page 2 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ИНСТИТУТ ПРОБЛЕМ ОБРАЗОВАТЕЛЬНОЙ ПОЛИТИКИ ЭВРИКА.qxd 27.10.2008 17:47 Page 3 КОМПЛЕКСНЫЙ ПРОЕКТ МОДЕРНИЗАЦИИ РЕГИОНАЛЬНОЙ СИСТЕМЫ ОБРАЗОВАНИЯ ВОРОНЕЖСКОЙ ОБЛАСТИ ЭВРИКА ИНСТИТУТ ПРОБЛЕМ ОБРАЗОВАТЕЛЬНОЙ ПОЛИТИКИ.qxd 27.10.2008 17:47 Page Брошюра подготовлена и издана в целях реализации проекта Организационно техническое...»

«информационная услуга ТЕМАТИЧЕСКИЕ НОВОСТИ Разработано информационной системой INFOLine Информационная система / Information system Подготавливается на основе мониторинга более 500 СМИ, тысяч компаний и всех федеральных и региональных властей Материалы классифицируются по более 100 тематическим направлениям Оказывается индивидуально для каждого клиента Информационная услуга Тематические новости Мебельный рынок РФ Бюллетень содержит данные за период с 01 марта 2006 по 31 марта 2006 ДЕМО-ВЫПУСК...»

«Содержание: Список сокращений A. КОНТЕКСТ 1. Описание сектора энергетики 2. Стратегия страны. 3. Первоначальная и текущая помощь Казахстану 4. Институциональные рамки Б. Обоснование проекта 1. Проблемы, подлежащие решению 2. Ожидаемое положение к окончанию проекта 3. Основные получатели экономической выгоды 4. Стратегия проекта и организация выполнения 5. Обоснование помощи со стороны ПРООН/ГЭФ 6. Координация проекта 7. Поддержка проекта со стороны Казахстана C. Цели проекта D. Непосредственные...»

«2 1. Цели освоения дисциплины Целями освоения дисциплины Информационные системы в экономике являются: формирование мировоззрения, позволяющего профессионально ориентироваться в быстро меняющейся информационной сфере; приобретение умения использовать информационные технологии для получения, обработки и передачи информации в области экономики; ознакомить студентов с основами проектирования и использования информационных систем, построенных на базе современных автоматизированных технологий...»

«УТВЕРЖДЕНО на совместном заседании Совета учебно-методического объединения основного общего образования Белгородской области и Совета учебно-методического объединения среднего общего образования Белгородской области Протокол от 4 июня 2014 г. № 2 Департамент образования Белгородской области Областное государственное автономное образовательное учреждение дополнительного профессионального образования Белгородский институт развития образования Инструктивно-методическое письмо О преподавании...»

«Консорциум по вопросам прикладных экономических исследований WCER Академия Канадское Ассоциация Институт Рабочий центр народного агентство по университетов экономики хозяйства при экономических международному и колледжей переходного реформ Правительстве развитию Канады периода РФ А. Татаринов Субнациональные счета: проблемы разработки и использование в региональном анализе Москва УДК 332.143:330. ББК 65. Т А. Татаринов. Субнациональные счета: проблемы разработки и использова ние в региональном...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.