Форум » GUI » TsBrowse в Минигуи (продолжение) » Ответить

TsBrowse в Минигуи (продолжение)

Vlad04: TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений К примеру [quote] 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 [/quote] Здесь я собрал параметры из разных tBrows Можно или нет и какие парметры заменить выражением ( и каким) ? oBrw2:.... oBrw2:....

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Dima: Andrey пишет: Разобрался сам... Оказывается если нет такого пути к файлу, то Ексель и не создаёт и не открывает его Про это уже писалось и не раз ! Бывает :)

Vlad04: Haz Редактирование Ключевого поля в TsBrows. Я писал, что после выхода из редактирования курсор не поднимается на нужную строку Игорь, как-то выкладывал пример редактирования ключевого поля, но в примере были особенности- вторая форма для редактирования, программное построение Бровса и т.д. Посмотрите пример построенный в основном в Дизайнере - click here, может удастся заставить курсор подниматься ? И еще , при входе в редактирование сетка пропадает.

Dima: Vlad04 пишет: И еще , при входе в редактирование сетка пропадает. Почитай начиная с поста 6376 этой темы


Vlad04: Dima Все темы читаю. В примере кода практически нет, все должно работать по- умолчанию ( или почти всё) без танцев с бубном.

SergKis: Vlad04 пишет В примере кода практически нет, все должно работать по- умолчанию ( или почти всё) без танцев с бубном. Танцы вы сами придумали себе кодом: oBrw_1:aColumns[1]:bPrevEdit := { || oBrw_1:Upstable() , oBrw_1:Refresh(.T.) , oBrw_1:ResetVScroll() , .t. } запустив перед edit кучу процедур по прорисовке тсб, при этом совершенно забыв про очередь сообщений, по которой и происходят действия прорисовки. Все темы читаю но чуть чуть по диагонали. В примере Tsb_addrecord_3 ситуация с обработкой очереди для прорисовки показана была:[pre2] STATIC FUNC Add_Rec( oBrw ) ... If ! Empty(aResult) dbSelectArea(cAls) dbAppend() If ! NetErr() .and. RLock() nRec := RecNo() REPL KODS with aResult[1], ; NAME with aResult[2] If oBrw:nLen == oBrw:nRowCount() oBrw:oHScroll:SetRange(0,0) EndIf oBrw:GotoRec(nRec) nCol := oBrw:nColumn("NAME") If nCol != oBrw:nCell oBrw:nCell := nCol oBrw:DrawSelect() EndIf oBrw:lChanged := .T. oBrw:PostEdit(aResult[2], nCol, Nil) DO EVENTS oBrw:PostMsg(WM_KEYDOWN, VK_F4, 0) EndIf EndIf ... [/pre2] т.е. если убрать DO EVENTS много разного увидите

Haz: Vlad04 пишет: может удастся заставить курсор подниматься ? И еще , при входе в редактирование сетка пропадает. Нет ничего проще 1) в Form_0.fmg удалить это ON INIT Init_Form_0() и соответственно саму функцию в програмном модуле tsb.prg 2) в tsb.prg сделать так LOAD WINDOW Form_0 oBrw_1:SetIndexCols( 1 ) oBrw_1:SetOrder( 1 ) Form_0.Center Form_0.Activate PS Сергей прав по поводу танцев, но уверен со временем все уляжется в голове и танцы будут не нужны

Vlad04: SergKis примере Tsb_addrecord_3 Конечно,смотрел и этот пример. Многое не понял. Для такого простого результата - на форме одна таблица с 4-мя кнопками, код очень сложный. А если на форме несколько таблиц, а в программе десяток форм.... Haz oBrw_1:SetIndexCols( 1 ) oBrw_1:SetOrder( 1 ) просто и работает

Vlad04: Курсор поднимается , но на одно строку промахивается. При движении вниз так же ошибка на одну строку.

SergKis: Vlad04 пишет А если на форме несколько таблиц Код в примере практически не изменится для всех таблиц, используемых на окне(ах). Изменятся параметры задания колонок, валидности и др. не стандартных действий. И в примере есть ввод, едит и удаление (все сводится к примерно tsb_array_2 для таблиц). В вашем нет (якобы кода) ничего,кроме едит, но будет куча fmg для справочников в чилд\модал окнах, привязанных к железным алиасам. Не уверен, что это проще. Многое не понял Так лучше спросить, чем оставаться в не понятках. просто и работает Так это работало со времен примера Tsb_addrecord_2 [pre2] oBrw:SetIndexCols( oBrw:nColumn("ID"), ; oBrw:nColumn("INFO") ) oBrw:SetOrder( oBrw:nColumn("ID") ) [/pre2]

SergKis: Vlad04 пишет но на одно строку промахивается. После редактирования у колонки есть свойство, куда деть курсор после, по умолчанию переместиться дальше ... Потому такой результат. Поставьте [pre2] oBrw_1:aColumns[1]:nAlign := DT_LEFT oBrw_1:aColumns[ 1 ]:nEditMove := DT_DONT_MOVE oBrw_1:SetIndexCols(1) oBrw_1:SetOrder(1) oBrw_1:SetFocus() Form_0.Center Form_0.Activate [/pre2]

Vlad04: SergKis куча fmg для справочников в чилд\модал окнах, привязанных к железным алиасам. Не уверен, что это проще. Это и хорошо , что есть варианты.У меня есть одна универсальная форма для типовых справочников и отдельные формы для остальных случаев. Так это работало со времен примера Tsb_addrecord_2 Не понял сразу, в Делфи для Бровса( там это грид) несколько другая идеология - отображать данные, а не управлять ими.Да и консольный Харбор ведет себя по-другому.

Vlad04: Уф!! Теперь все нормально ! Спасибо всем !

SergKis: Vlad04 пишет У меня есть одна универсальная форма для типовых справочников и отдельные формы для остальных случаев. т.е. из меню главного окна у вас нельзя вызвать несколько окон справочников одновременно, только по очереди, т.к. в fmg прописан конкретный алиас в одной унив. форме ?

Andrey: SergKis пишет: т.е. из меню главного окна у вас нельзя вызвать несколько окон справочников одновременно А зачем юзеру редактировать/смотреть сразу несколько справочников ? Я тоже сделал одно модальное окно для справочника и туда передаю параметры из ини-файла (алиасы, поля базы и т.д.) для различных справочников. Иначе юзера начинают путаться с большим количеством справочников на экране.

SergKis: Andrey пишет А зачем юзеру редактировать/смотреть сразу несколько справочников ? Загнать в рамки дос пользователя - это вариант. А при работе с док. и спр. номенклатуры, разве не может возникнуть вопрос (по тел., от др. службы) по клиентскому спр., по автотранспорту (свой\чужой), по адресам погрузки\разгрузки, по ценнику клиента ...Что бросать (выходить) из того с чем работал или откладывать ответы на потом ... Иначе юзера начинают путаться с большим количеством справочников на экране Так это твое дело организация, что бы не путался, не дублировался, не используемый убирался. Ведь excel с sheetами не запрещают одновременно работать (типа можно но только последовательно). А ты выходит запрещаешь. Не демократично как то.

Andrey: SergKis пишет: Не демократично как то. Не... с юзерами демократию разводить не надо ! Сказали бурундук птичка и никаких зверьков и все ! С другой стороны, действительно можно дать возможность юзеру вернуться к отложенному справочнику. Интересно а как в 1С это реализовано или в других системах ? Но это наверное уже для другой ветки обсуждения, а не здесь.

PSP: Andrey пишет: Интересно а как в 1С это реализовано или в других системах ? Демократично)

Vlad04: SergKis у главного окна у вас нельзя вызвать несколько окон справочников одновременно Можно, форма универсальная для простых справочников, типа - код, наименование и т.д. В такой Форме алиасы , поля не прописаны и у меня считываются из файла при открытии формы.Эта форма описана полностью в виде кода, т.е. без дизайнера ( в нем в этом случае точно нет смысла) .

Andrey: Есть мой тестировочный проект. Раньше работал, сейчас нет. С какой версии перестал работать, даже не знаю. Сейчас вешается ВЕСЬ проект вот с таким сообщением: Вот сам проект - https://cloud.mail.ru/public/2SXc/UtNfso4gf Виснет - там где выбор флагов производиться... Один раз выбрать можно, на втором - программа НАГЛУХО ВИСНЕТ !!! Там даже второй выбор не нужно производить. Первый раз выбираем меню с флагами, потом мышкой кликаем на другой колонке (или стрелкой вверх/вниз) и тоже программа НАГЛУХО виснет !! Методом отладки определил, что перестают работать вот эти функции ПОСЛЕ выбора из модуля Form_Lang.prg: [pre2]_SetMenuItemBitmap ( "MYTABLERECNOMARK" , cForm , "CheckF28" ) _SetMenuItemBitmap ( "MYTABLERECNOPRINT", cForm , "CheckF28" ) _SetMenuItemBitmap ( "MYTABLERECNOSAVE" , cForm , "CheckF28" ) _SetMenuItemBitmap ( "MYTABLERECNOMAIL" , cForm , "CheckF28" ) [/pre2] Модуль demo.prg - строка 534 Помогите пожалуйста разобраться....

Vlad04: Выбор правой мышкой из контекстного меню ? Все работает !



полная версия страницы