On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]


Vlad04
постоянный участник


Пост N: 425
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 24.02.14 08:09. Заголовок: gfilatov2002 Григор..


gfilatov2002
Григорий
Если вернуться к первому пункту поста.Посмотрите, может есть возможность переопределить Tbrowse так , чтобы он в программнике писался как Browse ( параметры не РАЗДЕЛЯЛЬСЬ символом ; )
DEFINE BROWSE Browse_1
COL 10
ROW 10
WIDTH 610
HEIGHT 390
....

В Tbrowse

DEFINE TBROWSE Brw_1 AT 0, 0 ALIAS "Employee" ;
COLORS {CLR_BLACK, CLR_NBLUE} ;
WIDTH nBrwWidth ;
HEIGHT nBrwHeight ;


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




Пост N: 559
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.02.14 12:01. Заголовок: Vlad04 пишет: может..


Vlad04 пишет:

 цитата:
может есть возможность переопределить Tbrowse так , чтобы он в программнике писался как Browse


В терминах библиотеки минигуи это называется альтернативный синтаксис. При этом становится удобнее написание текста программы, но неоптимальным - генерируемый код. Если для Вас это необходимо, то Вы можете добавить требуемое описание в заголовочный файл include\i_altsyntax.ch (сейчас там этого нет ).

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




Пост N: 3254
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.03.14 13:09. Заголовок: Haz пишет: (иначе н..


Haz пишет:

 цитата:
(иначе нужно переопределять колонки)



Как можно определить свой показ колонок для TBROWSE, а то я совсем запутался...
Делаю так:
oBrw_1:aColumns[1]:cHeading := "Дата" + CRLF + "события"
oBrw_1:SetColSize(1, 50)
oBrw_1:aColumns[1]:nAlign := DT_CENTER
А поле базы как здесь определить ?


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




Пост N: 139
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.03.14 16:00. Заголовок: Andrey пишет: А пол..


Andrey пишет:

 цитата:
А поле базы как здесь определить



через oBrw_1:aColumns[1]:bData

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




Пост N: 3850
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.03.14 16:01. Заголовок: Andrey пишет: А пол..


Andrey пишет:

 цитата:
А поле базы как здесь определить ?


Как то так
oBrw_1:aColumns[1]:bdata:=твой блок кода для выборки данных

Если чего не знаешь смотри Tsbrowse.ch

 цитата:

#xcommand MODIFY [ CONTROL ] [ TBROWSE ] <oBrw> COLUMN <nColumn> [ PROPERTY ] DATA TO <bData>;
=> <oBrw>:aColumns\[ <nColumn> \]:bData := <bData>





PS
Haz
Опередил ;)

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




Пост N: 140
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 03.03.14 16:17. Заголовок: Dima пишет: Если че..


Dima пишет:

 цитата:
Если чего не знаешь смотри Tsbrowse.ch



согласен и еще можно посмотреть в TsColumn.prg и h_browse.prg там оч много интересного, к примеру
DATA bData // Mandatory code block to return column data

Dima пишет:

 цитата:
Опередил ;)


я не специально ))






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




Пост N: 3255
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.03.14 16:22. Заголовок: Haz пишет: Haz Опер..


Haz пишет:

 цитата:
Haz
Опередил ;)


Спасибо вам ОГРОМНОЕ !
Хорошо что есть кто отвечает на вопросы !

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




Пост N: 3256
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.03.14 16:25. Заголовок: Dima пишет: Как то ..


Dima пишет:

 цитата:
Как то так
oBrw_1:aColumns[1]:bdata:=твой блок кода для выборки данных


А если нужно выводить поле по шаблону, то как делать ?
FIELD->NTIME
PICTURE - "99:99"

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




Пост N: 3851
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 03.03.14 16:43. Заголовок: Andrey Наверное так..


Andrey
Наверное так
oBrw_1:aColumns[1]:Cpicture:="99:99"

Haz пишет:

 цитата:
согласен и еще можно посмотреть в TsColumn.prg и h_browse.prg там оч много интересного


+1


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




Пост N: 3257
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.03.14 21:42. Заголовок: Чем больше делаешь, ..


Чем больше делаешь, тем больше вопросов возникает...
( чем дальше в лес, тем больше дров ! )

Подскажите пожалуйста:
1) Почему дата не выходит полностью в первом столбце ?
2) Как убрать выделение серым цветом заголовка первого столбца ?
3) Как установить горизонтальный скролинг ?
4) Я перечислил ВЫВОД 7 полей, а выводиться больше (да еще на английском), почему ?


Ну и еще до кучи, индексы показываются неправильно....
Вот сам проект http://files.mail.ru/FB59CE79DA39455098065F18BE9FB27A

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




Пост N: 141
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 04.03.14 10:03. Заголовок: Andrey пишет: Чем б..


Andrey пишет:

 цитата:
Чем больше делаешь, тем больше вопросов возникает...



1 - не достаточна заявленная ширина колонок установлено 50 и в описании колонки 2 !!!! . центрировать дату лучше по DT_CENTER . :cPicture := "99.99.9999" лишнее т.к. есть SET DATE FORMAT "DD.MM.YYYY"

