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 [только новые]


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




Пост N: 1810
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.05.18 19:19. Заголовок: PS DATA bKeyEvent н..


PS
DATA bKeyEvent
надо убрать, остался от опытов

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




Пост N: 1240
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.05.18 22:17. Заголовок: SergKis пишет: У се..


SergKis пишет:

 цитата:
У себя исп. вариант без кнопки


Сергей. Спасибо. В понедельник поткстирую


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




Пост N: 1241
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.05.18 22:58. Заголовок: Сергей : может буде..


Сергей :

 цитата:
может будет интересно.


У меня есть очень draft, ну совсем бета альтернативного комбо в ячейке.
Руки не доходят довести до ума, но испьзую так как есть. В понедельник скину в форум пример.
Глянешь, интересны идеи. Суть в том, что вместо комбика попытался использовать бровс по базе.
В последних проектах использую успешно, хоть и бета. А вот времени на осмысление нет.
И чтоб совсем точки над ё, я не прошу сделать за меня. Я предлагаю идею и готов выслушать мнение.


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




Пост N: 1811
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.05.18 00:04. Заголовок: Haz пишет Суть в том..


Haz пишет
 цитата:
Суть в том, что вместо комбика попытался использовать бровс по базе.


С этого начинал, с combo (и с поиском по букве). В итоге отказался, со временем маленький список -> в большой, + колонки ...
Практически везде перехожу на тсб (с hb 2.0 browse, на 3.2 переделываю на тсб)

 цитата:
А вот времени на осмысление нет.


Со временем туго, согласен, справочники делаю по такой схеме (с поправками на задачу конечно), как идея (код из задачи, как есть) Скрытый текст


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




Пост N: 1244
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.05.18 18:09. Заголовок: Сергей Haz пишет: У..


Сергей
Haz пишет:

 цитата:
У меня есть очень draft, ну совсем бета альтернативного комбо в ячейке.



Выдернул из проекта , переписал под CDX вроде работает . Логика похожа на твой пример - те же массивы заголовков, полей и пр.
Подчеркиваю это совсем бета , по мере допиливаю понемногу. Но что это понятно из примера
Скрытый текст


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




Пост N: 1812
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.18 19:08. Заголовок: Игорь Поправь , начи..


Игорь
Поправь [ i ], начиная с этого текста и т.д.
 
IF hb_isArray( ::aWidth ) .AND. Len( ::aWidth ) > 0
FOR i := 1 TO Len(::aWidth)
::oBrw:SetColSize(i, ::aWidth[ i ] )
END
ELSE
::oBrw:SetColSize(1, nWidth )

END


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




Пост N: 6825
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.05.18 21:46. Заголовок: SergKis пишет: Игор..


SergKis пишет:

 цитата:
Игорь
Поправь [ i ], начиная с этого текста и т.д.


Поправил

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




Пост N: 1245
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.05.18 21:50. Заголовок: Dima пишет: Поправи..


Dima пишет:

 цитата:
Поправил


и я

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




Пост N: 1813
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.18 22:00. Заголовок: Haz пишет Глянешь, и..


Haz пишет
 цитата:
Глянешь, интересны идеи. Суть в том, что вместо комбика попытался использовать бровс по базе


1.Таких вариантов поля (Id -> наименование) замена, практически нет в работе, все как то сложнее.
2.Кроме id записи, есть клиентский код, который пользователи любят и вводят его (многие наизусть), а не через наименование.
К примеру:
- ФИО однозначно не определяет запись, надо ТАБ.НОМЕР и\или персональный код
- наименование магазина, так же однозначно на дает запись, надо страну\город\адрес\регистр.номер(ИНН) или клиентский код
- группы материалов\товаров могут иметь одинаковые наименования, но разные клиентские коды и др. показатели.
...
3.От ведения на тсб практически отказался, осталось только на совсем простеньких справочниках. Ввод, корректировку
делаю на окне типа InputWindow(...) из hmg. Там validы, заполнение доп. полей и т.д.
4. Замену ComboBox-у делаю на GetBox-ах, как показал в примере выше. Если исп. в тсб на колонке вызов справочника, то
исп. установку клавиши F5 на колонку (изменеия в MiniGui.lib перед примером выше) и VALID колонки, если значение задают
не через вызов справочника, а кодом руками. Есть такое использование (в тсб) на окнах запросов для получения отчетов.
5.Мысли по твоему варианту:
- возможность указывать, кол-во строк в тсб, если меньше, то окно меньше
- располагать окно с тсб не только сверху\снизу, но и слева\справа, указывая L[eft],R[ight],T[op],B[ottom]
- если использовать механизм назначенной клавиши для вызова списка, ввод в само поле можно исп. для поиска в списке
или в footer, как у меня в примере

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




