Problem beim Refresh mit Vers 1.3.8.4b

Hier werden Fragen zur Programmierung des ppsGrids...
Post Reply
rd453
Posts: 21
Joined: 01.02.2009, 18:57

Problem beim Refresh mit Vers 1.3.8.4b

Post by rd453 »

Hallo Torsten,

sorry, aber es gibt da noch ein Problem: Wenn ich beim Refresh Datenzeilen lösche, tritt eine Exception auf. Dies ist der Fall, mit der Vers. 1.3.8.4b, welche du mir empfohlen hast, weil dort die automatische Spaltenbreite funktioniert. Mit der alten Version 1.3.8.2 tritt die Exception nicht auf (dafür geht aber die automatische Spaltenbreite nicht). Vielleicht erinnerst du dich: ich wollte die Version 1.3.8.4 zuerst nicht einsetzen, weil ich ein Problem in Erinnerung hatte, welches ich aber nicht mehr benennen konnte. Nun wissen wir's wieder...

Hier die Vers 1382 VOR dem Refresh:
Image
...und NACH dem Refresh:
Image
Wunderbar.

Hier die 1384b VOR dem Refresh (echt klasse, die optimalen Spaltenbreiten)
Image
...und nachher
Image

Hier Informationen für die Exception:
************** Ausnahmetext **************
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei ppsGrid.GridCell.get__CellSpanId()
bei ppsGrid.GridCell.SpanArea()
bei ppsGrid.GridCol.set_Width(Int32 value)
bei ppsGrid.GridCell.AutoWidthItemRemove()
bei ppsGrid.GridCell.AutoSizeRemove()
bei ppsGrid.GridCell.Close()
bei ppsGrid.GridRowCollection.OnRemove(Int32 index, Object value)
bei System.Collections.CollectionBase.RemoveAt(Int32 index)
bei Mis.YoGrid.DeleteDataRows(Int32 iAb, Int32 iAnz) in ...
bei Mis.YoGrid.DeleteAllDataRows() in ...
bei Mis.YoGrid.Clear() in ...
bei Mis.YoGrid.FillViaName(YoSet oSet, Boolean bClear, Boolean bWithChildren) ...
bei Mis.YoBrowse.FuRefresh() in ...
...

************** Geladene Assemblys **************
...
ppsGrid
Assembly-Version: 1.3.8.4.
Win32-Version: 1.3.8.4.
CodeBase: file:///C:/D/Cs/Mis/out/ppsGrid.DLL.
...

Und ein paar Anmerkungen von mir:
- nach dem Drücken des Refresh-Buttons lade ich den Datenset neu und rufe die Methode FuRefresh() meiner Browse-Klasse auf (enthält und verwaltet ToolBar+ppsGrid+ein paar Dinge mehr)
- dort wird die Methode FillViaName(...) meiner Klasse YoGrid aufgerufen. YoGrid "kapselt" quasi ppsGrid.
- in FillViaName(...) wird am Anfang meine Methode Clear() aufgerufen, welche wiederum in DeleteAllDataRows() alle "Datenzeilen" löscht, und zwar von unten nach oben. Konkret bedeutet dies, bei einem 3-zeiligen Grid (eine Headerzeile plus 2 Datenzeilen), dass Row 0 die Header-Zeile ist (die bleibt unangetastet) und zunächst Row 2 und dann Row 1 gelöscht wird. Für das Löschen der Datenzeilen ist die Methode DeleteDataRows(int iAb, int iAnz) zuständig, in diesem 3-Zeilen-Beispiel also mit den Parametern DeleteDataRows(1, 2).
Gut, ist vielleicht nicht der effektivste Weg, hat sich in der Eile irgendwann so ergeben und ist bis jetzt so geblieben. Geht aber echt zackig...
- der betreffende Code in DeleteDataRows(int iAb, int iAnz) lautet:
for (int iRow = iAb+iAnz-1+oPpsGrid.FixedRowCount; iRow >= iAb+oPpsGrid.FixedRowCount; iRow--)
oPpsGrid.Rows.RemoveAt(iRow);
Es knallt beim ersten Aufruf von ...RemoveAt(iRow), im 3-Zeilen-Beispiel wäre dies ...RemoveAt(2)

Wie gesagt, mit 1382 gehts problemlos. Gut, Murphy will ich nicht übergehen, aber ich habe wirklich versucht, alle möglichen Fehler auf meiner Seite auszuschließen.

Was ich noch anfügen möchte: dies ist seit langem mal wieder eine Programmstelle, welche regelmäßige Refreshs erfordern kann. Das Programm soll dringend in den Echt-Betrieb gehen, kommt aber erst jetzt richtig in die Test-Phase. Deswegen ist dieses Verhalten beim Refresh in den letzten 2 Monaten (seit Beginn des Einsatzes der 1384) nicht aufgefallen.

Viele Grüße
Rudi

torsten
Site Admin
Posts: 92
Joined: 02.05.2006, 09:04
Spamschutz: 10
Location: Bremen

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by torsten »

Hallo Rudi
Auch hier: Schaue ich mir zum nächsten Wochenende an. Ich melde mich dann wieder...
Gruß Torsten

[edit]
Mmmmh, muss leider um ein Wochenende verschieben....
(Bin gerade dabei, mich bzgl. Programmieren selbständig zu machen)
[/edit]

torsten
Site Admin
Posts: 92
Joined: 02.05.2006, 09:04
Spamschutz: 10
Location: Bremen

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by torsten »

Hallo Rudi
Konnte am Wochenende und gestern abend den Fehler nicht finden bzw. beheben...
Bleibe aber am Ball :-)
Gruß Torsten

rd453
Posts: 21
Joined: 01.02.2009, 18:57

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by rd453 »

Wäre toll, denn die Einführung des Programms steht jetzt aktuell an. Falls du noch Informationen brauchst, melde dich.
Viele Grüße
Rudi

torsten
Site Admin
Posts: 92
Joined: 02.05.2006, 09:04
Spamschutz: 10
Location: Bremen

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by torsten »

Hallo Rudi

Habe eine neue Beta-Version vom ppsGrid aufgespielt.

Konnte den Fehler aber nicht wirklich nachvollziehen bzw. lokalisieren.
Trotzdem hoffe ich, den Fehler(??) beseitigt zu haben.
Gib' mir auf jeden Fall Bescheid, ob es funktioniert
Gruß Torsten

PS.: Beta unter http://www.ppsGrid.de/download/ppsGrid_beta.dll

torsten
Site Admin
Posts: 92
Joined: 02.05.2006, 09:04
Spamschutz: 10
Location: Bremen

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by torsten »

Nachtrag:
Den Fehler mit dem "AfterSelectionChange-Event" habe ich auch beseitigt. :-)
Gruß Torsten

rd453
Posts: 21
Joined: 01.02.2009, 18:57

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by rd453 »

Hallo Torsten,

hab's probiert. Beide Felder treten immer noch auf, das mit dem AfterSelectionChange-Event immer, das mit dem DeleteRow nur manchmal.

Viele Grüße
Rudi

torsten
Site Admin
Posts: 92
Joined: 02.05.2006, 09:04
Spamschutz: 10
Location: Bremen

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by torsten »

Hallo Rudi
hab's probiert. Beide Felder treten immer noch auf, das mit dem AfterSelectionChange-Event immer, das mit dem DeleteRow nur manchmal.
Mhhh...:-(
Ich bin zur Zeit mit Business-Plänen beschäftigt.
Ich würde gerne Mittwoch nochmal mich ums Grid kümmern, reicht dir das?
Gruß Torsten

rd453
Posts: 21
Joined: 01.02.2009, 18:57

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by rd453 »

Ja, klar.
Danke und viele Grüße
Rudi

torsten
Site Admin
Posts: 92
Joined: 02.05.2006, 09:04
Spamschutz: 10
Location: Bremen

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by torsten »

Nochmal nachgehakt:
Hast du irgendwelche Features angeschaltet: AutoWidth, CellSpan, CellMerge oä. ??
Gruß Torsten

rd453
Posts: 21
Joined: 01.02.2009, 18:57

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by rd453 »

Zunächst zum Thema AfterSelection...: wenn ich z.B. 5 Zeilen selektiere (mit Shift-Mausklick), und dann nur noch eine davon, kommt der Event bei den "ersten" 4 Zeilen korrekt hoch, jedoch genau dann nicht, wenn ich dann die 5. Zeile selektiere. Das Ganze ist "zeitlich" gemeint, d.h. wenn ich im Grid nach unten selektiere, kommt der Fehler bei der untersten (vormals selektierten) Zeile. Wenn ich nach oben selektiere, kommt der Fehler bei der obersten Zeile.

Zu Delete...:
1.) aus historischen Gründen wird in meiner Init()-Methode zunächst CellSpan auf true gesetzt, später wieder auf false, es sei denn, ich verwende es (was im Normalfall sowie in meinem Beispiel aber nicht der Fall ist. Also: CellSpan wird zunächst auf true, dann auf false gesetzt. Könnte ich leicht umbauen.
2.) CellMerge verwende ich gar nicht.
3.) AutoWidth wird in allen bzw. fast allen (je nach Verwendungsstelle) Spalten verwendet.
VG
Rudi

rd453
Posts: 21
Joined: 01.02.2009, 18:57

Re: Problem beim Refresh mit Vers 1.3.8.4b

Post by rd453 »

Nachtrag: beim Tester meines Programms beim Kunden tritt das Problem in einer bestimmten Maske auf, bei mir IN DIESER MASKE nicht.

Post Reply