lecture.add(new ligne_compte with {.L_date=CDate(lecture.lignes(ligne).L_date.Day & " " & Now.Month & " " & Now.Year), .L_type=lecture.lignes(ligne).L_type, .L_budget=lecture.lignes(ligne).L_budget, .L_commentaire=lecture.lignes(ligne).L_commentaire, .L_credit=lecture.lignes(ligne).L_credit, .L_debit=lecture.lignes(ligne).L_debit, .L_pointage=lecture.lignes(ligne).L_pointage, .L_mensuel=lecture.lignes(ligne).L_mensuel})
Dim new_ligne As New ligne_compte with lecture.lignes(ligne) new_ligne.L_date=CDate(.L_date.Day & " " & Now.Month & " " & Now.Year) new_ligne.L_type=.L_type new_ligne.L_budget=.L_budget new_ligne.L_commentaire=.L_commentaire new_ligne.L_credit=.L_credit new_ligne.L_debit=.L_debit new_ligne.L_pointage=.L_pointage new_ligne.L_mensuel=.L_mensuel end with lecture.add(new_ligne) new_ligne=nothing
' ajouter cette nouvelle ligne ! Dim new_ligne As ligne_compte = lecture.lignes(ligne) new_ligne.L_date = CDate(lecture.lignes(ligne).L_date.Day & " " & Now.Month & " " & Now.Year) new_ligne.L_pointage = False new_ligne.L_mensuel = True lecture.lignes.Add(new_ligne) new_ligne=nothing
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionLe count est faux, ah bon il manque -1 peut-être ?
for each enfant as type_enfant in nom_collection
l'affichage listV est baclé et des colonnes sont masqué, sinon je vois poa
lv.clear
lv.items.clear
ListView1.Items.Add(item.ToListViewItem)
cela doit être le test sur le L_mensuel qui perturbe non ?
Pour finir avec le new, je m'en doute bien, même si j'ai pas encore assimilé la différence avec ou sans
dim f as form2 f.show
dim f as form2 f = new form2 f.show
'on supporte malist étant une list(of textbox) contenant des éléments dim t as textbox for each t in malist console.writeline(t.text) next
dim malist as list(of textbox) malist.add(me.textbox1)
dim malist as NEW list(of textbox) malist.add(me.textbox1)
dim malist as list(of textbox) malist = new list(of textbox) malist.add(me.textbox1)
dim malist as list(of textbox) = new list(of textbox) malist.add(me.textbox1)
le count passe à 0, du coup j'ai pas fais comme avec un tableau.
Sinon avec une list vide je me suis dis qu'un for i= 0 to -1 risque de ne pas lui plaire ?
for i = 1 to x.count x.item(i-1)...
Private Sub Bp_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bp_add.Click Dim f As New frmOperation f.cboType.DataSource = CurrentAccount.Types f.cboBudget.DataSource = CurrentAccount.Budgets f.ShowDialog() If Not f.Canceled Then CurrentAccount.Items.Add(f.Operation) CurrentAccount.save() ListView1.Items.Add(f.Operation.ToListViewItem) End If f = Nothing End Sub
Public Class frmOperation Public Canceled As Boolean = False Public Operation As New clsAccountItem Private Sub frmOperation_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load txtDateOperation.Text = Date.Now.ToString End Sub Private Sub cmdCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCancel.Click Me.Canceled = True Me.Close() End Sub Private Sub cmdAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAdd.Click With Me.Operation .DateOperation = CDate(txtDateOperation.Text) .TypeOperation = cboType.Text .Budget = cboBudget.Text .Commentaires = txtComments.Text .Credit = Convert.ToDouble(txtCredit.Text) .Debit = Convert.ToDouble(txtDebit.Text) .Pointage = optPoint1.Checked .Mensuel = optMens1.Checked End With Me.Close() End Sub End Class
Option Explicit On Option Strict On Imports System Imports System.IO Imports System.Runtime.Serialization.Formatters.Binary ' Imports System.Collections 'pour faire des collections à la place d'un tableau (pour _ligne) à finir <Serializable()> Public Class Class_fichier_compte Private _ligne(,) As String 'les lignes de la listview Private _Type() As String 'les types de paiments Private _budget() As String 'les budgets Private _mdp As String 'le mot de passe
une collection de string ou d'une class
<Serializable()> Public Class Class_ligne_compte Private _date As date 'etc... pour les string et boolean avec les get/set qui vont bien end class 'puis ensuite <Serializable()> Public Class Class_fichier_compte Private _ligne() As listof(class_ligne_compte) 'les lignes de la listview Private _mdp As String 'le mot de passe ' dans les get/set cela risque de ce compliquer non ?
Friend Class ligne_compte 'remplacé par public Private Shared _Nb As Integer = 0 'nombre d'instance ou nombre de lignes Private _date As Date Private _type As String Private _budget As String Private _commentaire As String Private _credit As Double Private _debit As Double Private _pointage As Boolean Private _mensuel As Boolean 'les propriétées Public ReadOnly Property Nb_lignes() As Integer Get Nb_lignes = _Nb End Get End Property ' je supprime les autres pour pas allourdir le post Public Property L_date() As Date Public Property L_type() As String Public Property L_budget() As String Public Property L_commentaire() As String Public Property L_credit() As Double Public Property L_debit() As Double Public Property L_pointage() As Boolean Public Property L_mensuel() As Boolean ' les méthodes Sub New() _Nb += 1 End Sub ' ajoute 1 à chaque nouvelle instance End Class
<Serializable()> Public Class Class_fichier_compte Private _ligne As List(Of ligne_compte) Public Property lignes() As List(Of ligne_compte) Get Return _ligne End Get Set(ByVal value As List(Of ligne_compte)) _ligne = value End Set End Property ' les lignes du comptes
<Serializable()> Public Class Class_fichier_compte Private _ligne As List(Of ligne_compte) Private _mdp As String 'le mot de passe Private _Type() As String 'les types de paiments Private _budget() As String 'les budgets ' Public Property lignes() As String(,) Public Property lignes() As List(Of ligne_compte) Get Return _ligne End Get 'Set(ByVal value As String(,)) Set(ByVal value As List(Of ligne_compte)) _ligne = value End Set End Property ' les lignes du comptes ' aprés je lis le fichier sérialisé comme suit Public Function load(ByVal fichier As String) As Boolean Try Dim myFileStream As Stream = File.OpenRead(fichier) Dim deserializer As New BinaryFormatter() Dim lecture As New Class_fichier_compte lecture = CType(deserializer.Deserialize(myFileStream), Class_fichier_compte) myFileStream.Close() ' attribut les tableaux à ME. Me.mdp = lecture.mdp Me.types = lecture.types Me.budgets = lecture.budgets Me.lignes = lecture.lignes 'ensuite je peux tester mes lignes comme cela : 'récupére le nombre de ligne initiale (avant mise à jour mensuel) voir si utile Dim NB_ligne As Integer = lecture.lignes.Count ' trouve le nombre de mise à jours à faire (pas sur que cela serve à grand chose now) Dim NB_maj As Integer = 0 ' recherche le nb de mise à jour à faire For ligne As Integer = 0 To NB_ligne ' si c'est une ligne échéancier et que la date correspond au début du mois ' et que ce mois n'est pas déja rempli (ou alors si c'est une nouvelle année) alors If Now.Day >= 1 AndAlso lecture.lignes(ligne).L_mensuel _ AndAlso (Now.Month > lecture.lignes(ligne).L_date.Month _ Or Now.Year > lecture.lignes(ligne).L_date.Year) Then NB_maj += 1 ' retire à l'anciénne ligne le status de mensuel lecture.lignes(ligne).L_mensuel = False 'attribut la date d'aujourd'hui et le jour de l'opération mensuel Dim maintenant As Date = CDate(lecture.lignes(ligne).L_date.Day & " " & Now.Month & " " & Now.Year) ' ajouter cette nouvelle ligne ! Dim new_ligne As New ligne_compte ligne_compte.L_date = maintenant lecture.lignes.AddRange = new_ligne End If Next
' ajouter cette nouvelle ligne ! Dim new_ligne As ligne_compte new_ligne.L_date = CDate(lecture.lignes(ligne).L_date.Day & " " & Now.Month & " " & Now.Year) new_ligne.L_type = lecture.lignes(ligne).L_type new_ligne.L_budget = lecture.lignes(ligne).L_budget new_ligne.L_commentaire = lecture.lignes(ligne).L_commentaire new_ligne.L_credit = lecture.lignes(ligne).L_credit new_ligne.L_debit = lecture.lignes(ligne).L_debit new_ligne.L_pointage = False new_ligne.L_mensuel = True lecture.lignes.Add(new_ligne)
' ajouter cette nouvelle ligne ! Dim new_ligne As ligne_compte = lecture.lignes(ligne) new_ligne.L_date = CDate(lecture.lignes(ligne).L_date.Day & " " & Now.Month & " " & Now.Year) ' new_ligne.L_type = lecture.lignes(ligne).L_type ' new_ligne.L_budget = lecture.lignes(ligne).L_budget ' new_ligne.L_commentaire = lecture.lignes(ligne).L_commentaire ' new_ligne.L_credit = lecture.lignes(ligne).L_credit ' new_ligne.L_debit = lecture.lignes(ligne).L_debit new_ligne.L_pointage = False new_ligne.L_mensuel = True lecture.lignes.Add(new_ligne)