pgadmin3/include/frm/frmReport.h
levinsv 4af765213c support PG11
Поддержка PostgreSQL 11 только для Windows
2018-10-10 22:59:25 +05:00

168 lines
5.5 KiB
C++

//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// frmReport.h - The report file dialogue
//
//////////////////////////////////////////////////////////////////////////
#ifndef FRMREPORT_H
#define FRMREPORT_H
#include "dlg/dlgClasses.h"
#include "ctl/ctlListView.h"
#include "ctl/ctlSQLResult.h"
// Class declarations
class frmReport : public pgDialog
{
public:
frmReport(wxWindow *p);
~frmReport();
void SetReportTitle(const wxString &t);
void XmlAddHeaderValue(const wxString &name, const wxString &value);
int XmlCreateSection(const wxString &name);
void XmlSetSectionTableHeader(const int section, const int columns, const wxChar *name, ...);
void XmlAddSectionTableRow(const int section, const int number, const int columns, const wxChar *value, ...);
void XmlAddSectionTableFromListView(const int section, ctlListView *list);
void XmlAddSectionTableFromGrid(const int section, ctlSQLResult *grid);
void XmlSetSectionTableInfo(const int section, const wxString &info)
{
sectionTableInfo[section - 1] = info;
};
void XmlSetSectionSql(int section, const wxString &sql);
void XmlAddSectionValue(const int section, const wxString &name, const wxString &value);
private:
void OnChange(wxCommandEvent &ev);
void OnHelp(wxCommandEvent &ev);
void OnOK(wxCommandEvent &ev);
void OnCancel(wxCommandEvent &ev);
void OnBrowseFile(wxCommandEvent &ev);
void OnBrowseStylesheet(wxCommandEvent &ev);
wxString GetSectionTableColumns(const int section);
wxString GetSectionTableRows(const int section);
wxString GetSectionTable(const int section);
wxString GetSection(const int section);
wxString GetXmlReport(const wxString &stylesheet);
wxString XslProcessReport(const wxString &xml, const wxString &xsl);
wxString GetCssLink(const wxString &file);
wxString GetEmbeddedCss(const wxString &css);
const wxString GetDefaultCss();
wxString GetDefaultXsl(const wxString &css);
wxWindow *parent;
wxString header;
wxArrayString sectionName, sectionData, sectionTableHeader, sectionTableRows, sectionTableInfo, sectionSql;
DECLARE_EVENT_TABLE()
};
///////////////////////////////////////////////////////
// Report Factory base class
///////////////////////////////////////////////////////
class reportBaseFactory : public actionFactory
{
protected:
reportBaseFactory(menuFactoryList *list) : actionFactory(list) {}
wxWindow *StartDialog(frmMain *form, pgObject *obj);
frmMain *GetFrmMain()
{
return parent;
};
virtual void GenerateReport(frmReport *report, pgObject *object) {};
frmMain *parent;
public:
bool CheckEnable(pgObject *obj)
{
return false;
};
};
///////////////////////////////////////////////////////
// Object properties report
///////////////////////////////////////////////////////
class reportObjectPropertiesFactory : public reportBaseFactory
{
public:
reportObjectPropertiesFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object DDL report
///////////////////////////////////////////////////////
class reportObjectDdlFactory : public reportBaseFactory
{
public:
reportObjectDdlFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object Data dictionary report
///////////////////////////////////////////////////////
class reportObjectDataDictionaryFactory : public reportBaseFactory
{
public:
reportObjectDataDictionaryFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object statistics report
///////////////////////////////////////////////////////
class reportObjectStatisticsFactory : public reportBaseFactory
{
public:
reportObjectStatisticsFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object dependencies report
///////////////////////////////////////////////////////
class reportObjectDependenciesFactory : public reportBaseFactory
{
public:
reportObjectDependenciesFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object Dependents report
///////////////////////////////////////////////////////
class reportObjectDependentsFactory : public reportBaseFactory
{
public:
reportObjectDependentsFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
///////////////////////////////////////////////////////
// Object list report
///////////////////////////////////////////////////////
class reportObjectListFactory : public reportBaseFactory
{
public:
reportObjectListFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
bool CheckEnable(pgObject *obj);
void GenerateReport(frmReport *report, pgObject *object);
};
#endif