Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22

Discussione: scrollbar nel form

  1. #11
    Utente di HTML.it L'avatar di sanny82
    Registrato dal
    Mar 2003
    Messaggi
    689
    e come faccio a dirgli di andare nella pagina sucessiva quando è finito il foglio???
    Desso mi ha fatto giusto il primo foglio ma dopo mi ha scritto un text alla volta in 143 fogli diversi...
    come posso fare?
    grazie ancora
    una parola è poca e due sono troppe

  2. #12
    C'è il metodo NewPage... ricordati di azzerare CurrentX e CurrentY, altrimenti ti stampa diecimila fogli!
    Chi non cerca trova.

  3. #13
    Utente di HTML.it L'avatar di sanny82
    Registrato dal
    Mar 2003
    Messaggi
    689
    l'ho messo ma non funziona benissimo...

    Ho messo così:
    codice:
    if top >12000 then
    Top=400
    print.Newpage
    End if
    if top >24000 then
    Top=400
    print.Newpage
    End if
    mi fa bene la prima, dopo mi scrive una riga per foglio e l'ultimo foglio me lo fà bene...
    dove sbaglio-????????
    grazie mille
    una parola è poca e due sono troppe

  4. #14
    codice:
    Printer.Top = 400
    Chi non cerca trova.

  5. #15
    Utente di HTML.it L'avatar di sanny82
    Registrato dal
    Mar 2003
    Messaggi
    689
    buongiorno...
    Ho provato a fare come hai detto ma non mi accetta il comando...
    Printer.Top non è valido...
    un'altra idea..
    grazie ancora
    una parola è poca e due sono troppe

  6. #16
    Oops, l'ultimo messaggio l'ho proprio cannato!
    L'oggetto Printer si usa così:
    codice:
    'stampa di 150 righe
    Dim i As Integer
    
    Printer.ScaleMode = vbMillimeters
    Printer.Font.Name = "Verdana"
    Printer.Font.Size = 12
    
    For i = 1 To 150
        'controllo limite pagina
        If Printer.CurrentY + Printer.TextHeight("|") > Printer.ScaleHeight Then
            Printer.NewPage
        End If
    
        'stampa testo
        Printer.Print "Questa che vedi è la riga n. " & Format$(i, "000")
    Next
    
    'fine documento
    Printer.EndDoc
    Chi non cerca trova.

  7. #17
    Utente di HTML.it L'avatar di sanny82
    Registrato dal
    Mar 2003
    Messaggi
    689
    non funziona mi stampa 354 pagine...
    la prima la fà giusta le altre no...
    una parola è poca e due sono troppe

  8. #18
    Posta il tuo codice... l'esempio che ti ho dato funziona da te?
    Chi non cerca trova.

  9. #19
    Utente di HTML.it L'avatar di sanny82
    Registrato dal
    Mar 2003
    Messaggi
    689
    sì funziona ma quando gli inserisco il mio codice sballa tutto...
    ora te lo posto:

    codice:
    Private Sub Form_Load()
    Dim i As Integer
    
    Printer.ScaleMode = vbMillimeters
    Printer.Font.Name = "Verdana"
    Printer.Font.Size = 12
    
    
       o = 1
     Top = 400
        v = 1
     Topv = 400
     Left = 6500
     Left_descr = 2000
     Left_umg_ass = 5800
     Left_descr_comp = 8000
     Left_umg_comp = 12000
     Left_coeff = 12800
     i = 20
     Open "C:\dati.txt" For Output As #2
      Open "c:\Documents and Settings\Beppe\Desktop\PRODB.txt" For Input As #1
    
            While Not EOF(1)
               Line Input #1, stringa
                
      Ident_assieme = Mid(stringa, 4, 20)
      Descr_assieme = Mid(stringa, 45, 50)
      Umg_assieme = Mid(stringa, 95, 2)
      Ident_componente = Mid(stringa, 171, 20)
      Descr_componente = Mid(stringa, 191, 50)
      Umg_componente = Mid(stringa, 241, 2)
      Coeff_impiego = Mid(stringa, 243, 13)
      r = Form4.Text1.Text
      r = r - 1
        
      Do While Not r = 0
      Ident = Form4.MSFlexGrid1.TextMatrix((r), 0)
       
      If Ident_assieme = Ident Then
      If Not q = qv Then
      q = o - v
       If o < v Then
       v = v - 2
       q = o - v
       End If
     End If
      If Not Ident_assieme = Text(q).Text Then
      Top = Topv
      Load Text(o)
      
      Text(o).Text = Ident
      Text(o).Top = Top
      Text(o).Visible = True
      Text(o).Width = 1300
      Text(o).Height = 60
      
    Printer.CurrentY = Top
    Printer.Print Text(o).Text & Format$(i, "000")
    
    
      Print #2, Text(o)
      
        q = o
        qv = o
        o = o + 1
        
      Load Text(o)
      Text(o).Text = Descr_assieme
      Text(o).Top = Top
      Text(o).Visible = True
      Text(o).Left = Left_descr
      Text(o).Width = 3500
      Text(o).Height = 60
      Printer.CurrentY = i
      Printer.CurrentX = Left_descr
    Printer.Print Text(o).Text & Format$(i, "000")
    
      Print #2, Text(o)
      
        o = o + 1
        
        
        Load Text(o)
      Text(o).Text = Umg_assieme
      Text(o).Top = Top
      Text(o).Left = Left_umg_ass
      Text(o).Visible = True
      Text(o).Width = 500
      Text(o).Height = 60
      Printer.CurrentY = i
      Printer.CurrentX = Left_umg_ass
    Printer.Print Text(o).Text & Format$(i, "000")
    
      Print #2, Text(o)
      
        o = o + 1
        
        
        
        
      End If
      
      
     Load Text(o)
      Text(o).Text = Ident_componente
      Text(o).Top = Topv
      Text(o).Visible = True
      Text(o).Left = Left
      Text(o).Width = 1300
      Text(o).Height = 60
      Printer.CurrentY = i
      Printer.CurrentX = Left
    
    Printer.Print Form9.Text(o).Text & Format$(i, "000")
    
      Print #2, Text(o)
      
      o = o + 1
      
      Load Text(o)
      Text(o).Text = Descr_componente
      Text(o).Top = Topv
      Text(o).Visible = True
      Text(o).Left = Left_descr_comp
      Text(o).Width = 3700
      Text(o).Height = 60
      Printer.CurrentY = i
      Printer.CurrentX = Left_descr_comp
    
    Printer.Print Text(o).Text & Format$(i, "000")
    
      Print #2, Text(o)
      
      o = o + 1
      
      Load Text(o)
      Text(o).Text = Umg_componente
      Text(o).Top = Topv
      Text(o).Visible = True
      Text(o).Left = Left_umg_comp
      Text(o).Width = 500
        Text(o).Height = 60
        Printer.CurrentY = i
      Printer.CurrentX = Left_umg_comp
    
    Printer.Print Text(o).Text & Format$(i, "000")
    
        Print #2, Text(o)
        
      o = o + 1
      
      Load Text(o)
      Text(o).Text = Coeff_impiego
      Text(o).Top = Topv
      Text(o).Visible = True
      Text(o).Left = Left_coeff
      Text(o).Width = 2300
      Text(o).Height = 60
       Printer.CurrentY = i
      Printer.CurrentX = Left_coeff
    
    Printer.Print Text(o).Text & Format$(i, "000")
    
      Print #2, Text(o)
      
      Topv = Topv + 260
      If Printer.CurrentY + Printer.TextHeight("|") > Printer.ScaleHeight Then
            Printer.NewPage
            i = 10
        End If
    
    
      v = v + 6
        o = o + 1
     
     End If
      i = i + 20
      r = r - 1
        Loop
          
      Wend
        Close (1)
       
    Printer.EndDoc
        
        
    Close #2
        
    End Sub
    grazie mille per l'aiuto
    una parola è poca e due sono troppe

  10. #20

    OT

    Non te la prendere, ma il codice da te riportato è illeggibile, in quanto:
    [list=1][*]non hai spiegato cosa dovrebbe fare il programma[*]non hai incluso nel codice nemmeno un commento per spiegare i vari blocchi[*]non usi correttamente il TAB per spostare i sottoblocchi, come nell'esempio che segue:[/list=1]
    codice:
    'il tuo codice...
     Open "C:\dati.txt" For Output As #2
      Open "c:\Documents and Settings\Beppe\Desktop\PRODB.txt" For Input As #1
    
            While Not EOF(1)
               Line Input #1, stringa
                
      Ident_assieme = Mid(stringa, 4, 20)
      Descr_assieme = Mid(stringa, 45, 50)
      Umg_assieme = Mid(stringa, 95, 2)
    
      '...
    
      If Ident_assieme = Ident Then
      If Not q = qv Then
      q = o - v
       If o < v Then
       v = v - 2
       q = o - v
       End If
     End If
        
      '...
    
      End If
    
      '...
      Wend
        Close (1)
       
    Printer.EndDoc
    Nel tuo codice si vede dove inizia il While ma si fa una fatica terribile a trovare il Wend, i blocchi If sono tutti sulla stessa tabulazione e non si sa quando cominciano e quando finiscono. Mi chiedo cosa capirai tu stesso, riprendendo in mano il codice tra un mese! Guarda ora lo stesso codice risistemato:
    codice:
    'lo stesso codice ma un po' più leggibile...
    Open "C:\dati.txt" For Output As #2
    Open "c:\Documents and Settings\Beppe\Desktop\PRODB.txt" For Input As #1
    
    While Not EOF(1)
        Line Input #1, stringa
            
        Ident_assieme = Mid(stringa, 4, 20)
        Descr_assieme = Mid(stringa, 45, 50)
        Umg_assieme = Mid(stringa, 95, 2)
    
        '...
    
        If Ident_assieme = Ident Then
            If Not q = qv Then
                q = o - v
                If o < v Then
                    v = v - 2
                    q = o - v
                End If
            End If
    
        '...
    
        End If
    
        '...
    Wend
    
    Close (1)
       
    Printer.EndDoc
    Se tu imparassi ad usare correttemente il tasto TAB (e a commentare il codice), usandolo ogni volta che crei un blocco di codice (per esempio subito sotto le istruzioni If, Wend, Do, For, Select eccetera) scopriresti più facile trovare gli errori da solo, in quanto il codice è più ordinato e leggibile. Inoltre hai più possibilità che qualcuno nel forum ti possa aiutare veramente!
    Chi non cerca trova.

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.