Crystal Smart Viewer

  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Crystal Smart Viewer as PDF for free.

More details

  • Words: 645
  • Pages: 7
12-01-2009

Crystal Smart Viewer Ligação de uma aplicação MCF a um relatório do Crystal Reports

Prof. Nuno Ramalho

Prof. Nuno Ramalho

Crystal Smart Viewer Ligação de uma aplicação MCF a um relatório do Crystal Reports A utilização do Crystal Smart Viewer como interface de visualização de relatórios produzidos no Crystal Reports possibilita o desenvolvimento de aplicações complexas de cliente/servidor ou multi-camada para o acesso, preparação e visualização de dados existentes localmente ou através de uma infra-estrutura de rede.

Integração do Smart Viewer ActiveX control numa aplicação MFC Neste capítulo é demonstrada a criação de uma aplicação MFC com o Microsoft Visual C++ 2008. A máquina utilizada tem como Sistema Operativo o Microsoft Windows XP SP3 e uma instalação do Crystal Reports XI Release 2. A criação de uma aplicação MFC para a apresentação de um relatório do Crystal Reports pode ser feita da seguinte forma: 1. Criação de um projecto MFC Aplication baseado em caixas de diálogo (Dialog Based). 2. Inserção de um controlo ActiveX para o Crystal Reports (Crystal ActiveX Report Viewer Control) 3. Integração das classes CrystalReportViewer11 e CRVTrackCursorInfo através das livrarias do Crystal Report Designer Component Automation Server, também conecido como RDC – Report Designer Component (Automation server component - Craxdrt.dll e Crystal Report Viewer control - Crviewer.dll.) 4. Programação da aplicação MFC.

Criação do projecto MFC Aplication, Dialog Based Começamos por criar um novo projecto: File -> New Project e seleccionamos MFC Aplication.

1

Prof. Nuno Ramalho

Configuramos o nosso projecto como Dialog Based.

Inserção do Crystal ActiveX Report Viewer Control Para a inserir o controlo ActieX Report Viewer do Crystal Reports podemos clicar com o botão direito do rato na nossa caixa de dialogo e e escolher a opção

2

Prof. Nuno Ramalho

Escolhemos o Crystal ActiveX Report Viewer Control 11.5

Integração das classes CrystalReportViewer11 e CRVTrackCursorInfo através das livrarias do RDC Para adicionar as classes necessárias podemos clicar com o botão direito do rato no nosso projecto e escolher a opção Add class

3

Prof. Nuno Ramalho

Adicionamos uma MFC Class From ActiveX Control

Vamos adicionar as classes CrystalReportViewer11 e CRVTrackCursorInfo através da livraria CRViewer.dll (C:\Programas\Business Objects\Common\3.5\crystalreportviewers115\ActiveXControls\ CRViewer.dll)

4

Prof. Nuno Ramalho

Adicionamos a livraria craxdrt.dll. Podemos fazê-lo no ficheiro header stdax.h. Esta livraria expõe a interface IApplication. A palavra reservada #import adiciona “Prt” ao final do nome de cada interface para indicar que transformou as interfaces em smart pointers. Os smart pointers facilitam-nos, na medida em que fazem a gestão do ciclo de vida dos objectos.

Programação da aplicação MFC. Neste exemplo vamos criar na nossa aplicação um botão para accionar a visualização do relatório. O botão criado tem o identificador IDC_BUTTON_MOSTRA e a função associada ao clique OnBnClickedButtonMostra() No ficheiro header da nossa aplicação (MFCMostraRelatorioCRDlg.h) incluímos a classe CCrystalReportViewer11 e criamos o objecto m_Viewer que representa uma instância do Smart Viewer control do Crystal Reports. Utilizamos a interface IApplicationPtr para declarar um objecto da aplicação (m_Application). Criamos ainda os objectos m_Report do tipo IReportPtr.

// MFCMostraRelatorioCRDlg.h : header file // ////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// #include "CCrystalReportViewer11.h" ////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// #pragma once // CMFCMostraRelatorioCRDlg dialog class CMFCMostraRelatorioCRDlg : public CDialog { // Construction public: CMFCMostraRelatorioCRDlg(CWnd* pParent = NULL);

// standard constructor

5

Prof. Nuno Ramalho

// Dialog Data enum { IDD = IDD_MFCMOSTRARELATORIOCR_DIALOG }; ////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// CCrystalReportViewer11 m_Viewer; ////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support // Implementation protected: HICON m_hIcon; ////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// IApplicationPtr IReportPtr VARIANT

m_Application; m_Report; dummy;

////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// // Generated message map functions virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() public: afx_msg void OnBnClickedButtonMostra(); };

No ficheiro *Dlg.cpp passamos os dados provenientes de m_Viewer para o nosso controlo de ActiveX IDC_ACTIVEXREPORTVIEWER1 ... ... ... void CMFCMostraRelatorioCRDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_ACTIVEXREPORTVIEWER1, m_Viewer); } ... ... ...

Na função associada ao nosso botão criamos o seguinte código void CMFCMostraRelatorioCRDlg::OnBnClickedButtonVer() { m_Application.CreateInstance("CrystalRuntime.Application"); m_Report = m_Application->OpenReport("C:\\MovimentosFornecedor1.rpt"); m_Viewer.put_ReportSource(m_Report); m_Viewer.ViewReport(); }

6

Related Documents

Crystal Smart Viewer
December 2019 2
Viewer
June 2020 8
Viewer
November 2019 19
Crystal
June 2020 26
Viewer Readme.txt
June 2020 4