powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / несколько таблиц в отчете VFP 9
16 сообщений из 16, страница 1 из 1
несколько таблиц в отчете VFP 9
    #35281318
Johnny_lcool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно тема. Поискал по форуму - ничего похожего не нашел. А суть такова - надо, чтобы в отчете выводилось 3 различных таблицы одна следом за другой.
Попытка создать три data-области привели к тому, что записи из 3 таблиц всего лишь чередуются одна за другой. Да и добавить заголовок к таблице не представляется возможным.
Может есть вариант как это дело обойти или я просто чего-то не знаю. Нужна помощь!
С уважением!
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #35281381
Johnny_lcool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прочитал здесь

но проблема в том, что таблицы попадают из SQL server - 3 разных по строению и содержанию таблицы.
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #35281657
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnny_lcoolСобственно тема. Поискал по форуму - ничего похожего не нашел. А суть такова - надо, чтобы в отчете выводилось 3 различных таблицы одна следом за другой.
Попытка создать три data-области привели к тому, что записи из 3 таблиц всего лишь чередуются одна за другой. Да и добавить заголовок к таблице не представляется возможным.
Может есть вариант как это дело обойти или я просто чего-то не знаю. Нужна помощь!
С уважением!
Нет ничего в этом сложного:
1. Создаешь фиктивный курсор (таблицу) с одной записью:
Код: plaintext
1.
CREATE CURSOR FalseCursor (Fix I)
INSERT INTO FalseCursor (Fix) VALUES (  1  )
2. Создаешь во всех своих трех таблицах фиктивные индексы и связь с фиктивным курсором через SET RELATION:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT MyTable1
INDEX ON .T. TAG Fix
SELECT MyTable2
INDEX ON .T. TAG Fix
SELECT MyTable3
INDEX ON .T. TAG Fix
SELECT FalseCursor
SET RELATION TO .T. INTO MyTable1 ADDITIVE
SET RELATION TO .T. INTO MyTable3 ADDITIVE
SET RELATION TO .T. INTO MyTable3 ADDITIVE
3. В отчете делаешь три Detail Band с ОБЯЗАТЕЛЬНЫМ указанием в их свойстве "Target alias expression" имен своих таблиц в виде строковых констант (или переменных).
Например, для первой таблицы в свойстве "Target alias expression" первого Detail Band должно быть: "MyTable1". Кавычки обязательны!
Для каждого Detail Band создаешь свой Header и Footer, путем выбора свойства "Associated header and footer band". Добавляешь в эти Header-ы и Footer-ы необходимые элементы дизайна данной таблицы.
4. Выводишь в каждом из Detail Band поля "своей" таблицы с обязательным указанием алиаса перед названием поля.
5. Выбираешь фиктивную таблицу (см. п.1) и запускаешь отчет:
Код: plaintext
1.
SELECT FalseCursor
REPORT FORM ....
С уважением, Алексей
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #35305181
Johnny_lcool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверено! Работает просто отлично! Можно тему оставить на будущее...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
несколько таблиц в отчете VFP 9
    #38594272
А. С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подниму тему.
Реализован данным методом отчет, состоящий из двух одинаковых Details. То есть в Details1 и в Details2 выводятся данные с одного курсора, сделано для того, чтобы распечатать на одном листе 2 копии квитанции.
Проблема вылезла при печати отчета, в котором строк больше в курсоре, Details которых не умещается на одной странице.
Попробовал в свойствах Details2 указать значение поля "Start detail set on new page when less then:" - 14.00, то есть чуть меньше половины листа А4. Предполагая что если на листе остается меньше 14 см - то печать Details2 начнется на новом.
Так и произошло, первый печатается нормально, второй лист печатается шапка и подвал тоже нормально, а вот значение из курсора выводится только первая запись.

Попробовал сделать клон первого курсора, в Details2 указал откуда взять данные - та же петрушка.
вот текст:
SELECT * FROM cMyCursor1 INTO CURSOR cMyCursor2 NOFILTER
CREATE CURSOR FalseCursor (Fix I)
INSERT INTO FalseCursor (Fix) VALUES ( 1 )

