Автор | Сообщение |
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
[только новые]
|
|
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) ?
|
|
|
Haz
|
| |
Пост N: 298
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.08.14 08:03. Заголовок: Andrey пишет: City-..
Andrey пишет: ИМХО это не прокатит если это подчиненная рабочая область ( не проверял но судя по коду не должно работать правильно )
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3567
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.08.14 10:31. Заголовок: Haz пишет: ИМХО это..
Haz пишет: цитата: | ИМХО это не прокатит если это подчиненная рабочая область |
| А как тогда сделать ?
|
|
|
Haz
|
| |
Пост N: 299
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.08.14 10:49. Заголовок: Andrey пишет: А как..
Andrey пишет: добавить столбец которому назначить блок выборки записи из/в City->City. :bData := {|| IF(Pcount() = 0, City->City, City->City := x )}
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3568
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.08.14 11:19. Заголовок: А по исходнику есть:..
А по исходнику есть: METHOD LoadRelated( cAlias, lEditable, aNames, aHeaders ) CLASS TSBrowse Только как прикрутить не знаю ?
|
|
|
Haz
|
| |
Пост N: 300
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.08.14 11:51. Заголовок: Судя по исходнику до..
Судя по исходнику должно вызываться явно oBrw:LoadRelated(.... ) Добавляет в бровс колонки с блоком выборки из указанной рабочей области Andrey пишет: цитата: | Только как прикрутить не знаю |
| что именно не понятно в вызове LoadRelated( cAlias, lEditable, aNames, aHeaders ) ?
|
|
|
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() ?
|
|
|
Haz
|
| |
Пост N: 302
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.08.14 12:59. Заголовок: LoadRelated - не зам..
LoadRelated - не заменяет, а добавляет через ::AddColumn( TSColumn():New() т.е. вместо - никак нужно использовать :DelColumn() и :InsColumn() руками или просто в нужной колонке отредактировать блок выборки записи на нужный
|
|
|
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 Работает !!!
|
|
|
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 шрифт завел для редактирования
|
|
|
Haz
|
| |
Пост N: 303
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.08.14 14:52. Заголовок: попробуй так obrw:a..
попробуй так obrw:aColumns[n]:hFontEdit := aFont[5]
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3574
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.08.14 15:01. Заголовок: Haz пишет: попробуй..
Haz пишет: Получилось !!! Спасибо !!!
|
|
|
Haz
|
| |
Пост N: 304
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.08.14 15:19. Заголовок: Andrey пишет: А кур..
Andrey пишет: не знаю, надо :oEdit ковырять
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3575
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.08.14 16:29. Заголовок: А как редактировать ..
А как редактировать ПОЛЕ при многопользовательском режиме ???? Там же сначала нужно блокировать запись, а потом редактировать, а потом снимать блокировку ! Или TBROWSE сам это делает ?
|
|
|
Haz
|
| |
Пост N: 305
Зарегистрирован: 20.02.11
|
|
Отправлено: 18.08.14 16:50. Заголовок: Andrey пишет: Или T..
Andrey пишет: цитата: | Или TBROWSE сам это делает |
| делает в методе :PostEdit по умолчанию, PS. вообще блокировка записи это для ленивых еще в clipper делал обработку ошибки "требуется блокировка" - как блокировку и повтор операции , если блокировать не удавалось - сообщение что нужно подождать и опять повтор или отказ. После этого забыл что такое Rlock() Сейчас не пользую т.к. работаю с ADS через SQL запросы и блокировка теперь это проблема ADS сервера
|
|
|
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 переменную, я к ним привык....
|
|
|
Haz
|
| |
Пост N: 306
Зарегистрирован: 20.02.11
|
|
Отправлено: 22.08.14 16:52. Заголовок: Andrey пишет: Подск..
Andrey пишет: цитата: | Подскажите пожалуйста про такую вещь... |
| Не совсем понял о чем речь
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3584
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.08.14 20:35. Заголовок: Haz пишет: Не совсе..
Haz пишет: цитата: | Не совсем понял о чем речь |
|
Andrey пишет: цитата: | // Как мне здесь закончить выбор из TBROWSE ???? // чтобы вернулось значение nRet |
| Т.е. нужно закрыть сам TBROWSE и окно на котором TBROWSE открывался. И вернуть значение nRet которое было выбрано в TBROWSE. Это обычный выбор из справочника (у меня в терминалке).
|
|
|
Haz
|
| |
Пост N: 307
Зарегистрирован: 20.02.11
|
|
Отправлено: 22.08.14 21:32. Заголовок: Andrey пишет: Т.е. ..
Andrey пишет: цитата: | Т.е. нужно закрыть сам TBROWSE и окно |
| понятно. Все правильно ... Выбор из Tbrowse запоминаем в переменной и ее возвращаем функцией которая создает окно и сам бровс. перед вызовом ThisWindow.Release эту переменную и назначаем ( эту переменную можно передавать в обработчик по ссылке - через @ )
|
|
|
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 - правильно ?
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|