locked
Aktive Zelle im Grid RRS feed

  • Frage

  • Hallo zusammen,

    ich habe ein Grid und bin im Edit-Modus. Wenn ich eine Eingabe mit Enter beende, erhält die Zelle rechts daneben den Fokus. Gibt es einen Parameter, der dieses Verhalten steuert? Ziel wäre, daß DIE Zelle den Focus, in der die letzte Eingabe gemacht wurde.

    Gruß

    Christoph

    Donnerstag, 9. März 2017 09:48

Alle Antworten

  • Hallo Christoph,

    ich habe Dir (als ersten Entwurf) ein Beispiel-Formular mit einem Grid erstellt.

    - siehe hier: http://www.memotech.de/Grid.zip

    Die Enter-Taste hat Dein gewünschtes Verhalten. Trotzdem kannst Du mit der TAB-Taste, mit Shift-TAB, mit den Cursor-Tasten und mit der Maus auch jede andere Zelle ansteuern :-)

    Gruß, Stefan


    Donnerstag, 9. März 2017 23:03
  • Hi Christoph,

    vor vielen Jahren hatte ich ebenfalls den Hang zur Grid-Erfassung. Mittlerweile habe ich mich von diesem Molloch abgewendet und nutze Grids fast ausschließlich zur Anzeige und ein Klick auf eine Row stellt den Datensatz dann unterhalb des Grids in einem regulären Erfassungsbereich bereit. Seitdem gibt es erheblich weniger Streß mit hin- und hergehüpfe zwischen Zellen/Zeilen etc.

    JM2C


    Gruss / Best regards
    -Tom
    Debugging is twice as hard as writing the code in the first place.
    Therefore, if you write the code as cleverly as possible,
    you are, by definition, not smart enough to debug it. 010101100100011001010000011110000101001001101111011000110110101101110011

    Freitag, 10. März 2017 08:01
  • Hallo Stefan,

    vielen Dank für Deinen Beispielcode. Ich werde ihn in meine Maske einbauen. Dein Code ist jedenfalls sehr klein.

    Gruß

    Christoph

    Freitag, 10. März 2017 11:32
  • Hi Tom,

    ich spielte auch schon mit dem Gedanken. Es ist sicherlich einfacher (aus Programmiersicht). Aus Usersicht wäre es bequemer (für meine Anwendung), die Daten direkt zu ändern und die entsprechenden Auswirkungen sofort zu sehen. Ich hatte auch in den letzten Tagen mit dem Keyboard-Befehl rum gespielt... Der hat jetzt nicht wirklich toll zum Erfolg geführt.

    Ich werde das obige Beispiel in meine Anwendung einbauen, mal sehen was daraus wird.

    Aber auch in diesem Fall ist es für mich durchaus ein zufriedenstellendes Ergebnis, daß andere Menschen mit deutlich mehr Erfahrung auf nahezu die gleichen Probleme stoßen.

    Gruß

    Christoph

    Freitag, 10. März 2017 11:39
  • :)

    mein eigentlicher Grund von der Grid Erfassung weg zu gehen lag letztlich darin begründet, dass unsere Anwender immer mehr und mehr Spalten innerhalb des Grids haben wollen, jedoch jeder die Reihenfolge der Spalten anders priorisiert.

    Dadurch ergeben sich bzgl. der Positionierungen über ACTIVATECELL() und KEYBOARD, DOSCROLL Kommandos etc. noch weitere Probleme in der Ansteuerung der richtigen Spalte.

    Aus Platzgründen wollte ich dann ein Containerobjekt innerhalb einer Zelle platzieren um mehrzeilige Datensatzeingaben zu ermöglichen und den Anwendern das rechts/links Grid gescrolle zu ersparen. Das funzte auch soweit prima, allerdings gab es Schwierigkeiten bei Feldern die Auswahlen für Stammdatenzugriffe bereitstellen sollten. Der damit einhergehende Aufwand hat mich dazu veranlasst, die Erfassung komplett aus den Grids zu entfernen. Die Container verwende ich (wie in der Hardcopy zu sehen) allerdings weiter.

    Das was nicht in den Container reinkommt sind multiple Images. Will heißen, wenn der Status eines Feldes (-> bspw. Gefahrgutklassen) in mehreren Grafiken dargestellt werden soll, dann führt kein Weg an einer eigenen Spalte vorbei. Innerhalb eines Containers habe ich es bisher noch nicht ins Laufen bringen können.

    Zu Beginn war ich ein wenig skeptisch, ob die ausgelagerte Erfassung bei den Kunden ankommt. Allerdings war diese Sorge grundlos. Fast alle fanden diese Kombination aus kompakter Übersicht und getrennter Erfassung prima.


    Gruss / Best regards
    -Tom
    Debugging is twice as hard as writing the code in the first place.
    Therefore, if you write the code as cleverly as possible,
    you are, by definition, not smart enough to debug it. 010101100100011001010000011110000101001001101111011000110110101101110011

    Freitag, 10. März 2017 12:10
  • Hi Christoph,
    ich habe die Erfahrung gemacht, dass die Anwender mit einer Detailansicht für die aktuell markierte Datenzeile besser zurecht kommen. Das ist insbesondere dann der Fall, wenn es sich um viel Eigenschaften handelt (breite Tabelle). Links die Tabelle mit nur ein paar wichtigen Spalten und rechts die Detailansicht mit vielen Eigenschaften pro ausgewählter Zeile.

    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP)
    Meine Homepage mit Tipps und Tricks

    Freitag, 10. März 2017 13:12
  • Ich schließe mich Tom und Peter an,

    schon alleine weil das Grid sie in Excel üblich sind, das Selektieren eines beliebigen Bereichs und kopieren, nicht bereitstellt. Da selbst recht Computerinaffine Nutzer sich durchaus mit Excel auskennen, erwarten Sie solche Funktionen von Grids und kreigen sie da nicht.

    Was ich ziemlich gut hingekriegt habe ist Nutzung von Combox in Gridspalten, insbesodere nur in der Aktiven Zeile. Alleine der Look sieht so sauberer aus. Wenn man hauptsächlich nur eine Spalte füllen muß, ist das Grid auch gutes Eingabecontrol, aber selbst in so einem Fall nutze ich eher ActiveX Controls, insbesondere bei Treeviewdarstellung - nur bitte nicht gerae den MS Common Controls Treeview, da gibts weitaus besseres.

    Der einzige Nachteil ist die Datenbindung ist nicht so einfach, wobei das für das FoxPro Grid auch nur auf den ersten Blick gilt, in den wenigsten Fällen könnte cih eine Tabelle (in 4. Normalform z.B. mit Fremdschlüsseln) 1:1 an ein Grid binden, da ist je Spalte diverses einzustellen und das geht wiederum in ActiveX durchaus nicht simpler aber mit mehr Variationsmöglichkeiten. Da hat man dann z.B. auch mal ein vernünftigen Datepicker oder sonstige Controls/Modi für spezifische Wertebereiche, z.B. Slider. Die Vorteile überwiegen dann schnell den Nachteil die Daten in so ein Control erst reinschreiben zu müssen und später wieder auszulesen.

    Tschüß, Olaf.


    Olaf Doschke - Freelancer

    Freitag, 10. März 2017 17:39