[gelöst]Tabelle 'ZV-Wertgrenze Bank'

5. März 2018 15:19

Moin.

Ich möchte in der Tabelle 'ZV-Wertgrenze Bank' im Feld 'DTA-Sicherungsverzeichnis' das Verzeichnis eintragen.
Da die Tabelle nicht mandantenübergreifend ist, werde ich das Verzeichnis in jeden Mandanten einzeln importieren müssen?
Wie bekomme ich das Verzeichnis elegant in das Feld der Tabelle, über alle Mandanten? Das Verzeichnis ist immer das gleiche, was ich dort eintragen muss.

Grüße
Ch.
Zuletzt geändert von navCH am 7. März 2018 15:11, insgesamt 1-mal geändert.

Re: Tabelle 'ZV-Wertgrenze Bank'

5. März 2018 15:50

Ich schreibe einen Report und gehe über Company-Tabelle in jeden Mandanten und befülle 'ZV-Wertgrenze Bank'.
In den Spalten wo schon ein alter Pfad eingetragen ist, muss ich den überschreiben.
Ich muss den Pfad in die existierenden Records, in der Tabelle ZV-Wertgrenze Bank eintragen.

Grüße
Ch.

Re: Tabelle 'ZV-Wertgrenze Bank'

5. März 2018 16:04

navCH hat geschrieben:In den Spalten wo schon ein alter Pfad eingetragen ist, muss ich den überschreiben.


Du meinst sicherlich, in den Datensätzen, wo bereits ein Pfad eingetragen ist....
wenn du den eh überschreiben musst, dann ist das kein gesonderter Fall, den du betrachten musst -> einfach immer deinen Pfad in das entspr.
Feld eintragen.

Wie du schon alleine festgestellt hast, kannst du die Company-Table durchlaufen, um jeden Mandanten zu erwischen.
Per ChangeCompany dann dein DataItem auf den aktuellen Mandanten der Company-Table setzen.

Ich bin mir grad nur nicht sicher, ob dein 2. Eintrag jetzt die Lösung war und ich hier "unnötig" schreibe, oder ob er eine Frage beihnaltet, die ich nur nicht ausmachen konnte :oops:

PS: Report 90 kannst du als "kleine" Hilfestellung nutzen - der hat zwar kein Company-DataItem, dafür aber "Business Unit", was in dem Fall fast das gleiche ist

Re: Tabelle 'ZV-Wertgrenze Bank'

5. März 2018 16:43

Hallo sweikelt!

Die erste Antwort von mir, war jetzt nicht so eindeutig formuliert.
Ich hatte nur meinen Gedanken aufgeschrieben, um euch /dir mitzuteilen wie ich vorgehen möchte.

Deine Tips:
sweikelt hat geschrieben:wenn du den eh überschreiben musst, dann ist das kein gesonderter Fall, den du betrachten musst -> einfach immer deinen Pfad in das entspr.
Feld eintragen.

und
PS: Report 90 kannst du als "kleine" Hilfestellung nutzen - der hat zwar kein Company-DataItem, dafür aber "Business Unit", was in dem Fall fast das gleiche ist

helfen mir schonmal weiter! Ich schaue in Report 90 rein.
Vielen Dank! :-D

Grüße,
Christian

Re: Tabelle 'ZV-Wertgrenze Bank'

6. März 2018 10:01

Guten Morgen.

Per ChangeCompany dann dein DataItem auf den aktuellen Mandanten der Company-Table setzen.

Kann ich das Changecompany(Company.Name) in das DataItem ZV-Wertgrenze Bank setzen?
So wie:
Code:
ZV-Wertgrenze Bank - OnPostDataItem()
CHANGECOMPANY(Company.Name);


Grüße
Christian

Re: Tabelle 'ZV-Wertgrenze Bank'

6. März 2018 10:51

Wenn ich das Insert auf das Feld "DTA-Verzeichnis" in der Tabelle "ZV-Wertgrenze Bank" durchführe bekomme ich die Meldung:
'ZV-Wertgrenze Bank' ist bereits vorhanden. Identifizierte Felder und Werte: ZV-Definition='SPK', Bankkontonr.='100'

Das ist auch völlig korrekt, da das Record ja in der Tabelle existiert. Ich möchte ja in das Feld "DTA-Verzeichnis" von diesem Record den wert einfügen!?
Muss ich die Tabelle evtl. mit Setfilter filtern?

Mein Code:
Code:
OnPostReport()
Company - OnPreDataItem()
Company - OnAfterGetRecord()
Company - OnPostDataItem()
ZV-Wertgrenze Bank - OnPreDataItem()

ZV-Wertgrenze Bank - OnAfterGetRecord()
"ZV-Wertgrenze Bank".INIT;
"ZV-Wertgrenze Bank"."DTA-Verzeichnis":='\\SERVER\transfer\wert';
"ZV-Wertgrenze Bank".INSERT;

ZV-Wertgrenze Bank - OnPostDataItem()
CHANGECOMPANY(Company.Name);


Grüße
Christian

Re: Tabelle 'ZV-Wertgrenze Bank'

6. März 2018 13:42

Warum machst Du dann ein INSERT, wenn es den Record schon gibt?

Code:
"ZV-Wertgrenze Bank".INSERT


Ein Modify tuts ja auch.

Nachtrag: Aber kein INIT() vor dem Modify, sonst sind dann alle Felder leer!!
Und das hier:
Code:
CHANGECOMPANY(Company.Name);

ist am völlig falschen Ort

Gruss

Re: Tabelle 'ZV-Wertgrenze Bank'

6. März 2018 14:32

Und das hier:
Code:
CHANGECOMPANY(Company.Name);

CHANGECOMPANY(Company.Name);

ist am völlig falschen Ort

Etwa Company - OnPostDataItem()?

Grüße
Christian

Re: Tabelle 'ZV-Wertgrenze Bank'

6. März 2018 14:41

@martinst: hat geklappt!
Du hast völlig recht mit dem Modify!

Vielen Dank und Grüße
Christian

Re: Tabelle 'ZV-Wertgrenze Bank'

6. März 2018 14:54

Lösung:

OnPreReport()
Code:
IF comp.FIND('-') THEN REPEAT
    IF zv.FIND('-') THEN REPEAT
        //zv.INIT;
        zv."DTA-Verzeichnis":='\\SERVER\transfer\';
        zv.MODIFY;
    UNTIL zv.NEXT(+1)=0;
    zv.CHANGECOMPANY(comp.Name);
UNTIL comp.NEXT(+1)=0;


Grüße
Christian

Re: Tabelle 'ZV-Wertgrenze Bank'

7. März 2018 10:29

Moin.

Ein Fehler habe ich da vielleicht doch noch gefunden.
Ich habe gemerkt, dass ich das Feld 'DTA-Verzeichnis' in allen Mandanten modifizieren konnte, außer im letzten Mandanten, der blieb leer!
Obwohl ich ja alle Zeilen in der Company Tabelle durchlaufe?

Code:
OnInitReport()
OnPreReport()

IF comp.FIND('-') THEN REPEAT
    IF zv.FIND('-') THEN REPEAT

        zv."DTA-Verzeichnis":='\\SERVER\Transfer\';
        zv.MODIFY;
    UNTIL zv.NEXT(+1)=0;
    zv.CHANGECOMPANY(comp.Name);
UNTIL comp.NEXT(+1)=0;

OnPostReport()


Wie kann ich den letzten Mandanten auch mit dem Modify durchlaufen?
Meine Idee ist, nach der Schleife von Company, nochmal ein Changecompany auf den letzten Mandanten aufzurufen
und die zv Tabelle nochmal zu modifizieren?
Siehe Code:
Code:
Documentation()
OnInitReport()
OnPreReport()

IF comp.FIND('-') THEN REPEAT
    IF zv.FIND('-') THEN REPEAT

        zv."DTA-Verzeichnis":='\\SERVER\Transfer\';
        zv.MODIFY;
    UNTIL zv.NEXT(+1)=0;
    zv.CHANGECOMPANY(comp.Name);
UNTIL comp.NEXT(+1)=0;

Changecompany(lastMandant);
IF zv.FIND('-') THEN REPEAT
    zv."DTA-Verzeichnis":='\\SERVER\Transfer\';
    zv.MODIFY;
UNTIL zv.NEXT(+1)=0;

OnPostReport()


Globals:
Name DataType Subtype Length
comp Record Company
zv Record ZV-Wertgrenze Bank


Beste Grüße
Christian

Re: Tabelle 'ZV-Wertgrenze Bank'

7. März 2018 11:45

Schreibe statt

Code:
UNTIL comp.NEXT(+1)=0;


Code:
UNTIL comp.NEXT=0;


Dann klappt das.

gruss

Re: Tabelle 'ZV-Wertgrenze Bank'

7. März 2018 13:04

Mit
Code:
UNTIL comp.NEXT=0;

wurde es im letzten Mandanten auch nicht modifiziert!

Gruß
Christian

Re: Tabelle 'ZV-Wertgrenze Bank'

7. März 2018 13:13

Weil das Changecompany hinter dem Anweisungsblock steht.

Re: Tabelle 'ZV-Wertgrenze Bank'

7. März 2018 15:06

Weil das Changecompany hinter dem Anweisungsblock steht.

Das wars!
Vielen Dank!

Grüße
Christian