Penjawab teratas
(Sumber: milist DOTNET) Hasil Cetak CrystalReport Agar tidak menggulung kertasnya

Pertanyaan
-
To. Master.
Bisa Nggak hasil cetak dari crystalReport hasil cetaknya Per Item, Dengan kata lain hasil cetak seperti cetak struk kasir dimana kertas tidak menggulung. Kalo Bisa Bagaimana Scriptnya ya Atau Link nya.
Mohon Pencerahannya.
Agnes Sannie [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.Jumat, 23 Desember 2011 08.38Moderator
Jawaban
-
AFAIK Crystal Report nggak bisa digunakan untuk melakukan pencetakan dengan dynamic size paper
untuk pencetakan struk (misalnya aplikasi POS/Kasir) biasanya menggunakan teknik direct print
dimana aplikasi mengirimkan data pentakan langsung ke Port printer LPT atau COM dan untuk keperluan ini harus menggunakan printer dot matrix atau thermal printer khusus untuk kasir.
Coba googling dengan keyword "POS Printing .Net"
Salah satu hasilnya: http://www.codeproject.com/KB/printing/EasyPrintingPOS.aspx
Dijawab oleh: Fahmi
Agnes Sannie [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.- Ditandai sebagai Jawaban oleh Agnes SannieModerator Jumat, 23 Desember 2011 08.51
Jumat, 23 Desember 2011 08.40Moderator
Semua Balasan
-
AFAIK Crystal Report nggak bisa digunakan untuk melakukan pencetakan dengan dynamic size paper
untuk pencetakan struk (misalnya aplikasi POS/Kasir) biasanya menggunakan teknik direct print
dimana aplikasi mengirimkan data pentakan langsung ke Port printer LPT atau COM dan untuk keperluan ini harus menggunakan printer dot matrix atau thermal printer khusus untuk kasir.
Coba googling dengan keyword "POS Printing .Net"
Salah satu hasilnya: http://www.codeproject.com/KB/printing/EasyPrintingPOS.aspx
Dijawab oleh: Fahmi
Agnes Sannie [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.- Ditandai sebagai Jawaban oleh Agnes SannieModerator Jumat, 23 Desember 2011 08.51
Jumat, 23 Desember 2011 08.40Moderator -
untuk file reference ini apa ya :
Imports Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6
thks,-
Agnes Sannie [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.Jumat, 23 Desember 2011 08.41Moderator -
Imports Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6
snippetnya (dites pake epson thermal TMxxx)
Dim printer As New Printer
Dim PAPER_WIDTH as integer = 2100
printer.Font = New Font("Arial", 10)
printer.CurrentX = PAPER_WIDTH - (printer.TextWidth("JUDUL") / 2)
printer.Print("JUDUL")
printer.Font = New Font("Arial", 10)
printer.Print("--------------------------------------------------------------")
printer.Print("Tanggal : " & Format(Now, "dd MMM yyyy hh:mm:ss"))
printer.Font = New Font("Arial", 8)
printer.Print("")
printer.CurrentX = PAPER_WIDTH - (printer.TextWidth("Terima kasih atas kunjungan Anda") / 2)
printer.FontItalic = True
printer.Print("Terima kasih atas kunjungan Anda")
printer.EndDoc() ' potong kertas
Dijawab oleh: Danni Afansyah
Agnes Sannie [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.- Disarankan sebagai Jawaban oleh wawa debian Minggu, 24 Maret 2013 19.57
- Saran Jawaban dibatalkan oleh wawa debian Minggu, 24 Maret 2013 19.58
Jumat, 23 Desember 2011 08.42Moderator -
Private Sub cmdPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrint.Click
Dim printer As New printerDim ang, ang2 As Long
Printer.PrintQuality = vbPRPQDraft
ang = 2000
ang2 = 30000
printer.Print("Heading 1" & " " & Format(ang, "#,###,###,###")
printer.Print(TAB)
printer.Print("Heading 2" & " " & Format(ang2, "#,###,###,###")
Printer.EndDoc()End sub
hasil printnya
Heading 1 2.000
Heading 2 30.000
gimana ya agar hasil printnya yang angka rata kanan di vb net 2010
seperti :
Heading 1 2.000
Heading 2 30.000
Trims atas jawabannya?
Minggu, 24 Maret 2013 20.08 -
Halo Wawa Debian,
Sebetulnya saya cukup kecewa dengan kode yang anda sertakan, lantaran saya lihat anda masih belum bisa terlepas/terbebas dari vb6 sekalipun anda sudah menggunakan vb 2010. Untuk kasus anda, sebenarnya yang dibutuhkan adalah GDI+, StringFormat, PrintPreviewControl, dan juga PrintDocument. Saya akan memberikan sampelnya, tetapi saya sarankan anda sudah memiliki pengetahuan yang memadai mengenai ruang lingkup yang telah saya sebutkan. Pertama-tama, buatlah sebuah form, dan masukkan control PrintPreviewControl dan juga PrintDocument. Mengenai nama dari masing-masing control, biarkan saja secara default. Kedua, masuklah ke jendela desain form, dan buatlah variable seperti berikut ini:
'mendeklarasikan sebuah bangunan persegi... Dim vKolomBarang, vKolomQty, vKolomHarga, vKolomTotal As New Rectangle 'mendeklarasikan array, yang nantinya akan digunakan sebagai record... Dim vRecBarang() As String, vRecQty(), vRecHarga(), vRecTotal(), vTotal As Integer
Setelah itu masuklah ke event Form_Load, dan ketikkan kode berikut ini:
'atur posisi dan ukuran masing-masing persegi... vKolomBarang = New Rectangle(10, 10, 100, 30) vKolomQty = New Rectangle(vKolomBarang.Right + 10, vKolomBarang.Top, 50, 30) vKolomHarga = New Rectangle(vKolomQty.Right + 10, vKolomBarang.Top, 70, 30) vKolomTotal = New Rectangle(vKolomHarga.Right + 10, vKolomHarga.Top, 100, 30) 'isi sebuah nilai pada masing-masing array... vRecBarang = New String() {"Biskuit Roma", "Biskuit Khong Guan", "Jahe Keraton", "Gulaku", "Permen Sugus", "Shampo Clear"} vRecQty = New Integer() {1, 1, 10, 1, 20, 2} vRecHarga = New Integer() {40000, 50000, 2000, 9000, 500, 5000} Dim getTotal(vRecBarang.Length - 1) As Integer Dim GrandTotal As Integer For a As Integer = 0 To vRecBarang.Length - 1 getTotal(a) = vRecQty(a) * vRecHarga(a) GrandTotal += getTotal(a) Next vRecTotal = getTotal vTotal = GrandTotal 'hubungkan property Document pada PrintPreviewControl1 kepada PrintDocument1... Me.PrintPreviewControl1.Document = Me.PrintDocument1 'ukuran PrintPreview1 sesuai dengan ukuran form secara otomatis... Me.PrintPreviewControl1.Dock = DockStyle.Fill
Setelah selesai, masuklah ke event PrintPage yang dimiliki dari control PrintDocument, setelah itu ketikkan kode berikut ini:
'deklarasikan variabel graphics... Dim g As Graphics = e.Graphics 'gambar masing-masing kolom... g.DrawRectangle(Pens.Red, vKolomBarang) g.DrawRectangle(Pens.Blue, vKolomQty) g.DrawRectangle(Pens.Orange, vKolomHarga) g.DrawRectangle(Pens.Green, vKolomTotal) 'mendeklarasikan string format... Using sf As New StringFormat 'atur nilai rata tulisan mendatar, yaitu menengah... sf.Alignment = StringAlignment.Center 'atur nilai rata tulisan menurun, yaitu menengah... sf.LineAlignment = StringAlignment.Center 'tulis masing-masing kolom, sesuai dengan persegi yang telah dideklarasikan, dan juga string format-nya... g.DrawString("Nama Barang", New Font("arial black", 8), Brushes.Black, vKolomBarang, sf) g.DrawString("Qty", New Font("comic sans ms", 8, FontStyle.Bold), Brushes.Black, vKolomQty, sf) g.DrawString("Harga", New Font("times new roman", 8, FontStyle.Bold), Brushes.Black, vKolomHarga, sf) g.DrawString("Total Harga", New Font("tahoma", 8, FontStyle.Bold), Brushes.Black, vKolomTotal, sf) End Using 'mendeklarasikan persegi yang akan bertindak sebagai record... Dim vCopyKolomBarang(vRecBarang.Length - 1) As Rectangle Dim vCopyKolomQty(vRecBarang.Length - 1) As Rectangle Dim vCopyKolomHarga(vRecBarang.Length - 1) As Rectangle Dim vCopyKolomTotal(vRecBarang.Length - 1) As Rectangle 'buat looping sejumlah record barang yang tertulis... For a As Integer = 0 To vRecBarang.Length - 1 'copy masing-masing persegi ke kolom terawal... vCopyKolomBarang(a) = vKolomBarang vCopyKolomQty(a) = vKolomQty vCopyKolomHarga(a) = vKolomHarga vCopyKolomTotal(a) = vKolomTotal 'bila ini adalah index awal... If a = 0 Then 'maka record awal akan berada dibawah kolom judul... vCopyKolomBarang(a).Y = vKolomBarang.Bottom + 4 vCopyKolomQty(a).Y = vKolomQty.Bottom + 4 vCopyKolomHarga(a).Y = vKolomHarga.Bottom + 4 vCopyKolomTotal(a).Y = vKolomTotal.Bottom + 4 Else 'sedangkan record berikutnya akan berada dibawah record terdahulu/sebelumnya... vCopyKolomBarang(a).Y = vCopyKolomBarang(a - 1).Bottom + 4 vCopyKolomQty(a).Y = vCopyKolomQty(a - 1).Bottom + 4 vCopyKolomHarga(a).Y = vCopyKolomHarga(a - 1).Bottom + 4 vCopyKolomTotal(a).Y = vCopyKolomTotal(a - 1).Bottom + 4 End If 'mendeklarasikan string format... Using sf As New StringFormat 'atur nilai rata tulisan menurun, yaitu bawah... sf.LineAlignment = StringAlignment.Far 'tulis record barang... g.DrawString(vRecBarang(a), New Font("arial", 8), Brushes.Black, vCopyKolomBarang(a), sf) 'atur nilai rata tulisan mendatar, yaitu tengah... sf.Alignment = StringAlignment.Center 'tulis record quantity... g.DrawString(vRecQty(a), New Font("ocr a extended", 8), Brushes.Black, vCopyKolomQty(a), sf) 'atur nilai rata tulisan mendatar, yaitu kanan... sf.Alignment = StringAlignment.Far 'tulis record harga... g.DrawString(Format(vRecHarga(a), "#,##") & ",-", New Font("comic sans ms", 8), Brushes.Black, vCopyKolomHarga(a), sf) 'tulis record total... g.DrawString(Format(vRecTotal(a), "#,##") & ",-", New Font("tahoma", 8, FontStyle.Bold Or FontStyle.Italic), Brushes.Red, vCopyKolomTotal(a), sf) End Using 'gambar garis bawah, mulai dari kolom barang hingga kolom total... g.DrawLine(Pens.Red, New Point(vCopyKolomBarang(a).Left, vCopyKolomBarang(a).Bottom), New Point(vCopyKolomTotal(a).Right, vCopyKolomTotal(a).Bottom)) Next 'buat persegi untuk kolom total semuanya... Dim vRectTotal As Rectangle = vKolomTotal 'atur posisinya dibawah kolom terakhir... vRectTotal.Y = vCopyKolomTotal(vRecBarang.Length - 1).Bottom + 4 'kasih warna merah... g.FillRectangle(Brushes.Red, vRectTotal) 'mendeklarasikan string format... Using sf As New StringFormat 'atur rata mendatar, yaitu kanan... sf.Alignment = StringAlignment.Far 'atur rata menurun, yaitu tengah... sf.LineAlignment = StringAlignment.Center 'tulis record total... g.DrawString(Format(vTotal, "#,##") & ",-", New Font("comic sans ms", 8, FontStyle.Bold), Brushes.White, vRectTotal, sf) End Using
Setelah selesai, coba anda jalankan dan lihat hasilnya. Dari versi saya, inilah ilustrasinya:
Catatan:
Ini hanyalah gambaran atau ilustrasi saja. Dalam situasi yang sesungguhnya, menggunakan database akan lebih mudah. Dan berhubung saya gak punya printer, maka saya tidak bisa membuktikan keakuratan print preview ini. Untuk melakukan print. Anda perlu menyediakan sebuah tombol. Setelah itu masukkan perintah berikut ini: PrintDocument1.Print (berasal dari control PrintDocument).
Salam
(Wahyu VB .Net)
Senin, 25 Maret 2013 01.37