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


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




Пост N: 3566
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.08.14 17:56. Заголовок: Для Харборовского TB..


Для Харборовского TBrowseDB() я использовал подготовленный список полей, типа:

{"NN", "DOGOVOR", "City->City", "Street->Street", и т.д.} // т.е. использовал SET RELATION TO xxxxxx
{"№", "Договор", "Город", "Улица", и т.д.}

А как подготовить(заполнить) функцию LoadFields( cBrw, ParentForm, lEdit, aPoleField) ?


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




Пост N: 298
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 18.08.14 08:03. Заголовок: Andrey пишет: City-..


Andrey пишет:

 цитата:
City->City


ИМХО это не прокатит если это подчиненная рабочая область ( не проверял но судя по коду не должно работать правильно )

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




Пост N: 3567
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.08.14 10:31. Заголовок: Haz пишет: ИМХО это..


Haz пишет:

 цитата:
ИМХО это не прокатит если это подчиненная рабочая область


А как тогда сделать ?


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




Пост N: 299
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 18.08.14 10:49. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как тогда сделать


добавить столбец которому назначить блок выборки записи из/в City->City.
:bData := {|| IF(Pcount() = 0, City->City, City->City := x )}

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




Пост N: 3568
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.08.14 11:19. Заголовок: А по исходнику есть:..


А по исходнику есть:
METHOD LoadRelated( cAlias, lEditable, aNames, aHeaders ) CLASS TSBrowse
Только как прикрутить не знаю ?

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




Пост N: 300
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 18.08.14 11:51. Заголовок: Судя по исходнику до..


Судя по исходнику должно вызываться явно
oBrw:LoadRelated(.... )
Добавляет в бровс колонки с блоком выборки из указанной рабочей области
Andrey пишет:

 цитата:
Только как прикрутить не знаю


что именно не понятно в вызове LoadRelated( cAlias, lEditable, aNames, aHeaders ) ?

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




Пост N: 3569
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.08.14 12:24. Заголовок: Haz пишет: что имен..


Haz пишет:

 цитата:
что именно не понятно в вызове LoadRelated( cAlias, lEditable, aNames, aHeaders ) ?


Синтаксис.
Методом проб и ошибок получилось:
&cBrw:LoadRelated( "Sity", lEdit, {"Sity"}, {"Город"} )

А как это поле вставить в определённую колонку ?
Можно ли уже в сформировавшемся TBROWSE функцией
LoadFields( cBrw, ParentForm, lEdit, aPoleField) заменить на мою колону LoadRelated() ?



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




Пост N: 302
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 18.08.14 12:59. Заголовок: LoadRelated - не зам..


LoadRelated - не заменяет, а добавляет через ::AddColumn( TSColumn():New() т.е. вместо - никак
нужно использовать :DelColumn() и :InsColumn() руками или просто в нужной колонке отредактировать блок выборки записи на нужный

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




Пост N: 3570
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.08.14 13:27. Заголовок: Можно таблицу формир..


Можно таблицу формировать и так:
{"NN", "DOGOVOR", "City->City", "Street->Street", "FIO", и т.д.} // т.е. использовал SET RELATION TO xxxxxx
{"№", "Договор", "Город", "Улица", "ФИО абонента",и т.д.}

// -------------- запишим значения в объект TsBrowse -------------
For nI := 1 to Len(aPoleField)
IF AT("->",aPoleField[nI]) > 0
cStr := ALLTRIM(aPoleField[nI])
cAlias:= SUBSTR(cStr,1, AT("->",cStr)-1)
cPole := SUBSTR(cStr, AT("->",cStr)+2)
&cBrw:LoadRelated( cAlias, lEdit, { cPole }, { aPoleName[nI] } )
ELSE
&cBrw:LoadRelated( ALIAS(), lEdit, { aPoleField[nI]}, { aPoleName[nI] } )
ENDIF
&cBrw:aColumns[nI]:cHeading := aPoleName[nI]
&cBrw:aColumns[nI]:cPicture := aPolePict[nI]
&cBrw:aColumns[nI]:nAlign := aPoleAlign[nI]
&cBrw:SetColSize(nI,aPoleSize[nI])
Next

Работает !!!

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




Пост N: 3571
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.08.14 13:34. Заголовок: Как изменить шрифт р..


Как изменить шрифт редактирования поля ?



У себя в программе так:
&cBrw:ChangeFont( aFont[ 1 ], , 1 )
&cBrw:ChangeFont( aFont[ 2 ], , 2 )
&cBrw:ChangeFont( aFont[ 3 ], , 3 )
&cBrw:ChangeFont( aFont[ 4 ], , 4 )
&cBrw:ChangeFont( aFont[ 5 ], , 5 ) // ? 5 шрифт завел для редактирования


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




Пост N: 303
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 18.08.14 14:52. Заголовок: попробуй так obrw:a..


попробуй так
obrw:aColumns[n]:hFontEdit := aFont[5]

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




Пост N: 3574
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.08.14 15:01. Заголовок: Haz пишет: попробуй..


Haz пишет:

 цитата:
попробуй так


Получилось !!! Спасибо !!!

А курсор как огрызок. Такой должен быть ?



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




Пост N: 304
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 18.08.14 15:19. Заголовок: Andrey пишет: А кур..


Andrey пишет:

 цитата:
А курсор как огрызок.


не знаю, надо :oEdit ковырять

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




Пост N: 3575
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.08.14 16:29. Заголовок: А как редактировать ..


А как редактировать ПОЛЕ при многопользовательском режиме ????
Там же сначала нужно блокировать запись, а потом редактировать, а потом снимать блокировку !
Или TBROWSE сам это делает ?

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




Пост N: 305
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 18.08.14 16:50. Заголовок: Andrey пишет: Или T..


Andrey пишет:

 цитата:
Или TBROWSE сам это делает


делает в методе :PostEdit по умолчанию,
PS. вообще блокировка записи это для ленивых еще в clipper делал обработку ошибки "требуется блокировка" - как блокировку и повтор операции , если блокировать не удавалось - сообщение что нужно подождать и опять повтор или отказ. После этого забыл что такое Rlock()
Сейчас не пользую т.к. работаю с ADS через SQL запросы и блокировка теперь это проблема ADS сервера

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




Пост N: 3583
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.08.14 01:43. Заголовок: Всем доброй ночи ! П..


Всем доброй ночи !
Подскажите пожалуйста про такую вещь...

У меня в TBROWSE сделано так:
// обработка нажатий клавиш, включая ENTER
&cBrw2:bKeyDown := { | nKey , nFalgs| nRetCode := MyKeyAction(nKey,cBrw2, cParent, 0, nFalgs) }
// Двойной клик мышки на МАРКЕРЕ
&cBrw2:bLDblClick:= { || nRetCode := MyAction(cBrw2, cParent) }

А функция обработки мышки и ENTER такая:
//////////////////////////////////////////////////////////////////////////////
STATIC FUNCTION MyAction(oBrw, cParent )
LOCAL cText, nRet := 0
/*cText := "Здесь будет карточка !" + CRLF + CRLF
cText += "Line: " + STR(oBrw_5:nLastPos) + CRLF + CRLF
cText += "Cell: " + STR(oBrw_5:nCell) + CRLF + CRLF
cText += "RECNO(): " + STR(RECNO())+ CRLF + CRLF
cText += "1(): " + STR(FIELDGET(FIELDNUM("KSTREET")))+ CRLF + CRLF
cText += "2(): " + FIELDGET(FIELDNUM("STREET"))+ CRLF + CRLF
MsgInfo(cText) */
nRet := FIELDGET(FIELDNUM("KSTREET"))
// Как мне здесь закончить выбор из TBROWSE ????
// чтобы вернулось значение nRet

Return nRet

Достаточно ли поставить ThisWindow.Release ? или еще что-то нужно ставить ?
И возврат значения возможен только через STATIC/PUBLIC переменную ?
Хотелось бы через LOCAL переменную, я к ним привык....

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




Пост N: 306
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 22.08.14 16:52. Заголовок: Andrey пишет: Подск..


Andrey пишет:

 цитата:
Подскажите пожалуйста про такую вещь...



Не совсем понял о чем речь

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




Пост N: 3584
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.08.14 20:35. Заголовок: Haz пишет: Не совсе..


Haz пишет:

 цитата:
Не совсем понял о чем речь

Andrey пишет:

 цитата:
// Как мне здесь закончить выбор из TBROWSE ????
// чтобы вернулось значение nRet


Т.е. нужно закрыть сам TBROWSE и окно на котором TBROWSE открывался.
И вернуть значение nRet которое было выбрано в TBROWSE.
Это обычный выбор из справочника (у меня в терминалке).

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




Пост N: 307
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 22.08.14 21:32. Заголовок: Andrey пишет: Т.е. ..


Andrey пишет:

 цитата:
Т.е. нужно закрыть сам TBROWSE и окно


понятно.
Все правильно ...
Выбор из Tbrowse запоминаем в переменной и ее возвращаем функцией которая создает окно и сам бровс.
перед вызовом ThisWindow.Release эту переменную и назначаем
( эту переменную можно передавать в обработчик по ссылке - через @ )



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




Пост N: 3585
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.08.14 23:26. Заголовок: Haz пишет: ( эту пе..


Haz пишет:

 цитата:
( эту переменную можно передавать в обработчик по ссылке - через @ )



Вот мой код:
STATIC FUNCTION MyActionDim(oBrw, cParent )
LOCAL nRet := 0

nRet := FIELDGET(FIELDNUM("KCITY"))

DoMethod( 'Form_Dim',"oBrw_5", "Release" )
Domethod("Form_Dim", "Release")

Return nRet

У меня всегда возврат 0 !!
Я так понял что формы обе закрываются, а в этой функции - Return nRet - не возвращается !

Т.е. тогда нужно делать наверно так:
nRetCode := 0
MyActionDim(oBrw, cParent, @nRetCode)
MsgDebug( nRetCode )

STATIC FUNCTION MyActionDim(oBrw, cParent, nRet)
nRet := FIELDGET(FIELDNUM("KCITY"))
DoMethod( 'Form_Dim',"oBrw_5", "Release" )
Domethod("Form_Dim", "Release")
Return NIL

И везьде делать про ссылке передачу @nRetCode - правильно ?


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