express++ dcbrowse Headerfarben

Moderator: Moderatoren

Antworten
Alfred
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 476
Registriert: Do, 03. Mai 2007 12:37
Wohnort: München

express++ dcbrowse Headerfarben

Beitrag von Alfred »

Hallo,

Code: Alles auswählen

aPres := ;
  { { XBP_PP_COL_HA_FGCLR, GRA_CLR_WHITE},    /*Header FG*/  ;
    { XBP_PP_COL_HA_BGCLR, GRA_CLR_DARKBLUE}, /*Header BG*/ ;
    { XBP_PP_COL_FA_FGCLR, GRA_CLR_WHITE },   /*Footer FG*/     ;
    { XBP_PP_COL_FA_BGCLR, GRA_CLR_DARKBLUE }, /*Footer BG*/ ;
    { XBP_PP_HILITE_FGCLR, GRA_CLR_WHITE},    /* Hilite FG */      ;  
    { XBP_PP_HILITE_BGCLR, GRA_CLR_DARKBLUE }, /*Hilige FG*/  ;
    { XBP_PP_COL_DA_ROWSEPARATOR, XBPCOL_SEP_DOTTED },   ;
    { XBP_PP_COL_DA_COLSEPARATOR, XBPCOL_SEP_DOTTED },   ;
    { XBP_PP_COL_DA_ROWHEIGHT, 20 },      /* Row Height */     ;
    { XBP_PP_COL_DA_CELLHEIGHT, 20 }  }   /* Cell Height */;
   }

@ 6,25 DCBROWSE oBrowse;
       SIZE 66,11;                   
       EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITEXIT;
       PRESENTATION aPres              

DCBROWSECOL FIELD erffibu->Betrag ;
  width 5;
  HEADER "Betrag" PARENT oBrowse FOOTER '1'
Der Header wird leider nicht dunkelblau;

Code: Alles auswählen

HCOLOR(GRA_CLR_WHITE,GRA_CLR_DARK_BLUE) 
beim DCBROWSECOL ändert nur die Schrift.

Gruß
Alfred
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Hallo Alfred!

Beitrag von Juergen »

PROCEDURE Set_Header_Color(oBrowse,nColor) //Setzt die Farbe des Browse-Headers zur Laufzeit. 04.08.04 HJA
LOCAL i, oColumn

FOR i := 1 TO oBrowse:colCount
oColumn := oBrowse:GetColumn(i)
oColumn:heading:setColorBG(nColor)
NEXT

RETURN

Gruß
Jürgen
Alfred
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 476
Registriert: Do, 03. Mai 2007 12:37
Wohnort: München

Beitrag von Alfred »

Hallo Jürgen,

unter express scheint deine Prozedur leider nicht zu funktionieren.

Folgende Lösung habe ich gefunden:

Code: Alles auswählen

HEADER "Betrag" HCOLOR GRA_CLR_WHITE, GRA_CLR_DARKBLUE
Gruß
Alfred
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2936
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Hallo Alfred,
schau dir mal die Funktion DC_BrowseSort() an, damit kannst du einige Einstellungen bezgl. Header vornehmen.
Viele Grüße
Wolfgang
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Juergen »

Hallo Alfred,

probiere mal so:

PROCEDURE Set_Header_Color(oBrowse,nBGColor,nFGColor) //Setzt die Farbe des Browse-Headers zur Laufzeit. 04.08.04 HJA
LOCAL i, oColumn

FOR i := 1 TO oBrowse:colCount
oColumn := oBrowse:GetColumn(i)
oColumn:heading:setColorBG(nBGColor)
oColumn:heading:setColorFG(nFGColor)
NEXT

RETURN

Gruß
Jürgen
Alfred
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 476
Registriert: Do, 03. Mai 2007 12:37
Wohnort: München

Beitrag von Alfred »

Hallo Jürgen,

unter Alaskas läuft den Vorschlag einwandfrei.

express++ streikt bereits bei oColumn1 := oBrowse:GetColumn(1)
Auch oColBetrag:heading:SetColorBG(GRA_CLR_DARKBLUE) wird nicht
akzeptiert.

Gruß
Alfred
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Header-Farben

Beitrag von Juergen »

Hallo Alfred,

ich kann das im Moment nicht nachvollziehen.

Ich arbeite nur mit Express++, das Beispiel läuft seit 3
Jahren bei mir.

Gruß
Jürgen
Alfred
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 476
Registriert: Do, 03. Mai 2007 12:37
Wohnort: München

Beitrag von Alfred »

Hallo Jürgen,

ohne den Prozeduraufruf läuft das Programm.

Code: Alles auswählen

#include "dcdialog.ch"
#include "xbp.ch"
PROCEDURE MAIN()
LOCAL GetList := {}, GetOptions
use erffibu

@ 2,13 DCBROWSE oBrowse;
    size 10,8 ;
    NOHSCROLL    
DCBROWSECOL FIELD erffibu->Betrag ; 
  PICTURE '999,999.99';  
  OBJECT oColBetrag ;
  PARENT oBrowse ;
  HEADER "Betrag" 

Set_Header_Color(oBrowse,"GRA_CLR_RED","GRA_CLR_BLUE")  

@ 16,12 DCPUSHBUTTON ;
   CAPTION {||"beenden"} ;
   OBJECT oDCPUSH1 ;
   size 10,1.5 ;
   Action{||DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)}      

DCGETOPTIONS ;
     SAYLEFT 
DCREAD GUI;
    OPTIONS GetOptions
RETURN

Procedure APPSYS()
RETURN

PROCEDURE Set_Header_Color(oBrowse,nBGCOLOR,nFGCOLOR)
LOCAL oColumn
oColumn := oBrowse:GetColumn(1)
oColumn:heading:setcolorBG(nBGCOLOR)
oColumn:heading:setcolorFG(nFGCOLOR)                 
RETURN
Gruß
Alfred
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Header Color

Beitrag von Juergen »

Hallo Alfred,

ich baue das immer so ein:

@ 2,13 DCBROWSE oBrowse;
size 10,8 ;
NOHSCROLL;
EVAL {|o|Set_Header_Color(o,GRA_CLR_RED,GRA_CLR_WHITE)}


Gruß
Jürgen
WernerSt
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 41
Registriert: Do, 05. Apr 2007 12:50
Wohnort: 26135 Oldenburg
Kontaktdaten:

Beitrag von WernerSt »

Hallo Alfred,
ich habe das gleiche Problem gehabt, nachdem ich eine neuere version von express verwende. Roger schlug folgende Umgehung vor, damit weiter wie gewohnt mit dem presentation-array gearbeitet werden kann:
asort:= dc_browsesort()
asort[3]:= asort[4]:= nil
dc_browsesort(asort)
diese Routine habe ich einmal in meinem main-Programmteil definiert.
Werner
Alfred
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 476
Registriert: Do, 03. Mai 2007 12:37
Wohnort: München

Beitrag von Alfred »

Hallo Werner,

vielen Dank für deinen Hinweis.

In der Version 1.90.245 von express läßt sich mit asort[3] und asort[4]
und mit den Nummern an Stelle von GRA_CLR_XXX(YELLOW geht z.B. nicht)
der header wie gewünscht einstellen.

Gruß
Alfred
Antworten