Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB6] controllare i valori di una FlexGrid.

    Debbo inserire un controllo sulla mia form che preveda la seguente: alla pressione di un pulsante, devono essere scorse tutte le righe e le singole celle di una flexgrid e se per caso almeno una di queste presenta, per una riga, una cella null, il salvataggio dei dati venga inibito mediante msgbox.

    Ho fatto qualcosa del genere;

    Codice PHP:
    k_ind 1
        
    For k_ind 1 To grdRipartizioni.Rows 1
            
    If grdRipartizioni.TextMatrix(10) = "" And _
               grdRipartizioni
    .TextMatrix(11) = "" And _
               grdRipartizioni
    .TextMatrix(12) = "" And _
               grdRipartizioni
    .TextMatrix(13) = "" Then
                MsgBox 
    "Prima di procedere al salvataggio delle informazioni, " vbCrLf _
                       
    "occorre specificare almeno una riga del dettaglio Fattura "vbInformationMe.Caption
                
    Exit For
            Else
                If 
    grdRipartizioni.TextMatrix(k_ind0) = "" Or _
                   grdRipartizioni
    .TextMatrix(k_ind1) = "" Or _
                   grdRipartizioni
    .TextMatrix(k_ind2) = "" Or _
                   grdRipartizioni
    .TextMatrix(k_ind3) = "" Then
                    MsgBox 
    "Prima di procedere al salvataggio delle informazioni, " vbCrLf _
                           
    "occorre completare la valorizzazione per le righe incomplete "vbInformationMe.Caption
                    
    Exit For
                
    End If
            
    End If
        
    Next 
    Nel primo if controllo che almeno una riga dev'essere compilata e nella seconda vorrei controllare quanto ho esposto prima.
    Il problema nasce dal fatto che il codice si scorre comunque tute le righe previste e se le ultime non sono valorizzate, vengo bloccato nel salvataggio.
    Come posso variare quel codice?

    Grazie anticipatamente per l'aiuto.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  2. #2
    Ma scusa non hai detto che basta una cella vuota per inibire il salvataggio?
    Perchè adesso dici che se trova una riga non completa ti inibisce il salvataggio e non va bene?

    Ciao

  3. #3
    Ho risolto creandomi una function appoosita:

    Codice PHP:
    Public Function ControllaInsFattura(grd As Control) As Boolean

        Dim k_ind 
    As Integer
        Dim errMsg 
    As String
        
        ControllaInsFattura 
    True
        k_ind 
    1
        
        
    For k_ind 1 To grd.Rows 1
            
    If (grd.TextMatrix(k_ind0) <> "" Or _
                grd
    .TextMatrix(k_ind1) <> "" Or _
                grd
    .TextMatrix(k_ind2) <> "" Or _
                grd
    .TextMatrix(k_ind3) <> ""Then
                
    If Not (grd.TextMatrix(k_ind0) <> "" And _
                        grd
    .TextMatrix(k_ind1) <> "" And _
                        grd
    .TextMatrix(k_ind2) <> "" And _
                        grd
    .TextMatrix(k_ind3) <> ""Then
                        errMsg 
    errMsg "Errore riga " CStr(k_ind) & " del dettaglio della Fattura." vbCrLf _
                                          
    "Per ogni riga compilata i campi Quantità, Descrizione della Fornitura, % iva e Importo sono obbligatori" Chr(13) & Chr(10) & Chr(13) & Chr(10)
                        
    ControllaInsFattura False
                
    Else
                    If 
    Len(grd.TextMatrix(k_ind3)) > 15 Then
                        errMsg 
    errMsg "Errore riga " CStr(k_ind) & " del dettaglio della Fattura." vbCrLf _
                                          
    "Valore non ammesso nel campo Importo" Chr(13) & Chr(10) & Chr(13) & Chr(10)
                        
    ControllaInsFattura False
                    End 
    If
                
    End If
            
    End If
        
    Next
        
        
    If grd.TextMatrix(10) = "" And _
           grd
    .TextMatrix(11) = "" And _
           grd
    .TextMatrix(12) = "" And _
           grd
    .TextMatrix(13) = "" Then
            errMsg 
    "Errore del dettaglio della Fattura." vbCrLf _
                     
    "Occorre valorizzare almeno una riga" Chr(13) & Chr(10) & Chr(13) & Chr(10)
            
    ControllaInsFattura False
        End 
    If
        
        If 
    errMsg <> "" Then
            MsgBox errMsg
    vbApplicationModal vbCritical"Prova Max 2"
        
    End If

    End Function 
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  4. #4
    Ok comunque ti consiglio di non fare un controllo rigido sulle colonne, ma di fare un controllo con un ciclo...non si sa mai potrebbero essere aggiunte delle colonne in futuro...


  5. #5
    Giusta la tua osservazione, ma mi sono fasato in questo modo, perchè, so per certo, che non avrò in futuro aggiunta di colonne, oltre quelle previste.

    Grazie e ciao.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.