Решено Поиск и отображение документа в представлении

  • Автор темы Автор темы proteam
  • Дата начала Дата начала
JavaScript:
var nr = "";
 nr = window.document.forms[0].ndRefresh.value;
Получаем значение поля ndRefresh на форме
Но у меня это в другом месте стоит, в JS Header событии формы, в функции.
 
JavaScript:
var nr = "";
nr = window.document.forms[0].ndRefresh.value;
Получаем значение поля ndRefresh на форме
Но у меня это в другом месте стоит, в JS Header событии формы, в функции.
это работает для простого поля, а когда выбираешь как combobox он выводит undefined
 
Тут лучше без таймера:
Поле для ШК -> Combobox, Choises - пусто, Allow values not in list - включить, Run Exiting/OnChange... - включить,
В OnChange - JS проверка на Enter, его удаление, кнопка.click(), очистка поля.
ЕМНИП в таком случае не получалось отследить Enter почему-то, иначально рассматривал именно такой вариант, но ушел на таймер каждые 0,1 сек
 
не понял..

alert(Barcode.options[Barcode.selectedIndex].text); - не работает тоже, как я понимаю из-за того, что options пустой изначально, думаю придется тоже на таймер переходить.

Как на символ конца строки проверить?
alert(window.document.forms[0].Barcode.value);
if (window.document.forms[0].Barcode.value.indexOf('\\n') > 0){
window.document.forms[0].FindByBarcode.click();
}
window.setTimeout("runLoginWindow();", 2000);
 
Последнее редактирование:
но ушел на таймер каждые 0,1 сек
думаю придется тоже на таймер переходить.
1 тут может быть гемор с утечками памяти и скорее всего будет, если без бубнов. Осторожно надо, иначе перезагруз клиента.
как получить значение введенное в поле в методе onchange()?
2 в OnChange не обязательно: на Enter можно проверять в кнопе или проверять на длину строки там же, а в OnChange только кнопка.click().

PS
Если хочется делать максимум на JS (что правильно) можешь на Exiting (он срабатывает раньше OnChange) писать из Combobox новое значение в скрытое темповое поле и оттуда брать в JS OnChange.
 
1 тут может быть гемор с утечками памяти и скорее всего будет, если без бубнов. Осторожно надо, иначе перезагруз клиента.2 в OnChange не обязательно: на Enter можно проверять в кнопе или проверять на длину строки там же, а в OnChange только кнопка.click().
а все понял)

сделал как написано, теперь combobox себя странно ведет. У меня штрих код в формате ean-13, сканер ШК последний символ не считывает, добавляет символ конца строки, но в комбобоксе всего 9 символов отображается
 
Последнее редактирование:
а все понял)

сделал как написано, теперь combobox себя странно ведет. У меня штрих код в формате ean-13, сканер ШК последний символ не считывает, добавляет символ конца строки, но в комбобоксе всего 9 символов отображается
Вангую, что не хватает ширины поля для ввода.

1 тут может быть гемор с утечками памяти ...
Вроде как JS таймеры этим не грешат? В принципе, данная форма открыта 24*7 с крайне редкими закрытиями, поэтому если бы были проблемы мне бы вынесли мозг через неделю после внедрения. А так пол года полет нормальный.
 
а все понял)

сделал как написано, теперь combobox себя странно ведет. У меня штрих код в формате ean-13, сканер ШК последний символ не считывает, добавляет символ конца строки, но в комбобоксе всего 9 символов отображается
Занятно. Т.е. в обычное поле считывает норм. А в комбо гемор?
Я такого не наблюдал.
А если клик в онченьж убрать, то что?
[DOUBLEPOST=1433332152,1433331930][/DOUBLEPOST]
Вангую, что не хватает ширины поля для ввода.


Вроде как JS таймеры этим не грешат? В принципе, данная форма открыта 24*7 с крайне редкими закрытиями, поэтому если бы были проблемы мне бы вынесли мозг через неделю после внедрения. А так пол года полет нормальный.
Как раз с таймерами и гемор.
Такшта, повезло:)
 
Да, ширины не хватило))) Я то думал оно длину поля подбирает под данные
 
Да, ширины не хватило))) Я то думал оно длину поля подбирает под данные
Кста, запретить печатать в поле легко контролем шустрости ввода.
Появился символ в поле - запускаем setinterval на время чуть больше, чем надо сканеру. Кнопа жмётся не на каждый чих, а в конце интервала. При вводе с клавы длинна строки будет маловата однако:)
 
По поводу проблемы описанной изначально в теме. Я нашел закономерность. Это происходит вот при каких случаях. Если пользователь из представления 1 переходит в другое представление, в котором встает на документ, он отображается в preview, затем возвращается в первое представление (не выбирает документ вручную) просто проводит сканером штрих кода, представление встает на нужный документ, но в preview не отображается документ. Хоть сколько там сканером не проводи. После того как вручную какой то документ выберешь потом только все работает нормально.
 
По поводу проблемы описанной изначально в теме. Я нашел закономерность. Это происходит вот при каких случаях. Если пользователь из представления 1 переходит в другое представление, в котором встает на документ, он отображается в preview, затем возвращается в первое представление (не выбирает документ вручную) просто проводит сканером штрих кода, представление встает на нужный документ, но в preview не отображается документ. Хоть сколько там сканером не проводи. После того как вручную какой то документ выберешь потом только все работает нормально.
Нудык, тут всё понятно - теряется фокус на представлении, поиск, эсессно, работать не будет. Потому у тебя в этой вьюшке и стоит таймер на обновление. Эт не правильный ход.
 
Нудык, тут всё понятно - теряется фокус на представлении, поиск, эсессно, работать не будет. Потому у тебя в этой вьюшке и стоит таймер на обновление. Эт не правильный ход.
так таймер не спасает. Как программно вернуть фокус? Я уже сделал в PostOpen и автоматический выбор первого документа, и обновлял представление. Не помогает.
 
так таймер не спасает.
Естественно, потому и говорю
Эт не правильный ход.
Тут надо ловить потерю фокуса на preview дока, а не искать его на view (причем, обязательно с селектом какого нить дока). В нотусе нет такой возможности. Можно притянуть за уши, для этого, виндовые хуки, а надо-ли;)
Поэтому удобно использовать для ввода со сканера именно форму - там фокус однозначно будет в нужном поле.
Хотя, можно попробовать положить эту вьюшку на форму и показать её в фрейме (только она должна занимать всё окно). Тогда, по идее, при переводе курсора на эту форму, фокус переведётся точно на вьюшку.
Попробуй.
 
Поле для ШК закрыть леером в цвет фона, поля видно не будет, а ввод туда будет возможен.
А кто нибудь знает, как можно сделать чтобы курсор не мигал?)) Я закрыл поле леером, поставил белый цвет тексту, поставил размер шрифта в 1, но теперь из-за леера мигает точка...
 
Еще вопрос. Я отображаю форму с полем для ввода ШК через
NotesUiWorkspace.DialogBox()

Код:
Dim doc As NotesDocument
Set doc = currentdatabase.Createdocument()
Call workspace.Dialogbox("InputBarcode", True, True, True, _
False, False, False, "Ввод штрих-кода", doc, True, False, True)
В этой форме у меня таймер проверяет поле для ввода ШК, если оно соответствует нужному формату то закрывает форму. Я думал после того как форма закроется в объекте doc сохранится введенный ШК... но не так. Думаю это происходит из-за того, что нужно нажать на ОК в диалог боксе. Собственно вопрос, как нажать на эту ОК))
 
перед закрытием диалогбокса необходимо обновить документ Call workspace.RefreshParentNote( )
 
  • Нравится
Реакции: proteam
перед закрытием диалогбокса необходимо обновить документ Call workspace.RefreshParentNote( )
Спасибо. Действительно помогло. А я уже стал переделывать, думая что только после нажатия ок сохраняется информация
 
А кто нибудь знает, как можно сделать чтобы курсор не мигал?)) Я закрыл поле леером, поставил белый цвет тексту, поставил размер шрифта в 1, но теперь из-за леера мигает точка...
К сожалению сейчас не могу найти кто, но не так давно кто-то выкладывал похожий пример.

Все благодарности автору, которого я не помню :)
 

Вложения

  • Нравится
Реакции: proteam
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!