Страница 1 из 2

Link-форма без вывода на экран

Добавлено: 20 дек 2004, 18:41
Deinis
Исходная задача:
Пользователь вводит накладную.
Затем запускает разноску ТХО либо распечатку Link-формы. Как правило - сразу разносит ТХО.
В ТХО в качестве параметра передается имя Link-формы.
Несмотря ни на какие действия на экран выходит пустой лист. Он не нужен совсем.
Не помогает даже .F 'NUL' - ругается. А без него - выводит.

.LinkForm 'GetSpSoprKAU' Prototype is 'prihnkl'
.NameInList 'Распределение спецификации по "внешней" аналитике'
.F 'NUL'
.begin
RunInterface('SpSoprKau',Накладная_нрек) ;
GetSpSoprKAU.FExit ;
end.
.{
.{
.}
.{CheckEnter PRIHNKL_SOPUSL
.}
.{?Internal;''<>''
.}
.}
.EndForm

Что посоветуете?

Re: Link-форма без вывода на экран

Добавлено: 21 дек 2004, 10:22
ira
Обсуждали, посмотри.
http://www.tyumbit.ru/galaktika/read.ph ... 792&t=3787

Re: Link-форма без вывода на экран

Добавлено: 21 дек 2004, 11:16
edward_K
в конце
.begin
prihnkl.fexit
end.

Re: Link-форма без вывода на экран

Добавлено: 21 дек 2004, 12:04
Priest Geo
??? !!!
Подтверждается проблема. Это как-то связано с прототипом tovn и prihnakl. С другими прототипами отрабатывает и .f 'nul' и .fexit, а с этими .fexit игнорируется, а на .f 'nul' при !выполнении! ругается >:(

Re: Link-форма без вывода на экран

Добавлено: 21 дек 2004, 12:33
Maverick
Это связано не с прототипом а с потоком, передаваемым в прототип. В этом потоке не отслеживается события Abort и Exit для формы, соответственно в поток они не попадают, и прототип, а сл-но и любая линк-форма созданная на данном прототипе игнорируют эти события, вызываемые в форме.

Re: Link-форма без вывода на экран

Добавлено: 21 дек 2004, 12:46
Priest Geo
Ну да, это корректнее :)

Добавлено: 18 дек 2008, 08:47
Алексей
В общем перечитал всё что можно по этой теме. :) Нашел прототип SFO_Act, это акт возврата спецодежды из эксплуатации.

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

Пробовал SFO_Act.fBreak; SFO_Act.fExit; - нет результата.
Пробовал в условии поставить флажок и уже в конце, перед самим endform поставить эти строчки по флажку - результатов 0.

Почитав мессаж выше прихожу к мнению что нет обработки на событие fExit или fBreak в самой вип программе при обработке потока?

Добавлено: 18 дек 2008, 10:30
edward_K
fexit зависит от способа вызова showfile и от места вызова.
попробуйте вызвать в начале формы - наверняка сработает.
Если после последнего цикла не выводятся поля это ошибка програмиста. В любом случае если в одном месте пашет, а в другом нет, надо писать в ТП с указанием места где пашет, а где нет.
.f "NUL" вылетало на какой то версии атлантиса.

Добавлено: 18 дек 2008, 10:45
Алексей
1. пробовал и в самом начале формы и в самом конце и в середине.
2. текст, если вставить перед .endform - выводится, т.е. все feBreak'и сделаны.
3. .f"NULL" не понял, это директива формы? Если да, то мне не подходит, т.к. если проверка прошла нормально - форма должна показаться, иначе закрыться.

А чем ещё, кроме Showfile можно показать обычную фрм-ку?

Добавлено: 18 дек 2008, 12:42
Алексей
Мда, сам дурак, как говорится. Вместо имени линкформы писал имя прототипа. :)

Но всё равно, если поставить оператор вначало - форма выдается "пусто" но не закрывается.
Если поставить в самый конец - форма выдается полностью!

Т.е. ощущение такое что по команде fExit - форма просто перестает формироваться, но то что уже сформировалось - всё равно покажется юзеру.

Как выход сделал проверку в самом начале и если что не так - пустая страница.

Добавлено: 18 дек 2008, 13:03
edward_K
до сих пор надо было писать именно имя прототипа. Да и по форуму поищите fexit.

Добавлено: 18 дек 2008, 13:32
Алексей
да искал, везде инфа старых версий.

Добавлено: 05 апр 2010, 14:37
Gameus_
Темка старая, но вопрос такой же :(

Прототип tovn, fExit не отрабатывает, кто-нить нашел как это победить ? Пустой лист никак не устраивает :(

Добавлено: 05 апр 2010, 14:45
RAJAH
Может,

Код: Выделить всё

{
  ...
  <имя формы>.fexit;
  exit;
  ...
}

Добавлено: 05 апр 2010, 14:58
Gameus_
не, тоже не работает, пробовал