2. присвоить &cBrw:SetColor( { 14 } .... то же что и в &cBrw:SetColor( { 4 },
подробнее см. h_browse.prg как рисуются заголовки в METHOD DrawHeaders( lFooters ) CLASS TSBrowse

3. убить в своем коде его отключение &cBrw:lNoHScroll := .T. и &cBrw:ResetVScroll()

4. Не перечислил а переопределил , остальные загружены дефолтом &cBrw:LoadFields( .F. )

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




Пост N: 3258
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.03.14 22:21. Заголовок: Haz пишет: 1 - не д..


Haz пишет:

 цитата:
1 - не достаточна заявленная ширина колонок установлено 50 и в описании колонки 2 !!!! .


Понял, что из-за маленького размера второй колонки, не получалась первая. Буду знать теперь.

2) Сделал как порекомендовали:
&cBrw:SetColor( { 14 }, { { || { Rgb( 43, 149, 168 ), Rgb( 0, 54, 94 )}}}) // Шапка выделения индекса
Результат все равно не тот. Хотелосб бы ВООБЩЕ отказаться от сортировки. Если это нельзя, то тогда понятно.


3) Получилось.

4) А как тогда задать поля из базы ТОЛЬКО те которые нужны ?
&cBrw:LoadFields( .T. ) - тоже не работает....






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




Пост N: 142
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.03.14 09:28. Заголовок: Andrey пишет: Понял..


Andrey пишет:

 цитата:
Понял, что из-за маленького размера второй колонки, не получалась первая. Буду знать теперь.



Вижу что не понял в твоем исходнике в коде описания параметров ВТОРОЙ колонки есть ОПЕЧАТКА - снова устанавливаешь ширину ПЕРВОЙ oBrw_1:SetColSize(1, 50)

Andrey пишет:

 цитата:
Хотелосб бы ВООБЩЕ отказаться от сортировки


нет ничего проще oBrw_1:lNoChangeOrd := .T.
PS. цитата из h_tbrowse.prg
"DATA lNoChangeOrd AS LOGICAL // avoids changing active order by double clicking on headers"
предвижу вопрос о цвете шрифта в первой колонке - ответ :SetColor( 13 .......)

и на последний вопрос
LoadFilds( .T. ) - просто разрешает редактированиме
Можно спрятать лишние HideColumns( nColumn , lHide ) - описание есть в справке по TSBrowse которая идет с поставкой MiniGui
или в том же исходнике библиотеки
Если много колонок бровс начинает немного тупить и если они не нужны в бровсе их лучше удалить через
METHOD DelColumn( nPos ) или добавлять только нужные изначально AddColumn( oColumn) - в справке этих методов нет , а в исходнике есть это как " ... видишь суслика ? .... а он там есть "



Андрей - найди время , посмотри исходники . Да они не маленькие , но там очень много интересного




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




Пост N: 3259
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.14 13:11. Заголовок: Haz пишет: Можно сп..


Haz пишет:

 цитата:
Можно спрятать лишние HideColumns( nColumn , lHide ) - описание есть в справке по TSBrowse которая идет с поставкой MiniGui


Да я это видел, но считать поля по каждой базе не совсем правильное решение. У меня есть базы имеющие 150 полей. Для показа нужно всего 15. Ладно, можно один раз перечислить. А когда новые поля в базу добавишь, нужно будет тогда ОПЯТЬ лезть в исходник и править его. ОЧЕНЬ НЕУДОБЕН этот метод.
Хочется как на Клипере создавать бровс.

Haz пишет:

 цитата:
или добавлять только нужные изначально AddColumn( oColumn) - в справке этих методов нет , а в исходнике есть это как " ... видишь суслика ? .... а он там есть "


Вот это уже лучше метод построения ! Буду смотреть.

Haz пишет:

 цитата:
- найди время , посмотри исходники . Да они не маленькие , но там очень много интересного


Буду смотреть, но многое не очевидно для меня. И изучение идет наскоками, основную работу никто не отменяет...

Haz Спасибо огромное за помощь !


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




Пост N: 3260
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.14 21:07. Заголовок: Haz пишет: нет ниче..


Haz пишет:

 цитата:
нет ничего проще oBrw_1:lNoChangeOrd := .T.


Не работает. Остается графический значок сортировки.
1) Как его убрать. Я конечно могу его закрасить фоном шапки таблицы и отдельной иконкой добавить в проект. Но это же не выход. Если нельзя убрать, то как тогда "передвинуть" всю эту красоту на 4 шапку таблицы: "Наименование события" ?

2) Как уменьшить высоту ячейки таблицы ?
Далал уже и &cBrw:nHeightCell += 8 // высота ячейки TBROWSE
Все равно размер не меняется.



Измененный проект тут - http://files.mail.ru/3784AE8B8AA3438C8CC0C8597D328584


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




Пост N: 143
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.03.14 10:42. Заголовок: Andrey пишет: Не ра..


Andrey пишет:

 цитата:
Не работает. Остается графический значок сортировки.



После oBrw_1:lNoChangeOrd := .T. добавь строку oBrw_1:nColOrder := 0 . должно сработать

Andrey пишет:

 цитата:
Все равно размер не меняется.



скорее всего в таблице есть мемо поле и ты его пихаешь в бровс . Удали колонку с мемо :DelColumn( 11 ) и высота строк станет управляемой

Следующий вопрос скорее всего будет - как показать мемо.
Отвечаю - создать на форме EditBox в режиме ReadOnly ( к примеру там где ноги ), а в oBrw_1 на событие ON CHANGE повесить функцию или блок который делает
EditBox.Value := (oBrw_1:cAlias)->MEMO

PS и исправь наконец у себя опечатку в коде 1 на 2

oBrw_1:aColumns[2]:cHeading := "Время" + CRLF + "события"
oBrw_1:SetColSize(1, 70)
oBrw_1:aColumns[2]:nAlign := DT_CENTER
oBrw_1:aColumns[2]:bData := {||LOG_DBF->TIME }

PSS
и при попытке поиска будет вылет с ошибкой т.к. пытаешься привести в верхний регистр числовое поле UPPER(LOG_DBF->NEVENT)



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




Пост N: 3261
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.14 16:34. Заголовок: Уже получается лучше..


Уже получается лучше ! http://files.mail.ru/710FE7B921CC4EAEB7BF0FF766551373
Haz пишет:

 цитата:
Следующий вопрос скорее всего будет - как показать мемо.


Хотелось бы сделать показ мемо в отдельном (дополнительном) окне, через CheckBox ! Как это сделать ?
Т.к. мемо может быть большим и при желании можно было бы смотреть по желанию юзера.
Примерно так:


И еще возник вопрос, при перемещении курсора изменение позиции "Запись 0/0" в STATUSBAR - как сделать ?


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




Пост N: 144
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.03.14 20:04. Заголовок: Andrey пишет: Хотел..


Andrey пишет:

 цитата:
Хотелось бы сделать показ мемо в отдельном (дополнительном) окне



если примерно как на картинке то
добавить в бровс пустую колонку , дать ей болк выборки { || 'MEMO'}. разрешить редактирование :lEdit := .T.и через oBrw_1:aColumns[11]:bPrewEdit := {|| ...} вызывать функцию которая в окне показывает мемо, Эта функция должна вернуть FALSE ( ну или через BtnBox делать чтоб совсем как на картинке)

Andrey пишет:

 цитата:
при перемещении курсора изменение позиции



на ON CHANGE бровса повесить нвзначение элемену статусбара строки вида - NTOC(Recno()) + '/' + NTOC(RecCount())

PS. кстати в твоем примере oBrw_1:aColumns[]:bData не нужен тк и так LoadFilds() назначает дефолтловый блок

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




Пост N: 3263
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.14 14:22. Заголовок: Haz пишет: PS. кста..


Haz пишет:

 цитата:
PS. кстати в твоем примере oBrw_1:aColumns[]:bData не нужен тк и так LoadFilds() назначает дефолтловый блок


Так он у меня за комментирован в программе ! //LoadFields( cBrw, cParent )
И я все таки хочу собирать TBROWS ТОЛЬКО из своих полей.
Помоги пожалуйста в описании одной колонки, примеры смотрел, ни фига не понял.
Как эту строку:
ADD COLUMN TO TBROWSE &ob DATA ARRAY ELEMENT 1 ALIGN DT_CENTER, DT_CENTER SIZE 20 COLORS C_TEK, C_SYS
преобразовать до привычной Клиперовской:
oBrw_1:aColumns[1]:cHeading := "Дата" + CRLF + "события"
oBrw_1:SetColSize(1, 70)
oBrw_1:aColumns[1]:bData := {||LOG_DBF->DATE }
// oBrw_1:aColumns[1]:cPicture:="99.99.9999" - не обязательно
oBrw_1:aColumns[1]:nAlign := DT_CENTER



Haz пишет:

 цитата:
на ON CHANGE бровса повесить нвзначение элемену статусбара строки вида


Спасибо ! Работает.
ON CHANGE { || Form_0.StatusBar.Item(1) := " Запись: " + NTOC(Recno()) + '/' + NTOC(RecCount()) }
Потом заменю на показ значений по индексам.

Только при смещении мышкой строка Form_0.StatusBar.Item(1) - чиститься... вообще.

Как мышкой нажмешь, то появляется (клавиши нормально работают) !

Что за фигня, где исправить ? Это у меня где-то в коде или это обычное поведение TBROWSA ?




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




Пост N: 145
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.03.14 10:55. Заголовок: Andrey пишет: смотр..


Andrey пишет:

 цитата:
смотрел, ни фига не понял.


не там смотрел, посмотри как это делается в самом методе (не в функции) Loadfield - там как раз используется ::AddColumn

Andrey пишет:

 цитата:
Что за фигня, где исправить



первый элемент статусбара бровс без объявления войны забирает под свои сообщения делай его пустым, а свой вывод гони во второй



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