Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Где связные таблицы ? / 12 сообщений из 12, страница 1 из 1
28.04.2004, 16:20
    #32501092
Remans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
Имеется несколько таблиц связанных через Set Relation

Я пишу
Create Report Myrep From MainTable
Modify Report Myrep

Затем
Menu->Report->Insert Controls-Field
Вызываю Expression Builder, и там, где, как мне казалось, должны стоять поля всех связных таблиц, стоят только поля из таблицы MainTable.
А где же остальные, те которые связаные ?
...
Рейтинг: 0 / 0
28.04.2004, 17:04
    #32501238
Где связные таблицы ?
Наверно, базы данных не хватает...
...
Рейтинг: 0 / 0
29.04.2004, 11:18
    #32502130
Remans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
А есть ли какая-нибудьь команда которая закидывает все открытае таблицы в базу данных ?
...
Рейтинг: 0 / 0
29.04.2004, 11:38
    #32502191
Где связные таблицы ?
Есть Project Manager.
Создайте в нём базу и включите в неё таблицы, затем установите в ней связи (Relation) между таблицами. Тогда Builder всё увидит и сделает правильно.
...
Рейтинг: 0 / 0
29.04.2004, 14:15
    #32502684
Remans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
У меня немного другое.
Есть ListBox, в него загружается таблица, в которой имеются поля содержащие в себе : имена загружаемых отчетов, имена таблиц участвующих в связях с данной и, соответственно, имена полей по которым осуществляется связь. Поль-ль кликает на один из эл-тов ListBox'a - устанавливаются связи с таблицами и загружается сответствующий отчет для редактирования
Modify Report Myrep.

Как мне быть в этом случае, чтобы при редактировании отчета были видны все связи?
...
Рейтинг: 0 / 0
29.04.2004, 20:40
    #32503510
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
У вас неправильное понимание того, что такое связи в FoxPro. Почитайте здесь

http://www.foxclub.ru/kb/index.php?sid=35321&aktion=artikel&rubrik=004&id=103&lang=ru

Раздел "Связи и отношения между таблицами"

Для отчетов вам надо:

1) Обязательно настроить связи один-ко-многим
2) Установить главную таблицу

Это все можно сделать в DataEnvironment отчета. Ну, или программно, если очень надо.
...
Рейтинг: 0 / 0
30.04.2004, 10:54
    #32503947
Remans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
http://www.foxclub.ru/kb/index.php?sid=35321&aktion=artikel&rubrik=004&id=103&lang=ru В принципе, в противовес "постоянной связи" этот вид связи следовало бы назвать "временная связь". В том смысле, что данный тип связи устанавливается "по требованию". Т.е. вот надо мне в этом месте организовать связь, я тут же ее и организовываю, используя команду SET RELATION

http://www.foxclub.ru/kb/index.php?sid=35321&aktion=artikel&rubrik=004&id=103&lang=ruЕсли таблицы имеют связь вида один-ко-многим, то для печати в отчете этих "многих" обязательно следует использовать команду SET SKIP TO

Может я чего-то недопонимаю, но именно эту связь я и имею в виду
...
Рейтинг: 0 / 0
30.04.2004, 11:36
    #32504074
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
Что Вы подразумеваете под фразой

Как мне быть в этом случае, чтобы при редактировании отчета были видны все связи?

Что значит "видны"?
...
Рейтинг: 0 / 0
30.04.2004, 11:49
    #32504118
Remans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
Что значит "видны"?
Имеется несколько таблиц связанных через Set Relation

Я пишу
Create Report Myrep From MainTable
Modify Report Myrep

Затем
Menu->Report->Insert Controls-Field
Вызываю Expression Builder, и там, где, как мне казалось, должны стоять поля всех связных таблиц, стоят только поля из таблицы MainTable.
А где же остальные, те которые связаные ?


Или, если просто отредактировать уже имеющийся отчет то таблиц вообще не будет.
...
Рейтинг: 0 / 0
30.04.2004, 12:33
    #32504284
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
Таблицы-источники появляются в построителе выражений только если они включены в DataEnvironment отчета. Но Quick Report на это не рассчитан. Он берет только одну таблицу-источник в свой DataEnvironment.

Если бы отчет был объектом, то можно было бы программно добавить нужное количество курсоров как-то так:

