|
|
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Как получить список(массив) уникальных значений столбца в TreeView DataWindow 1-го уровня? Делаю так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Пробовал сделать отфильтровать - не получилось. Какие есть ещё варианты или как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2008, 01:28 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
В этом же (во вспомогательном DataWindow предварительно перенеся туда первый столбец), сделать по нему группу и при помощи выражения Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2008, 12:39 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Локшин Марк Спасибо за вариант, идея понятна. А что Вы скажете, если во вспомогательное DW либо DS сделать выборку из БД сразу набора уникальных значений? Будет ли это быстрее, ведь по сути надо будет повторить почти аналогичный SQL как для dw_1, а он и так был не быстрый? При этом есть ли риск несовпадения результатов? А есть ли прямое обращение к 1-му столбцу 1-й строки в группе? Или как туда достучаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2008, 13:11 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
AIS Спасибо за вариант, идея понятна. А что Вы скажете, если во вспомогательное DW либо DS сделать выборку из БД сразу набора уникальных значений? Будет ли это быстрее, ведь по сути надо будет повторить почти аналогичный SQL как для dw_1, а он и так был не быстрый? При этом есть ли риск несовпадения результатов? Если делать 2 запроса - то риск получить несовпадения результатов есть (зависит от уровня изоляции транзакций), но я не это имел ввиду. Если в исходном DataWindow уже есть группа, то ее можно временно изменить на группу по 1 столбцу. Или не возиться и перенести данные в отдельное DataWindow либо при помощи RowsCopy либо что-то типа Код: plaintext А есть ли прямое обращение к 1-му столбцу 1-й строки в группе? Или как туда достучаться? Гм, что-то я не понял про что вы тут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2008, 14:15 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Локшин МаркЕсли в исходном DataWindow уже есть группа Насколько я помню, TreeView DW это обычное Group DW, в котором группы отображаются в виде уровней дерева. Поэтому по идее должна работать ф-я FindGroupChange(row, level), вызывая которую в цикле можно заполнить массив: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Вот такая вот у меня есть теория. Насколько она соответствует практике, предлагаю выяснить AIS и рассказать нам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2008, 18:26 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
18-я весна Взял это за основу и немного подстроил под себя. Спасибо. Всё работает. На этом пожалуй и остановлюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2008, 18:38 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
18-я весна Локшин МаркЕсли в исходном DataWindow уже есть группа Поэтому по идее должна работать ф-я FindGroupChange(row, level), вызывая которую в цикле можно заполнить массив... Вот такая вот у меня есть теория. Насколько она соответствует практике, предлагаю выяснить AIS и рассказать нам. Как мне кажется, мой способ должен работать раз в десять быстрее (минимум), чем на PowerScript'е крутить циклы и вызывать FindGroupChange. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 09:43 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Локшин Марк ...Если в исходном DataWindow уже есть группа, то ее можно временно изменить на группу по 1 столбцу. Или не возиться и перенести данные в отдельное DataWindow либо при помощи RowsCopy либо что-то типа Код: plaintext ...Как мне кажется, мой способ должен работать раз в десять быстрее (минимум), чем на PowerScript'е крутить циклы и вызывать FindGroupChange. В Вашем варианте всё равно необходимо будет использовать цикл для получения списка уникальных значений 1-го столбца, а может ещё и фильтры и сортировки, плюс создание вспомогательных объектов. Думаю, что это все же будет медленнее работать, чем через FindGroupChange, где всего один цикл и сразу строка списка в результате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 11:31 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Локшин МаркКак мне кажется, мой способ должен работать раз в десять быстрее (минимум), чем на PowerScript'е крутить циклы и вызывать FindGroupChange. А я думаю, что на кол-ве записей до 100тыс, визуально нельзя будет различить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 11:44 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
AIS В Вашем варианте всё равно необходимо будет использовать цикл для получения списка уникальных значений 1-го столбца, а может ещё и фильтры и сортировки, плюс создание вспомогательных объектов. Думаю, что это все же будет медленнее работать, чем через FindGroupChange, где всего один цикл и сразу строка списка в результате. Неа, цикл не нужен. array = ds.Object.Col[1, rowcount] Но быстрее не будет, так как внутренне эти два способа используют одни и те же механизмы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 11:46 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky AIS В Вашем варианте всё равно необходимо будет использовать цикл для получения списка уникальных значений 1-го столбца, а может ещё и фильтры и сортировки, плюс создание вспомогательных объектов. Думаю, что это все же будет медленнее работать, чем через FindGroupChange, где всего один цикл и сразу строка списка в результате. Неа, цикл не нужен. array = ds.Object.Col[1, rowcount] Но быстрее не будет, так как внутренне эти два способа используют одни и те же механизмы :) В итоге это будет массив всех значений 1-го столбца, а нужен массив уникальных значений , и не просто массив, а в ввиде строки содержащей список таких значений. Может в РВ есть функция, которая переводит массив в строку его значений (как например в РНР), то я этого не нашел, поэтому думаю без какого-нибудь цикла не обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 12:19 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
AISВ Вашем варианте всё равно необходимо будет использовать цикл для получения списка уникальных значений 1-го столбца, а может ещё и фильтры и сортировки, плюс создание вспомогательных объектов. Думаю, что это все же будет медленнее работать, чем через FindGroupChange, где всего один цикл и сразу строка списка в результате. Фильтр по моему условию будет работать быстро, сортировка для FindGroupChange тоже нужна, а список уникальных значений из столбца получается одним присваением. Anatoly MoskovskyНо быстрее не будет, так как внутренне эти два способа используют одни и те же механизмы :) Будет, будет. Если действие выражается через несколько вызовов функций - 99% будет гораздо быстрей этих же действий написанных в циклах PowerScript - проверено неоднократно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 12:24 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
AISВ итоге это будет массив всех значений 1-го столбца, а нужен массив уникальных значений , и не просто массив, а в ввиде строки содержащей список таких значений. Может в РВ есть функция, которая переводит массив в строку его значений (как например в РНР), то я этого не нашел, поэтому думаю без какого-нибудь цикла не обойтись. Там и будет массив уникальных значений . А извините, в виде строки это Вы сейчас только-что изобразили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 12:27 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Локшин МаркЕсли действие выражается через несколько вызовов функций - 99% будет гораздо быстрей этих же действий написанных в циклах PowerScript - проверено неоднократно. Это та ситуация, где как раз тот 1%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 12:46 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky Локшин МаркЕсли действие выражается через несколько вызовов функций - 99% будет гораздо быстрей этих же действий написанных в циклах PowerScript - проверено неоднократно. Это та ситуация, где как раз тот 1%. Что проверяли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 12:48 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Локшин Марк Anatoly Moskovsky Локшин МаркЕсли действие выражается через несколько вызовов функций - 99% будет гораздо быстрей этих же действий написанных в циклах PowerScript - проверено неоднократно. Это та ситуация, где как раз тот 1%. Что проверяли? Да :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 12:57 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Локшин Марк Там и будет массив уникальных значений. А извините, в виде строки это Вы сейчас только-что изобразили. Нет не сейчас. Это видно из моего скрипта в самом начале, что на выходе именно строка со списком уникальных значений 1-го столбца. :) Локшин Марк Фильтр по моему условию будет работать быстро, сортировка для FindGroupChange тоже нужна, а список уникальных значений из столбца получается одним присваением. Каким одним присваиванием? Подскажите как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 13:06 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky Локшин Марк Anatoly Moskovsky Локшин МаркЕсли действие выражается через несколько вызовов функций - 99% будет гораздо быстрей этих же действий написанных в циклах PowerScript - проверено неоднократно. Это та ситуация, где как раз тот 1%. Что проверяли? Да :) Хм, действительно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 16:26 |
|
||
|
TreeView DataWindow
|
|||
|---|---|---|---|
|
#18+
Локшин Марк Вот. Это понятно. Я думал, что есть вариант загнать одним присваением массив значений в строку с указанием разделителя, как в других языках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 18:17 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=35441184&tid=1336601]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 177ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...