czwartek, 31 października 2013

Dalszy ciąg "Komponent1" (2)

Poniżej znajduje się procedura obliczenia energii z całego dnia.
Private Sub btnOblicz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOblicz.Click
      If txtWaga.Text = "" Then 
          MessageBox.Show("Wpisz wagę produktu w gramach.", Uwaga")
           Exit Sub
    End If
    sit = lstMeal.Items.Add(txtNazwao.Text)      ' Wpisanie nazwy wybranego produktu do
                                                                              ' tabeli posiłku o nazwie lstMeal
   Dim Oen, Sen As Integer                                 ' Deklaracja wartości Oen - energia produktu
                                                                              ' o określonej wadze, Sen - suma energii
   Oen = (txtEno.Text * txtWaga.Text) / 100      ' Obliczenie energii
   Oen = Format(Oen, "###")                              ' sformatowanie obliczonej energii
   sit.Subitems.Add(Oen)                                     ' Wpisanie obliczonej energii do tabeli
   Sen = txtSen.Text                                             ' Przejęcie wartości sumy energii
                                                                              ' Początkowa wartość Text w okienku
                                                                              ' powinna być wpisana 0
   Sen = Sen + Oen                                              '  Suma
   Sen = Format(Sen, "###") 
   txtSen.Text = Sen
 End Sub                                                               ' koniec procedury
 

środa, 30 października 2013

Dalszy ciąg programu "Komponent1"



Powyżej przedstawiony jest ostateczny formularz programu. Do poprzedniego formularza należy dodać następujące okienka:
1 Okienko tekstowe txtWaga
2. Dodaj przycisk btnOblicz, text "Obliczenie" i kliknij w ten przycisk dwa razy, w celu dodania procedury.
3. Poniżej dodaj dwa przyciski:
                  a. btnKaswszystko , tekst "Kasowanie całego posiłku" i kliknąć w niego dwa razy.
                  b. btnKaspoj , tekst "Kasowanie pojedyńczego" i kliknąć w niego dwa razy.
4. Dodaj okno listview o nazwie lstMeal , tak jak na formularzu i kliknij w niego też dwa razy.
5. Dodaj też okienko tekstowe txtSen
6. Dodaj przycisk btnzapismeal , kliknij w okno dwa razy
7. Dodaj btnWykres
8. Dodaj btnEnd


sobota, 26 października 2013

Wyświetlanie w oknach wybranego produktu z tabeli

Poniżej tabeli pokarmowej lstPokarm  umieszczone są okna do wyświetlania wybranego produktu z tabeli.  Należy kliknąć dwa razy w okno tabeli i następnie uzupełnić kod.
Private Sub lstPokarm_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstPokarm.SelectedIndexChanged
    Dim bf As ListView.SelectedListViewItemCollection = _
                    lstPokarm.SelectedItems
     For Each sit In bf
        txtNazwao.Text = sit.Subitems(0).Text)
        pEn = Decimal.Parse(sit.Subitems(1).Text)
        txtEno.Text = Ctype(pEn, String)
    Next
End Sub
Po uruchomieniu programu (klawisz F5), można sprawdzić działanie programu. Wyświetlenie wybranego produktu z tabeli, umożliwia przeliczenie danych po wprowadzeniu wagi.
W następnym razem przedstawię sposób obliczeń.

Kasowanie wybranego produktu z zapisanej bazy

Poniżej przedstawiam kod do usuwania zapisanego produktu z  bazy. W tym celu należy kliknąć dwa razy w okienko "Kasowanie". Wyświetli się wtedy procedura, do której należy dopisać poniższy kod.
Private Sub_Kas_Click(ByVal sender As Object, ByVal e As System.EventsArgs) Handles btnKas.Click
            If lstPokarm.SelectedItems.Count = 0  Then            ' Gdy nie jest wybrany produkt 
                 MessageBox.Show("Wybierz produkt z tabeli do skasowania", "Uwaga")
                Exit Sub
            End If
            If lstPokarm.SelectedItems.Count <> 0 Then           ' Gdy wybrano
                 msg = " Czy na pewno chcesz skasować ten produkt z bazy"
                 tyt = " Kasowanie"
                 styl =MsgBoxStyle.DefaultButton2 Or _
                          MsgBox.Style.YesNo
                res = MsgBox(msg, styl, tyt)
                If res = MsgBoxResult.No Then
                         Exit Sub
               Else
                       For Each i As ListViewItem In lstPokarm.SelectedItems        ' Otwarcie pętli
                          lstPokarm.Items.Remove(i)                   ' Skasowanie z tabeli produktu
                    Next
                    Kill("Pokarm")                                            ' Skasowanie calej bazy
                   FileOpen(1, "Pokarm", OpenMode.Append)     ' Zapis zawartości tabeli
                         For i = 0 To lstPokarm.Items.Count() - 1
                             Write(1, lstPokarm.Items(i).SubItems(0).Text)
                              Write(1, lstPokarm.Items(i).SubItems(1).Text)
                          Next
                     FileClose(1)                                         ' Zamknie pliku
                       End If
                      txtNazwao.Text = "": txtEno.Text = ""             ' wygaszenie odczytu poniżej tabeli
        End If
         Odczyt()                                                                               ' Ponowne odczytanie bazy w tabeli
        End Sub

piątek, 25 października 2013

Procedura dotycząca wpisywania wartości liczbowych

Procedura ta ma za zadanie informowanie użytkownika programu o błędnym wpisaniu do okienka textbox zamiast wartości liczbowych,  innych znaków. Tak jak w poprzedniej procedurze, należy kliknąć dwa razy w okienko i po wyświetleniu procedury wpisać kod.
Private Sub txtEnz_TextChanged (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtEnz.TextChanged
       If txtEnz.Text  = "" Then Exit Sub
      If Not IsNumeric(txtEnz.Text) Then
           MessageBox.Show("Wpisz tutaj tylko wartość liczbową.","Uwaga")
           txtEnz.Text  = ""
           Exit Sub
    End if 


środa, 23 października 2013

Wykrywanie błędów przy zapisie do bazy

Przy zapisie nowego produktu do bazy, mogą wystąpić błędy, lub powtórny zapis tego samego produktu. Poniższa procedura sprawdza, czy nie ma już zapisanego produktu.

Private Sub txtNazwa_TextChanged(ByVal  sender As System.Object, ByVal e As System.EventArgs)  Handles txtNazwa.TextChanged
    For Each sa As String In lstProdukt.Items        ' Otwarcie pętli poszukującej produktu 
                                                                                  ' w zapisanej tabeli nazw produktu
                                                                                  ' tabela lstProdukt jest ukryta w formularzu
                                                                                  ' poprzez lstProdukt.Visible = False
   If sa = txtNazwa.Text Then                                  
        lstProdukt.Text = sa
       MessageBox.Show("Ten produkt jest już wpisany w bazie! ", "Uwaga")
       txtNazwa.Text  = ""
      Exit Sub
  End If
Next
End Sub

wtorek, 15 października 2013

Komponenty Visual Basic 2005(2)

Poniżej znajduję się procedura umożliwiająca zapis nowego produktu do bazy "Pokarm"  programu "Komponent1".  Ażeby móc dopisać tę procedurę, należy kliknąć dwa razy w okienko "Zapis".
W procedurze należy dopisać kod.

Private Sub Zapis_Click(ByVal  sender As System.Object, ByVal e As System.EventArgs)  Handles btnZapis.Click
    'Zapisanie nowego produktu do bazy
If txtNazwa.Text  = "" Or txtEnz.Text  = "" Then        ' Przypadek braku wpisu danych
     MessageBox.Show("Wpisz dane produktu!", "Uwaga")
     Exit Sub
End If
msg = "Czy na pewno chcesz wpisać ten produkt do bazy?"
tyt = "Zapis!"
styl  = MsgBoxStyle.DefaultButton2 Or _
           MsgBoxStyle.Critical  Or _
           MsgBoxStyle.YesNo
res = MsgBox(msg, styl, tyt)
If res = MsgBoxResult.No Then                    ' Jeśli nie chcesz wpisać.
         txtNazwa.Text  = "": txtEnz.Text = ""            ' usunięcie wpisu
Else                                                                              ' Jeśli chcesz wpisać
        FileOpen(1, "Pokarm", OpenMode.Append)        'Otwarcie bazy
        Write(1, txtNazwa.Text, txtEnz.Text)                    ' Zapis 
        FileClose(1)                                                             ' Zamknięcie pliku
End If                                                                               ' Zamknięcie If  res
txtNazwa.Text  = "" : txtEnz.Text  = ""                       
Odczyt()                                                                          ' Powrót do wyświetlenia 
                                                                                        zawartości tabeli
End Sub