mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 14:15:49 -06:00
replacee LnCr in frmAwr.cpp
This commit is contained in:
parent
7381793bdb
commit
6f57f45b02
1 changed files with 211 additions and 211 deletions
422
frm/frmAwr.cpp
422
frm/frmAwr.cpp
|
|
@ -1,211 +1,211 @@
|
|||
#include "pgadmin3.h"
|
||||
#include <wx/file.h>
|
||||
#include "frm/frmAwr.h"
|
||||
#include "schema/pgObject.h"
|
||||
#include <wx/stdpaths.h>
|
||||
#include "utils/pgfeatures.h"
|
||||
|
||||
#define btnOK CTRL_BUTTON("wxID_OK")
|
||||
#define rbTypeReport CTRL_RADIOBOX("rbTypeReport")
|
||||
#define cbServer CTRL_COMBOBOX("cbServer")
|
||||
#define cbStartId1 CTRL_COMBOBOX("cbStartId1")
|
||||
#define cbStartId2 CTRL_COMBOBOX("cbStartId2")
|
||||
#define cbEndId1 CTRL_COMBOBOX("cbEndId1")
|
||||
#define cbEndId2 CTRL_COMBOBOX("cbEndId2")
|
||||
|
||||
BEGIN_EVENT_TABLE(frmAwr, pgDialog)
|
||||
|
||||
EVT_RADIOBOX(XRCID("rbTypeReport"), frmAwr::OnChange)
|
||||
EVT_COMBOBOX(XRCID("cbStartId1"), frmAwr::OnChange)
|
||||
EVT_COMBOBOX(XRCID("cbStartId2"), frmAwr::OnChange)
|
||||
EVT_COMBOBOX(XRCID("cbEndId1"), frmAwr::OnChange)
|
||||
EVT_COMBOBOX(XRCID("cbEndId2"), frmAwr::OnChange)
|
||||
EVT_BUTTON(wxID_OK, frmAwr::OnOK)
|
||||
EVT_BUTTON(wxID_CANCEL, frmAwr::OnCancel)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
|
||||
reportAwrFactory::reportAwrFactory(menuFactoryList* list, wxMenu* mnu, ctlMenuToolbar* toolbar) : actionFactory(list) {
|
||||
mnu->Append(id, _("Report AWR"), _("Generate AWR report"));
|
||||
};
|
||||
bool reportAwrFactory::CheckEnable(pgObject* obj)
|
||||
{
|
||||
if (obj)
|
||||
{
|
||||
if ((obj->GetMetaType() == PGM_DATABASE ) && !obj->IsCollection() && obj->GetConnection()->HasFeature(FEATURE_PGPRO_PWR))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
wxWindow* reportAwrFactory::StartDialog(frmMain* form, pgObject* obj) {
|
||||
frmAwr* awr= new frmAwr(form,obj);
|
||||
if (awr->ShowModal() == wxID_OK)
|
||||
{
|
||||
awr->GeterateReport();
|
||||
}
|
||||
delete awr;
|
||||
return 0;
|
||||
}
|
||||
|
||||
frmAwr::frmAwr(frmMain* parent, pgObject* obj)
|
||||
{
|
||||
this->parent = parent;
|
||||
this->obj = obj;
|
||||
SetFont(settings->GetSystemFont());
|
||||
LoadResource((wxWindow *)parent, wxT("frmAwr"));
|
||||
RestorePosition();
|
||||
pgSet* dataSet1 = obj->GetConnection()->ExecuteSet("select server_name from profile.show_servers()");
|
||||
if (dataSet1)
|
||||
{
|
||||
wxString n;
|
||||
while (!dataSet1->Eof())
|
||||
{
|
||||
n = dataSet1->GetVal("server_name");
|
||||
cbServer->Append(n);
|
||||
dataSet1->MoveNext();
|
||||
}
|
||||
delete dataSet1;
|
||||
if (!n.IsEmpty()) {
|
||||
cbServer->SetSelection(0);
|
||||
}
|
||||
|
||||
wxString val;
|
||||
settings->Read(wxT("Awr/Lastserver"), &val, wxEmptyString);
|
||||
if (!val.IsEmpty())cbServer->SetValue(val);
|
||||
cServer = "";
|
||||
}
|
||||
int valint;
|
||||
settings->Read(wxT("Awr/Type"), &valint, 1);
|
||||
rbTypeReport->SetSelection(valint);
|
||||
wxCommandEvent ev;
|
||||
OnChange(ev);
|
||||
|
||||
}
|
||||
|
||||
void frmAwr::OnChange(wxCommandEvent& ev)
|
||||
{
|
||||
// cbQuoteChar->Enable(rbQuoteStrings->GetValue() || rbQuoteAll->GetValue());
|
||||
int type=rbTypeReport->GetSelection();
|
||||
|
||||
wxString server=cbServer->GetValue();
|
||||
if (server != cServer) {
|
||||
pgSet* dataSet1 = obj->GetConnection()->ExecuteSet("select sample,sample_time from profile.show_samples('"+ server +"') order by 1 desc");
|
||||
if (dataSet1)
|
||||
{
|
||||
cbStartId1->Clear();
|
||||
cbStartId2->Clear();
|
||||
cbEndId1->Clear();
|
||||
cbEndId2->Clear();
|
||||
wxArrayString ar;
|
||||
while (!dataSet1->Eof())
|
||||
{
|
||||
int s = dataSet1->GetLong(wxT("sample"));
|
||||
wxString dt= dataSet1->GetVal(wxT("sample_time"));
|
||||
ar.Add(dt);
|
||||
dataSet1->MoveNext();
|
||||
}
|
||||
delete dataSet1;
|
||||
cbStartId1->Insert(ar,0);
|
||||
cbStartId2->Insert(ar, 0);
|
||||
cbEndId2->Insert(ar, 0);
|
||||
cbEndId1->Insert(ar, 0);
|
||||
|
||||
}
|
||||
cServer = server;
|
||||
}
|
||||
cbStartId2->Enable(type > 0);
|
||||
cbEndId2->Enable(type > 0);
|
||||
int s1 = cbStartId1->GetSelection();
|
||||
int e1 = cbEndId1->GetSelection();
|
||||
if (cbStartId1->GetValue() != cstart1 || cbEndId1->GetValue() != cend1 ) {
|
||||
if ((s1 - 1) >= 0 && ((e1 >= s1)|| (e1<0))) cbEndId1->SetSelection(s1 - 1);
|
||||
cstart1 = cbStartId1->GetValue();
|
||||
cend1 = cbEndId1->GetValue();
|
||||
}
|
||||
|
||||
if (cbStartId2->IsEnabled()) {
|
||||
int s1 = cbStartId2->GetSelection();
|
||||
int e1 = cbEndId2->GetSelection();
|
||||
if (cbStartId2->GetValue() != cstart2 || cbEndId2->GetValue() != cend2) {
|
||||
if ((s1 - 1) >= 0 && ((e1 >= s1) || (e1 < 0))) cbEndId2->SetSelection(s1 - 1);
|
||||
cstart2 = cbStartId2->GetValue();
|
||||
cend2 = cbEndId2->GetValue();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
btnOK->Enable(!cbEndId1->GetValue().IsEmpty() );
|
||||
if (type == 1) {
|
||||
btnOK->Enable(!cbEndId2->GetValue().IsEmpty());
|
||||
}
|
||||
}
|
||||
|
||||
void frmAwr::GeterateReport() {
|
||||
wxFileName fn("");
|
||||
|
||||
int type = rbTypeReport->GetSelection();
|
||||
wxString sql;
|
||||
if (type == 0) {
|
||||
sql = "select rep from profile.get_report('" + cbServer->GetValue() + "',tstzrange('" + cbStartId1->GetValue() + "','" + cbEndId1->GetValue() + "')) rep";
|
||||
}
|
||||
else {
|
||||
sql = "select rep from profile.get_diffreport('" + cbServer->GetValue() + "',tstzrange('" + cbStartId1->GetValue() + "','" + cbEndId1->GetValue() + "'),tstzrange('" + cbStartId2->GetValue() + "','" + cbEndId2->GetValue() + "')) rep";
|
||||
}
|
||||
|
||||
//fn="D:\\PostgreSQL\\cmp.html";
|
||||
pgSet* dataSet1 = obj->GetConnection()->ExecuteSet(sql);
|
||||
if (dataSet1)
|
||||
{
|
||||
wxString rep;
|
||||
while (!dataSet1->Eof())
|
||||
{
|
||||
rep = dataSet1->GetVal("rep");
|
||||
dataSet1->MoveNext();
|
||||
}
|
||||
delete dataSet1;
|
||||
fn = wxStandardPaths::Get().GetTempDir() + wxT("\\awr_report.html");
|
||||
fn.MakeAbsolute();
|
||||
wxFile file4(fn.GetFullPath(), wxFile::write);
|
||||
if (!file4.IsOpened())
|
||||
{
|
||||
wxLogError(_("Failed to open file %s."), fn.GetFullPath().c_str());
|
||||
return;
|
||||
}
|
||||
file4.Write(rep, wxConvUTF8);
|
||||
file4.Close();
|
||||
|
||||
#ifdef __WXMSW__
|
||||
wxLaunchDefaultBrowser(fn.GetFullPath());
|
||||
#else
|
||||
wxLaunchDefaultBrowser(wxT("file://") + fn.GetFullPath());
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
void frmAwr::OnOK(wxCommandEvent& ev)
|
||||
{
|
||||
settings->WriteInt(wxT("Awr/Type"), rbTypeReport->GetSelection());
|
||||
|
||||
|
||||
|
||||
if (IsModal())
|
||||
EndModal(wxID_OK);
|
||||
else
|
||||
Destroy();
|
||||
}
|
||||
frmAwr::~frmAwr()
|
||||
{
|
||||
SavePosition();
|
||||
}
|
||||
void frmAwr::OnCancel(wxCommandEvent& ev)
|
||||
{
|
||||
if (IsModal())
|
||||
EndModal(wxID_CANCEL);
|
||||
else
|
||||
Destroy();
|
||||
}
|
||||
#include "pgadmin3.h"
|
||||
#include <wx/file.h>
|
||||
#include "frm/frmAwr.h"
|
||||
#include "schema/pgObject.h"
|
||||
#include <wx/stdpaths.h>
|
||||
#include "utils/pgfeatures.h"
|
||||
|
||||
#define btnOK CTRL_BUTTON("wxID_OK")
|
||||
#define rbTypeReport CTRL_RADIOBOX("rbTypeReport")
|
||||
#define cbServer CTRL_COMBOBOX("cbServer")
|
||||
#define cbStartId1 CTRL_COMBOBOX("cbStartId1")
|
||||
#define cbStartId2 CTRL_COMBOBOX("cbStartId2")
|
||||
#define cbEndId1 CTRL_COMBOBOX("cbEndId1")
|
||||
#define cbEndId2 CTRL_COMBOBOX("cbEndId2")
|
||||
|
||||
BEGIN_EVENT_TABLE(frmAwr, pgDialog)
|
||||
|
||||
EVT_RADIOBOX(XRCID("rbTypeReport"), frmAwr::OnChange)
|
||||
EVT_COMBOBOX(XRCID("cbStartId1"), frmAwr::OnChange)
|
||||
EVT_COMBOBOX(XRCID("cbStartId2"), frmAwr::OnChange)
|
||||
EVT_COMBOBOX(XRCID("cbEndId1"), frmAwr::OnChange)
|
||||
EVT_COMBOBOX(XRCID("cbEndId2"), frmAwr::OnChange)
|
||||
EVT_BUTTON(wxID_OK, frmAwr::OnOK)
|
||||
EVT_BUTTON(wxID_CANCEL, frmAwr::OnCancel)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
|
||||
reportAwrFactory::reportAwrFactory(menuFactoryList* list, wxMenu* mnu, ctlMenuToolbar* toolbar) : actionFactory(list) {
|
||||
mnu->Append(id, _("Report AWR"), _("Generate AWR report"));
|
||||
};
|
||||
bool reportAwrFactory::CheckEnable(pgObject* obj)
|
||||
{
|
||||
if (obj)
|
||||
{
|
||||
if ((obj->GetMetaType() == PGM_DATABASE ) && !obj->IsCollection() && obj->GetConnection()->HasFeature(FEATURE_PGPRO_PWR))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
wxWindow* reportAwrFactory::StartDialog(frmMain* form, pgObject* obj) {
|
||||
frmAwr* awr= new frmAwr(form,obj);
|
||||
if (awr->ShowModal() == wxID_OK)
|
||||
{
|
||||
awr->GeterateReport();
|
||||
}
|
||||
delete awr;
|
||||
return 0;
|
||||
}
|
||||
|
||||
frmAwr::frmAwr(frmMain* parent, pgObject* obj)
|
||||
{
|
||||
this->parent = parent;
|
||||
this->obj = obj;
|
||||
SetFont(settings->GetSystemFont());
|
||||
LoadResource((wxWindow *)parent, wxT("frmAwr"));
|
||||
RestorePosition();
|
||||
pgSet* dataSet1 = obj->GetConnection()->ExecuteSet("select server_name from profile.show_servers()");
|
||||
if (dataSet1)
|
||||
{
|
||||
wxString n;
|
||||
while (!dataSet1->Eof())
|
||||
{
|
||||
n = dataSet1->GetVal("server_name");
|
||||
cbServer->Append(n);
|
||||
dataSet1->MoveNext();
|
||||
}
|
||||
delete dataSet1;
|
||||
if (!n.IsEmpty()) {
|
||||
cbServer->SetSelection(0);
|
||||
}
|
||||
|
||||
wxString val;
|
||||
settings->Read(wxT("Awr/Lastserver"), &val, wxEmptyString);
|
||||
if (!val.IsEmpty())cbServer->SetValue(val);
|
||||
cServer = "";
|
||||
}
|
||||
int valint;
|
||||
settings->Read(wxT("Awr/Type"), &valint, 1);
|
||||
rbTypeReport->SetSelection(valint);
|
||||
wxCommandEvent ev;
|
||||
OnChange(ev);
|
||||
|
||||
}
|
||||
|
||||
void frmAwr::OnChange(wxCommandEvent& ev)
|
||||
{
|
||||
// cbQuoteChar->Enable(rbQuoteStrings->GetValue() || rbQuoteAll->GetValue());
|
||||
int type=rbTypeReport->GetSelection();
|
||||
|
||||
wxString server=cbServer->GetValue();
|
||||
if (server != cServer) {
|
||||
pgSet* dataSet1 = obj->GetConnection()->ExecuteSet("select sample,sample_time from profile.show_samples('"+ server +"') order by 1 desc");
|
||||
if (dataSet1)
|
||||
{
|
||||
cbStartId1->Clear();
|
||||
cbStartId2->Clear();
|
||||
cbEndId1->Clear();
|
||||
cbEndId2->Clear();
|
||||
wxArrayString ar;
|
||||
while (!dataSet1->Eof())
|
||||
{
|
||||
int s = dataSet1->GetLong(wxT("sample"));
|
||||
wxString dt= dataSet1->GetVal(wxT("sample_time"));
|
||||
ar.Add(dt);
|
||||
dataSet1->MoveNext();
|
||||
}
|
||||
delete dataSet1;
|
||||
cbStartId1->Insert(ar,0);
|
||||
cbStartId2->Insert(ar, 0);
|
||||
cbEndId2->Insert(ar, 0);
|
||||
cbEndId1->Insert(ar, 0);
|
||||
|
||||
}
|
||||
cServer = server;
|
||||
}
|
||||
cbStartId2->Enable(type > 0);
|
||||
cbEndId2->Enable(type > 0);
|
||||
int s1 = cbStartId1->GetSelection();
|
||||
int e1 = cbEndId1->GetSelection();
|
||||
if (cbStartId1->GetValue() != cstart1 || cbEndId1->GetValue() != cend1 ) {
|
||||
if ((s1 - 1) >= 0 && ((e1 >= s1)|| (e1<0))) cbEndId1->SetSelection(s1 - 1);
|
||||
cstart1 = cbStartId1->GetValue();
|
||||
cend1 = cbEndId1->GetValue();
|
||||
}
|
||||
|
||||
if (cbStartId2->IsEnabled()) {
|
||||
int s1 = cbStartId2->GetSelection();
|
||||
int e1 = cbEndId2->GetSelection();
|
||||
if (cbStartId2->GetValue() != cstart2 || cbEndId2->GetValue() != cend2) {
|
||||
if ((s1 - 1) >= 0 && ((e1 >= s1) || (e1 < 0))) cbEndId2->SetSelection(s1 - 1);
|
||||
cstart2 = cbStartId2->GetValue();
|
||||
cend2 = cbEndId2->GetValue();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
btnOK->Enable(!cbEndId1->GetValue().IsEmpty() );
|
||||
if (type == 1) {
|
||||
btnOK->Enable(!cbEndId2->GetValue().IsEmpty());
|
||||
}
|
||||
}
|
||||
|
||||
void frmAwr::GeterateReport() {
|
||||
wxFileName fn("");
|
||||
|
||||
int type = rbTypeReport->GetSelection();
|
||||
wxString sql;
|
||||
if (type == 0) {
|
||||
sql = "select rep from profile.get_report('" + cbServer->GetValue() + "',tstzrange('" + cbStartId1->GetValue() + "','" + cbEndId1->GetValue() + "')) rep";
|
||||
}
|
||||
else {
|
||||
sql = "select rep from profile.get_diffreport('" + cbServer->GetValue() + "',tstzrange('" + cbStartId1->GetValue() + "','" + cbEndId1->GetValue() + "'),tstzrange('" + cbStartId2->GetValue() + "','" + cbEndId2->GetValue() + "')) rep";
|
||||
}
|
||||
|
||||
//fn="D:\\PostgreSQL\\cmp.html";
|
||||
pgSet* dataSet1 = obj->GetConnection()->ExecuteSet(sql);
|
||||
if (dataSet1)
|
||||
{
|
||||
wxString rep;
|
||||
while (!dataSet1->Eof())
|
||||
{
|
||||
rep = dataSet1->GetVal("rep");
|
||||
dataSet1->MoveNext();
|
||||
}
|
||||
delete dataSet1;
|
||||
fn = wxStandardPaths::Get().GetTempDir() + wxT("\\awr_report.html");
|
||||
fn.MakeAbsolute();
|
||||
wxFile file4(fn.GetFullPath(), wxFile::write);
|
||||
if (!file4.IsOpened())
|
||||
{
|
||||
wxLogError(_("Failed to open file %s."), fn.GetFullPath().c_str());
|
||||
return;
|
||||
}
|
||||
file4.Write(rep, wxConvUTF8);
|
||||
file4.Close();
|
||||
|
||||
#ifdef __WXMSW__
|
||||
wxLaunchDefaultBrowser(fn.GetFullPath());
|
||||
#else
|
||||
wxLaunchDefaultBrowser(wxT("file://") + fn.GetFullPath());
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
void frmAwr::OnOK(wxCommandEvent& ev)
|
||||
{
|
||||
settings->WriteInt(wxT("Awr/Type"), rbTypeReport->GetSelection());
|
||||
|
||||
|
||||
|
||||
if (IsModal())
|
||||
EndModal(wxID_OK);
|
||||
else
|
||||
Destroy();
|
||||
}
|
||||
frmAwr::~frmAwr()
|
||||
{
|
||||
SavePosition();
|
||||
}
|
||||
void frmAwr::OnCancel(wxCommandEvent& ev)
|
||||
{
|
||||
if (IsModal())
|
||||
EndModal(wxID_CANCEL);
|
||||
else
|
||||
Destroy();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue