Add draw plot XY series

Для результатов запроса, можно построить график по трём колонкам:
L  | X | Y
----------
L1 | x1| y1
L1 | x2| y2
L2 | x3| y3
L2 | x4| y4
...

Колонки должны быть отсортированы по L,X
Типы колонок:
L - текст (это легенда серии данных)
X - дата или числа
Y - числа
График строится по четырём и более колонкам (серии данных вертикальные):
 X | L1| L2| ...| Lx
--------------------
 x1| y1| y5|....| y.
 x2| y2| y6|....| y.
 x3| y3| y7|....| y.
 x4| y4| y8|....| y.

Серии данных располагаются вертикально. Легенда это заголовок столбца
Колонка Х общая для всех серий.
This commit is contained in:
lsv 2022-05-25 17:37:39 +05:00
parent 8f8bd98d2c
commit 1431b1abdb
12 changed files with 5748 additions and 3 deletions

View file

@ -124,6 +124,7 @@ BEGIN_EVENT_TABLE(frmQuery, pgFrame)
EVT_MENU(MNU_COPY_WHERELIST, frmQuery::OnCopy_WhereList)
EVT_MENU(MNU_CLEAR_FILTER, frmQuery::OnClear_Filter)
EVT_MENU(MNU_CHECK_COLUMN_DATE, frmQuery::OnCheck_Column_Date)
EVT_MENU(MNU_AUTOCOLSPLOT, frmQuery::OnAutoColsPlot)
EVT_MENU(MNU_FIND, frmQuery::OnSearchReplace)
EVT_MENU(MNU_UNDO, frmQuery::OnUndo)
EVT_MENU(MNU_REDO, frmQuery::OnRedo)
@ -2171,14 +2172,16 @@ void frmQuery::OnLabelRightClick(wxGridEvent &event)
xmenu->Append(MNU_COPY, _("&Copy"), _("Copy selected cells to clipboard."));
xmenu->Append(MNU_PASTE, _("&Paste"), _("Paste data from the clipboard."));
xmenu->Append(MNU_DELETE, _("&Delete"), _("Delete selected rows."));
xmenu->Append(MNU_AUTOCOLSPLOT, _("Draw plot LXY or XYYY..."), _("Draw plot LXY or XYYY..."));
xmenu->Append(MNU_SUMMARY_COL, _("Summary"), _("Summary selected cells."));
xmenu->Append(MNU_CHECK_COLUMN_DATE, _("Check the sequence of dates"), _("Check the sequence of dates"));
xmenu->Append(MNU_COPY_INSERT, _("Copy Insert format"), _("Copy Insert format."));
xmenu->Append(MNU_COPY_INLIST, _("IN LIST format copy"), _("Copy In list format."));
xmenu->Append(MNU_COPY_WHERELIST, _("WHERE LIST format copy"), _("Copy where list format."));
xmenu->Append(MNU_CLEAR_FILTER, _("Clear filter"), _("Clear filter"));
xmenu->Enable(MNU_CHECK_COLUMN_DATE, sqlResult->GetSelectedCols().GetCount() > 0);
bool selcol = sqlResult->GetSelectedCols().GetCount() > 0;
xmenu->Enable(MNU_CHECK_COLUMN_DATE, selcol);
xmenu->Enable(MNU_AUTOCOLSPLOT, sqlResult->IsSelection());
xmenu->Enable(MNU_SUMMARY_COL, sqlResult->IsSelection());
xmenu->Enable(MNU_COPY_INLIST, sqlResult->IsSelection());
xmenu->Enable(MNU_COPY_WHERELIST, sqlResult->IsSelection());
@ -2257,6 +2260,16 @@ void frmQuery::OnCheck_Column_Date(wxCommandEvent& ev)
}
}
void frmQuery::OnAutoColsPlot(wxCommandEvent& ev)
{
// if (currentControl() == sqlResult)
{
frmQuery* q = this;
wxString s = sqlResult->AutoColsPlot(0, q);
SetStatusText(s, STATUSPOS_MSGS);
}
}
void frmQuery::OnSummary_Column(wxCommandEvent &ev)
{
// if (currentControl() == sqlResult)