При выполнении в лабораторной работе упражнения №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" или один из зависимых от них компонентов. Не удается найти указанный файл. Делаю все пунктуально. В чем может быть проблема? |
Создание отчетов Crystal Reports.NET в графическом режиме
Введение
Все необходимые для выполнения данной работы программы можно найти в прилагаемом каталоге.
Генератор отчетов Crystal Reports был создан компанией Crystal Decisions в 1992 году и разрекламирован как "первый в мире генератор отчетов для Windows". С тех пор этот программный продукт интенсивно развивается и существует как самостоятельный пакет, так и в виде интегрированной в Visual Studio .NET библиотеки. В настоящее время этой работой занимается компания Business Objects (может переименовалась, а может другая, хотя вряд ли - миллионы продаж лицензий в год по всему миру, кто же бросит такой бизнес!). По соглашению с изготовителем компания Microsoft стандартизовала этот пакет в качестве машины формирования отчетов по технологии Crystal Reports .NET, которая включает в себя:
- Встроенный контструктор отчетов Report Designer, которым можно пользоваться при построении файлов отчетов ( .rpt ), а затем встраивать их в разрабатываемое приложение
- Модуль просмотра Windows Forms Viewer можно использовать для предварительного просмотра отчетов, встроенных в приложение, с гибким управлением представления содержимого отчета
- Модуль просмотра Web Forms Viewer той же функциональность, но применительно к Web-приложениям
- Машина формирования отчетов Report Engine (набор классов библиотек CrystalDecisions.CrystalReports.Engine.dll, CrystalDecisions.Shared.dll и др.) дает возможность программировать даже самые тонкие аспекты отчетов перед передачей их в модуль просмотра или печати
- Система планирования и распределения отчетов Crystal Enterprise обеспечивает возможность рассылки отчетов большому количеству пользователей
Пакет Crystal Reports для Visual Studio .NET является мощным дополнением к комплекту инструментальных средств самой среды разработки. При помощи конструктора отчетов Reports Designer можно создавать и модифицировать отчеты в графическом режиме самой Visual Studio .NET, а с помощью встроенных модулей легко интегрировать отчеты в проект и получать нужную функциональность Windows- или Web-приложения.
Технология Crystal Reports.NET гармонично связана с ADO.NET. При их совместной работе доступ к данным заметно упрощается. Вместо того, чтобы изобретать способы доступа к различным источникам данных, Crystal Reports .NET может просто обратиться к объекту DataSet (к типизированному или нетипизированному) из ADO.NET как к источнику для генерации любого заданного отчета.
Различают отчеты двух типов по способу выборки данных:
- Pull (выталкивание) - машина Crystal Reports сама связывается с БД и выталкивает из нее данные в отчет согласно своим настройкам по выборке данных
- Push (заталкивание) - с БД связывается ADO-приложение своими средствами доступа к данным, выбирает нужные данные по своим критериям, а машина Crystal Reports уже готовые данные заталкивает в отчет и обеспечивает только удобное представление данных и их печать
Вначале мы познакомимся с выборкой и представлением данных средствами Crystal Reports, т.е. будем использовать Pull -режим. В дальнейшем мы рассмотрим способы программирования отчетов на уровне кода C# в самом приложении, а машину Crystal Reports будем использовать для представления и печати уже готовых данных в Push -режиме.
Примеры приложений с Pull -отчетами можно найти в архиве, поставляемом вместе с Visual Studio .NET, который находится в каталоге C:\Program Files\Microsoft Visual Studio 9.0\Crystal Reports\Samples\En\Code
Здесь же содержится свободно распространяемый пакет самостоятельного продукта Crystal Reports, в котором можно готовить отчеты отдельно, а затем включать их в приложение, которое может и не использовать возможности ADO.NET. Во всех примерах используется БД xtreme.mdb (учебная БД компании по производству горных велосипедов) формата Access, которая содержит списки заказчиков, заказов, продукции, поставщиков и служащих. Эта база управляется средствами ADO.NET и Crystal Reports .NET и не требует установки системы Access. Схема БД xtreme.mdb приведена на рисунке
В данной лабораторной работе мы будем пользоваться прежней учебной базой Northwind.mdb и изредка новой учебной базой xtreme.mdb, применяемой в примерах Crystal Reports. БД xtreme.mdb должна быть уже зарегистрирована в операционной системе автоматически после установки Visual Studio 2008. Это можно легко проверить, выполнив команду Настройка/Панель управления/Администрирование/Источники данных (ODBC). Окно настроек System DSN (Data Source Name) должно содержать имя БД xtreme.mdb.
- Если это не так, щелкните на кнопке Добавить, из списка выберите драйвер *.mdb после чего в следующем окне найдите БД xtreme.mdb (прилагается в каталоге Source ) и зарегистрируйте ее
Упражнение 1. Создание отчета Crystal Reports с помощью мастера Standard Report Creation Wizard
Мало кто, даже из опытных пользователей, создает приложение, в том числе и отчет, с нуля. Как правило, для этого в среде разработки предусмотрено множество мастеров, которые являются путеводителями в рамках всего процесса визуального проектирования. В данном упражнении мы познакомимся с мастером Standard Report Creation Wizard. Но в Crystal Reports есть много и вспомогательных инструметов, которые называются экспертами.
- Создайте новый проект с именем WinReport1 в решении ADO по следующему шаблону
- Задайте заголовок формы Упражнение 1
- Командой Project/Add New Item добавьте к проекту новый отчет Crystal Report, настроив окно мастера следующим образом
Откроется новое окно галлереи отчетов Crystal Reports Gallery.
Здесь мы видим три переключателя, объединенные в группу Create a New Crystal Report Document, а под ней - список предлагаемых экспертов. Переключатели олицетворяют выбираемый метод проектирования отчета и обозначают следующее:
- Using the Report Wizard - создание отчета с использованием мастера, подходит для большинства программистов. Далее отчет можно доработать с помощью конструктора (дизайнера) отчетов
- As a Blank Report - создание отчета с нуля как пустого, продходит для опытных программистов (при выборе этого метода эксперты становятся недоступными). Отчет разрабатывается только средствами дизайнера отчетов
- From an Existing Report - создается новый отчет на основе уже существующего отчета (эксперты недоступны) и может быть доработан с помощью дизайнера отчетов
Если принято решение воспользоваться мастером отчетов, то далее нужно выбрать один из трех предлагаемых экспертов:
- Standard - эксперт стандартных отчетов, используется чаще других и является наиболее универсальным.
- Cross-Tab - отчет с перекрестными ссылками
- Mail Label - применяется для вывода почтовых этикеток
В данном упражнении мы будем использовать эксперт Standard.
- Выберите метод Using the Report Wizard и эксперт Standard и щелкните на кнопке OK
Мастер проведет разработчика через несколько вкладок. На каждой вкладке кнопка Finish мастера создания отчетов всегда доступна и его работу на любой вкладке можно прервать. Но не будем торопиться ее нажимать, а пройдем все предлагаемые вкладки, иначе несделанную автоматизированную работу по настройке отчета придется потом доделывать вручную в графическом режиме дизайнера отчетов Report Designer.