Problem bei der Auslagerung von Tabellen

23. Juli 2008 14:29

Hallo Zusammen,

und zwar haben wir folgendes Problem:
In unserer ITEM Tabelle sind bereits so viele Spalten enthalten das man keine weiteren mehr hinzufügen kann.
Wir möchten jetzt gerne eine neue Tabelle (z.b. ITEM2) erstellen und diese mit der ITEM Tabelle verknüpfen damit wenn wir später z.B in einem Formular als Tabelle ITEM hinterlegt haben, wir auch die Spalten der Tabelle Item2 benutzen können. Doch leider wissen wir nicht wie das funktioniert....

Kann uns von euch jemand weiterhelfen????

Im voraus schon einmal vielen Dank für eure Hilfe!!! :-)

23. Juli 2008 15:27

Erstelle deine neue Tabelle mit dem gleichen Primärschlüssel wie die Tabelle Item. Füge dort außerdem deine neuen Felder hinzu.

Nun musst du den Code in den Triggern OnInsert, OnModify, OnRename, OnDelete (ggf. in weiteren Funktionen anpassen) der Tabelle Item anpassen: Wann immer ein Datensatz erstellt, geändert (umbenannt), gelöscht wird, muss dies in deiner neuen Tabelle auch geschehen.
Beispiel: Legst du einen neuen Artikel ein, so muss automatisch ein Zwillingsdatensatz in deiner neuen Tabelle mit der gleichen Artikelnummer erstellt werden.

Um die neuen Felder nachher in einer Form zusammen zu fassen, fügst du auf deiner Form neue Table-Boxes etc. hinzu. Als SourceExpr dient jedoch nicht "Feldname", sondern RecordItem2."Feldname".
Die Recordavariable RecordItem2 verweist auf deine neue Tabelle. Diese musst im OnAfteGetCurrRecord-Trigger deiner Form via Befehl
Code:
RecordItem.GET("No.");

holen.

23. Juli 2008 15:44

Hallo,

vielen Dank für deine schnelle Antwort.
Wir probieren das gleich mal aus... :-)

23. Juli 2008 16:00

Auf die Felder der zweiten Tabelle kann dabei allerdings über die Form für ITEM nicht wie üblich vom Anwender gefiltert werden. Dort sollte man also möglichst keine Felder unterbringen, wo das benötigt wird.

23. Juli 2008 16:35

Stimmt ...
Falls diese Felder genauso funktionieren sollen wie bisher (filtern, direkte Änderung bewirkt Speicherung im betroffenen Datensatz), dann müsstest du für die neuen Felder eine neue Form erstellen. Der Benutzer muss sich die neue Form dann via Buttonklick o.ä. auf der Artikelkarte anzeigen lassen. Eventuell ginge es auch über eine Subform.