Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Designfrage: Kopieren von Tabellenzeilen (https://www.delphipraxis.net/117271-designfrage-kopieren-von-tabellenzeilen.html)

uligerhardt 15. Jul 2008 08:01


Designfrage: Kopieren von Tabellenzeilen
 
Hallo zusammen!

Konkret geht's um cxGrids in einer Delphi-Anwendung, aber ich glaube, das tut hier nichts zur Sache.

Unsere Anwender wollen in einigen Tabellen Zeilen/Sätze als Vorlage zur Erfassung ähnlicher, neuer Sätze kopieren können. Bevor ich da mit der Programmierung loslege, wollte ich mal fragen, wie ihr sowas löst:
  • Geht ihr über die Zwischenablage? Dann müsste man ja damit klarkommen, dass der Benutzer auch "ungeeignete" Clipboardinhalte ins Grid einzufügen versucht. D.h. haufenweise Fehlerprüfungen oder ein eigenes Clipboardformat registrieren oder so. Klingt aufwendig. :mrgreen:
  • Wie ist das Handling für den Benutzer? Welche Zeile muss er wann markieren, welchen Tasten in welcher Reihenfolge drücken etc.?
Das klingt jetzt vermutlich nicht allzu konkret. Aber alle Szenarien, die ich so durchgespielt habe, fühlen sich irgendwie "hakelig" an, drum hoffe ich auf geniale Inspirationen von eurer Seite. :mrgreen:

Danke schon mal im Voraus,
Uli.

mkinzler 15. Jul 2008 08:05

Re: Designfrage: Kopieren von Tabellenzeilen
 
Wird eine Datenbank zur Speicherung verwendet?

uligerhardt 15. Jul 2008 08:11

Re: Designfrage: Kopieren von Tabellenzeilen
 
Zitat:

Zitat von mkinzler
Wird eine Datenbank zur Speicherung verwendet?

Upsi. Die Details vergess ich immer. :D
Nein, keine DB. Ich will wirklich nur eine ganz platte Kopie im Grid. Prüfung auf Konsistenz, Dubletten usw. kommt beim Klicken auf OK.

mkinzler 15. Jul 2008 08:21

Re: Designfrage: Kopieren von Tabellenzeilen
 
Dann würde ich die Inhalte programmatisch von einer in die andere Zeile übertragen. Die Zwischenablage ist aus den genannten Gründen nicht geeignet.

uligerhardt 15. Jul 2008 08:36

Re: Designfrage: Kopieren von Tabellenzeilen
 
Zitat:

Zitat von mkinzler
Dann würde ich die Inhalte programmatisch von einer in die andere Zeile übertragen. Die Zwischenablage ist aus den genannten Gründen nicht geeignet.

OK, da sind wir uns ja einig. Dann bliebe noch die Frage des Handlings:
  • Benutze ich Strg-C/Strg-V? Eher nicht, ist ja für Clipboardoperationen reserviert.
  • Muss der Benutzer als erstes den Quellsatz markieren und ihn dann in einer zweiten Aktion einfügen?
  • Wenn ja: Stelle ich die Markierung optisch dar (z.B. wie die Marching ants in Excel)? Wie lange bleibt ein Satz als markiert ausgewählt?
  • ...
Ich suche da so einen etablierten Standard. Orientiert ihr euch an Excel?

mkinzler 15. Jul 2008 08:44

Re: Designfrage: Kopieren von Tabellenzeilen
 
Kenn deine Grid-Komponente nicht. Normalerweise kann man einstellen, dass eine komplette Zeile markiert wird.

Union 15. Jul 2008 08:48

Re: Designfrage: Kopieren von Tabellenzeilen
 
Solen die Sätze innerhalb eines Grids kopiert werden oder willst Du eine separate "Vorlagen"-Tablle führen? Sollen ein oder mehrere Sätze auf einmal kopiert werden? Wenn es nur um die Duplizierung eines Satzes geht, könnte man das mit einer Operation bzw. Tastendruck machen: Der aktuelle Satz wird durch Betätigen eines "Duplizieren"-Buttons oder eines Hotkeys oder eines Kontextmenüs dupliziert.

uligerhardt 15. Jul 2008 08:53

Re: Designfrage: Kopieren von Tabellenzeilen
 
Zitat:

Zitat von mkinzler
Kenn deine Grid-Komponente nicht. Normalerweise kann man einstellen, dass eine komplette Zeile markiert wird.

Ja, das geht mit einer Einstellung analog TListView.RowSelect. Aber die "normale" Zeilenmarkierung ändert sich ja, wenn ich die Zielzeile meiner Kopieraktion auswähle. Ich kann sie also nicht nehmen, um dem Benutzer die Quelle der Kopieraktion anzuzeigen (darum eben die animierte Geschichte in Excel, denke ich).

uligerhardt 15. Jul 2008 08:58

Re: Designfrage: Kopieren von Tabellenzeilen
 
Zitat:

Zitat von Union
Solen die Sätze innerhalb eines Grids kopiert werden oder willst Du eine separate "Vorlagen"-Tablle führen?

Alles innerhalb einer Tabelle.
Zitat:

Zitat von Union
Sollen ein oder mehrere Sätze auf einmal kopiert werden?

Einer reicht.
Zitat:

Zitat von Union
Wenn es nur um die Duplizierung eines Satzes geht, könnte man das mit einer Operation bzw. Tastendruck machen: Der aktuelle Satz wird durch Betätigen eines "Duplizieren"-Buttons oder eines Hotkeys oder eines Kontextmenüs dupliziert.

Hmmm, das klingt interessant. Der Satz würde dann ans Tabellenende angefügt. Ich bräuchte also auch noch Auf-/Ab-Buttons wie im Suchpfad-Editor in Delphis IDE. Das würde unseren Anwender vermutlich sowieso gefallen. :-)

Union 15. Jul 2008 09:06

Re: Designfrage: Kopieren von Tabellenzeilen
 
Ist denn die Positionierung der Sätze frei bestimmbar oder durch eine Sortierung definiert? Falls letzteres, würde doch ein duplizierter Satz direkt unterhalb des aktuellen eingefügt. Es wäre nur noich darauf zu positionieren und evtl. der Edit-Modus zu aktivieren. Im cxGrid gibt es übrigens auch noch die Möglichkeit, einen "New Line" Edit-Bereich zu definieren. Die Vorlagendaten könnte man dann da rein stellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 Uhr.
Seite 1 von 2  1 2      

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