Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

VB 2008, SQLite i stampanje custom SELECT upita

[es] :: .NET :: VB 2008, SQLite i stampanje custom SELECT upita

[ Pregleda: 1331 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1642
93.86.3.*

ICQ: 66444502


+47 Profil

icon VB 2008, SQLite i stampanje custom SELECT upita30.08.2009. u 22:14 - pre 178 meseci
Imam jednu manju SQLite bazu (file) i napravio sam manju poslovnu aplikaciju.
Sve je ovo prosto, ali kada sam dosao do stampanja tu je nastao problem. Nemam pojma kako da odstampam ono sto mi je u datagridview-u.
Sve radim programski - runtime (nadam se da ovo nije greska) i evo koda kojim punim datagridview:
Code:

Dim SQLconnect As New SQLite.SQLiteConnection()
Dim SQLcommand As New SQLite.SQLiteCommand


Dim results As DataSet = New DataSet
Dim database As String = path_to_db

'<remarks>
'Creating a ConnectionString pointing to the database file
'</remarks>
Dim datasource As SQLite.SQLiteConnectionStringBuilder = New SQLite.SQLiteConnectionStringBuilder()
datasource.Add("Data Source", database)
datasource.Add("Version", "3")
datasource.Add("New", "False")
datasource.Add("Compress", "False")

Dim connection As SQLite.SQLiteConnection = New SQLite.SQLiteConnection(datasource.ConnectionString)
Dim adapter As SQLite.SQLiteDataAdapter = New SQLite.SQLiteDataAdapter("SELECT ID_kon AS Šifra, br_konto AS Konto, naziv AS Naziv, klasa as Klasa, grupa AS Grupa FROM kontni_plan;", connection)
'<remarks>
'Populating the DataGridView
'</remarks>
adapter.Fill(results)
Form1.DataGridView1.DataSource = results.Tables(0).DefaultView


Ovo je samo jedan jednostavniji upit a ja negde u kodu imam i jos mnogo komplikovaniji upit koji bih zeleo da odstampam ali ne znam kako...
Znam kako da dodam CristalReport u projekat i nekako sam napravio neke spoljne konekcije ka bazi i ubacio tipicnu tabelu u report, ali to nije ono sto mi treba jer tabela kao tabela mi nista ne znaci, vec mi treba ukrstanje vise tabela.
Inace, jos uvek nisam shvatio kako se poziva stampanje tog reporta ali mislim da cu to sledece nauciti sa stranih linkova...
 
Odgovor na temu

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1642
93.86.3.*

ICQ: 66444502


+47 Profil

icon Re: VB 2008, SQLite i stampanje custom SELECT upita31.08.2009. u 00:33 - pre 178 meseci
E ovako, postigao sam nesto minimalno.
Dakle, na osnovu koda sa ovog sajta: http://vb.net-informations.com...port_from_sql_query_string.htm
i uporedjujci kod sa mojim kodom uocio sam jednu bitnu stvar (koju bi voleo da mi potvrdite) a to je da se DataSet objekat koji cuva podatke a da je Adapter objekat pomocni objekat koji puni DataSet objekat sa podacima.

Prvo sam u projekat dodao DataSet1 Item i uneo novu fiktivnu tabelu sa 9 polja i svima dao imena bas kao sto su mi imena polja u SQL upitu (posle AS naredbe).
Zatim sam ubacio i CrystalReport1 Item u projekat i kao DataSet kliknuo da bude bas ovaj novi i uneo ovu tabelu sa svim poljima. Polja u reportu su se lepo napravila.
Na formu sam prevukao CrystalReportViewer objekat.

I onda sam pogledao moj kod i nacin kako se report puni sa podacima i napravio ovu simbiozu:
Code:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim SQLconnect As New SQLite.SQLiteConnection()
        Dim SQLcommand As New SQLite.SQLiteCommand()

        Dim results As DataSet = New DataSet1
        Dim database As String = path_to_db

        Dim objRpt As New CrystalReport1

        Dim datasource As SQLite.SQLiteConnectionStringBuilder = New SQLite.SQLiteConnectionStringBuilder()
        datasource.Add("Data Source", database)
        datasource.Add("Version", "3")
        datasource.Add("New", "False")
        datasource.Add("Compress", "False")

        Dim adapter As SQLite.SQLiteDataAdapter

        Dim connection As SQLite.SQLiteConnection = New SQLite.SQLiteConnection(datasource.ConnectionString)


        adapter = New SQLite.SQLiteDataAdapter("SELECT ID_gk AS ID, datum_knj AS 'Datum knjiženja', datum_dok AS 'Datum dokumenta', br_dok AS 'Broj dokumenta', (SELECT naziv FROM dokumenti WHERE ID_dok = glavna_knjiga.vrsta_dok) AS 'Dokument'," & _
                                                                               "(SELECT br_konto FROM kontni_plan WHERE ID_kon = glavna_knjiga.ID_kon) AS 'Konto',(SELECT ime FROM komitenti WHERE ID_kom = glavna_knjiga.ID_kom) AS Komitent, iznos_dug AS 'Duguje', iznos_pot AS 'Potražuje' FROM glavna_knjiga;", connection)
        adapter.Fill(results)

        objRpt.SetDataSource(results.Tables(0))
        objRpt.Refresh()
        CrystalReportViewer1.ReportSource = objRpt
        CrystalReportViewer1.Refresh()
    End Sub


Na zalost nece da radi. Tacnije prikaze mi Report koji ima Headers-e polja tabele ali nema podataka.
Zanimljiva stvar je da ako u kodu promenim nacin deklarisanja DataSeta (results) sa
Code:

Dim results As DataSet = New DataSet1

na
Code:

Dim results As DataSet = New DataSet

(bez jedinice) dobijem skroz prazan report.
Isto dobijem prazan report ako promenim i broj tabele koju ispisujem
Code:

objRpt.SetDataSource(results.Tables(1))


Inace, imam problem i sa default konekcijom na bazu i CrystalReportom.
Znaci ja napravim DataSet sa direktnim konektorom ka bazi i tabelama u njoj. Sve lepo nadje i napravi konekciju sasvim lepo.
Sa takvim DataSetom napravim Report, lepo se kreiraju polja ali opet kada se pokrene Viewer ne prikazu se podaci samo nazivi kolona.
Nemam pojma sta da radim.... a ne zelim da menjam tip baze!
 
Odgovor na temu

ksrele
Programer - informatičar
Gold Drink D.O.O. Subotica
Subotica

Član broj: 14253
Poruke: 1642
93.86.3.*

ICQ: 66444502


+47 Profil

icon Re: VB 2008, SQLite i stampanje custom SELECT upita31.08.2009. u 16:09 - pre 178 meseci
Haha, resio sam problem...
Resenje sam vec bio juce pokusavao ali nije mi tada radilo.
Dakle, konacan kod je:
Code:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim SQLconnect As New SQLite.SQLiteConnection()
        Dim SQLcommand As New SQLite.SQLiteCommand()

        Dim results As DataSet = New DataSet1
        Dim database As String = path_to_db

        Dim objRpt As New CrystalReport1

        Dim datasource As SQLite.SQLiteConnectionStringBuilder = New SQLite.SQLiteConnectionStringBuilder()
        datasource.Add("Data Source", database)
        datasource.Add("Version", "3")
        datasource.Add("New", "False")
        datasource.Add("Compress", "False")

        Dim adapter As SQLite.SQLiteDataAdapter

        Dim connection As SQLite.SQLiteConnection = New SQLite.SQLiteConnection(datasource.ConnectionString)


        adapter = New SQLite.SQLiteDataAdapter("SELECT bla, bla ,bla FROM table WHERE uslov;", connection)
        adapter.Fill(results)

        objRpt.SetDataSource(results.Tables(1))
        objRpt.Refresh()
        CrystalReportViewer1.ReportSource = objRpt
        CrystalReportViewer1.Refresh()
End Sub


P.S.
Inace, nekako mi se seljast ovaj CrystalReport. Samo njegovo funkcionisanje je onako, relativno OK, ali fali tu jos neke funcionalnosti a da ne kazem da totalno nije userfriendly... Namucio sam se ko kreten da skontam kako da ga sprecim da mi obican broj (recimo 22) ne prikazuje kao 22,00 vec bas kao 22. Nigde nema tog formatiranja ili ga ja ne znam naci.
Poz svima koji su novi u programiranju i savet: nemojte se predati kada nesto trazite po netu, neke primere, samo burlajte i burlajte, sto vise primera vidite (pa makar oni i nemali mnogo veze sa tim sto vama treba) bice u svakom slucaju korisni jer cete nauciti nesto iz njih i ukombinovati za to sto vam treba.
 
Odgovor na temu

[es] :: .NET :: VB 2008, SQLite i stampanje custom SELECT upita

[ Pregleda: 1331 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.