[ DankoH @ 06.12.2009. 09:42 ] @
Pozdrav,

Opet imam pitanje pa vas molim pomoc.

Imam VB6 i koristim njihov DataReport i MySQL bazu. Ono sto me muci je redni broj stavke u detail sekciji na reportu. Da li VB6 ima to nekako rijeseno ili moram to rijesavat po bazi/recordsetu? Problem je sto se zeljeni podaci moraju sortirati razlicito, ako to korisnik zeli, pa mi onda predefinirani redni brojevi nisu intersantni.

Dakle, kako napraviti da se u DataReportu generiraju redni brojevi?

Citam na netu da se moraju postaviti prpertiji ControlSource i Running Sum ali ja te propertije u rptTextBoxu ne vidim..

Molim malu pomoc.

Hvala!!
[ miki987 @ 06.12.2009. 18:59 ] @
ajde ja iskoristim ovu temu za pitanje oko datareport-a
moze li mi neko dati prost primer ili usmeriti na neki link - tutorial za pocetnike, kako iz listviewa prikazati stavke u datareport-u
koristim ado i usavrsio sam povezivanje access-a i vb-a, sada idem dalje a nikako se ne snalazim sa stampanjem podataka koje vidim u listview-u, svi pricaju kako je neki crystal report vrh ali ja nikako ne mogu da nadjem full verziju niti znam da li je on free i da li postoji neka starija a free verzija.
data report izgleda prost ali ne znam da ga povezem, niti da li on vuce podatke iz baze pa ih prikazuje ili ih vuce sa forme uz pomoc prostog koda npr. text1.text = datareport1.text1.text???

hvala na pomoci i izvinite ako sam omasio temu, ipak se vrti oko toga :D
pozdrav
[ DankoH @ 07.12.2009. 10:27 ] @
ajde ja iskoristim ovu temu za pitanje oko datareport-a
moze li mi neko dati prost primer ili usmeriti na neki link - tutorial za pocetnike, kako iz listviewa prikazati stavke u datareport-u
koristim ado i usavrsio sam povezivanje access-a i vb-a, sada idem dalje a nikako se ne snalazim sa stampanjem podataka koje vidim u listview-u, svi pricaju kako je neki crystal report vrh ali ja nikako ne mogu da nadjem full verziju niti znam da li je on free i da li postoji neka starija a free verzija.
data report izgleda prost ali ne znam da ga povezem, niti da li on vuce podatke iz baze pa ih prikazuje ili ih vuce sa forme uz pomoc prostog koda npr. text1.text = datareport1.text1.text???

hvala na pomoci i izvinite ako sam omasio temu, ipak se vrti oko toga :D
pozdrav




Pošto znam u kakvim si mukama :p napisat cu ti ja jedan jednostavan primjer koji ce ti nadam se pomoci. I ja sam se danima mucio sa tim datareporom dak nisam skuzio na koji princip radi.. A naravno, nikog nisam imao pitati niti mi je iko na forumima newsima znao jednostavno pomoci. Dakle ovo je iz mojeg iskustva i mozda cu neke stvari pogrijesiti pa neka me netko ispravi ako gresku uoci...

Ja koristim sljedeci kod za prikaz podataka na reportu:

Code:


Dim rsPrimka As ADODB.Recordset
Set rsPrimka = New ADODB.Recordset


dim sql as string 

sql = "SELECT primke.Broj_Primke, primke.Datum, partneri.naziv INNER JOIN partneri ON primke.partneri_partner_id = partneri.partner_id FROM primke"


rsPrimka.Open sql, conn, adOpenDynamic, adLockOptimistic    'ovdje dobijes recordset sa 3 polja iz 2 tablice iz baze (primke i partneri)

Set drPrimka.DataSource = rsPrimka       'ovdje set da je popunjen recordset sa podacima iz baze datasource od reporta(drPrimka)


'ovdje dodajes datapolja na odredeno polje u recorsetu

drPrimka.Sections("Section1").Controls.Item("Text1").DataField = "Broj_Primke"
drPrimka.Sections("Section1").Controls.Item("Text2").DataField = "datum"
drPrimka.Sections("Section1").Controls.Item("Text3").DataField = "naziv"
'ove textboxeve stavi u SECTION1 tj. DETAIL sekciju u reportu



drPrimka.Show




i sad kombiniras kako ti pase
mozes i raditi sa labelima. npr.:



Code:


drPrimka.Sections("Section2").Controls.Item("Label1").Caption = rsPrimka("tel").Value




Nadam se da sam ti bar malo pomogao.
[ miki987 @ 07.12.2009. 14:26 ] @
hmm, bez obzira sto radim u ovom nikako mi ne polazi za rukom sa datareport'om
hvala ti ali mislm da bi mi primer najbolje dosao
evo i koda:

Code:
Private Sub Command4_Click()
Dim rsPrimka As ADODB.Recordset
Set rsPrimka = New ADODB.Recordset
Dim sql As String
sql = "SELECT datum,kolicina,broj_fakture,jm,kupac,naziv_artikla,iznos,pdv,rabat,mp_vp,racun,valuta FROM baza_faktura"
Set DataReport1.DataSource = rsPrimka       'ovdje set da je popunjen recordset sa podacima iz baze datasource od reporta(drPrimka)
'ovdje dodajes datapolja na odredeno polje u recorsetu
DataReport1.Sections("Section1").Controls.Item("Text1").DataField = "redni_broj"
DataReport1.WindowState = vbMaximized
'Fizicki prikazujemo izvestaj
DataReport1.Show
'Ponistavamo objekte koji su korisceni
'"SELECT broj_fakture.datum, broj_fakture.kolicina, broj_fakture.broj_fakture, broj_fakture.jm, broj_fakture.kupac, broj_fakture.naziv_artikla, broj_fakture.iznos, broj_fakture.pdv, broj_fakture.rabat, broj_fakture.mp_vp, broj_fakture.racun INNER JOIN broj_fakture ON broj_fakture.valuta = broj_fakture.redni_broj FROM broj_fakture"
Set rsPrimka = Nothing
End Sub


[Ovu poruku je menjao miki987 dana 07.12.2009. u 15:51 GMT+1]
[ DankoH @ 07.12.2009. 19:15 ] @

Code:

Private Sub Command4_Click()
Dim rsPrimka As ADODB.Recordset
Set rsPrimka = New ADODB.Recordset
Dim sql As String

sql = "SELECT datum,kolicina,broj_fakture,jm,kupac,naziv_artikla,iznos,pdv,rabat,mp_vp,racun,valuta FROM baza_faktura"

Set DataReport1.DataSource = rsPrimka       'ovdje set da je popunjen recordset sa podacima iz baze datasource od reporta(drPrimka)
'ovdje dodajes datapolja na odredeno polje u recorsetu
DataReport1.Sections("Section1").Controls.Item("Text1").DataField = "redni_broj"
DataReport1.WindowState = vbMaximized
'Fizicki prikazujemo izvestaj
DataReport1.Show

Set rsPrimka = Nothing
End Sub



Kolko vidim nisi napunio recordset sa podacima. Znaci fali ti

rsPrimka.Open sql, conn, adOpenDynamic, adLockOptimistic

i u saq stingu nemas "redni_broj".
Dakle po meni bi bilo ovako:


Code:


Private Sub Command4_Click()
Dim rsPrimka As ADODB.Recordset
Set rsPrimka = New ADODB.Recordset
Dim sql As String

sql = "SELECT datum,kolicina,broj_fakture,jm,kupac,naziv_artikla,iznos,pdv,rabat,mp_vp,racun,valuta FROM baza_faktura"

rsPrimka.Open sql, conn, adOpenDynamic, adLockOptimistic 'OVO TI FALI

Set DataReport1.DataSource = rsPrimka       

'ovdje dodajes datapolja na odredeno polje u recorsetu

DataReport1.Sections("Section1").Controls.Item("Text1").DataField = "naziv_artikla"    'REDNI_BROJ NISI NI ZATRAZIO IZ BAZE

DataReport1.WindowState = vbMaximized
'Fizicki prikazujemo izvestaj
DataReport1.Show

Set rsPrimka = Nothing
End Sub





Sretno. :p
[ miki987 @ 08.12.2009. 13:05 ] @
nemas pojma kakva sreca kad sam ugledao datareport formu bez gresaka :D ali sreca je trajala na kratko, sve dok nisam provalio da sam ja napravio konekciju da cita direktno iz baze podatke a ne iz listview-a :(. Pomagaj...

Code:
Private Sub Command4_Click()
Dim rsPrimka As ADODB.Recordset
Set rsPrimka = New ADODB.Recordset
Dim SQL As String
openconn
SQL = "SELECT * FROM baza_faktura ORDER BY datum DESC;"



Set rsPrimka.DataSource = conn.Execute(SQL)

Set DataReport1.DataSource = rsPrimka
DataReport1.Sections("Section1").Controls.Item("Text1").DataField = "datum"
DataReport1.Sections("Section1").Controls.Item("Text2").DataField = "kolicina"
DataReport1.Sections("Section1").Controls.Item("Text3").DataField = "broj_fakture"
DataReport1.Sections("Section1").Controls.Item("Text4").DataField = "jm"
DataReport1.Sections("Section1").Controls.Item("Text5").DataField = "kupac"
DataReport1.Sections("Section1").Controls.Item("Text6").DataField = "naziv_artikla"
DataReport1.Sections("Section1").Controls.Item("Text7").DataField = "iznos"
DataReport1.Sections("Section1").Controls.Item("Text8").DataField = "pdv"
DataReport1.Sections("Section1").Controls.Item("Text9").DataField = "rabat"


DataReport1.WindowState = vbMaximized
DataReport1.Show
Set rsPrimka = Nothing
closeconn
End Sub


imam listview3 i iz njega zelim prikazati sve podatke u datareport ali tako da cita sve sto se u tom trenutnku nalazi na listview-u
da li je to moguce i kako?
u ovom trenutku lista sve sto se nalazi u broj_fakture
[ DankoH @ 08.12.2009. 13:10 ] @
pa ne moze iz listviewa. moze iz baze. zato i imas sql upit da izvadis iz baze ono sta ti treba...
to tak radi i dobro je da tako radi.. sa sql upitom mozes dobiti bilo kakve podatke iz baze. prouci sql upite

[ miki987 @ 08.12.2009. 19:07 ] @
Cekaj, hoces mi reci da je nemoguce prikazati podatke iz listview-a koje se u tom trenutku videu datareport. Kazem u tom trenutnku zato sto se podaci prikazuju na osnovu search-a, dakle korisnik pretrazi po upitu podatke iz tablice, listview prikaze ono sto je nadjeno a data report treba da stampa...To je ono sto ja zelim i ocajno pokusavam. Da li je to moguce? nesto sto bi islo laicki receno

Code:
form1.text1.text = datareport1.text1.text


molim te/vas da mi pomognete oko ovoga jer sam previse daleko otisao da bih nalazio drugo resenje
Hvala
[ DankoH @ 08.12.2009. 22:30 ] @
Mozes u labele.


drPrimka.Sections("Section2").Controls.Item("Label1").Caption = form1.text1.text ili sto vec...


Valjda tebi to treba..

Ovo sad pisem napamet, nisam pri kompu na kojem mi je vb instaliran pa ne mogu probati. Mislim da
label ni ne mozes staviti u Sekciju1. Samo u header i footer, tako da za ovaj tvoj primjer datareporti i
nisu neko vrlo rijesenje ako ne mislis raditi sa bazama/recorsetom.


Pozdrav!
[ miki987 @ 09.12.2009. 10:37 ] @
Ne znam koliko je pouzdano i pravi izbor ali mozda nekome zatreba pa evo kako sam resio:

Posto koliko sam shvatio DataReport ne moze da procita nesto iz ListView-a i prikaze u DataReport, resenje je da se zada upit ka bazi na kojoj radite
U ovom slucaju meni je tablica baza_faktura i ka njoj sam zadao upit

Code:

Dim search As String
search = ListView3.ColumnHeaders.Add.Text
SQL = "SELECT * FROM baza_faktura WHERE broj_fakture = '" & broj_fakture & "' ORDER BY broj_fakture  DESC;"


gde pre nego sto prikaze u DataReport on izcita - pronadje sve sto se nalazi pod poljem broj_fakture pod brojem npr. 02/09 i prikaze u DataReport

Vama Hvala

jos samo jedno pitanje, kako graficki urediti DataReport, dakle zeleo bih da ubacim neke moje slicice, logo-e i t.d.
takodje kako da zadam da se datareport vidi u 150% view po default-u?

i jos jedno pitanje, kako da saberem sve brojeve koji se nalaze u lisview-u pod odredjenim poljem

[Ovu poruku je menjao miki987 dana 09.12.2009. u 11:49 GMT+1]
[ DankoH @ 09.12.2009. 11:05 ] @
E da, tako to treba rijesit. Listview koristi samo za prikaz podataka na ekran, sve sto printas, računas, prenašaš vuci direkt iz baze da ti budu podaci uvijek tocni. Bar ja na to tako gledam. Isto tako i racunanje iznosa ili cega vec direkt iz baze.

Daklem:

Code:


SQL = "SELECT SUM(cijena) AS total  WHERE broj_fakture = '" & broj_fakture & "'"

Set rs.DataSource = conn.Execute(SQL)

Set DataReport1.DataSource = rs
DataReport1.Sections("Section5").Controls.Item("Label1").Caption = "IZNOS: " & rs("total").Value



Kuzis? Sve cupaj direkt iz baze.




Aj neka se jos netko prikljuci ovoj temi, mozda ja covjeku govorim sve krivo :P ..




I molim Vas kako srediti redne brojeve u DataReportu?
[ miki987 @ 09.12.2009. 13:17 ] @
ok probacu i javljam se
a sto se tice ovog tvog pitanja, mozda ti moze pomoci ovo sto sam okacio, ja sam se petljao sa tim, postoji opcija gde korisnik po Column-u moze odrediti sortiranje, tako da ako kliknes na column REDNI BROJ pojavi se ona strelica i sortira ti SAMO brojeve ne dirajuci sve ostalo a u datareportu ti prikaze isto, pogledaj pa mozda mozs da nesto izvuces.
Ja sam probao i nije mi uspelo jer sam zeleo da menjam sortiranje neke druge kolone


ne vredi druze ne ide mi nikako, evo primera pa pogledaj ako mi mozes pomoci

[Ovu poruku je menjao miki987 dana 09.12.2009. u 14:55 GMT+1]
[ DankoH @ 10.12.2009. 16:54 ] @
Ne znam sta tocno zelis dobiti sa tim primerom ali sam ti stavio 2 command-a pa vidi u njima sta se desava..
Pise da hoces zbrajati stringove iz listviewa, zasto? Mozes ih pribrajati, ali je bezvere stringove zbrajat, zato postoje int, double.

Poz!



P.S. Stvarno ne kuzim kak uploadat filove na forum :p


http://rapidshare.com/files/319002301/komitenti.rar.html

Skuzio sam, malo mi traba da nest skuzim..
[ DankoH @ 15.12.2009. 12:50 ] @
Evo ako nekog zanima kako sloziti redne brojeve.


prije sql upita prijaviti varijablu, dakle:

Code:


connGlobal.Execute "SET @rb=0"




i onda u upitu dodati zbrajati varijablu + 1:

Code:


"SELECT ......, @rb:=@rb+1 as redni_broj, ....
 FROM .... WHERE ......"




i imamo redne brojeve.... supač!


Pozdrav!
[ miki987 @ 17.12.2009. 14:44 ] @
zeleo bih da u listview ucitam pomocu

Code:
ListView1.ListItems.Clear
br_fak = searchbox2.Text
openconn
SQL = "SELECT * FROM baza_faktura WHERE broj_fakture = '" & br_fak & "' ORDER BY broj_fakture DESC;"



sve sto se nalazi pod ukucanim tekstom - brojem u bazi ali tako da samo ispise po jedan od svih, znaci ako u bazi imam 5 brojeva "2.5" kada u ovo search2.text ukucam "2.5" on ce da mi izbaci sve koje imaju "2.5" a ja zelim da mi uvek prikaze samo jednom.
cilj mi je da iz baze i jedne tablice izvucem i prikazem u listview sve sto ima ali samo po jedan primer
kako to da odradim?
[ DankoH @ 17.12.2009. 18:00 ] @


Code:

SQL = "SELECT * FROM baza_faktura WHERE broj_fakture = '" & br_fak & "' ORDER BY broj_fakture DESC LIMIT 1;"