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

    Utilizzo di Printer

    Salve,


    Dovrei stampare tramite un applicazione VB6, ed avevo pensato (dopo disperati tentativi senza successo uilizzando pdf e rtf), di passare alla classe Printer, per stampare direttamente i riultati di una SELECT di access, senza craere prima un file...

    Qualcuno sa dirmi se tramite questa classe posso creare una tabella su cui inserire i dati, e genrare anche un'intenstazione prima della tabella, che risulti comunque buona (per quanto riguarda il layout)?

    Se qualcuno ha qualche link o suggerimento da passarmi, oppure se mi consiglia l'utilizzzo di un'altra classe, li accetto molto volentieri...


    Grazie

  2. #2
    Ho fatto un piccolo passo avanti, il codice è questo

    codice:
    Private Sub RiempiCombo()
      Dim prn As Printer
      'Aggiungiamo per prima la stampante predifinita
      stampanti.AddItem Printer.DeviceName
      
      For Each prn In Printers
        'Se la stampante non è quella predefinita la andiamo ad inserire in quanto non è ancora stata aggiunta
        If prn.DeviceName <> Printer.DeviceName Then
            stampanti.AddItem prn.DeviceName
        End If
      Next
      stampanti.ListIndex = 0
    End Sub
    
    
    Private Sub stampanti_Click()
      Dim prn As Printer
      For Each prn In Printers
        If prn.DeviceName = stampanti.Text Then
          Set Printer = prn
          Exit For
        End If
      Next
    End Sub
    
    
    
    Private Sub tastostampa_Click()
        
        For T = 0 To Form1.operazioni.ApproxCount - 1 ' legge dalla prima all'ultima riga di datagrid1
            Form1.operazioni.Row = T
            For ColonnaGrid = 0 To 8 - 1
                Form1.operazioni.Col = ColonnaGrid
                Printer.Print Form1.operazioni.Text ' stampa la colonna 0 riga t
            Next ColonnaGrid
        Next T
    
    End Sub
    Il problema è questo, sto stampando una datagrid, le pagine totali da stampare ono 3, però tutte le volte quando ono a emtà del secondo foglio (quindi metà stampa), si blocca e finchè non chiudo il mio eseguibile non riprende a stampare....

    Una volta chiusa l'applicazione infatti rinizia a stampare tutto il documento fino alla fine senza problemi...


    Quacuno sa darmi una spiegazione?


    Grazie

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Onestamente, con tutti gli strumenti di reporting che esistono al mondo, mi sembra una fatica sprecata utilizzare l'oggetto Printer per ricostruire un motore di stampa da zero.

    Il layout è solo il primo dei problemi: dovrai anche occuparti di sapere quante pagine produci, gestire tutte le caratteristiche peculiari di ciascuna stampante supportata e affrontare tante di quelle problematiche che pensare al layout significa "grattare" solamente la superficie...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Uhh, che cosa mi consigliate?

    L'applicazione che sto sviluppando la devo vendere, quindi ho bisogno di una classe che si utilizzabile anche per questo scopo, che cosa potrei utilizzare?

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da SkOrPiOn`87
    L'applicazione che sto sviluppando la devo vendere, quindi ho bisogno di una classe che si utilizzabile anche per questo scopo, che cosa potrei utilizzare?
    Crystal Report? DataReport?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    codice:
        With Form1.rs5
            .ActiveConnection = Form1.objConn
            .CursorLocation = adUseServer
            .CursorType = adOpenKeyset
            .LockType = adLockOptimistic
            .Properties("IRowsetIdentity") = True
            
            .Open Form1.filtroSQL, , , , adCmdText
        End With
        
        Set Form1.Adodc5.Recordset = Form1.rs5
        Set DataReport1.DataSource = Form1.Adodc5
        initReport = True
    HO inserito questo codice nel mio datareport, però quando mi viene mostrata l'anteprima di stampa vedo solo pagine bianche... che variano a seconda della query, quindi decuco che i record vengono presi correttamenti però è come se me li scrivesse di bianco nei fogli...


    Qualcuno sa dirmi dove sbaglio?

    Grazie

  7. #7
    Sono riuscito tramite un datareport a creare il mio layout di stampa, ma ho soltanto un problema...

    Volendo stampare i dati di una datagrid, avrei bisogno di inserire i dati in una "spece di tabella", e ci sono riuscito, soltanto non sono visibili le righe, ed essendo molti dati uno sotto l'altro, quando si vanno a leggere c'è il rischio di confondere le righe...

    Avrei bisngo di disegnare le righe, però o dei problemi, io le avevo disegnate manualmente con Visual Studio (RptLine), soltanto che nel caso un campo richieda più di una riga e vada a capo, la righe non prosegui ma si ferma alla lunghezza della prima essendo stata creata staticamente...

    Qualcuno sa dirmi come posso mostrere le righe?


    Grazie

  8. #8
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao SkOrPiOn`87,
    rispondo per quanto ho capito dal tuo post (poco chiaro).
    Per inserire delle righe orizzontali usa il controllo RptLine, che posizionerai sotto l'ultimo controllo messo in Section1 . Automaticamente la riga sarà riprodotta per ciascuna linea di numeri o testo del DR.
    LM

  9. #9
    In effetti con l'italiano faccio schifo

    Cmq si il problema era questo, infatti ho messo le righe orizzontali, però il problema è nelle righe verticali, cmq va benisssimo anche così, i dati risultano più leggibili e si evita di incasinare troppo la stampa

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.