Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

CAccessReports - Класс для печати и просмотра отчётов MS Access


Автор: Tom Archer.

Компилятор: Visual C++ 6.

Этот класс (CAccessReports) был создан для тех, у кого есть потребность в использовании 1) движка базы данных MS Access и 2) движка MS Access из под Visual C++ приложений. Класс CAccessReports использует объекты Access Automation для открытия специфической базы, запуска отчёта (в пределах Access), печати отчёта и сохранения базы Access в HTML формате, чтобы её можно было просматривать в приложении Visual C++.

Инициализация объекта CAccessReports

Как инициализировать объект CAccessReports, зависит от того, как Вы планируете использовать его в Вашем приложении. Первый аргумент CAccessReports - это полное имя файла базы данных. Второй аргумент указывает - хотите ли вы, чтобы класс CAccessReports предварительно подгружал все имена отчётов. В примере подразумевается, что Вам нужны все имена отчётов, и приложение отобразит весь список отчётов. Иначе, если Вам понадобятся для запуска, печати или отображения определённые, то второй аргумент надо поставить в FALSE.

// Объект CAccessReports загружает все имена отчётов
 
 CAccessReports accessReports(YOUR_ACCESS_DATABASE, TRUE);
 
 
 
 // Простое присоединение к указанной базе Access
 
 CAccessReports accessReports(YOUR_ACCESS_DATABASE, FALSE);
 
 

Получение списка отчётов из базы данных Access

Если Вы указываете в качестве второго аргумента TRUE в конструкторе CAcessReport, то Вам необходимо получить список отчётов для данной базы данных Access. Вот пример простого цикла для получения и отображения всех имён отчётов.

CAccessReports accessReports(YOUR_ACCESS_DATABASE, TRUE);
 
 
 
 for (int i = 0; i < accessReports.m_reports.GetSize(); i++)
 
 {
 
  AfxMessageBox(accessReports.m_reports[i]);
 
 }
 
 

Запуск отчёта

Для этого используется функция-член RunReport.

CAccessReports accessReports(YOUR_ACCESS_DATABASE, FALSE);
 
 accessReports.RunReport(YOUR_REPORT_NAME);
 
 

Печать отчёта

Функция PrintReport содержит только один аргумент - имя отчёта. Эта функция вызывает RunReport и затем использует Automation для печати отчёта.

CAccessReports accessReports(YOUR_ACCESS_DATABASE, FALSE);
 
 accessReports.PrintReport(YOUR_REPORT_NAME);
 
 

Отображение отчёта (Visual C++ 6.0)

Access Automation не даёт возможности выводить отчёт данное окно. Однако она позволяет запустить, а затем сохранить отчёт в HTML формате. В нижеприведённом примере, CAccessReportView наследуется от класса CHtmlView.

void CAccessReportView::OnInitialUpdate()
 
 {
 
  CHtmlView::OnInitialUpdate();
 
 
 
  CAccessReports accessReports(YOUR_ACCESS_DATABASE, FALSE);
 
  accessReports.SaveAsHtml(YOUR_REPORT_NAME, DESTINATION_FOLDER);
 
  Navigate2(FULLY_QUALIFIED_FILE_NAME, NULL, NULL);
 
 }
 
 

Замечание

  • 1. Access Automation не может использоваться для получения всего списка отчётов для базы данных Access. Следовательно, если Вы указываете во втором аргументе TRUE конструктора CAccessReports , то класс пытается использовать классы MFC DAO для доступа к таблице msysobjects указанной базы данных. Чтобы разрешить это, Вы должны дать пользователю Admin права "чтения" таблицы msysobjects указанной базы. Если нет необходимости в получении списка отчётов, то данное ограничение не нужно принимать во внимание.

Скачать исходник - 38 KB

Скачать демонстрационный проект - 60 KB




<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS