Опубликован: 05.08.2010 | Уровень: специалист | Доступ: свободно
Самостоятельная работа 7:

Создание отчетов Crystal Reports.NET в графическом режиме

Вкладка Data

Следующее действие при работе с экспертом заключается в выборе источника данных для отчета.

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

  1. Project Data - наборы данных, которые используются в проекте приложения
  2. Current Connections - источники, с которыми установлено соединение в приложении
  3. Favorites - предподчтимые источники данных
  4. History - ранее используемые источники данных
  5. Create New Connection - иные способы выбора источников
  • Как один из множества вариантов, дважды щелкните на узле ODBC (RDO)/Make New Connection и в появившемся окне выберите Xtreme Sample Database 2008, как показано на рисунке


Щелчок на кнопке Finish окна Data Source Selection завершит процедуру выбора источника, откроет его соединение с мастером в режиме проектирования и вновь вернет нас к вкладке Data мастера Standard Report Creation Wizard. Если пройти в этом окне по кнопке Next, то появится вкладка выбора стилей генерации отчета

  • Оставьте стиль по умолчанию Standard и вернитесь на вкладку Data мастера Standard Report Creation Wizard
  • Раскройте узел соединения с выбранным источником данных Xtreme Sample Database 2008 и переместите в список выбора Selected Tables две таблицы Customer и Orders

Через контекстное меню для узла Tables можно вызвать командой Options окно настроек параметров работы с источником данных. Оно позволяет настроить параметры отображения информации об источнике данных в данном конкретном случае: отфильтровать какие-то таблицы или представления, показать служебные таблицы и т.п.

Вкладка Link

Теперь, если пройти по ссылке Next к следующей вкладке мастера, то это уже будет вкладка Link, которая отображает связи или дает возможность их установить между полями таблиц.

  • В данном упражнении нам нужна только одна таблица, поэтому вернитесь на вкладку Data и удалите (верните) из списка Selected Tables таблицу Orders, оставив только одну таблицу Customer

Вкладка Fields

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

  • Перейдите на следующую вкладку Fields мастера, раскройте узел полей таблицы Customer и переместите в список Fields to Display пять полей, как показано на рисунке

Именно эти поля БД будут участвовать в формировании отчета.

Вкладка Grouping

После щелчка на кнопке Next появится следующая вкладка Grouping мастера, в которой можно часть полей отсортировать или сгруппировать.

  • Выберите в списке слева поля для группировки и после перемещения их в список справа установите порядок следования в соответствии с рисунком

Обратите внимание на раскрывающийся список справа внизу, который позволяет изменить порядок сортировки данных в выбранных полях внутри каждой группы при их выводе в отчет ( in ascending order - в порядке возрастания, in descending order - в порядке убывания).

Алексей Бабушкин
Алексей Бабушкин

При выполнении в лабораторной работе упражнения №1 , а именно при выполнении нижеследующего кода:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using Microsoft.Xna.Framework.Graphics;

   

namespace Application1

{

    public partial class MainForm : Form

    {

        // Объявим поле графического устройства для видимости в методах

        GraphicsDevice device;

   

        public MainForm()

        {

            InitializeComponent();

   

            // Подпишемся на событие Load формы

            this.Load += new EventHandler(MainForm_Load);

   

            // Попишемся на событие FormClosed формы

            this.FormClosed += new FormClosedEventHandler(MainForm_FormClosed);

        }

   

        void MainForm_FormClosed(object sender, FormClosedEventArgs e)

        {

            //  Удаляем (освобождаем) устройство

            device.Dispose();

            // На всякий случай присваиваем ссылке на устройство значение null

            device = null;       

        }

   

        void MainForm_Load(object sender, EventArgs e)

        {

            // Создаем объект представления для настройки графического устройства

            PresentationParameters presentParams = new PresentationParameters();

            // Настраиваем объект представления через его свойства

            presentParams.IsFullScreen = false; // Включаем оконный режим

            presentParams.BackBufferCount = 1;  // Включаем задний буфер

                                                // для двойной буферизации

            // Переключение переднего и заднего буферов

            // должно осуществляться с максимальной эффективностью

            presentParams.SwapEffect = SwapEffect.Discard;

            // Устанавливаем размеры заднего буфера по клиентской области окна формы

            presentParams.BackBufferWidth = this.ClientSize.Width;

            presentParams.BackBufferHeight = this.ClientSize.Height;

   

            // Создадим графическое устройство с заданными настройками

            device = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, DeviceType.Hardware,

                this.Handle, presentParams);

        }

   

        protected override void OnPaint(PaintEventArgs e)

        {

            device.Clear(Microsoft.Xna.Framework.Graphics.Color.CornflowerBlue);

   

            base.OnPaint(e);

        }

    }

}

Выбрасывается исключение:

Невозможно загрузить файл или сборку "Microsoft.Xna.Framework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" или один из зависимых от них компонентов. Не удается найти указанный файл.

Делаю все пунктуально. В чем может быть проблема?

Юрий Макушин
Юрий Макушин
Россия, Москва, РЭА им. Плеханова, 2004