Интерфейс Vschet

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

sol
Постоянный обитатель
Сообщения: 165
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Орловская обл. коммерческая организация

Интерфейс Vschet

Сообщение sol »

Есть стандартный интерфейс Vschet,
который запускает табличную форму выбора документов-оснований на закупку и позиционируется на нужном документе:
RunInterFace('Vschet',nrec). А вот как сделать, чтобы этот документ еще и открыть, чтобы перейти в анкетную форму редактирования?
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Интерфейс Vschet

Сообщение ecasoft »

вообще с этим в Галактике единообразия нет. :) Иногда попадаешь в анкетную..иногда в табличную

Не пробывали написать так:

PutCommand(cmDefault);
RunInterface('VSchet');

Я не пробывал сам..кроме этого ничего придумать не могу :) вообще если интерфейс не имеет параметра, управляющего переходом, то ничего видимо не сделаешь :(
Некоммерческое общение в форуме
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Интерфейс Vschet

Сообщение Maverick »

никак не получится, ибо этот интерфейс имеет только параметр позиционирования на запись. чтобы еще и открывать на редактирование необходимо модифицировать VSchet, добавив еще один параметр н-р bEdit : boolean, а в cmDefault этого интерфейса добавить вызов события cmEdit, если bEdit=1 иначе просто позиционироваться на запись.

Кстати, Косякин Игорь не прав в том коде который привел ))) команда PutCommand если она используется в обработчике события, должна всегда стоять последней, т.к. все команды после нее не выполняются...

и еще VSchet - стал объектным интерфейсом - вызов через RunInterface - не оптимален ))
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Интерфейс Vschet

Сообщение ecasoft »

Ничего подобного. Команда putCommand ставит событие в очередь, но выполнение продолжается до конца обработчика. Это в отличие от команды ProcessCommand, при которой вызывается обработчик указанного события.
Некоммерческое общение в форуме
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Интерфейс Vschet

Сообщение Maverick »

Хехе.. это так в теории написано )))
А как оно на практике? Проверяли?
Я вот проверял ))) - мало похоже...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Интерфейс Vschet

Сообщение ecasoft »

На практике сегодня проверил ту комбинацию, что написано выше - все работает...открывается все отлично...могу и перейти еще в создание новой записи..или вызвать горячее меню (тоже пробывал)..вообщем вызвать любое множество команд внктри интерфейса путем предварительной их записи в стек. Так что "никак не получится" сказано слишком круто :)

P S Когда я написал выше, я сомневался лишь в том, что может новый интерфейс чистит очередь событий и поэтому эта технология не сработает...но опасения оказались напрасными..команда не чистится и все работает.
Некоммерческое общение в форуме
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Интерфейс Vschet

Сообщение Maverick »

хе.. очень интересные выводы. версию атлантиса можно узнать? до 3.03.19 включительно 100% у меня подобного не наблюдалось. до PutCommand доходило и усе - передавалась обработка этому событию для текущего окна (если оно в этом окне описано), иначе - аналогичному событию, стоящему по иерархии на ступеньку выше
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Интерфейс Vschet

Сообщение ecasoft »

Мы начинаем какой-то теоретический диспут. Главное не в том, что получалось когда-то или нет..а главное, что это ДОЛЖНО ТАК РАБОТАТЬ и в текущей версии это действительно так работает :) Давайте не играть в игру, кто кого победит, а просто конструктивно решать проблемы. Я думаю это выгодно обоим :)


Я проверял по-моему на 585 первый релиз. Но вообще, что алгоритм идет после Putcommand - это было с момента создания Атлантиса. Для этого и делалсь эта команда в принципе то. Дело может быть в другом...помнится были команды (они сожет и остались), которые портят очередь событий..и это вызывало глюки при такой работе (я правда, с таким не разу не сталкивался, но слышал от разработчиков). Может Вы тоже на это напоролись и не получилось. Но я не сталкивался..может повезло.

Я тут стал эксперементировать..вызывал меню ...и даже получается можно отчеты сформировать путем вызова интерфейса..т.е. записать в стек все события последовательно и вызвать интерфейс, то сразу ему предложат распечатать. СПАСИБО ЗА ВОПРОС АВТОРУ ТЕМЫ..навел на интересные мысли :) Получается, к примеру, я формирую счет сам, а затем хочу его просто распечатать...так я могу вызвать этой фейс и сразу перейти в окно и там в печать и появится список присоединеных форм для печати - здорово :)

Я понимаю, что с появлением объектов все это делать глупо будет, но пока их мало вполне можно все документа (не только счета) таким образом обрабатывать.

С уважением, Игорь
Некоммерческое общение в форуме
sol
Постоянный обитатель
Сообщения: 165
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Орловская обл. коммерческая организация

Re: Интерфейс Vschet

Сообщение sol »

А у меня почему-то не получилось.
Дело в том, что я написал для своих пользователей фейс: автоматическое формирование накладных на закупку,продажу, актов на услуги по счету. Очень удобно, не нужно бегать по меню. Своебразный интерфейс пользователя, ускоряющий работу в Галактике.
Так вот: счет создается автоматически, но чтобы войти в него все-таки приходится жать на Enter. Затем пользователь заполняет счет, жмет 2 раза на Esc и попадает в анкетную форму уже заполненой по этому счету накладной. Кому интересно, могу выслать исходник. Но это было написано для 5.2.
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Интерфейс Vschet

Сообщение ecasoft »

На 520, к сожалению, проверить не могу,т.к. нет этой версии. Может и правда на старых версиях глючило..не знаю.
Некоммерческое общение в форуме
JackVn
Постоянный гость
Сообщения: 82
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва, Минск
Контактная информация:

Re: Интерфейс Vschet

Сообщение JackVn »

Дело в том, что в версии 5.85 этот интерфейс по умолчанию вызывает анкетную форму :-) сам по себе, поэтому и получилось с PutCommand.
Galpro_
Посетитель
Сообщения: 38
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: Интерфейс Vschet

Сообщение Galpro_ »

На 582 ТОЖЕ не работает :))
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Интерфейс Vschet

Сообщение Maverick »

Ребят, в общем - не спорьте )))
Устроили мы тут мозговой штурм этой проблемы. В общем этот случай из ряда, когда баг Атлантис оказался во благо в конкретном случае.
Поясняю почему.

PutCommand () действительно помещает в очередь на стек выполнение определенного события. Но - для ТЕКУЩЕГО ОКНА (см. документацию по функциям ВИП). При нахождении в коде текущего окна этого события, оно выполняется, стек очищается.
А если не находит и встречается переход на другое окно/интерфейс (модально) то стек не чистится и запись там как бы "подвисает" и после инициализации его начинается вызов помещенных в стек событий )))

собсно все... в общем - не мудрствуйте лукаво ))) Об этом баге уже отписано по назначению - обещались проверить и если что - исправить...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Интерфейс Vschet

Сообщение ecasoft »

JackVen

А также по умолчанию он вызывает горячее меню и все, что я написал.. :)

Напишите так:

Putcommand(cmDefault);
Putcommand(cmHotKeys);
Runinterface('Vschet',BaseDoc.Nrec);
Некоммерческое общение в форуме
JackVn
Постоянный гость
Сообщения: 82
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва, Минск
Контактная информация:

Re: Интерфейс Vschet

Сообщение JackVn »

2 Косякин Игорь

Я просто факт привел, который реально проверил, что версии 5.85 без разницы стоит Putcommand(cmDefault) или нет, все равно вызывается анкетная форма(две недели назад я писал одну штуку и не знал как от этого избавиться) :)
Ответить