mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-26 11:17:57 +08:00
#444: turn remaining quick filter menu items into TAction's, with customizable shortcuts only for the most important ones
This commit is contained in:
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: HeidiSQL\n"
|
||||
"POT-Creation-Date: 2012-11-05 21:40\n"
|
||||
"PO-Revision-Date: 2020-04-14 17:46+0200\n"
|
||||
"PO-Revision-Date: 2020-04-21 18:03+0200\n"
|
||||
"Last-Translator: Ansgar Becker <anse@heidisql.com>\n"
|
||||
"Language-Team: English (http://www.transifex.com/projects/p/heidisql/language/en/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -2512,6 +2512,66 @@ msgstr "More values ..."
|
||||
msgid "Table too large (>%s), avoiding long running SELECT query"
|
||||
msgstr "Table too large (>%s), avoiding long running SELECT query"
|
||||
|
||||
msgid "Quick filter: Column = Focused"
|
||||
msgstr "Quick filter: Column = Focused"
|
||||
|
||||
msgid "Quick filter: Column != Focused"
|
||||
msgstr "Quick filter: Column != Focused"
|
||||
|
||||
msgid "Quick filter: Column > Focused"
|
||||
msgstr "Quick filter: Column > Focused"
|
||||
|
||||
msgid "Quick filter: Column < Focused"
|
||||
msgstr "Quick filter: Column < Focused"
|
||||
|
||||
msgid "Quick filter: Column LIKE Focused%"
|
||||
msgstr "Quick filter: Column LIKE Focused%"
|
||||
|
||||
msgid "Quick filter: Column LIKE %Focused"
|
||||
msgstr "Quick filter: Column LIKE %Focused"
|
||||
|
||||
msgid "Quick filter: Column LIKE %Focused%"
|
||||
msgstr "Quick filter: Column LIKE %Focused%"
|
||||
|
||||
msgid "Quick filter: Column = Prompt"
|
||||
msgstr "Quick filter: Column = Prompt"
|
||||
|
||||
msgid "Quick filter: Column != Prompt"
|
||||
msgstr "Quick filter: Column != Prompt"
|
||||
|
||||
msgid "Quick filter: Column > Prompt"
|
||||
msgstr "Quick filter: Column > Prompt"
|
||||
|
||||
msgid "Quick filter: Column < Prompt"
|
||||
msgstr "Quick filter: Column < Prompt"
|
||||
|
||||
msgid "Quick filter: Column LIKE %Prompt%"
|
||||
msgstr "Quick filter: Column LIKE %Prompt%"
|
||||
|
||||
msgid "Quick filter: Column IS NULL"
|
||||
msgstr "Quick filter: Column IS NULL"
|
||||
|
||||
msgid "Quick filter: Column IS NOT NULL"
|
||||
msgstr "Quick filter: Column IS NOT NULL"
|
||||
|
||||
msgid "Quick filter: Column = Clipboard"
|
||||
msgstr "Quick filter: Column = Clipboard"
|
||||
|
||||
msgid "Quick filter: Column != Clipboard"
|
||||
msgstr "Quick filter: Column != Clipboard"
|
||||
|
||||
msgid "Quick filter: Column > Clipboard"
|
||||
msgstr "Quick filter: Column > Clipboard"
|
||||
|
||||
msgid "Quick filter: Column < Clipboard"
|
||||
msgstr "Quick filter: Column < Clipboard"
|
||||
|
||||
msgid "Quick filter: Column LIKE %Clipboard%"
|
||||
msgstr "Quick filter: Column LIKE %Clipboard%"
|
||||
|
||||
msgid "Quick filter: Column IN (Clipboard)"
|
||||
msgstr "Quick filter: Column IN (Clipboard)"
|
||||
|
||||
#. MainForm..popupSqlLog..Copylinetonewquerytab1..Caption
|
||||
#: main.dfm:9000
|
||||
msgid "Copy line to new query tab"
|
||||
|
226
source/main.dfm
226
source/main.dfm
@ -3129,53 +3129,130 @@ object MainForm: TMainForm
|
||||
ShortCut = 16416
|
||||
OnExecute = actSynEditCompletionProposeExecute
|
||||
end
|
||||
object actQuickFilterFocusedValue1: TAction
|
||||
object actQuickFilterFocused1: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'actQuickFilterFocusedValue1'
|
||||
Caption = 'Quick filter: Column = Focused'
|
||||
ImageIndex = 61
|
||||
ShortCut = 24625
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocusedValue2: TAction
|
||||
object actQuickFilterFocused2: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'actQuickFilterFocusedValue2'
|
||||
Caption = 'Quick filter: Column != Focused'
|
||||
ImageIndex = 61
|
||||
ShortCut = 24626
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocusedValue3: TAction
|
||||
object actQuickFilterFocused3: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'actQuickFilterFocusedValue3'
|
||||
Caption = 'Quick filter: Column > Focused'
|
||||
ImageIndex = 61
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocused4: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column < Focused'
|
||||
ImageIndex = 61
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocused5: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column LIKE Focused%'
|
||||
ImageIndex = 61
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocused6: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column LIKE %Focused'
|
||||
ImageIndex = 61
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocused7: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column LIKE %Focused%'
|
||||
ImageIndex = 61
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterPrompt1: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column = Prompt'
|
||||
ImageIndex = 58
|
||||
ShortCut = 24627
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocusedValue4: TAction
|
||||
object actQuickFilterPrompt2: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'actQuickFilterFocusedValue4'
|
||||
ImageIndex = 61
|
||||
Caption = 'Quick filter: Column != Prompt'
|
||||
ImageIndex = 58
|
||||
ShortCut = 24628
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocusedValue5: TAction
|
||||
object actQuickFilterPrompt3: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'actQuickFilterFocusedValue5'
|
||||
ImageIndex = 61
|
||||
Caption = 'Quick filter: Column > Prompt'
|
||||
ImageIndex = 58
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterPrompt4: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column < Prompt'
|
||||
ImageIndex = 58
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterPrompt5: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column LIKE %Prompt%'
|
||||
ImageIndex = 58
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterPrompt6: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column IS NULL'
|
||||
ImageIndex = 58
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterPrompt7: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column IS NOT NULL'
|
||||
ImageIndex = 58
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterClipboard1: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column = Clipboard'
|
||||
ImageIndex = 4
|
||||
ShortCut = 24629
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocusedValue6: TAction
|
||||
object actQuickFilterClipboard2: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'actQuickFilterFocusedValue6'
|
||||
ImageIndex = 61
|
||||
Caption = 'Quick filter: Column != Clipboard'
|
||||
ImageIndex = 4
|
||||
ShortCut = 24630
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterFocusedValue7: TAction
|
||||
object actQuickFilterClipboard3: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'actQuickFilterFocusedValue7'
|
||||
ImageIndex = 61
|
||||
ShortCut = 24631
|
||||
Caption = 'Quick filter: Column > Clipboard'
|
||||
ImageIndex = 4
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterClipboard4: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column < Clipboard'
|
||||
ImageIndex = 4
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterClipboard5: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column LIKE %Clipboard%'
|
||||
ImageIndex = 4
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
object actQuickFilterClipboard6: TAction
|
||||
Category = 'Data'
|
||||
Caption = 'Quick filter: Column IN (Clipboard)'
|
||||
ImageIndex = 4
|
||||
OnExecute = QuickFilterClick
|
||||
end
|
||||
end
|
||||
@ -3519,26 +3596,26 @@ object MainForm: TMainForm
|
||||
object menuQuickFilter: TMenuItem
|
||||
Caption = 'Quick Filter'
|
||||
ImageIndex = 53
|
||||
object menuQuickFilterFocusedValue1: TMenuItem
|
||||
Action = actQuickFilterFocusedValue1
|
||||
object menuQuickFilterFocused1: TMenuItem
|
||||
Action = actQuickFilterFocused1
|
||||
end
|
||||
object menuQuickFilterFocusedValue2: TMenuItem
|
||||
Action = actQuickFilterFocusedValue2
|
||||
object menuQuickFilterFocused2: TMenuItem
|
||||
Action = actQuickFilterFocused2
|
||||
end
|
||||
object menuQuickFilterFocusedValue3: TMenuItem
|
||||
Action = actQuickFilterFocusedValue3
|
||||
object menuQuickFilterFocused3: TMenuItem
|
||||
Action = actQuickFilterFocused3
|
||||
end
|
||||
object menuQuickFilterFocusedValue4: TMenuItem
|
||||
Action = actQuickFilterFocusedValue4
|
||||
object menuQuickFilterFocused4: TMenuItem
|
||||
Action = actQuickFilterFocused4
|
||||
end
|
||||
object menuQuickFilterFocusedValue5: TMenuItem
|
||||
Action = actQuickFilterFocusedValue5
|
||||
object menuQuickFilterFocused5: TMenuItem
|
||||
Action = actQuickFilterFocused5
|
||||
end
|
||||
object menuQuickFilterFocusedValue6: TMenuItem
|
||||
Action = actQuickFilterFocusedValue6
|
||||
object menuQuickFilterFocused6: TMenuItem
|
||||
Action = actQuickFilterFocused6
|
||||
end
|
||||
object menuQuickFilterFocusedValue7: TMenuItem
|
||||
Action = actQuickFilterFocusedValue7
|
||||
object menuQuickFilterFocused7: TMenuItem
|
||||
Action = actQuickFilterFocused7
|
||||
end
|
||||
object QFvalues: TMenuItem
|
||||
Caption = 'More values ...'
|
||||
@ -3550,79 +3627,48 @@ object MainForm: TMainForm
|
||||
object N11a: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object QF8: TMenuItem
|
||||
Tag = 1
|
||||
Caption = 'Column = ...'
|
||||
ImageIndex = 58
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterPrompt1: TMenuItem
|
||||
Action = actQuickFilterPrompt1
|
||||
end
|
||||
object QF9: TMenuItem
|
||||
Tag = 1
|
||||
Caption = 'Column != ...'
|
||||
ImageIndex = 58
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterPrompt2: TMenuItem
|
||||
Action = actQuickFilterPrompt2
|
||||
end
|
||||
object QF10: TMenuItem
|
||||
Tag = 1
|
||||
Caption = 'Column > ...'
|
||||
ImageIndex = 58
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterPrompt3: TMenuItem
|
||||
Action = actQuickFilterPrompt3
|
||||
end
|
||||
object QF11: TMenuItem
|
||||
Tag = 1
|
||||
Caption = 'Column < ...'
|
||||
ImageIndex = 58
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterPrompt4: TMenuItem
|
||||
Action = actQuickFilterPrompt4
|
||||
end
|
||||
object QF12: TMenuItem
|
||||
Tag = 1
|
||||
Caption = 'Column like ...'
|
||||
ImageIndex = 58
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterPrompt5: TMenuItem
|
||||
Action = actQuickFilterPrompt5
|
||||
end
|
||||
object QF13: TMenuItem
|
||||
Caption = 'Column IS NULL'
|
||||
ImageIndex = 58
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterPrompt6: TMenuItem
|
||||
Action = actQuickFilterPrompt6
|
||||
end
|
||||
object QF14: TMenuItem
|
||||
Caption = 'Column IS NOT NULL'
|
||||
ImageIndex = 58
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterPrompt7: TMenuItem
|
||||
Action = actQuickFilterPrompt7
|
||||
end
|
||||
object N7a: TMenuItem
|
||||
AutoHotkeys = maManual
|
||||
Caption = '-'
|
||||
end
|
||||
object QF15: TMenuItem
|
||||
Caption = 'Column = CLIPBOARD'
|
||||
ImageIndex = 4
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterClipboard1: TMenuItem
|
||||
Action = actQuickFilterClipboard1
|
||||
end
|
||||
object QF16: TMenuItem
|
||||
Caption = 'Column != CLIPBOARD'
|
||||
ImageIndex = 4
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterClipboard2: TMenuItem
|
||||
Action = actQuickFilterClipboard2
|
||||
end
|
||||
object QF17: TMenuItem
|
||||
Caption = 'Column > CLIPBOARD'
|
||||
ImageIndex = 4
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterClipboard3: TMenuItem
|
||||
Action = actQuickFilterClipboard3
|
||||
end
|
||||
object QF18: TMenuItem
|
||||
Caption = 'Column < CLIPBOARD'
|
||||
ImageIndex = 4
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterClipboard4: TMenuItem
|
||||
Action = actQuickFilterClipboard4
|
||||
end
|
||||
object QF19: TMenuItem
|
||||
Caption = 'Column LIKE %CLIPBOARD%'
|
||||
ImageIndex = 4
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterClipboard5: TMenuItem
|
||||
Action = actQuickFilterClipboard5
|
||||
end
|
||||
object QF20: TMenuItem
|
||||
Caption = 'Column IN ()'
|
||||
ImageIndex = 4
|
||||
OnClick = QuickFilterClick
|
||||
object menuQuickFilterClipboard6: TMenuItem
|
||||
Action = actQuickFilterClipboard6
|
||||
end
|
||||
object N21: TMenuItem
|
||||
Caption = '-'
|
||||
|
231
source/main.pas
231
source/main.pas
@ -341,11 +341,6 @@ type
|
||||
SynMemoFilter: TSynMemo;
|
||||
TimerRefresh: TTimer;
|
||||
Saveastextfile1: TMenuItem;
|
||||
QF8: TMenuItem;
|
||||
QF10: TMenuItem;
|
||||
QF11: TMenuItem;
|
||||
QF9: TMenuItem;
|
||||
QF12: TMenuItem;
|
||||
Exportdata2: TMenuItem;
|
||||
N11a: TMenuItem;
|
||||
DataInsertValue: TMenuItem;
|
||||
@ -362,13 +357,6 @@ type
|
||||
SynCompletionProposal: TSynCompletionProposal;
|
||||
tabCommandStats: TTabSheet;
|
||||
ListCommandStats: TVirtualStringTree;
|
||||
QF13: TMenuItem;
|
||||
QF14: TMenuItem;
|
||||
QF15: TMenuItem;
|
||||
QF16: TMenuItem;
|
||||
QF17: TMenuItem;
|
||||
QF18: TMenuItem;
|
||||
QF19: TMenuItem;
|
||||
N21: TMenuItem;
|
||||
popupQuery: TPopupMenu;
|
||||
MenuRun: TMenuItem;
|
||||
@ -568,7 +556,6 @@ type
|
||||
N9: TMenuItem;
|
||||
ExportdatabaseasSQL1: TMenuItem;
|
||||
Exportgridrows1: TMenuItem;
|
||||
QF20: TMenuItem;
|
||||
DataDefaultValue: TMenuItem;
|
||||
actLaunchCommandline: TAction;
|
||||
Launchcommandline1: TMenuItem;
|
||||
@ -662,20 +649,46 @@ type
|
||||
Attach1: TMenuItem;
|
||||
actSynEditCompletionPropose: TAction;
|
||||
ShowSQLcompletionproposal1: TMenuItem;
|
||||
actQuickFilterFocusedValue1: TAction;
|
||||
actQuickFilterFocusedValue2: TAction;
|
||||
actQuickFilterFocusedValue3: TAction;
|
||||
actQuickFilterFocusedValue4: TAction;
|
||||
actQuickFilterFocusedValue5: TAction;
|
||||
actQuickFilterFocusedValue6: TAction;
|
||||
actQuickFilterFocusedValue7: TAction;
|
||||
menuQuickFilterFocusedValue1: TMenuItem;
|
||||
menuQuickFilterFocusedValue2: TMenuItem;
|
||||
menuQuickFilterFocusedValue3: TMenuItem;
|
||||
menuQuickFilterFocusedValue4: TMenuItem;
|
||||
menuQuickFilterFocusedValue5: TMenuItem;
|
||||
menuQuickFilterFocusedValue6: TMenuItem;
|
||||
menuQuickFilterFocusedValue7: TMenuItem;
|
||||
actQuickFilterFocused1: TAction;
|
||||
actQuickFilterFocused2: TAction;
|
||||
actQuickFilterFocused3: TAction;
|
||||
actQuickFilterFocused4: TAction;
|
||||
actQuickFilterFocused5: TAction;
|
||||
actQuickFilterFocused6: TAction;
|
||||
actQuickFilterFocused7: TAction;
|
||||
actQuickFilterPrompt1: TAction;
|
||||
actQuickFilterPrompt2: TAction;
|
||||
actQuickFilterPrompt3: TAction;
|
||||
actQuickFilterPrompt4: TAction;
|
||||
actQuickFilterPrompt5: TAction;
|
||||
actQuickFilterPrompt6: TAction;
|
||||
actQuickFilterPrompt7: TAction;
|
||||
actQuickFilterClipboard1: TAction;
|
||||
actQuickFilterClipboard2: TAction;
|
||||
actQuickFilterClipboard3: TAction;
|
||||
actQuickFilterClipboard4: TAction;
|
||||
actQuickFilterClipboard5: TAction;
|
||||
actQuickFilterClipboard6: TAction;
|
||||
menuQuickFilterFocused1: TMenuItem;
|
||||
menuQuickFilterFocused2: TMenuItem;
|
||||
menuQuickFilterFocused3: TMenuItem;
|
||||
menuQuickFilterFocused4: TMenuItem;
|
||||
menuQuickFilterFocused5: TMenuItem;
|
||||
menuQuickFilterFocused6: TMenuItem;
|
||||
menuQuickFilterFocused7: TMenuItem;
|
||||
menuQuickFilterPrompt1: TMenuItem;
|
||||
menuQuickFilterPrompt2: TMenuItem;
|
||||
menuQuickFilterPrompt3: TMenuItem;
|
||||
menuQuickFilterPrompt4: TMenuItem;
|
||||
menuQuickFilterPrompt5: TMenuItem;
|
||||
menuQuickFilterPrompt6: TMenuItem;
|
||||
menuQuickFilterPrompt7: TMenuItem;
|
||||
menuQuickFilterClipboard1: TMenuItem;
|
||||
menuQuickFilterClipboard2: TMenuItem;
|
||||
menuQuickFilterClipboard3: TMenuItem;
|
||||
menuQuickFilterClipboard4: TMenuItem;
|
||||
menuQuickFilterClipboard5: TMenuItem;
|
||||
menuQuickFilterClipboard6: TMenuItem;
|
||||
procedure actCreateDBObjectExecute(Sender: TObject);
|
||||
procedure menuConnectionsPopup(Sender: TObject);
|
||||
procedure actExitApplicationExecute(Sender: TObject);
|
||||
@ -6428,16 +6441,15 @@ end;
|
||||
procedure TMainForm.QuickFilterClick(Sender: TObject);
|
||||
var
|
||||
Filter, Val, Col: String;
|
||||
Item : TMenuItem;
|
||||
Act: TAction;
|
||||
begin
|
||||
// Set filter for "where..."-clause
|
||||
if Sender is TAction then
|
||||
Item := (Sender as TAction).ActionComponent as TMenuItem
|
||||
else
|
||||
Item := Sender as TMenuItem;
|
||||
if (PageControlMain.ActivePage <> tabData) or (DataGrid.FocusedColumn = NoColumn) then
|
||||
Exit;
|
||||
Act := Sender as TAction;
|
||||
Filter := '';
|
||||
|
||||
if Item.Tag = 1 then begin
|
||||
if ExecRegExpr('Prompt\d+$', Act.Name) then begin
|
||||
// Item needs prompt
|
||||
Col := DataGrid.Header.Columns[DataGrid.FocusedColumn].Text;
|
||||
Col := ActiveConnection.QuoteIdent(Col, False);
|
||||
@ -6446,20 +6458,20 @@ begin
|
||||
Col := Col + '::text';
|
||||
end;
|
||||
Val := DataGrid.Text[DataGrid.FocusedNode, DataGrid.FocusedColumn];
|
||||
if InputQuery(_('Specify filter-value...'), Item.Caption, Val) then begin
|
||||
if Item = QF8 then
|
||||
if InputQuery(_('Specify filter-value...'), Act.Caption, Val) then begin
|
||||
if Act = actQuickFilterPrompt1 then
|
||||
Filter := Col + ' = ''' + Val + ''''
|
||||
else if Item = QF9 then
|
||||
else if Act = actQuickFilterPrompt2 then
|
||||
Filter := Col + ' != ''' + Val + ''''
|
||||
else if Item = QF10 then
|
||||
else if Act = actQuickFilterPrompt3 then
|
||||
Filter := Col + ' > ''' + Val + ''''
|
||||
else if Item = QF11 then
|
||||
else if Act = actQuickFilterPrompt4 then
|
||||
Filter := Col + ' < ''' + Val + ''''
|
||||
else if Item = QF12 then
|
||||
else if Act = actQuickFilterPrompt5 then
|
||||
Filter := Col + ' LIKE ''%' + Val + '%''';
|
||||
end;
|
||||
end else
|
||||
Filter := Item.Hint;
|
||||
Filter := Act.Hint;
|
||||
|
||||
if ExecRegExpr('\s+LIKE\s+''', Filter) then
|
||||
Filter := Filter + ActiveConnection.LikeClauseTail;
|
||||
@ -6948,6 +6960,7 @@ var
|
||||
Node: PVirtualNode;
|
||||
OldDataLocalNumberFormat: Boolean;
|
||||
IncludedValues: TStringList;
|
||||
Act: TAction;
|
||||
const
|
||||
CLPBRD : String = 'CLIPBOARD';
|
||||
begin
|
||||
@ -6978,13 +6991,13 @@ begin
|
||||
end;
|
||||
|
||||
// Block 1: WHERE col IN ([focused cell values])
|
||||
actQuickFilterFocusedValue1.Hint := '';
|
||||
actQuickFilterFocusedValue2.Hint := '';
|
||||
actQuickFilterFocusedValue3.Hint := '';
|
||||
actQuickFilterFocusedValue4.Hint := '';
|
||||
actQuickFilterFocusedValue5.Hint := '';
|
||||
actQuickFilterFocusedValue6.Hint := '';
|
||||
actQuickFilterFocusedValue7.Hint := '';
|
||||
actQuickFilterFocused1.Hint := '';
|
||||
actQuickFilterFocused2.Hint := '';
|
||||
actQuickFilterFocused3.Hint := '';
|
||||
actQuickFilterFocused4.Hint := '';
|
||||
actQuickFilterFocused5.Hint := '';
|
||||
actQuickFilterFocused6.Hint := '';
|
||||
actQuickFilterFocused7.Hint := '';
|
||||
Node := Grid.GetFirstSelected;
|
||||
HasNullValue := False;
|
||||
HasNotNullValue := False;
|
||||
@ -7001,94 +7014,90 @@ begin
|
||||
HasNotNullValue := True;
|
||||
Value := Grid.Text[Node, Grid.FocusedColumn];
|
||||
if IncludedValues.IndexOf(Value) = -1 then begin
|
||||
actQuickFilterFocusedValue1.Hint := actQuickFilterFocusedValue1.Hint + esc(Value) + ', ';
|
||||
actQuickFilterFocusedValue2.Hint := actQuickFilterFocusedValue2.Hint + esc(Value) + ', ';
|
||||
actQuickFilterFocusedValue3.Hint := actQuickFilterFocusedValue3.Hint + Col + ' LIKE ''' + esc(Value, True, False) + '%'' OR ';
|
||||
actQuickFilterFocusedValue4.Hint := actQuickFilterFocusedValue4.Hint + Col + ' LIKE ''%' + esc(Value, True, False) + ''' OR ';
|
||||
actQuickFilterFocusedValue5.Hint := actQuickFilterFocusedValue5.Hint + Col + ' LIKE ''%' + esc(Value, True, False) + '%'' OR ';
|
||||
actQuickFilterFocusedValue6.Hint := actQuickFilterFocusedValue6.Hint + Col + ' > ' + esc(Value) + ' OR ';
|
||||
actQuickFilterFocusedValue7.Hint := actQuickFilterFocusedValue7.Hint + Col + ' < ' + esc(Value) + ' OR ';
|
||||
actQuickFilterFocused1.Hint := actQuickFilterFocused1.Hint + esc(Value) + ', ';
|
||||
actQuickFilterFocused2.Hint := actQuickFilterFocused2.Hint + esc(Value) + ', ';
|
||||
actQuickFilterFocused3.Hint := actQuickFilterFocused3.Hint + Col + ' LIKE ''' + esc(Value, True, False) + '%'' OR ';
|
||||
actQuickFilterFocused4.Hint := actQuickFilterFocused4.Hint + Col + ' LIKE ''%' + esc(Value, True, False) + ''' OR ';
|
||||
actQuickFilterFocused5.Hint := actQuickFilterFocused5.Hint + Col + ' LIKE ''%' + esc(Value, True, False) + '%'' OR ';
|
||||
actQuickFilterFocused6.Hint := actQuickFilterFocused6.Hint + Col + ' > ' + esc(Value) + ' OR ';
|
||||
actQuickFilterFocused7.Hint := actQuickFilterFocused7.Hint + Col + ' < ' + esc(Value) + ' OR ';
|
||||
IncludedValues.Add(Value);
|
||||
end;
|
||||
end;
|
||||
Node := Grid.GetNextSelected(Node);
|
||||
if Length(actQuickFilterFocusedValue1.Hint) > SIZE_MB then
|
||||
if Length(actQuickFilterFocused1.Hint) > SIZE_MB then
|
||||
Break;
|
||||
end;
|
||||
DataLocalNumberFormat := OldDataLocalNumberFormat;
|
||||
if HasNotNullValue then begin
|
||||
actQuickFilterFocusedValue1.Hint := Col + ' IN (' + Copy(actQuickFilterFocusedValue1.Hint, 1, Length(actQuickFilterFocusedValue1.Hint)-2) + ')';
|
||||
actQuickFilterFocusedValue2.Hint := Col + ' NOT IN (' + Copy(actQuickFilterFocusedValue2.Hint, 1, Length(actQuickFilterFocusedValue2.Hint)-2) + ')';
|
||||
actQuickFilterFocusedValue3.Hint := Copy(actQuickFilterFocusedValue3.Hint, 1, Length(actQuickFilterFocusedValue3.Hint)-4);
|
||||
actQuickFilterFocusedValue4.Hint := Copy(actQuickFilterFocusedValue4.Hint, 1, Length(actQuickFilterFocusedValue4.Hint)-4);
|
||||
actQuickFilterFocusedValue5.Hint := Copy(actQuickFilterFocusedValue5.Hint, 1, Length(actQuickFilterFocusedValue5.Hint)-4);
|
||||
actQuickFilterFocusedValue6.Hint := Copy(actQuickFilterFocusedValue6.Hint, 1, Length(actQuickFilterFocusedValue6.Hint)-4);
|
||||
actQuickFilterFocusedValue7.Hint := Copy(actQuickFilterFocusedValue7.Hint, 1, Length(actQuickFilterFocusedValue7.Hint)-4);
|
||||
actQuickFilterFocused1.Hint := Col + ' IN (' + Copy(actQuickFilterFocused1.Hint, 1, Length(actQuickFilterFocused1.Hint)-2) + ')';
|
||||
actQuickFilterFocused2.Hint := Col + ' NOT IN (' + Copy(actQuickFilterFocused2.Hint, 1, Length(actQuickFilterFocused2.Hint)-2) + ')';
|
||||
actQuickFilterFocused3.Hint := Copy(actQuickFilterFocused3.Hint, 1, Length(actQuickFilterFocused3.Hint)-4);
|
||||
actQuickFilterFocused4.Hint := Copy(actQuickFilterFocused4.Hint, 1, Length(actQuickFilterFocused4.Hint)-4);
|
||||
actQuickFilterFocused5.Hint := Copy(actQuickFilterFocused5.Hint, 1, Length(actQuickFilterFocused5.Hint)-4);
|
||||
actQuickFilterFocused6.Hint := Copy(actQuickFilterFocused6.Hint, 1, Length(actQuickFilterFocused6.Hint)-4);
|
||||
actQuickFilterFocused7.Hint := Copy(actQuickFilterFocused7.Hint, 1, Length(actQuickFilterFocused7.Hint)-4);
|
||||
end;
|
||||
if HasNullValue then begin
|
||||
if HasNotNullValue then begin
|
||||
actQuickFilterFocusedValue1.Hint := actQuickFilterFocusedValue1.Hint + ' OR ';
|
||||
actQuickFilterFocusedValue2.Hint := actQuickFilterFocusedValue2.Hint + ' AND ';
|
||||
actQuickFilterFocusedValue3.Hint := actQuickFilterFocusedValue3.Hint + ' OR ';
|
||||
actQuickFilterFocusedValue4.Hint := actQuickFilterFocusedValue4.Hint + ' OR ';
|
||||
actQuickFilterFocusedValue5.Hint := actQuickFilterFocusedValue5.Hint + ' OR ';
|
||||
actQuickFilterFocusedValue6.Hint := actQuickFilterFocusedValue6.Hint + ' OR ';
|
||||
actQuickFilterFocusedValue7.Hint := actQuickFilterFocusedValue7.Hint + ' OR ';
|
||||
actQuickFilterFocused1.Hint := actQuickFilterFocused1.Hint + ' OR ';
|
||||
actQuickFilterFocused2.Hint := actQuickFilterFocused2.Hint + ' AND ';
|
||||
actQuickFilterFocused3.Hint := actQuickFilterFocused3.Hint + ' OR ';
|
||||
actQuickFilterFocused4.Hint := actQuickFilterFocused4.Hint + ' OR ';
|
||||
actQuickFilterFocused5.Hint := actQuickFilterFocused5.Hint + ' OR ';
|
||||
actQuickFilterFocused6.Hint := actQuickFilterFocused6.Hint + ' OR ';
|
||||
actQuickFilterFocused7.Hint := actQuickFilterFocused7.Hint + ' OR ';
|
||||
end;
|
||||
actQuickFilterFocusedValue1.Hint := actQuickFilterFocusedValue1.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocusedValue2.Hint := actQuickFilterFocusedValue2.Hint + Col + ' IS NOT NULL';
|
||||
actQuickFilterFocusedValue3.Hint := actQuickFilterFocusedValue3.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocusedValue4.Hint := actQuickFilterFocusedValue4.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocusedValue5.Hint := actQuickFilterFocusedValue5.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocusedValue6.Hint := actQuickFilterFocusedValue6.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocusedValue7.Hint := actQuickFilterFocusedValue7.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocused1.Hint := actQuickFilterFocused1.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocused2.Hint := actQuickFilterFocused2.Hint + Col + ' IS NOT NULL';
|
||||
actQuickFilterFocused3.Hint := actQuickFilterFocused3.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocused4.Hint := actQuickFilterFocused4.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocused5.Hint := actQuickFilterFocused5.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocused6.Hint := actQuickFilterFocused6.Hint + Col + ' IS NULL';
|
||||
actQuickFilterFocused7.Hint := actQuickFilterFocused7.Hint + Col + ' IS NULL';
|
||||
end;
|
||||
actQuickFilterFocusedValue1.Visible := HasNotNullValue or HasNullValue;
|
||||
actQuickFilterFocusedValue2.Visible := HasNotNullValue or HasNullValue;
|
||||
actQuickFilterFocusedValue3.Visible := HasNotNullValue;
|
||||
actQuickFilterFocusedValue4.Visible := HasNotNullValue;
|
||||
actQuickFilterFocusedValue5.Visible := HasNotNullValue;
|
||||
actQuickFilterFocusedValue6.Visible := HasNotNullValue;
|
||||
actQuickFilterFocusedValue7.Visible := HasNotNullValue;
|
||||
actQuickFilterFocused1.Visible := HasNotNullValue or HasNullValue;
|
||||
actQuickFilterFocused2.Visible := HasNotNullValue or HasNullValue;
|
||||
actQuickFilterFocused3.Visible := HasNotNullValue;
|
||||
actQuickFilterFocused4.Visible := HasNotNullValue;
|
||||
actQuickFilterFocused5.Visible := HasNotNullValue;
|
||||
actQuickFilterFocused6.Visible := HasNotNullValue;
|
||||
actQuickFilterFocused7.Visible := HasNotNullValue;
|
||||
IncludedValues.Free;
|
||||
|
||||
// Block 2: WHERE col = [ask user for value]
|
||||
QF8.Hint := Col + ' = "..."';
|
||||
QF9.Hint := Col + ' != "..."';
|
||||
QF10.Hint := Col + ' > "..."';
|
||||
QF11.Hint := Col + ' < "..."';
|
||||
QF12.Hint := Col + ' LIKE "%...%"';
|
||||
QF13.Hint := Col + ' IS NULL';
|
||||
QF14.Hint := Col + ' IS NOT NULL';
|
||||
actQuickFilterPrompt1.Hint := Col + ' = "..."';
|
||||
actQuickFilterPrompt2.Hint := Col + ' != "..."';
|
||||
actQuickFilterPrompt3.Hint := Col + ' > "..."';
|
||||
actQuickFilterPrompt4.Hint := Col + ' < "..."';
|
||||
actQuickFilterPrompt5.Hint := Col + ' LIKE "%...%"';
|
||||
actQuickFilterPrompt6.Hint := Col + ' IS NULL';
|
||||
actQuickFilterPrompt7.Hint := Col + ' IS NOT NULL';
|
||||
|
||||
// Block 3: WHERE col = [clipboard content]
|
||||
Value := Trim(Clipboard.AsText);
|
||||
if Length(Value) < SIZE_KB then begin
|
||||
QF15.Enabled := true; QF15.Hint := Col + ' = ' + esc(Value);
|
||||
QF16.Enabled := true; QF16.Hint := Col + ' != ' + esc(Value);
|
||||
QF17.Enabled := true; QF17.Hint := Col + ' > ' + esc(Value);
|
||||
QF18.Enabled := true; QF18.Hint := Col + ' < ' + esc(Value);
|
||||
QF19.Enabled := true; QF19.Hint := Col + ' LIKE ''%' + esc(Value, True, False) + '%''';
|
||||
QF20.Enabled := true; QF20.Hint := Col + ' IN (' + Value + ')';
|
||||
actQuickFilterClipboard1.Enabled := true; actQuickFilterClipboard1.Hint := Col + ' = ' + esc(Value);
|
||||
actQuickFilterClipboard2.Enabled := true; actQuickFilterClipboard2.Hint := Col + ' != ' + esc(Value);
|
||||
actQuickFilterClipboard3.Enabled := true; actQuickFilterClipboard3.Hint := Col + ' > ' + esc(Value);
|
||||
actQuickFilterClipboard4.Enabled := true; actQuickFilterClipboard4.Hint := Col + ' < ' + esc(Value);
|
||||
actQuickFilterClipboard5.Enabled := true; actQuickFilterClipboard5.Hint := Col + ' LIKE ''%' + esc(Value, True, False) + '%''';
|
||||
actQuickFilterClipboard6.Enabled := true; actQuickFilterClipboard6.Hint := Col + ' IN (' + Value + ')';
|
||||
end else begin
|
||||
QF15.Enabled := false; QF15.Hint := Col + ' = ' + CLPBRD;
|
||||
QF16.Enabled := false; QF16.Hint := Col + ' != ' + CLPBRD;
|
||||
QF17.Enabled := false; QF17.Hint := Col + ' > ' + CLPBRD;
|
||||
QF18.Enabled := false; QF18.Hint := Col + ' < ' + CLPBRD;
|
||||
QF19.Enabled := false; QF19.Hint := Col + ' LIKE %' + CLPBRD + '%';
|
||||
QF20.Enabled := false; QF20.Hint := Col + ' IN (' + CLPBRD + ')';
|
||||
actQuickFilterClipboard1.Enabled := false; actQuickFilterClipboard1.Hint := Col + ' = ' + CLPBRD;
|
||||
actQuickFilterClipboard2.Enabled := false; actQuickFilterClipboard2.Hint := Col + ' != ' + CLPBRD;
|
||||
actQuickFilterClipboard3.Enabled := false; actQuickFilterClipboard3.Hint := Col + ' > ' + CLPBRD;
|
||||
actQuickFilterClipboard4.Enabled := false; actQuickFilterClipboard4.Hint := Col + ' < ' + CLPBRD;
|
||||
actQuickFilterClipboard5.Enabled := false; actQuickFilterClipboard5.Hint := Col + ' LIKE %' + CLPBRD + '%';
|
||||
actQuickFilterClipboard6.Enabled := false; actQuickFilterClipboard6.Hint := Col + ' IN (' + CLPBRD + ')';
|
||||
end;
|
||||
|
||||
// Set captions from hints
|
||||
for i:=0 to menuQuickFilter.Count-1 do begin
|
||||
if (menuQuickFilter[i].Caption <> '-') // Not a separator
|
||||
and (menuQuickFilter[i].Count = 0) // Not a menu with subitems
|
||||
then begin
|
||||
if menuQuickFilter[i].Action = nil then // Not some special item
|
||||
menuQuickFilter[i].Caption := StrEllipsis(menuQuickFilter[i].Hint, 100)
|
||||
else begin
|
||||
TAction(menuQuickFilter[i].Action).Caption := StrEllipsis(menuQuickFilter[i].Hint, 100)
|
||||
end;
|
||||
end;
|
||||
if menuQuickFilter[i].Action = nil then
|
||||
Continue;
|
||||
Act := menuQuickFilter[i].Action as TAction;
|
||||
Act.Caption := StrEllipsis(Act.Hint, 100);
|
||||
end;
|
||||
|
||||
end;
|
||||
|
Reference in New Issue
Block a user