SELECT cMyCursor1
INDEX ON .T. TAG Fix
SELECT cMyCursor2
INDEX ON .T. TAG Fix
SELECT FalseCursor
SET RELATION TO .T. INTO cMyCursor1
SET RELATION TO .T. INTO cMyCursor2 ADDITIVE
REPORT FORM MyReport Preview
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38635359
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз рискну тему поднять.

В принципе, половину подобных тем можно было бы закрыть, если бы была возможность напечатать подряд несколько отчетов на одном листе.
Как такое организовать, да еще бы и на лазернике с дуплексом?
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38635405
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArDo,

SElect file1
report form rep1 NOPAGEEJECT
SElect file2
report form rep2 NOPAGEEJECT
SElect file3
report form rep3
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38635496
ArDo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получается.
Такая примочка на матричном принтере работала. А лазерный лист выбрасывает по любому...
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38665898
John Smit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-KНет ничего в этом сложного:
1. Создаешь фиктивный курсор (таблицу) с одной записью:
Код: sql
1.
2.
CREATE CURSOR FalseCursor (Fix I)
INSERT INTO FalseCursor (Fix) VALUES ( 1 )

2. Создаешь во всех своих трех таблицах фиктивные индексы и связь с фиктивным курсором через SET RELATION:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT MyTable1
INDEX ON .T. TAG Fix
SELECT MyTable2
INDEX ON .T. TAG Fix
SELECT MyTable3
INDEX ON .T. TAG Fix
SELECT FalseCursor
SET RELATION TO .T. INTO MyTable1 ADDITIVE
SET RELATION TO .T. INTO MyTable3 ADDITIVE
SET RELATION TO .T. INTO MyTable3 ADDITIVE


3. В отчете делаешь три Detail Band с ОБЯЗАТЕЛЬНЫМ указанием в их свойстве "Target alias expression" имен своих таблиц в виде строковых констант (или переменных).
Например, для первой таблицы в свойстве "Target alias expression" первого Detail Band должно быть: "MyTable1". Кавычки обязательны!
Для каждого Detail Band создаешь свой Header и Footer, путем выбора свойства "Associated header and footer band". Добавляешь в эти Header-ы и Footer-ы необходимые элементы дизайна данной таблицы.
4. Выводишь в каждом из Detail Band поля "своей" таблицы с обязательным указанием алиаса перед названием поля.
5. Выбираешь фиктивную таблицу (см. п.1) и запускаешь отчет:
Код: sql
1.
2.
SELECT FalseCursor
REPORT FORM ....


С уважением, Алексей

Помогите, делал по этому методу выдает такую ошибку:
MyTable2 is not related to the current work area. (Имена таблиц конечно другие, и у меня их 2 а не 3, но это неважно)
Очень нужно помогите плиз
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38665965
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
John SmitAleksey-KНет ничего в этом сложного:
1. Создаешь фиктивный курсор (таблицу) с одной записью:
Код: sql
1.
2.
CREATE CURSOR FalseCursor (Fix I)
INSERT INTO FalseCursor (Fix) VALUES ( 1 )

2. Создаешь во всех своих трех таблицах фиктивные индексы и связь с фиктивным курсором через SET RELATION:
SELECT MyTable1
INDEX ON .T. TAG Fix
SELECT MyTable2
INDEX ON .T. TAG Fix
SELECT MyTable3
INDEX ON .T. TAG Fix
SELECT FalseCursor
SET RELATION TO .T. INTO MyTable1 ADDITIVE

SET RELATION TO .T. INTO MyTable3 ADDITIVE
SET RELATION TO .T. INTO MyTable3 ADDITIVE

3. В отчете делаешь три Detail Band с ОБЯЗАТЕЛЬНЫМ указанием в их свойстве "Target alias expression" имен своих таблиц в виде строковых констант (или переменных).
Например, для первой таблицы в свойстве "Target alias expression" первого Detail Band должно быть: "MyTable1". Кавычки обязательны!
Для каждого Detail Band создаешь свой Header и Footer, путем выбора свойства "Associated header and footer band". Добавляешь в эти Header-ы и Footer-ы необходимые элементы дизайна данной таблицы.
4. Выводишь в каждом из Detail Band поля "своей" таблицы с обязательным указанием алиаса перед названием поля.
5. Выбираешь фиктивную таблицу (см. п.1) и запускаешь отчет:
Код: sql
1.
2.
SELECT FalseCursor
REPORT FORM ....


С уважением, Алексей

Помогите, делал по этому методу выдает такую ошибку:
MyTable2 is not related to the current work area. (Имена таблиц конечно другие, и у меня их 2 а не 3, но это неважно)
Очень нужно помогите плиз
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38666021
John Smit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А где собственно сам ответ???
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38666052
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
John Smit,
А где, собственно, MyTable2 ?
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38666155
John Smit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNGJohn Smit,
А где, собственно, MyTable2 ?

Да причем здесь MyTable2, ну описался человек, или вы хотите сказать что со 2 таблицей связи не надо устанавливать? - чушь то не говорите.

у меня вообще 2 таблицы а не три, дело не в числе таблиц.
Вот человек пишет Johnny_lcoolПроверено! Работает просто отлично!
значит конструкция такая должна работать. Хотя у меня на работе такую констр. никто не встречал.
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38666171
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
John SmitIgorNGJohn Smit,
А где, собственно, MyTable2 ?

Да причем здесь MyTable2, ну описался человек, или вы хотите сказать что со 2 таблицей связи не надо устанавливать? - чушь то не говорите.

у меня вообще 2 таблицы а не три, дело не в числе таблиц.
Вот человек пишет Johnny_lcoolПроверено! Работает просто отлично!
значит конструкция такая должна работать. Хотя у меня на работе такую констр. никто не встречал.

По-моему, чушь Вы говорите.

John SmitПомогите, делал по этому методу выдает такую ошибку:

MyTable2 is not related to the current work area.



Чем, в таком случае, помочь?

John Smit(Имена таблиц конечно другие, и у меня их 2 а не 3, но это неважно)


Так не проще было бы привести Ваш код?
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38666281
John Smit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG
John Smit(Имена таблиц конечно другие, и у меня их 2 а не 3, но это неважно)


Так не проще было бы привести Ваш код?

Ну если вам тяжело подставить вместо MyTable2 иное имя таблицы, то вот код:

SELECT 1
CREATE CURSOR FalseCursor (Fix I)
INSERT INTO FalseCursor (Fix) VALUES ( 1 )
SELECT 2
USE d:\....\pero.dbf EXCLUSIVE
INDEX ON .T. TAG Fix
SELECT 3
USE d:\....\repin1.dbf EXCLUSIVE
INDEX ON .T. TAG Fix
SELECT 1
SELECT FalseCursor
SET RELATION TO .T. INTO pero ADDITIVE
SET RELATION TO .T. INTO repin1 ADDITIVE
CREATE REPORT
SELECT FalseCursor
REPORT FORM Report1 Preview

после чего ошибка: repin1 is not related to the current work area

хотелось бы по существу ответ
...
Рейтинг: 0 / 0
несколько таблиц в отчете VFP 9
    #38666357
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE CURSOR FalseCursor (Fix I)
INSERT INTO FalseCursor (Fix) VALUES ( 1 )
USE d:\....\pero.dbf IN 0 EXCLUSIVE
INDEX ON .T. TAG Fix
USE d:\....\repin1.dbf IN 0 EXCLUSIVE
INDEX ON .T. TAG Fix
SELECT FalseCursor
SET RELATION TO .T. INTO pero ADDITIVE
SET RELATION TO .T. INTO repin1 ADDITIVE

Из командного окна выполни этот код и посмотри что получится в Data Session.
Если Relations нормально создадутся, проверь что в DE отчета
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / несколько таблиц в отчете VFP 9
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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