Ich habe mir aus den Beispielen von Express einen Datenbankbrowser gebaut, mit dem man eine beliebige Datenbank browsen kann, ohne die Felder vorher zu kennen. So weit so gut.
Leider kann ich damit Feldinhalte nicht direkt ändern, da Eingaben nicht zurückgeschrieben werden. Da ich das Problem kenne, habe ich gedacht, ich greife auf die Möglichkeiten von EDITOR zurück.
Dabei stosse ich auf ein für mich bisher unlösbares Problem.
Wenn ich in der Funktion fedit gelandet bin und dort die Daten in die Datenbank zurückschreiben will, fehlt mir die Information, in welches Feld ich die Daten schreiben muss.
Was kann ich wohl von wo aus an fedit mitgeben, dass in fedit bekannt ist, von welchem Datenbankfeld aus ich dort gelandet bin ?
Wenn ich das Feld nicht direkt packen kann, müßte das doch irgendwie über die Browser Spalte und dann mit Field(x) gehen - oder.
Bin wie immer für jeden Tip dankbar.
Gruß
Ewald
Code: Alles auswählen
#include "appevent.ch"
#include "dcdialog.ch"
proc main
use blaDBF excl new
calias:=alias()
@ 0,1 dcbrowse obrowse alias calias size 170,30 edit xbeBRW_ItemSelected
for j := 1 to (cAlias)->(FCount())
dcbrowsecol data &('{||' + cAlias + '->' + FieldName(j) + '}') ;
parent obrowse header (cAlias)->(FieldName(j)) editor 'XED'
next
@ nil,nil dcget xnil getid 'XED' ;
valid {|o|fedit(o)}
dcread gui fit
return .t.
function fedit(o)
x:=o:Editbuffer()
repl ??????? with x
return .t.