Ciao
Basta che passi il valore della query alla classe del report, la puoi gestire in tante maniere, per esempio puoi metterla anche direttamente quì:
classe report:
Public Function Data(miaquery As String)
e quando lanci la stampa:
pdf = New miastampa("Portrait", "mm", "A4")
pdf.Open()
pdf.AliasNbPages()
pdf.Data(miaquery) '''<<------------
pdf.Output(MyReport, False)
....
sicuramente lo saprai... ma mi vuoi far 'studiare', anche perchè non è un tuo progetto, quindi t'interessa poco...
:) Visto che adesso devi studiarti Gridbox ti passo questa funzione
Public Sub aprifile($dir As String, $filtro As String, $testofiltro As String, $testomaschera As String) As String
Dialog.Path = $dir
Dialog.Filter = [$filtro, $testofiltro]
Dialog.Title = $testomaschera
If Dialog.OpenFile() Then Return
Return Dialog.Path
End
Public Sub Importcsv()
Dim myfile As String
Dim csvFile As File
Dim textLine As String
Dim items As String[]
Dim sql As String
Dim separatore As String = ","
myfile = aprifile(User.Home, "*.csv", "CSV", "Apri file CSV")
If myfile Then
csvFile = Open myfile For Read
While Not Eof(csvFile)
Line Input #csvFile, textLine
items = Split(textLine, separatore)
sql = "INSERT INTO rubrica ("
sql &= " cognome"
sql &= ", nome"
sql &= ", indirizzo"
sql &= ", citta"
sql &= ", provincia"
sql &= ")VALUES ("
sql &= "'" & Replace(items[0], "'", "''") & "'"
sql &= ", '" & Replace(items[1], "'", "''") & "'"
sql &= ", '" & Replace(items[2], "'", "''") & "'"
sql &= ", '" & Replace(items[3], "'", "''") & "'"
sql &= ", '" & Replace(items[4], "'", "''") & "'"
sql &= ");"
ModConn.$conn.Exec(sql)
sql = ""
Wend
Close #csvFile
Endif
Catch
Try Close #csvFile
End
Ciao
La funzione che ti ho passato è proprio per importare un file di testo (in questo caso file csv) in un database.
Inserisci la funzione nell'esempio rubrica che ti ho postato qualche giorno fà, crea un nuovo pulsante, e mettici dentro questo:
Public Sub Bottone_Click()
Importcsv()
riempigrid()
End
importcsv serve a importare i dati, riempigrid è per aggiornare la griglia.
Naturalmete prima di fare ciò devi avere un file di testo che interessi alla funzione, se la guardi vedrai che va a leggere 5 elementi di ogni riga, e va a scriverlo in 5 campi di un database, nel nostro caso : Cognome, Nome, indirizzo, città, e provincia.
quindi crea un nuovo file e scrivi così dentro:
Rossi,Mario,Via gino,milano,padova
Bianchi,gino,via dopo,largo,roma
salva con nome prova.csv e puoi provare
i campi nel file di teto sono separati dalla virgola e nella funzione vedi che "separatore" è dichiarato virgola ----> Dim separatore As String = ","
Quindi basta che ti adatti la funzione in base al file che devi importare.
Spero di essere stato chiaro
Ciao
ok avanti :)
La funzione mi sono accorto che non poteva funzionare perchè prima di creare un nuovo database bisogna chiudere quello precedente, quindi $conn che è il database va chiuso così $conn.close.
quindi lasciamo stare la funzione controlladb che serve all'avvio e ne facciamo un'altra sotto, praticamente uguale, aggiungendo però prima di tutto il comando per chiudere il database. Inoltre per passare il nome del database..ormai hai capito come faccio di solito
Public Sub creadb(nomedb As String)
$conn.Close
If Not Exist(sqlitePercorso & "/" & nomedb) Then
If Message.Question("Il database non esiste!, Lo creo?", "Si") = 1 Then
With $conn
.Type = "sqlite3"
.Host = sqlitePercorso
End With
$conn.Open
$conn.Databases.Add(nomedb)
$conn.Close
$conn.Name = nomedb
$conn.Open()
creatabella()
Endif
Endif
End
Public Sub creadb(nomedb As String) nomedb è il nome del database, in questo modo puoi passare tutte le informazioni che vuoi, per esempio se vuoi far passare anche il percorso:
Public Sub creadb(nomedb As String, percorso as String)
ok?
quindi sul pulsante che vai a mettere nel form