Add "Copy list columns header" context command SQL Result

Добавлено копирование в буфер обмена списка имен и типов колонок результата запроса.
This commit is contained in:
lsv 2022-07-13 16:34:27 +05:00
parent 8c123b0550
commit 0ec8c60a68
6 changed files with 51 additions and 3 deletions

View file

@ -332,6 +332,36 @@ wxString ctlSQLResult::OnGetItemText(long item, long col) const
}
return wxEmptyString;
}
wxString ctlSQLResult::CopySelColumnNameType()
{
size_t i;
wxString ss = wxEmptyString;
if (GetSelectedCols().GetCount()) {
wxArrayInt cols = GetSelectedCols();
int err = 0;
int noformat = 0;
int dtType = -1;
//AppendColumnHeader(str, cols);
//str.Append(GetExportLine(i, cols));
for (size_t col = 0; col < cols.Count(); col++)
{
int cl = cols[col];
bool isDt = false;
wxString colName = colNames.Item(cl);
wxString colType = colTypes.Item(cl);
if (!ss.IsEmpty()) ss.Append(", ");
ss.Append(colName + " " + colType);
}
}
if (wxTheClipboard->Open())
{
wxTheClipboard->SetData(new wxTextDataObject(ss));
wxTheClipboard->Close();
}
return ss;
}
wxString ctlSQLResult::CheckSelColumnDate()
{
size_t i;

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_COPY_LISTCOLTYPE, frmQuery::OnCopy_NameTypeCols)
EVT_MENU(MNU_AUTOCOLSPLOT, frmQuery::OnAutoColsPlot)
EVT_MENU(MNU_FIND, frmQuery::OnSearchReplace)
EVT_MENU(MNU_UNDO, frmQuery::OnUndo)
@ -2172,18 +2173,23 @@ 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->AppendSeparator();
xmenu->Append(MNU_COPY_INSERT, _("Copy Insert format"), _("Copy Insert format."));
xmenu->Append(MNU_COPY_LISTCOLTYPE, _("List columns header"), _("Copy list columns header"));
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->AppendSeparator();
xmenu->Append(MNU_AUTOCOLSPLOT, _("Draw plot LY(bar) or LXY or XYYY..."), _("Draw plot LY(bar) 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"));
bool selcol = sqlResult->GetSelectedCols().GetCount() > 0;
xmenu->Enable(MNU_CHECK_COLUMN_DATE, selcol);
xmenu->Enable(MNU_COPY_LISTCOLTYPE, 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());
if ((rows.GetCount()))
@ -2251,6 +2257,15 @@ void frmQuery::OnClear_Filter(wxCommandEvent &ev)
isfilterresult=false;
}
}
void frmQuery::OnCopy_NameTypeCols(wxCommandEvent& ev)
{
// if (currentControl() == sqlResult)
{
wxString s = sqlResult->CopySelColumnNameType();
SetStatusText(s, STATUSPOS_MSGS);
}
}
void frmQuery::OnCheck_Column_Date(wxCommandEvent& ev)
{
// if (currentControl() == sqlResult)

View file

@ -50,6 +50,7 @@ public:
wxString SummaryColumn();
wxString AutoColsPlot(int flags,frmQuery *parent);
wxString CheckSelColumnDate();
wxString CopySelColumnNameType();
void ClearFilter();
bool IsColText(int col);
bool hasRowNumber()

View file

@ -218,6 +218,7 @@ private:
void OnCopy_InList(wxCommandEvent& event);
void OnCopy_WhereList(wxCommandEvent& event);
void OnClear_Filter(wxCommandEvent &event);
void OnCopy_NameTypeCols(wxCommandEvent& ev);
void OnCheck_Column_Date(wxCommandEvent& ev);
void OnAutoColsPlot(wxCommandEvent& ev);
void OnSearchReplace(wxCommandEvent &event);

View file

@ -78,6 +78,7 @@ enum
MNU_SUMMARY_COL,
MNU_COPY_INSERT,
MNU_COPY_INLIST,
MNU_COPY_LISTCOLTYPE,
MNU_COPY_WHERELIST,
MNU_CLEAR_FILTER,
MNU_CHECK_COLUMN_DATE,

Binary file not shown.