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


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




Пост N: 1707
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.01.18 14:28. Заголовок: Haz пишет метод рабо..


Haz пишет
 цитата:
метод работает. Я о том что просто не пользуюсь им.


Я тоже не пользуюсь, но с тем что работает, не соглашусь.
Если фонты по блоку кода - валится, нет footer вывода ...
т.е. для того чтобы заработал, надо делать спец. отображение тсб.
с изменениями, простенький вывод есть без адо, длл и др. спец.оборудования.

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


Пост N: 758
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 26.01.18 11:36. Заголовок: Tsb_seek ИЗ пример..


Tsb_seek ИЗ примеров c:\MiniGUI\SAMPLES\Advanced\Tsb_seek\

Сегодня обратил на такую странность в отображении. Если стрелкой прокручивать бровс вниз,
то экран заполняется одинаковыми данными, не обновляется.

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




Пост N: 5703
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.01.18 13:48. Заголовок: Vlad04 пишет: то эк..


Vlad04 пишет:

 цитата:
то экран заполняется одинаковыми данными


Наверное залипла последняя запись в таблице. Такое бывает часто.
Нужно добавить разрыв в конец таблицы.
Был бы подвал в конце таблицы, можно было бы воспользоваться функцией
oBrw:SetNoHoles() // убрать дырку внизу таблицы


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


Пост N: 760
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 26.01.18 14:27. Заголовок: Помогло , без подвал..


Помогло , без подвала

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


Пост N: 761
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 26.01.18 14:52. Заголовок: Но не во всех случая..


Но не во всех случаях.
Помогло добавить

 цитата:

DEFINE TBROWSE Br_zaw AT 10, 1 OF o_test ALIAS "test" WIDTH (zox/2)-10 HEIGHT (zoy-150) ON CHANGE {||inkey(0.03),CorrectionFirstLast( Br_zaw )}


CorrectionFirstLast - где то здесь описывается


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




Пост N: 5705
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.01.18 15:38. Заголовок: Vlad04 пишет: Corre..


Vlad04 пишет:

 цитата:
CorrectionFirstLast


Выкинь эту функцию и забудь про неё !
Её дорабатывать нужно, я тоже её использовал, в каких то случаях помогает, в других вообще мешает.
Наz советовал её не пользоваться.
Делай высоту таблицы на 1-2 пикселя больше чем высота всех отображаемых ячеек.
Это SergKis так рекомендует. У меня залипание пропало в таких случаях.

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




Пост N: 1713
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.01.18 15:42. Заголовок: Vlad04 пишет Но не в..


Vlad04 пишет
 цитата:
Но не во всех случаях


если так
 
END WINDOW

br_f:SetNoHoles(3)
br_zaw:SetNoHoles(3)

br_f:enabled(.f.)


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


Пост N: 762
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 26.01.18 17:26. Заголовок: SergKis br_zaw:Set..


SergKis


 цитата:
br_zaw:SetNoHoles(3)


Очень хорошо ! А (3) , что означает ?
И вообще, что этот метод делает ?

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




Пост N: 1714
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.01.18 18:38. Заголовок: Vlad04 пишет что это..


Vlad04 пишет
 цитата:
что этот метод делает ?


Метод убирает дырку в низу таблицы, распределяя разницу между присутствующими заголовками\подвалами,
если их нет, есть только строки, то подправит размер тсб по высоте
 
METHOD SetNoHoles( nDelta, lSet ) CLASS TSBrowse

LOCAL nH, nK, nHeight, nHole

DEFAULT nDelta := 2, lSet := .T.
...

nDelta := 2 - поправка для расчетов разницы
lSet := .F. - рассчитает величину дырки, вернет из метода не меняя размер


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




Пост N: 5706
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.18 08:12. Заголовок: Делаю таблицу выбора..


Делаю таблицу выбора по базе.
Создаю колонки:
     // создать 1-ю колонку  
ADD COLUMN TO oBrw2 HEADER "Номер"+CRLF+"графы" ;
DATA FieldWBlock( "ID", Select() ) ;
SIZE nWidth1 PICTURE "@Z 999" ;
ALIGN DT_CENTER,DT_CENTER,DT_CENTER
// создать 2-ю колонку
ADD COLUMN TO oBrw2 HEADER "Наименование"+CRLF+"графы в карточке" ;
DATA FieldWBlock( "FHEADER", Select() ) ;
SIZE nWidth2 ;
ALIGN DT_LEFT,DT_CENTER,DT_LEFT
// создать 3-ю колонку
ADD COLUMN TO oBrw2 HEADER "Печать"+CRLF+"в таблице" ;
DATA FieldWBlock( "VIEW", Select() ) ;
SIZE nWidth3 ;
CHECKBOX ; // Editing with Check Box
ALIGN DT_CENTER, DT_CENTER ;
EDITABLE MOVE DT_MOVE_DOWN
oBrw2:aColumns[3]:bPrevEdit := {|| CheckField(), TRUE } // проверка до ввода
....
// --------- заменяем колонку CHECKBOX на свои картинки ---------
oBrw2:aCheck := { LoadImage("CheckT28"), LoadImage("CheckF28") }
....

Таблица не простая, для ID=0 делаются заголовки в таблице цветом и запрет на редактирование.
Нужно убрать в таблице показ чекбокса по условию ID=0.
Как это сделать ?

Вот картинка:




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


Пост N: 766
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 30.01.18 08:47. Заголовок: if i =3 ADD..



 цитата:

if i =3
ADD COLUMN TO Brw_1 DATA {|| iif(Dogovor->Vid > 0,aVidD[Dogovor->Vid],' Нет ' )} ....
...


А попробуй при формировании колонки установить условия показа чекбокса от значения ID. Т.е. вместо показа чекбокса можешь вывести пустое место.

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




Пост N: 5707
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.18 10:13. Заголовок: Vlad04 пишет: А поп..


Vlad04 пишет:

 цитата:
А попробуй при формировании колонки установить условия показа чекбокса от значения ID. Т.е. вместо показа чекбокса можешь вывести пустое место.


Покажи как:
 ADD COLUMN TO oBrw2 HEADER "Печать"+CRLF+"в таблице" ;  
DATA FieldWBlock( "VIEW", Select() ) ;


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




Пост N: 1166
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.01.18 14:13. Заголовок: Andrey пишет: Табли..


Andrey пишет:

 цитата:
Таблица не простая, для ID=0 делаются заголовки в таблице цветом и запрет на редактирование.
Нужно убрать в таблице показ чекбокса по условию ID=0.
Как это сделать ?


Не меняя класса TBROWSE можно только пытаться по условию ID=0 подменить ::aCheck в блоках ::bOnDrawLine и ::bOnDraw соответственно , а по условию ID <> 0 восстанавливать.
Но думаю грязновато работать будет. В смысле работать будет , но с глючком.

Оптимально - в классе дописать возможность ::aCheck назначать блок кода и добавить проверки на hb_isBlock( ::aCheck ).
тогда картинки чекбокса можно будет менять на лету , в том числе и задавать NIL

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




Пост N: 5709
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.18 15:02. Заголовок: Haz пишет: Не меняя..


Haz пишет:

 цитата:
Не меняя класса TBROWSE можно только пытаться по условию ID=0 подменить ::aCheck в блоках ::bOnDrawLine и ::bOnDraw соответственно , а по условию ID <> 0 восстанавливать.
Но думаю грязновато работать будет. В смысле работать будет , но с глючком.



Вот я с этим и бился... Решил сделать по другому:
 
LOCAL hImgTrue := LoadImage("CheckT28"), hImgFalse := LoadImage("CheckF28")
.....
// создать 3-ю колонку
ADD COLUMN TO oBrw2 HEADER "Печать"+CRLF+"в таблице" ;
DATA FieldWBlock( "VIEW", Select() ) ; // эту строку наверное можно выкинуть ?
SIZE nWidth3 ;
NAME VIEW BITMAP ;
ALIGN DT_CENTER, DT_CENTER ;
EDITABLE MOVE DT_MOVE_DOWN
oBrw2:aColumns[3]:bPrevEdit:= {|| CheckField(), FALSE } // проверка до ввода
oBrw2:aColumns[3]:uBmpCell := {|| IF( (oBrw2:cAlias)->ID == 0, '' , IF( (oBrw2:cAlias)->VIEW , hImgTrue, hImgFalse ) ) }
oBrw2:aColumns[3]:bData := {||Nil}
oBrw2:aColumns[3]:cData := '{||Nil}'
oBrw2:aColumns[3]:nAlign := nMakeLong( DT_CENTER, DT_CENTER )



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




Пост N: 1167
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.01.18 15:19. Заголовок: Andrey пишет: Решил..


Andrey пишет:

 цитата:
Решил сделать по другому:


вполне нормальное решение отказаться от чекбокса и использовать подмену ::bData и ::uBmpCell
и главное оно универсально

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


Пост N: 767
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 30.01.18 16:44. Заголовок: Andrey Покажи как: ..


Andrey

 цитата:
Покажи как:

ADD COLUMN TO Brw_1 DATA {|| iif(Dogovor->Vid <> 0,aVidD[Dogovor->Vid],' Нет ' )} ...

Вариант не для ПРЯМОГО РЕДАКТИРОВАНИЯ.




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




Пост N: 1168
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.01.18 20:39. Заголовок: Vlad04 пишет: Вариа..


Vlad04 пишет:

 цитата:
Вариант не для ПРЯМОГО РЕДАКТИРОВАНИЯ.


Это скорее вариант не прямой выборки. Для редактирования ему как до луны.
Но это ни в коем случае не упрёк. Как работает блок выборки_записи, все
знают со времен клиппера, и допилить - не вопрос.
PS. сам часто использую этот прием, ступор иногда возникает при инкрементальном поиске по таким колонкам


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




Пост N: 6712
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.01.18 22:43. Заголовок: Haz пишет: Для реда..


Haz пишет:

 цитата:
Для редактирования ему как до луны


Да уж


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




Пост N: 5710
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.01.18 22:57. Заголовок: Andrey пишет: oBrw2..


Andrey пишет:

 цитата:
oBrw2:aColumns[3]:bPrevEdit:= {|| CheckField(), FALSE } // проверка до ввода



Редактировать нужно ТОЛЬКО ТРЕТИЙ столбец. Мышка и Enter в CheckField() прекрасно с этим справляются.
Там ещё параллельно в другую базу пишется...

Скрытый текст



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


Пост N: 768
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 31.01.18 07:53. Заголовок: Haz Такую конструкци..


Haz
Такую конструкцию использую только для информационных столбцов, прямое редактирование использую
для простых таблиц, типа справочник (1-2 колонки), что сложней - в отдельной форме.

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