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

Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 2010

[es] :: .NET :: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 2010

Strane: 1 2

[ Pregleda: 5776 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201019.05.2014. u 07:50 - pre 120 meseci
Pozdrav svima..
Zamolio bih sve iskusnije programere ako mogu da mi pomognu, relativno sam nov u VBu i zavrsio sam svoj prvi program (aplikaciju), koja sada to sto odradi i prikazuje u datagrid viewu, isto treba i da otprinta na A4 Landscape, te ako znate bilo bi dobro da mi pojasnite kako iste podatke da snimim i u excelovom fajlu, ali print je prioritet za sada, jer mi je hitno potrebno...

Prilozicu dio koda koji se odnosi na print i koji printa, ali ima gresaka (ne znam koje su), jer kada prvi put iz aplikacije pokrenem print printa sve ok s tim sto ne povlaci zadnji uneseni rezultat.... Nakon toga nista ne moram raditi samo opet pokrenuti print opciju i tada printa sve rezultate, ali ne printa header tabela, nazive kolona, vec izbaci samo rezultate.... Medjutim ako lista ima vise unosa i prelazi na drugi list papira, u tom slucaju na prvom listu prikazuje samo rezultate bez headera, a na ostalim listovima prikazuje sve i nazive kolna, kao i rezultate...

Meni je potrebno da povlaci sve rezultate, i da na svakom listu prvo ide naziv kolona (header) pa ispot rezultati... Jos jedna napomena, prilaz u dgridu se ne snima u access jer mi je potrebna prazna tabela prilkom novog pokretanja... ti podaci kasnije ne trebaju u toj aplikaciji.. (ovo kazem ako mozda ima neke veze sa problemom, mada nebi trebalo da je do toga)...

Unaprijed Vam se zahvaljujem i nadam se sto brzoj pomoci...

********************
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
'Formatiranje datagrida
With DataGridView1
Dim fmt As StringFormat = New StringFormat(StringFormatFlags.LineLimit)
fmt.LineAlignment = StringAlignment.Center
fmt.Trimming = StringTrimming.EllipsisCharacter

'Format Headera
Dim prFont As New Font("Verdana", 22, GraphicsUnit.Point)
Dim siFont As New Font("Verdana", 9, GraphicsUnit.Point)
Dim hdrFont As New Font("Verdana", 10, FontStyle.Bold)
Dim y As Single = e.MarginBounds.Top
Dim strInfo As String

'uslovna promenjiva
If PrintDocument1.DefaultPageSettings.Landscape Then
strInfo = "Kupac: " & kupaclista.Text & " // Datum dolaska upita: " & DateTimePicker1.Text & " // Broj upita: " & brojupita.Text
e.Graphics.DrawString(vbTab & "" & "", prFont, Brushes.Black, 60, 40)
e.Graphics.DrawString(strInfo, siFont, Brushes.Black, 110, 80)
PrintPreviewDialog1.Document = PrintDocument1

PrintDocument1.DefaultPageSettings.Margins.Left = 20
PrintDocument1.DefaultPageSettings.Margins.Right = 20
PrintDocument1.DefaultPageSettings.Margins.Top = 40
PrintDocument1.DefaultPageSettings.Margins.Bottom = 20
y = 120
Else
MsgBox("Ovaj prozor se pojavljuje kada odustanete od štampanja ili u slučaju da niste u opcijama čekirali 'Landscape'. U lijevom dijelu ekrana zaustavite štampanje klikom na 'Cancel', a zatim u ovom prozoru potvrdite klikom na 'OK'. Prilikom novog pokušaja štampanja potrebno je da u opcijama čekirate 'Landscape'.")

End If

'format hedera datagrida
Do While mRow < .RowCount
Dim row As DataGridViewRow = .Rows(mRow)
Dim x As Single = e.MarginBounds.Left
Dim h As Single = 0

For Each cell As DataGridViewCell In row.Cells
Dim rc As RectangleF = New RectangleF(x, y, cell.Size.Width, cell.Size.Height)
'Format pravougaonika
e.Graphics.DrawRectangle(Pens.Black, rc.Left, rc.Top, rc.Width, rc.Height)
If (newpage) Then
'Format headera
e.Graphics.DrawString(DataGridView1.Columns(cell.ColumnIndex).HeaderText, .Font, Brushes.Red, rc, fmt)
Else
'Format Tabele
e.Graphics.DrawString(DataGridView1.Rows(cell.RowIndex).Cells(cell.ColumnIndex).FormattedValue.ToString(), .Font, Brushes.Blue, rc, fmt)
End If

'Brojanje redova
x += rc.Width
h = Math.Max(h, rc.Height)
Next
newpage = False
y += h
mRow += 1
If y + h > e.MarginBounds.Bottom Then
e.HasMorePages = True
mRow -= 1
newpage = True
Exit Sub
End If
Loop
mRow = 0
End With
*****************************
Private Sub btnstampanje_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnstampanje.Click
'dugme za stampanje liste
DataGridView1.Update()
PrintPreviewDialog1.Update()
PrintDialog1.Document = PrintDocument1
PrintDialog1.ShowDialog()
PrintDocument1.Print()

End Sub
*****************************
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201019.05.2014. u 07:55 - pre 120 meseci
Jos da dodam...

Na youtube sam trazio i pronasao tutorijal koji bi meni mogao pomoci, ali u mom visual studiu koji koristim (2010) nema te opcije, a ona bi bila rjesenje i za print i snimanje u excelovom fajlu. Link: https://www.youtube.com/watch?v=l1k37cfdd8w
 
Odgovor na temu

PeleZr
Petrovic Igor
Zrenjanin

Član broj: 237267
Poruke: 47
*.dynamic.sbb.rs.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201019.05.2014. u 09:02 - pre 120 meseci
Sto se tice stampe header -a, verovatno ne resetujes promenjivu newPage. Mislim da je problem u tome sto si je deklarisao u konstruktoru, ili gde vec na true, ona se posle prvog stampanja postavi na false, a kasnije je ne vracas na true i to je po mom misljenju razlog zbog kojeg nemas header -a na prvoj stranici.
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201019.05.2014. u 09:24 - pre 120 meseci
Pozdrav Igore, dali imate vremena i ako ste voljni, da Vam posaljem kompletnu aplikaciju pa da pogledate, ja pokusavam ali uzaludno...

Isto me buni kada recimo prvi put pokrenem print preview i drugi put ne pookazuje mi isto tabelu... (a sta god se desava u printpreviewu tako isto bude i na listu papira)
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201020.05.2014. u 06:07 - pre 120 meseci
Zar nitko nema na forumu ko bi mi mogao pomoci? Znate li bar mjesto gdje mogu poronaci pomoc? Dosta sam googlao, ima tu stvari ali nisam nikako uspjeo prilagoditi svojoj aplikaciji....
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201020.05.2014. u 07:25 - pre 120 meseci
Mozete se javiti i putem emaila, za rjesenje kompletnog problema (ispis da radi kako treba i snimanje u excelovom fajlu) slijedi pristojna naknada.
 
Odgovor na temu

PeleZr
Petrovic Igor
Zrenjanin

Član broj: 237267
Poruke: 47
*.dynamic.sbb.rs.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201020.05.2014. u 10:36 - pre 120 meseci
Pretpostavljam da si kod preuzeo odavde, pogledaj odgovor pod rednim brojem 4 mozda ti pomogne.

Ili postavi kod kompletne klase (koristi code tag), pa mozda neko i nadje gresku
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201020.05.2014. u 15:28 - pre 120 meseci
Ne nego sa: http://stackoverflow.com/quest...on-visual-basicaccess-database

a evo i kod moje aplikacije>

Code:

Public Class Form1

    Dim materijalkg As Double
    Dim KMmaterijal As Double
    Dim KMukupno As Double

    Dim sjec As Double
    Dim brus As Double
    Dim kon As Double
    Dim var As Double
    Dim eroz As Double
    Dim pak As Double

    Dim glodvm10 As Double
    Dim glodvm42 As Double
    Dim glodvm84 As Double
    Dim glodborv As Double
    Dim glodhele As Double
    Dim glod5osn As Double

    Dim termobr As Double
    Dim brun As Double
    Dim cin As Double
    Dim farb As Double

    Dim strhur As Double
    Dim strmon As Double

    Dim ost As Double

    Dim mRow As Integer = 0
    Dim newpage As Boolean = True

    Dim pi As Double
    Dim prec As Double
    Dim h As Double
    Dim zap As Double

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'DatabaseDataSet1.lista' table. You can move, or remove it, as needed.
        Me.ListaTableAdapter1.Fill(Me.DatabaseDataSet1.lista)

        ListaBindingSource1.AddNew()

    End Sub

    Private Sub ZatvoriProgramToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ZatvoriProgramToolStripMenuItem.Click
        'Izlaz iz programa
        End

    End Sub

    Private Sub btnKalkulacija_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKalkulacija.Click
        'Pocetak koda koji izracunava ukupnu tezinu i cijenu neobradjenog materijala

        If valjak.Checked = True And listamaterijala.Text = "Plastika" Then
            pi = 3.14
            h = visina.Text
            prec = precnik.Text
            zap = ((prec * prec) * pi / 4) * h

            materijalkg = zap * 0.00000112
            KMmaterijal = materijalkg * 12

            ukmatkg.Text = materijalkg
            cijenamaterijala.Text = KMmaterijal

        ElseIf valjak.Checked = False And listamaterijala.Text = "Plastika" Then
            materijalkg = (dimenzije1.Text * dimenzije2.Text * dimenzije3.Text) * 0.00000112
            ukmatkg.Text = materijalkg

            KMmaterijal = materijalkg * 12
            cijenamaterijala.Text = KMmaterijal

        End If

        If valjak.Checked = True And listamaterijala.Text = "ST-37/52 željezo" Then
            pi = 3.14
            h = visina.Text
            prec = precnik.Text
            zap = ((prec * prec) * pi / 4) * h

            materijalkg = zap * 0.00000787
            KMmaterijal = materijalkg * 1

            ukmatkg.Text = materijalkg
            cijenamaterijala.Text = KMmaterijal

        ElseIf valjak.Checked = False And listamaterijala.Text = "ST-37/52 željezo" Then
            materijalkg = (dimenzije1.Text * dimenzije2.Text * dimenzije3.Text) * 0.00000787
            ukmatkg.Text = materijalkg

            KMmaterijal = materijalkg * 1
            cijenamaterijala.Text = KMmaterijal

        End If

        If valjak.Checked = True And listamaterijala.Text = "16 Mn CR5 željezo" Then
            pi = 3.14
            h = visina.Text
            prec = precnik.Text
            zap = ((prec * prec) * pi / 4) * h

            materijalkg = zap * 0.00000787
            KMmaterijal = materijalkg * 3

            ukmatkg.Text = materijalkg
            cijenamaterijala.Text = KMmaterijal

        ElseIf valjak.Checked = False And listamaterijala.Text = "16 Mn CR5 željezo" Then
            materijalkg = (dimenzije1.Text * dimenzije2.Text * dimenzije3.Text) * 0.00000787
            ukmatkg.Text = materijalkg

            KMmaterijal = materijalkg * 3
            cijenamaterijala.Text = KMmaterijal

        End If

        If valjak.Checked = True And listamaterijala.Text = "Aluminij" Then
            pi = 3.14
            h = visina.Text
            prec = precnik.Text
            zap = ((prec * prec) * pi / 4) * h

            materijalkg = zap * 0.00000277
            KMmaterijal = materijalkg * 6

            ukmatkg.Text = materijalkg
            cijenamaterijala.Text = KMmaterijal

        ElseIf valjak.Checked = False And listamaterijala.Text = "Aluminij" Then
            materijalkg = (dimenzije1.Text * dimenzije2.Text * dimenzije3.Text) * 0.00000277
            ukmatkg.Text = materijalkg

            KMmaterijal = materijalkg * 6
            cijenamaterijala.Text = KMmaterijal

        End If
        'Kraj koda koji izracunava ukupnu tezinu i cijenu neobradjenog materijala

        'Pocetak koda koji prazna polja definise kao 0 vrijednost
        If sjecenje.Text = "" Then
            sjecenje.Text = "0"
        End If

        If glodanjevm10.Text = "" Then
            glodanjevm10.Text = "0"
        End If

        If glodanjevm42.Text = "" Then
            glodanjevm42.Text = "0"
        End If

        If glodanjevm84.Text = "" Then
            glodanjevm84.Text = "0"
        End If

        If glodanjeborver.Text = "" Then
            glodanjeborver.Text = "0"
        End If

        If glodanje5osne.Text = "" Then
            glodanje5osne.Text = "0"
        End If

        If glodanjeheler.Text = "" Then
            glodanjeheler.Text = "0"
        End If

        If struganjehurco.Text = "" Then
            struganjehurco.Text = "0"
        End If

        If struganjemonfors.Text = "" Then
            struganjemonfors.Text = "0"
        End If

        If varenje.Text = "" Then
            varenje.Text = "0"
        End If

        If erozimat.Text = "" Then
            erozimat.Text = "0"
        End If

        If brusenje.Text = "" Then
            brusenje.Text = "0"
        End If

        If termobrada.Text = "" Then
            termobrada.Text = "0"
        End If

        If brunir.Text = "" Then
            brunir.Text = "0"
        End If

        If cink.Text = "" Then
            cink.Text = "0"
        End If

        If farbanje.Text = "" Then
            farbanje.Text = "0"
        End If

        If kontrola.Text = "" Then
            kontrola.Text = "0"
        End If

        If pakiranje.Text = "" Then
            pakiranje.Text = "0"
        End If

        If ostalo.Text = "" Then
            ostalo.Text = "0"
        End If

        If precnik.Text = "" Then
            precnik.Text = "0"
        End If

        If visina.Text = "" Then
            visina.Text = "0"
        End If
        'Kraj koda koji prazna polja definise kao 0 vrijednost

        'Pocetak koda koji uracunava rad u ukupnu cijenu pozicije
        sjec = sjecenje.Text * 0.25
        brus = brusenje.Text * 1
        kon = kontrola.Text * 0.33
        var = varenje.Text * 0.5
        eroz = erozimat.Text * 0.41
        pak = pakiranje.Text * 0.25

        glodvm10 = glodanjevm10.Text * 0.41
        glodvm42 = glodanjevm42.Text * 0.83
        glodvm84 = glodanjevm84.Text * 0.66
        glodborv = glodanjeborver.Text * 1
        glodhele = glodanjeheler.Text * 1
        glod5osn = glodanje5osne.Text * 0.5

        strhur = struganjehurco.Text * 0.41
        strmon = struganjemonfors.Text * 0.5

        termobr = termobrada.Text * 4
        brun = brunir.Text * 1.5
        cin = cink.Text * 0.8
        farb = farbanje.Text * 1.5

        ost = ostalo.Text

        KMukupno = KMmaterijal + sjec + brus + kon + var + eroz + pak + ost + glodvm10 + glodvm42 + glodvm84 + glodborv + glodhele + glod5osn + strhur + strmon + termobr + brun + cin + farb
        ukupnacijena.Text = KMukupno

        'Kraj koda koji uracunaca rad u ukupnu cijenu pozicije

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Pocetak # dodavanje pozicije u listu i priprema za unos nove pozicije
        ListaBindingSource1.AddNew()

        dimenzije1.Text = "0"
        dimenzije2.Text = "0"
        dimenzije3.Text = "0"

        'Kraj # dodavanje pozicije u listu i priprema za unos nove pozicije

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'Brisanje pozicije iz liste
        ListaBindingSource1.RemoveCurrent()

    End Sub

    Private Sub OProgramuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OProgramuToolStripMenuItem.Click
        'Prikaz prozora "o programu"
        Form2.Show()

    End Sub

    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        'Formatiranje datagrida
        With DataGridView1
            Dim fmt As StringFormat = New StringFormat(StringFormatFlags.LineLimit)
            fmt.LineAlignment = StringAlignment.Center
            fmt.Trimming = StringTrimming.EllipsisCharacter

            'Format Headera
            Dim prFont As New Font("Verdana", 22, GraphicsUnit.Point)
            Dim siFont As New Font("Verdana", 9, GraphicsUnit.Point)
            Dim hdrFont As New Font("Verdana", 10, FontStyle.Bold)
            Dim y As Single = e.MarginBounds.Top
            Dim strInfo As String

            'Uslovna promenjiva
            If PrintDocument1.DefaultPageSettings.Landscape Then
                strInfo = "Kupac: " & kupaclista.Text & " // Datum dolaska upita: " & DateTimePicker1.Text & " // Broj upita: " & brojupita.Text
                e.Graphics.DrawString(vbTab & "" & "", prFont, Brushes.Black, 60, 40)
                e.Graphics.DrawString(strInfo, siFont, Brushes.Black, 110, 80)
                PrintPreviewDialog1.Document = PrintDocument1

                PrintDocument1.DefaultPageSettings.Margins.Left = 50
                PrintDocument1.DefaultPageSettings.Margins.Right = 50
                PrintDocument1.DefaultPageSettings.Margins.Top = 30
                PrintDocument1.DefaultPageSettings.Margins.Bottom = 30
                y = 120
            Else
                MsgBox("Ovaj prozor se pojavljuje kada odustanete od štampanja ili u slučaju da niste u opcijama čekirali 'Landscape'. U lijevom dijelu ekrana zaustavite štampanje klikom na 'Cancel', a zatim u ovom prozoru potvrdite klikom na 'OK'. Prilikom novog pokušaja štampanja potrebno je da u opcijama čekirate 'Landscape'.")
            End If

            'Format hedera datagrida
            Do While mRow < .RowCount
                Dim row As DataGridViewRow = .Rows(mRow)
                Dim x As Single = e.MarginBounds.Left
                Dim h As Single = 0

                For Each cell As DataGridViewCell In row.Cells
                    Dim rc As RectangleF = New RectangleF(x, y, cell.Size.Width, cell.Size.Height)
                    'Format pravougaonika
                    e.Graphics.DrawRectangle(Pens.Black, rc.Left, rc.Top, rc.Width, rc.Height)
                    If (newpage) Then
                        'Format headera
                        e.Graphics.DrawString(DataGridView1.Columns(cell.ColumnIndex).HeaderText, .Font, Brushes.Black, rc, fmt)
                    Else
                        'Format Tabele
                        e.Graphics.DrawString(DataGridView1.Rows(cell.RowIndex).Cells(cell.ColumnIndex).FormattedValue.ToString(), .Font, Brushes.Black, rc, fmt)
                    End If

                    'Brojanje redova
                    x += rc.Width
                    h = Math.Max(h, rc.Height)
                Next
                newpage = False
                y += h
                mRow += 1
                If y + h > e.MarginBounds.Bottom Then
                    e.HasMorePages = True
                    mRow -= 1
                    newpage = True
                    Exit Sub
                End If
            Loop
            mRow = 0
        End With

    End Sub

 Private Sub ŠtampanjeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ŠtampanjeToolStripMenuItem.Click
        'Stampanje odabirom stavke iz menija "opcije"
        DataGridView1.Update()
        PrintPreviewDialog1.Update()
        PrintDialog1.Document = PrintDocument1
        PrintDialog1.ShowDialog()
        PrintDocument1.Print()

    End Sub

    Private Sub NovaListaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NovaListaToolStripMenuItem.Click
        'Pokretanje novog upita
        DatabaseDataSet1.Clear()
        kupaclista.Text = ""
        brojupita.Text = ""
        DateTimePicker1.Text = ""
        dimenzije1.Text = "0"
        dimenzije2.Text = "0"
        dimenzije3.Text = "0"
        ListaBindingSource1.AddNew()

    End Sub

    Private Sub PregledDokumentaPrijeŠtampanjaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PregledDokumentaPrijeŠtampanjaToolStripMenuItem.Click
        'Pregled dokumenta prije stampanja
        DataGridView1.Update()
        PrintPreviewDialog1.Update()
        PrintDocument1.DefaultPageSettings.Landscape = True
        PrintPreviewDialog1.Document = PrintDocument1
        PrintPreviewDialog1.ShowDialog()
    End Sub

End Class

 
Odgovor na temu

PeleZr
Petrovic Igor
Zrenjanin

Član broj: 237267
Poruke: 47
*.dynamic.sbb.rs.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201020.05.2014. u 20:53 - pre 120 meseci
Probaj da na pocetku metode ŠtampanjeToolStripMenuItem_Click dodas
Code:
mRow = 0
newPage = true

koliko sam na brzinu pregledao, cini mi se da ne resetujes te dve promenljive na pocetku stampanja. Za sada nisam primetio nikakvu drugu gresku, a nemam trenutno ni gde da isprobam
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201021.05.2014. u 06:14 - pre 119 meseci
Bravo! To je to.. kada je u pitanju povlacenje headera, sada ide uvijek, ali i dalje prvi rezultat u datagridu ne printa? (Ja sam to rijesio tako sto sam u prvi red unjeo i snimo neke bezveze podatke, i ono onda printa dalje sve ispod tog prvog reda...) Volio bi da to sve malo usminkam, da ne bude ovako kao sada 'skarabudjeno'...

Jos jedno pitanje, posto ima dosta kolona i u punim nazivima ne moze da stane na A4 Landscape, pa kolone mora smanjiti i skraceno pisati nazive headera... To sam uradio u podesavanju datagrida preko forme (nista u kodu nije pisano), ali me zanima da li mogu da to uradim preko koda, kako bi u programu ostalo normalno, puni nazivi da bude pregledno, a kada se printa da povlaci te suzene kolone... Ovako mi je smanjilo i pregled u programu pa to sada djeluje zbijeno i ruzno (za mene)...


PeleZr, hvala puno.
 
Odgovor na temu

PeleZr
Petrovic Igor
Zrenjanin

Član broj: 237267
Poruke: 47
*.dynamic.sbb.rs.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201021.05.2014. u 09:42 - pre 119 meseci
Hehe, ja sam kontao da ti ne stampa poslednji red :) Sad vidim u cemu je problem.
U metodi PrintDocument1_PrintPage imas mRow += 1, i kada stampas heder ti povecas redni broj vrste i zato ti preskoci prvu vrstu.

mRow += 1 premestis iznad newPage = false, a posle nexta i dodas jedan if, i to bi trebalo da resi probllem
ovako nesto:
Code:

if(newPage = true) then
   mRow + =1
end if


Sto se tice skracivanja header -a, mozes da resis i kroz kod, pogledaj String Split i String builder
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201021.05.2014. u 11:46 - pre 119 meseci
Eh sad... izvinjavam se sto se stalno cimas, ali sada sam pronasao jos tih zackoljica...

Najvise me buni sto je to jedno vrijene jutros sljakalo... ja sam malo cackao i evo opet sam negdje zeznuo... Sada cu pokusati dodati ovaj dio koda sto si poslao.... ali bez toga sam rjesio na nacin sto kada starta program dodao sam dva puta ListaBindingSource1.AddNew()

Prvi red nije morao imati rezultate jer ono prikaze prazan prostor i upisuje od drugog, tako kada prilikom stampe preskoci prvi red bude OK.

Header na odabir opcije print iz menija koja pokrece print dialog printa i sve se vidi... Problem je u tome sto kada pokrenem printpreview u kojem sve izgleda kako treba ali kada u okviru njega odaberem opciju print ostampa opet bez headera (zapravo ne kao prije da ga ne uzme nego kolone iscrta ali budu prazne, dole rezultati dolaze kako treba)...


Ima tu jos stvari recimo kada pokrenem print dialog, i sda hocu odustati od stampanja, ono bez obzira kliknuo ja na dugme ok ili cancel odstampa dokument... vjerovartno jer sam na buton koji pokrece print dialog na kraju stavio: PrintDocument1.Print()

ali ako taj dio koda maknem onda kada pokrene print prozor i kliknem na ok da printa nista se ne desava...

I dalje mi nije isto kod pokretanja printa i printpreviewa prvi i drugi put... prvi put list i tabela sve bude vise ulijevo dok drugi put ode desno na papiru, dok bi htjeo kad god da pokrenem te opcije bude sve isto....


Tesko mi je sve objasniti, mislim da bi najlakse bilo da uploadujem aplikaciju i posaljem na mail... medjutim ne mogu jer sam tek reg. na forum, ako nije problem da mi se samo javis na moj mail kako bi mogao da ti proslijedim aplikaciju... nema ovo smisla hehe potrosio sam oko 50tak (samo jutros) listova testirajuci.... a ova ce mi opcija uvjek skoro biti potrebna... volio bi da to postimam kako treba da radi bez greske... Koliko ja mogu da vidim Vama to nije neki posao dok meni djeluje ne rjesivo... tek ucim.. :)
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201021.05.2014. u 11:59 - pre 119 meseci
mislim na ovo... u drugom otvaranju sve bude ok a u prvom sve bjezi desno.. a kada sad ovu zaokruzenu opciju kliknem stampa tako ali bez naslova headera samo budu prazne kockice....

 
Odgovor na temu

PeleZr
Petrovic Igor
Zrenjanin

Član broj: 237267
Poruke: 47
*.dynamic.sbb.rs.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201021.05.2014. u 15:58 - pre 119 meseci
Trenutno nemam instaliran vb ni na jednoj masini, niti vremena za pisanje app, samo pokusavam da ti pomognem i dam neke smernice, a i ti ces pre nauciti na greskama.

Trebalo bi malo vise da obratis paznju na dokumentaciju, pogledaj ovde, imas u primeru DialogResult.

Moras i u print preview metodi da resetujes parametre za broj vrste i newPage, kao sto si radio i za print dugme.

I nema potrebe da testiras stampanje na papiru, instaliraj neki pdf creator pa testiraj stampanje u pdf :)
 
Odgovor na temu

marockee
student
Beograd

Član broj: 9961
Poruke: 67
*.dynamic.sbb.rs.

ICQ: 157840905
Sajt: galeb.etf.bg.ac.yu/~om000..


Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201022.05.2014. u 04:18 - pre 119 meseci
a Crystal Reports da probaš?
znam da ovde je s*****, al' meni je do yaya...
 
Odgovor na temu

S A J A
Beograd

Član broj: 226539
Poruke: 1904
*.static.sbb.rs.



+421 Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201022.05.2014. u 08:37 - pre 119 meseci
Citat:
marockee: a Crystal Reports da probaš?


Takođe ima i Microsoft Reporting koji je ugrađen u Visual Studio. Ja ga koristim i prilično je dobar, nije komplikovan a ima sve osnovne stvari. Probao sam Crystal i Telerik Reports ali nekako mi je to sve previše komplikovano, verujem da su dosta moćniji ali meni trebaju samo osnovne stvari.

Evo info: http://msdn.microsoft.com/en-us/library/bb558708.aspx

Ako tu bude bilo nekih pitanja, mogao bi da pomognem. Grid nikada nisam bacao na štampu, nekako mi je logično da se grid baca u excel a da se za štampu koristi reporting.
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201022.05.2014. u 09:28 - pre 119 meseci
Ok, prije svega hvala Vam sto ste se ukljucili da mi pomognete... Prvu verziju programa sam prebacio sefu i on je zadovoljan, jer radi ono sto treba, medjutim sada bi trebalo ove stvari srediti da ne bude onako kako sam ja to pokrpio..

Prije svega kod aplikacije koja nije isporucena sefu i koju zelim da sredim... Potrudio sam da sto bolje dokumentujem i objasnim dijelove koda.

Code:
Public Class Form1

    Dim materijalkg As Double
    Dim KMmaterijal As Double
    Dim KMukupno As Double

    Dim sjec As Double
    Dim brus As Double
    Dim kon As Double
    Dim var As Double
    Dim eroz As Double
    Dim pak As Double

    Dim glodvm10 As Double
    Dim glodvm42 As Double
    Dim glodvm84 As Double
    Dim glodborv As Double
    Dim glodhele As Double
    Dim glod5osn As Double

    Dim termobr As Double
    Dim brun As Double
    Dim cin As Double
    Dim farb As Double

    Dim strhur As Double
    Dim strmon As Double

    Dim ost As Double

    Dim mRow As Integer = 0
    Dim newpage As Boolean = True

    Dim pi As Double
    Dim prec As Double
    Dim h As Double
    Dim zap As Double

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'DatabaseDataSet2.lista' table. You can move, or remove it, as needed.
        Me.ListaTableAdapter.Fill(Me.DatabaseDataSet2.lista)

        ListaBindingSource.AddNew() ' Ovaj dio koda automatski nakon startanja programa omogucuje unos nove pozicije

    End Sub

    Private Sub ZatvoriProgramToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ZatvoriProgramToolStripMenuItem.Click
        End ' Klikom na opciju #Zatvori program, u meniju program se zatvara

    End Sub

    Private Sub btnKalkulacija_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKalkulacija.Click
        ' Kod koji izracunava ukupnu tezinu i cijenu neobradjenog materijala pozicije

        If valjak.Checked = True And listamaterijala.Text = "Plastika" Then
            ' Ako se radi o valjkastoj poziciji, nakon cekiranja polja ispred rubrika za precnik i visinu, program ce koristiti sljedecu formulu ukoliko je iz liste materijala odabrana #Plastika
            pi = 3.14
            h = visina.Text
            prec = precnik.Text
            zap = ((prec * prec) * pi / 4) * h

            ' Ovaj dio koda ce zapreminu pomnoziti sa specificnom gustocom #Plastike, sa cime dobijamo ukupnu tezinu potrebnog sirovog materijala za izradu pozicije. Nakon toga potrebni materijal mnozi sa cijenom #Plastike po kg
            materijalkg = zap * 0.0000014
            KMmaterijal = materijalkg * 12

            ' Dobijeni rezultati se prikazuju u poljima #Ukupno materijala (kg) i #Ukupna cijena materijala (EUR)
            ukmatkg.Text = materijalkg
            cijenamaterijala.Text = KMmaterijal

        ElseIf valjak.Checked = False And listamaterijala.Text = "Plastika" Then
            ' Ako se ne radi o valjkastim pozicijama tada se u rubrike #Visina, #Sirina i #Duzina upisuju dimenzije pozicije, a u rubrike #Precnik i #Visina se ne upisuje nista i ne cekira se polje ispred tih rubrika, kako bi ih program izostavio iz obracuna
            materijalkg = (dimenzije1.Text * dimenzije2.Text * dimenzije3.Text) * 0.0000014 ' Formula za ukupnu kilazu potrebnog materijala
            ukmatkg.Text = materijalkg 'Prikazivanje ukupno potrebnog materijala u polju #Ukupno materijala (kg)

            ' Kod koji ce potrebni materijal pomnoziti sa cijenom materijala po kg i prikazati u polju #Cijena materijala (EUR)
            KMmaterijal = materijalkg * 12
            cijenamaterijala.Text = KMmaterijal

        End If

        If valjak.Checked = True And listamaterijala.Text = "ST-37/52 željezo" Then
            ' Ako se radi o valjkastoj poziciji, nakon cekiranja polja ispred rubrika za precnik i visinu, program ce koristiti sljedecu formulu ukoliko je iz liste materijala odabrana #ST-37/52 željezo
            pi = 3.14
            h = visina.Text
            prec = precnik.Text
            zap = ((prec * prec) * pi / 4) * h

            ' Ovaj dio koda ce zapreminu pomnoziti sa specificnom gustocom #Zeljeza, sa cime dobijamo ukupnu tezinu potrebnog sirovog materijala za izradu pozicije. Nakon toga potrebni materijal mnozi sa cijenom #ST-37/52 željezo po kg
            materijalkg = zap * 0.00000787
            KMmaterijal = materijalkg * 1

            ' Dobijeni rezultati se prikazuju u poljima #Ukupno materijala (kg) i #Ukupna cijena materijala (EUR)
            ukmatkg.Text = materijalkg
            cijenamaterijala.Text = KMmaterijal

        ElseIf valjak.Checked = False And listamaterijala.Text = "ST-37/52 željezo" Then
            ' Ako se ne radi o valjkastim pozicijama tada se u rubrike #Visina, #Sirina i #Duzina upisuju dimenzije pozicije, a u rubrike #Precnik i #Visina se ne upisuje nista i ne cekira se polje ispred tih rubrika, kako bi ih program izostavio iz obracuna
            materijalkg = (dimenzije1.Text * dimenzije2.Text * dimenzije3.Text) * 0.00000787 ' Formula za ukupnu kilazu potrebnog materijala
            ukmatkg.Text = materijalkg 'Prikazivanje ukupno potrebnog materijala u polju #Ukupno materijala (kg)

            ' Kod koji ce potrebni materijal pomnoziti sa cijenom materijala po kg i prikazati u polju #Cijena materijala (EUR)
            KMmaterijal = materijalkg * 1
            cijenamaterijala.Text = KMmaterijal

        End If

        If valjak.Checked = True And listamaterijala.Text = "16 Mn CR5 željezo" Then
            ' Ako se radi o valjkastoj poziciji, nakon cekiranja polja ispred rubrika za precnik i visinu, program ce koristiti sljedecu formulu ukoliko je iz liste materijala odabrana #16 Mn CR5 željezo
            pi = 3.14
            h = visina.Text
            prec = precnik.Text
            zap = ((prec * prec) * pi / 4) * h

            ' Ovaj dio koda ce zapreminu pomnoziti sa specificnom gustocom #Zeljeza, sa cime dobijamo ukupnu tezinu potrebnog sirovog materijala za izradu pozicije. Nakon toga potrebni materijal mnozi sa cijenom #16 Mn CR5 željezo po kg
            materijalkg = zap * 0.00000787
            KMmaterijal = materijalkg * 3

            ' Dobijeni rezultati se prikazuju u poljima #Ukupno materijala (kg) i #Ukupna cijena materijala (EUR)
            ukmatkg.Text = materijalkg
            cijenamaterijala.Text = KMmaterijal

        ElseIf valjak.Checked = False And listamaterijala.Text = "16 Mn CR5 željezo" Then
            ' Ako se ne radi o valjkastim pozicijama tada se u rubrike #Visina, #Sirina i #Duzina upisuju dimenzije pozicije, a u rubrike #Precnik i #Visina se ne upisuje nista i ne cekira se polje ispred tih rubrika, kako bi ih program izostavio iz obracuna
            materijalkg = (dimenzije1.Text * dimenzije2.Text * dimenzije3.Text) * 0.00000787 ' Formula za ukupnu kilazu potrebnog materijala
            ukmatkg.Text = materijalkg 'Prikazivanje ukupno potrebnog materijala u polju #Ukupno materijala (kg)

            ' Kod koji ce potrebni materijal pomnoziti sa cijenom materijala po kg i prikazati u polju #Cijena materijala (EUR)
            KMmaterijal = materijalkg * 3
            cijenamaterijala.Text = KMmaterijal

        End If

        If valjak.Checked = True And listamaterijala.Text = "Aluminij" Then
            ' Ako se radi o valjkastoj poziciji, nakon cekiranja polja ispred rubrika za precnik i visinu, program ce koristiti sljedecu formulu ukoliko je iz liste materijala odabrana #Aluminij
            pi = 3.14
            h = visina.Text
            prec = precnik.Text
            zap = ((prec * prec) * pi / 4) * h

            ' Ovaj dio koda ce zapreminu pomnoziti sa specificnom gustocom #Aluminija, sa cime dobijamo ukupnu tezinu potrebnog sirovog materijala za izradu pozicije. Nakon toga potrebni materijal mnozi sa cijenom #Aluminij po kg
            materijalkg = zap * 0.0000027
            KMmaterijal = materijalkg * 6

            ' Dobijeni rezultati se prikazuju u poljima #Ukupno materijala (kg) i #Ukupna cijena materijala (EUR)
            ukmatkg.Text = materijalkg
            cijenamaterijala.Text = KMmaterijal

        ElseIf valjak.Checked = False And listamaterijala.Text = "Aluminij" Then
            ' Ako se ne radi o valjkastim pozicijama tada se u rubrike #Visina, #Sirina i #Duzina upisuju dimenzije pozicije, a u rubrike #Precnik i #Visina se ne upisuje nista i ne cekira se polje ispred tih rubrika, kako bi ih program izostavio iz obracuna
            materijalkg = (dimenzije1.Text * dimenzije2.Text * dimenzije3.Text) * 0.0000027 ' Formula za ukupnu kilazu potrebnog materijala
            ukmatkg.Text = materijalkg 'Prikazivanje ukupno potrebnog materijala u polju #Ukupno materijala (kg)

            ' Kod koji ce potrebni materijal pomnoziti sa cijenom materijala po kg i prikazati u polju #Cijena materijala (EUR)
            KMmaterijal = materijalkg * 6
            cijenamaterijala.Text = KMmaterijal

            ' Kraj koda koji izracunava ukupnu tezinu i cijenu neobradjenog materijala pozicije

        End If

        ' Pocetak koda koji prazna polja definise kao 0 vrijednost
        If sjecenje.Text = "" Then
            sjecenje.Text = "0"
        End If

        If glodanjevm10.Text = "" Then
            glodanjevm10.Text = "0"
        End If

        If glodanjevm42.Text = "" Then
            glodanjevm42.Text = "0"
        End If

        If glodanjevm84.Text = "" Then
            glodanjevm84.Text = "0"
        End If

        If glodanjeborver.Text = "" Then
            glodanjeborver.Text = "0"
        End If

        If glodanje5osne.Text = "" Then
            glodanje5osne.Text = "0"
        End If

        If glodanjeheler.Text = "" Then
            glodanjeheler.Text = "0"
        End If

        If struganjehurco.Text = "" Then
            struganjehurco.Text = "0"
        End If

        If struganjemonfors.Text = "" Then
            struganjemonfors.Text = "0"
        End If

        If varenje.Text = "" Then
            varenje.Text = "0"
        End If

        If erozimat.Text = "" Then
            erozimat.Text = "0"
        End If

        If brusenje.Text = "" Then
            brusenje.Text = "0"
        End If

        If termobrada.Text = "" Then
            termobrada.Text = "0"
        End If

        If brunir.Text = "" Then
            brunir.Text = "0"
        End If

        If cink.Text = "" Then
            cink.Text = "0"
        End If

        If farbanje.Text = "" Then
            farbanje.Text = "0"
        End If

        If kontrola.Text = "" Then
            kontrola.Text = "0"
        End If

        If pakiranje.Text = "" Then
            pakiranje.Text = "0"
        End If

        If ostalo.Text = "" Then
            ostalo.Text = "0"
        End If

        ' Kraj koda koji prazna polja definise kao 0 vrijednost

        ' Pocetak koda koji uracunava rad u ukupnu cijenu pozicije
        sjec = sjecenje.Text * 0.25
        brus = brusenje.Text * 1
        kon = kontrola.Text * 0.33
        var = varenje.Text * 0.5
        eroz = erozimat.Text * 0.41
        pak = pakiranje.Text * 0.25

        glodvm10 = glodanjevm10.Text * 0.41
        glodvm42 = glodanjevm42.Text * 0.83
        glodvm84 = glodanjevm84.Text * 0.66
        glodborv = glodanjeborver.Text * 1
        glodhele = glodanjeheler.Text * 1
        glod5osn = glodanje5osne.Text * 0.5

        strhur = struganjehurco.Text * 0.41
        strmon = struganjemonfors.Text * 0.5

        termobr = termobrada.Text * 4
        brun = brunir.Text * 1.5
        cin = cink.Text * 0.8
        farb = farbanje.Text * 1.5

        ost = ostalo.Text

        KMukupno = KMmaterijal + sjec + brus + kon + var + eroz + pak + ost + glodvm10 + glodvm42 + glodvm84 + glodborv + glodhele + glod5osn + strhur + strmon + termobr + brun + cin + farb
        ukupnacijena.Text = KMukupno

        ' Kraj koda koji uracunava rad u ukupnu cijenu pozicije

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Dodavanje pozicije u listu i priprema za unos nove pozicije
        ListaBindingSource.AddNew()

        dimenzije1.Text = "0"
        dimenzije2.Text = "0"
        dimenzije3.Text = "0"
        precnik.Text = "0"
        visina.Text = "0"

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        ListaBindingSource.RemoveCurrent() ' Brisanje odabrane pozicije iz liste

    End Sub

    Private Sub OProgramuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OProgramuToolStripMenuItem.Click
        Form2.Show() ' Odabirom iz menija opcije #O programu, prilazuje se Form-a 2

    End Sub


    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        ' Pocetak koda koji vrsi stampanje podataka prikazanih u datagridu

        'Formatiranje datagrida
        With DataGridView1
            Dim fmt As StringFormat = New StringFormat(StringFormatFlags.LineLimit)
            fmt.LineAlignment = StringAlignment.Center
            fmt.Trimming = StringTrimming.EllipsisCharacter

            'Format Headera
            Dim prFont As New Font("Verdana", 22, GraphicsUnit.Point)
            Dim siFont As New Font("Verdana", 9, GraphicsUnit.Point)
            Dim hdrFont As New Font("Verdana", 10, FontStyle.Bold)
            Dim y As Single = e.MarginBounds.Top
            Dim strInfo As String

            'uslovna promenjiva
            If PrintDocument1.DefaultPageSettings.Landscape Then
                strInfo = "Kupac: " & kupaclista.Text & " // Datum dolaska upita: " & DateTimePicker1.Text & " // Broj upita: " & brojupita.Text ' Podaci koji se povlace u header dokumenta
                e.Graphics.DrawString(vbTab & "" & "", prFont, Brushes.Black, 60, 40)
                e.Graphics.DrawString(strInfo, siFont, Brushes.Black, 110, 80)
                PrintPreviewDialog1.Document = PrintDocument1

                PrintDocument1.DefaultPageSettings.Margins.Left = 20
                PrintDocument1.DefaultPageSettings.Margins.Right = 20
                PrintDocument1.DefaultPageSettings.Margins.Top = 40
                PrintDocument1.DefaultPageSettings.Margins.Bottom = 20
                y = 120

            ElseIf PrintDocument1.DefaultPageSettings.Landscape = False Then ' Ukoliko nije u opcijama podesen Landscape, prikazuje se poruka
                Dim titleP = "Prekid štampanja"
                MsgBox("Ovaj prozor se pojavljuje u slučaju da niste u opcijama čekirali 'Landscape'. U lijevom dijelu ekrana zaustavite štampanje klikom na 'Cancel', a zatim u ovom prozoru potvrdite klikom na 'OK'. Prilikom novog pokušaja štampanja potrebno je da u opcijama čekirate 'Landscape'.", , titleP)

            End If

            'format hedera datagrida
            Do While mRow < .RowCount
                Dim row As DataGridViewRow = .Rows(mRow)
                Dim x As Single = e.MarginBounds.Left
                Dim h As Single = 0

                For Each cell As DataGridViewCell In row.Cells
                    Dim rc As RectangleF = New RectangleF(x, y, cell.Size.Width, cell.Size.Height)
                    'Format pravougaonika
                    e.Graphics.DrawRectangle(Pens.Black, rc.Left, rc.Top, rc.Width, rc.Height)
                    If (newpage) Then
                        'Format headera
                        e.Graphics.DrawString(DataGridView1.Columns(cell.ColumnIndex).HeaderText, .Font, Brushes.Red, rc, fmt)
                    Else
                        'Format Tabele
                        e.Graphics.DrawString(DataGridView1.Rows(cell.RowIndex).Cells(cell.ColumnIndex).FormattedValue.ToString(), .Font, Brushes.Blue, rc, fmt)
                    End If

                    'Brojanje redova
                    x += rc.Width
                    h = Math.Max(h, rc.Height)
                Next
                newpage = False
                y += h
                mRow += 1
                If y + h > e.MarginBounds.Bottom Then
                    e.HasMorePages = True
                    mRow -= 1
                    newpage = True
                    Exit Sub
                End If
            Loop
            mRow = 0
        End With

    End Sub ' Kraj koda koji vrsi stampanje podataka prikazanih u datagridu

    Private Sub ŠtampanjeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ŠtampanjeToolStripMenuItem.Click
        ' Opcija za stampanje dokumenta, koja se nalazi u meniju
        mRow = 0
        newpage = True
        DataGridView1.Update()
        PrintPreviewDialog1.Update()
        PrintDocument1.DefaultPageSettings.Landscape = True
        PrintDialog1.Document = PrintDocument1
        PrintDialog1.ShowDialog()
        PrintDocument1.Print()

    End Sub

    Private Sub NovaListaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NovaListaToolStripMenuItem.Click
        ' Pokretanje novog upita, opcija smjestena u meniju

        ' Prikaz sigurnosne poruke
        Dim title = "Otvaranje novog upita"
        Dim msg = "Dali želite otvoriti novi upit? Nakon otvaranja novog upita nećete biti u mogućnosti izvršiti naknadno štampanje trenutnog upita!"
        Dim style = MsgBoxStyle.YesNo Or MsgBoxStyle.DefaultButton2 Or _
                    MsgBoxStyle.Question
        Dim response = MsgBox(msg, style, title)

        If response = MsgBoxResult.Yes Then ' Nastavak pokretanja novog upita poslije potvrde
            DatabaseDataSet2.Clear()
            kupaclista.Text = ""
            brojupita.Text = ""
            DateTimePicker1.Text = ""
            dimenzije1.Text = "0"
            dimenzije2.Text = "0"
            dimenzije3.Text = "0"
            precnik.Text = "0"
            visina.Text = "0"
            ListaBindingSource.AddNew()
        Else
            MsgBox("Uspješno ste odustali od otvaranja novog upita.", , title) ' Prikaz poruke u slucaju odbijanja potvrde
        End If

    End Sub

    Private Sub PregledPrijeŠtampanjaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PregledPrijeŠtampanjaToolStripMenuItem.Click
        ' Pregled dokumenta prije stampanja
        mRow = 0
        newpage = True
        PrintPreviewDialog1.Document = PrintDocument1
        DataGridView1.Update()
        PrintPreviewDialog1.Update()
        PrintDocument1.DefaultPageSettings.Landscape = True
        PrintPreviewDialog1.ShowDialog()

    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        ' Vracanje na prethodnu poziciju
        ListaBindingSource.MovePrevious()

    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        ' Prelazak na sljedecu poziciju
        ListaBindingSource.MoveNext()

    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        ' Vracanje na prvu poziciju
        ListaBindingSource.MoveFirst()

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ' Prelazak na zadnju poziciju
        ListaBindingSource.MoveLast()

    End Sub

End Class


Evo kako to izgleda.


Dakle ovdje nisam ubacio kod koji ce odmah krenuti upisivati rezultat u drugi red kako bi prvi propustio, i sada u stampi nema prvog rezultata. Takodje ovdje kolone nisu pisane skraceno i suzavano kako bi sve stalo na jedan A4 list (zelim da u programu izgleda ovako, a na listu papira da bude prilagodjeno i nazivi upisani skraceno).


Sav kod sam licno napisao osim dijela za printanje, zato ne mogu da ga pohvatam i uredim...

Problem je kada recimo otvorim opciju print i zelim odustati od printanja, kliknem na cancel, ali ono opet odstampa, jedino ce stampanje zaustaviti ako podeim da nije landscape.

Od opcije save sam odusta, nije potrebna, jedino je ostalo ovo printanje, trebao bi ove kolone da pikazem uvijek isto, (sada prilikom prvog printa sve ode udesno, dok kod ostalih pokusaja bude centrirano na sredini lista).


Kada su u pitanju ovi reporti, nasao sam ovo: https://www.youtube.com/watch?v=l1k37cfdd8w

Medjutim kada skinem dodatak sa microsoftove stranice i instaliram, u opcijama za dodavanje dodataka udjem chose items.. ali aga tu nema i ne mogu da pokusam napraviti kao u videu jer nemam te opcije....


