rianto isaac's Weblog

rianto utomo isaac sahala utomo

cr, dasar2 crystal report

with 8 comments

Tip & Trik Untuk Crystal Report

*

Link Report Pada Form
*

Set Lokasi Database & File Report
*

No Record Pada GROUP
*

Menentukan Status Halaman
*

Menentukan Record Yang Akan Dicetak
*

Mengirim Parameter Ke Crystal Report
*

Mengurutkan Data Pada Crsytal Report Secara Dinamis

Link Report Pada Form

Misalkan anda telah membuat file laporan dengan Crystal Report v4.5 (misalnya TEST.RPT), untuk memanggilnya dengan program, tambahkan control Crystal Report (Pilih menu Project | Components) pada form, satu Command Button, lalu pada event Command1_Click, ketikkan kode berikut :

With CrystalReport1
.DataFiles(0) = App.Path & “\demo.mdb” ‘ Nama file database
.ReportFileName = App.Path & “\Test.rpt” ‘ Nama file report
.WindowTitle = “Ini Judul Form Report” ‘ Caption Windows
.WindowState = crptMaximized
.Destination = crptToWindow ‘ Cetak ke layar
.Action = 1
End With

Sumber : http://www.waroengvb.8m.com

Set Lokasi Database & File Report

Untuk Crystal Report v4.x, jika lokasi file database dan file .RPT-nya pada saat pembuatan report berbeda dengan pada saat runtime, akan muncul runtime error 20504 (Report not found), untuk menghindarinya selalu isi parameter database dan file report pada waktu di-load sbb :

With CrystalReport1
.DataFiles(0) = App.Path & “\demo.mdb”
.ReportFileName = App.Path & “\Test.rpt”
.WindowTitle = “Ini Judul Form Report”
.WindowState = crptMaximized
.Destination = crptToWindow
.Action = 1
End With

Sebaliknya, jika anda menggunakan Crystal Report v6, untuk men-setting ulang lokasi database, gunakan saja kode dibawah (nama file database, misalnya SIA.MDB) :

Dim Report1 As New CrystalReport1
Dim CrSections As CRAXDRT.Sections
Dim CrSection As CRAXDRT.Section
Dim CrReportObj As CRAXDRT.ReportObjects
Dim CrSubreportObj As CRAXDRT.SubreportObject
Dim CrSubreport As CRAXDRT.Report
Dim x, y As Integer

Private Sub Form_Load()
‘ Inisialisasi database dilakukan pada saat form preview di load!
Report1.Database.Tables.Item(1).Location = App.Path & “\SIA.MDB”
‘ Cek tiap-tiap Section dan subreport kemudian set ulang lokasi database
Set CrSections = Report1.Sections
For x = 1 To CrSections.Count
Set CrSection = CrSections.Item(x)
Set CrReportObj = CrSection.ReportObjects
For y = 1 To CrReportObj.Count
If CrReportObj.Item(y).Kind = crSubreportObject Then
Set CrSubreportObj = CrReportObj.Item(y)
Set CrSubreport = CrSubreportObj.OpenSubreport
CrSubreport.Database.Tables.Item(1).Location = App.Path & “\SIA.MDB”
End If
Next
Next
‘ Tampilkan reportnya
With CRViewer1
.ReportSource = Report1
.ViewReport
End With
End Sub

Sumber : http://www.waroengvb.8m.com

No Record Pada GROUP

Jika menambahkan nomor record (Insert | Record Number) pada field yang diGROUP berdasarkan kriteria tertentu, setiap pergantian GROUP, nomor recordnya pasti akan bertambah terus, agar supaya di set lagi jadi 1 setiap pergantian GROUP yang baru, tambahkan/insert formula dan pada Formula Editor, ketik aja kode dibawah (dengan asumsi report di GROUP berdasarkan NIM pada tabel Mahasiswa) :

NumberVar NoHal;
if PreviousIsNull ({Mahasiswa.NIM}) then NoHal:=1
else
if Previous ({Mahasiwa.NIM})={Mahasiswa.NIM} then NoHal:=NoHal + 1
else NoHal:=1

Sumber : http://www.waroengvb.8m.com

Menentukan Status Halaman

Untuk mengetahui total halaman di Crystal Report v6 atau 7, udah ada fasilitasnya, tinggal Insert | Total Page Count, Beres ! tapi untuk yang v4.5 gak ada fasilitas seperti diatas, tapi masih bisa diakalin, caranya tambahkan/insert formula, kasih nama formulanya, terus pada Formula Editor, ketikkan kode dibawah :

If NextIsNull({Mahasiswa.NIM}) = True Then
‘Halaman terakhir’
ELSE
‘Masih nyambung ke halaman : ‘ + TOTEXT(ROUND(PageNumber+1),0)

