Springen naar inhoud


- - - - -
Solved

Opdracht Avondschool

Avondschool

  • Log in a.u.b. om te beantwoorden
Er zijn 8 reacties in dit onderwerp

#1 Poohbeer

Poohbeer

    Rookie Developer

  • Leden
  • Pip
  • 43 berichten
    Laatst bezocht 04 Jun 2012 14:49

Geplaatst op 13 May 2012 - 19:36


Teken een scherm met volgende gegevens:
Invoervelden:
Naam:  à tekstveld voor het invullen van de naam van de leerling
Blijft in eten:  à checkbox of radiobutton om aan te geven of de leerling blijft in eten
Aantal dagen:  à om aan te geven hoeveel dgn voor deze maand de leerling blijft in eten.   Moet een geheel getal zijn (kleiner dan 22).  Het veld dient 0 te zijn indien de leerling niet is blijven in eten voor die maand.
Uitvoervelden:
Listbox met volgende gegevens:

Naam (20pos),  1 spatie,  J/N (1 pos),  2 spaties,  Aantal dagen (2pos)
Janssens   J  12
Peeters    N  00
Lievens    J  03
Pientermans    J  18

Knoppen
‘Toevoegen ‘(voor het toevoegen van een lijn in de listbox)
‘Verwijderen’ (voor het verwijderen van een lijn in de listbox

De actie ‘Weergeven resultaat”
maak hiervoor een nieuw formulier binnen hetzelfde project.
Dit formulier dient enkel een overzicht (tekstvak) te geven van het geopende bestand (maw de inhoud van de listbox), maar enkel een overzicht van het te betalen bedrag.  Voor het in-eten dient een leerling 0,5 EUR te betalen.
Je mag de gegevens lezen uit de listbox, gebruik maken van arrays, hulpveld,… doe maar.
Voorbeeld
Janssens 6,00 EUR
Peeters   0,00 EUR
Lievens   1,50 EUR
Pientermans   9,00 EUR

Het probleem is dus dat ik de resultaten dus niet in mijn 2de formulier krijg weergegeven.

Visual Basic Code:
Public Class frmBlijvenEten
	Public aantaldagen As Integer
	Public resultaten As String
	Private Totaal() As Integer
	Private bovengrens As Integer
	Private Sub mnuBestandOpenen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandOpenen.Click
		' Inlezen van de namen.
		Dim index As Integer = 0
		Dim lijn As String		' Keuzelijst leegmaken.
		lstLeerlingen.Items.Clear()
		' Instellen van het dialoogvenster openen.
		With dlgOpenen
			.Filter = "Tekstbestanden (*.txt)|*.txt"
			.FileName = ""
			.InitialDirectory = "C:\Users\Jessica Willems\Documents\Visual Studio 2010\Projects\AFSTANDSLESBESTANDEN"
			.Title = "Openen"
		End With		' Openen en lezen van het bestand.
		If dlgOpenen.ShowDialog = DialogResult.OK Then
			FileOpen(1, dlgOpenen.FileName, OpenMode.Input)
			Do While Not EOF(1)
				' Lezen lijn.
				lijn = LineInput(1)
				' Toevoegen als item in de lijst.
				lstLeerlingen.Items.Add(lijn)
			Loop
			FileClose(1)			' Tekstvakken leegmaken.
			txtNaam.text = ""
			txtAantalDagen.Text = 0
			chbBlijftEten.Checked = False
			txtNaam.Focus()
		End If
	End Sub	

Private Sub mnuBestandOpslaanAls_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandOpslaanAls.Click
		Dim index As Integer
		With dlgOpslaan
			.InitialDirectory = "C:\Users\Jessica Willems\Documents\Visual Studio 2010\Projects\AFSTANDSLESBESTANDEN"
			.Filter = "Tekstbestanden (*.txt)|*.txt"
			.Title = "Opslaan als"
		End With		' Opslaan van het bestand
		If dlgOpslaan.ShowDialog = DialogResult.OK Then
			FileOpen(1, dlgOpslaan.FileName, OpenMode.Output)
			For index = 0 To lstLeerlingen.Items.Count - 1
				PrintLine(1, lstLeerlingen.Items(index))
			Next
			FileClose(1)		End If
	End Sub

Private Sub mnuBestandOpslaan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandOpslaan.Click
		Dim index As Integer		If dlgOpenen.FileName = "" Then
			mnuBestandOpslaanAls_Click(sender, e)
		Else
			FileOpen(1, dlgOpenen.FileName, OpenMode.Output)
			For index = 0 To lstLeerlingen.Items.Count - 1
				PrintLine(1, lstLeerlingen.Items(index))
			Next
			FileClose(1)
		End If
End Sub

	Private Sub mnuBestandNieuw_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandNieuw.Click
		lstLeerlingen.Items.Clear()		txtNaam.Text = ""
		txtAantalDagen.Text = 0
		txtNaam.Focus()
	End Sub	

Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click
		Dim prompt As String
		Dim titel As String = "Fout"
		Dim item As String
		Dim ineten As String = ""
		If txtNaam.Text = "" Then
			prompt = "Er is geen naam ingegeven."
			MessageBox.Show(prompt, titel, MessageBoxButtons.OK)
			txtNaam.Focus()
			Exit Sub
		End If		If (txtAantalDagen.Text = "") Or (txtAantalDagen.Text > 22) Then
			prompt = "Er is niet het juiste aantal dagen opgegeven."
			MessageBox.Show(prompt, titel, MessageBoxButtons.OK)
			txtAantalDagen.Focus()
			Exit Sub
		End If
		If chbBlijftEten.Checked = True Then
			ineten = "J"
		Else
			ineten = "N"
			txtAantalDagen.Text = "0"
		End If		item = txtNaam.Text.PadRight(21) & ineten.PadRight(3) & txtAantalDagen.Text.PadRight(2)
		lstLeerlingen.Items.Add(item)
		txtNaam.Text = ""
		txtAantalDagen.Text = 0
		txtNaam.Focus()
		chbBlijftEten.Checked = False
	End Sub

	Private Sub btnVerwijderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVerwijderen.Click
		Dim prompt As String
		Dim titel As String
		Dim antwoord As DialogResult		
If lstLeerlingen.SelectedIndex = -1 Then
			titel = "Geen item geselecteerd."
			prompt = "Selecteer aub een item."
			MessageBox.Show(prompt, titel, MessageBoxButtons.OK)
			Exit Sub
		End If
		prompt = "Wenst u het item te verwijderen?"
		titel = "Verwijderen item"
		antwoord = MessageBox.Show(prompt, titel, MessageBoxButtons.YesNo)
		If antwoord = DialogResult.Yes Then
			lstLeerlingen.Items.Remove(lstLeerlingen.SelectedItem)
		End If
	End Sub	

Private Sub mnuBestandAfsluiten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandAfsluiten.Click
		Me.Close()
	End Sub	

Private Sub mnuResultaatWeergeven_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuResultaatWeergeven.Click
		Dim index As Integer = 0
		Dim lijn As String
		Do While Not EOF(1)
			' Lezen lijn
			lijn = LineInput(1)
			' Opvullen array
			Totaal(index) = (aantaldagen * 0.5)			'Verhogen index
			index = index + 1
		Loop
		bovengrens = index - 1
		Dim frm As New frmResultaat
		Me.Hide()
		frm.Show()
	End Sub
End Class


Visual Basic Code:
Public Class frmResultaat
	Private bovengrens As Integer
	Private totaal() As Integer
	Private Sub btnSluiten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSluiten.Click
		Me.Close()
		frmBlijvenEten.Show()
	End Sub	

Private Sub frmResultaat_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		For index = 0 To bovengrens
			txtResultaten.Text = (totaal(index)) & vbCrLf
		Next
	End Sub
End Class


Iemand die mij een tip kan geven?

Veranderd door RedThread, 30 May 2012 - 11:43.
Gehele post iets netter aangepast en code taqs aangepast.


#2 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 13 May 2012 - 20:49

De bovenstaande code wat je geplaatst hebt is dat wat in de 1ste form staan of is dat wat in de 2de form staat?
Als dit de code van form 1 is kun je beter vanuit de load van form2 de gegevens ophalen van form1.

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#3 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3294 berichten
    Laatst bezocht vandaag, 22:42
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 14 May 2012 - 11:00

Aangezien ik niet weet in welke context je deze oefening maakt weet ik ook niet wat de juiste is natuurlijk.


In je frmResultaat kun je de var's gebruiken van je eerste formulier door bv dit te doen :

Visual Basic Code:
For index = 0 To Form1.bovengrens
			txtResultaten.Text = (Form1.Totaal(index)) & vbCrLf
		Next


je kan ook een module bijmaken in je project zodat je je var's kunt delen over alle forms.

*** If you like youre solution or appriciate the crew's effort, please click on the facebook like or the Google +1 button ***

 

- Any fool can know, the point is to understand -


email : RedThread@vbib.be | MSN : Red_Thread@Hotmail.com

Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


#4 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 14 May 2012 - 11:09

of public maken ipv dim's.

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#5 Poohbeer

Poohbeer

    Rookie Developer

  • Leden
  • Pip
  • 43 berichten
    Laatst bezocht 04 Jun 2012 14:49

Geplaatst op 14 May 2012 - 17:48

Visual Basic Code:
		Dim index As Integer = 0
		Dim lijn As String
		Do While Not EOF(1)
			lijn = LineInput(1)			' Lezen lijn
			' Opvullen array
			Totaal(index) = (aantaldagen * 0.5)		 'Verhogen index
			index = index + 1
		Loop
		bovengrens = index - 1
		Dim frm As New frmResultaat
		Me.Hide()
		frm.Show()


Ik krijg nu een foutmelding bij mijne 'Do While Not EOF(1)'

Hij zegt dan ongeldige bestandsnaam of ongeldig nummer.

Grtz

#6 Poohbeer

Poohbeer

    Rookie Developer

  • Leden
  • Pip
  • 43 berichten
    Laatst bezocht 04 Jun 2012 14:49

Geplaatst op 15 May 2012 - 20:19

Dit is de code om het bestand te openen..

Visual Basic Code:
' Instellen van het dialoogvenster openen.
		With dlgOpenen
			.Filter = "Tekstbestanden (*.txt)|*.txt"
			.FileName = ""
			.InitialDirectory = "C:\Users\Jessica Willems\Documents\Visual Studio 2010\Projects\AFSTANDSLESBESTANDEN"
			.Title = "Openen"
		End With
		' Openen en lezen van het bestand.
		If dlgOpenen.ShowDialog = DialogResult.OK Then
			FileOpen(1, dlgOpenen.FileName, OpenMode.Input)
			Do While Not EOF(1)
				' Lezen lijn.
				lijn = LineInput(1)
				' Toevoegen als item in de lijst.
				lstLeerlingen.Items.Add(lijn)
			Loop
			FileClose(1)
			' Tekstvakken leegmaken.
			txtNaam.text = ""
			txtAantalDagen.Text = 0
			chbBlijftEten.Checked = False
			txtNaam.Focus()
		End If



#7 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3294 berichten
    Laatst bezocht vandaag, 22:42
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 16 May 2012 - 12:38

Jouw code werkt hier perfect zonder foutmelding.

Zet je txt bestand eens op je C drive en probeer hem daar eens te openen.

mvg,
RedThread

*** If you like youre solution or appriciate the crew's effort, please click on the facebook like or the Google +1 button ***

 

- Any fool can know, the point is to understand -


email : RedThread@vbib.be | MSN : Red_Thread@Hotmail.com

Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


#8 demodownload

demodownload

    Junior Developer

  • Leden
  • PipPip
  • 98 berichten
    Laatst bezocht 08 Jun 2012 00:21

Geplaatst op 22 May 2012 - 14:17

Bericht bekijkenRedThread, op 16 May 2012 - 12:38, zei:

Jouw code werkt hier perfect zonder foutmelding.

Zet je txt bestand eens op je C drive en probeer hem daar eens te openen.

mvg,
RedThread
zelfde fout als bij mij met die Panel, weet je nog? :P

Het gaat hier inderdaad om "Autheurs rechten" pas die even aan op je C:/ schijf dan lukt het wel!

#9 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3294 berichten
    Laatst bezocht vandaag, 22:42
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 22 May 2012 - 14:38

Inderdaad, zou kunnen.

Je weet wat doen Jessica ;)

*** If you like youre solution or appriciate the crew's effort, please click on the facebook like or the Google +1 button ***

 

- Any fool can know, the point is to understand -


email : RedThread@vbib.be | MSN : Red_Thread@Hotmail.com

Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN






Ook met taq Solved, Avondschool voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[Solved] Untitled 1

Hosting provided by Combell
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
vbib.be - vbnet.be - vbdotnet.be - visualbasic.be