Автор | Сообщение |
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:....
|
|
|
Ответов - 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 ;
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 559
Зарегистрирован: 11.02.10
|
|
Отправлено: 24.02.14 12:01. Заголовок: Vlad04 пишет: может..
Vlad04 пишет: цитата: | может есть возможность переопределить Tbrowse так , чтобы он в программнике писался как Browse |
| В терминах библиотеки минигуи это называется альтернативный синтаксис. При этом становится удобнее написание текста программы, но неоптимальным - генерируемый код. Если для Вас это необходимо, то Вы можете добавить требуемое описание в заголовочный файл include\i_altsyntax.ch (сейчас там этого нет ).
|
|
|
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 А поле базы как здесь определить ?
|
|
|
Haz
|
| |
Пост N: 139
Зарегистрирован: 20.02.11
|
|
Отправлено: 03.03.14 16:00. Заголовок: Andrey пишет: А пол..
Andrey пишет: цитата: | А поле базы как здесь определить |
| через oBrw_1:aColumns[1]:bData
|
|
|
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 Опередил ;)
|
|
|
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 пишет: я не специально ))
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3255
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.03.14 16:22. Заголовок: Haz пишет: Haz Опер..
Haz пишет: Спасибо вам ОГРОМНОЕ ! Хорошо что есть кто отвечает на вопросы !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3256
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.03.14 16:25. Заголовок: Dima пишет: Как то ..
Dima пишет: цитата: | Как то так oBrw_1:aColumns[1]:bdata:=твой блок кода для выборки данных |
| А если нужно выводить поле по шаблону, то как делать ? FIELD->NTIME PICTURE - "99:99"
|
|
|
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
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3257
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.03.14 21:42. Заголовок: Чем больше делаешь, ..
Чем больше делаешь, тем больше вопросов возникает... ( чем дальше в лес, тем больше дров ! ) Подскажите пожалуйста: 1) Почему дата не выходит полностью в первом столбце ? 2) Как убрать выделение серым цветом заголовка первого столбца ? 3) Как установить горизонтальный скролинг ? 4) Я перечислил ВЫВОД 7 полей, а выводиться больше (да еще на английском), почему ? Ну и еще до кучи, индексы показываются неправильно.... Вот сам проект http://files.mail.ru/FB59CE79DA39455098065F18BE9FB27A
|
|
|
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. )
|
|
|
|
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. ) - тоже не работает....
|
|
|
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) - в справке этих методов нет , а в исходнике есть это как " ... видишь суслика ? .... а он там есть " Андрей - найди время , посмотри исходники . Да они не маленькие , но там очень много интересного
|
|
|
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 Спасибо огромное за помощь !
|
|
|
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
|
|
|
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)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3261
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.03.14 16:34. Заголовок: Уже получается лучше..
Уже получается лучше ! http://files.mail.ru/710FE7B921CC4EAEB7BF0FF766551373 Haz пишет: цитата: | Следующий вопрос скорее всего будет - как показать мемо. |
| Хотелось бы сделать показ мемо в отдельном (дополнительном) окне, через CheckBox ! Как это сделать ? Т.к. мемо может быть большим и при желании можно было бы смотреть по желанию юзера. Примерно так: И еще возник вопрос, при перемещении курсора изменение позиции "Запись 0/0" в STATUSBAR - как сделать ?
|
|
|
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() назначает дефолтловый блок
|
|
|
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 ?
|
|
|
Haz
|
| |
Пост N: 145
Зарегистрирован: 20.02.11
|
|
Отправлено: 08.03.14 10:55. Заголовок: Andrey пишет: смотр..
Andrey пишет: цитата: | смотрел, ни фига не понял. |
| не там смотрел, посмотри как это делается в самом методе (не в функции) Loadfield - там как раз используется ::AddColumn Andrey пишет: цитата: | Что за фигня, где исправить |
| первый элемент статусбара бровс без объявления войны забирает под свои сообщения делай его пустым, а свой вывод гони во второй
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|