Sumber : http://www.waroengvb.8m.com

Menentukan Record Yang Akan Dicetak

Dengan menggunakan fungsi SelectionFormula, kita bisa mengatur record mana saja yang akan ditampilkan, misalnya begini :

CrystalReport1.SelectionFormula = “{Barang.Kode} IN ‘” & Combo1.Text & “‘ TO ‘” & Combo2.Text & “‘”

Akan mencetak semua daftar barang yang kodenya dimulai dari Combo1.Text sampai dengan Combo2.Text.

Sumber : http://www.waroengvb.8m.com

Mengirim Parameter Ke Crystal Report

Seagate Crystal Report digunakan untuk mencetak data dari suatu database. Hal ini jelas terlihat pada saat setiap user membuat Report, Crystal Report akan menanyakan database yang digunakan. Namun terkadang, selain mengambil data dari database sering kita dihadapkan pada kasus, “Bagaimana cara mengirim nilai dari suatu form (VB) kedalam Crystal Report?”.

Caranya cukup dengan membuat suatu formula dalam Crystal Report kemudian kosongkan formula tersebut ( Blank Formula ). Pada contoh dibawah, formula yang digunakan adalah @NAMA, @ALAMAT, @TELEPON, @KETERANGAN dan ke-emat formula tersebut tidak berisi apa-apa.

Langkah selanjutnya yaitu “Mengisi formula tersebut dengan nilai dari aplikasi Visual Basic”, ini pun tidak terlalu sulit, yaitu dengan memberikan nilai pada property .Formulas( nIndex ). Misalkan ika ingin memberikan nilai “Dede Supriyatna” pada formula @NAMA, maka syntak-nya:

CrystalReport1.Formulas(0) = “NAMA=’Dede Supriyatna’ ”

Sedangkan apabila menginginkan nilai-nya bersifat dinamik, tergantung dari nilai yang ada pada TextBox txtNama maka syntaknya:

CrystalReport1.Formulas(0) = “NAMA='” & txtNama.Text & “‘”

.ReportFileName, Properti untuk menentukan nama file dari report yang akan digunakan.
.DataFiles (nIndex), Properti untuk menentukan Database yang digunakan pada report.
.DiscardSavedData, yaitu data yang dicetak bukan berasal dari data yang disimpan pada report, tetapi data langsung diambil dari database.

Untuk lebih lengkapnya silahkan perhatikan potongan program dibawah ini:

Private Sub cmdCetak_Click()
CrystalReport1.ReportFileName = App.Path + “\param2rpt.rpt”
CrystalReport1.DataFiles(0) = App.Path + “\DB_TEST.mdb”
CrystalReport1.DiscardSavedData = True
CrystalReport1.Formulas(0) = “NAMA='” & txtNama.Text & “‘”
CrystalReport1.Formulas(1) = “ALAMAT='” & txtAlamat.Text & “‘”
CrystalReport1.Formulas(2) = “TELEPON='” & txtTelepon.Text & “‘”
CrystalReport1.Formulas(3) = “KETERANGAN='” & txtKeterangan.Text & “‘”
CrystalReport1.Action = 2 ‘ Cetak ke layar

End Sub

Private Sub cmdKeluar_Click()
Unload Me
End Sub

Private Sub Form_Load()
txtNama.Text = “Dede Supriyatna”
txtAlamat.Text = “Pinang-Cipondoh Tangerang”
txtTelepon.Text = “021-7330472”
txtKeterangan.Text = “Program ini digunakan /u mengirim data ” & _
“dari VB ke dalam Crystal Report ” & _
“supriyatna@mailandnews.com”
End Sub

Private Sub txtKeterangan_KeyPress(KeyAscii As Integer)
KeyAscii = 0
End Sub

Sumber : http://www.supriyatna.cjb.net

Mengurutkan Data Pada Crystal Report Secara Dinamis

Pada Crystal Report fasilitas untuk mengurutkan data yaitu dengan menggunakan Group. Jika ingin mengurutkan data berdasarkan SESSION_ID maka harus dibuat Group Session_ID, sedangkan jika ingin diurutkan berdasarkan NAMA maka Group Nama harus dibuat. Lalu bagaimana jika ingin menampilkan data yang sama namun memiliki kriteria pengurutan yang berbeda-beda. Apakah jika ada SEPULUH buah kriteria maka harus dibuat SEPULUH buah report?. Wow! Kalau begitu caranya, membuat Report ternyata benar-benar REPOT.

Sebetulnya dengan sedikit akal-akalan masalah ini dapat dengan mudah diatasi. Mungkin boleh juga cara ini disebut dengan cara CURANG. Caranya? Betul!… yaitu dengan menggunakan formula agar parameternya dapat dikirim melalui Applikasi VB. Buatlah sebuah group dengan menggunakan FORMULA, misalkan formula SORTING. Agar nilai dari formula SORTING dapat diubah-ubah, secara otomatis FORMULA ini harus merupakan Blank Formula -(Formula yang kosong). Kendalanya yang muncul kemudian adalah, pada Crystal Report GROUP yang berasal dari FORMULA tidak dapat dibuat apabila FORMULA tersebut kosong (Blank Formula). Cara mengatasi masalah ini adalah dengan mengisi Formula SORTING dengan Field sesuka anda, tujuannya hanyalah untuk memancing agar GROUP dapat dibuat berdasarkan Formula.

Setelah GROUP selesai dibuat dengan menggunakan Formula SORTING, hapuslah isi dari formula SORTING atau remark statment yang ada didalam formula tersebut, sehingga formula SORTING menjadi Blank Formula.
NB: Untuk meremak baris pada Crystal Report digunakan tanda Double Slash atau ‘//’

Selanjutnya adalah mengirim parameter ke Crystal Report via Applikasi, yaitu dengan men-setting properti .Formulas(nIndex). Untuk lebih lengkapnya, perhatikan potongan program dibawah.

Private Sub Form_Load()
lblKeterangan.Caption = “Program ini digunakan menyortir ” & _
vbCrLf & “data secara dinamis pada Crystal Report ” & _
vbCrLf & “supriyatna@mailandnews.com”
End Sub

Private Sub cmdKeluar_Click()
Unload Me
End Sub

Private Sub cmdCetak_Click()
Dim strSort As String
Dim strJudul As String

If opSessionID.Value Or opNama.Value Or _
opEmail.Value Then

CrystalReport1.ReportFileName=App.Path + “\sortrptdinamic.rpt”
CrystalReport1.DataFiles(0) = App.Path + “\DB_TEST.mdb”
CrystalReport1.DiscardSavedData = True
CrystalReport1.WindowTitle=”Sorting data Report secara dinamis”
CrystalReport1.WindowState = crptMaximized

If opSessionID.Value = True Then
strSort = “ToNumber( {USERS.SESSION_ID} )”
strJudul = “‘SORTING DATA BERDASARKAN SESSION_ID'”
ElseIf opNama.Value = True Then
strSort = “{USERS.NAMA}”
strJudul = “‘SORTING DATA BERDASARKAN NAMA'”
ElseIf opEmail.Value = True Then
strSort = “{USERS.EMAIL}”
strJudul = “‘SORTING DATA BERDASARKAN EMAIL ADDRESS'”
End If
CrystalReport1.Formulas(0) = “SORTING=” & strSort
CrystalReport1.Formulas(1) = “JUDUL=” & strJudul

CrystalReport1.Action = 2
Else
MsgBox “Silahkan anda pilih terlebih dahulu kriteria” & _
vbCrLf & “pengurutan data”, vbExclamation, _
“supriyatna@mailandnews.com”
End If
End Sub

rianto utomo boleh nyontek dari http://leo.apeaje.info/tips/tip145.htm

Written by isaaconi

Maret 19, 2009 pada 4:04 am

8 Tanggapan

Subscribe to comments with RSS.

  1. wah ini ilmu yang bagus nech dan sangat bermanfaat
    karena pertanyaan yang seperti ini banyak diajukan orang di internet

    uus rusmawan

    Januari 17, 2010 at 10:30 pm

  2. makasih Boss! kayaknya ini yg saya cari, ntar saya coba. thank you ^_^

    .DataFiles(0) = App.Path & “\demo.mdb” ‘ Nama file database

    FaDhiL

    November 24, 2010 at 12:49 am

  3. makasih Boss! kayaknya ini(App.Path & “\demo.mdb”) yg saya cari, ntar saya coba. thank you ^_^

    .DataFiles(0) = App.Path & “\demo.mdb” ‘ Nama file database

    FaDhiL

    November 24, 2010 at 12:50 am

  4. […] cr, dasar2 crystal report March 2009 4 comments 5 […]

  5. kalau menggunakan vb2008 gimana bos codingnya…

    yasser

    Mei 31, 2011 at 11:19 pm

    • gw lompernah pake 2008, mentok di VB6 aje hehehe

      imeloni

      Juni 1, 2011 at 8:41 am

  6. bagaimana setting lokasi export file pada crystal reports agar mengarah pada folder tertentu bukan ke folder yang telah diatur system..??
    trims atas bantuannya..

    wayan

    April 30, 2015 at 6:44 pm


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: