fpspreadsheet -> AutoColWidth hat Probleme bei Datum

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

fpspreadsheet -> AutoColWidth hat Probleme bei Datum

Beitrag von af0815 »

Ich glaube ich habe wieder ein Feature entdeckt. Bei der arbeit mit dem Import von 'fremden' Daten ist mir aufgefallen, das AutoColWidth bei gewissen Datumseinstellungen Probleme bekommt. In der Zelle wird dann '##########' angezeigt. Ein Demoprogramm ist angehängt.

TsCustomWorksheetGrid.AutoAdjustColumn ruft GetCellText auf, das ruft TrimToCell auf. TrimToCell liefert aber bei Überlauf '########' aus. Das ist ja meiner Meinung nach falsch, weil dadurch ja AutoAdjustCloumn nicht mit dem richtigen Wert arbeiten kann.

Der Teil von TrimToCell bis zum '//Still text too long ...' würde ja passen, aber das Ersetzen mit der Raute dürfte nicht gemacht werden. Die verschiedenen Datumversionen (aus den FormatSettings) werden ja innerhalb von ReadAsText richtig interpretiert. Daher ist nur die Ersetzung mit der Raute das Problem.
Dateianhänge
Spread01.zip
Test für das Problem mit AutoColWith und dem Datum
(7.1 KiB) 32-mal heruntergeladen
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: fpspreadsheet -> AutoColWidth hat Probleme bei Datum

Beitrag von wp_xyz »

Danke. Probier's mal mit r5735.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: fpspreadsheet -> AutoColWidth hat Probleme bei Datum

Beitrag von af0815 »

Danke, aber ich habe noch eine Frage zu den Fix.

Greift der nicht zu kurz ? In TrimToCell wird ja auch der Fall von Merged Cells, Rotationen etc. behandelt. Wäre es nicht besser gewesen, TrimToCell zu teilen und ein Teil macht die Längenüberprüfung und der zweite Teil das Schreiben des '####' ? Und in GetCellText wird das entsprechend aufgerufen.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: fpspreadsheet -> AutoColWidth hat Probleme bei Datum

Beitrag von wp_xyz »

Das muss ich mir nochmals durch den Kopf gehen lassen und bei Excel ansehen. Eigentlich soll TrimToCell den Zelltext sinnvoll verkürzen, wenn er nicht in den verfügbaren Platz passt. Zur Spaltenbreitenbestimmung brauche ich aber nur den unverkürzten Text. Damit wäre der Fix ok. Wenn der Text um 90° gedreht ist, kümmert das in AutoAdjustColumn später aufgerufene RichTextWidth darum, dass hier die Textlänge nicht genommen wird, sondern die Texthöhe. MergedCells wäre zu überlegen - der Fix zwängt den Text in eine einzige Spalte, das ist wahrscheinlich nicht richtig.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: fpspreadsheet -> AutoColWidth hat Probleme bei Datum

Beitrag von wp_xyz »

Ich denke, es passt schon. Das Verhalten ist weitgehend Excel-kompatibel (allerdings zeigen Excel und FPSpreadsheet ohne Formatierung unterschiedlich viele Dezimalstellen an). Merged cells werden von FPSpreadsheet in der aktuellen Revision bei der Spaltenbreitenberechnung ignoriert, so wie bei Excel.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: fpspreadsheet -> AutoColWidth hat Probleme bei Datum

Beitrag von af0815 »

Danke für die Info. Ich will das ganze auch verstehen, deshalb Frage ich nach. Ich kann es nur nicht mit Excel Gegenstücken, da ich Libreoffice verwende.
Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: fpspreadsheet -> AutoColWidth hat Probleme bei Datum

Beitrag von wp_xyz »

LibreOffice macht es genauso.

Antworten