In Form1 markierte Zeile von Datagridview1 einfügen in Form2 Datagridview2

  • VB.NET

Es gibt 47 Antworten in diesem Thema. Der letzte Beitrag () ist von Coldfire.

    In Form1 markierte Zeile von Datagridview1 einfügen in Form2 Datagridview2

    Hallo,

    Für Kunden " es geht über ein Angebot " muss ich immer nach verschieden Teilen suchen, es können bis zu 50-60 Stück sein.
    in Form1 habe ich Datagridview1 der mir die Treffer über einen Teil anzeigt, mit den Spalten " Artikel-NR, Menge, Bezeichnung, Einkaufs-Pr., Summe-Betrag " .
    Es können durch die Suche 4 Treffer angezeigt werden, die richtige Zeile möchte ich gerne Selectieren und in Form2 Datagritview2 übertragen.
    Nur muss ich wieder eine neue Suche über ein anderes Teil in Form1 Datagridview1 starten, und den Treffer würde ich gerne in Form2 Datagridview2 mit anfügen usw. .
    Sprich, alle Teile zusammen dann in Word exportieren. Geht das überhaupt ??

    Gruß Andi
    Daten in Form1 sammeln und in einem Atemzug nach Form2 schieben?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hi,
    verstehe deine Anwort nicht..
    Form1 ist das Startfenster der Anwendung, über ihr suche ich nach den Teilen wo auch noch andere Details zu sehen sind, in Form2 habe ich die Kundendaten mit Adressen usw. . Ich habe also in Form2 die Kunden-Adresse mit den Teilen zusammen und möchte diese nach Word Exportieren....
    Ok Form1 Startfenster, das heißt das ist immer da. Und Form2 wird vom User dann aufgerufen, nehme ich an?

    In deinem Eingangspost wolltest du noch Teile von Form1 nach Form2 übertragen, jetzt sagst du Form2 hat schon die Teile.
    Dann zeig doch mal in welcher Art die Daten im Code vorliegen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    Und gerne dazu auch, was Dich hindert das zu machen, was in Post#2 steht. Oder war das zu trivial?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @andi-n Sieh Dir mal die DataGridView.SelectedCells-Property an:
    learn.microsoft.com/de-de/dotn…lls?view=netframework-4.8
    Versuch mal, Deine Anforderung so zu formulieren, dass wir genau das verstehen, was Du meinst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi Haudruferzappeltnoch,
    sorry wenn es zu einer mißvertändlichkeit kommt....
    In Form1 habe ich die TeileDataset.Teile die mir alle Teile die wir haben anzeigt " sind bis über 7.000 Stück " .
    Habe eine suche in Form1 eingebaut die das gesuchte Teil findet.
    Dieses möchte ich gerne markieren und in Form2 in ein leeres Datagridview2 einfügen, Neue suche starten in Form1 und gefundenes Teil
    in Form2 Datagridview2 hinzufügen usw. bis ich alle Teile zusammen habe " könne bis zu 40-60 Teile sein " .
    Wenn alle Teile in Form2 Datagridview2 vorhanden sind würde ich gerne alle Teile mit Spaltenüberschrift nach Word Exportiren.

    Gruß Andi
    Ok, wie lautet der erste Schritt, an dem Du scheiterst?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hi VaporiZed,

    in Form1 mache ich die suche über ein Teil zum Beispiel " Ölfilter " alle Treffer mit Ölfilter werden mir in Form1 Datagridview1 angezeigt, da es verschiedene Ölfilter gibt
    möchte ich die richtige Zeile markieren, alles soweit gut.
    Nun würde ich gerne diese Selectierte Zeile in Form2 Datagridview2 einfügen.
    Jetzt muss ich eine Neue suche in Form1 starten über ein anderes Teil das ich suche, diese Zeile wieder markieren und in Form2 Datagridview2 mit dazu fügen
    usw. bis ich alle Teile zusammen habe.
    Ich scheitere schon daran diese Teile nach und nach in Form2 Datagriview2 einzufügen und diese dann nach Word zu Exportieren.
    Vielleicht hast du eine andere Lösung dafür ? .
    Wie gesagt es geht um ein Angebot " wir sind eine Aston Martin Werkstatt "das wir den Kunden erstellen müssen und dort sollen dann alle Teile aufgelistet sein mit
    " Artikel-NR, Menge, Bezeichnung, Einkaufs-Pr., Summe-Betrag " .
    Denke ist ein Schwierige Problem oder ??

    Gruß Andi
    Gut, das sind zwei Aufgaben und du solltest erst eine Abarbeiten, bevor du dir Gedanken um die zweite machst.
    Zur DataGridView-Schubserei:
    Du erstellst eine Spalte Anwahl vom Typ Boolean, das wird dir dann im DGV als Checkbox angezeigt. Hier setzt du überall den Haken, bei den Teilen, die du übernehmen willst. Das lässt sich nach und nach mit deiner Sucherei machen.
    TeileDataSet.Teile.Where(Function(x) x.Anwahl) ist dann eine Sammlung der ausgewählten Teile, die übergibst du an Form2 am Ende

    Mit dem Word-Export gibt es mehrere Wege.
    Ich arbeite mit den COM-Verweisen; für Word brauchst du die Microsoft Word 16.0 Object Library
    Diese Objekte machen einem die Hände schmutzig, die wollen wohl aufgeräumt zu werden wissen. (Unmanaged Code)
    Es gibt aber auch noch Wrapper und Ähnliches, davon kann ich dir aber nicht viel erzählen.

    Aber überlege mal ob du nicht lieber in ein Standard Textfile exportieren willst. Das kannst du in Word öffnen und dann immer noch als Word-Dokument abspeichern.
    Das geht viel einfacher und da muss man auch nicht aufpassen.
    Ich sehe zwei andere Möglichkeiten wären:
    • eine Zeile selektieren und die Daten ins Form2 schubsen bzw. sammeln, danach mit der nächsten Zeile weitermachen
    • Variante 2: im DGV die gewünschten Zeilen selektieren und deren Daten ins Form2 schubsen bzw. sammeln
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Moin moin
    Ich fange mal von hinten an.

    Wäre es nicht am einfachsten, die gefundenen Teile, welche in einem DGV und entsprechend in einer Binding oder List .. als "csv Datei" oder ähnliches zu exportieren und dann nach Excel / Word zu importieren?
    Oder als pdf-Datei auszugeben. Die pdf kann man ja gut dem Kunden ausdrucken, zusenden what ever....

    Zur Suche:
    Die gefundenen Teile aus DGV1 ( wo auch immer die Daten herkommen ) in eine List(Of) oder ähnliches packen und dann im Form 2 DGV 2 anzuzeigen?

    Nur mal so eine Idee. Die Profis hier, können das vielleicht besser formulieren?? :)
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    Aufgrund des Threads neulich von andi-n glaube ich nicht, dass das Schreiben von Daten in eine Word-Datei (noch) ein Problem ist. Und die Übergabe von Daten von Form1 in Form2 wurde da auch besprochen. Das Zusammensammeln der gewünschten DGV-Zeilen ist noch das Problem, oder täusche ich mich, @andi-n?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Nochmal, um alle Klarheiten zu beseitigen, ganz allgemein:
    1. gewünschte Zeilen im DGV zusammensuchen
    2. diese markieren oder einzeln merken
    3. Daten aller gewünschten Zeilen zusammenpacken
    4. Paket an Form2 schicken
    5. Daten aus dem Paket mittels Form2 in Word schreiben
    Wenn dies inhaltlich und von der Reihenfolge stimmt, bei welchem Punkt scheitert es als erstes?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hi VaporiZed,

    1) wie gesagt es sind über 7.000 Datensätze, deswegen starte ich eine Suche in Form1 über das erste Teil " Ölfilter " das mir dann in DGV1 angezeigt wird.
    Diese Zeile markieren und in Form2 DGV2 einfügen.
    2) Bevor ich eine neue Suche starte ist Form1 DGV1 Leer
    3) Neue Suche in Form1 über das zweite Teil " Kolben " starten, Zeile in DGV1 markieren und in Form2 DGV2 dazufügen usw. bis ich alle Teile dann
    zusammen habe. Ich muss halt immer eine neue Suche starten da dies am schnellsten geht ein Teil zu finden.
    4) Sind alle Teile in Form2 DGV2 vorhanden dann in Word schreiben.

    Es scheitert als erstes daran wenn ich ein gefundenes Teil in Form1 DGV1 die Zeile markiere diese in Form2 DGV2 nach und nach einfügen.
    Vielleicht ist es eventuell einfacher in Form1 ein neues DGV anzulegen und alle Teile dort hinzu zu fügen und dann nach Form2 schicken ??

    Gruß Andi
    Wenn Du Form2 mit ShowDialog aufrufst, kannst Du nicht nach und nach die DGV-Zeilen übertragen, da Du für eine neue Suche Form2 schließen musst. Und dann ist alles weg, was nach Form2 übertragen wurde.
    Speichere die gewünschten DataTable-Zeilen in einer Variable und schiebe am Ende der kompletten Auswahl alle Daten zusammen nach Form2. Weißt Du, wie das geht?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    andi-n schrieb:

    Es scheitert als erstes daran wenn ich ein gefundenes Teil in Form1 DGV1 die Zeile markiere diese in Form2 DGV2 nach und nach einfügen.
    Vielleicht ist es eventuell einfacher in Form1 ein neues DGV anzulegen und alle Teile dort hinzu zu fügen und dann nach Form2 schicken ??
    Das nimmt sich nix.
    Wir haben begriffen was das übergeordnete Konzept ist, du hast noch nicht begriffen auf welcher untergeordneten Ebene du dich bewegen musst um eine Lösung für dein Problem zu erarbeiten.

    Der User tut irgendwas und du willst darauf reagieren. Das wird dem Form auf dem der User etwas tut mittels Events mitgeteilt.
    Für Aktionen beim Markieren des Users erstellst du einen Handler für DGV1.SelectionChanged

    @VaporiZed In dem von dir verlinkten Thread siehst du es ist kein Dialog, er hat die Forms parallel laufen.

    andi-n schrieb:

    Vielleicht ist es eventuell einfacher in Form1 ein neues DGV anzulegen und alle Teile dort hinzu zu fügen und dann nach Form2 schicken ??
    Das hat zwar was mit »Datensammlung in einem Paket« zu tun, aber Controls werden bitte nicht als solche Art von Datenspeicher verwendet. Dafür gibt's Variablen mit passendem Datentyp.
    @Haudruferzappeltnoch: Oha, da hast Du recht. Was die Sache theoretisch vereinfacht, da man dann tatsächlich nach und nach die Daten von Form1 nach Form2 schieben könnte.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.