powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 2 грида
8 сообщений из 8, страница 1 из 1
2 грида
    #32938880
МаринаЧ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, дорогие форумчане!
Я программирую на 6 VFP. Вопрос мой таков:
В форме есть два грида: в первом отражаются данные из основной таблицы, во втором из зависимой. Таблицы связаны по полю код.
Я делала два варианта:
1) С помощью датаинверомент. Но в этом случае при добавлении или изменение данных во второй таблице в другой форме после возвращения в эту форму, данных во втором гриде нет. Грид сам не белое пятно, так как я свойства грида при активации формы востанавливаю, но данные отсутствуют. если закрыть форму и вновь ее открыть то данные появляются.
2) в свойстве первого грида AfterRowCol.. устанавливаю фильтр по второй базе
и перерисовываю оба грида. Датаинверомент совсем отсутствует. В этом случае данные отображаются нормально, если есть данные в первом гриде (на таблицу тоже наложено условие по дате). Но если они отсутствуют, и первый грид пуст, то во втором высвечиваются все записи без разбора второй таблицы.
Может кто подскажет?
...
Рейтинг: 0 / 0
2 грида
    #32938947
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2) в свойстве первого грида AfterRowCol.. устанавливаю фильтр по второй базе
и перерисовываю оба грида.

подробнее моно
вообще я например фильтер в инете ставлю а при смене колонки рефрешь
такую задачу как вы описали не делал но не поленился создать два курсора установил один фильтр и начал эксперементировать со вторым таки всё нормально если пусто справа то пусто и слева
...
Рейтинг: 0 / 0
2 грида
    #32939986
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марина, посмотри, пожалуйста статью

Раздел "Связи и отношения между таблицами"
http://www.foxclub.ru/kb/index.php?sid=114698&aktion=artikel&rubrik=004&id=103&lang=ru

У меня такое ощущение, что ты часть предложения взяла из одного вопроса и приставила к другому.

При связи, настроенной в DataEnvironment, вообще никаких специальных действий и настроек в Grid делать не надо.

Факт наличия/отсутствия DataEnvironment в принципе не влияет на установку фильтров в процессе работы.
...
Рейтинг: 0 / 0
2 грида
    #32940262
МаринаЧ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, забыла указать, что работаю с таблицами не из базы данных, а со свободными таблицами.
...
Рейтинг: 0 / 0
2 грида
    #32940289
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МаринаЧИзвините, забыла указать, что работаю с таблицами не из базы данных, а со свободными таблицами.
В данном случае, это не имеет значения. Ну, разве что, решить вопрос через Local View не получится. Все-таки, почитай статью.
...
Рейтинг: 0 / 0
2 грида
    #32942568
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ВладимирМ!

> В данном случае, это не имеет значения.

Эт точно.

> Ну, разве что, решить вопрос через Local View не получится.

Эт неточно :) Никто не запрещает слепить базу (да хоть бы и временную! прям
из main.prg скриптик и выполнить) и там представления на совершенно
свободные таблицы :) Другой вопрос что тогда надо пути доступа прописывать,
или руками таблицы открывать, ибо автоматом может не прокатить (не найти)...

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
2 грида
    #32944401
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте перед перерисовкой Grid'ов в родительской базе сэмитировать переход на запись, Кажется можно GO RECNO(), но именно в родительской.
...
Рейтинг: 0 / 0
2 грида
    #32944848
lo-pata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во втором варианте, я так понимаю, стоит фильтр по типу set filter to table2.key=table1.key. Вижу пару вариантов:
Код: plaintext
1.
2.
1. lcUsl=iif(empty(table1.key), lcTemp, table1.key)
    set filter to table2.key=lcUsl
где lcTemp - какое-нибудь нереальное условие - чтобы ни одна запись table2 не могла ему удовлетворять.

2. перед установкой фильтра в случае empty(table1.key) - во втором гриде ставить RecordSource=''. Т.е. , грубо говоря, - втупую очищать грид.
Код: plaintext
1.
2.
3.
4.
5.
if empty(table1.key)
   thisform.grid2.datasource=''
else 
   set filter to table2.key=table1.key
endif 
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 2 грида
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]