[ unisoft @ 24.01.2009. 20:39 ] @
Radi se o sledecem.Posto je po meni ovaj forum postao jedan od boljih ne po pisanju bas tema vec po tome sto nema vise bezveznih tema.Ljudi pisu o ozbiljnim problemima koji nekome mogu mnogo znaciti.

Tako sam ja jednog dana dosadjivao se i upalim net i malo svrljam po vasem forumu.Veoma volim da pratim temu Visual Basic 6.Jednom ja ti upalim temu Microsoft Acess i pocenm da citam redom postove koji su drugi postavljali.

Tada naidjem na jedan vrlo zanimljiv post.RECE JE O TOME STO JE JEDAN DECKO (koji je postavio taj post) pravio uplatnicu u MS Acessu.To je tako prosto odradio da je neverovatno.

evo linka te teme : http://www.elitesecurity.org/t344111

E SADA ONO STO MENE ZANIMA A I SIGURNO JE NEKO PRETPOSTAVIO STA JA HOCU .

Kako da to odradim u Visual Basicu 6.

Znaci ima jedna forma na kojoj su LABELE i TEXTBOXOVI rasporedjeni tako da odgovaraju STANDARDNOJ UPLATNICI na toj formi ce biti komadno dugme na koje kada kliknemo treba da nam pokaze u data reportu tu uplatnicu.Ako ste pogledali onaj gore link i skinuli tu uplatnicu videli ste da on nema ni jednu tabelu vec ima samo jednu formu i tri reporta.

Ja ne znam kako da ovo uradim u VB6.Jedino znanje koje imam iz DATAREPORTA je samo par strana u knigi KOMPIJUTER BIBLIOTEKE VB6 gde se !!! samo spominje data report .to je neki primercic-to jest ne posedujem dovoljno znanja iz te oblasti.Mada trazim knjige za data report.

[ Ordamir @ 25.01.2009. 07:58 ] @
Ja bih ti rado pomogao ali nazalost ne znam sta tasno hoces, molimte malo opsirnije opisi sta ti treba, ako samo da ti odstampa podatke na uplatnicu onda to je najednostavnije da zabranis promenu velicinu forme, dodas labele, txtboxove koje podesis da budu bez ivica, i stavis jedan taster

Code:
 
 cmdStampa.visible=false 'da se ne bi video taster na stampanoj proznanici
frmPriznanica.PrintForm 'ovaj cod ti stampa formu u vidjenomm formatu, zato je potrebno da se taster ugasi, bilo bi malo smesno da na priznaniciimas taster Stampaj.


dodaj jos nesto ako hoces novu priznanicu
naprimer neki taster da ti vrati taj tster stampaj ili uradi samo jedan taster

mislim da je
To je najednostavnije,

Ako hoces ozbiljnije pitaj sta tacno hoces
[ unisoft @ 25.01.2009. 08:24 ] @
Nisi me razume.Prvo pogledaj ovaj link.

http://www.elitesecurity.org/t344111

sa ove teme skini UPLATNICU.Forumas koji je pokrenuo ovu temu je napravio UPLATNICU u MS Acessu.Kako,pa na formi u Aseecu ima sva potrebna polja koja su neophodna za uplatnicu i na toj formi ima COMBO BOX i u njemu ITEM 1,2,3 zato sto na A4 format mogu da stanu tri uplatnice.Pored tog combo boxa ima i jedno komadno dugme.Ono sluzi da kada na formi popuni podatke i odabere broj kopija uplatnice iz combo box-a da se to prikaze U ODNOSU 1:1 na A4 formatu to jest u pravim dimenzijama.

Aj evo postavio sam i ja to uz ovu poruku pa pogledaj i reci mi kakao da isto to napravim u VB.

Ja hocu to isto da napravim samo ne znam kako.Da na formi imam isti raspored labela i textbox-ova i da kada kliknem na komadno dugme da mi se to prikaze u data riportu a da iz njega stampam.
[ Ordamir @ 25.01.2009. 21:02 ] @
Aha....., Nisam procitao sve postove... ali sad kontam...
Imam jedno resenje koje je funcionalno 100 %, samo nije bas najelegantnije, ali ce ti posluziti posto je jednostavno za izradu.

