+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Teilweise keine Daten mehr auf letzter Seite (Core)


(Guest) #1

Hallo,

ich habe über die Core-Funktionen die Standard Druckschleife Realisiert,
wie sie in sämtlichen Dokumentationen zu finden ist.

Darüber drucke ich eine oder mehrere Rechnungen (mit ein oder mehr Seiten).

Soweit funktioniert das auch alles.

Nun habe ich das Problem, dass unter ganz bestimmten Umständen Teile der Daten (z.B. das Datum für den Druckkopf “vergessen” werden.)

Beispiel Datum: es wird beim allerersten Aufruf von

in das Feld der Wert ‘40612,4232638889’ bei sämtlichen folgenden Aufrufn, und vorallem bei der Deklaration der Variable der korrekte Wert z.B. ‘10.03.2011 13:07:01’.

Das Datum wird im Druckkopf (in einem Textfeld) ausgedruckt.
Darunter in verschachtelten Tabellen die Rechnungsdetails.

Seitenumbrüche werden nur durch die Tabelle ausgelöst.
Und Funktionieren auch.

Wenn auf der letzten Seite nur noch der Tabellenfuß (Summenzeilen) der Äußeren Tabelle gedruckt wird, wird das Datum nicht korrekt, sondern mit ‘40612,4232638889’ oder dem formatierten Datum: ‘31.12.-4714’ ausgwiesen.

Andere Variablen sind plötzlich ‘(NULL)’ das Groß der Variablen hat jedoch den richtigen Inhalt !!

Hat irgendjemand ne Idee woran das liegen könnte,
ist es bekannt (wurd es irgendwann gefixt meine Subscription ist mit dem initialen Release von LL15 ausgelaufen)


(Guest) #2

Hallo,

keine Ahnung sowas hatte ich noch nie, aber bei so einem Problem würde ich unbedingt mit Debugging (LlSetDebug) und debwin testen und im log dannach suchen, ob die Variable überschrieben wird oder ob generell alle Variablen neu gesetzt werden (LlDefineVariableStart), das gibt auf jeden Fall erste Anhaltspunkte oder sogar die Lösung.

Gruss,
Harry


(Guest) #3

Hallo,

natürlich hatte ich bereits per Debug kontrolliert.
Es wurde direkt zu Beginn das Feld auf diesen Wert gesetzt.

Niemals aber die Variable !
D.H. im klartext; aus welchen Gründen auch immer, greift List&Label nach dem Seitenwechsel auf die Felder zu, die eigentlich in dem Kontext gar nicht gefüllt sein sollten…

Ich verstehe es nicht!

hab nun den Aufruf von

Fields.AddFromDataRow(Row);

mit:

foreach (DataColumn dataColumn in Row.Table.Columns)
{
    LlFieldType fielType = LlFieldType.Unknown;
    if (dataColumn.DataType == typeof(Int32) || dataColumn.DataType == typeof(decimal))
        fielType = LlFieldType.Numeric;
    else if (dataColumn.DataType == typeof(string))
        fielType = LlFieldType.Text;
    else if (dataColumn.DataType == typeof(Guid))
        fielType = LlFieldType.Unknown;
    else if (dataColumn.DataType == typeof(bool))
        fielType = LlFieldType.Boolean;
    else if (dataColumn.DataType == typeof(DateTime))
    {
        fielType = LlFieldType.Date_DMY;
    }
    else
        fielType = LlFieldType.Unknown;

    string value = (Row[dataColumn.Caption] == DBNull.Value) ? "(NULL)" : Row[dataColumn.Caption].ToString();
    //string value = Row[dataColumn.Caption].ToString();
    _listLabel.Core.LlDefineFieldExt(Row.Table.TableName + "." + dataColumn.Caption, value, fielType);
}

ist nicht wirklich fein, aber:

  • funktioniert
  • die Funktion wird -denk ich- im hintergrund auch nichts groß anderes machen… oder ?