// создать нужные каталоги если их не хватает IF DirChange( cPathDB ) > 0 MakeDir( cPathDB ) ELSE DirChange( cPath ) ENDIF
SET CENTURY ON // дата полностью дд/мм/гггг set epoch to 1960 SET DATE TO BRITISH set(_SET_DATEFORMAT,"DD.MM.YYYY") SET DELETED ON //фильтрация для удаленных записей (не показываем помеченные на удаление) SET _3DLOOK ON // Database driver. RDDSETDEFAULT( "DBFCDX" ) REQUEST DBFCDX , DBFFPT REQUEST HB_CODEPAGE_RU866 // Russian Windows CP-866 REQUEST HB_CODEPAGE_RU1251 // Russian Windows CP-1251
// PAGE1( oFld) /// если раскоментарить происходит инициализация xBrowse //PAGE2( oFld) //PAGE3( oFld) SET MESSAGE OF oMainWindow TO " Тестовая " KEYBOARD CLOCK DATE 2010
ACTIVATE WINDOW oMainWindow; ON INIT oFld:Resize() //;
oFont:End() oFont2:End()
Return nil
//--------------------------// Function ChangeDlg( oFld )
Local nDlg:=oFld:nOption
Do Case Case nDlg = 1 MsgInfo(nDlg) PAGE1(oFld) /// почему не отрабатывает здесь Case nDlg = 2 MsgInfo(nDlg) Case nDlg = 3 MsgInfo(nDlg) Case nDlg = 4 MsgInfo(nDlg) Case nDlg = 5 MsgInfo(nDlg) Endcase
Return nil
FUNCTION PAGE1(oFld) Local oBrw, cAlias:='ATerm'
@ 10,20 XBROWSE oBrw OF oFld:aDialogs[ 1 ] ; HEADER "Id_Kod", "nNom", "Наименование " ; COLUMNS "Id_Kod", "nNom", "cNaim" ; ALIAS 'ATerm' CELL LINES FOOTERS; // NOBORDER ON DBLCLICK RowEdit( oBrw:CurrentRow() ) FONT oFont2 ;
If ! File( (cPathDB) +'Terminal.cdx') fLock() Index on Str(ATerm->ID_KOD,2) + Str(ATerm->NNOM,6) tag ID_KOD to (cPathDB) +'Terminal.cdx' Unlock Endif Set Index to (cPathDB) + 'Terminal.cdx' ATerm->(ordsetfocus('ID_KOD'))
Return Nil
FiveWin 13.01 (спасибо ММК за ссылку) Harbour 3.2.0dev (r1409051124)
А отрабатывать оно должно при каких-либо изменениях на фолдере- так у Вас написано. ( ON CHANGE ... ) Поэтому если (к примеру) выбрать любую страницу, а потом опять вернуться к первой , которая у вас открывается при инициилизации, то бровс "прорисуется".
Отправлено: 03.10.14 15:27. Заголовок: ZAlex пишет: Я коне..
ZAlex пишет:
цитата:
Я конечно-же переключал страницы, никаких изменений не происходило -- бровзер не прорисовывался. Если функцию PAGE1(oFld) изменить на:
Ваш пример работает без всяких изменений, НО сначало нажимает "два" или любую другую закладку, а потом "один". Появится окошко бровса и , естественно пустое , т.к. база пустая.
ZAlex пишет:
цитата:
Может я некорректно формирую бровзер, или в фолдере его прорисовку не в ON CHANGE вставлять?
Да с Вами просто невозможно не согласиться :)
Все закладки желательно формировать сразу. В процессе работы их останется только менять. Т.е. последовательность следующая - Окно(диалог) , фолдер, заполнение страниц... Например :
Tit:=" П Р И Г О Т О В Л Е Н И Е С М Е С И " DEFINE DIALOG oDg TITLE Tit FROM 1,1 TO 37.5,98 ; FONT oFon1 transparent
@ 0.1, 0.1 FOLDER oFld ; PROMPTS " Смеси "," Состав " ; SIZE 385, 275 PIXEL FONT oFon1 COLOR CLR_1,CLR_3 //263 oFld:aEnable={.T.,.T. }
Selec NS Go top
@ 1,1 XBROWSE oBrw SIZE 367,260 PIXEL OF oFld:aDialogs[1] ALIAS "NS"; FOOTERS FASTEDIT LINES CELL ; ON CHANGE ( VOku(NS->KOD,"Sm"),oBs:MakeTotals(),oBs:RefreshFooters(),oBs:Refresh(),oFld:aDialogs[2]:Refresh()) oBrw:nHeaderLines := 2
ADD oCol TO oBs DATA Sm->NAME HEADER "наименование" SIZE 200 CARGO "Sm->NAme" ADD oCol TO oBs DATA Sm->Ves HEADER "Вес" SIZE 60 CARGO "SM->VES" oCol:oDataFont := oFon3 oCol:nHeadStrAlign := AL_CENTER oCol:lTotal := .t. oCol:nTotal := 0 // if we already know the total, we can assign the total value. oCol:oFooterFont := oFon1
и т.д.
А ON CHANGE позволит реагировать на всякие изменения уже в процессе работы
Отправлено: 03.10.14 15:49. Заголовок: Спасибо за разъяснен..
Спасибо за разъяснение
ММК пишет:
цитата:
Все закладки желательно формировать сразу. В процессе работы их останется только менять. Т.е. последовательность следующая - Окно(диалог) , фолдер, заполнение страниц...
Я так и предполагал, но у меня одна база(так сложилось) . Алгоритм был такой: nFilter:=1 Select ATerm ordscope(0,Str(nFilter,2)) ordscope(1,Str(nFilter,2))
Значит в моем случае, по первому варианту после заполнения страниц необходимо их переформировывать с новым ordscope при переключении страницы?
Если речь идет о какой-то конкретной задаче , а не просто примерчике тогда надо посмотреть на все чуток иначе. Зачем семь закладок? Семь фильтров? Филтр произвольный или их всего шесть? Это к тому, что возможно и фолдер здесь лишний... А сделать почти все можно ....
Все даты в формате GMT
3 час. Хитов сегодня: 17
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет