Re: Color in DCBROWSE
Posted: Tue Mar 02, 2021 12:13 am
by Piotr D
Roger,
it happens in different places. Usually when we scroll quickly with the mouse. I use the default color settings in browse - I don't use DC_BrowseColor() anywhere. The procedure to display this sample screen looks like this:
PROCEDURE M_MENU1
******************
Local GetList:={},GetOptions,oBrowse,PracUporz,cAlias,cSklad:='',aPres1,aPres2,oMenuBar,oSubMenu
Local nFontSize,cBarFont
nFontSize:=VAL(SUBS(cSayFont,1,AT('.',cSayFont)-1))-1
cBarFont:=LTRIM(STR(nFontSize,2,0))+SUBS(cSayFont,AT('.',cSayFont))
SELECT PRAC
PracUporz:=IndexOrd()
DbSetOrder(1)
SELECT KMW
Y_FILTR=' ' && do filtrowania zapisow
UPORZ:=3
SET ORDER TO UPORZ
NRPRAC:=PRAC->P_KOD
NAPRAC:=PRAC->P_NAZWIS
DC_SetScope(0,NRPRAC)
DC_SetScope(1,NRPRAC)
SEEK NRPRAC
*
MIEJSCEEK=1
KLUCZ_X=K_PRAC && klucz dla ilosci dni (dla zasilkow)
ODP6=0
ILOSC:=0
IL_DNI:=30
ILOSCBAZ:=0
WAR_FILTR:=''
DC_DbGoTop()
aPres1:=Aclone(DC_BrowPres())
aPres2:=Aclone(DC_BrowPres())
DC_PresAdd(aPres1,{XBP_PP_COL_HA_ALIGNMENT,XBPALIGN_RIGHT})
DC_PresAdd(aPres2,{XBP_PP_COL_HA_ALIGNMENT,XBPALIGN_HCENTER})
MenuDodatkowe(@oMenuBar,@GetList)
MenuKadrowe(@oMenuBar,@oSubMenu,@GetList)
@1, 0 DCGET NRPRAC EDITPROTECT {||.T.} GETCOLOR {||SayColor}
@1, 6 DCGET NAPRAC EDITPROTECT {||.T.} GETCOLOR {||SayColor}
@ 1,57 DCSAY 'Tylko z listy:' SAYRIGHT
@ 1,72 DCGET Y_FILTR PICT "!!!!" EDITPROTECT {||.T.} GETCOLOR {||SayColor}
@ 1,42 DCSAY {||IF(PRAC->P_DATAZW#SPACE(6).AND.PRAC->P_FORMAZW#'00','[zwolnion'+IF(PRAC->P_PLEC='K','a ','y ')+TRANSFORM(UZU_20(PRAC->P_DATAZW),'@R 9999.99.99')+']',SPACE(35))} SAYSIZE 0
bWarUsun:={||SUBS(KMW->K_KOD_SKL,1,1)$'124'.OR.(KMW->K_WSKKOR#' '.AND.SUBS(KMW->K_KOD_SKL,1,2)$'30,60,62,63,64,66,67,68').OR.KMW->K_RODZAJ='USFP'.OR.KMW->K_KOD_SKL='69PK2'.OR.(KMW->K_WSKKOR#' '.AND.KMW->K_KOD_SKL='69PK1')}
bWarKorG:={||SUBS(KMW->K_KOD_SKL,1,1)='1'.AND.KMW->K_WSKKOR=' '}
@1,77 DCPUSHBUTTON CAPTION 'Zmieä filtr' SIZE 11,1.05 ACTION {||M_FILTR(),oBrowse:refreshAll(),DC_GetRefresh(GetList),SetAppFocus(oBrowse)} FONT cBarFont
@2,0 DCPUSHBUTTON CAPTION 'Wylicz urlop' SIZE 10,1.3 TOOLTIP 'Obliczenie stawki za dzieä urlopu' ACTION {||cSklad:=IF(P_UrlopWybor()=2,;
P_Menu_UrlopSZ(PRAC->P_KOD,UZU_20(SUBS(ZBIOR,4,4))),;
P_Menu_Urlop(PRAC->P_KOD,UZU_20(SUBS(ZBIOR,4,4)))),IF(!EMPTY(cSklad),(M_BDOP(cSklad),oBrowse:refreshAll()),NIL),SetAppFocus(oBrowse)}
@2,10 DCPUSHBUTTON CAPTION 'Wylicz nadgodzin©' SIZE 14,1.3 TOOLTIP 'Obliczenie stawki za "normalnĄ nadgodzin©"' ;
ACTION {||cSklad:=P_Menu_Nadgodzina(PRAC->P_KOD,UZU_20(SUBS(ZBIOR,4,4))),;
IF(!EMPTY(cSklad),(M_BDOP(cSklad),oBrowse:refreshAll()),NIL),SetAppFocus(oBrowse)}
@2,24 DCPUSHBUTTON CAPTION 'Korekta skadek "30"' WHEN {||IF(PRAC->P_WSKNAUCZ='T',lSaNaucz,lSaInni)} SIZE 15,1.3 TOOLTIP 'Rozliczenie nadpaconych skadek po przekroczeniu 30-krotnoci' ;
ACTION {||IF(D_RozliczNadplate30(),oBrowse:refreshAll(),NIL),SetAppFocus(oBrowse)}
@2,39 DCPUSHBUTTON CAPTION 'Korekta skadek um.zlec.' WHEN {||IF(PRAC->P_WSKNAUCZ='T',lSaNaucz,lSaInni)} SIZE 20,1.3 TOOLTIP 'Rozliczenie nadpaconych lub niedopaconych skadek od um˘w zleceä' ;
ACTION {||IF(D_RozliczSkladki(),oBrowse:refreshAll(),NIL),SetAppFocus(oBrowse)}
@2.05,77 DCPUSHBUTTON CAPTION 'Pokaľ z listy' SIZE 11,1.05 TOOLTIP 'Pokaľ zapisy z tej listy pac' ;
ACTION {||PokazZListy(PRAC->P_KOD,K_RODZAJ),SetAppFocus(oBrowse)} WHEN {||!(DC_BOF() .AND. DC_EOF())} FONT cBarFont
@3.3, 0 DCTOOLBAR oToolBar1 SIZE 73,1.5 BUTTONSIZE 13,1.5
DCADDBUTTON CAPTION 'F2 Dopisz' SIZE 8,1.5 WHEN {||IF(PRAC->P_WSKNAUCZ='T',lSaNaucz,lSaInni).AND.EMPTY(Y_FILTR)} PARENT oToolBar1 TOOLTIP D_CO('Dopisanie skadnika wynagrodzeä') ACTION {||IF(M_BDOP(),oBrowse:refreshAll(),NIL),SetAppFocus(oBrowse)} ACCELKEY xbeK_F2
DCADDBUTTON CAPTION 'Dopisz jak ostatni' WHEN {||IF(PRAC->P_WSKNAUCZ='T',lSaNaucz,lSaInni).AND.!EMPTY(KOD_SKL1).AND.EMPTY(Y_FILTR)} PARENT oToolBar1 TOOLTIP D_CO('Dopisanie skadnika wynagrodzeä o kodzie jak ostatnio dopisany') ACTION {||IF(M_BDOP(1),oBrowse:refreshAll(),NIL),SetAppFocus(oBrowse)} ACCELKEY xbeK_ALT_F2
DCADDBUTTON CAPTION 'F4 Usuä' SIZE 7,1.5 WHEN bWarUsun PARENT oToolBar1 TOOLTIP D_CO('Usuä skadnik') ACTION {||IF(M_BUSUN(),oBrowse:refreshAll(),NIL),SetAppFocus(oBrowse)} ACCELKEY xbeK_F4 GROUP 'TEST_IT'
DCADDBUTTON CAPTION 'F7 Zmieä' SIZE 8,1.5 WHEN bWarUsun PARENT oToolBar1 TOOLTIP D_CO('Zmieä dane skadnika') ACTION {||IF(M_AKT(),IF(LEN(DBFilter())>1,oBrowse:refreshAll(),oBrowse:refreshCurrent()),NIL),SetAppFocus(oBrowse)} ACCELKEY xbeK_F7 GROUP 'TEST_IT'
DCADDBUTTON CAPTION 'Korekta wg dni' SIZE 12,1.5 WHEN bWarKorG PARENT oToolBar1 TOOLTIP D_CO('Ctrl-F7 Utworzenie zapisu korekty dla chorobowego wg iloci dni') ACTION {||IF(M_AKT1(),oBrowse:refreshAll(),NIL),SetAppFocus(oBrowse)} ACCELKEY xbeK_CTRL_F7 GROUP 'TEST_IT'
DCADDBUTTON CAPTION 'Korekta wg godz' SIZE 12.5,1.5 WHEN bWarKorG PARENT oToolBar1 TOOLTIP D_CO('Ctrl-F8 Utworzenie zapisu korekty dla nieobecnoci wg iloci godzin') ACTION {||IF(M_AKT2(),oBrowse:refreshAll(),NIL),SetAppFocus(oBrowse)} ACCELKEY xbeK_CTRL_F8 GROUP 'TEST_IT'
DCADDBUTTON CAPTION 'Przelicz potrĄc.' SIZE 12.5,1.5 WHEN {||SUBS(KMW->K_KOD_SKL,1,1)='4'} PARENT oToolBar1 TOOLTIP D_CO('Wylicz ponownie potrĄcenie jako procent skadnik˘w wg danych z KMW') ACTION {||IF(M_LiczSkl(),oBrowse:refreshCurrent(),NIL),SetAppFocus(oBrowse)} GROUP 'TEST_IT'
@4.8, 0 DCTOOLBAR oToolBar3 SIZE 73,1.5 BUTTONSIZE 11,1.5
DCADDBUTTON CAPTION 'Nalicz list©' WHEN {||M__UPRAW('N4').AND.!(DC_BOF().AND.DC_EOF())} PARENT oToolBar3 TOOLTIP D_CO('Naliczenie listy dla bieľĄcego pracownika') ACTION {||FiltrujPrac(.F.,0),IF(M_NALICZ(),oBrowse:refreshAll(),NIL),FiltrujPrac(D__BezZwolnionych,D__TylkoPlatnik),SetAppFocus(oBrowse)}
DCADDBUTTON CAPTION 'Przelicz warto†' SIZE 14,1.5 WHEN {||M__UPRAW('N4').AND.((SUBS(KMW->K_KOD_SKL,1,1)='1' .OR. AT(KMW->K_KOD_SKL,'20130,20140')>0).AND.SUBS(C->S_RODZAJ,1,1)#'G')} PARENT oToolBar3 TOOLTIP D_CO('Przeliczenie wartoci wg iloci dni') ACTION {||M_CAKT(),oBrowse:refreshCurrent(),SetAppFocus(oBrowse)} GROUP 'TEST_IT'
DCADDBUTTON CAPTION 'Notatnik' SIZE 10,1.5 PARENT oToolBar3 TOOLTIP D_CO('Informacje dodatkowe dla bieľĄcego pracownika') ACTION {||NOTES(),SetAppFocus(oBrowse)}
DCADDBUTTON CAPTION 'Opis, uwagi' PARENT oToolBar3 TOOLTIP D_CO('Opis szczeg˘owy dziaania na ekranie') ACTION {||FD_HELP(SUBS(ZBIOR,1,3),0,'XXXXX'),SetAppFocus(oBrowse)}
DCADDBUTTON CAPTION 'Wyp.socjal' PARENT oToolBar3 TOOLTIP 'Wyliczenie rozliczenia wiadczenia socjalnego' ACTION {||M_WyplSoc(),SetAppFocus(oBrowse)}
DCADDBUTTON CAPTION 'Odblokuj list©' SIZE 16,1.5 WHEN {||!EMPTY(KMW->K_RODZAJ)} PARENT oToolBar3 TOOLTIP 'Zdj©cie ewentualnej blokady z listy na kt˘rej jest ten skadnik' ACTION {||M_OdblokujListe(),SetAppFocus(oBrowse)} GROUP 'TEST_IT'
@ 3.10,77 DCPUSHBUTTON CAPTION 'Pokaľ sum© list' SIZE 11,1.05 TOOLTIP 'Wywietlenie posumowanych wartoci z wszystkich list pracownika' ;
ACTION {||PokazSumyList(PRAC->P_KOD),SetAppFocus(oBrowse)} WHEN {||!(DC_BOF() .AND. DC_EOF())} FONT cBarFont
@ 4.15,77 DCPUSHBUTTON CAPTION 'Poprzedni' SIZE 11,1.05 ACTION {||DbSelectArea('PRAC'),DbSetOrder(PracUporz),PRAC->(DC_DbSkip(-1)),DbSetOrder(1),DbSelectArea('KMW'),NRPRAC:=PRAC->P_KOD,NAPRAC:=PRAC->P_NAZWIS,DC_ClrScope(),DC_SetScope(0,NRPRAC),DC_SetScope(1,NRPRAC),oBrowse:refreshAll(),DC_GetRefresh(GetList,NIL,DCGETREFRESH_TYPE_EXCLUDE,{GETLIST_BROWSE})} ACCELKEY xbeK_ALT_P FONT cBarFont
@ 5.20,77 DCPUSHBUTTON CAPTION 'Nast©pny' SIZE 11,1.05 ACTION {||DbSelectArea('PRAC'),DbSetOrder(PracUporz),PRAC->(DC_DbSkip(1)),IF(PRAC->(DC_EOF()),PRAC->(DC_DbSkip(-1)),NIL),DbSetOrder(1),DbSelectArea('KMW'),NRPRAC:=PRAC->P_KOD,NAPRAC:=PRAC->P_NAZWIS,DC_ClrScope(),DC_SetScope(0,NRPRAC),DC_SetScope(1,NRPRAC),oBrowse:refreshAll(),DC_GetRefresh(GetList,NIL,DCGETREFRESH_TYPE_EXCLUDE,{GETLIST_BROWSE})} ACCELKEY xbeK_ALT_N FONT cBarFont
@6.3, 0 DCTOOLBAR oToolBar2 SIZE 88,1.5 BUTTONSIZE 13.5,1.5
DCADDBUTTON CAPTION 'K.Wynag.Pracow.' PARENT oToolBar2 TOOLTIP 'Wejcie do Kartoteki Wynagrodzeä Pracownik˘w' ACTION {||DbSelectArea('PRAC'),nMiejPrac:=RECNO(),W_MENU1(),DbSelectArea('PRAC'),DbGoTo(nMiejPrac),DbSelectArea('KMW'),SetAppFocus(oBrowse)} SIZE 13,1.5
DCADDBUTTON CAPTION 'K.Zasikowa' PARENT oToolBar2 TOOLTIP 'Wejcie do Kartoteki Zasik˘w Chorobowych' ACTION {||N_MENU1(),DbSelectArea('KMW'),SetAppFocus(oBrowse)} SIZE 9,1.5
DCADDBUTTON CAPTION 'K.Nieobecnoci' PARENT oToolBar2 TOOLTIP 'Wejcie do Kartoteki Nieobecnoci' ACTION {||PokazNieobecnosci(),DbSelectArea('KMW'),SetAppFocus(oBrowse)} SIZE 12,1.5
DCADDBUTTON CAPTION 'E.Przetw. bieľĄce' PARENT oToolBar2 TOOLTIP 'Informacje zwiĄzane z przetwarzaniem bieľĄcym' ACTION {||DbSelectArea('PRAC'),nMiejPrac:=RECNO(),R_PMENU(1),DbSelectArea('PRAC'),DbGoTo(nMiejPrac),DbSelectArea('KMW'),SetAppFocus(oBrowse)}
DCADDBUTTON CAPTION 'E.Rozlicz. roczne' PARENT oToolBar2 TOOLTIP 'Informacje zwiĄzane z rozliczeniem rocznym' ACTION {||DbSelectArea('PRAC'),nMiejPrac:=RECNO(),R_QMENU(1),DbSelectArea('PRAC'),DbGoTo(nMiejPrac),DbSelectArea('KMW'),SetAppFocus(oBrowse)}
DCADDBUTTON CAPTION 'E.Rozlicz. z ZUS' PARENT oToolBar2 TOOLTIP 'Informacje zwiĄzane z rozliczeniem z ZUS' ACTION {||DbSelectArea('PRAC'),nMiejPrac:=RECNO(),R_SMENU(1),DbSelectArea('PRAC'),DbGoTo(nMiejPrac),DbSelectArea('KMW'),SetAppFocus(oBrowse)}
DCADDBUTTON CAPTION 'E."NAUCZYCIEL"' WHEN {||PRAC->P_WSKNAUCZ='T'} PARENT oToolBar2 TOOLTIP 'Informacje zwiĄzane z wycenĄ nadgodzin' ACTION {||R_TMENU(),DbSelectArea('PRAC'),DbSelectArea('KMW'),SetAppFocus(oBrowse)} SIZE 13.5,1.5
SELECT KMW
cAlias:='KMW'
@8.0,0 DCBROWSE oBrowse ALIAS cAlias SIZE 88,(nMaxRow-IF(TYP_ZBIORU#'A',8,6)) FIT MAX nMaxCol CURSORMODE XBPBRW_CURSOR_ROW PRESENTATION DC_BrowPres() ITEMMARKED {||DC_GetRefresh(GetList,NIL,DCGETREFRESH_TYPE_EXCLUDE,{GETLIST_BROWSE},'TEST_IT')} SCOPE NODESCENDTOGGLE
DCBROWSECOL DATA {||K_KOMORKA} HEADER 'Kom˘rka' PARENT oBrowse WIDTH 5
DCBROWSECOL DATA {||K_KOD_SKL} HEADER 'Skadnik' PARENT oBrowse WIDTH 4
DCBROWSECOL DATA {||IF(K_WSKKOR=' ',' ','kor "'+K_WSKKOR+'"')} HEADER 'Kor +/-' PARENT oBrowse WIDTH 4
DCBROWSECOL DATA {||WYSW_SKL(K_KOD_SKL)} HEADER 'Nazwa' PARENT oBrowse WIDTH 18
DCBROWSECOL DATA {||IF(EMPTY(K_KOD_SKL),'',LTRIM(l_we(15,K_WARTOSC)))} HEADER 'Kwota' PARENT oBrowse WIDTH 5 ALIGN XBPALIGN_RIGHT PRESENTATION aPres1
DCBROWSECOL DATA {||K_RODZAJ} HEADER 'Lista' PARENT oBrowse WIDTH 4.5
DCBROWSECOL DATA {||IF(K_ILOSC=0,'',USUN_ZERA(K_ILOSC,6,2)+;
IF(K_KOD_SKL$'20010,20012,20013,20020' .OR. SUBS(K_KOD_SKL,1,4)='2000',' os.',IF(AT(K_TYP,'Gg')>0,' godz',' dni ')))} HEADER 'Ilo†' PARENT oBrowse WIDTH 6
DCBROWSECOL DATA {||IF(EMPTY(K_DATA),'',TRANSFORM(UZU_20(K_DATA),"@R 9999.99.99"))} HEADER 'Naliczano' PARENT oBrowse WIDTH 6 ALIGN XBPALIGN_HCENTER PRESENTATION aPres2
DCBROWSECOL DATA {||IF(K_KOD_SKL='70010','',K_DZIEN)} HEADER 'Dzieä' PARENT oBrowse WIDTH 4
cTitle:=NAZ_MIE(L_4KU(SUBS(ZBIOR,4,4)))+' - kartoteka (bieľĄca)')
DCGETOPTIONS NOMINBUTTON NOMAXBUTTON
DCREAD GUI MODAL FIT OPTIONS GetOptions TITLE cTitle EVAL {|o|SetAppFocus(oBrowse),SetAppWindow(o)}
SELECT KMW
SET FILTER TO
COMMIT
SET FILTER TO RECNO()>2
DC_ClrScope()
SELECT PRAC
DbSetOrder(PracUporz)
RETURN
Regards
Piotr