sada cu procitati sta sam sve naveo pa ako budem sta izostavio javicu :) hehe tesko je sve objasniti ali mislim da sam uspjeo...
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201023.05.2014. u 08:14 - pre 119 meseci
Citat:
S A J A:
Citat:
marockee: a Crystal Reports da probaš?


Takođe ima i Microsoft Reporting koji je ugrađen u Visual Studio. Ja ga koristim i prilično je dobar, nije komplikovan a ima sve osnovne stvari. Probao sam Crystal i Telerik Reports ali nekako mi je to sve previše komplikovano, verujem da su dosta moćniji ali meni trebaju samo osnovne stvari.

Evo info: http://msdn.microsoft.com/en-us/library/bb558708.aspx

Ako tu bude bilo nekih pitanja, mogao bi da pomognem. Grid nikada nisam bacao na štampu, nekako mi je logično da se grid baca u excel a da se za štampu koristi reporting.




Ok.. malo sam odmorio od aplikacije, pa da nastavim... blizi mi se ispit iz VBa a i volio bi ovo rjesiti...

Zanemarimo ovaj kod do sada sto stoji za stampanje... Ako mi mozes reci od pocetka kako bi rjesio ovo sto si rekao, da grid "bacimo" (exportujemo u excel) i kako da odaradim da mi printa po tim reportima, nije mi bitno koji je postupak, nego da radi....
 
