diff --git a/include/brwbut.cpp b/include/brwbut.cpp index cae07bae7..048ba9637 100644 --- a/include/brwbut.cpp +++ b/include/brwbut.cpp @@ -1167,17 +1167,22 @@ bool TBrowse::check(CheckTime t) if (_secondary == true && t != RUNNING_CHECK) return true; - CheckType chk = field().check_type(); + + // Se ho la ricerca alternativa ed il campo comincia per % ... + if (_alt_browse != NULL && t == RUNNING_CHECK && field().get()[0]=='%') + { + if (_alt_browse->check(t)) + { + if (chk == CHECK_NONE) // Se trovo la chiave forzo gli output (RAGSOC in righe prima nota) + chk = CHECK_NORMAL; + } + else + return false; + } + if (chk != CHECK_NONE) { - // Se ho la ricerca alternativa ed il campo comincia per % ... - if (_alt_browse != NULL && t == RUNNING_CHECK && field().get().starts_with("%")) - { - if (!_alt_browse->check(t)) - return false; - } - const TMaskmode mode = (TMaskmode)field().mask().mode(); if (chk == CHECK_REQUIRED && (t == STARTING_CHECK || mode == MODE_QUERY)) chk = CHECK_NORMAL; @@ -1625,15 +1630,16 @@ bool TAlternative_browse::check(CheckTime /*t*/) TString80 magic_val; magic_val = field().get(); - magic_val.strip("% "); + magic_val.strip("%"); + magic_val.trim(); magic_val.upper(); c = 0L; TRectype& curr = c.curr(); curr.put(_altfld, magic_val); - int err = c.read(); - if (err == NOERR && curr.get(_altfld).starts_with(magic_val)) + c.read(); + if (curr.get(_altfld).starts_with(magic_val)) { field().set(curr.get(_outfld)); return true; @@ -1642,7 +1648,7 @@ bool TAlternative_browse::check(CheckTime /*t*/) curr.put(_altfld, magic_val.left(1)); double best = 0; - for (err = c.read(); err == NOERR; ++c) + for (int err = c.read(); err == NOERR; ++c) { const TString& val = curr.get(_altfld); if (val[0] != magic_val[0]) @@ -1730,7 +1736,8 @@ KEY TAlternative_browse::run() { TString80 magic_val; magic_val = field().get(); - magic_val.strip("% "); + magic_val.strip("%"); + magic_val.trim(); magic_val.upper(); if (magic_val.full()) {