DBedit und die Darstellung der Tabelle !?!

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

DBedit und die Darstellung der Tabelle !?!

Beitrag 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
Dateianhänge
Ashampoo_Snap_2015.09.14_21h15m36s_003_.png
Ashampoo_Snap_2015.09.14_21h15m36s_003_.png (20.09 KiB) 12095 mal betrachtet
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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.
gruss by OHR
Jimmy
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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
Dateianhänge
Ashampoo_Snap_2015.09.14_23h37m15s_004_.png
Ashampoo_Snap_2015.09.14_23h37m15s_004_.png (19.59 KiB) 12086 mal betrachtet
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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 ! :-)
Dateianhänge
Ashampoo_Snap_2015.09.14_23h44m27s_005_.png
Ashampoo_Snap_2015.09.14_23h44m27s_005_.png (19.75 KiB) 12082 mal betrachtet
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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:
Dateianhänge
Ashampoo_Snap_2015.09.15_00h08m00s_006_.png
Ashampoo_Snap_2015.09.15_00h08m00s_006_.png (14.34 KiB) 12082 mal betrachtet
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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
gruss by OHR
Jimmy
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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
...
Dateianhänge
Ashampoo_Snap_2015.09.30_13h33m43s_001_.png
Ashampoo_Snap_2015.09.30_13h33m43s_001_.png (15.15 KiB) 11987 mal betrachtet
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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 ?
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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
Dateianhänge
Ashampoo_Snap_2015.09.30_14h41m43s_002_.png
Ashampoo_Snap_2015.09.30_14h41m43s_002_.png (16 KiB) 11987 mal betrachtet
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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 !
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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:
Dateianhänge
Ashampoo_Snap_2015.10.16_19h00m29s_002_.png
Ashampoo_Snap_2015.10.16_19h00m29s_002_.png (14.45 KiB) 11893 mal betrachtet
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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 !?!
Dateianhänge
Ashampoo_Snap_2015.10.16_18h59m30s_001_.png
Ashampoo_Snap_2015.10.16_18h59m30s_001_.png (38.42 KiB) 11891 mal betrachtet
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: DBedit und die Darstellung der Tabelle !?!

Beitrag 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.
gruss by OHR
Jimmy
Antworten