Odgovor na temu

S A J A
Beograd

Član broj: 226539
Poruke: 1904
*.static.sbb.rs.



+421 Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201023.05.2014. u 09:15 - pre 119 meseci
Citat:
vbl14: nije mi bitno koji je postupak, nego da radi....


Kod mene radi :) A evo i postupka:

Reporting

Osnova reportinga ti je ReportViewer kontrola. Ona često nije u sklopu Visual Studija nego se mora posebno instalirati. Skini "Microsoft Report Viewer 2012 Runtime" i instaliraj.
Sledeći korak je da dizajniraš report, to možeš da uradiš kroz Visual Studio, Add New Item... Report (Wizard). Ukoliko imaš Express verzije VS-a onda nemaš taj dizajner nego moraš da skineš posebnu aplikaciju za to a ona se zove Microsoft® SQL Server® 2012 Report Builder.
Kad se otvori dizajner (bez obzira koja od ove dve varijante je u pitanju) moraš da se konektuješ na bazu. Ukoliko je dizajner iz VS-a onda će ti ponuditi da se konektuješ preko Entity Framework modela a ako praviš report preko Buildera onda moraš pešice (da se konektuješ na bazu i da napraviš dataset).
Kad si to uradio, sa leve strane ćeš imati "papir" a sa desne polja koja prevlačiš na taj "papir". Ako hoćeš tabelu onda staneš na "papir", desni klik pa Inset Table. Dalje u toj tabeli definišeš šta su kolone a šta podaci.
Kad završiš sa dizajniranjem, rezultat ti je .rdlc fajl koji treba da staviš unutar projekta (osim ako si radio preko VS dizajnera kada je fajl već unutar projekta).
Posle uzmeš neku formu, na nju staviš ReportViewer kontrolu i u Load proceduru staviš sledeći kod:

Prvo moraš report da napuniš podacima.

Ako koristiš EntityFramework onda bi to izgledalo otprilike ovako:

Code:
      Dim query = From nal In RadFormMain.db.Nalozi
             Where
                nal.Doktori.Ime = "Mika"
             Select
                nal.BrojNaloga,
                nal.ImeKlijenta,
                Adresa = nal.AdresaKlijenta,
                Kontakt = nal.KontaktKlijenta,
                nal.DatumPrijema,
                nal.DatumIzdavanja,
                Doktori = nal.Doktori.Ime,
                Status = nal.Statusi.Naziv,
                NPL = nal.NaciniPlacanja.Naziv,
                nal.Iznos

        ReportBindingSource.DataSource = query.ToList


A ako koritiš direktan pristup bazi onda otprilike ovako:

Code:
        Dim con As New SqlClient.SqlConnection(MDIParent1.db.Database.Connection.ConnectionString)        
        con.Open()
        Dim da As New SqlClient.SqlDataAdapter(<SQL>SELECT
                                               SalesLT.Product.Name AS [Product Name]
                                               ,SalesLT.Product.Color
                                               ,SalesLT.Product.[Size]
                                               ,SalesLT.ProductCategory.Name AS [ProductCategory Name]
                                               ,SalesLT.ProductModel.Name AS [ProductModel Name]
                                               ,SalesLT.Product.ListPrice
                                               FROM
                                               SalesLT.Product
                                               INNER JOIN SalesLT.ProductCategory
                                               ON SalesLT.Product.ProductCategoryID = SalesLT.ProductCategory.ProductCategoryID
                                               INNER JOIN SalesLT.ProductModel
                                               ON SalesLT.Product.ProductModelID = SalesLT.ProductModel.ProductModelID
                                               </SQL>.Value, con)
        Dim dt As New DataTable()
        da.Fill(dt)

        ReportViewer1.LocalReport.ReportPath = Application.StartupPath & "\Untitled.rdlc"
        ReportViewer1.LocalReport.DataSources.Clear()
        ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", dt))


Posle toga sledi prikazivanje reporta:

Code:
        ReportViewer1.LocalReport.ReportPath = Application.StartupPath & "\Untitled.rdlc"
        ReportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout)
        ReportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth

        Me.ReportViewer1.RefreshReport()


I to bi trebalo da je to što se tiče reportinga.

Za export grida u excel koristi sledeći kod:

Code:
        Dim sfd As New SaveFileDialog()        
        sfd.Filter = "Excel Documents (*.xls)|*.xls"
        sfd.FileName = "export.xls"
        If sfd.ShowDialog() <> DialogResult.OK Then Exit Sub

        'upisati ime datagrida
        Dim dGV = DataGridView1

        Dim stOutput As String = ""
        ' Export titles:
        Dim sHeaders As String = ""

        For j As Integer = 0 To dGV.Columns.Count - 1
            sHeaders = sHeaders.ToString() + Convert.ToString(dGV.Columns(j).HeaderText) + vbTab
        Next
        stOutput += sHeaders & Convert.ToString(vbCr & vbLf)
        ' Export data.
        For i As Integer = 0 To dGV.RowCount - 2
            Dim stLine As String = ""
            For j As Integer = 0 To dGV.Rows(i).Cells.Count - 1
                stLine = stLine.ToString() + Convert.ToString(dGV.Rows(i).Cells(j).Value) + vbTab
            Next
            stOutput += stLine & Convert.ToString(vbCr & vbLf)
        Next
        Dim utf16 As System.Text.Encoding = System.Text.Encoding.GetEncoding(1254)
        Dim output As Byte() = utf16.GetBytes(stOutput)
        Dim fs As New IO.FileStream(sfd.FileName, IO.FileMode.Create)
        Dim bw As New IO.BinaryWriter(fs)
        bw.Write(output, 0, output.Length)
        'write the encoded file
        bw.Flush()
        bw.Close()
        fs.Close()
 
Odgovor na temu

vbl14
banja luka

Član broj: 323195
Poruke: 25
*.teol.net.



Profil

icon Re: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 201024.05.2014. u 11:30 - pre 119 meseci
export je ok snimi sto je najvaznije :) ali prilkom otvranja tog snimljenog fajla dobijem poruku



Poslije potvrde na Yes otvori se fajl :), ovu sam poruku pokusao rjesiti tako sto sam u filterima mjenjao na .xlsx ali u tom slucaju nece nikako da otvori kasnije snimljeni fajl.... a ovo za reporte cu javiti ako uspijem sta ili u suprotnom traziti opet help... sada moram ove programe instalirati... posto ne moze onaj direktno report, trazi dodatne neke programe.. pa to sada cackam :) hvala u svakom slucaju... i cujemo se jos :)
 
Odgovor na temu

[es] :: .NET :: Printanje datagrid viewa koji povlaci bazu iz accessa 2007 - VB 2010

Strane: 1 2

[ Pregleda: 5776 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

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