Hallo Forum,
ich habe eine Tabelle Meldung und eine Tabelle Maßnahmen
eine Meldung hat eine oder mehr Maßnahmen zur Problemabstellung. Diese Maßnahmen werden terminiert.
User soll nun Problem abstellen wenn Maßnahme umgesetzt und die Wirksamkeit OK. Das habe ich so gelöst
'Maßnahmen pruefen
Public Sub Maßnahmen_pruefen()
If BS_TPMMaßnahme_TypRow Is Nothing Then Return
Dim Zustand_Checkbox As Boolean = chb_Meldung_erledigt.Checked
Dim abfr_MeldeID As Integer
Dim abfr_TPMKarte As String = tbx_Meldung_TPMKarte.Text
Dim NL = Environment.NewLine
abfr_MeldeID = CInt(tbx_Meldung_ID.Text)
'Abfrage ob Maßnahmen zur Meldung abgearbeitet sind
Dim AbfrageMaßnahme = _
From Reihe In TPMDB.TPMMaßnahme Where Reihe.RowState <> _
DataRowState.Deleted AndAlso (Reihe.TPMMeldungID = abfr_MeldeID) AndAlso ( _
Reihe.abgearbeitet <> True)
Select Reihe.ID, Reihe.Maßnahme
If AbfrageMaßnahme.Count > 0 Then
Dim Form_Rueckgabewert As Boolean
Using Dialog_Form As New frm_Dialog()
With Dialog_Form
.ShowInTaskbar = True
'Titel an frm_Dialog übergeben
.lbl_Titel.Text = "offene Maßnahmen!"
'Meldung an frm_Dialog übergeben
Dim sbMeldung As New System.Text.StringBuilder
sbMeldung.AppendFormat("{0} {1}", "Die Problemmeldung: ", abfr_TPMKarte)
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2}", "zeigt noch ", AbfrageMaßnahme.Count, "" & _
"offene Maßnahmen.")
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.Append("Bitte erst die Maßnahmen abarbeiten, dann Problem" & _
"abschließen.")
.lbl_Meldung.Text = sbMeldung.ToString
.lbl_Infobox.Text = "Problem trotzdem abschliessen?"
'Alle Maßnahmen an frm_Dialog übergeben
.ListBox_Daten.Items.AddRange(AbfrageMaßnahme.ToArray)
'frm_Dialog anzeigen
.ShowDialog(Me)
'Abfragen, ob Ja oder Nein geklickt wurde
Form_Rueckgabewert = Dialog_Form.return_wert
If Form_Rueckgabewert = True Then
MessageBox.Show(String.Concat("Problem wird abgestellt. ", NL, _
"Zeitstempel: " & Dialog_Form.TextBox1.Text, NL, " wird gespeichert"), _
"Meldung", MessageBoxButtons.OK, MessageBoxIcon.Information)
Dim Dt As Date = Convert.ToDateTime(Dialog_Form.TextBox1.Text)
Dt = Date.Parse(Dt.ToString("dd.MM.yyyy"))
tbx_Meldung_abgestellt.Text = Dialog_Form.TextBox1.Text
BS_TPMMeldung_TypRow.erledigt = True
BS_TPMMeldung_TypRow.abgestellt = Dt
Me.Cursor = Cursors.WaitCursor
'Alles speichern
Me.Validate()
BS_TPMMeldung.EndEdit()
dict_BS_Pos.Clear()
dict_BS_Pos.Add(BS_TPMMeldung, BS_TPMMeldung.Position)
If mod_Saver.SaveDataset(Me.TPMDB, dict_BS_Pos, _
TPMMeldungTableAdapter.Adapter) = False Then
Return
End If
Me.Cursor = Cursors.Default
dgv_TPM_Meldungen.Refresh()
dgv_TPM_Meldungen.Enabled = True
pnl_TPM_Meldung_Menue.Enabled = True
Else
dgv_TPM_Meldungen.Refresh()
dgv_TPM_Meldungen.Enabled = True
pnl_TPM_Meldung_Menue.Enabled = True
End If
End With
End Using
End If
'Abfrage Null Rückgabe ausgeben, wenn keine offenen Maßnahmen gefunden wurden
If AbfrageMaßnahme.Count = 0 Then
Dim Form_Rueckgabewert As Boolean
Using Dialog_Form As New frm_Dialog()
With Dialog_Form
.ShowInTaskbar = True
'Titel an frm_Dialog übergeben
.lbl_Titel.Text = "keine offenen Maßnahmen!"
'Meldung an frm_Dialog übergeben
End Sub Nun kann es ja sein das 3,4 Maßnahmen gesetzt werden das Problem evtl. mit der 2,3 Maßnahme abgeschlossen werden könnte, wie in der Prüfung zu sehen.
wie könnte man da nun die verbleibenen Maßnahmen die noch nicht abgearbeitet wurden entfernen die werden ja nicht mehr benötigt? Und müssten so auch aus den offenen Maßnahmen verschwinden da entfernen erlaubt wird (wurde). Problem wird abgeschlossen mit Stempel wie in der Prüfung zu lesen. |