5. April 2018 13:22
<LineNumber>10000</LineNumber>
.
<LineNumber>20000</LineNumber>
.
<LineNumber>30000</LineNumber>
.
<LineNumber>40000</LineNumber>
.
<LineNumber>50000</LineNumber>
.
<LineNumber>60000</LineNumber>
.
<LineNumber>70000</LineNumber>
.
<LineNumber>80000</LineNumber>
.
<LineNumber>90000</LineNumber>
.
<LineNumber>100000</LineNumber>
.
<LineNumber>110000</LineNumber>
.
<LineNumber>120000</LineNumber>
<LineNumber>1</LineNumber>
.
<LineNumber>2</LineNumber>
.
<LineNumber>3</LineNumber>
.
<LineNumber>4</LineNumber>
.
<LineNumber>5</LineNumber>
.
<LineNumber>6</LineNumber>
.
<LineNumber>7</LineNumber>
.
<LineNumber>8</LineNumber>
.
<LineNumber>9</LineNumber>
.
<LineNumber>10</LineNumber>
.
<LineNumber>11</LineNumber>
.
<LineNumber>12</LineNumber>
5. April 2018 14:08
5. April 2018 15:58
5. April 2018 21:54
Timo Lässer hat geschrieben:Du könntest natürlich die Zeilennummer einfach durch 10000 teilen und das Ergebnis exportieren.
Aber Vorsicht!
Was machst du, wenn ein Anwender eine weitere Zeile zwischen zwei bereits vorhandenen Zeilen einfügt (Strg+Einfg)?
Dann hast du eine Zeile mit Zeilennummer 15000.
Wiederholt er das, dann ergibt das die Zeilennummer 12500.
IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
IF "Sales Shipment Line"."No." <> '' THEN BEGIN
"Sales Shipment Line"."Line No." := "Sales Shipment Line"."Line No." / 10000;
END;
END;
6. April 2018 06:04
Ted hat geschrieben:Wenn aus:
10000
11000
11500
12000
das werden kann:
1
2
3
4
kannst du auch einfach ein Integer pro Zeile hochzählen
6. April 2018 09:44
Raban hat geschrieben:die Zeilennummer einfach durch 10000 teilen und das Ergebnis exportieren habe ich schon probiert. Leider wird dann man meine XML Datei mehrere Gigabyte groß und nimmt kein Ende.
Da muss ich den NAV Dienst stoppen auf meine Testmaschine damit es aufhört.
"Sales Shipment Line" - Export::OnAfterGetRecord()
IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
IF "Sales Shipment Line"."No." <> '' THEN BEGIN
LineNo := "Sales Shipment Line"."Line No." / 10000;
END;
END;
LineNo += 1;
6. April 2018 13:43
Ted hat geschrieben:Raban hat geschrieben:die Zeilennummer einfach durch 10000 teilen und das Ergebnis exportieren habe ich schon probiert. Leider wird dann man meine XML Datei mehrere Gigabyte groß und nimmt kein Ende.
Da muss ich den NAV Dienst stoppen auf meine Testmaschine damit es aufhört.Wo hast du den Code denn hingeschrieben?
Ich würde eine globale Variable 'LineNo' vom Typ Decimal anlegen diese im XMLPort hinzufügen und dann im "Export::OnAfterGetRecord()" deinen Code schreiben
- Code:
"Sales Shipment Line" - Export::OnAfterGetRecord()
IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
IF "Sales Shipment Line"."No." <> '' THEN BEGIN
LineNo := "Sales Shipment Line"."Line No." / 10000;
END;
END;
Die von mir vorgeschlagene Lösung wäre ähnlich. Du musst nur LineNo als Integer machen und dann statt der Division einfach
- Code:
LineNo += 1;
Wo hast du den Code denn hingeschrieben?
LineNumber - Export::OnBeforePassVariable()
LineNumber - Export::OnBeforePassField()
IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
IF "Sales Shipment Line"."No." <> '' THEN BEGIN
LineNo +=1;
END;
END;
<Line>
<Line-Item>
<LineNumber />
<EAN>4030716001042</EAN>
<QuantityDespatched>1</QuantityDespatched>
<UnitOfMeasure>PCE</UnitOfMeasure>
</Line-Item>
</Line>
20. April 2018 09:09
LineNumber := '';
IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
IF "Sales Shipment Line"."No." <> '' THEN BEGIN
LineNumber := FORMAT("Sales Shipment Line"."Line No." / 10000);
END;
END;