On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник


Пост 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:....

























<a href=http://www.bestmarket.com.ua >ноутбуки</a>























<a href=http://www.bestmarket.com.ua >ноутбуки</a>
Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 279 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]





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


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

Спасибо: 0 
ПрофильЦитата Ответить
moderator


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


SergKis пишет:

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


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


Спасибо: 0 
ПрофильЦитата Ответить
moderator


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


Сергей :

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


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


Спасибо: 0 
ПрофильЦитата Ответить



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


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


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

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


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


Спасибо: 0 
ПрофильЦитата Ответить
moderator


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


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

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



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


Спасибо: 0 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить
администратор




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


SergKis пишет:

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


Поправил

Спасибо: 0 
ПрофильЦитата Ответить
moderator


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


Dima пишет:

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


и я

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить



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


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


Спасибо: 0 
ПрофильЦитата Ответить
moderator


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


SergKis пишет:

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


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить
moderator


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


SergKis пишет:

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


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

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

Спасибо: 0 
ПрофильЦитата Ответить



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


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


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить
moderator


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


SergKis пишет:

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


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

Спасибо: 0 
ПрофильЦитата Ответить



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


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


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

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




Пост 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 
ПрофильЦитата Ответить
moderator




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


Andrey пишет:

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


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

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




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


gfilatov2002 пишет:

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


ДА !

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

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

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 12
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет