Record in Funktion mitgeben

Für die Erstellung neuer Tarifmodelle ist es bei uns zweckmäßig, die Grunddaten aus einem bereits bestehenden Tarifmodell zu übernehmen. Dazu sollen die entsprechenden Tarifdatensätze in diversen Table kopiert werden. Da der Kopiervorgang für alle Tables glerich ist bietet sich dazu eine Funktion an, die lediglich noch den Tablenamen zu enthalten brauch. Kann ich einer Funktion den Tablenamen als Parameter mitgeben, sodaß die Funktionsvariable ‘Tablename’ immer auf den gewünschten Table verweist ? Die Funktion soll im Format 'TableCopy(TableName, altesModell, neuesModell) aufgerufen werden. Danke im voraus Stefan Weinreich Billing Analyst

Klar geht das :wink: Fragen über fragen, habt Ihr keinen NSC? Schau mal unter der Hilfe in Navision (F1) dir den copy Befehl für Tabellen an,hier kannst du ganze Datensätze kopieren. Packst du diesen in eine Schleife wird eine ganze Tabelle mit vielen Records draus. ------------------ Best regards Alejandro Schubert CYCOS AG System Engineer www.cycos.com www.dolphinct.de EMail: Alejandro.Schubert@cycos.com

Da bei uns die Programmierung erst angelaufen ist, besteht noch kein Support dafür… leider. Und manche Mühlen eben langsam, d.h. bis der entsprechende Supportvertrag durch ist (bzw. die Mittel dafür bewilligt sind) dauert ein Weilchen… Ich hab’ nochmal in den COPY-Befehl reingesehen. Aber was ich da lese, löst leider mein Problem nicht. Die Funktion soll im Format TableCopy(Tab1, ModellAlt, ModellNeu); TableCopy(Tab2, ModellAlt, ModellNeu); TableCopy(Tab3, ModellAlt, ModellNeu); … TableCopy(welcheTabelle, Modell1, Modell2) with welcheTabelle do begin setrange(modell, Modell1); … end; erfolgen. Leider wird ein Subtype in der Funktion für den Record ‘welche Tabelle’ verlangt, der aber variable sein soll. Bisher habe ich die Funktion als ständig wiederholten Code im aufrufenden Bereich eingetragen (für jede Tabelle ein eigener Code-Block), was natürlich wenig elegant aussieht und bei Änderungen schlecht zu warten ist. Stefan Weinreich Billing Analyst

Stefan, Was Du vorhast funktioniert tatsächlich definitiv nicht. Es gibt keine generischen Datentypen wie Pointer oder was ähnliches. Insofern musst Du also für jede der drei Tariftabellen einen eigenen Dataport schreiben. Übrigens: Ist es sinnvoll, drei Tariftabellen zu führen, die absolut kongruent sind? ------- With best regards from Switzerland Marcus Fabian