vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
Daten von einem Grid in ein anderes übernehmen 
Autor: crosstravel
Datum: 04.03.17 15:52

Hallo,

ich knorze seit einiger Zeit an einem Problem herum, bei dem ich für Eure Hilfe dankbar wäre.

Ich habe zwei Grids. Grid1 stelle ich einen Bussitzplan mit Sitznummern, Namen usw. dar. Der
Benutzer in einem Reisebüro sieht sofort, welcher Sitzplatz im Bus noch frei ist.

Grid2 darunter dient der Erfassung einer neuen Kundenbuchung. Teil dieser Buchung ist auch die
Reservation eines freien Sitzplatzes. Ich stelle mir vor, dass der Sachbearbeiter auf einen der
freien Sitzplätze klickt und die Sitznummer wird sofort in das Buchungsgrid übertragen. Das Klicken
in Grid1 inkl. der Erkennung des Sitzplatzes funktioniert - nur die Übernahme in das Grid2 macht
Probleme. Wie realisiere ich das und wo siedle ich die Funktion an (Before_Update oder ...)

Vielen Dank
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten von einem Grid in ein anderes übernehmen 
Autor: Franki
Datum: 06.03.17 02:31

Hallo Rainer,

wie lautet dein Code für die Übernahme von Grid 1 zu Grid 2?

Mit xxx*.Update der Grids würde ich da gar nichts machen lediglich den Wert übertragen. Denn die Buchung ist dann ja noch nicht gespeichert nur weil in der Eingabemaske der Sitzplatz eingetragen bzw. übernommen wird.

Und direkte Übernahme sollte sowieso erst dann erfolgen wenn die Erfassungsmaske final gespeichert wird. Was soll passieren wenn z.B. zwei Sachbearbeiter Kunden beraten und beide den gleichen noch freien Sitzplatz übernehmen wollen ohne dass die Reservierung endgültig abgeschlossen wird?

Wenn der erste Sachbearbeiter die Buchung final abschließt wird nochmals geprüft, ob der Sitzplatz noch frei ist, egal ob er durch den anderen Sachbearbeiter schon "vorgemerkt" worden ist. Wer zuerst kommt malt zuerst.

Sonst kann es zu einer Panne kommen wie vor zwei Jahren bei einem namhaften Fernbus Unternehmen wo Doppelreservierungen vorgekommen sind.

Ich habe vor ca. 10 Jahren mal eine Software für eine Autovermietung geschrieben wo online Reservierungen möglich sind. Da hatte ich genau dieses Problem in der Testphase.

Gruß
Franl
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten von einem Grid in ein anderes übernehmen 
Autor: crosstravel
Datum: 06.03.17 07:56

Hallo Franki,

danke für Dein Antwort. Nachstehend der Code, welchen ich für die Sitzreservierung einsetze. Dabei enthält sevGrid3 den Busspiegel mit den freien und gebuchten Sitzplätzen, über sevGrid4 erfolgt die
Buchung des Teilnehmers mit Name, einstieg, Sitzplatz usw.

Der Benutzer arbeitet mit sevGrid4. in der Variablen Grid4Row ist die aktuelle Row enthalten. Während
der Buchung klickt er auf einen freien Sitzplatz in sevGrid3. Nun soll die dort enthaltene Sitznummer
(z.B. 5A) im Grid4 in der Spalte 7 angezeigt werden - was es aber nicht tut. Anschliessend sollte der
Cursor in die Spalte 8 gehen.



Private Sub sevGrid3_CellClick(ByVal nRow As Long, _
  ByVal nCol As Long, _
  ByVal Button As Integer, _
  ByVal Shift As Integer)
 
  If Button <> vbRightButton Then
     sSitzbuchung = ""
     If nCol = 3 Then
        If sevGrid3.Text(nRow, 4) <> "0" Or sevGrid3.Text(nRow, 5) <> 0 Then
           MsgBox "Der Platz " & sevGrid3.Text(nRow, 3) & " ist nicht buchbar"
           Exit Sub
        Else
           sSitzbuchung = sevGrid3.Text(nRow, 3)
           SitzBuchen
           Exit Sub
        End If
     Else
        If nCol = 9 Then
           If sevGrid3.Text(nRow, 10) <> "0" Or sevGrid3.Text(nRow, 11) <> 0 Then
              MsgBox "Der Platz " & sevGrid3.Text(nRow, 9) & " ist nicht" & _
                "buchbar"
              Exit Sub
           Else
              sSitzbuchung = sevGrid3.Text(nRow, 9)
              SitzBuchen 
              Exit Sub
           End If
        Else
           If nCol = 16 Then
              If sevGrid3.Text(nRow, 17) <> "0" Or sevGrid3.Text(nRow, 18) <> 0 Then
                 MsgBox "Der Platz " & sevGrid3.Text(nRow, 16) & " ist nicht" & _
                   "buchbar"
                 Exit Sub
              Else
                 sSitzbuchung = sevGrid3.Text(nRow, 16)
                 SitzBuchen
                 Exit Sub
              End If
           Else
              If nCol = 22 Then
                 If sevGrid3.Text(nRow, 23) <> "0" Or sevGrid3.Text(nRow, _
                   24) <> 0 Then
                    MsgBox "Der Platz " & sevGrid3.Text(nRow, 22) & " ist nicht" & _
                    "buchbar"
                    Exit Sub
                 Else
                    sSitzbuchung = sevGrid3.Text(nRow, 22)
                    SitzBuchen
                    Exit Sub
                 End If
              End If
           End If
        End If
     End If
  End If
End Sub
 
Private Sub SitzBuchen()
    With sevGrid4
        If .IsEditMode() = MODE_EDIT Then
           .Text(Grid4Row, 7) = sSitzbuchung
        Else
           .CellNew("RtnSitzHin") = sSitzbuchung
        End If
    End With
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten von einem Grid in ein anderes übernehmen 
Autor: Franki
Datum: 07.03.17 01:54

Hallo,

sag mal, blickst du eigentlich durch deinen eigenen Programmcode noch durch wenn du mal zwei Wochen Urlaub machst?

Das ist ja der Hammer, nur nichtssagende Bezeichnungen von Steuerelementen bzw. Teilen davon.

Wer soll denn mit Beizeichnungen wie Grid 1,2,...x oder Spalte/Zeile 1,2...x klar kommen? Kein Mensch der dein Programm nicht kennt kann wissen was das alles bedeuten soll. Und selbt wenn, dann würde das jede Menge Zeit bedeuten sich das daurch zu arbeiten.

Es war ja schon immer so, dass man Steuerelemente auch sinnvoll benennen kann. Also z.B. sevGrid_Sitzplatz, sevGrid_Bus, sevGrid_Reservierungen oder was auch immer.

Und wenn man mit Zahlen arbeitet für Spalten kann man auch Kommentare hinterlegen was die jeweilige Spalte bedeutet.

If nCol = 9 Then ' Erklärung was Spalte 9 bedeutet
Sprechende Benennung für Steuerelemente steht schon seit über 20 Jahren in jedem Lehrbuch für Anfänger und das gilt auch heute noch. Automatische Benennung schön und gut, aber das ist immer nur ein Vorschlag. Du machst es dir und uns einfacher wenn du deine Steuerelemente sinnvoll benennst.


Aber unabhängig davon erkenne ich an deinem Code weder woher die Daten der Grids stammen (also wie und wann eingelesen) noch wie Änderungen gespeichert werden.

Das ist aber der entscheidende Punkt deiner Frage.
Ich erkenne jetzt noch nicht wie du das machst. Denn Überhahme von einem Grid ins andere per Code ist eine Sache, aber da wird dann ja noch nichts gespeichert. Im Multiuser Betrieb geht das krachen wenn sich zwei User ins Gehege kommen.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel