05.01.2005, 17:15 | #1 |
Участник
|
Позиционирование в lookup форме
Привет!
Допустим, имеется собственная форма Lookup, которая задана через свойство Form Help расширенного типа данных. Как сделать так, чтобы текущей при открытии формы сделалась запись, соответствущая значению поля, с которого форма окрылась? |
|
06.01.2005, 12:29 | #2 |
Гость
|
через element.args() не пробовали ?
|
|
06.01.2005, 12:43 | #3 |
Участник
|
На какую запись позиционироваться, я знаю, через метод SysTableLookup::getCallerStringControl. Требуется выяснить, как позиционироваться.
|
|
06.01.2005, 12:50 | #4 |
Гость
|
Whom_QBR = <Ваш_датасорс>_ds.query().dataSourceNo(1).addRange(fieldNum(<Ваш_датасорс>, <поле Вашего дс>));
Whom_QBR.value( queryValue(<ключ сортировки>)); строки ставятся после super() в init() датасорса лукап-формы Ред: это подфильтрует findValue() || findRecord() - сделают активной нужную строку |
|
06.01.2005, 17:29 | #5 |
Участник
|
Используя addRange, задав его Value позиционирование на нужную запись выполняется, но в этом случае эта запись оказывается единственной в гриде.
findRecord и findValue почему-то не срабатывают. Возвращают false. |
|
06.01.2005, 17:48 | #6 |
Гость
|
посмотрите, что передается в findRecord. Поля передаваемой табл переменной должны быть заполнены хотя бы по праймари ки.
|
|
06.01.2005, 18:02 | #7 |
Участник
|
в findRecord передается табл.переменная со всеми полями, не только примари. Предварительно я его нахожу: it = inventTable::find("значение прим.кеу"); а потом передаю findRecord в качестве параметра.
Если выполнять не в методе init у источника данных, а после полной инициализации формы, допустим в методе clicked() кнопки, тогда поиск срабатывает (то есть возвращает true, если по отладчику смотреть), но форма закрывается с выдачей сообщения, что поле Номенклатура должно быть заполнено. Хотя я перекрыл canClose, не должна бы форма закрываться ... |
|
06.01.2005, 18:13 | #8 |
Гость
|
попробуйте датасорс.autosearch(false) перед super() в run()
|
|
06.01.2005, 18:19 | #9 |
Участник
|
Тогда вообще этот грид исчезает.
|
|
06.01.2005, 18:28 | #10 |
Гость
|
ContactPersonLookup
посмотрите как там (если работает, я не проверял. Но findRecord там используется). Перекрестными ссылками посмотрите , где исп и попробуйте запустить эту форму. Если это то, что нужно - ковыряйте ее код |
|
06.01.2005, 18:33 | #11 |
Участник
|
Спасибо за советы! Grid появился, я просто нечаянно перетащил оказывается в другую группу, невидимую.
Теперь при открытии формы позиционирование не выполняется, но стоит передвинуть окошко, встает на нужную позицию. То есть надо перерисование формы задействовать. Форму ContactPersonLookup посмотрю обязательно. Еще раз спасибо. |
|