|  25.05.2007, 13:47 | #1 | 
| Участник | 
			
			Банальная вроде бы задача, но я чего-то не могу разобраться. Существует несколько карточных форм (фильтруют записи по значению одного поля) и табличная форма, ссылающиеся на одну и ту же таблицу. Задача на карточных формах сделать кнопку вызова табличной формы (чтобы в табличной форме при этом применялся такой же фильтр). Ну и RunFormOnRec соответственно тоже. Ну это не сложно - просто ставишь Run Form и указываешь RunFormView с такими же значениями как и в картотечной форме. НО нужно еще на табличной форме сделать меню с фильтрами. Делаю фильтры с помощью SETVIEW. Но у мнея складываеца такое впечатление, что SETVIEW фильтрует записи таблицы, а в то же время сама табличная форма продолжает фильтровать записи для отображения с теми параметрами, что были указаны в RunFormView при ее вызове. Чтобы это обойти стал делать по другому: RunFormView в картотечных формах не заполнять, а этот же фильтр ставить в OnAfterGetCurrRecord ориентируясь на значение поля, в текущей записи, т.к. она соответствует записи в карточной форме. Фильтры взаимоисключающие. И получается следущее. Вызываю табличную форму из первой карточной - все отлично. Закрываем ее, но фильтр то на источнике данных остается. (  в этом месте описания я понял, что его надо убирать перед закрытием формы OnQueryCloseForm()  SETVIEW('') ) Обидно. Так долго писал, грамотно излагая. Как, все таки, верно говорится: "Правильно сформулированный вопрос уже содержит 80% ответа." | 
|  | 
|  25.05.2007, 15:06 | #2 | 
| Участник | 
			
			Рановато я обрадовался   Теперь другая проблема с формами. Форма кадровые приказы и в ней сабформа приказ на прием к примеру. Надо чтобы при вводе фамилии она заносилась в название приказа. Пишу следущее в TextBox OnAfterValidate сабформы, который содержит фамилию: Код: PersOrderHeader.GET("Order No.");
PersOrderHeader.Name:='Прием '+"Last Name";
PersOrderHeader.MODIFY;Если я пишу так: Код: PersOrderHeader.GET('ПРИМ070016'); //взял для отладки номер конкретного приказа
PersOrderHeader.Name:='Прием '+"Last Name";
PersOrderHeader.MODIFY;Подскажите как надо правильно делать? | 
|  | 
|  25.05.2007, 15:10 | #3 | 
| Участник | 
			
			Форма не знает, что ей нужен UPDATE;
		 | 
|  | 
|  25.05.2007, 15:19 | #4 | 
| Участник | 
			
			можно сделать так: объявить переменную, такого же типа, как Rec, назовем ее NewRec; NewRec.reset(); NewRec.filtergroup(2); устанавливаем фильтры NewRec.filtergroup(0); form.run(0, NewRec); | 
|  | 
|  25.05.2007, 15:23 | #5 | 
| Участник | 
			
			Не лазил в эту форму, но могу предположить, что breakpoint на строку PersOrderHeader.GET("Order No."); поможет - посмотрите перед гетом чему равно "Order No.". Могу предположить, что имя вносите до вставки самой строки (в сабформе) (при DelayedInsert=TRUE например) | 
|  | 
|  25.05.2007, 15:31 | #6 | 
| Участник | 
			
			2 randrews Нет в сабформе я пробовал менять в уже введенных строчках - в таблицу пишется а на контроле главной формы не отображается. как вот это победить? | 
|  | 
|  25.05.2007, 18:11 | #7 | 
| Участник | 
			
			Никак. Из сабформы основную форму обновить нельзя   .  Ну или только на основную повесить таймер, который будет ее обновлять. Но отладка будет затруднительна.) 
				__________________ Должен остаться только один. | 
|  | 
|  28.05.2007, 11:41 | #8 | 
| Участник | 
			
			А может можно както повесить UPDATE на сочетание горячих клавишь, а из сабформы както его сэмулировать? Еще какая-то странность переименовал дал одной кнопке Name вместо номера и теперь навижн ругаеца при вызове формы "Форма не распознает элемент 1000000060", что это такое? | 
|  | 
|  28.05.2007, 12:57 | #9 | 
| Участник | 
			
			У какого-то элемента, возможно сво-во ParentControl ссылается на этот номер. Выгрузите объект в TXT - поищите по "1000000060",  где эта цифра используеится
		 | 
|  | 
|  28.05.2007, 13:38 | #10 | 
| Участник | 
			
			Проверил - не ссылается. Странно вообще. Компилируется нормально, а вот при вызове формы ругается. Причем я переименовал только 1 кнопку, которую сам до этого же и добавил. Просто сегодня мне стало надо делать ее невидимой в некоторые моменты и я дал ей имя чтоб к ней обращаться из кода. Теперь если я у нее имя удаляю и ставится номер который был по умолчанию. То при запуске формы навижн всерно ругается только на слдеующий контрол, если у него тож удаляю имя, то еще на следующий... Что происходит то вообще? Не навижн, а сплошные глюки :/ | 
|  | 
|  29.05.2007, 09:57 | #11 | 
| Участник | 
			
			Помогло только следующее: Импортировал рабочий вариант формы, заново добавил туда кнопки, сразу же их переименвал и потом написал их триггеры. Теперь все заработало. Видимо когда переименовываешь контрол, у которого уже описаны некторые тригееры, компилятор Навижена компилит какую-то ерунду, несмотря на то что в исходниках все правильно. | 
|  |