vb6 da datareport sorunu

Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
arkadaşlar

taban olarak access sorgu kullandığım çalışmamda

vb6 da datareport ekliyorum herşey tamam raporu görüntülüyor

fakat refresh yapamıyorum

rapor görüntüledikten sonra

raporu kapatıp yeni bir giriş yapıp rapor dediğimde

önceki girdiğim bilgileri gösteriyor

bu konuda bilgisi olan varsa yardımlarınız beklerim
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
--Başlık taşındı.--

Raporun kaynağı (datasource) nedir?

Şunlardan birini deneyebilirsiniz..

Kod:
DataEnvironment1.Recordsets(1).Requery
DataReport1.Refresh
 
Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
hocam
DataEnvironment1

kod yazmadan proparties penceresinden bağlıyorum
 
Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
hocam tamam verdiğiniz kodları yazdım çözüldü
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Raporun Initialize altında requery yapılabilir. Örneğin,

Kod:
Private Sub DataReport_Initialize()
    DataEnvironment1.Recordsets(1).Requery
End Sub
 
Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
hocam datareportta başka bir problemle karşılaştığım için
yeni bir konu açmadan burda sormak istedim


data reportta toplam alıyorum

peki hocam bunu nasıl yaparım datareportta

toplam : 1000
isk %( ) : 10
kalan : 990
kdv %( ): 100
masraf : 50
gen top : 1140

gibi bir hesabı altına nasıl eklerim datareportun
burdaki verilei elle giriyorum

bu hesabı formda yapıyorum mesela bu yaptıklarımı
direk data reporta nasıl atabilirm
 
Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
hocam yarmcı olabilirseniz böle bir çözüm var mı yada alternatifi
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bu bir fatura çıktısı mı olacak? Tablo ve report tasarımını görmeden fikir belirtmek zor..
 
Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
Hocam fatura çıktısı gibi olacak

bunu tablodan değilde text lerde yapıyorum hesaplamayı

direk datareporta geçmek mümkün değil mi
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Form üzerindeki textboxların değerini rapor nesnelerine eşitlemek istediğnizi sanıyorum.

Tasarım anında raporun ilgili bölümüne (section) rpttextbox ekleyin.

Tam hatırlamıyorum sanırım şöyle idi,

Kod:
with datareport1
   .sections("pagefooter").controls("rpttextbox?") = me.textbox1 
   .show
end with
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Fuat Şirin,

Hesaplamaları tablodan aldığınız verileri değişkenlere atayarak, hesaplamaları yapacaksınız. Daha sonrada ilgili alanları bu hesaplanmış değişkenleri atayacaksınız. Küçük bir örnek:

Kod:
SQLtext = "SELECT * FROM INVOICE WHERE SOLDBY = '" & User & "';"
Set rst = Login.db.OpenRecordset(SQLtext)
        If rst.RecordCount = 0 Then
                Msgbox "No Transactions for this user on this date"
                Exit Sub
        End If
rst.MoveLast: rst.MoveFirst
        Do Until rst.EOF
            If rst.Fields("HOWPAID") = "MC    " Then
                Mtotal = Mtotal + Val(rst.Fields("TOTALAMOUNT"))
                MCount = MCount + 1
            ElseIf rst.Fields("HOWPAID") = "Visa " Then
                Vtotal = Vtotal + Val(rst.Fields("TOTALAMOUNT"))
                VCount = VCount + 1
            ElseIf rst.Fields("HOWPAID") = "Discover" Then
                Dtotal = Dtotal + Val(rst.Fields("TOTALAMOUNT"))
                DCount = DCount + 1
            ElseIf rst.Fields("HOWPAID") = "Check" Then
                CHtotal = CHtotal + Val(rst.Fields("TOTALAMOUNT"))
                CHCount = CHCount + 1
            ElseIf rst.Fields("HOWPAID") = "Cash" Then
                Ctotal = Ctotal + Val(rst.Fields("TOTALAMOUNT"))
                CCount = CCount + 1
            ElseIf rst.Fields("HOWPAID") = "Amex" Then
                Atotal = Atotal + Val(rst.Fields("TOTALAMOUNT"))
                ACount = ACount + 1
            End If
            rst.MoveNext
        Loop
        
EmployeeBalance2.Sections("Section4").Controls("label1").Caption = "Employee Balance Sheet for " & frmChooseEmp.EmpList.Text        
EmployeeBalance2.Sections("Section1").Controls("label10").Caption = Ctotal
EmployeeBalance2.Sections("Section1").Controls("label11").Caption = CHtotal
EmployeeBalance2.Sections("Section1").Controls("label12").Caption = Mtotal
EmployeeBalance2.Sections("Section1").Controls("label13").Caption = Vtotal
EmployeeBalance2.Sections("Section1").Controls("label14").Caption = Dtotal
EmployeeBalance2.Sections("Section1").Controls("label15").Caption = Atotal
RunningTotal = Ctotal + CHtotal + Mtotal + Vtotal + Dtotal + Atotal
EmployeeBalance2.Sections("Section1").Controls("label16").Caption = RunningTotal
            
EmployeeBalance2.Show
İyi çalışmalar
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Bir de şu notu göz önünde bulundurun:

Data Reportlar ile Çalışmak
Data Enviroment ile
1.ADIM Project penceresinden Data Enviroment seçilir ve onaylanır. Ekrana gelen pencereden Connection mouse 'un sağ tuşu ile tıklanarak seçilir ve ekrana gelen komutlardan Properties seçilerek tıklanır. Bu pencereden Microsoft Jet3.51 OLE Provider seçilir ve ileri butonuna basılır. Bu pencereden Veri Tabanı yolu Browse ederek bağlanır. Bağlantı sınanır ve doğru ise tamam butonu tıklanır.
2.ADIM View menüsünden Data View Window seçilir ve onaylanır. Connection tıklanarak Tables klasörüne ulaşılır. Ya Tables klasörünün tamamı yada istenilen table basılı tutularak Data Enviroment penceresine taşınır ve Data View penceresi kapatılır.
3.ADIM Project menüsünden Data Report seçilir ve ekrana taşınır. Ekranda görüntülenen Data Report seçili iken Properties penceresinden Data Report ’un Data Source ’su Data Enviroment1 olarak seçilir. Data Member ’ı hangi tablo ile çalışılacaksa o tablo seçilir.
4.ADIM Data Report ile Data Enviroment penceresindeki Tables lardan Data Member olarak önceden hangisi belirlendi ise Data Report ‘un Detail(Section) bölümüne bırakılır.
5.ADIM Data Report içindeki alanların ne şekilde görüntülenmesi isteniyor ise basılı olarak düzenleme yoluna gidilir. Örneğin Alan adları Page Header bölümüne taşınırken veri alanları hemen onun altına Detail(Section) ‘a taşınır.

Master/Detail Form Hazırlama
Önce Project menüsünden Data Enviroment seçilir ve onaylanır. Ekrana Data Enviroment penceresi gelir. Bu pencerede görüntülenen Connection mouse ‘un sağ tuşu ile Properties seçilir ve onaylanır. Ekrana Veri Bağlantısı Özellikleri gelir. Bu pencereden Microsoft Jet 3.51 OLE Provider seçilir ve onaylanır. İleri butonu tıklanır. Bağlantı penceresin Veri Tabanı yolu Browse edilir. Bağlantı sınanır ve sınandıktan sonra Tamam butonu tıklanır.
1.ADIM Data Enviroment penceresindeki Connection sağ tıklanarak Rename seçilir. Adı veri tabanı adı ile değiştirilir. Yine mouse ‘un sağ tuşu ile tıklanarak ekrana gelen komutlardan Add Command seçilir ve onaylanır.Command1 seçili iken ekrana gelen komutlardan Properties onaylanır.
2.ADIM Command1 seçilir ve onaylanır. Command1 özellikleri penceresi ekrana gelir. Bu penceredeki Command Name alanına ana tablo adı girilir. Database Object alanından Table seçilir. Object Name alanından Table ‘ın adı belirlenir. Uygula ve Tamam butonları tıklanır.
3.ADIM Data Enviroment penceresinde ana tablo ismi görüntülenir. Bu tablo ismi seçili iken mouse ‘un sağ tuşuna basılır. Ekrana gelen komutlardan Add Child seçilir ve onaylanır. Ekranda Data Enviroment penceresinde ana tablonun alanları ile Command1 görüntülenir. Command1 seçili iken sağ tuşa basılır. Ekrana gelen komutlardan Properties seçilir. Ekrandaki pencereden Command Name yazan alana alt tablo adı girilir. Database Object alanından Table seçilir. Object Name alt tablo adı seçilir ve yerleştirilir. Yine aynı pencereden Relation tabı tıklanır ve bu tab sayfasında Parrent Command alanında ana tablo ismi Parrent ve Child alanında ilişkilendirilmiş alanlar görüntülenir. İlişkilendirmeler doğru ise Add, Uygula ve Tamam butonları tıklanır.
4.ADIM Project menüsünden Add Data Report seçilir ve onaylanır. Data Report penceresi ekranda görüntülenirken üzeri seçilir ve Properties penceresinde Data Source ‘su Data Enviroment1, Data Member ‘ı ana tablo adı olan Publishers olarak belirlenir ve yine Data Report seçili iken sağ tuş ile ekrana gelen komutlardan Retrive Structure seçilir ve onaylanır. Data Enviroment penceresindeki ana tablo Data Report ‘ta ki Group Header alanına alt tablo Detail alanına taşınır, düzenlenir ve F5 ile çalıştırılır.
Private Sub Form_Activate()
DataEnviroment1.rsCommand1.Close
DataEnviroment1.rsCommand1.Open “Select * From Titles Order By Title”
Set Label1.DataSource = DataEnviroment1
DataEnviroment1.rsCommand1.MoveLast
DataEnviroment1.rsCommand1.MoveFirst
Label2.Caption = DataEnviroment1.rsCommand1.RecordCount
End Sub

Private Sub Command1_Click()
DataEnviroment1.rsCommand1.MovePrevious
If DataEnviroment1.rsCommand1.BOF then
DataEnviroment1.rsCommand1.MoveFirst
End If
End Sub

Private Sub Command2_Click()
DataEnviroment1.rsCommand1.MovePrevious
If DataEnviroment1.rsCommand1.BOF then
DataEnviroment1.rsCommand1.MoveLast
End If
End Sub

Private Sub Form_Activate()
Data1.RecordSource = “Select * From Titles Order By Titles”
Data1.Refresh
Data1.Recordset.MoveLast
Data1.Recordset.MoveFirst
Label2.Caption = Data1.Recordset.RecordCount
End Sub


Alıntıdır.

İyi çalışmalar
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
DataReport Tasarımcısı
Visual basic 6 IDE’ye tamamen entegre edilmiş rapor yazıcısını içeren ilk versiyondur. Daha populer olan Crystal Report ile karşılaştırıldığında özellikle daha basit raporlar için yeni rapor tasarımcısını daha kolay bulacaksınız. Fakat hala birkaç özellikten yoksundur ve yüklü görevlerde Crystal Report veya ek yazılım üreticilerinin rapor yazıcılarının yerini alamaz. Manuel olarak yüklemek zorunda olmanıza rağmen Crystal Report paketin içine dahil edilmiştir.
DataReport tasarımcısını kullanmadan önce IDE’den ulaşılabilir duruma getirmelisiniz bunuda Project menüsünden Components komutunu yazarak Designer tab’a geçiş yapıp ve DataReport seçeneğini işaretleyerek yapabilirsiniz. Alternatif olarak yeni bir Data Project açabilirsiniz ve sizin için Visual Basic’in Data Report tasarımcısını oluşturmasına izin verebilirsiniz.
DataReport tasarımcıs yazıcıya gönderilecek ya da sadece basit bir şekilde önizleme pencereseinde görüntülenecek bilgiyi otomatik alma yetisi mantığı ile sadece bağımsız modda çalışır. Bir raporu metin dosyasına veya HTML dosayasına taşıyabilir ve aynı zamanda geçerli olan biçim düzenlemesine destek verir. DataReport tasarımcısı diğer tasarımcılarla ve formlarla yaptığınız gibi yüzeyine alabileceğiniz custom kontrol seti ile size ulaşmaktadır. Bu kontroller çizgileri, şekilleri, resimleri ve raporlarınızda özet alanları oluşturabileceğiniz fonksiyon alanlarını içermektedir. Bu tasarımıcının diğer bir ilgi çekici özelliği ise yazdırma devam ederken başka görevleri yerine getirmeye izin veren eşzamamsız modta yazdırma yapabilme yeteneğidir.

Bir Command Nesnesine İlişkilendirme
Örnek hiyerarşik Command nesnesine dayalı rapor oluşturmak için aşağıdaki adımları izlemelisiniz:
1. İsmi Order Details olan bir alt Commmand içeren bir hiyerarşik Command oluşturun. İlgilendiğiniz bilgiyi aldığına emin olun, örneğin form üzerinde Hierarchial FlexGrid ile ilişkilendirerek ve uygulamayı çalıştırarak.
2. DataReport tasarımcısının yeni bir değişkenini oluturun veya Visual Basic projesinin Data Project türü ile varsayılan olarak sağlanan olanı kullanın.
3. Properties penceresini açın, DataReport’un DataSource özelliğinin DataEnvironment1’i (veya DataEnvironment’ınızın ismi her ne ise)göstermesini sağlayın
4. DataReport tasarımcısının rapor başlığı üzerinde sağ tıklayın, ve Retrieve Structure menü komutunu seçin; bu Orders_Header ve Orders_Footer etiketli grup başlığı ve grup altbaşlığı oluşturacaktır; bunlardan ayrı olarak aralarında Order_Detail_Details etiketli detay bölümü olacaktır.

Bir kesim (section) ana Command nesnesinde her bir kayıdı tekrarlayacak bilgi bloğunu temsil eder. İlk kesim ana Command nesnesi ile, ikinci kesim onun alt Command’i ile eşleşir ve en içteki Command nesnesi ile eşleşen Detail kesimine ulaşana kadar devam eder. Detail kesimi hariç bütün kesimler iç seviyedeki neslerle uyuşan kesimlerle önce veya sonra ilgili bilginin print edilen üst başlık ve alt başlık olarak ikiye ayrılır. DataReport tasarımcısı Report kesimini (raporun başındaki ve sonundaki bilgiyi yazdırır) ve Page kesimini (her sayfanın başındaki ve sonundaki bilgiyi yazdırır) içine alır. Eğer bu iki kesimi görmüyorsanız DataReport tasarımcısının üzerinde herhangi bir yere sağ tıklayın ve uygun olan menü komutunu seçin.

5. DataEnvironment’taki Orders Command nesnesinden DataReport’un Orders_Header kesimine alanları sürükleyin. Farenin düğmesini bıraktığınızda RptLabel ve RptTextBox isimli bir çift kontrol DataReport’ta ortaya çıkacaktır. Rapor görüntülendiğinde uyuşan veritabanın asıl içeriği ile RptTextBox kontrolü yer değiştirirken RptLabel kontrol alanın adı ile değişmez bir dizim üretir. Şimdi Orders_Header kesimindeki alanları düzenleyebilirsiniz ve görüntülemek istemediğiniz RptLabel kontrollerini silebilirsiniz.

6. Orders Details Command nesnesine tıkayın ve DataReport’un üzerine sürükleyin; Visual Basic uyuşan RecordSet içindeki her bir alana RtpLabel-RptTextBox kontrol çifti oluşturur. OrderID alanını silebilirsiniz ve bir satırda diğerlerini düzenleyebilirsiniz

7. Her kesimin yükseklğini ayarlayın ve böylece gereğinden fazla yer tutmayacaktır. Bu özellikle Detail kesimi için önemlidir çünkü Order Detail tablosundaki her bir kayıt için tekrarlanacaktır. Alan içermeyen kesimleri 0 yüksekliğe de ayarlayabilirsiniz.

8. Şu ana kadar yaptıklarınız DataReport’u eylem halinde görmeniz için yeterlidir. Project Property Pages diyalog kutusunu açın, başlangıç nesnesi olarak DataReport1’i seçin ve daha sonra programı çalıştırın.

Kontrol Özelliklerini Ayarlama
DataReport’un yüzeyine bıraktığınız kontroller form üzerine yerleştirdiğiniz standard kontrollerle benzerdir, fakat kontrol kütüphanesine aittirler. Gerçekte, ne standard iç kontrolü DataReport üzerine alabilirsiniz nede bir form veya başka bir tasarımcının üzerindeki DataReport kontrol kütüphanesinden bir konrole yerleştirebilirsiniz. Fakat DataReport kontrollerini hareket ettirebilirsiniz ve herhangi düzgün bir kontrolü istediğiniz şekilde hizalayabilirsiniz. Standard Format menüsündeki komutları kullanamazsınız ve kontrolün üzerine sağ tıklamak zorundasınız ve bağlamsal menüdeki komutları kullanmalısınız.

DataReport kontrolleri normal kontrollerin yaptığı gibi Properties penceresini görüntüleyen F4 tuşuna duyarlıdır. Çünkü RptLabel ve RptTextBox kontrolleri standard emsallerine benzerdirler, bu penceredeki özelliklerin çoğuna aşina olmanız gerekmektedir. Örneğin, txtOrderDate ve txtShippedDate kontrollerinin DataFormat özelliklerini değiştirebilirsiniz ve böylece uzun tarih biçiminde değerlerini görüntüleyebilirler. Veya txtOrderID kontrolünün Backstyle özelliğini 1-rptBkOpaque’a BackColor özelliğinide griye çevirebilirsiniz böylece raporda sıra belirleyiciler vurgulanır.RptLabel kontrolleri hiç Dataxxxxx özelliği ortaya çıkarmaz, onlar sadece raporda sabit dizgileri içeri yerleştiren kozmetik kontrolleridir.

Şu ana kadar görmediğimiz hem RptLabel hemde RptTextBox kontrolüne uygulanan CanGrow özelliğidir. Eğer bu özellik True’daysa içeriği kontrolün genişliğini geçerken bu kontrolün dikey olarak genişlemesine izin verir. Kontrolün genişliğine göre daha uzun dizgilerin kesilmesine neden False değeri bu özellik için varsayılan değerdir.

Diğer Rapor Özellikleri
DataReport tasarımcısı herhangi bir tasarımcı ile Properties penceresinde değişiklik yababileceğiniz bir çok design time özellikleri sergiler. Bu özelliklerin birçoğu formlar tarafından da sergilenir, örnek olarak, Caption, Font, WindowState ve ShowInTaskBar, bu sebeple çoğunun nasıl kullanıldığını biliyorsunuz.Bu özelliklerin bazıları (Caption ve BorderStyle) önizleme penceresini etkiler, diğerleride (örneğin, Font) aynı zamanda basılı rapora etki eder.

Sadece bir kaç özellik DataReport tasarımcına özgündür. Basılan sayfanın genişliğine ReportWidth karar verirken , LeftMargin RightMargin TopMargin ve BottomMargin özellikleri basılı raporun kenar boşluklarının boyutunu geri verir ve ayarlar. GridX ve GridY özellikleri design time’da kontrol gridin bölmesinin arasındaki mesafeye etki eder ve yürütme zamanında gözardı edilirler. Tüm bu ölçümler twip’te ifade edilirler. Daha önceki bölümde açıklanan RptLabel kontroldeki tutucu ile yer değiştirmek için kullanılan Title özelliğide DataReport tasarımcısının diğer bir özelliğidir ve aynı zamanda yürütme zamanında diyalog kutularını görüntülenmesinde kullanılır.

ExportReport metodu raporu dış ortama taşımayı mümkün kılar. ve aşağıdaki sözdizimine sahiptir.

Cookie = ExportReport ([FormatIndexOrKey], [FileName], [Owerwrite], [ShowDialog], [Range],
[PageFrom], [PageTo])

FormatIndexOrKey önceden belirlenmiş dış ortama taşıma biçimlerinden bir tanesini tanımlayan bir dizgi anahtarı veya numerik bir indekstir. FileName çıkış dosyasının adıdır, Overwrite var olan dosyanın tekrar yazılıp yazılmayacağına karar veren Boole değeridir, ShowDialog standard dış ortama taşıma diyalog kutusunun görüntülenip görüntülenmeyeceğini belirleyen Boole değeridir. Geriye kalan komut içerikleri PrintReport metodunda olduğu gibi aynı anlamlara sahiptir. ProcessingTimeOut, AsyncProgress veya Error olayındaki belirli işlemleri tanımlamak için kullanılabilen Long değerini geri verir.

FormatOrIndexKey ilk üç sütunda bulunan değerlerden bir tanesidir. 1-4 aralığında bir sayı yazabilirsiniz, bir rptKeyXXXX sembolik değişmezi, veya onunla eşleşen dizgi değeri. dış ortama taşıma biçimi veya dosya adını atlarsanız, Export diyalog kutusu ShowDiaolog False’a ayarlandıysa bile görüntülenebilir.

Alıntıdır
 
Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
:) hocam hakkatten bune demek istiyorum

ben bunu sbaha kadar inciliyim :)

çok teşekkürler gerçekten kaynak oldu walla
 
Üst