rep.DataEnvironment.AddObject("Tab1","Cursor")

Однако созданный таким образом отчет - это НЕ объект. Поэтому остается использовать "хакерские" трюки

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE REPORT MyReport.frx FROM Tab1
USE MyReport.frx IN  0 
LOCAL lcPropertis
lcPropertis = 'Alias = "Tab2"' +chr( 13 )+chr( 10 )+;
'Database = MyBase.dbc'+chr( 13 )+chr( 10 )+;
'CursorSource = "Tab2"'+chr( 13 )+chr( 10 )+;
'Name = "Cursor2"'

INSERT INTO MyReport (Platform, ObjType, Name, Expr) ;
VALUES ("WINDOWS", 26 ,"cursor",m.lcPropertis)

USE IN MyReport
MODIFY REPORT MyReport.frx


По аналогии добавь объект Relation в DataEnvironment отчета. Какие именно значения нужны можешь посмотреть сначала вручную добавив нужные объекты в DataEnvironment отчета, а потом посмотрев содержимое полученного файла (отчет - это обычная таблица DBF, просто с измененным расширением)
...
Рейтинг: 0 / 0
07.05.2004, 14:05
    #32510706
Remans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
To ВладимирМ
По аналогии с тем, что Вы мне говорили, пишу:
...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Create report Myreport.frx FROM Tab1
USE MyReport.frx IN  0 
LOCAL lcPropertis
lcPropertis = 'Alias = "Tab2"' +chr( 13 )+chr( 10 )+;
'CursorSource = "Tab2"'+chr( 13 )+chr( 10 )+;
'Name = "Cursor2"'
  INSERT INTO MyReport (Platform, ObjType, Name, Expr) ;
  VALUES ("WINDOWS", 26 ,"cursor",m.lcPropertis)

LOCAL lcPropertis
lcPropertis = 'Alias = "Tab3"' +chr( 13 )+chr( 10 )+;
'CursorSource = "Tab3"'+chr( 13 )+chr( 10 )+;
'Name = "Cursor3"'
  INSERT INTO MyReport (Platform, ObjType, Name, Expr) ;
  VALUES ("WINDOWS", 26 ,"cursor",m.lcPropertis)

lcPropertis = 'ParentAlias = "Tab2"' +chr( 13 )+chr( 10 )+;
'RelationalExpr = "kod2"' +chr( 13 )+chr( 10 )+;
'ChildAlias = "Tab1"' +chr( 13 )+chr( 10 )+;
'ChildOrder = "kod1"' +chr( 13 )+chr( 10 )+;
'Name = "Relation1"'
  INSERT INTO myrep (Platform, ObjType, Name, Expr) ;
  VALUES ("WINDOWS", 26 ,"relation",m.lcPropertis)

lcPropertis = 'ParentAlias = "Tab3"' +chr( 13 )+chr( 10 )+;
'RelationalExpr = "kod3"' +chr( 13 )+chr( 10 )+;
'ChildAlias = "Tab2"' +chr( 13 )+chr( 10 )+;
'ChildOrder = "kod2"' +chr( 13 )+chr( 10 )+;
'Name = "Relation2"'
  INSERT INTO myrep (Platform, ObjType, Name, Expr) ;
  VALUES ("WINDOWS", 26 ,"relation",m.lcPropertis)

USE IN MyReport
MODIFY REPORT MyReport.frx

Fox выдает мне ошибку на MODIFY REPORT:
The ChildOrder property of a relation object in the data environment is no longer valid. The relation is being removed (Error 1478)
"Due to data environment changes, the relation of a ChildOrder property has been removed."
...
Рейтинг: 0 / 0
07.05.2004, 14:31
    #32510774
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где связные таблицы ?
Ну, тут уже мог бы и сам догадаться. :)

Это сообщение об ошибке говорит о том, что в качестве ChildOrder ты указал несуществующее имя индексного тэга структурного индексного файла соответствующей таблицы.

Убедись в том, что для таблицы Tab1 есть структурный индексный файл и в этом файле есть тэг с именем kod1.

Соответственно, для таблицы Tab2 есть структурный индексный файл и в этом файле есть тэг с именем kod2.

Что такое структурный индексный файл и тэг объяснять надо?
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Где связные таблицы ? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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