27.06.2005, 12:41 | #1 |
Участник
|
Помогите, пожалуйста, разобраться со свойством Temporary переменной типа Record!
При зауске отчета используется временная таблица для сбора данных. В самом начале работы отчета эта таблица блокируется. Поэтому если 2 пользователя одновременно пытаются получить этот отчет, тому, кто запустил его вторым, приходится ждать. А отчет выполняется долго. Поэтому хотелось бы избежать такой блокировки. Попытка у переменной типа Record, которая ссылается на эту таблицу, изменить свойство Temporary на Yes ничего не дала. |
|
27.06.2005, 13:06 | #2 |
Участник
|
Для чего у Вас блокируется таблица, кот. Вы называете "временная таблица для сбора данных"?
|
|
27.06.2005, 13:26 | #3 |
Участник
|
Эта таблица используется не только в этом отчете, но еще и в других. Блокировка как раз и нужна для того, чтобы если другой пользователь запустит этот или другой отчет, использующий эту таблицу, данные в этой таблице не изменялись , так как она заполняется непосредственно перед созданием отчета.
|
|
27.06.2005, 13:38 | #4 |
NavAx
|
kekki, Вы что-то путаете.
Как раз если Вы используете переменную типа Record со свойством Temporary - Yes, то блокировать ее не надо - такая таблица создается на клиенте.
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
27.06.2005, 13:51 | #5 |
Участник
|
Данные во временных таблицах формируются у каждого пользователя отдельно на его машине. Соответственно, в отчет второго пользователя никогда не попадут данные из отчета первого пользователя (с его точки зрения таблица всегда пуста), и блокировать таблицу просто не надо, соответственно проблема ожидания просто снимается.
|
|
28.06.2005, 07:13 | #6 |
Участник
|
Я понимаю, что так должно быть, проблема в том что оно так не работает!
То есть если сделать запись временной (Temporary=Yes), то отчет должным образом не работает! Возможно нужны еще какие-то настройки, но я не знаю какие... |
|
28.06.2005, 11:31 | #7 |
Участник
|
Чудес не бывает. Смотрите повнимательней на свой отчет.
|
|
28.06.2005, 13:52 | #8 |
Участник
|
Почему не работает, я разобралась. Дело в том, что данные собираются в таблицу с помощью записи, а в отчет данные выводятся из элемента данных. И элемент данных и запись ссылаются на одну и ту же таблицу, но если запись временная, то элемент данных изменения сделанные записью не поддерживает.
Вопрос теперь в том, как отображать данные из записи. |
|
28.06.2005, 14:23 | #9 |
Участник
|
Можно попробовать обходной путь: Вашу временную таблицу сделать обычной, и добавить туда поле с идентификатором польователя. Соотв.,
- при записи данных прописывать туда пользователя - в отчете во всех операторах поиска поставить пользователя - не забывать чистить табличку по записям текущего пользователя Соотв., каждый юзер будет всегда работать со своей частью таблицы, и блокировать ее не придется, и отчет заработает. |
|
28.06.2005, 14:33 | #10 |
NavAx
|
Отображать данные из временных таблиц удобно с помощью таблицы Целое (Integer). Примеры использования можно посмотреть в стандартных отчетах типа Заказ Счет-Проформа, Заказ Счет-Фактура и много других печатных форм (смотрите на переменную SalesLine1, она временная, заполняется через кодъюнит 12401, после чего данные из нее извлекаются во всяческих Целых)
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
29.06.2005, 06:42 | #11 |
Участник
|
Большое спасибо!
|
|