Пост N: 1814
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.18 22:12. Заголовок: Haz, Dima Как то пр..


Haz, Dima
Как то правка не прошла
 
::oBrw:aColumns[ i ]:cHeading := ::aHeaders[ i ] // тут надо, может и ниже тоже
END
END


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




Пост N: 1247
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 14.05.18 23:08. Заголовок: SergKis пишет: Мысл..


SergKis пишет:

 цитата:
Мысли по твоему варианту


Про назначение клавиш - спасибо. Прикину как прикрутить.
В остальном пример сильно кастрирван. Там есть список полей, которые нужно показать в бровсе и поле которое нужно вернуть из справочника. ID и NAME это частный случай. Поиск по справочнику делаю по содержимому getbox через вызов bSearch. В примере не смог его показать т. к. это FTS поиск от ADS, то есть по вхождению в любых полях. Как в CDX сделать не знаю. У меня для поиска клиента, к примеру, можно в Getbox ввести ИНН или КПП или форму собственноси или почтрвый индекс или чего ещё. или через пробел все это сразу сразу. В FTS задается что искать, любое или все. И бровс фильтрует записи по условию поиска. Все уже привыкли не думая набирать или часть наименования или адреса или телефона. А вот до назначения клавиш я не допер. Повешу на них доп инструмент.
У меня главный косяк в том что на модальной форме этот бровс ругается что из модала можно только модал. А если бровс сам сделать модальным, то на нем не отыграть потерю фокуса так как модал не его потерять).
Твой пример посмотрел, все понятно. Спасибо буду использовать

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




Пост N: 1816
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.05.18 12:19. Заголовок: Haz пишет У меня гла..


Haz пишет
 цитата:
У меня главный косяк в том что на модальной форме этот бровс ругается что из модала можно только модал. А если бровс сам сделать модальным, то на нем не отыграть потерю фокуса так как модал не его потерять).


1
Можно делать два типа окна для child и modal имея признак в объекте.
- modal делать похожим на справочник и иметь кнопку выхода+Esc
- child как сейчас, но можно и одинаково оформлять
вызывать с модального окна модальный режим, с др. child
2
GetBox_FTS можно делать с двумя\одной родными кнопками с image для поиска\очистки или еще что то.
3
Исп. не bPrevEdit, а Valid и назн. клавишу для вызова списка, тогда в поле TGETBOX можно не вызывая списка вводить,
если был On Change (меняем значение в поле тсб - поиск) по клавише или в valid по Enter вызываем объект списка, переносим
значение из TGETBOX в GetBox_FTS с отработкой оного.
4
Иметь метод в объекте установки Row, Col отображения списка относительно родителя и задания кол-ва строк в списке


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




Пост N: 1249
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.05.18 16:14. Заголовок: SergKis пишет: Можн..


SergKis пишет:

 цитата:
Можно делать два типа окна для child и modal


1 Буду тип задавать по типу родителя. Так решается проблема что из чего вызывать. Вот как быть с потерей фокуса у модала ?? не дает он его терять, а у меня на это событие справочник закрывается с отказом от выбора.

2 - 4 Согласен . это уже детали реализации.

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




Пост N: 1817
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.05.18 17:07. Заголовок: Haz пишет Вот как б..


Haz пишет
 цитата:
Вот как быть с потерей фокуса у модала ?? не дает он его терять, а у меня на это событие справочник закрывается с отказом от выбора.


По мне, выбор по Enter, DblClick, Button Ok (выбор сделан, список убираем), а все остальное отказ.
Выход базовый по кнопке крестику (своя, работа с NOCAPTION .T.) или Esc (отказ, список убираем).
Потеря фокуса - для child режима - частный случай отказа

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




Пост N: 1818
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.05.18 18:11. Заголовок: PS Игорь, вспомнилос..


PS
Игорь, вспомнилось, ты вроде занимался морганием модальных окон при потере фокуса, можно туда
приблуду вставить типа, по handle окна получить объект (если есть) и получить свойство
bBlock := oW:GetProp('LostFocus') и если блок задан, выполнить
Do_WindowEventProcedure ( bBlock, oW:Index, oW )
В объект окна списка ставить блок (ThisWindow.Object):SetProp('LostFocus', {|ow| ow:Release() }

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




Пост N: 1251
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 16.05.18 19:51. Заголовок: SergKis пишет: Игор..


SergKis пишет:

 цитата:
Игорь, вспомнилось, ты вроде занимался морганием модальных окон при потере фокуса, можно туда
приблуду вставить


Примерно так и думаю. Пока ещё не смотрел. Хочу сделать не трогая исходников. Не получится., придется править.

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




Пост N: 1820
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.05.18 21:12. Заголовок: Haz пишет Не получит..


Haz пишет
 цитата:
Не получится., придется править.


Тогда в TWndData можно добавить
DATA bLostFocusModal
и устанавливать и работать с ним

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




Пост N: 5871
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.05.18 13:49. Заголовок: Andrey пишет: Сдела..


Andrey пишет:

 цитата:
Сделал в версии 18.04 кол-во строк 240, подвал есть.
На 250 строках подвала уже нет и вот такая таблица получается:
.....
Что-то ерундит алгоритм выгрузки в эксель.
Как и где подправить ?



Предложение по правке этой ошибки (h_tbrowse.prg):
         nColHead := 0 

For nCol := 1 To Len( ::aColumns )

If aColSel != Nil .and. AScan( aColSel, nCol ) == 0
Loop
EndIf

uData := If( ValType( ::aColumns[ nCol ]:cHeading ) == "B", Eval( ::aColumns[ nCol ]:cHeading ), ;
::aColumns[ nCol ]:cHeading )

If ValType( uData ) != "C"
Loop
EndIf

uData := StrTran( uData, CRLF, Chr( 10 ) )
nColHead ++
oSheet:Cells( nLine, nColHead ):Value := uData

If hProgress != Nil

If nCount % nEvery == 0
SendMessage( hProgress, PBM_SETPOS, nCount, 0 )
EndIf

nCount ++
EndIf
Next

nStart := ++ nLine // поставить вместо этого nStart := nLine + 1

EndIf


И ещё при печати подвала:
   If AScan( ::aColumns, { |o| o:cFooting != Nil  } ) > 0 

For nCol := 1 To Len( ::aColumns )

If ( aColSel != Nil .and. AScan( aColSel, nCol ) == 0 ) .or. ::aColumns[ nCol ]:cFooting == Nil
Loop
EndIf

uData := If( ValType( ::aColumns[ nCol ]:cFooting ) == "B", Eval( ::aColumns[ nCol ]:cFooting ), ;
::aColumns[ nCol ]:cFooting )
uData := cValTochar( uData )
uData := StrTran( uData, CRLF, Chr( 10 ) )
oSheet:Cells( nLine + 1, nCol ):Value := uData // вот так сделать
Next
EndIf


Григорий, файл h_tbrowse.prg который присылал мне, я исправил и выслал на почту.

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




Пост N: 1279
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.05.18 15:36. Заголовок: Andrey пишет: Предл..


Andrey пишет:

 цитата:
Предложение по правке этой ошибки


Благодарю за это исправление
Проблема с выводом подвала решена

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




Пост N: 5873
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.05.18 17:25. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Проблема с выводом подвала решена


ДА !

И проблема показа текстовых столбцов вида 3/2, 1/5 и т.д. ТОЖЕ решена в отправленном модуле !

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