|
Von:Markus Mayer markus-newsbox@web.de An:ALL :gelesen |
erstellt am:17.06.2018 22:54:29
- #20307 in section
Antworten Antworten mit Zitat
--from Newsreader at Sonntag, 17. Juni 2018; 22:54:29-- Hallo Uwe, hallo zusammen, hab in einem cOneToManyPageFrame-Form auf der Suchenseiten ein DateTime-Feld. Die Daten sollen nach diesem Feld sortiert werden können. Wenn die Daten von einem SQLServer kommen, kann dieses Feld auch Nullwerte enthalten. Das Anlegen der temporären Indexe in cGridbase.onSetOrder funktioniert dann nicht. Schalte ich die Fehlerbehandlung aus, bekomme ich einen Fehler, dass der Index nicht erstellt werden kann. Hab nun versucht im Coment des Gridfeldes Nullwerte mit NVL abzufangen. Das funktioniert auch, die Sortierung klappt dann. Schließe und öffne ich das Form dann wieder, sind alle Daten futsch. Erst wenn ich die entsprechende Zeile in vfxres lösche, werden sie wieder angezeigt. Wie muss ich hier vorgehen, dass korrekt nach Datetime sortiert werden kann, auch wenn Nullwerte drin sind? Beste Grüße Markus Mayer |
Von:Uwe Habermann Uwe.Habermann@dfpug.de An:Markus Mayer markus-newsbox@web.de |
erstellt am:18.06.2018 08:25:59
- #20308 in section
Antworten Antworten mit Zitat
--from Newsreader at Montag, 18. Juni 2018; 08:25:59-- Hallo Markus! >>Hab nun versucht im Coment des Gridfeldes Nullwerte mit NVL abzufangen. Das funktioniert auch, die Sortierung klappt dann.<< Was machst Du da? Viele Grüße Uwe Habermann |
Von:Markus Mayer markus-newsbox@web.de An:Uwe Habermann Uwe.Habermann@dfpug.de |
erstellt am:18.06.2018 15:42:17
- #20309 in section
Antworten Antworten mit Zitat
--from Newsreader at Montag, 18. Juni 2018; 15:42:17-- Hallo Uwe, >Was machst Du da? im Comment des Gridfeldes steht ja normalerweise das Feld aus der Tabelle, bei mir also "cama_Massnahmen.ma_datum_Beginn". Ich denke, dass schreibt der Builder da rein. VFX macht in vfxObjectBase.cGridBase.onSetOrder daraus einen Indexausdruck "TTOC(" + csource + ", 1)". In der selben Funktion fängt ON ERROR _vfx_index_error = .T. Fehler ab. Ein vfxWaitWindows teilt dann nur mit, dass die Funktion nicht tut. Kommentiere ich diese Fehlerbehandlung aus, erhalte ich einen Fehler. Dieser entsteht, weil Indexe scheinbar Probleme mit Nullwerten haben. Hab also den Ausdruck im Comment erweitert auf NVL(cama_Massnahmen.ma_datum_Beginn, Datetime(1900,1,1,0,0,0)). Das funktioniert auch erst mal. In vfxRes wird dieser Wert beim Schließen des Forms gespeichert. Das wiederum führt dazu, dass beim nächsten Öffnen keine Daten mehr angezeigt werden. Meine Frage ist nun, wie ich einen funktionierenden Index auf eine DateTime-Feld hinbekomme, der auch mit Nullwerten kann, so dass die Sortierung im Suchengrid klappt. Beste Grüße Markus Mayer |
Von:Uwe Habermann Uwe.Habermann@dfpug.de An:Markus Mayer markus-newsbox@web.de |
erstellt am:19.06.2018 13:55:46
- #20310 in section
Antworten Antworten mit Zitat
--from Newsreader at Dienstag, 19. Juni 2018; 13:55:46-- Hallo Markus! >>Meine Frage ist nun, wie ich einen funktionierenden Index auf eine DateTime-Feld hinbekomme, der auch mit Nullwerten kann, so dass die Sortierung im Suchengrid klappt.<< Dein Weg mit dem Comment ist schon richtig. Leider wird das aber nicht beim erneuten Öffnen des Formulars berücksichtigt. Das Verhalten wird in der nächsten Version von VFX gefixt. Viele Grüße Uwe Habermann |
Von:Markus Mayer markus-newsbox@web.de An:Uwe Habermann Uwe.Habermann@dfpug.de |
erstellt am:20.06.2018 07:35:10
- #20317 in section
Antworten Antworten mit Zitat
--from Newsreader at Mittwoch, 20. Juni 2018; 07:35:10-- Hallo Uwe, >Das Verhalten wird in der nächsten Version von VFX gefixt. Wann kommt die? Oder kannst Du mir bis dahin einen Hotfix nennen? Beste Grüße Markus Mayer |
Von:Uwe Habermann Uwe.Habermann@dfpug.de An:Markus Mayer markus-newsbox@web.de |
erstellt am:20.06.2018 08:32:14
- #20318 in section
Antworten Antworten mit Zitat
--from Newsreader at Mittwoch, 20. Juni 2018; 08:32:14-- Hallo Markus! >>Wann kommt die?<< Das kann nur Rainer Becker beantworten. >>Oder kannst Du mir bis dahin einen Hotfix nennen?<< In Vfxobjbase.vcx - cgridbase.onloadposition findest Du: lckey = THIS.&cColumn..CONTROLSOURCE Daraus wird dieser Codeblock: lcControlName = This.&cColumn..CurrentControl loControl = This.&cColumn..&lcControlName IF !EMPTY(loControl.Comment) lcKey = loControl.Comment ELSE lckey = THIS.&cColumn..CONTROLSOURCE ENDIF Viele Grüße Uwe Habermann |
Von:Markus Mayer markus-newsbox@web.de An:Uwe Habermann Uwe.Habermann@dfpug.de |
erstellt am:20.06.2018 10:37:41
- #20319 in section
Antworten Antworten mit Zitat
--from Newsreader at Mittwoch, 20. Juni 2018; 10:37:41-- Hallo Uwe, >Daraus wird dieser Codeblock: Danke, das funktioniert. Beste Grüße Markus |