Problème quantité dans une application pharmacie

cs_moh120 Messages postés 20 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 10 juillet 2011 - 10 juil. 2011 à 11:59
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 11 juil. 2011 à 21:43
Bonjour à toutes et à tous,
Je suis en train de faire une application gestion de stock d'un pharmacie avec vb2008 & sql2005
Le problème c'est que j'ai une erreur au moment où j'ajoute un nouveau article leur quantile plus de 1000 à textbox quantité "QuantityTextBox":




Public Class ItemsForm

    Private Sub ItemsForm_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
        Dim CuurentSuuplierCode As Short = CShort(Val(Me.SupplierNameComboBox.SelectedValue))


        Me.TblSuppliersTableAdapter.Fill(Me.PharmaDataSet.TblSuppliers)

        Me.SupplierNameComboBox.SelectedValue = CuurentSuuplierCode
    End Sub

    Private Sub ItemsForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' ----- autorisation ------------------------------------------------------------------------------------------------------------- '
        If Not (CurrentUser Is Nothing) Then
            If Not CurrentUser.MainData Then
                Call MessageBox.Show("Vous n'êtes pas autorisés à entrer", "Sécurité", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                Me.Close()
            Else
                Me.SaveButton.Enabled = CurrentUser.MainDataSave
                Me.DeleteButton.Enabled = CurrentUser.MainDataDelete
            End If
        End If
        ' ----------------------------------------------------------------------------------------------------------------------------------- '


        Me.TblOriginCountriesTableAdapter.Fill(Me.PharmaDataSet.TblOriginCountries)

        Call Me.TblItemsTableAdapter.Fill(Me.PharmaDataSet.TblItems)

        Me.iTemCodeTextBox.Text = ""
    End Sub

    Private Sub GridView1_CustomDrawCell(ByVal sender As Object, ByVal e As DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs) Handles GridView1.CustomDrawCell
        If (e.Column.FieldName = "RunTimeID") Then
            e.DisplayText = (e.RowHandle + 1).ToString
        ElseIf (e.Column.FieldName = "Quantity") Then
            e.DisplayText = Val(e.DisplayText).ToString
        End If
    End Sub

    Private Sub GridView1_FocusedRowChanged(ByVal sender As Object, ByVal e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles GridView1.FocusedRowChanged
        Try
            Me.iTemCodeTextBox.Text = Me.GridView1.GetRowCellValue(e.FocusedRowHandle, "iTemCode").ToString
        Catch Ex As Exception
            Me.iTemCodeTextBox.Text = ""
        End Try
    End Sub

    Private Sub iTemCodeTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles iTemCodeTextBox.TextChanged
        Call Me.ErrorProvider1.Clear()

        Dim MYRow As PharmaDataSet.TblItemsRow = Nothing

        Try
            MYRow = Me.PharmaDataSet.TblItems.FindByiTemCode(CLng(Val(Me.iTemCodeTextBox.Text)))
        Catch Ex As Exception
            Call Me.iTemCodeTextBox.Focus()
            Call Me.ErrorProvider1.SetError(Me.iTemCodeTextBox, Ex.Message)
        End Try

        If (MYRow Is Nothing) Then
            Me.iTemNameTextBox.Text = ""
            Me.iTemBarCodeTextBox.Text = ""

            Me.CostPriceTextBox.Text = ""
            Me.SalePriceTextBox.Text = ""
            Me.ProfitTextBox.Text = ""
            Me.EnterDatePicker.Value = Today

            ' ----- Régler la date d'expiration au bout de 3 ans à partir de maintenant par défaut ---------------------------------------------------------------- '
            Me.ExpireDatePicker.Value = DateAdd(DateInterval.Year, 3, DateSerial(Year(Today), Month(Today), 1))
            Me.ExpireDatePicker.Checked = False
            ' ------------------------------------------------------------------------------------------------------------------------------- '

            Me.QuantityTextBox.Text = ""
            Me.MinQuantityTextBox.Text = ""
            Me.OriginCountryComboBox.Text = ""
            Me.SupplierNameComboBox.SelectedIndex = -1
        Else
            Me.iTemNameTextBox.Text = MYRow.iTemName
            Me.iTemBarCodeTextBox.Text = MYRow.iTemBarCode

            Me.CostPriceTextBox.Text = ValToStr(MYRow.CostPrice)
            Me.SalePriceTextBox.Text = ValToStr(MYRow.SalePrice)

            Me.QuantityTextBox.Text = MYRow.Quantity.ToString
            Me.EnterDatePicker.Value = MYRow.EnterDate

            Try
                Me.ExpireDatePicker.Value = MYRow.ExpireDate
            Catch Ex As Exception
                Me.ExpireDatePicker.Checked = False
            End Try

            If Not Me.ExpireDatePicker.Checked Then
                ' ----- Régler la date d'expiration au bout de 3 ans à partir de maintenant par défaut ------------------------------------------------------------ '
                Me.ExpireDatePicker.Value = DateAdd(DateInterval.Year, 3, DateSerial(Year(Today), Month(Today), 1))
                ' --------------------------------------------------------------------------------------------------------------------------- '
            End If

            Me.OriginCountryComboBox.Text = MYRow.OriginCountry
            Me.SupplierNameComboBox.Text = MYRow.SupplierName
            Me.MinQuantityTextBox.Text = MYRow.MinQuantity.ToString

            Me.GridView1.FocusedRowHandle = Me.GridView1.LocateByDisplayText(-1, iTemCodeColumn, MYRow.iTemCode.ToString)
        End If
    End Sub
    Private Sub CalcProfit(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CostPriceTextBox.TextChanged, SalePriceTextBox.TextChanged
        ' ----- Calculer lucratif ---------------------------------------------------------------------------------------------------------------- '
        Me.ProfitTextBox.Text = ValToStr(StrToVal(Me.SalePriceTextBox.Text) - StrToVal(Me.CostPriceTextBox.Text))
        ' ----------------------------------------------------------------------------------------------------------------------------------- '
    End Sub

    Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click
        Call Me.ErrorProvider1.Clear()

        Dim HasErrors As Boolean = False

        If (Me.SupplierNameComboBox.SelectedIndex < 0) Then
            HasErrors = True
            Call Me.SupplierNameComboBox.Focus()
            Call ErrorProvider1.SetError(Me.SupplierNameComboBox, "S.V.P Sélectionner le Nom de Fournisseur")
        End If

        If (StrToVal(Me.QuantityTextBox.Text) < 0) Then
            HasErrors = True
            Call Me.QuantityTextBox.Focus()
            Call ErrorProvider1.SetError(Me.QuantityTextBox, "Ne Peut Pas Entrer Une Quntité en Moins")
        End If

        If (StrToVal(Me.MinQuantityTextBox.Text) < 0) Then
            HasErrors = True
            Call Me.MinQuantityTextBox.Focus()
            Call ErrorProvider1.SetError(Me.MinQuantityTextBox, "Ne Peut Pas Entrer Une Quntité en Moins")
        End If


        If Me.ExpireDatePicker.Checked Then
            If Date.Compare(Me.EnterDatePicker.Value.Date.AddDays(7), Me.ExpireDatePicker.Value.Date) = 0 Then
                HasErrors = True
                Call Me.ExpireDatePicker.Focus()
                Call ErrorProvider1.SetError(Me.ExpireDatePicker, "Ne Peut Pas Entrer la Date de Classe Unique en Son Introduction Avant la Date d'Expiration à 7 Jours")
            End If
        End If

        If (StrToVal(Me.ProfitTextBox.Text) <= 0) Then
            HasErrors = True
            Call Me.SalePriceTextBox.Focus()
            Call ErrorProvider1.SetError(Me.ProfitTextBox, "SVP Remplissez la Champ de Vente et l'Achat")
        End If

        If (StrToVal(Me.SalePriceTextBox.Text) <= 0) Then
            HasErrors = True
            Call Me.SalePriceTextBox.Focus()
            Call ErrorProvider1.SetError(Me.SalePriceTextBox, "SVP Entrez le Prix de Vente")
        End If

        If (StrToVal(Me.CostPriceTextBox.Text) <= 0) Then
            HasErrors = True
            Call Me.CostPriceTextBox.Focus()
            Call ErrorProvider1.SetError(Me.CostPriceTextBox, "SVP Entrez le Prix d'Achat")
        End If

        If (Me.iTemNameTextBox.Text.Trim.Length < 1) Then
            HasErrors = True
            Call Me.iTemNameTextBox.Focus()
            Call ErrorProvider1.SetError(Me.iTemNameTextBox, "SVP Entrez le Nom Produit")
        End If

        If (Me.iTemCodeTextBox.Text.Trim.Length < 1) Then
            HasErrors = True
            Call Me.iTemCodeTextBox.Focus()
            Call ErrorProvider1.SetError(Me.iTemCodeTextBox, "SVP Entrez le Code Produit")
        End If

        If HasErrors Then Return
        ' ----------------------------------------------------------------------------------------------------------------------------------- '

        Dim MYRow As PharmaDataSet.TblItemsRow = Nothing

        Try
            MYRow = Me.PharmaDataSet.TblItems.FindByiTemCode(CLng(Val(Me.iTemCodeTextBox.Text)))
        Catch Ex As Exception
            Call Me.iTemCodeTextBox.Focus()
            Call Me.ErrorProvider1.SetError(Me.iTemCodeTextBox, Ex.Message)
        End Try

        Try
            If (MYRow Is Nothing) Then                          ' Nouveau Row
                Call Me.TblItemsTableAdapter.Insert(CLng(Val(Me.iTemCodeTextBox.Text)), Me.iTemNameTextBox.Text, Me.iTemBarCodeTextBox.Text, StrToDec(Me.CostPriceTextBox.Text), StrToDec(Me.SalePriceTextBox.Text), CDec(Val(Me.QuantityTextBox.Text)), Me.EnterDatePicker.Value, Me.ExpireDatePicker.Value, Me.OriginCountryComboBox.Text, CShort(Val(Me.SupplierNameComboBox.SelectedValue)), CShort(Val(Me.MinQuantityTextBox.Text)))
            Else                                                ' Mise à jour Row
                Call Me.TblItemsTableAdapter.Update(Me.iTemNameTextBox.Text, Me.iTemBarCodeTextBox.Text, StrToDec(Me.CostPriceTextBox.Text), StrToDec(Me.SalePriceTextBox.Text), CDec(Val(Me.QuantityTextBox.Text)), Me.EnterDatePicker.Value, Me.ExpireDatePicker.Value, Me.OriginCountryComboBox.Text, CShort(Val(Me.SupplierNameComboBox.SelectedValue)), CShort(Val(Me.MinQuantityTextBox.Text)), CLng(Val(Me.iTemCodeTextBox.Text)))
            End If


            Call Me.TblItemsTableAdapter.Fill(Me.PharmaDataSet.TblItems)

            Call MessageBox.Show("L'ajout est Effectué Avec Succes", "Ajouter", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
            Me.iTemCodeTextBox.Text = ""
        Catch Ex As Exception
            Call MessageBox.Show(Ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

        Call Me.iTemCodeTextBox.Focus()
    End Sub
    Private Sub DeleteButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeleteButton.Click
        Call Me.ErrorProvider1.Clear()

        Dim MYRow As PharmaDataSet.TblItemsRow = Nothing

        Try
            MYRow = Me.PharmaDataSet.TblItems.FindByiTemCode(CLng(Val(Me.iTemCodeTextBox.Text)))
        Catch Ex As Exception
            Call Me.iTemCodeTextBox.Focus()
            Call Me.ErrorProvider1.SetError(Me.iTemCodeTextBox, Ex.Message)
        End Try

        Try
            If (MYRow Is Nothing) Then
                Call Me.ErrorProvider1.SetError(Me.iTemCodeTextBox, "SVP Entrer Votre Code Article")
            Else                                                    ' supprimer Row
                If MessageBox.Show("Voulez Vous Vraiment Supprimer Cet Article?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                    Call Me.TblItemsTableAdapter.Delete(CLng(Val(Me.iTemCodeTextBox.Text)))


                    Call Me.TblItemsTableAdapter.Fill(Me.PharmaDataSet.TblItems)

                    Me.iTemCodeTextBox.Text = ""
                End If
            End If
        Catch Ex As SqlClient.SqlException
            If Ex.Number = 547 Then
                Call MessageBox.Show("Ne Peut Pas Supprimer l'Article Avant de Supprimer tous les Enregistrements", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Else
                Call MessageBox.Show(Ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        Catch Ex As Exception
            Call MessageBox.Show(Ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub
    Private Sub ExitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitButton.Click
        Call Me.Close()
    End Sub
End Class


table des articles dans la basse de donné


Si quelqu'un a une idée je suis preneur

Merci d'avance.

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 juil. 2011 à 21:43
Bonjour,

Est-ce que le séparateur attendu ne serait pas un . au lieu d'une , ?

Sinon, c'est bien de mettre du code avec la coloration syntaxique (c'est pas si souvent que ça arrive), mais dire à quelle ligne (avec un commentaire par exemple) aiderait pas mal à filtrer car c'est pas toujours très digeste de lire un code et de le comprendre.

Mon site
0
Rejoignez-nous