Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DevExp -> ExportGrid4ToExcel -> Integer = Text?? (https://www.delphipraxis.net/76565-devexp-exportgrid4toexcel-integer-%3D-text.html)

Bob68 6. Sep 2006 08:14


DevExp -> ExportGrid4ToExcel -> Integer = Text??
 
Hallo zusammen
ich hoffe ich bin hier im richtigen Bereich.

Ich benutze ExpressQuantumGrid 5.16 und versuche ein über Sql ein gefülltes Grid nach Excel zu übergeben.

Delphi-Quellcode:
 q3.SQL.Clear;
  q3.SQL.Add('select text1,menge'
    + ' from we101');
  q3.Active := True;

  cxgrid_a.ClearItems;
  cxgrid_a.DataController.CreateAllItems;
  cxgrid_a.ApplyBestFit();
Datenbank = DBIsam.
und anschliessend per

Delphi-Quellcode:
  ExportGrid4ToExcel(save1.FileName, cxGrid1, True, True, True);
nach Excel zu exportieren.
Alles klappt nur das Feld Menge was vom Typ Integer wird als Text nach übergeben.[u]
Kann mir jemand sagen wo der Fehler liegt.

Danke
Bob68

jensw_2000 6. Sep 2006 08:28

Re: DevExp -> ExportGrid4ToExcel -> Integer = Text??
 
Hi,

numerische Felder werden als Text exportiert wenn:

- der EditorTyp weder TcxCalcEdit noch TcxSpinEdit ist
- wenn nicht alle Werte der Spalte in einen numerischen Wert konvertierbar sind
- wenn der zugrundeleigende Datentyp nicht mit dem ausgewählten Editor übereinstimmt
(z.B. wenn TCurrencyEdit für eine Float-Spalte verwendet wurde)

Suche mal in der cxGrid-Hilfe nach "AUseNativeFormat".
Da steht noch einmal alles genau drin.



Schöne Grüße,
Jens
:hi:

jensw_2000 6. Sep 2006 08:39

Re: DevExp -> ExportGrid4ToExcel -> Integer = Text??
 
Dein Hauptproblem liegt hier:

Code:
cxgrid_a.DataController.CreateAllItems;
Damit erstellst du die Colomns des TableViews neu.
Der Editortyp wird nicht automatisch zugewiesen.

Delphi-Quellcode:
q3.SQL.Clear;
  q3.SQL.Add('select text1,menge'
    + ' from we101');
  q3.Active := True;

  cxgrid_a.ClearItems;
  cxgrid_a.DataController.CreateAllItems;

  // Du musst der Spalte "Menge" einen Editor zuweisen, der das exportieren von numerischen Werten unterstützt.

  // ungetestet
  cxgrid_a.GetColumnByFieldName('Menge').PropertiesClass := tcxCalcEdit;

  cxgrid_a.ApplyBestFit();

  ...

Bob68 6. Sep 2006 09:52

Re: DevExp -> ExportGrid4ToExcel -> Integer = Text??
 
Delphi-Quellcode:
cxgrid_a.GetColumnByFieldName('menge').PropertiesClassName := 'TcxCalcEditProperties';
So muss es aussehen für alle die das selbe Problem haben.
:hello:

jensw_2000 7. Sep 2006 07:55

Re: DevExp -> ExportGrid4ToExcel -> Integer = Text??
 
Zitat:

Zitat von Bob68
Delphi-Quellcode:
cxgrid_a.GetColumnByFieldName('menge').PropertiesClassName := 'TcxCalcEditProperties';
So muss es aussehen für alle die das selbe Problem haben.
:hello:

Geht doch :wink:

Ich wollte dich grade auf das "ColumnsMultiEditors Demo" verweisen.
Dort wird ein TcxEditRepository verwendet, um einer Spalte zur Laufzeit vordefinierte EditProperties zuzuweisen.
Hat den Vorteil, das man die EditProperties schnell zur Entwurfszeit "zusammenklicken" kann und sich zur Laufzeit etliche TypeCasts spart, falls die Standardwerte des EditProperties angepasst werden müssen.


Schöne Grüße,
Jens
:hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz