Comment faire des calculés dans VFlexgrid ?

accent19811 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai besoin de faire des calculés à l’intérieur de la liste "VFlexgrid", quand je vous changée: ( l'quantité ou prix vente ou taux de remise),
pour donnée le total correctement

H=0
HTT=0

H= Quantité * prix vente
HTT=H*Remise /100
Prix total = H- HTT

j'ai fait ce code, mais malheureusement marche pas !

++++++++++++++++++++++++++++++++++++++
Référence|Désignation|Quantité|Prix Vente|Remise %|Total|+
---------------------------------------------------------------------
+-A001|OPTIQUE G|10|780,50|25%|76098,75----------------+
+-A006|Feu Rouge G|10|500,50|15%|425,42-----------------+
+-A009|Aile G|10|1250,70|20%|122568,60-------------------+
+-A002|Capot G|10|350,85|20%|2806,80---------------------+
++++++++++++++++++++++++++++++++++++++
+Nombre Produit +:4---Total :---201899,57------------------+
++++++++++++++++++++++++++++++++++++++



Function faIndex(Row As Integer, Col As Integer) As Long
On Error Resume Next
    faIndex = Row * G.Cols + Col
End Function



Private Sub G_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
On Error Resume Next
    Dim C As Integer, R As Integer
    ' Désactive le clignotement du contrôle
    G.Redraw = False
    ' Repère la cellule active
    R = G.RowSel
    C = G.ColSel
    ' Valide la saisie au clavier
    If KeyAscii = 27 Then
        G.TextArray(faIndex(R, C)) = ""
    ElseIf G.TextArray(faIndex(R, C)) <> "" And KeyAscii = 8 Then
        G.TextArray(faIndex(R, C)) = Mid(G.TextArray(faIndex(R, C)), 1, Len(G.TextArray(faIndex(R, C))) - 1)
    ElseIf G.TextArray(faIndex(R, C)) <> "" And KeyAscii = 13 Then
        G.TextArray(faIndex(R, C)) = G.TextArray(faIndex(R, C)) & Chr(10) & Chr(KeyAscii)
    Else
        G.TextArray(faIndex(R, C)) = G.TextArray(faIndex(R, C)) & Chr(KeyAscii)
    End If
    ' Replace le clignotement du contrôle
    G.Redraw = True
    'appel mise ajour G
    G_ChangeEdit
End Sub

Private Sub G_ChangeEdit()
    On Error Resume Next
    
    Dim Q1 As Double
    Dim P2 As Double
    Dim R3 As Double
    Dim TOT1 As Double
    Dim TOT2 As Double
    Dim TOT3 As Double
    Dim x As Integer

    With G
        R = .Row
        Q1 = .TextMatrix(R, 2)
        P2 = .TextMatrix(R, 3)
        R3 = .TextMatrix(R, 4)
        
        TOT1 = Q1 * P2
        TOT2 = TOT1 * R3 / 100
        TOT3 = TOT1 - TOT2
        .TextMatrix(R, 5) = Format(CCur(TOT3), "standard")
        
    End With
    
    nbr.Caption = 0: totaux.Caption = 0
    
         For I = 1 To G.Rows - 1
        nbr.Caption = Val(nbr.Caption) + 1
        htT = htT + CCur(G.TextMatrix(I, 5))
        
        Next
        totaux.Caption = Format(CCur(htT), "standard")
        
    
End Sub


2 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Private Sub G_ChangeEdit()

cet evenement n'existe pas en VB6.0

regardez ce que je vous ai repondu dans votre demande en MP
0
accent19811 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

j'ai dit : (Comment faire des calculés dans VFlexgrid ?)

j'ai utilisé la liste suivant : "VSFLEXGRIDPRO_8.0"

cette outils contient cet Evénement;

Voir l'image :



merci à votre réponse ...
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,
Ce n'est pas un composant de base du VB6.0, donc je ne l'ai pas!!!!!!
0