Naci prvo terbas da nastavis jednu bazu koju ces privremeno koristiti, i potom se podaci brisu iz nje, ili na kraju rada ili na pocetku novog rada..

Ovim resenjem ne samo da ces moci tri nego neograniceni broj uplatnica na jednom reportu



Evo ga:

1.Trebas da napravi bazu podataka koja ce da sadrzi field ove sa podacima koje zelis da ti forma ispisuje (ime, prezime, adresa, primalac, .....) preporucujem da koristis visual data manager, ako googlas trazi VisData

2.Napravis formu preko koje ces da unosis podatke u tu bazu sa svim pomocnim tasterima, imam nekih ideja i ako buedem imao vremena Izradicu ti jednu. (predpostavljam da ovo do sad znas da radis)

E dalje....

E sad o Data Reportu.... On je dosta smotan dodatak, ja ga bas ne gotivim, i ima dosta nedostatka, to sto trebas da znas o njemu je to da on u sekciji jedan >Detail (Section1)< Izcitava podatke iz baze i ispisuje ih po odredjenom kriterijumu jedan ispod drugog, koliko ih ima, pa makar bilo vise stranica on ce ih dodavati. Sto ti vidis, kad ga ubacis u projekat je Report Heather i Footer (section 2, 3) Oni se poljavljulju na pocetku izvestaja i kraju izvestaja, Imas Page Heathe i Footer (section 4, 5) koji se poljavljulju na vrhu i dnu svaake stranice reporta, tu mozes ubacivati neke funkcije, npr da ti sabire sve svote koje se nalaze na Reportu, sto tebi moze cak i da pomogne, datum, itd itd,. I naravno ima Details (section 1) o kojem sam ti vec pricao, nama je sad on potreban.

Ja ti preporucujem da pogasis Section 2, 3, 4, 5 jel bi ti oni smetali pri pravljenju rasporeda, kasnije ih mozes upotrebiti.
Takodje ti preporucujem da merne jedinice koje koristi VB (twip) prebacis u cm ili mm radi toga da bi lakse mogao da napravis raspored, Ti trebas da napravis samo jednu semu za uplatnicu ostalo ce uraditi vb, tj DataReport, u section 1 ga pravis

Ubaci tekst boxove za promenjljive, tj ime prezime,... a za ispise labele.

Imas Vise opcija kako da povezes report sa bazom bodataka.
Ako si vise vizualan tip onda ti preporucujem Data Environment Designer, ali ako hoces na standardni nacin onda nema druge neg pisati kod.
u daljem tekstu cu ti dodati i cod.

ako si se odlucio za kod, sto ti ja preporucujem onda trebas da uradis veze, tj jest da podesis data report>> record source, i za svaki txt box datafield i data member. ako radis preko DED a onda neke korake mozes da izostavis ali si i donekle ogranicen.

e pa ja mislim da je donekle to to

Evo ti cod za pravljenje i pozivanje konekcije:

Code:

Private Sub Form_Load()
    Set conn = New ADODB.Connection
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & App.Path & "\uplatnice.mdb;" & _    '<< ovo uplatnice.mdb je ime baze podataka, 
        "Persist Security Info=False"
End Sub

Private Sub cmdReport_Click()
    Set rs = conn.Execute("SELECT *FROM uplatnice")

    Set datareport1.DataSource = rs '<< datareport1 je ime reporta
    rptTitles.Show vbModal
End Sub

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


u kod sam dodao i red za podesavanje recordsource a tako da to ne moras da podesavas
Tu ce ti se verovatno javiti greska da se ne refreshuje report, ali taj problem imam i ja i nisam ga jos elegantno resio posto sam sve ko majmun radio preko ded a da bi ustedeo vreme ne misleci o posledicama i sad se mucim, ali ako radis sa ADO recordsetom podataka onda to nije problem

Probaj pa pitaj, postavicu neki projekat sa reportom, ako ga nadjem.


[ unisoft @ 25.01.2009. 21:55 ] @
Citat:
Aha....., Nisam procitao sve postove... ali sad kontam...
Imam jedno resenje koje je funcionalno 100 %, samo nije bas najelegantnije, ali ce ti posluziti posto je jednostavno za izradu.

Naci prvo terbas da nastavis jednu bazu koju ces privremeno koristiti, i potom se podaci brisu iz nje, ili na kraju rada ili na pocetku novog rada..

Ovim resenjem ne samo da ces moci tri nego neograniceni broj uplatnica na jednom reportu


Da upravu si.Ovo je ok.Nisam isprobao ali znam da je 100% uredu jel isto ovako ima u knjigi iz koje ucim VB.Na istu foru je odranjeno pravljenje data rpiorta ali sa bazom.

Jbg... sta mogu ako ne budem imao drugo resenje mora cu tako da radim.


ALI MORAS PRIZNATI DA AKO MOZE DA SE ISTO URADI U VB KAO STO JE ON URADIO U MS Acessu TO BI BIO PUN POGODAK.AKO KOJIM SLUCAJM DODJES DO RESENJE KAKO URADITI U VB-u bez baze podataka UPLATNICU IZ FORME POSTO SU POPUNJENI PODATCI PRIKAZATI U DATA RIPORTU SPREMNU ZA STAMPU MOLIM TE MI STO PRE JAVNI.


!!! hvala za kod ali ako ne nadjemo resenje moracu da radim sa bazom.Ovo sam i ja hteo ali pomislio sam da moze da se odradi bez baze kao on u MS acessu.Aj laku noc pa se dop.... i obavezno baci primere.
[ Aleksandar Ružičić @ 25.01.2009. 22:14 ] @
unisoft, zamolio bih te u ime svih korisnika koji citaju tvoje postove da malo manje koristis velika slova, nema potrebe za tim a i all-caps se generalno smatra vikanjem u internet komunikaciji, a nema potrebe da vices, mi ovde dobro cujemo :)
[ unisoft @ 25.01.2009. 23:00 ] @
Privaceno.Sta cu mozda bi i postovao pravila foruma da je pravilnik kraci.Ogroman je pa mrzi me citati.Zato se izvinjavam.Turudicu se u buduce da se ovo NE ponovi.E ja posto si ti MODERATOR da ne znas kojim slucajem resenje ovoga problema koji me muci u temi
[ Ordamir @ 26.01.2009. 00:50 ] @
Pazi, da je resivo bez baze to je sigurno, barem ja mislim, ali nisam siguran dali bi bilo jednostavnije za izradu. ako neces da ti baza ostane, samo napravis neki kod koji pravi tabelu i posle upotrebe je odma i brise i onda ti ne ostaje tragova baze. Nesto cu da pokusam pa ti javim, ali ja mislim da bi ti ovo pruzalo najvise mogucnosti, pogotovo ako ovo zelis da integrises u nek iprogram cak nema ni potrebe da pravis novu bazu podataka nego sa sql naredbama kreiras neki query i njeaga koristis konstantno, ali pokusacu


PS: akoga integrises, i ako ti nije problem postavi program pa da ti tako probam pomoci, znam kakvo je bilo meni kad sam ja poceo i nisam imao bas puno pomoci


EDIT: Nasao sam kako se radi. sad samo jos da ga primenim u praksi. Postavicu za svaki slucaj pa pokusavaj i ti
dvoje cemo ipak lakse resiti, cini mi se ko zanimljiv problem.

[Ovu poruku je menjao Ordamir dana 26.01.2009. u 12:24 GMT+1]

Evo ti link na kojem ces naci puno kodova kakav sam postavio, verujem da ces pomocu ovog uspeti, ili ce ti bar biti od pomoci
http://www.freevbcode.com/searchresults.asp

[Ovu poruku je menjao Ordamir dana 26.01.2009. u 12:47 GMT+1]
[ unisoft @ 26.01.2009. 17:09 ] @
Buraz ne znam sta da ti kazem.Hvala ti.Ja sam doso do nekoga slicnog resenja ali ne potpunog( nije mi radilo jer je nesto nedostajalo ali sada sa ovim tvojim primerom znam sta je to ).Ovaj tvoj primer je potun i sada znam sta treba da radim.Trenutno sam zauzet jer sutra imam ispit na visoj pa ucim.Ali bacio sam pogled na ovaj primer koji si postavio-mislim na kod i sada 100% znam sta treba da uradim.

