On-line: Andrey, PSP, гостей 1. Всего: 3 [подробнее..]
АвторСообщение
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:....



Спасибо: 0 
Профиль
Ответов - 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 пишет:

 цитата:
Стрес-тест для TBROWSA.



Тест конечно стресс но не для бровса,, а для автора т.к. надо немного менять код
1. Переписать так чтобы не было везде понатыкано MyFocusBrw() , как минимум в ON CHANGE - это место крайне чувствительно ко всяким лишним действиям
2. Когда ставиться Scope - бровс об это ничего не знает , ему не сказали что логическая длина базы съехала. Отсюда и косяк на скролере ( пример как сказать есть в TSBFilter , что фильтр что скоп итог один - бровсу кормят не то количество на которое он инициализировался ) - нужен :Reset()
3. Нагенерил 100 000 на локальном компе тормозов нет

PS. Сергей верно сказал - мемо поля это помойка в которой тяжело искать , и уменьшай объем передаваемых данных в буфер записи при Skip. Узкое место скорость передачи

PPS Вспомнил позднее - по поводу мемо полей мы уже говорили и ты что то делал подобное - мемо показывать не в бровсе а в отдельной области окна , и только для текущей записи . Читать мемо можно c задержкой , чтоб не тормозил бровс при навигации . Я у себя тупо через таймер и массив комманд реализовал , по ON CHANGE в массив комманд пишется N записи по которой перечитать мемо и обнуляется счетчик задержки примерно 500 мс. При контроле этого счетчика , если он достиг 500 читаем последнее значение из массива и по нему мемо, при этом обнуляя массив. Т.е мемо подчитывается через пол секунды после того как пользователь перестал давить на кнопки управления

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 735
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.07.15 14:27. Заголовок: Dima пишет: ништяки ..


Dima пишет:
 цитата:
ништяки типа RDDI_BUFKEYNO , RDDI_BUFKEYCOUNT это для Leto только ?


Ты совершенно прав, цитата и ништяки из letodb, а cdx и без них тянет.


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5083
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.07.15 14:33. Заголовок: SergKis пишет: а cd..


SergKis пишет:

 цитата:
а cdx и без них тянет


Да меня больше ADSCDX интересовал.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 736
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.07.15 14:34. Заголовок: Haz пишет:и уменьшай..


Haz пишет:
 цитата:
и уменьшай объем передаваемых данных в буфер записи при Skip. Узкое место скорость передачи


Для browse лучше skip буфер делать в кол-во строк browse, иначе идет набор рывками (особенно видно в модемном соединении), для TSB, думаю тоже, не пробовал с letodb (пока с cdx вопросы)

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 737
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.07.15 14:42. Заголовок: Dima пишет:Да меня б..


Dima пишет:
 цитата:
Да меня больше ADSCDX интересовал.


Думаю, надо править сырец TSB, ввести переменную и заносить значение OrdKeyCount() при создании TSB, а в блоках кода по умолчанию (и своих) использовать ее, когда надо, самому обновлять значение переменной.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4376
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.07.15 16:04. Заголовок: Haz пишет: Тест кон..


Haz пишет:

 цитата:
Тест конечно стресс но не для бровса,, а для автора т.к. надо немного менять код


Для этого и вас всех просил посмотреть !

Haz пишет:

 цитата:
3. Нагенерил 100 000 на локальном компе тормозов нет


Нужно по сетке хотя бы проверить.... И побольше базу ....


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5087
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.07.15 16:48. Заголовок: Haz пишет: Когда ст..


Haz пишет:

 цитата:
Когда ставиться Scope - бровс об это ничего не знает


А вот с этого места можно поподробнее как для домохозяек ?
Если я работаю по сети и в базе 100 записей. Завел новую запись 101 а по сети
в это время добавили запись 102 , я ее не увижу ?
В консоли с этим нет проблем.
Молчу уже про Scope , Фильтра.........

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 600
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.07.15 20:12. Заголовок: Dima пишет: В консо..


Dima пишет:

 цитата:
В консоли с этим нет проблем.


думаю и в консоли при сформированном бровсе по полной базе , а какая то прцудура выставит фильтр , то бровсу как минимум :RefreshAll() потребуется .
Проблемы такие же как и в консоли , к примеру если коллега отредактирует запись которая у меня висит перед глазами в бровсе , я не увижу изменений пока не обновлю запись

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 601
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.07.15 20:13. Заголовок: SergKis пишет: Для ..


SergKis пишет:

 цитата:
Для browse лучше skip буфер делать в кол-во строк browse,



Спасибо, проверю !

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5089
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.07.15 21:23. Заголовок: Haz пишет: то бровс..


Haz пишет:

 цитата:
то бровсу как минимум :RefreshAll() потребуется .


Конечно я его делаю и в консоли , когда это требует логика проги.
Все понял !

Спасибо: 0 
Профиль
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)
работают правильнее для разных значений дробной части числа



Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 799
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.08.15 10:52. Заголовок: SergKis пишет: проб..


SergKis пишет:

 цитата:
проблема cValToChar(xValue) для чисел так и не решилась


Благодарю за напоминание!
Поправил для следующей сборки

Спасибо: 0 
Профиль
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


Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 800
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.08.15 16:03. Заголовок: SergKis пишет: есть..


SergKis пишет:

 цитата:
есть ли в MiniGui готовая функция для получения объекта TSBrowse


Нет такой функции

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 782
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.08.15 16:24. Заголовок: gfilatov2002 пишет:Н..


gfilatov2002 пишет:
 цитата:
Нет такой функции


Выпадает TsBrowse из общей организации MiniGui. Нет тогда и min псевдообъекта oTSB := wForma.Magazin.Object

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4444
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.08.15 19:53. Заголовок: Всем привет. Тестир..


Всем привет.
Тестирую TBROWSE через сервер на медленном соединение...
Не очень приятно видеть как TBROWSE медленно перерисовывает окно и саму таблицу.
В терминалке была команда DispBegin() и DispEnd().
Есть ли такая команда для МиниГуи TBROWSE ?


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5210
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.08.15 21:22. Заголовок: Andrey пишет: Тести..


Andrey пишет:

 цитата:
Тестирую TBROWSE через сервер на медленном соединение...


Тут тема про TSBROWSE...

ЗЫ
А по вопросу , коли медленный коннект повесь какой то индикатор или типа того...


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4446
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.08.15 21:33. Заголовок: Dima пишет: При чем..


Dima пишет:

 цитата:
Тут тема про TSBROWSE...



Как читаю, так и написал:
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

и т.д.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5211
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.08.15 21:37. Заголовок: Andrey Думаешь Disp..


Andrey
Думаешь DispBegin() и DispEnd() ......аналоги...помогут ?
Что то сомневаюсь.

PS
Есть там BeginPaint() и EndPaint()

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4447
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.08.15 21:42. Заголовок: Dima пишет: А по во..


Dima пишет:

 цитата:
А по вопросу , коли медленный коннект повесь какой то индикатор или типа того...


Во первых не знаю как определить - медленный коннект или нет ?
Во вторых - видно как TSBROWSE строит по ячейкам таблицу - визуально, медленно и не спеша.
А при нажатии на стрелки- вверх/вниз видно как перерисовывается маркер/курсор.
Для терминального TBROWSE были команды DispBegin() и DispEnd(), т.е. саму перерисовку пользователь не видел.
Это классные команды !

Вот и хотелось бы узнать как провернуть такой же финт для TSBROWSE ?

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 57
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет