Автор | Сообщение |
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:....
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Andrey
|
| постоянный участник
|
Пост N: 5444
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.17 17:51. Заголовок: Григорий написал мне..
Григорий написал мне что: Вы используете команду SET RELATION TO ПО ПЕРВОМУ ИНДЕКСУ базы справочника, а когда вызываете окно выбора из справочника, то переключаете индекс этой базы на 2 для сортировки по имени. Естественно, что связанное поле в основном бровсе сразу отображает первую строку из базы справочника, ведь индекс теперь сбит. Теперь стало понятно такое поведение. На терминалке такого не было ! Попробовал очищать SET RELATION TO на Основной базе ПЕРЕД вызовом справочника - не помогает... Сделал вызов справочника по 1-ому индексу - та же беда ! 1-я запись справочника перепрыгивает в текущую запись основной таблицы !!! Как исправить этот глюк ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5445
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.17 20:17. Заголовок: Ещё заметил. Если ес..
Ещё заметил. Если есть 1-ый столбец по индексу и запись в основной таблице стоит на 2-ой записи - №№=2 ADD COLUMN TO oBrwV HEADER "№№" ; DATA {|| OrdKeyNo() } ; то после показа справочника 2-ка превращается в 1, т.е. №№=1 и в таблице 2 значения с 1 ! Вот экран: Наверное каким то волшебным образом перерисовывается Основная таблица ?
|
|
|
Dima
|
| |
Пост N: 6510
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.07.17 12:50. Заголовок: Andrey пишет: Тепер..
Andrey пишет: цитата: | Теперь стало понятно такое поведение. На терминалке такого не было ! |
| Да не было на терминалке. Открывай нужные базы несколько раз. Например справочник у тебя завязан на Relation , и есть момент когда ты его вызываешь в бровсе , так вот в этом месте юзай другой алиас этого же справочника.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5446
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.07.17 15:58. Заголовок: Dima пишет: Открыва..
Dima пишет: цитата: | Открывай нужные базы несколько раз. |
| У меня при старте задачи открываются ВСЕ базы. Повторное открытие не использую. Наверное буду убирать SET RELATION. Из-за него наверное ошибка. Хотя может и не в нём... Благо в Tsbrowse можно легко подсунуть функцию в столбец. Это будет проще. Спасибо всем за помощь !
|
|
|
Dima
|
| |
Пост N: 6513
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.07.17 16:17. Заголовок: Andrey пишет: Повто..
Andrey пишет: цитата: | Повторное открытие не использую. |
| А придется. Я тоже не использовал но пришлось. Дело не в SET RELATION , уверен , ты налезешь на те же грабли и без него. Допустим у тебя есть справочник GROUP , данные из него и показывай в основном бровсе а вот если хочешь показать сам справочник , поверх основной таблицы , то открой его повторно , скажем с алиас TMP_GROUP и ходи по нему в справочнике да и основная таблица не пострадает Решать тебе , просто я нарывался на такие же косяки и мне подсказали как надо сделать. А подход у меня был такой же как у тебя в терминалке.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5447
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.07.17 16:40. Заголовок: Понял ! Спасибо ! Ч..
Понял ! Спасибо ! Чтобы добиться работы без открытия дубля базы, переделал свой тестовый пример, сделал без SET RELATION. Теперь уже работает, но тоже как то НЕПОНЯТНО !!! Становиться всё интересней.... Запись из Основной таблицы перескакивает в Справочник, т.е. справочник открывается не с 1-ой записи базы по индексу, а по условию записи из Основной базы. Вот скрин до выбора справочника: Вот скрин при показе справочника: Если посмотреть, то с другой стороны - классно получилось, юзеру даётся список с той улицы на которой стоит Основная база. Так и оставлю ! Это лучший вариант ! Тем более навигация по справочнику работает, буквы и цифры ставят фильтр. Больше юзеру и не надо !
|
|
|
Dima
|
| |
Пост N: 6514
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.07.17 16:53. Заголовок: Andrey пишет: букв..
Andrey пишет: цитата: | буквы и цифры ставят фильтр |
| Тут тоже можешь поймать сам знаешь что. Попробуй с дублем базы и "косяки" уйдут Andrey пишет: Бедные юзера....
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5448
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.07.17 17:10. Заголовок: Dima пишет: Попробу..
Dima пишет: цитата: | Попробуй с дублем базы и "косяки" уйдут |
| Это не путь Рыцаря-джедая ... Убрал свой косяк, открывается справочник теперь нормально ! Потестил, всё отлично !
|
|
|
Dima
|
| |
Пост N: 6515
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.07.17 17:16. Заголовок: Andrey пишет: Убрал..
Andrey пишет: цитата: | Убрал свой косяк, открывается справочник теперь нормально ! |
| Ждем новый
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5452
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.07.17 17:42. Заголовок: SergKis пишет: Ты х..
SergKis пишет: цитата: | Ты хочешь управлять METHOD KeyChar(...) на самом деле и тогда, вероятно, надо делать, добавив переменную в класс DATA bKeyChar METHOD KeyChar( nKey, nFlags ) CLASS TSBrowse ... Default ::nUserKey := nKey IF ::bKeyChar != Nil .and. !Empty( EVal( ::bKeyChar, Key, Self, nFlag ) RETURN 0 ENDIF If ::nUserKey == 255 .or. ::lNoKeyChar // from KeyDown() method Return 0 EndIf |
| Да, так будет удобней. Блокировать столбцы на цифры/буквы обязательно надо ! Желательно отдельно - вот так: oBrw:aColumns[nI]:lNoKeyChar := .F. Тогда всем будет понятно. А то вот при нажатии цифр на колонке флагов - вот что получается:
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1622
Зарегистрирован: 17.02.12
|
|
Отправлено: 27.07.17 18:03. Заголовок: Andrey пишет oBrw:aC..
Andrey пишет цитата: | oBrw:aColumns[nI]:lNoKeyChar := .F. |
| задавать надо будет так oBrw:bKeyChar := {|ky,ob| ky := ob, ! hb_ntos(ob:nCell) $ '5,7,9' } т.е. для колонок 5,7,9 делаем edit от букв\цифр, для других нет. .T. - не делаем edit .F. - вкл. edit для колонки или oBrw:bKeyChar := {|ky,ob| ky := ob:aColumns[ ob:nCell ]:cName, ky $ 'NAME1,NAME2,NAME3' } для этих колонок вкл. edit, для др. нет
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5453
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.07.17 18:21. Заголовок: Скачал со страницы с..
Скачал со страницы сайта только что новую версию. Для своего примера установил: oBrw1:bKeyChar := {|ky,ob| ky := ob, ! hb_ntos(ob:nCell) $ '6,7,8' } Осталось без изменений. Редактирование есть. Вдобавок появилась ошибка на 2,3,4 колонке вылет из программы: Error BASE/1004 Метод не экспортирован: NCELL Called from NCELL(0) Called from (b)MYCREATETABLE(428) Called from TCONTROL:KEYCHAR(576) Called from TSBROWSE:KEYCHAR(6420) Called from TSBROWSE:HANDLEEVENT(7436) Called from EVENTS(81)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1623
Зарегистрирован: 17.02.12
|
|
Отправлено: 27.07.17 18:28. Заголовок: Andrey пишет Вдобаво..
Andrey пишет цитата: | Вдобавок появилась ошибка на 2,3,4 колонке вылет из программы: |
| С чего решил, что это есть ? Мы скорее фантазировали. Потому как, кто мешает написать oBrw1:bUserKeys := {|ky,flg,ob| ky := flg := ob, ! hb_ntos(ob:nCell) $ '6,7,8' } :bKeyChar, если ты решил заменить родной method KeyChar своим, что вряд ли надо. надо все решать в :bUserKeys
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5454
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.07.17 18:35. Заголовок: SergKis пишет: Мы с..
SergKis пишет: цитата: | Мы скорее фантазировали. Потому как, кто мешает написать oBrw1:bUserKeys := {|ky,flg,ob| ky := flg := ob, ! hb_ntos(ob:nCell) $ '6,7,8' } |
| Да я не понял, что мы фантазировали... Поставил, вообще непонятки. Смотри результат у себя...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5458
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.17 14:16. Заголовок: Всем привет ! Как см..
Всем привет ! Как сменить редактирование колонки типа ДАТА на обычную цифровую ? А то юзерам не нравиться. ADD COLUMN TO oBrw1 HEADER "Date" ; .............. DATA FIELDWBLOCK("FDATE", Select(cAlias)) ; PICTURE "99.99.9999" ; NAME FDATE ; EDITABLE Я понимаю, что можно самому написать функцию ввода в окошке. А стандартное - ввод цифр есть или нет ?
|
|
|
Haz
|
| |
Пост N: 1119
Зарегистрирован: 20.02.11
|
|
Отправлено: 04.08.17 14:38. Заголовок: Andrey пишет: А ста..
Andrey пишет: цитата: | А стандартное - ввод цифр есть или нет ? |
| oBrw1:GetColumn("FDATE"):lPickerMode := FALSE а можно и цитата: | Я понимаю, что можно самому написать функцию ввода в окошке. |
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5460
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.17 14:56. Заголовок: Haz пишет: oBrw1:Ge..
Haz пишет: цитата: | oBrw1:GetColumn("FDATE"):lPickerMode := FALSE |
| Ошибка при выполнении: Error BASE/1005 Message not found: TSCOLUMN:_LPICKERMODE Called from __ERRRT_SBASE(0) Called from TSCOLUMN:ERROR(0) Called from (b)HBOBJECT(0) Called from TSCOLUMN:MSGNOTFOUND(0) Called from TSCOLUMN:_LPICKERMODE(0) Called from MYCREATETABLE(331) Called from FORMTABLE(106)
|
|
|
Haz
|
| |
Пост N: 1120
Зарегистрирован: 20.02.11
|
|
Отправлено: 04.08.17 14:59. Заголовок: Andrey пишет: Ошибк..
Andrey пишет: Да не углядел. Эта переменная не колонки а самого бровса oBrw:lPickermode Через пару минут дойду до компа гляну подробнее
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5461
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.17 15:01. Заголовок: Haz пишет: Да не уг..
Haz пишет: цитата: | Да не углядел. Эта переменная не колонки а самого бровса oBrw:lPickermode Через пару минут дойду до компа гляну подробнее |
| Вот так работает - oBrw1:lPickerMode := .F. Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5481
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.08.17 17:58. Заголовок: Рабочий пример работ..
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|