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 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


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




Пост N: 5189
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.11.16 12:19. Заголовок: Спасибо Дима ! :sm3..


Спасибо Дима !
Чудо свершилось, чуток переделал и горизонтальный скролинг пропал, а вертикальный стал нормально показываться:
SetProperty(oBrwX:cParentWnd, oBrwX:cControlName, "Enabled", .F.) 
oBrwX:bChange := {|| oBrwX:oHScroll:SetRange( 0, 0 ) }
oBrwX:Reset()
oBrwX:Refresh(.T.)
oBrwX:Upstable()
SetProperty(oBrwX:cParentWnd, oBrwX:cControlName, "Enabled", .T.)
oBrwX:Setfocus()


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


Пост N: 617
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 28.11.16 11:51. Заголовок: TsBrows И COMBOBOX


Есть основная база, к примеру, MIBLP.dbf. Есть вторая база - INFEKZII.dbf, это источник данных
Пример, заготовка здесь - TsBrows И COMBOBOX

Хотелось , бы
1) чтобы в TsBrows в поля 'KRANK1','KRANK2','KRANK3' был подключены COMBOBOX и можно было бы производить выбор данных
из второй базы (подобное возможно, но примеры которые есть сильно перегружены лишней информацией)
2)в Combo_1, который на поле формы отображалось значение , к примеру поля 'KRANK1' базы MIBLP.dbf. Но в то же время была-бы возможность изменить
данные выбором из сомбо

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




Пост N: 1324
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.11.16 15:03. Заголовок: Vlad04 пишет Хотелос..


Vlad04 пишет
 цитата:
Хотелось , бы


Тут вариант http://my-files.ru/q9hcvw


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


Пост N: 618
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 28.11.16 19:40. Заголовок: Не просто.Если прогр..


Не просто.Если программа большая, запутаться легко. Почему-то в Browse в подстановке в поле базы данных из массива через комбобох
нет особых проблем.


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




Пост N: 1325
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.11.16 20:32. Заголовок: Vlad04 Может так про..


Vlad04 Может так проще http://my-files.ru/ltps9w

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




Пост N: 1326
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.11.16 21:27. Заголовок: Vlad04 Т.к. TBROWSE..


Vlad04
Т.к. TBROWSE_1 private, может быть public, то упростить можно еще так
 
FUNC Combo_Enter()
Local cForm := ThisWindow.Name
Local cComb := This.Name
Local oBrw := TBROWSE_1
// Local cBrw := "TBROWSE_1"
// Local oBrw := _HMG_aControlIds[ GetControlIndex(cBrw, cForm) ]
Local oCol := oBrw:GetColumn[cComb]
Local nVal, cVal

nVal := This.&(cComb).Value
cVal := This.&(cComb).Item(nVal)
Eval(oCol:bPostEdit, cVal, oBrw)
oBrw:SetFocus()

RETURN NIL

и в блоках кода вместо obr использовать TBROWSE_1
Я не исп. Public\Private потому использую параметры блоков кода

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




Пост N: 1327
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.11.16 21:59. Заголовок: Vlad04 подправил, с..


Vlad04
подправил, с учетом уст. курсора тсб на любой колонке и модификация инф. из combobox
 
FUNC TBrowse_1_Sets()
...
:GetColumn('KRANK3'):bPostEdit := bPost

:GoPos(1, 1)
:SetFocus()

END WITH
...
FUNC Combo_Enter()
Local cForm := ThisWindow.Name
Local cComb := This.Name
Local oBrw := TBROWSE_1
Local oCol := oBrw:GetColumn(cComb)
Local nVal, cVal

nVal := This.&(cComb).Value
cVal := This.&(cComb).Item(nVal)
(oBrw:cAlias)->( FieldPut(FieldPos(cComb), cVal) )
oBrw:SetFocus()

RETURN NIL


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


Пост N: 619
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 29.11.16 11:22. Заголовок: SergKis Спасибо Пок..


SergKis
Спасибо
Пока остановился на таком варианте:
По горячей клавише или Клику открывается вспомогательная форма, там редактирую и т.д.
И все таки , почему же в Browse проще?

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




Пост N: 1328
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.16 12:15. Заголовок: Vlad04 пишет И все т..


Vlad04 пишет
 цитата:
И все таки , почему же в Browse проще?


Обманчивая видимость простоты. Мои клиенты категорически отказались работать с InplaceEdit, т.к. оно
реализовано на модальном окне и мелькание фокуса с бровсе на ячейку - глаз\нервы не держат.
Выделение на мод. окно объекта коректировки, позволяет разделить сообщения управления бровсе и
контрола коректировки. Вот кусочек текста.Скрытый текст

В тсб все управление сообщениями таблицы и контрола edit заложено в объект блоками кода.
Думаю, немного попривыкнув\изучив, сложности не будет в понимании.


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




Пост N: 1329
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.16 15:12. Заголовок: Vlad04 По поводу кр..


Vlad04
По поводу краткости записи. Пример тот же Скрытый текст



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




Пост N: 5191
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.16 19:53. Заголовок: SergKis пишет: :Set..


SergKis пишет:

 цитата:
:SetData('KRANK1', , aKRANK1)


Что за параметр :SetData() ?


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


Пост N: 1354
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 29.11.16 22:35. Заголовок: Andrey пишет: Что з..


Andrey пишет:

 цитата:
Что за параметр :SetData() ?


SetData это метод - функция с 3-мя параметрами


 цитата:
Это мило и симпатично, но тоже самое можно решить и др. способами. На любителя ООП (их тут мало с МиниГуи работающих)



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




Пост N: 1330
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.16 23:11. Заголовок: Петр :sm36: :Get..


Петр

:GetColumn('KRANK1'):aItems := aKRANK1
:GetColumn('KRANK1'):lComboBox := .T.

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


Пост N: 620
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 30.11.16 11:24. Заголовок: SergKis По поводу к..


SergKis

 цитата:
По поводу краткости записи


Да уж, на счет краткости слов нет.
1) Почему-то периодически вылетает программа (ваша редакция) с ошибкой - Выход за границы массива.
Связь не уловил.
2) Перенес код с тестовой в настоящую программу. Комбобокс создается , но почему-то на первом слева поле, где его не должно быть

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


Пост N: 621
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 30.11.16 11:29. Заголовок: Колонки я добавляю т..


Колонки я добавляю так

 цитата:

...
ADD COLUMN TO Brw_1 DATA FieldWBlock(..
...



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




Пост N: 1050
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 30.11.16 12:00. Заголовок: Vlad04 пишет: Почем..


Vlad04 пишет:

 цитата:
Почему-то периодически вылетает программа (ваша редакция) с ошибкой


Проверь эту строку в примере

 цитата:
COLSIZES 50,130,130,130,130,130


TBROWSE имеет 5 колонок, а размеры установлены для шести колонок
Отсюда имеем вылет в методе :nAtColl()

P.S. Поправил эту бяку в исходнике библиотеки TsBrowse, теперь не вылетает

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


Пост N: 622
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 30.11.16 12:44. Заголовок: gfilatov2002 теперь..


gfilatov2002

 цитата:
теперь не вылетает


Да, всё нормально.
А что же определяет привязку комбобокса к колонкам ?


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




Пост N: 1335
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 30.11.16 20:52. Заголовок: Vlad04 пишет А что ж..


Vlad04 пишет
 цитата:
А что же определяет привязку комбобокса к колонкам ?


:SetData( nColumn, bData, aList )
nColumn (номер колонки) может быть задано симв. именем колонки из ADD .... NAME ...
:GetColumn(5):cName := "..."
:LoadFields(.T.\.F.) ставит :cName от имени поля

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


Пост N: 623
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 01.12.16 11:21. Заголовок: SergKis Все хорошо...


SergKis
Все хорошо. Если указываешь НОМЕР колонки - происходит правильная
привязка комбобокса .

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


Пост N: 626
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 04.12.16 17:38. Заголовок: TsBrowse и дизайнер


TsBrowse и дизайнер

Работа с компонентами оказывается отличается, если форму вы построили в дизайнере или описали в программном
коде. Это возможно связано с видимостью переменных.
Вот пример построения TsBrowse в IDE, который идет в поставке MiniGui.
Добавим на форму компоненты, связанные с TsBrowse (вполне обычная ситуация)
[url=https://cloud.mail.ru/public/4taw/Yc13QvLBM]TsBrowseTsBrowse[/url]
Компилируется без ошибок, но при запуске не работает

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