Автор | Сообщение |
|
| |
Пост N: 1982
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.01.11 21:11. Заголовок: Ads+Filter+Xbrowse ?
|
|
|
Ответов - 20
[только новые]
|
|
|
| Администратор
|
Пост N: 1786
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.01.11 23:26. Заголовок: А что за фильтр ? Ad..
А что за фильтр ? AdsSetAof() ?
|
|
|
|
| |
Пост N: 1983
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.01.11 23:41. Заголовок: Да нет обычный SET F..
Да нет обычный SET FILTER Фильтр таков '!anl_zer .and. !fanl_zer' и есть активные индексы по этим полям. Не было бы этих индексов тогда бы точно тормозило а так даже с их наличием тормоз тот же. Ситуация с AdsSetAof() такая же...тормозит
|
|
|
|
| Администратор
|
Пост N: 1787
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.01.11 23:50. Заголовок: А rddads разве его о..
А rddads разве его оптимизирует ? Он наверное выполняется на клиенте. Попробуй AdsSetAof(cFilter, 2) .. AdsClearAof()
|
|
|
|
| |
Пост N: 1984
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.01.11 23:57. Заголовок: Pasha пишет: AdsSet..
Pasha пишет: Точно , что то засиделся я. Но в таком виде тоже тормоз. В Clipper на ура работает вот так Ax_SetServerAOF(cFilter,.t.) Как аналог называется в Xharbour ?
|
|
|
|
| Администратор
|
Пост N: 1788
Зарегистрирован: 23.05.05
|
|
Отправлено: 14.01.11 09:27. Заголовок: Dima пишет: Как ана..
Dima пишет: цитата: | Как аналог называется в Xharbour ? |
| Да это и есть аналог. Только там есть еще 2-й параметр: Option to indicate how the filter should be resolved in the event that the expression cannot be fully optimized. This flag is also used to indicate how filter membership is affected by data changes. Options are ADS_RESOLVE_IMMEDIATE, ADS_RESOLVE_DYNAMIC, ADS_DYNAMIC_AOF, ADS_KEYSET_AOF, and ADS_FIXED_AOF. с ним надо поиграться Лучше в доке ads об этом почитать
|
|
|
|
| |
Пост N: 1985
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.01.11 11:16. Заголовок: Pasha До лампочки в..
Pasha До лампочки все. set(_SET_OPTIMIZE, .t.) ? AdsSetAof('!anl_zer .and. !fanl_zer',2) // .t. , со вторым параметром игрался , не помогает ? ADSGetAOFoptLevel() // 1 что означает полная оптимизация и все равно тормоз Попробовал AdsSetFilter , и ее не оказалось а в доке есть PS ADS версия 10
|
|
|
|
| Администратор
|
Пост N: 1789
Зарегистрирован: 23.05.05
|
|
Отправлено: 14.01.11 11:21. Заголовок: Возможно, дело все-т..
Возможно, дело все-таки в xbr Попробуй при инициализации сделать oBrw:bKeyNo := {|| 1} oBrw:bKeyCount := {|| 1} и посмотри на скорость Эти блоки кода использует вертикальный скроллбар
|
|
|
|
| |
Пост N: 1986
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.01.11 11:24. Заголовок: Pasha пишет: oBrw:b..
Pasha пишет: цитата: | oBrw:bKeyNo := {|| 1} oBrw:bKeyCount := {|| 1} |
| В этом случае скролбар стоит на месте (так же пробовал его отключать еще вчера и до лампочки) но тормоз тот же...:( Если использовать функцию (для теста) Browse() то тормоза нет.
|
|
|
|
| постоянный участник
|
Пост N: 39
Зарегистрирован: 29.05.10
|
|
Отправлено: 14.01.11 11:51. Заголовок: Dima пишет: В этом ..
Dima пишет: цитата: | В этом случае скролбар стоит на месте |
| можно oBrw:nlen:=ORDKEYCOUNT() но это на скорость не влияет Dima пишет: цитата: | Если использовать функцию (для теста) Browse() то тормоза нет |
| А это говорит о том , что свой бровс ты организовал не рационально. Надо смотреть исходник...
|
|
|
|
| |
Пост N: 1987
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.01.11 11:53. Заголовок: Pasha пишет: Возмож..
Pasha пишет: цитата: | Возможно, дело все-таки в xbr |
| Что еще ориентировочно можно в нем посмотреть (исправить) что бы исправить проблему ?
|
|
|
|
| |
Пост N: 1988
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.01.11 11:56. Заголовок: ММК пишет: А это го..
ММК пишет: цитата: | А это говорит о том , что свой бровс ты организовал не рационально. Надо смотреть исходник... |
| Бровс прост и вроде все оптимально AdsSetAof('!anl_zer .and. !fanl_zer',2) go top @ 30,5 Xbrowse zobrw ; Size (zvwdlg:nwidth()/2)-10,(zvwdlg:nHeight/2)-60 ; of zvwdlg PIXEL font ofont7 ALIAS "magaz3" ; LINES CELL oCol:= zobrw:AddCol() oCol:cHeader := "Номер" oCol:bStrData := { || transform(magaz3->ndok,"@Z@B 999999999999") } oCol:nHeadStrAlign := AL_CENTER oCol:nDataStrAlign := AL_LEFT ocol:oHeaderFont := oFont3 oCol:= zobrw:AddCol() oCol:cHeader := "Дата" oCol:bStrData := { || dtoc(magaz3->data_n) } oCol:nHeadStrAlign := AL_CENTER oCol:nDataStrAlign := AL_LEFT ocol:oHeaderFont := oFont3 oCol:= zobrw:AddCol() oCol:cHeader := "Клиент" oCol:bStrData := { || magaz3->komu } oCol:nHeadStrAlign := AL_CENTER oCol:nDataStrAlign := AL_LEFT ocol:oHeaderFont := oFont3 zobrw:nHeaderLines := 1 zobrw:bClrRowFocus := { || { CLR_BLACK, RGB(185,220,255) } } zobrw:bClrStd := { || { 0,nrgb(220,233,233) } } zobrw:bclrselfocus:={|| {CLR_BLACK,CLR_YELLOW}} zobrw:lHScroll := .f. zobrw:nStretchCol := 3 // zobrw:lAllowColSwapping:=.f. zobrw:lAllowRowSizing:=.f. zobrw:nMarqueeStyle := MARQSTYLE_HIGHLROW zobrw:lRecordSelector := .f. AEval( zobrw:aCols, {|oCol|oCol:lAllowSizing := .f.,; ocol:bRClickHeader:={||.f.} ,; oCol:bLDClickData:={|| .t.}}) zobrw:bClrGrad = { | lInvert | If( ! lInvert,; { { 0.50, nRGB( 178, 187, 202 ), nRGB( 137, 155, 179 ) },; { 0.50, nRGB( 129, 149, 174 ), nRGB( 114, 132, 156 ) } },; { { 0.50, nRGB( 139, 166, 193 ), nRGB( 69, 119, 170 ) },; { 0.50, nRGB( 52, 104, 152 ), nRGB( 50, 107, 162 ) } } ) } zobrw:setrdd() zobrw:CreateFromCode()
|
|
|
|
|
| постоянный участник
|
Пост N: 40
Зарегистрирован: 29.05.10
|
|
Отправлено: 14.01.11 13:00. Заголовок: Dima пишет: Бровс п..
Dima пишет: цитата: | Бровс прост и вроде все оптимально |
| Вроде да. Ставится фильтр , потом бровс . Да? Динамики нет , т.е. все фиксировано. На выходе 20 записей , это меньше окошка. Запустили пример- на экране результатКак можно увидеть тормоз? Есди это конечный кусочек , тогда надо возвращаться в самое начало к "следам" на экране и разбираться почему у тебя это происходит. Явление не повсеместное , в моей практике как-то было , но ерунда явно была моя , уже и не помню какая. Судя по форуму это тоже достаточно редкое событие. Объясняют это слабыми машинами- у тебя вроде нет. Плохой сеткой- так вроде ты без нее? Можно предположить что система кривая... Так легко проверить , посмотреть на другой машине. Я бы сначала разобрался с этим. Харбор здесь наверняка не виноват. Ads ? Ну вот у меня базка ( правда меньше 2000 ) фильтры использую сложные, по всем полям правда использую CUSTOM ADDITIVE. И не разовй , как у тебя.
|
|
|
|
| |
Пост N: 1989
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.01.11 13:05. Заголовок: ММК пишет: Ставится..
ММК пишет: цитата: | Ставится фильтр , потом бровс . Да? |
| Да ММК пишет: цитата: | Как можно увидеть тормоз? |
| Двигаюсь по записям (вверх,вниз) и все это происходит с задержкой как будто и нет оптимизированного фильтра :(
|
|
|
|
| постоянный участник
|
Пост N: 41
Зарегистрирован: 29.05.10
|
|
Отправлено: 14.01.11 13:25. Заголовок: Dima пишет: Двигаюс..
Dima пишет: цитата: | Двигаюсь по записям (вверх,вниз) |
| нажимаешь стрелочку и нет перехода? Пришли пример
|
|
|
|
| |
Пост N: 1990
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.01.11 13:30. Заголовок: В INIT диалога где ж..
В INIT диалога где живет бровс с фильтром стояло украшательство ;) SETTRANSPARENT(odlg:hWnd,245) Убрал его и тормоз исчез. Спасибо всем кто помогал !!!
|
|
|
|
| |
Пост N: 77
Зарегистрирован: 17.06.10
|
|
Отправлено: 14.01.11 13:32. Заголовок: А мне нравится делат..
А мне нравится делать массив с номерами строк DBF(a la фильтр) и крутить его в фильтре
|
|
|
|
| |
Пост N: 1992
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.01.11 13:48. Заголовок: Dima пишет: В INIT ..
Dima пишет: цитата: | В INIT диалога где живет бровс с фильтром стояло украшательство ;) SETTRANSPARENT(odlg:hWnd,245) Убрал его и тормоз исчез. |
| В этой связи вопрос. Как сделать полупрозрачным видимую часть диалога не затрагивая контролов которые в нем живут ?
|
|
|
|
| Администратор
|
Пост N: 1791
Зарегистрирован: 23.05.05
|
|
Отправлено: 14.01.11 14:01. Заголовок: У xbrowse есть какой..
У xbrowse есть какой-то странный метод DelRepos, может из-за него тормоз ?
|
|
|
|
| постоянный участник
|
Пост N: 42
Зарегистрирован: 29.05.10
|
|
Отправлено: 14.01.11 14:13. Заголовок: Pasha пишет: У xbro..
Pasha пишет: цитата: | У xbrowse есть какой-то странный метод DelRepos, может из-за него тормоз ? |
| ::DelRepos() // if the row is deleted for RDD Да не... Дима уже разобрался, палку в колесо он всунул сам.. А xbrowse быстрый и вообще ... хороший :)))
|
|
|
|
| |
Пост N: 2053
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.02.11 20:42. Заголовок: Pasha пишет: А rdda..
Pasha пишет: цитата: | А rddads разве его оптимизирует ? |
| Вспомнил :) Это я Xharbour c Сlipper попутал. Там в AOF.CH присутствует #command SET FILTER TO <xpr> ; => aofSetFilter( <"xpr"> )
|
|
|
|