08.04.2008, 12:40 | #1 |
Участник
|
Пытаюсь запустить одну форму, два раза через кодеюнит... пишу:
Код: SCB.SETFILTER(Type,'=%1',SCB.Type::Rek); IF SCB.FIND('-') THEN "Open Form SCB.Rek"; COMMIT; FormSCB.RUNMODAL; CLEAR(FormSCB); SCB.SETFILTER(Type,'=%1',SCB.Type::Inn); IF SCB.FIND('-') THEN "Open Form SCB.Inn"; COMMIT; FormSCB.RUNMODAL; "форма с которой запускается коденит", не может быть закрыто, так как блокировано "Форма которая открывается: FormSCB". |
|
08.04.2008, 14:33 | #2 |
Участник
|
А что такое вот это - "Open Form SCB.Rek"? Это процедура? Что делает?
|
|
08.04.2008, 14:44 | #3 |
Участник
|
Это процедура.... я там передаю параметры на форму
Код: tParam:=tParam::Rek; IF Setup."Account Type"= Setup."Account Type"::Клиент THEN bParam :=1 ELSE IF Setup."Account Type"= Setup."Account Type"::Поставщик THEN bParam :=2 ELSE bParam:=0; SCB.SETFILTER(Type,'=%1',SCB.Type::Rek); FormSCB.SetParam(bParam,tParam); FormSCB.SETTABLEVIEW(SCB); FormSCB.SETRECORD(SCB); FormSCB.CAPTION('заголовок"); EXIT; |
|
08.04.2008, 15:11 | #4 |
Участник
|
Цитата:
2. Есть подозрение, что тут важно - откуда вы запускаете этот код (контекст). Просто попробовал написать для теста такой код - все прокатило: Код: RCountry.FIND('-'); Countries.SETTABLEVIEW(RCountry); Countries.SETRECORD(RCountry); Countries.CAPTION('заголовок'); commit; Countries.RUNMODAL; CLEAR(Countries); RCountry.FIND('-'); Countries.SETTABLEVIEW(RCountry); Countries.SETRECORD(RCountry); Countries.CAPTION('заголовок'); commit; Countries.RUNMODAL; |
|
08.04.2008, 16:06 | #5 |
Участник
|
На то и RUNMODAL чтобы один раз было открыто. Используйте RUN
__________________
Want to believe... |
|
09.04.2008, 14:06 | #6 |
Участник
|
вернее это не ошибка, а Сообщение...
randrews , Ну явно это так, и при COMMIT, он хочет закрыть первоначальную форму... а закрыть ее он не может так как с нее запускается кодеюнит и он работает..и закрыться форма видемо может только после выполнения кода в кодеюните!..... Если COMMIT не писать, то естествено не вываливается сообщение это... а вываливается уже другая о том, что нужно использовать COMMIT. P.S К счастью, для Вас, не Тимур DA NEAL, Если даже один раз писать RUNMODAL, все тоже сообщение выходит... |
|
09.04.2008, 14:13 | #7 |
MCTS
|
А что делает форма FormSCB когда запускается?
|
|
09.04.2008, 14:23 | #8 |
Участник
|
В Форма Client, запускается кодеюнит:
Код: import."Import Client Bank"(DateFrom, DateTo, "Bank Account No."); Код: SCB.SETFILTER(Type,'=%1',SCB.Type::Rek); IF SCB.FIND('-') THEN BEGIN "Open Form SCB.Rek"; COMMIT; FormSCB.RUNMODAL; END; Код: tParam:=tParam::Rek; IF Setup."Account Type"= Setup."Account Type"::Êëèåíò THEN bParam :=1 ELSE IF Setup."Account Type"= Setup."Account Type"::Ïîñòàâùèê THEN bParam :=2 ELSE bParam:=0; SCB.SETFILTER(Type,'=%1',SCB.Type::Rek); FormSCB.SetParam(bParam,tParam); FormSCB.SETTABLEVIEW(SCB); FormSCB.SETRECORD(SCB); FormSCB.CAPTION('заголовок'); EXIT; |
|
09.04.2008, 14:26 | #9 |
Участник
|
При Открытии формы, я там обробатываю параметры которые передовал из кодеюнита.
|
|
09.04.2008, 14:31 | #10 |
Участник
|
|
|
09.04.2008, 14:44 | #11 |
Участник
|
почему выполняет, но опять же с этим сообщением:
форма с которой запускается коденит", не может быть закрыто, так как блокировано "Форма которая открывается: FormSCB". |
|
09.04.2008, 15:01 | #12 |
Участник
|
Так зачем COMMIT ?
Если есть код, который не видим, то попробуйте COMMIT поставить до работы с SCB. Судя по коду (кроме непонятной строки FormSCB.SetParam(bParam,tParam); ) там нет изменений данных. |
|
09.04.2008, 15:02 | #13 |
MCTS
|
Уберите commit-ы, а runmodal-ы замените на run-ы.
|
|
09.04.2008, 15:17 | #14 |
Участник
|
В этой функции import."Import Client Bank"(DateFrom, DateTo, "Bank Account No.");
идет работа с SCB таблице.... =)) apanko, но тогда в этом случае, будут открываться сразу две формы!.. а надо по очереди... |
|
09.04.2008, 15:20 | #15 |
MCTS
|
Зато узнаете в них ли проблема.
Тогда вызов других форм перенесите из кодеюнита в первую форму (Клиент?). И еще раз про последовательность: Форма Клиент из нее запускается Кодеюнит ХХХ, функция Импорт --Функция Импорт модифицирует (?) таблицу и вызывает форму СКБ, два раза ----Форма СКБ1. Делает непонятно что. ----Форма СКБ2. Делает непонятно что еще раз. |
|
09.04.2008, 15:54 | #16 |
Участник
|
Ни чего не понимаю... Уже делаю тупо, запускаю из одной формы, другую...Без всякого лишнего кода!...
И все равно такая фигня |
|
09.04.2008, 16:15 | #17 |
MCTS
|
Вызов кодеюнита (и других форм) как инициируется на главной форме? По кнопке?
|
|
09.04.2008, 18:32 | #18 |
Участник
|
by_HT, а функцию CLOSE не пробовали использовать?
|
|
10.04.2008, 08:05 | #19 |
Участник
|
apanko, да по Кнопке!!!!!
Milk, нет не пробывал...а смысл ее использовать? |
|
10.04.2008, 09:02 | #20 |
MCTS
|
В свойстве кнопки PushAction, что указано?
|
|