powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Reports
17 сообщений из 17, страница 1 из 1
Reports
    #32830396
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чего-то немогу догнать...
Есть 2 курсора, я их проиндексировал

SELECT ....
INDEX ON cur_firm.code TO cur_firm
SELECT ....
INDEX ON cur_serv.code TO cur_serv
SET RELATION TO code INTO cur_firm

затем хочу посмотреть их в отчете (прилагается) но неполучатеся...
может кто подскажет что я делаю не так.
...
Рейтинг: 0 / 0
Reports
    #32830422
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты часом не перепутал

SELECT ....
INDEX ON cur_serv.code TO cur_serv
SELECT ....
INDEX ON cur_firm.code TO cur_firm
SET RELATION TO code INTO cur_serv
...
Рейтинг: 0 / 0
Reports
    #32830502
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Parent cursor - cur_firm
chield - cur_serv
связь один-много
...
Рейтинг: 0 / 0
Reports
    #32830509
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так а вязал то ты наоборот.
Я тебе селекты и переставил.
...
Рейтинг: 0 / 0
Reports
    #32830513
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И релайшин подправил
...
Рейтинг: 0 / 0
Reports
    #32830542
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и как это я сам прохлопал...
теперь в отчет попадает только первая запись из cur_firm
...
Рейтинг: 0 / 0
Reports
    #32830564
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Укажи в Data Grouping что ты группируешь по cur_firm.code, т.к. поле code есть в обеих таблицах нужно как то определиться :)
...
Рейтинг: 0 / 0
Reports
    #32830582
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что-то еще не так...
я все изменил - но всеравно в отчет попадает только 1-я запись из cur_firm и 1-я запись из cur_serv
...
Рейтинг: 0 / 0
Reports
    #32830590
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда выложи кусок таблиц, чтобы можно было посмотреть вживую.
...
Рейтинг: 0 / 0
Reports
    #32830752
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да там ничего необычного нету.
создай два курсора cur_firm (code i,name c(50)) cur_serv (code i, date d,topic c(50), price n(9,2))
...
Рейтинг: 0 / 0
Reports
    #32830770
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том то и дело, что у меня все кажет путем, а у тебя - нет.
...
Рейтинг: 0 / 0
Reports
    #32830835
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT firm.code,firm.name,firm.city,firm.director,firm.phone_g,firm.date,firm.type FROM firm WHERE &prFilt ORDER BY code ASC INTO CURSOR cur_firm NOFILTER READWRITE 
INDEX ON cur_firm.code TO cur_firm

SELECT serv.date,serv.topic,serv.price,serv.theme,serv.code,serv.type,RECNO() AS rec FROM serv WHERE serv.code = cur_firm.code HAVING BETWEEN(serv.date,d_from,d_to) INTO CURSOR cur_serv NOFILTER READWRITE 
INDEX ON cur_serv.code TO cur_serv

REPORT FORM SYS(2003)+"\REPORTS\serv" PREVIEW
...
Рейтинг: 0 / 0
Reports
    #32830901
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты проверял ЧТО у тебя в курсоры отобралось?
...
Рейтинг: 0 / 0
Reports
    #32830910
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, в проекте в гридах все видно.
там простые условия, по дате, по названию фирмы и т.д.
также отчет должен работать и по всей табилице (без отбора)
...
Рейтинг: 0 / 0
Reports
    #32830944
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ради эксперимента открой исходные таблицы с алиасами курсоров, повяжи их и запусти отчет га предпросмотр. Что будет?
...
Рейтинг: 0 / 0
Reports
    #32831011
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Команда SET RELATION организует связь вида один-к-одному. Чтобы организовать связь вида один-ко-многим необходимо дать еще команду SET SKIP. Т.е. в твоем случае это будет что-то вроде:

Код: plaintext
1.
2.
3.
4.
SELECT cur_serv
INDEX ON code TAG code
SELECT cur_Firm
SET RELATION TO code INTO cur_serv
SET SKIP cur_serv

Для организации связи индекс нужен только в подчиненной таблице. Индекс в главной таблице обеспечит нужный порядок следования.

Хотя, если таблицы - это результат SQL-запросов, то логичнее сделать одну общую таблицу, связывающую cur_serv и cur_firm и не мудрить с Relation.
...
Рейтинг: 0 / 0
Reports
    #32831145
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин, как же это я о SET SKIP TO забыл... стыдно стало аж покраснел...
Большое спасибо Владимиру
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Reports
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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