+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema stampa dati flexgrid

  1. #1
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276

    Problema stampa dati flexgrid

    Buonasera a tutti,

    stampo (uso PREVIEW) i dati di una FlexGrid
    codice:
    passoV = 10
        For i = 1 To .Rows - 1
             Preview.PrintOut passoV, 15, .TextMatrix(i, 3)
           passoV = passoV + 6
        Next i
    ho pensato di inserire un ciclo per le colonne

    codice:
     passoV = 10
      passoO = 15
           For i = 1 To .Rows - 1
            For z = 3 To 13
          Preview.PrintOut passoV, passoO, MSFlexGrid1.TextMatrix(i, z)
             passoV = passoV + 6
             passoO = passoO + 10
         Next z, i
    in modo da stampare tutti i dati della Flex



    ma di fatto stampa :
    il 1° dato del 1° rigo in posizione 10,15
    il 2° dato del 2° rigo in posizione 16,25

    e così via. generando di fatto una diagonale di dati.

    non riesco a venirne a capo.
    Eppure sono convinto che i due cicli siano giusti.
    Dov'è l'errore ?

  2. #2
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    Scusate ho scritto colonne intendo rigo.

  3. #3
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,320
    Blogs
    5
    E' ovvio che sbagli a posizionare l'incremento di passoV

    Non va certo nel ciclo interno, ma nel ciclo esterno
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  4. #4
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    E' ovvio che sbagli a posizionare l'incremento di passoV

    Non va certo nel ciclo interno, ma nel ciclo esterno
    Scusa ma non ho capito bene.
    se intendi

    codice:
    passoV = 10
     passoO = 15
    
     For i = 1 To .Rows - 1 
      For z = 3 To 13
        
            Preview.PrintOut passoV, passoO, .TextMatrix(i, z)
                 passoO = passoO + 10
         Next  z
            passoV = passoV + 6
        next i
    correggendo il codice in questo modo ottengo che dove finisce la prima colonna inzia la seconda e così via.
    certamente ho capito male.
    Il problema è, mi son dimenticato di esporlo bene, che i dati della 1° colonna devo stamparli nella 1° riga
    e così via per tutte le righe e tutte le colonne.
    mi sono incasinato proprio. Vero ?
    Scusami puoi essere più chiaro?
    Grazie

  5. #5
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,320
    Blogs
    5
    PassoO=15 va tra le due for ...

    Per distanziare le colonne usa un valore orizxontale maggiore

    Mi sembra una cosa così banale che non ci sono molti suggerimenti da dare e dovresti arrivarci in poco tempo da solo
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  6. #6
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    Ieri sera ero nel pallone e ho scritto un sacco di corbellerie. Stamattina, appena avrò un po' di tempo, proverò a trovare la soluzione.
    Grazie

  7. #7
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    Buonasera,
    Rileggendo i vari post mi sono accorto di non aver pubblicato la soluzione al problema che avevo posto un po' di tempo addietro.
    Grazie al suggerimento di Antonio ho risolto così :

    codice:
    With MSFlexGrid1
         
       passoO = 40
           For z = 3 To .Cols - 1 '13
                  passoV = 30
           For i = 1 To .Rows - 1
           
             Preview.PrintOut passoO, passoV, .TextMatrix(i, z)
             passoV = passoV + 12
             
            Next i
               passoO = passoO + 8
           Next z
        
     
     End With
    Scusatemi per il ritardo, spero di non aver infranto il regolamento, ma credo non sia giusto lasciare qualcosa in sospeso.
    Ciao

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi