Seite 1 von 1

DBedit und die Darstellung der Tabelle !?!

Verfasst: Mo, 14. Sep 2015 21:22
von xbaseklaus
Hi, kann man die (grafische) Textansicht bei DBedit irgendwo anpassen , daß die Ansicht der Tabellen - Trennzeichen stimmt ?

In dem Snapshot denn ich angehängt habe stimmen die Tabellen - Trennzeichen ja nicht bzw zwischen WT S Z fehlt der senkrechte Trenstrich !

mfg Klaus

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mo, 14. Sep 2015 21:41
von Jan
Klaus,

das dürfte ein Zeichensatzproblem sein. Aber Alaska liefert den kompletten Quellcode mit, schau mal hier C:\Users\Jan\Documents\Xbase++\source\runtime\sys\dbedit.prg. Da kannst Du das ändern, mußt dann beim Kompilieren nur diese prg mit einbinden.

Jan

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mo, 14. Sep 2015 22:43
von AUGE_OHR
hi,

unter Xbase++ v1.9.355 ist es die Datei c:\ALASKA\XPPW32\Source\SYS\DBEDIT.PRG
in Zeile 49 musst du es so ändern :

Code: Alles auswählen

oTBrowse:headSep := IIf( Valtype(acHeadSep)=="C", acHeadSep, "═╦═" )
wobei das mittlere Zeichen "ALT 203" ist in einem OEM Editor ( NICHT Notepad.EXE weil ANSI !!! )

danach musst du

Code: Alles auswählen

c:\ALASKA\XPPW32\Source\dll\PROJECT.XPJ
starten und eine neue XPPSYS.DLL erstellen welche du in das \LIB und das \RUNTIME Verzeichnis kopierst.

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mo, 14. Sep 2015 23:38
von xbaseklaus
Danke !

habe die geänderte dbedit.prg in meine xpj Datei mit aufgenommen .. wird jetzt auch so angezeigt !

ABER warum werden zwischen WT .. S und S .. Z die senkrechten Trennstriche nach unten nicht gemacht ???

Mfg. Klaus

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mo, 14. Sep 2015 23:49
von xbaseklaus
OK , wenn ich folgendes ändere von

Code: Alles auswählen

DECLARE Kopf[8]
...
Kopf[2]="WT"
Kopf[3]="S"
Kopf[4]="Z"
...
nach

Code: Alles auswählen

DECLARE Kopf[8]
...
Kopf[2]="WT "
Kopf[3]="S "
Kopf[4]="Z "
...
dann passt es ! :-)

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Di, 15. Sep 2015 0:09
von xbaseklaus
Jetzt hätte ich dann doch noch ne Frage:

da ich ja die DBedit.prg verändern und einbinden kann, wäre es möglich die DBedit.prg so zu verändern, daß sich

in jeder Zeile abwechselnd die Hintergrundfarbe ändert ?!

Etwa so:

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Di, 15. Sep 2015 3:56
von AUGE_OHR
xbaseklaus hat geschrieben:da ich ja die DBedit.prg verändern und einbinden kann, wäre es möglich die DBedit.prg so zu verändern, daß sich

in jeder Zeile abwechselnd die Hintergrundfarbe ändert ?!
DBEDIT.PRG ruft ja intern TBrowseDB() aus was in c:\ALASKA\XPPW32\Source\SYS\BrowUtil.prg steckt.

hm ... ein TBrowse() mit "Zebra" Effekt ... :-k
ich "denke" ich habe es mal versucht ( oTBrowse:COLORRECT() ) aber es war nicht optimal weil man jede Zeile neu zeichnen musst.

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Di, 15. Sep 2015 4:04
von AUGE_OHR
xbaseklaus hat geschrieben:

Code: Alles auswählen

DECLARE Kopf[8]
...
Kopf[2]="WT "
Kopf[3]="S "
Kopf[4]="Z "
...
dann passt es ! :-)
es sind ja 3 Zeichen als oTBrowse:headSep bzw. oTbrowse:colSep.
statt dem CHR(203) sieht CHR(205) besser aus ... es gibt kein "double" mit "single" Line

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Di, 29. Sep 2015 19:13
von xbaseklaus
Jetzt muß ich die Änderung der Ansicht in DBedit doch noch mal ansprechen.

Ich habe folgendes im Internet gefunden bekomme es aber nicht zum laufen da xbase beim Aufruf mit einer Fehlermeldung abbricht:

habe versucht dies in die DBedit.prg zu integrieren

Code: Alles auswählen

setkey( K_F6 ,{|| ToggleTBColor( oTBrowse, {{1,2},{3,2}} , {{4,5},{6,5}} ) })

Code: Alles auswählen

Func ToggleTBColor( oTBrowse, aColor1, aColor2 )
local nVScreenLen:=bin2i(substr(atail(oTbrowse),13))      -----> hier bei atail steigt er aus !!!
local cColorRect:=substr(atail(oTbrowse),85+nVScreenLen+12*oTBrowse:ColCount)
local cOriginal, cBytes1, cBytes2, i, nLen := min(len(aColor1),len(aColor2))

for i:=1 to nLen
  cBytes1   := chr( aColor1[i,1] ) + chr( aColor1[i,2] ) // Match-color
  cBytes2   := chr( aColor2[i,1] ) + chr( aColor2[i,2] ) // Result-color
  cColorRect:= strtran( cColorRect, cBytes1, cBytes2 )
next

// get a true string copy of atail(oTBrowse) using substr()
cOriginal := substr(atail(oTBrowse),1)

oTbrowse[len(oTbrowse)]:=substr(atail(oTbrowse),1,84+nVScreenLen+12*oTBrowse:ColCount)+cColorRect

oTbrowse : invalidate()
while ! oTbrowse:stabilize() ; end

// reset to original state
oTbrowse[len(oTbrowse)]:=cOriginal

return oTBrowse
hat dies schon mal jemand versucht von Clipper auf xbase zu übertragen ?

Mfg. Klaus

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mi, 30. Sep 2015 13:47
von xbaseklaus
Hi , vielleicht kann mir jetzt doch noch jemand einen Tipp geben

und zwar habe ich es jetzt so gelöst:



Da wo der Cursor steht ist das Feld jetzt schwarz , liegt aber daran, dass die Schrift in der Zeile auch schwarz ist . kann ich das schwarze Feld irgendwo auf gelb umstellen, damit ich die schwarze Schrift sehe ???

Ich habe DBedit.prg und Browutil.prg angepasst

Code: Alles auswählen

  ...   
IF oTBrowse:stable 

	oTBrowse:colorRect( {oTBrowse:rowpos,1,oTBrowse:rowpos,oTbrowse:colcount},{2,3} )                 // Cursorzeile hervorheben
	oTbrowse:refreshCurrent()
...

Code: Alles auswählen

 ...
 DO CASE
   CASE bInkey <> NIL          ; Eval( bInkey, procName(2), ;
                                       procLine(2), readVar(), oTB )
   CASE nInkey == K_DOWN       
        oTb:colorRect( {oTB:rowpos,1,oTB:rowpos,oTB:colcount},{1,2} )   
        oTB:down()        ; nDirection := 2
...

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mi, 30. Sep 2015 14:32
von xbaseklaus
Ok über ColorSpec() geht es

Code: Alles auswählen

...
IF oTBrowse:stable 
	oTbrowse :ColorSpec  := "W+/BG,W+/R,W+/G,N/BG,N/R,N/G"
	oTBrowse:colorRect( {oTBrowse:rowpos,1,oTBrowse:rowpos,oTbrowse:colcount},{2,3} )                 // Cursorzeile hervorheben
	oTbrowse:refreshCurrent()
...
ColorSpec := "W+/BG, W+/R, W+/G, N/BG, N/R, N/G"


Kann mir mal jemand sagen was hier für was benutzt wird ?

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mi, 30. Sep 2015 14:46
von xbaseklaus
oTbrowse :ColorSpec := "W+/R,W+/BG,W+/GR+,N/BG,N/R,N/G"

So für was die ersten 3 angaben sind ist klar ... aber der Rest ?

Das ganze sieht jetzt so aus:



Wie mache ich es jetzt am einfachsten, dass er weiss das er manche Tabellen standart darstellt und manche so geändert ?

Mfg. Klaus

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mi, 30. Sep 2015 15:30
von xbaseklaus
Soweit bin ich ja jetzt zufrieden aber das Problem ist, dass meine Tabellen

nach rechts weiter als der sichtbare Bereich gehen -> gehe ich nun mit CURSOR RECHTS in den am

Anfang nicht sichtbaren Bereich , dann sind dort die Farben nicht aktualisiert ???

d.h. oTb:colorRect( {oTB:rowpos,1,oTB:rowpos,oTB:colcount},{1,2} )

wird im nicht sichtbaren Bereich nicht automatisch mit ausgeführt. Es greift erst , wenn ich es in den sichtbaren Bereich verschiebe !

Wie kann ich den erst nicht sichtbaren Bereich mit aktualisieren lassen ???

Jetzt wäre ich für einen Tipp echt dankbar !

Mfg. Klaus

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mi, 30. Sep 2015 16:20
von xbaseklaus
Komischerweise ist der nicht sichtbare Bereich bei der Verwendung der BILD rauf und runter Tasten
korrekt aktualisiert bzw dargestellt.

Bei Verwendung der CURSOR Tasten rauf und runter wird im nicht sichtbaren Bereich der ColorRect mit der Farbänderung der Zeile auch durgeführt,
aber nicht wieder zurückgesetzt bzw geändert !

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Mi, 30. Sep 2015 16:43
von xbaseklaus
OK ich habe das Problem gelöst:

Mit folgendem Eintrag in die BrowUtil.prg und zwar bei K_LEFT und K_RIGHT

Code: Alles auswählen

...
 CASE nInkey == K_LEFT   
 oTB:refreshall()   // und zwar hier durch Verwendung von RefreshAll()
 oTB:left()        ; nDirection := 4
...
Mfg. Klaus

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Fr, 16. Okt 2015 19:05
von xbaseklaus
So ich hänge die Frage jetzt mal hier dran, da ich die DBEDIT um Spezielle Feldern erweitern wollte was irgendwie nicht richtig
funktioniert.

Vielleicht kann mir jemand auf die Sprünge helfen wo ich da in der DBEDIT.prg bzw BROWUTIL.prg ansetzten muß

die geänderte DBEDIT sieht jetzt ja folgendermaßen aus:

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Fr, 16. Okt 2015 19:08
von xbaseklaus
Jetzt wollte ich noch zusätzlich, daß in der Spalte wo S , V, und G vorkommt diese Felder auch unterschiedlich farbig markiert sind.

Irgendwie weiß ich jedoch nicht wo ich da ansetzen soll , damit diese Felder ständig markiert sind !?!

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Fr, 16. Okt 2015 19:25
von xbaseklaus
Ich hab da natürlich schon einiges probiert, z.b. mit:

Code: Alles auswählen

... oTBcolumn:colorblock:={|| iif( termin1->vertrag = "V" , {5,6} , {1,2} ) }  ...
damit kann ich die Felder zwar einfärben, aber es soll ja sofort beim Aufruf von dbedit alles bereits eingefärbt sein

und wenn ich mit meiner geänderter CURSOR Zeile ( siehe oben ) drüber gescrollt bin , auch wieder hergestellt werden ...

Mfg. Klaus

Re: DBedit und die Darstellung der Tabelle !?!

Verfasst: Fr, 16. Okt 2015 19:28
von AUGE_OHR
hi,

du kannst für jedes Feld (= Column) ein o:Colorblock setzten.

Code: Alles auswählen

oTbrowse:ColorSpec := "W+/R,W+/BG,W+/GR+,N/BG,N/R,N/G"
So für was die ersten 3 angaben sind ist klar ... aber der Rest ?
die o:Colorblock Farben beziehen sich auf die "Elemente" von o:ColorSpec.

Code: Alles auswählen

oTBColumn:colorBlock := {|nValue| IIf( nValue<0, {3,4}, {1,2} ) }
wenn nValue<0 wird 3 als Vordergrund- und 4 als Hintergrund-Farbe genutzt sonst 1 als Vordergrund- und 2 als Hintergrund-Farbe.