powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отображение в гриде инф. разных табл.
6 сообщений из 6, страница 1 из 1
Отображение в гриде инф. разных табл.
    #32189830
Danil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача: отобразить в гриде столбцы разных таблиц!
Таблиц 2-е!
Источником на грид ставлю - "documents"
и 2-а столбца ставлю на поля этого documents
третий ставлю controlsource="factory.name"
окружение эти 2-е таблицы!
связка д. идти по factory.id=documents.fact_id
связку где ставить я незнаю...
подскажите может это глюк vf8?

p.s. используется visual foxpro 8
...
Рейтинг: 0 / 0
Отображение в гриде инф. разных табл.
    #32190022
Danil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неужели никто на такой простой вопрос не ответит! Я тока пару дней пишу на фоксе, на языках типа vc++/vb6 делал это не однократно... а тут... неужели столь тривиальную задачу никто не делал???
...
Рейтинг: 0 / 0
Отображение в гриде инф. разных табл.
    #32190041
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо либо писать запрос в курсор , либо создавать local view

простейший пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select doc.*,fact.name as f_name ;
from documents doc ;
  inner join factory fact ;
on fact.id = doc.fact_id ;
into cursor curDocFact

thisform.GrdDocFact.RecordSourceType =  1  && Alias
thisform.GrdDocFact.RecordSource =  "curDocFact" 

Правда изменение данных в курсоре не будет отражаться в таблицах - сделайте local view для этого...
...
Рейтинг: 0 / 0
Отображение в гриде инф. разных табл.
    #32190380
karly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще-то самый правильный способ -
воспользоваться советом Crip

Но я тебе подскажу самый быстрый.
Попробуй, а потом переделаешь, как надо

У тебя есть индекс по полю Id в таблице factory?

Установи связь между таблицами.
Напиши в init формы
Код: plaintext
1.
Set Order to ID in Factory
Set Relation to Fact_ID into Factory in Documents

Либо проделай это визуально в DataEnvironment -
перетащи мышкой поле Documents.Fact_ID на индекс
ID в таблице Factory.

Должно заработать. Если появятся глюки (первая строка
показывает не то, что надо, и т.п.), они лечатся примерно так
Код: plaintext
1.
2.
Select Documents
Goto Recno()
ThisForm.Refresh()
...
Рейтинг: 0 / 0
Отображение в гриде инф. разных табл.
    #32190415
Samir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю как там в VFP8, а в VFP6 делаю так:

View->Data Environment...

1. Добавляю две таблицы в среду данных
2. У этих таблиц должны быть индексы, в одной Primary во второй Regular (иначе ничего не получится)
3. Создаю связь (выделяю поле одной таблицы и сооединяю с полем другой таблицы, если нет индексов FoxPro предложит создать их)

4. В свойствах соединения
OneToMany = .T.

5. В свойствах ГРИДа
RecordSource = "Алиас таблицы с Regular индексом"

6. В свойствах колонок в которых должы светится значения из первичной таблицы
ControlSource = "Table.field"
...
Рейтинг: 0 / 0
Отображение в гриде инф. разных табл.
    #32190735
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поделюсь личным опытом как бы в дополнение к karly

На форме для клиента обычно я рисую два grid (после установки relationship, указанных karly). Когда клиент выбирает в первом grid требуемый документ, то во втором автоматически прорисовывается то что входит в этот документ (иногда вложение бывает довольно длинным, а клиент хочет все видеть и находить быстро .

Но опять-же все этьо на любителя Да вы и не описали, что у вас за задача.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отображение в гриде инф. разных табл.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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