It seems to me that the core problem with your Advanced Search construction currently lies in the fact that the whole "list" is treated as a block condition, and with the implicit "and" thus as a SUB-condition for the "Search for" string above the block; this fact makes that for many compound searches, the "string search" will have to be placed within the "list", while the "Search for" string remains empty, and then, adjusting the string to your current search needs - all other "list" rows remaining unchanged for that specific "Advanced Search schema" - is far from easy, i.e. time consuming.
Thus my suggestion above to logically treat the Search-for field as just another, UN-indented "row" of the "list", adding the and/or switch also to the first "list" row (string-field condition always "global" then, not for title-only and similar, which, as said, makes this solution non-optimal, but so much better than the current construction all the same):
string-field condition
and/or other non-indented condition(s)
__and/or indented condition(s)
____and/or (another block of) indented condition(s), and so on.
Obviously, it is possible to programmatically change string values even within the "list", here the value in the very first "list" row:
special-key:: ; to be pressed when the title of the advanced-search schema is selected
send {tab 5}
sleep, 200
send ^{home} ; to assure focus gets back to first row in case
; send {down} ; for second row, or {down 2} for third row, etc.
sleep, 100
send {end} ; set focus to row's value field
sleep, 100
send {f2} ; EDIT: you want to UPDATE this value, so leaving the F2 out would not have been the very best idea here ;-)
return
Trigger the special key (which in other apps can be used otherwise), then enter the string, then 2 "returns" will trigger the search; of course, that first row could be a title:string condition or similar.
It's ugly, but works: the user should adjust the width of the "list's" value column, obviously, making it as large as possible; fortunately, that width adjustment is persistent (if the user takes care of adjusting it when just 1 UR db is loaded).
In the end, certainly most searches could be done this way: Not using the "Search for" field, but using the very first "list" row for the main (global or specific) string condition instead, and then, of course, putting MUCH care into the "condition blocks", separated by different "list" indentations (parentheses would have been easier indeed).
Last edited by Spliff; 02-18-2024 at 02:01 AM.
|