Автор | Сообщение |
Vlad04
|
| постоянный участник
|
Пост N: 420
Зарегистрирован: 13.10.05
|
|
Отправлено: 19.12.13 18:16. Заголовок: TsBrowse в Минигуи (продолжение)
TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений К примеру цитата: | DEFINE TBROWSE oBrw2 ; AT 60,450 ; ALIAS cAlias ; OF Form1 ; WIDTH 330 ; HEIGHT 340 ; FONT "Verdana" ; SIZE 9 ; ON DBLCLICK CopyRec(); ON GOTFOCUS fModelo_Hab(2) ; AUTOFILTER ; CELLED EDIT; VALUE nRec; GRID |
| Здесь я собрал параметры из разных tBrows Можно или нет и какие парметры заменить выражением ( и каким) ? oBrw2:.... oBrw2:....
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Haz
|
| |
Пост N: 599
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.07.15 11:32. Заголовок: Andrey пишет: Стрес..
Andrey пишет: Тест конечно стресс но не для бровса,, а для автора т.к. надо немного менять код 1. Переписать так чтобы не было везде понатыкано MyFocusBrw() , как минимум в ON CHANGE - это место крайне чувствительно ко всяким лишним действиям 2. Когда ставиться Scope - бровс об это ничего не знает , ему не сказали что логическая длина базы съехала. Отсюда и косяк на скролере ( пример как сказать есть в TSBFilter , что фильтр что скоп итог один - бровсу кормят не то количество на которое он инициализировался ) - нужен :Reset() 3. Нагенерил 100 000 на локальном компе тормозов нет PS. Сергей верно сказал - мемо поля это помойка в которой тяжело искать , и уменьшай объем передаваемых данных в буфер записи при Skip. Узкое место скорость передачи PPS Вспомнил позднее - по поводу мемо полей мы уже говорили и ты что то делал подобное - мемо показывать не в бровсе а в отдельной области окна , и только для текущей записи . Читать мемо можно c задержкой , чтоб не тормозил бровс при навигации . Я у себя тупо через таймер и массив комманд реализовал , по ON CHANGE в массив комманд пишется N записи по которой перечитать мемо и обнуляется счетчик задержки примерно 500 мс. При контроле этого счетчика , если он достиг 500 читаем последнее значение из массива и по нему мемо, при этом обнуляя массив. Т.е мемо подчитывается через пол секунды после того как пользователь перестал давить на кнопки управления
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 735
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.07.15 14:27. Заголовок: Dima пишет: ништяки ..
Dima пишет: цитата: | ништяки типа RDDI_BUFKEYNO , RDDI_BUFKEYCOUNT это для Leto только ? |
| Ты совершенно прав, цитата и ништяки из letodb, а cdx и без них тянет.
|
|
|
Dima
|
| |
Пост N: 5083
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.07.15 14:33. Заголовок: SergKis пишет: а cd..
SergKis пишет: Да меня больше ADSCDX интересовал.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 736
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.07.15 14:34. Заголовок: Haz пишет:и уменьшай..
Haz пишет: цитата: | и уменьшай объем передаваемых данных в буфер записи при Skip. Узкое место скорость передачи |
| Для browse лучше skip буфер делать в кол-во строк browse, иначе идет набор рывками (особенно видно в модемном соединении), для TSB, думаю тоже, не пробовал с letodb (пока с cdx вопросы)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 737
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.07.15 14:42. Заголовок: Dima пишет:Да меня б..
Dima пишет: цитата: | Да меня больше ADSCDX интересовал. |
| Думаю, надо править сырец TSB, ввести переменную и заносить значение OrdKeyCount() при создании TSB, а в блоках кода по умолчанию (и своих) использовать ее, когда надо, самому обновлять значение переменной.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4376
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.07.15 16:04. Заголовок: Haz пишет: Тест кон..
Haz пишет: цитата: | Тест конечно стресс но не для бровса,, а для автора т.к. надо немного менять код |
| Для этого и вас всех просил посмотреть ! Haz пишет: цитата: | 3. Нагенерил 100 000 на локальном компе тормозов нет |
| Нужно по сетке хотя бы проверить.... И побольше базу ....
|
|
|
Dima
|
| |
Пост N: 5087
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.07.15 16:48. Заголовок: Haz пишет: Когда ст..
Haz пишет: цитата: | Когда ставиться Scope - бровс об это ничего не знает |
| А вот с этого места можно поподробнее как для домохозяек ? Если я работаю по сети и в базе 100 записей. Завел новую запись 101 а по сети в это время добавили запись 102 , я ее не увижу ? В консоли с этим нет проблем. Молчу уже про Scope , Фильтра.........
|
|
|
Haz
|
| |
Пост N: 600
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.07.15 20:12. Заголовок: Dima пишет: В консо..
Dima пишет: цитата: | В консоли с этим нет проблем. |
| думаю и в консоли при сформированном бровсе по полной базе , а какая то прцудура выставит фильтр , то бровсу как минимум :RefreshAll() потребуется . Проблемы такие же как и в консоли , к примеру если коллега отредактирует запись которая у меня висит перед глазами в бровсе , я не увижу изменений пока не обновлю запись
|
|
|
Haz
|
| |
Пост N: 601
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.07.15 20:13. Заголовок: SergKis пишет: Для ..
SergKis пишет: цитата: | Для browse лучше skip буфер делать в кол-во строк browse, |
| Спасибо, проверю !
|
|
|
Dima
|
| |
Пост N: 5089
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.07.15 21:23. Заголовок: Haz пишет: то бровс..
Haz пишет: цитата: | то бровсу как минимум :RefreshAll() потребуется . |
| Конечно я его делаю и в консоли , когда это требует логика проги. Все понял !
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 780
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.08.15 08:14. Заголовок: Смотрю проблема cVal..
Смотрю проблема cValToChar(xValue) для чисел так и не решилась с давних времен http://clipper.borda.ru/?1-20-0-00000485-000-0-0-1150783273 Пост N: 191 FUNCTION cValToChar( xValue ) LOCAL cType := ValType( xValue ) LOCAL cValue := "", nDecimals if cType == 'N' if xValue == int(xValue) nDecimals := 0 else nDecimals := Set( _SET_DECIMALS ) endif endif DO CASE CASE cType $ "CM"; cValue := xValue CASE cType == "N" ; cValue := LTrim( Str( xValue, 20, nDecimals ) ) ... на мой взгляд применение (убрав строки определения nDecimals) CASE cType == "N" ; cValue := hb_ntos( xValue) работают правильнее для разных значений дробной части числа
|
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 799
Зарегистрирован: 11.02.10
|
|
Отправлено: 03.08.15 10:52. Заголовок: SergKis пишет: проб..
SergKis пишет: цитата: | проблема cValToChar(xValue) для чисел так и не решилась |
| Благодарю за напоминание! Поправил для следующей сборки
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 781
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.08.15 14:39. Заголовок: Подскажите (не вижу)..
Подскажите (не вижу), есть ли в MiniGui готовая функция для получения объекта TSBrowse по имени контрола и формы. Типа FUNCTION _GetObjTSBrowse( ControlName, ParentForm, nIndex) LOCAL oBrw LOCAL i := iif(pCount() > 2, nIndex, GetControlIndex(ControlName,ParentForm)) IF i > 0; oBrw:= _HMG_aControlIds [ i ] ENDIF RETURN oBrw
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 800
Зарегистрирован: 11.02.10
|
|
Отправлено: 03.08.15 16:03. Заголовок: SergKis пишет: есть..
SergKis пишет: цитата: | есть ли в MiniGui готовая функция для получения объекта TSBrowse |
| Нет такой функции
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 782
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.08.15 16:24. Заголовок: gfilatov2002 пишет:Н..
gfilatov2002 пишет: Выпадает TsBrowse из общей организации MiniGui. Нет тогда и min псевдообъекта oTSB := wForma.Magazin.Object
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4444
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.08.15 19:53. Заголовок: Всем привет. Тестир..
Всем привет. Тестирую TBROWSE через сервер на медленном соединение... Не очень приятно видеть как TBROWSE медленно перерисовывает окно и саму таблицу. В терминалке была команда DispBegin() и DispEnd(). Есть ли такая команда для МиниГуи TBROWSE ?
|
|
|
Dima
|
| |
Пост N: 5210
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.08.15 21:22. Заголовок: Andrey пишет: Тести..
Andrey пишет: цитата: | Тестирую TBROWSE через сервер на медленном соединение... |
| Тут тема про T SBROWSE... ЗЫ А по вопросу , коли медленный коннект повесь какой то индикатор или типа того...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4446
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.08.15 21:33. Заголовок: Dima пишет: При чем..
Dima пишет: Как читаю, так и написал: DEFINE TBROWSE oBrw3 ; AT 160,2 ; WIDTH nWinWidth-2*2 ; HEIGHT nWinHeight - 160*2 ; ON CHANGE { || ChangeBrowse("oBrw3") } ; ON GOTFOCUS ChangeBrowse("oBrw3") ; BACKCOLOR aBackColor ; CELL и т.д.
|
|
|
Dima
|
| |
Пост N: 5211
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.08.15 21:37. Заголовок: Andrey Думаешь Disp..
Andrey Думаешь DispBegin() и DispEnd() ......аналоги...помогут ? Что то сомневаюсь. PS Есть там BeginPaint() и EndPaint()
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4447
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.08.15 21:42. Заголовок: Dima пишет: А по во..
Dima пишет: цитата: | А по вопросу , коли медленный коннект повесь какой то индикатор или типа того... |
| Во первых не знаю как определить - медленный коннект или нет ? Во вторых - видно как T SBROWSE строит по ячейкам таблицу - визуально, медленно и не спеша. А при нажатии на стрелки- вверх/вниз видно как перерисовывается маркер/курсор. Для терминального TBROWSE были команды DispBegin() и DispEnd(), т.е. саму перерисовку пользователь не видел. Это классные команды ! Вот и хотелось бы узнать как провернуть такой же финт для T SBROWSE ?
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|