Ako budes nasao jos nekih primercica ili tutorijala na ovu temu VB-Data Report postavi ih u ovoj temi.Svaka cast.Kada budem imao malo vise vremena.Napravicu uplatnicu u vb-data reportu i postaviti je u ovoj temi da vidis da izgleda.

Moras priznati jednu stvar.Malo je po ovom pitanju VB sra.....Kako je prosto u MS Acessu reseno.Jednostavno dodas na formu jedno komadno dugle i u njega upises imeriporta.show a na poljima riporta u CONTROL SOURCHE upises =[Forms]![ime forme]![ime labele,ili text boxa...] i to je ceo posao dok u VB bas ima da se pomucimo do nesto slicno ovome uradimo.

Odoh da strebam za ispit pa se ...
[ Ordamir @ 27.01.2009. 05:09 ] @
Nema na cemu, sto se tice strebanja trebao bi i ja, ali mi se ne da.

U pravu si ja sam se preko reporta namucio uvek, al cesto sam imao srece da sam mogao da resim preko vorda, exela.

Nisu mi trebali dinamicni reporti.

Nasao sam jos jedan nacin, ali onda nije dinamican, nego mozes da da izaberes bas kao u tvom primeru jedan, 2 ili 3 uplatnice, a to je da radis preko .caption opcije, ali to bas nije elegantno.

Cekam tvoju uplatnicu, da vidim kako ce uspeti, srecno,.....
.... pa i na ispitima

[ unisoft @ 28.01.2009. 20:30 ] @
Citat:

' Project: VB Data Report Demo II: Grouped Report
' ===============================================
' Created: 05-Jan-2004
' Developer: Brian M. Matumbura
' Purpose: Shows how to use the VB Data Report designer without a Data Environment designer
' This update shows how do use Shaped Recordset without an underlying data source
' to generate a hierarchical recordset for use with the report
' Comments & Suggestions: E-mail:- [email protected], Phone:- +26311862208
' Note: You may modify/use this code in your projects without any warranty
' Older Demo: How to use the VB Data Report designer without a Data Environment http://www.freevbcode.com/ShowCode.Asp?ID=6335

' All formating (Dates, Colours, Font Sizes/Attributes) on the report is specified in the Data Report Designer

Option Explicit

Const sTerms = "7 Days:2 Weeks:30 Days:90 Days:120 Days"

Dim rsCustomers As ADODB.Recordset
Dim conSrc As New ADODB.Connection

Private Sub cmdShow_Click()
With rptDemo
' Bind the Recordset to the Report
Set .DataSource = rsCustomers
.DataMember = rsCustomers.DataMember
.Sections("Section4").Controls("lblAddress").Caption = "101 Harare Str." & vbCrLf & "Zimbabwe" & vbCrLf & "Phone: +26311862208"
' Update the lblRecCount control on the report (Page Footer Section) to show RecordCount
.Sections("Section5").Controls("lblRecCount").Caption = rsCustomers.RecordCount & " countries listed"
DoEvents
.Show
End With
End Sub

Private Sub Form_Load()
Dim i As Integer

' First open a connection to the MSDataShape provider
conSrc.Open "Provider=MSDataShape;Data Provider=NONE;"

' Create a recordset to use with the report
Set rsCustomers = CreateRecords

End Sub

Private Function CreateRecords() As ADODB.Recordset
' Creates a disconnected hierarchical recordset on the fly
Dim rsCountries As New ADODB.Recordset
Dim rsCustomers As ADODB.Recordset
Dim rsInvoices As ADODB.Recordset
Dim sShape As String
Dim i As Integer, j As Integer, k As Integer

sShape = "SHAPE APPEND NEW adInteger AS CountryID, NEW adChar(25) AS Country, NEW adChar(25) AS [Capital City], NEW adInteger AS Population, " & _
"((SHAPE APPEND NEW adInteger AS CustomerID, NEW adInteger AS CountryID, NEW adChar(20) AS [Customer Name], NEW adChar(80) AS [Address], " & _
"((SHAPE APPEND NEW adChar(6) AS InvoiceID, NEW adInteger AS CustomerID, NEW adInteger AS [Order Number], NEW adChar(20) AS Terms, NEW adCurrency AS [Amount], NEW adDate AS [Invoice Date]) " & _
"AS Invoices RELATE CustomerID TO CustomerID)) " & _
"AS Customers RELATE CountryID TO CountryID)"
With rsCountries
.Open sShape, conSrc, adOpenStatic, adLockOptimistic, -1

For i = 0 To 119
' Add a new country record
.AddNew
Randomize Timer
!CountryID = i
!Country = "Country " & i
![Capital City] = "City " & i
!Population = Round(8000000 * Rnd + 3000000)
' ![ID] = "PID" & Format(i, "00000")
' ![Description] = "Sample Stock Item " & i
' Randomize Timer: ![Unit Price] = 101 * Rnd ' Add a random price
' Randomize Timer: ![Units In Stock] = Int(2000 * Rnd) ' Add a random number of items
' ![Sub Total] = ![Unit Price] * ![Units In Stock]
.Update
Set rsCustomers = .Fields("Customers").Value
With rsCustomers
For j = 0 To Int(21 * Rnd)
.AddNew
!CustomerID = CLng(CStr(i) & CStr(j))
!CountryID = i
![Customer Name] = "Customer " & !CustomerID
![Address] = "Customer " & !CustomerID & "'s Address"
.Update
Set rsInvoices = .Fields("Invoices").Value
With rsInvoices
For k = 0 To Int(8 * Rnd)
.AddNew
!InvoiceID = CLng(CStr(i) & CStr(j) & CStr(k))
!CustomerID = CLng(CStr(i) & CStr(j))
![Order Number] = !InvoiceID + 2
!Terms = Split(sTerms, ":")(Int(5 * Rnd))
!Amount = 3000 * Rnd
![Invoice Date] = DateAdd("d", -(120 * Rnd), Now)
.Update
Next
End With
Next
End With
Next
End With

Set CreateRecords = rsCountries
End Function

Private Sub Form_Unload(Cancel As Integer)
rsCustomers.Close
Set rsCustomers = Nothing
End Sub



Evo mene ali bez resenja nazalost.Previse rano sam se radovao.Ja videh ovaj kod .Sections("Section4").Controls("lblAddress").Caption = "101 Harare Str." i racunam ete ga resenje ali nije tako.Posto mi je ova funkcija SHAPE koju je on koristio u programu potpuno nejasna da nemas mozda neki opis za sta sluzi ova funkcija.

Procitah u tvom zadnjem postu da si nasao jos jedan nacin ali nije dinamican - KOJI.Daj bre zar ne psotoji neki laksi nacin da se odradi ovo,nego mora da se kuca kod ili da se koristi baza podataka.Valjda je VB jaci program od MS Acessa i poseduje sve negove "osobine" i jos mnoge (mislim na to da sto u acessu uradimo mozemo slicno i u VB).I sta je sa ostalim VB forumasima zar niko nije se bavio ovom problematikom.Jos uvek se nadam da cemo doci do nekog mnogo kraceg i lakseg resenja ako ne onda sta se moze moram NABUBATI napamet ovaj kod ... smrk :(

Kada skines ovaj ATTACH uz poruku i pokrenes ga videces 1 formu i tri reporta sa imenima rptNalog1,rptNalog2,rptNalog3.rptNalog1 sluzi za istu stvar a i ostali kao onaj primer uplatnice u MS Acessu.Uplatnica je standardan i nacrtao sam je u razmeri 1:1 na formi (stavio na displey pravu uplatnicu i onda sam raspored napravio na formi isti kao na uplatnici).Uplatnica je sirine A4 formata to jest 210mm.Znaci one dimenzije koje su na formi takve treba da budu i na REPORTU koji je podesen na A4 format.

I da sto nece da funkcionise ovaj kod.Na formu stavimo jedan textbox i komadno dugme.U event_click komadnog dugmeta napisemo ovaj kod

DataReport1..Sections("Section1").Controls("lblAddress").Caption = text1.text
DataReport1.show
naravno u reportu postoji nacrtana labela Adress sa NAME i CAPTION lblAdress

Pogledaj ovo sto sam postavio uz poruku.To je da kazem to samo treba da se doradi.Pomagaj brateee.

[Ovu poruku je menjao unisoft dana 28.01.2009. u 21:47 GMT+1]

[Ovu poruku je menjao unisoft dana 28.01.2009. u 21:48 GMT+1]