expression in DataColumn

19/11/2007 - 09:00 von Andreas Jändl | Report spam
Hallo NG,

mir ist die Funktionsweise einer Expression noch nicht klar.

Folgender Fall: ich habe Datatable1 im Dataset und füge Datatable2 dem DS
hinzu und definiere eine Relation zwischen den beiden. Dann füge ich eine
Spalte 'WerteAusDt2' an Datatable1 hinzu und schreibe mit einer Expression
die Werte aus Datatable2 in die Datatable1.WerteAusDt2 (die Expression
lautet myColumn.Expression = "max(child.expr)"). Danach entferne ich die
Relation und die Datatable2 aus dem DS.
Jetzt würde ich aber gerne die Werte in Datatable1.WerteAusDt2 weiter
bearbeiten. Das geht nicht, da mir die Spalte als nicht bearbeitbar
angezeigt wird, weil eine Expression darauf liegt.

Wie kann ich die Expression in der Spalte entfernen, ohne die durch die
Expression eingetragenen Werte ebenfalls zu entfernen?

Vielen Dank im voraus und herzliche Grüße,
Andreas
 

Lesen sie die antworten

#1 Peter Fleischer
19/11/2007 - 09:16 | Warnen spam
"Andreas Jàndl" schrieb im Newsbeitrag
news:

Folgender Fall: ich habe Datatable1 im Dataset und füge Datatable2 dem DS
hinzu und definiere eine Relation zwischen den beiden. Dann füge ich eine
Spalte 'WerteAusDt2' an Datatable1 hinzu und schreibe mit einer Expression
die Werte aus Datatable2 in die Datatable1.



Andreas,
genau hier liegt dein Denkfehler. Es wird nichts aus DataTable2 in DataTable
geschrieben. Bei jedem Zugriff auf ein Feld mit einem Ausdruck wird der
Ausdruck berechnet und dann bereitgestellt. Das Feld ist nicht beschriebbar,
da beim Schreiben der umgekehrte Prozess auszuführen wàre, was
beispielsweise bei einer Aggregatfunktion (z.B. sum) unmöglich ist.

WerteAusDt2 (die Expression lautet myColumn.Expression =
"max(child.expr)"). Danach entferne ich die Relation und die Datatable2
aus dem DS.



Damit entfàllt die Grundlage für eine Berechnung des Ausdrucks und der
Zugriff bringt Fehler.

Jetzt würde ich aber gerne die Werte in Datatable1.WerteAusDt2 weiter
bearbeiten. Das geht nicht, da mir die Spalte als nicht bearbeitbar
angezeigt wird, weil eine Expression darauf liegt.



Solange die DataRelation funktioniert, kannst du den Wert, der in einer
Ausdruckspalte bereitgestellt wird, im Programm auch verarbeiten (lesend).

Wie kann ich die Expression in der Spalte entfernen, ohne die durch die
Expression eingetragenen Werte ebenfalls zu entfernen?



Da bleibt nur vor dem Entfernen ein Kopieren der Werte an eine Stelle, wo du
sie dann auch ohne DataRelation lesen kannst.

Viele Gruesse

Peter

Ähnliche fragen