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

    [VB6] Incrementare flex.row

    Salve a tutti.
    premettendo che uso Visual Basic 6 e sono un pò :berto: in meteria , ho un piccolo problema con l'incremento della flexgrid.row. quello che sto realizzando è un semplice travaso di dati. L'utente seleziona con il puntatore (doppioclick) un determinato dato da una flexgrid e lo va ad inserire in un'altra flexgrid( flex_carrello ). il problema e che non riesco ad incrementare il numero di righe ma vado sempre ad ggiornarle sulla stessa. Mi date una mano? posto in codice dell'azione.

    codice:
    Sub AggiungiArticolo()
    
    Dim RigaSelez As Integer
    Dim produttore As String, Codice As String, Descrizione As String, _
    Prezzo As String, quantita As String, dettagli As String
    Dim count As Integer
    
    '$$$$$$$$$ Memorizzo nelle variabili i valori della riga selezionata. $$$$$$$$$
    
    If flex.Row > 0 Then
        RigaSelez = flex.RowSel
        flex.Col = 1
        flex.Row = RigaSelez
        produttore = flex.Text
        
        flex.Col = 2
        flex.Row = RigaSelez
        Codice = flex.Text
        
         flex.Col = 3
        flex.Row = RigaSelez
        Descrizione = flex.Text
        
         flex.Col = 4
        flex.Row = RigaSelez
        Prezzo = flex.Text
    End If
    
    '$$$$$$$$$  trasferisco i valori delle variabili nella flex_carrello $$$$$$$$$
    
    For count = 1 To count + 1
         flex_carrello.Col = 0
         flex_carrello.Row = count
         flex_carrello.Text = produttore
    
         flex_carrello.Col = 1
         flex_carrello.Row = count
         flex_carrello.Text = Codice
    
         flex_carrello.Col = 2
         flex_carrello.Row = count
         flex_carrello.Text = Descrizione
    
         flex_carrello.Col = 3
         flex_carrello.Row = count
         flex_carrello.Text = Prezzo
    Next
    
    End Sub
    p.s.: ci sono delle variabili in piu ma non tenetele in considerazione tranne se è li il problema.

    Grazie a tutti.
    il condor vola sempre piu in alto.....
    www.dirtyblackhole.altervista.org

  2. #2

    Re: [VB6] Incrementare flex.row

    Originariamente inviato da dirtyblackhole
    Salve a tutti.
    premettendo che uso Visual Basic 6 e sono un pò :berto: in meteria , ho un piccolo problema con l'incremento della flexgrid.row. quello che sto realizzando è un semplice travaso di dati. L'utente seleziona con il puntatore (doppioclick) un determinato dato da una flexgrid e lo va ad inserire in un'altra flexgrid( flex_carrello ). il problema e che non riesco ad incrementare il numero di righe ma vado sempre ad ggiornarle sulla stessa. Mi date una mano? posto in codice dell'azione.
    Ciao ! Nel tuo codice ci sono un po' di problemi...

    Il primo problema riguarda il ciclo For, che in questo caso NON va' utilizzato.
    Comunque, come fai tu, ogni volta che chiami la Sub AggiungiArticolo, la variabile Count vale inizialmente zero, percio' la linea:
    For count = 1 To count + 1
    equivale a:
    For count = 1 To 1
    e quindi in realta' il ciclo viene SEMPRE eseguito 1 volta !

    Inoltre, anche funzionasse, tu NON devi eseguire un ciclo, ma semplicemente copiare una linea della FlexGrid, e poi incrementare una variabile di uno per memorizzare dove andra' copiata la prossima riga. (se chiamiamo Rcar la riga della flex_carrello dove copiare progressivamente le righe della prima flex, basta un Rcar=Rcar+1).
    Pero' all'interno della routine si deve utilizzare una variabile STATIC (Static Rcar As Integer, Anziche' Dim count...., che mantiene il suo valore ad ogni chiamata della routine, senno' viene resettata a zero !), oppure una variabile a livello di modulo, dichiarata ed inizializzata FUORI dalla routine.

    Coraggio, e' piu' complicato a spiegarlo che a farlo !

    Prima pero' tieni conto di una cosa IMPORTANTE: se le tue flex sono delle normali MSFlexGrid, come penso, puoi accedere MOLTO piu' semplicemente ai vari vari elementi con la proprieta' .TextMatrix(R, C) che non come fai tu !
    Cioe', tutto questo codice:
    codice:
        RigaSelez = flex.RowSel
        flex.Col = 1
        flex.Row = RigaSelez
        produttore = flex.Text
     ............
         flex_carrello.Col = 0
         flex_carrello.Row = count
         flex_carrello.Text = produttore
    puoi sostituirlo semplicemente con:
    codice:
         flex_carrello.TextMatrix(Rcar,0) = flex.TextMatrix(flex.RowSel,1)
    spero possa esserti utile.... Ciao !
    IceCube_HT (VB6 fan Club)

  3. #3
    scusa ma per scrivere in una flex grid perchè non utilizzi:

    FlexFrid.Textmatrix(riga,colonna)="ciao"

    In questo caso nn devi selezionare la riga con row e la colonna con col, ma le hai in un'unica riga di codice.

  4. #4
    grazie a tutti per le risposte.. non ho avuto ancora il tempo di provare.
    vi faro sapere cmq l'esito. Grazie .

    il condor vola sempre piu in alto.....
    www.dirtyblackhole.altervista.org

  5. #5
    viene cosi giusto?

    codice:
    Sub AggiungiArticolo()
    count_carrello = 1
    Dim RigaSelez As Integer
    Dim produttore As String, Codice As String, Descrizione As String, _
    Prezzo As String, quantita As String, dettagli As String
    Static Rcar As Integer
    Rcar = Rcar + 1
    flex_carrello.TextMatrix(Rcar, 0) = flex.TextMatrix(flex.RowSel, 1)
    mi sa che sto sbagliando qualcosa...
    per selezionare piu dati dalla flex devo aggiungere le colonne da prendere in questo modo?
    flex.TextMatrix(flex.RowSel, 1, 2, 3...)

    il problema sta anche che mi accoda nella flex carrello il valore che seleziono pero non va oltre perche va in errore sulla linea :
    codice:
    flex_carrello.TextMatrix(Rcar, 0) = flex.TextMatrix(flex.RowSel, 1)
    cosa sbaglio? oggi mi sa che sto fuso.... :berto: e grazie
    il condor vola sempre piu in alto.....
    www.dirtyblackhole.altervista.org

  6. #6
    La Static Rcar si' !

    Originariamente inviato da dirtyblackhole
    per selezionare piu dati dalla flex devo aggiungere le colonne da prendere in questo modo?
    flex.TextMatrix(flex.RowSel, 1, 2, 3...)
    Dovrebbe essere:
    codice:
    flex_carrello.TextMatrix(Rcar, 0) = flex.TextMatrix(flex.RowSel, 1)
    flex_carrello.TextMatrix(Rcar, 1) = flex.TextMatrix(flex.RowSel, 2
    flex_carrello.TextMatrix(Rcar, 2) = flex.TextMatrix(flex.RowSel, 3)
    .......
    Originariamente inviato da dirtyblackhole
    il problema sta anche che mi accoda nella flex carrello il valore che seleziono pero non va oltre perche va in errore sulla linea:
    flex_carrello.TextMatrix(Rcar, 0) = flex.TextMatrix(flex.RowSel, 1)
    cosa sbaglio?
    Magari dirci QUALE errore ti da', no...????

    Ciao !
    IceCube_HT (VB6 fan Club)

  7. #7
    scusa me ne sono dimenticato:

    run-time 381
    indice non compreso nell'intervallo.

    e si posiziona
    codice:
    flex_carrello.TextMatrix(Rcar, 0) = flex.TextMatrix(flex.RowSel, 1)

    grazie per la risposta
    il condor vola sempre piu in alto.....
    www.dirtyblackhole.altervista.org

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.