Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
Видимо звезды мне сегодня не благоприятствуют. В OracleDataSet (DOA3.4.6) вычисляемое поле. Если активна первая строка, то его значение устанавливается из другого ODS, иначе - вычисляется, используя значения предыдущей строки, ну и ессно мы зацикливаемся. Как можно обойти эту ситуацию? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2003, 13:07 |
|
||
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
Нульзя внутри обработчика OnCalcFields двигаться по записям. Меняй алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2003, 13:18 |
|
||
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
А odsPlan и odsPlan_Item связаны Master-Detail связью? Проще всего, как мне кажется, использовать RxMemoryData, в который перегонять данные из odsPlan_Item (поле nzp_calc сделать fkData, а не fkCalculated) и во время перегонки , считать значения nzp_calc... А если Plan_Item`ов много может быть, тогда odsPlan_Item сделать TOracleQuery, чтобы не кэшировал записи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2003, 14:24 |
|
||
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
to m_kus: odsPlan и odsPlan_Item связаны Master-Detail связью. Сейчас я пытаюсь при открытии odsPlan_Item сливать данные из него в массив записей и вытаскивать nnzp уже из массива, но это больно мудрено получается. Я так понимаю, способ, который вы предлагаете с RxMemoryData аналогичен? И еще, где можно почитать про RxMemoryData? Может быть использовать его удобнее, чем массив. На http://polesoft.narod.ru/ я данных об этом компоненте не нашел. Что касается последнего предложения, то я не понял его суть. Чем плохо, что odsPlan_Item кэширует записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2003, 07:35 |
|
||
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
можно попробовать так сохранять значение предыдущего поля в переменной и использовать его в вычислении типа Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2003, 08:17 |
|
||
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
DensСейчас я пытаюсь при открытии odsPlan_Item сливать данные из него в массив записей и вытаскивать nnzp уже из массива, но это больно мудрено получается. Я так понимаю, способ, который вы предлагаете с RxMemoryData аналогичен? И еще, где можно почитать про RxMemoryData? Может быть использовать его удобнее, чем массив. На http://polesoft.narod.ru/ я данных об этом компоненте не нашел. Лучше продолжай делать через массив, раз начал, ничего, что мудрёно... А про RxMemoryData можешь почитать здесь . С ним будет удобней, но не сильно... DensЧто касается последнего предложения, то я не понял его суть. Чем плохо, что odsPlan_Item кэширует записи? Тем что odsPlan_Item будет кэшировать и RXMemoryData будет тоже самое в памяти держать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2003, 08:19 |
|
||
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
to LexusR: Во-во, именно так я и пробовал выкрутиться сначала, но мои наивные мечты разбились. Дело в том, что поля вычисляются не только в момент открытия набора и необязательно в порядке от первой к последней, а вообще хрен поймешь в каком порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2003, 08:42 |
|
||
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
судя по алгоритму вычисления в вычисляемое поле собирается сумма поля odsPlan_ItemDnzp предыдущих записей а нельзя ли это поле сразу получить в запросе вычислив все на сервере ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2003, 09:42 |
|
||
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
LexusRсудя по алгоритму вычисления в вычисляемое поле собирается сумма поля odsPlan_ItemDnzp предыдущих записей а нельзя ли это поле сразу получить в запросе вычислив все на сервере ? Честно говоря, сначал подумал, что нельзя этого сделать на сервере, но теперь, когда LexusR заострил на это внимание, почтиал документацию и точно, можно ведь и на сервере считать: пусть у odsPlan_Item.MasterFields='PlanId;NNZP' и объявлены переменные PlanId и NNZP тогда SQL для odsPlan_Item может выглядеть так: Код: plaintext 1. 2. 3. 4. Ну это конечно если версия Oracle позволит, у меня Oracle8i (8.1.7). В принципе я не тестировал в Delphi, может и не будет так работать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2003, 10:03 |
|
||
|
Calculated fields
|
|||
|---|---|---|---|
|
#18+
LexusRа нельзя ли это поле сразу получить в запросе вычислив все на сервере ? Минус такого подхода заключается в том, что при изменении поля odsPlan_ItemDnzp для пересчёта сумм придётся посылать запрос на сервер, а при массиве -нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2003, 10:23 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32356186&tid=2115402]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 384ms |

| 0 / 0 |
