Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Помогите с печатью  [new]
спартачек
Guest
Есть таблица в ней две записи, при нажатии кнопки "Печать", на печать выводиться только последняя запись в чем причина? Код кнопки

Set Classlib To (home()+"ffc\_reportlistener.vcx")
oRepList = createObject('fxlistener')
oRepList.ListenerType = 1



REPORT FORM report2.frx object oRepList
5 ноя 12, 11:12    [13421883]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с печатью  [new]
alextashk
Member

Откуда:
Сообщений: 431
спартачек,

1. удалите ссылки на таблицу в report2.frx
2. Явно укажите таблицу перед вызовом Report2

SELECT table2
REPORT FORM report2.frx object oRepList
8 ноя 12, 07:41    [13437324]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с печатью  [new]
спартачек
Guest
alextashk,

как удалить ссылки на таблицу????
8 ноя 12, 09:17    [13437502]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с печатью  [new]
спартачек
Guest
alextashk,

все равно печатает только последнюю запись, даже в prewiev показывает только последнюю запись
8 ноя 12, 09:30    [13437526]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с печатью  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Отчет - это сканирование одной и только одной (главной) таблицы. Данные из других таблиц отображаются в той мере, в какой записи этих других таблиц связаны с главной.

Если в отчете отображаются не все записи таблицы, то это означает либо тот факт, что таблица не является главной (текущей) на момент выполнения отчета, либо на таблицу наложены какие-либо фильтры.

Главная таблица указывается в DataEnvironment отчета. Открываете отчет на модификацию, затем выбираете пункт меню View \ DataEnvironment. Затем правой клавишей мыши щелкаете по свободному (не занятому никакими объектами) месту открывшегося окна DataEnvironment и в открывшемся контекстном меню выбираете пункт Properties. В открывшемся окне Properties находите свойство "InitialSelectedAlias" и указываете в нем алиас главной таблицы для данного отчета.

Если у Вас в DataEnvironment нет ни одной таблицы и в методах DataEnvironment не предусмотрено их ручное открытие, то главной таблицей отчета будет выбрана таблица, которая открыта в текущей рабочей области на момен вызова отчета. Это то, что продемонстрировал alextashk

SELECT table2
REPORT FORM report2.frx object oRepList


Также следует иметь в виду, что если отчет вызывается из Grid на форме, то перед выполнением отчета необходимо принудительно перевести фокус на любой другой объект формы. Например, на TextBox или на CommandButton

ThisForm.TextBox1.SetFocus()
DoEvents
SELECT table2
REPORT FORM report2.frx object oRepList

----------------

Если на таблицу наложены фильтры, например, через SET FILTER, то, в случае, если отчет выполняется в Default DataSession, данный фильтр также будет ограничивать количество строк в отчете. Чтобы этого избежать лучше выполнять отчет в Private DataSession. В режиме модификации отчета выбрать пункт главного меню Report \ Private DataSession. При повторном вызове выпадающего меню Report слева от пункта Private DataSession будет стоять "птичка". Что и будет означать выполнение отчета в Private DataSession.

При работе в Private DataSession таблицы-источники следует в обязательном порядке указывать в DataEnvironment отчета или же явным образом их открывать в его же методах.
8 ноя 12, 10:57    [13437938]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить