Интерфейс Vschet
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный обитатель
- Сообщения: 165
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Орловская обл. коммерческая организация
Интерфейс Vschet
Есть стандартный интерфейс Vschet,
который запускает табличную форму выбора документов-оснований на закупку и позиционируется на нужном документе:
RunInterFace('Vschet',nrec). А вот как сделать, чтобы этот документ еще и открыть, чтобы перейти в анкетную форму редактирования?
который запускает табличную форму выбора документов-оснований на закупку и позиционируется на нужном документе:
RunInterFace('Vschet',nrec). А вот как сделать, чтобы этот документ еще и открыть, чтобы перейти в анкетную форму редактирования?
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Интерфейс Vschet
вообще с этим в Галактике единообразия нет. Иногда попадаешь в анкетную..иногда в табличную
Не пробывали написать так:
PutCommand(cmDefault);
RunInterface('VSchet');
Я не пробывал сам..кроме этого ничего придумать не могу вообще если интерфейс не имеет параметра, управляющего переходом, то ничего видимо не сделаешь
Не пробывали написать так:
PutCommand(cmDefault);
RunInterface('VSchet');
Я не пробывал сам..кроме этого ничего придумать не могу вообще если интерфейс не имеет параметра, управляющего переходом, то ничего видимо не сделаешь
Некоммерческое общение в форуме
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Интерфейс Vschet
никак не получится, ибо этот интерфейс имеет только параметр позиционирования на запись. чтобы еще и открывать на редактирование необходимо модифицировать VSchet, добавив еще один параметр н-р bEdit : boolean, а в cmDefault этого интерфейса добавить вызов события cmEdit, если bEdit=1 иначе просто позиционироваться на запись.
Кстати, Косякин Игорь не прав в том коде который привел ))) команда PutCommand если она используется в обработчике события, должна всегда стоять последней, т.к. все команды после нее не выполняются...
и еще VSchet - стал объектным интерфейсом - вызов через RunInterface - не оптимален ))
Кстати, Косякин Игорь не прав в том коде который привел ))) команда PutCommand если она используется в обработчике события, должна всегда стоять последней, т.к. все команды после нее не выполняются...
и еще VSchet - стал объектным интерфейсом - вызов через RunInterface - не оптимален ))
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Интерфейс Vschet
Ничего подобного. Команда putCommand ставит событие в очередь, но выполнение продолжается до конца обработчика. Это в отличие от команды ProcessCommand, при которой вызывается обработчик указанного события.
Некоммерческое общение в форуме
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Интерфейс Vschet
Хехе.. это так в теории написано )))
А как оно на практике? Проверяли?
Я вот проверял ))) - мало похоже...
А как оно на практике? Проверяли?
Я вот проверял ))) - мало похоже...
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Интерфейс Vschet
На практике сегодня проверил ту комбинацию, что написано выше - все работает...открывается все отлично...могу и перейти еще в создание новой записи..или вызвать горячее меню (тоже пробывал)..вообщем вызвать любое множество команд внктри интерфейса путем предварительной их записи в стек. Так что "никак не получится" сказано слишком круто
P S Когда я написал выше, я сомневался лишь в том, что может новый интерфейс чистит очередь событий и поэтому эта технология не сработает...но опасения оказались напрасными..команда не чистится и все работает.
P S Когда я написал выше, я сомневался лишь в том, что может новый интерфейс чистит очередь событий и поэтому эта технология не сработает...но опасения оказались напрасными..команда не чистится и все работает.
Некоммерческое общение в форуме
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Интерфейс Vschet
хе.. очень интересные выводы. версию атлантиса можно узнать? до 3.03.19 включительно 100% у меня подобного не наблюдалось. до PutCommand доходило и усе - передавалась обработка этому событию для текущего окна (если оно в этом окне описано), иначе - аналогичному событию, стоящему по иерархии на ступеньку выше
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Интерфейс Vschet
Мы начинаем какой-то теоретический диспут. Главное не в том, что получалось когда-то или нет..а главное, что это ДОЛЖНО ТАК РАБОТАТЬ и в текущей версии это действительно так работает Давайте не играть в игру, кто кого победит, а просто конструктивно решать проблемы. Я думаю это выгодно обоим
Я проверял по-моему на 585 первый релиз. Но вообще, что алгоритм идет после Putcommand - это было с момента создания Атлантиса. Для этого и делалсь эта команда в принципе то. Дело может быть в другом...помнится были команды (они сожет и остались), которые портят очередь событий..и это вызывало глюки при такой работе (я правда, с таким не разу не сталкивался, но слышал от разработчиков). Может Вы тоже на это напоролись и не получилось. Но я не сталкивался..может повезло.
Я тут стал эксперементировать..вызывал меню ...и даже получается можно отчеты сформировать путем вызова интерфейса..т.е. записать в стек все события последовательно и вызвать интерфейс, то сразу ему предложат распечатать. СПАСИБО ЗА ВОПРОС АВТОРУ ТЕМЫ..навел на интересные мысли Получается, к примеру, я формирую счет сам, а затем хочу его просто распечатать...так я могу вызвать этой фейс и сразу перейти в окно и там в печать и появится список присоединеных форм для печати - здорово
Я понимаю, что с появлением объектов все это делать глупо будет, но пока их мало вполне можно все документа (не только счета) таким образом обрабатывать.
С уважением, Игорь
Я проверял по-моему на 585 первый релиз. Но вообще, что алгоритм идет после Putcommand - это было с момента создания Атлантиса. Для этого и делалсь эта команда в принципе то. Дело может быть в другом...помнится были команды (они сожет и остались), которые портят очередь событий..и это вызывало глюки при такой работе (я правда, с таким не разу не сталкивался, но слышал от разработчиков). Может Вы тоже на это напоролись и не получилось. Но я не сталкивался..может повезло.
Я тут стал эксперементировать..вызывал меню ...и даже получается можно отчеты сформировать путем вызова интерфейса..т.е. записать в стек все события последовательно и вызвать интерфейс, то сразу ему предложат распечатать. СПАСИБО ЗА ВОПРОС АВТОРУ ТЕМЫ..навел на интересные мысли Получается, к примеру, я формирую счет сам, а затем хочу его просто распечатать...так я могу вызвать этой фейс и сразу перейти в окно и там в печать и появится список присоединеных форм для печати - здорово
Я понимаю, что с появлением объектов все это делать глупо будет, но пока их мало вполне можно все документа (не только счета) таким образом обрабатывать.
С уважением, Игорь
Некоммерческое общение в форуме
-
- Постоянный обитатель
- Сообщения: 165
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Орловская обл. коммерческая организация
Re: Интерфейс Vschet
А у меня почему-то не получилось.
Дело в том, что я написал для своих пользователей фейс: автоматическое формирование накладных на закупку,продажу, актов на услуги по счету. Очень удобно, не нужно бегать по меню. Своебразный интерфейс пользователя, ускоряющий работу в Галактике.
Так вот: счет создается автоматически, но чтобы войти в него все-таки приходится жать на Enter. Затем пользователь заполняет счет, жмет 2 раза на Esc и попадает в анкетную форму уже заполненой по этому счету накладной. Кому интересно, могу выслать исходник. Но это было написано для 5.2.
Дело в том, что я написал для своих пользователей фейс: автоматическое формирование накладных на закупку,продажу, актов на услуги по счету. Очень удобно, не нужно бегать по меню. Своебразный интерфейс пользователя, ускоряющий работу в Галактике.
Так вот: счет создается автоматически, но чтобы войти в него все-таки приходится жать на Enter. Затем пользователь заполняет счет, жмет 2 раза на Esc и попадает в анкетную форму уже заполненой по этому счету накладной. Кому интересно, могу выслать исходник. Но это было написано для 5.2.
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Интерфейс Vschet
На 520, к сожалению, проверить не могу,т.к. нет этой версии. Может и правда на старых версиях глючило..не знаю.
Некоммерческое общение в форуме
-
- Постоянный гость
- Сообщения: 82
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва, Минск
- Контактная информация:
Re: Интерфейс Vschet
Дело в том, что в версии 5.85 этот интерфейс по умолчанию вызывает анкетную форму сам по себе, поэтому и получилось с PutCommand.
Re: Интерфейс Vschet
На 582 ТОЖЕ не работает )
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Интерфейс Vschet
Ребят, в общем - не спорьте )))
Устроили мы тут мозговой штурм этой проблемы. В общем этот случай из ряда, когда баг Атлантис оказался во благо в конкретном случае.
Поясняю почему.
PutCommand () действительно помещает в очередь на стек выполнение определенного события. Но - для ТЕКУЩЕГО ОКНА (см. документацию по функциям ВИП). При нахождении в коде текущего окна этого события, оно выполняется, стек очищается.
А если не находит и встречается переход на другое окно/интерфейс (модально) то стек не чистится и запись там как бы "подвисает" и после инициализации его начинается вызов помещенных в стек событий )))
собсно все... в общем - не мудрствуйте лукаво ))) Об этом баге уже отписано по назначению - обещались проверить и если что - исправить...
Устроили мы тут мозговой штурм этой проблемы. В общем этот случай из ряда, когда баг Атлантис оказался во благо в конкретном случае.
Поясняю почему.
PutCommand () действительно помещает в очередь на стек выполнение определенного события. Но - для ТЕКУЩЕГО ОКНА (см. документацию по функциям ВИП). При нахождении в коде текущего окна этого события, оно выполняется, стек очищается.
А если не находит и встречается переход на другое окно/интерфейс (модально) то стек не чистится и запись там как бы "подвисает" и после инициализации его начинается вызов помещенных в стек событий )))
собсно все... в общем - не мудрствуйте лукаво ))) Об этом баге уже отписано по назначению - обещались проверить и если что - исправить...
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Интерфейс Vschet
JackVen
А также по умолчанию он вызывает горячее меню и все, что я написал..
Напишите так:
Putcommand(cmDefault);
Putcommand(cmHotKeys);
Runinterface('Vschet',BaseDoc.Nrec);
А также по умолчанию он вызывает горячее меню и все, что я написал..
Напишите так:
Putcommand(cmDefault);
Putcommand(cmHotKeys);
Runinterface('Vschet',BaseDoc.Nrec);
Некоммерческое общение в форуме
-
- Постоянный гость
- Сообщения: 82
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва, Минск
- Контактная информация:
Re: Интерфейс Vschet
2 Косякин Игорь
Я просто факт привел, который реально проверил, что версии 5.85 без разницы стоит Putcommand(cmDefault) или нет, все равно вызывается анкетная форма(две недели назад я писал одну штуку и не знал как от этого избавиться)
Я просто факт привел, который реально проверил, что версии 5.85 без разницы стоит Putcommand(cmDefault) или нет, все равно вызывается анкетная форма(две недели назад я писал одну штуку и не знал как от этого избавиться)