[ mrkonjic86 @ 24.03.2010. 10:19 ] @
Prije svega pozdrav svima,


Dakle imam sljedeći problem:
Program koji pravim u VB6 je povezan sa Access 2003 bazom..
u bazi imam tabelu Klijenti u kojoj imam kolonu Slika..
u koloni slika je putanja gdje je slika smještena na HDD.
eh sad pitanje :
kako da u DataReport-u ubacim sliku , da kada kliknem na cmdReport da mi report i u njemu sve klijente iz baze i da učita za svakog klijenta njegovu sliku preko one putanje u bazi.
u DataReportu ja ubacim Image1, ali u njega mogu samo ja odrediti koja slika ide,kako da on sam povuče link iz baze i da učita tu sliku.

nadam se da sam bio iole jasan

molim za pomoć, tražio sam po ovom forumu i google-o sam ali ništa.
dali je to moguće i kako.

unaprijed hvala
[ vuchko.vuchko @ 24.03.2010. 11:41 ] @
Ako sam te dobro razumio ...mozes ovako

Dimenzionises neki string

Code:
Dim NekiString As String


Zatim iz trenutnog zapisa u bazi uzmes putanju do slike...

Code:
NekiString = Data1.Recordset.fields("Slika").Value


A potom postavis sliku:

Code:
Image1.Picture = LoadPicture(NekiString)


[ mrkonjic86 @ 24.03.2010. 12:03 ] @
Mislim da se nismo razumjeli,

to kolko sam ja shvatio bi super radilo da je Image1 napravljen na nekoj formi, ali kod mene je Image1 napravljen na DataReport-u tj. kada unesem nekog klijenta u bazu i kada unesem i sliku njegovu, potrebno mi je da on u reportu napravi za tog klijenta nešto kao člansku karticu sa slikom.

kada uradim ovo što si napisao u Reportu napišem taj kod on mi izbaci kao da varijabla Image1 nepostoji. ustvari on Image1 ni ne vidi kolko sam ja skonto
[ mrkonjic86 @ 26.03.2010. 06:15 ] @
Imali iko ikakvo rješenje ili prijedlog za moje pitanje..
[ Pulapola @ 26.03.2010. 09:43 ] @
Evo primjer zapisa slika u bazu, pregled i printanje.
Umjesto DataReport-a koristi Crystal Report.
Pozdrav

Krivo sam nazvao Backup.rar trebalo je Slike.rar
ali to je to.
[ mrkonjic86 @ 26.03.2010. 13:06 ] @
pozzz PulaPola,

mislim da ovo što si ti attachiro ovdje nije toto..
naime ovdje se radi da se sve slike nalaze u bazi podataka kao OleObject, a kod mene je sasvim druga situacija...
Kod mene se u bazi podataka nalazi samo putanja do slike koja se nalazi negdje na HDD-u.

Kod mene postoji forma u kojoj ima ListView i u njega se napune svi kontakti iz tabele Klijenti, u toj formi postoji i jedan Command Buton koji kad se click-ne otvara report (rptClanska) o korisniku koji je označen u ListView. u reportu(rptClanska) se nalaze određeni podaci o tom klijentu ali meni treba da se nalazi i jedan PictureBox u kojem će biti slika koja je povučena sa putanje.
putanja za sliku se nalazi istoj u tblKlijenti..

sad meni nije bitno koji ću koristiti report dali ovaj dataReport ili CrystalReports, samo da to profunkcioniše..
iskreno nisam baš na TI sa reportima.
evo dio koda od dugmeta koje otvara report :
Code:

Private Sub cmdClanska_Click()
Dim RS As New ADODB.Recordset

    RS.Open "SELECT * FROM Klijenti WHERE KlijentiID=" & Val(lstKontakti.Tag) & "", dbconn, 2, 3
        
    If RS.EOF Then
        MsgBox "Osnovna baza je prazna"
    Else
        Set rptClanska.DataSource = RS
        rptClanska.Show
    End If
End Sub


nadam se da sam bio jasniji
[ captPicard @ 26.03.2010. 14:02 ] @
Ako se dobro sjećam, samo moraš staviti ispred Image1.Picture naziv reporta.

Code:
rptClanska.Image1.Picture = LoadPicture(NekiString);
[ mrkonjic86 @ 29.03.2010. 15:44 ] @
Pa da, to bi trebalo tako da radi ali kod mene je problem što kada ja ukucam to ono meni pokazuje kao da image1 ne postoji, a stavio sam Image1 u rptClanska i 100% ima.
Eh sad kako da kada počnem pisati rptClanska.(da mi izbaci sve mogućnosti između ostalog da bude i ta kontrola Image1, ono meni zbaci neke mogućnosti ali nema nigdje Image1 koji sam kreirao tamo 100%)

Koristim Visual Basic SP6

Ako neko zna, please pomoć ;)
[ unisoft @ 31.03.2010. 23:51 ] @
Malo je falilo da i ja otovorim ovu temu. I mene isto muci ovaj problem.

Code:

Private Sub cmdLICNA_Click()

    Dim rs As ADODB.Recordset, rsSQL As String
    
    
    rsSQL = "SELECT * FROM licna"
    
    Set rs = mdiGLAVNA.adoVezaBaze.Execute(rsSQL)
    
    Set rptLICNA_SVE.DataSource = rs
    Load rptLICNA_SVE
    Set rptLICNA_SVE.Sections("Section1").Controls("Image1").Picture = LoadPicture(App.Path & "\slike\licna\" & rs.Fields("jmbg").Value & ".jpg")
    rptLICNA_SVE.Show

End Sub



Ovako sam ja ucitavao sliku. Sada problem je u tome sto kontrola Image nema svojstvo DataSource. Da ima ovo bi bilo lako uraditi, ali nema .??

Na ovaj nacin on meni za sve l.karte povlaci jednu te istu sliku.


mrkonjic86 - zamolio bih te ako dodjes do resenja da ga postavis na forum, u ovom postu.

[ mrkonjic86 @ 01.04.2010. 12:10 ] @
evo ga !!!
ovo kod mene sada tadi


Code:

Dim rs As New ADODB.Recordset

    rs.Open "SELECT * FROM Klijenti WHERE KlijentiID=" & Val(lstKontakti.Tag) & "", dbconn, 2, 3
    If rs.EOF Then
        MsgBox "Potrebno je da obilježite klijenta", vbInformation, "Info"
    Else
        Set rptClanska.DataSource = rs
        Load rptClanska
       On Error Resume Next
       Set rptClanska.Sections("Section1").Controls("Image2").Picture = LoadPicture(Neki_String)
       rptClanska.Show
    End If


"Neki_String"- to već odrediš da povuče putanju do slike

hvala velika unisoft, pomogao si mi da dođem do riješenja u ovome...
[ unisoft @ 01.04.2010. 20:09 ] @
Pa da naravno da radi. Ali jesi li primetio da ako ti rs ima vise redova. Sve rptImage kontrole imaju istu sliku.Meni treba da svaka rptImage kontrola ima novu sliku.


MOJ PROBLEM: kako da se za svaki red is RecordSet-a u rptImage kontroli ucita nova slika.
[ Pulapola @ 01.04.2010. 20:50 ] @
Za kod ispod treba Crystal Report 8.5 (imam stariju verziju pa ne mogu napraviti test),
ali mislim da radi ono što vam treba. Prikačen je i rpt u CR-u.

Pozdrav

Code:

Option Explicit
Dim rpt As CRAXDRT.Report
Dim db As CRAXDRT.Database
Dim rs As New ADODB.Recordset
Dim WithEvents sect As CRAXDRT.Section

Private Sub Form_Load()
Screen.MousePointer = vbHourglass
Set rpt = crx.OpenReport(App.Path & "\Report\Catalogue.rpt")
Set db = rpt.Database
Set sect = rpt.Sections("Section5")
rs.Open "SELECT * FROM Cake", cn, 1, 1
rpt.Database.SetDataSource rs, 3, 1
CRViewer1.ReportSource = rpt
CRViewer1.ViewReport
CRViewer1.Zoom 1
Screen.MousePointer = vbDefault
End Sub

Private Sub Form_Resize()
CRViewer1.Top = 0
CRViewer1.Left = 0
CRViewer1.Height = ScaleHeight
CRViewer1.Width = ScaleWidth
End Sub

Private Sub Form_Unload(Cancel As Integer)
cn.Close
End Sub

Private Sub sect_Format(ByVal pFormattingInfo As Object)
Dim bmp As StdPicture
On Error Resume Next
With sect.ReportObjects
    Set .Item("picCake").FormattedPicture = LoadPicture(App.Path & "\Cake\ck99.gif") 'default
    If .Item("adoFileName").Value <> "" Then
        Set bmp = LoadPicture(App.Path & "\Cake\" & .Item("adoFileName").Value)
        Set .Item("picCake").FormattedPicture = bmp
    End If
End With

End Sub

[ unisoft @ 01.04.2010. 22:49 ] @
Pa provericemo ali ne skoro. Za sada znam samo da radim u VB6 DataReportu. Trenutno imam previse obaveza pa ne mogu da odvojim vremena za ucenje CR. U toku je skidanje poslednje verzije Crystal Report XI ( CR 2008). Kada zavrsim skidanje skinucu CR 8 , CR 8.5 , CR9 i CR 10. Imam knjigu Crystal Report 9 koju sam kupio na sajmu kniga u BG 2009, dosta video tutorijala, pdf dokumenata i td.

Citam jedu ekstra knjigu za VB + radim diplomski rad + predavanja + ali na leto kada ovo zavrsim i pocnem da ucim CR budi siguran da cu dobro prouciti tvoj kod.

Zeza ovaj RapidShare ali team CryptLoad ih je sredo :). Platim im acc ma.. sutra.
[ mrkonjic86 @ 02.04.2010. 06:22 ] @
Citat:
unisoft: Pa da naravno da radi. Ali jesi li primetio da ako ti rs ima vise redova. Sve rptImage kontrole imaju istu sliku.Meni treba da svaka rptImage kontrola ima novu sliku.


MOJ PROBLEM: kako da se za svaki red is RecordSet-a u rptImage kontroli ucita nova slika.


Pa ima kod mene RS više redova i sve radi kako treba, jer nemoguće da mi povlači sve slike jer kod mene Neki_Sting ima tačnu putanju do slike i ime slike,
tako da on povlači samo onu sliku koja ima isto ime kao i Neki_String....
[ unisoft @ 02.04.2010. 11:28 ] @
Nisi razume sta sam reko. Ti znas da je ime prve kontrole IMAGE1, a koje je ime 100 ... mozda IMAGE100 e pa nije. Pokusavo sam i ne uspeva mi. Imam bazu i u njoj tabelu licna karta. U toj tabeli postoji kolona JMBG. Slike za svaki red su na putanji App.path & \slike\" & rs.fields("JMBG").value & ".jpg"


Ja sam pokusavo, pretrazivao po netu i nisam naso resenje za vb6 data report. Jedino resenje je Crystal Report.Zamolio bih te ako umes to da uradis, napravi mi neki primer i postavi na forum ili posalji na adresu [url=] [email protected] [/url]




[ mrkonjic86 @ 05.04.2010. 06:24 ] @
ako možeš postavi to ovdje pa da pokušam napraviti, jer mislim da se nerazumijemo baš najbolje!
[ unisoft @ 05.04.2010. 09:39 ] @
Ne mogu ti postaviti zato sto je to diplomski rad koji jos nije odbranjen.

Kako ne razumes. Imas bazu podataka i u njoj tabelu licna.U tabli licna prva kolona je JMBG. JMBG je jedinstveni broj gradjanina tipa broj i ima 13br. E sada kada ja na formi kliknem na dugme prikazi report cele tabele on treba da za svaki red tabele licna za tog gradjanina prikaze njegovu sliku. Slike se nalaze na putanji App.path & "\slike\" & rs.fields("JMBG").value & "*.jpg". Rs je promenljiva koja je deklarisana kao recordset.

Meni ovo radi ali za samo jednog gradjanina. Tj kada kliknem na dugme koje sluzi za pravljenje reporta po sifri - pojavi se INPUTBOX sa porukom unesite JBMG i kada ga unesem i potvrdim sa OK on mi prikaze report za to gradjanina sa njegovom slikom.

Problem je u tome kada pravim za jednod gradjanina ja na reportu znam kako se kontrola IMAGE1 zove, zove se image1 osim ako joj mi nismo za vreme dizajniranja promenili ime. E sada kako se zove kontrola image za 100 zapis, jel ti report ne punis petljom vec samo dodelom promenljive tipa recorset datasource-u tog REPORTA a on je sada isprogramiran da procita svaki red recodset-a i prikazuje podatke. Jedno je puniti report podacima a jedno puniti podacima na primer kontrolu DBGRID. Report punis jednim redom koda a sve ostale kontrole sa vise redova koda, tj sa petljama.

Nadam se da ti je sada jasnije...