15. Mai 2018 15:44
IF Tabelle2.Find('-') Then Repeat
IF Tabelle1.Find('+') Then Begin
Tabelle.Next;
Tabelle1."Nr.":=Tabelle2."Nr.";
Tabelle1."Dokument-ID":=Tabelle2."Document ID";
Tabelle1.Insert;
End;
Until Tabelle2.NEXT(+1)=0;
15. Mai 2018 16:26
IF Tabelle2.Findfirst Then Repeat
IF Tabelle1.Findlast Then Begin
Tabelle.Init;
Tabelle1."Nr.":=Tabelle2."Nr.";
Tabelle1."Dokument-ID":=Tabelle2."Document ID";
Tabelle1.Insert;
End;
Until Tabelle2.NEXT(+1)=0;
15. Mai 2018 17:18
...
WITH GenJnlLine DO BEGIN
GlobalGLEntry.LOCKTABLE;
IF GlobalGLEntry.FINDLAST THEN BEGIN
NextEntryNo := GlobalGLEntry."Entry No." + 1;
NextTransactionNo := GlobalGLEntry."Transaction No." + 1;
END ELSE BEGIN
NextEntryNo := 1;
NextTransactionNo := 1;
END;
15. Mai 2018 18:00
soll das Feld "Nr." über eine Nummernserie (wie z.B. die Rechnungsnummer bei gebuchten Rechnungen) gefüllt werden oder ist das eine fortlaufende Nummer (wie z.B.) bei den Sachposten, Artikelposten, etc.?
15. Mai 2018 23:01
IF Tabelle1.FINDSET THEN
REPEAT
IF NOT Tabelle2.GET(Tabelle1.Code) THEN BEGIN
Tabelle2.INIT;
Tabelle2."No." := Tabelle1."No.";
Tabelle2.Description := Tabelle2.Description;
Tabelle2.INSERT;
END;
UNTIL Tabelle1.NEXT = 0;
IF Tabelle1.FINDSET THEN
REPEAT
IF NOT Tabelle2.GET(Tabelle1."No.") THEN BEGIN
Tabelle2.INIT;
Tabelle2."No." := GetLastNoFromTable2;
Tabelle2.Description := Tabelle2.Description;
Tabelle2.INSERT;
END;
UNTIL Tabelle1.NEXT = 0;
LOCAL GetLastNoFromTable2() : Integer
Local Var Tabelle2
Tabelle2.Locktable;
IF Tabelle2.findlast THEN
EXIT(Tabelle2."No." + 1)
ELSE
EXIT(1);
15. Mai 2018 23:20
NoSeriesMgt.InitSeries(
NummernserieCode << Input Nummernseriencode meistens aus einer Setup Tabelle
OldNoSeries,
Date,
NewNumber << Var Parameter kommt mit Wert zurück (deiner neue Nummer)
NewNoSeries << Var Parameter kommt mit Wert zurück (neuer Nummernseriencode)
16. Mai 2018 13:58
16. Mai 2018 15:03
Der Code lies sich kompilieren, konnte ich auch ausführen, aber ich habe den Eintrag in der Tabelle nicht gefunden?
16. Mai 2018 16:39
EXIT(Tabelle2."No." + 1)
EXIT(Tabelle2."No." + '1')
16. Mai 2018 18:07
Table2.LOCKTABLE;
IF Table2.FINDLAST THEN BEGIN
EVALUATE(ConvertToInt,Table2."Nr.");
EXIT(ConvertToInt."Nr." + 1)
END ELSE
EXIT(1);
17. Mai 2018 08:20
Nody3000 hat geschrieben:Findset solltest du immer benutzen wenn du nicht genau den ersten(Findfirst) oder den letzten (Findlast) finden willst oder danach mit einer Schleife über das Recordset iterierst.
Find('-') oder ähnliches wird nur noch in speziellen fällen benutzt seit dem Dynamics Nav für SQL optimiert wurde.
17. Mai 2018 12:10
Kurz für die Lösung mit der Nummernserie brauchst du eine Setup Tabelle und eine Einrichtung
17. Mai 2018 12:50
Ps. Woran kann das liegen, dass der Eintrag in der Tabelle steht, aber nicht in der Übersicht?
17. Mai 2018 14:24
Hat die Übersicht einen SourceTableView Filter oder wird generell irgendwie gefiltert ?
Diese Setuptabelle hat dann ein Feld mit einer Tablerelation auf die Tabelle "No. Series".
Du machst dann eine Tabelle 50000
1 Code
2 My Document Nos.
17. Mai 2018 18:39
IF Tabelle1.FINDSET THEN
REPEAT
IF NOT Tabelle2.GET(Tabelle1."Nr.") THEN BEGIN
Tabelle2.INIT;
//Tabelle2."Nr." --> muss nicht übergeben werden
...
Tabelle2."Dokument-ID":=Tabelle1."Document ID";
...
Tabelle2.INSERT(TRUE);
END;
UNTIL Tabelle1.NEXT=0;
18. Mai 2018 12:02
18. Mai 2018 15:13
18. Mai 2018 15:45
IF TabelleZeile1.FINDSET THEN
REPEAT
IF NOT TabelleZeile2.GET(TabelleZeile1."Nr.") THEN BEGIN
TabelleZeile2.INIT;
TabelleZeile2."Nr.":=TabelleKopf2."Nr.";
NewLineNoReBu+=10000;
TabelleZeile2."Zeilennr.":= NewLineNoReBu;
TabelleZeile2.Kostenstelle:=TabelleZeile1.Kostenstelle;
...
//Validate():
TabelleZeile2.VALIDATE();
...
TabelleZeile2.INSERT(TRUE);
END;
UNTIL TabelleZeile1.NEXT=0;
18. Mai 2018 21:31
LOCAL TransferInvoice()
IF Tabelle1.FINDSET THEN
REPEAT
IF NOT Tabelle2.GET(Tabelle1."No.") THEN BEGIN
Tabelle2.INIT;
Tabelle2."No." := GetLastNoFromTable;
Tabelle2.Description := Tabelle2.Description;
Tabelle2.INSERT;
END;
TransferInvoiceLinesFromInvoice(Tabelle1."No."); <<< Modulare Zeilen Copy Funktion impliziert
UNTIL Tabelle1.NEXT = 0;
LOCAL TransferInvoiceLinesFromInvoice(InvoiceNo : Code[20])
Table1Line.SETRANGE(No,InvoiceNo);
IF Table1Line.FINDSET THEN
REPEAT
IF NOT Table2Line.GET(Table1Line.No,Table1Line."Line No") THEN BEGIN
Table2Line.INIT;
Table2Line.No := Table1Line.No;
Table2Line."Line No" := Table1Line."Line No";
Table2Line.Description := Table1Line.Description;
Table2Line.INSERT;
//Möglichkeit 2 Transferfields
//Table2Line.INIT;
//Table2Line.TRANSFERFIELDS(Table1Line);
//Talbe2Line.Insert;
END;
UNTIL Table1Line.NEXT = 0;
LOCAL GetLastNoFromTable() : Code[20]
IF Tabelle2.FINDLAST THEN BEGIN
EXIT(INCSTR(Tabelle2."No."))
END ELSE
EXIT('1');
22. Mai 2018 10:21
22. Mai 2018 11:11
navCH hat geschrieben:Ich habe ein Feld Kostenstelle, dass lässt sich nicht von Tabellekopf1 in TabelleKopf2 schreiben?
22. Mai 2018 11:32
IF Rechnungseingangsbuchkopf.FINDSET THEN
REPEAT
IF NOT RechEingangKopfEcht.GET(Rechnungseingangsbuchkopf."Nr.") THEN BEGIN
RechEingangKopfEcht.INIT;
RechEingangKopfEcht.Kostenstelle:=Rechnungseingangsbuchkopf.Kostenstelle;
MESSAGE(RechEingangKopfEcht.Kostenstelle); --> Message ergibt, das der Wert in RechEingangKopfEcht.Kostenstelle übergeben wurde!
RechEingangKopfEcht.VALIDATE(RechEingangKopfEcht.Kostenstelle);
RechEingangKopfEcht.INSERT(TRUE);
END;
UNTIL Rechnungseingangsbuchkopf.NEXT=0;
22. Mai 2018 11:36
RechEingangKopfEcht.VALIDATE(RechEingangKopfEcht.Kostenstelle,Rechnungseingangsbuchkopf.Kostenstelle);
22. Mai 2018 11:56
mach mal bitte so:
RechEingangKopfEcht.VALIDATE(RechEingangKopfEcht.Kostenstelle,Rechnungseingangsbuchkopf.Kostenstelle);
IF Rechnungseingangsbuchkopf.FINDSET THEN
REPEAT
IF NOT RechEingangKopfEcht.GET(Rechnungseingangsbuchkopf."Nr.") THEN BEGIN
RechEingangKopfEcht.INIT;
RechEingangKopfEcht.Kostenstelle:=Rechnungseingangsbuchkopf.Kostenstelle;
MESSAGE(RechEingangKopfEcht.Kostenstelle); --> Message ergibt, das der Wert in RechEingangKopfEcht.Kostenstelle übergeben wurde!
RechEingangKopfEcht.VALIDATE(RechEingangKopfEcht.Kostenstelle,Rechnungseingangsbuchkopf.Kostenstelle);
RechEingangKopfEcht.INSERT(TRUE);
END;
UNTIL Rechnungseingangsbuchkopf.NEXT=0;
22. Mai 2018 13:20