Danh Sách Các Trường Đặc Biệt Trong Crystal Report.


Printer"

'Thiết lập tên máy in cần in (nếu cần) myReport.PrintOptions.PrinterName = "Foxit Reader PDF


'In giấy mời ra máy in chỉ định myReport.PrintToPrinter(1, True, 0, 0) 'Trả trạng thái con trỏ về mặc định Me.Cursor = Cursors.Default

'Tạm khóa nút In ấn ButtonInAn.Enabled = True

Else

If RadioButtonTungKH.Checked Then 'Kiểm tra mã khách hàng có tồn tại không 'Khai báo đối tượng và biến cần sử dụng Dim sqlTimKiem As String

'Thiết lập câu lệnh tìm kiếm theo mã khác hàng sqlTimKiem = "SELECT * FROM tblKhachHang WHERE

[MaKH]=" & TextBoxMaKH.Text

Using cn As New SqlConnection("Data Source=PHANDUCTHIEN;Initial Catalog=QLYBH;User ID=sa;Password=admin123@")

Using cmd As New SqlCommand(sqlTimKiem, cn) cmd.CommandType = CommandType.Text cn.Open()

Dim ds As New DataSet()

Dim da As New SqlDataAdapter(cmd) da.Fill(ds)

'Nếu tồn tại mã khách hàng

If ds.Tables(0).Rows.Count > 0 Then 'Chuyển trạng thái con trỏ Me.Cursor = Cursors.WaitCursor 'Tạm khóa nút In ấn

ButtonInAn.Enabled = False 'In giấy mời ra máy in

'Khai báo một đối tượng Crystal Report Dim myReport As New ReportDocument() 'Tải báo cáo từ đường dẫn chỉ định


myReport.Load(Application.StartupPath.ToString() & "GiayMoiKhachHang.rpt")

'Thiết lập nguồn dữ liêu mới cho giấy mời


myReport.SetDataSource(ds.Tables(0).DefaultView)

'Thiết lập tên máy in cần in (nếu cần) myReport.PrintOptions.PrinterName = "Foxit

Reader PDF Printer"

'In giấy mời ra máy in chỉ định myReport.PrintToPrinter(1, True, 0, 0) 'Trả trạng thái con trỏ về mặc định Me.Cursor = Cursors.Default

'Tạm khóa nút In ấn ButtonInAn.Enabled = True

Else

'Thông báo

MessageBox.Show("Mã khách hàng không đúng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)

TextBoxMaKH.Focus()

End If cn.Close()

End Using End Using

End If

End If End Sub


3. Kết quả thiết kế:



Hình 101. Kết quả thiết kế form in giấy mời khách hàng

4. Kết quả thực thi:

Sau khi nhấn vào nút “In ấn” với lựa chọn theo từng khách hàng.


Hình 102 Kết quả sau khi thực hiện chức năng in giấy mời khách hàng Công 1

Hình 102. Kết quả sau khi thực hiện chức năng in giấy mời khách hàng.

Công việc 2. Thiết kế hóa đơn bán hàng

a) Thiết kế hóa đơn bán hàng theo mẫu

1. Phân tích công việc:

Theo yêu cầu trên ta nhận thấy:

Phần thể hiện thông tin về khách hàng, số hóa đơn và các tiêu đề chỉ xuất hiện một lần ở đầu báo cáo nên phần này đưa vào phần

Phần thông tin về các mặt hàng đã mua xuất hiện nhiều lần nên phần này sẽ phải thiết kế trong phần Details

2. Thao tác thực hiện:

Thực hiện các thao tác tương tự như trong phần hướng dẫn thao tác ở công việc 1 để tạo mới một báo cáo có tên HoaDonBanHang.rpt

Nhấn phải chuột vào phần Report Header chọn Insert / Text Object và nhập giá trị “CỬA HÀNG THƯƠNG MẠI ABC” cho điều khiển này. Thao tác tương tự để tạo đối tượng Text Object có nội dung “HÓA ĐƠN BÁN HÀNG”. Điều chỉnh vị trí và font chữ của đối tượng Text Object này cho phù hợp.

Nhấn phải chuột vào phần Page Footer chọn Insert / Text Object và nhập nội dung “Trang / ” để tạo phần thống kê số trang cho báo cáo. Sau đó, nhấn phải chuột vào phần Page Footer của báo cáo chọn Insert / Special Field / Page Number và kéo vào trước dấu / để hiển thị giá trị trang hiện tại. Nhấn phải chuột vào phần Page Footer của báo cáo chọn Insert / Special Field / Total Page Count và kéo vào sau dấu / để hiển thị giá trị tổng số trang của báo cáo.

Thực hiện kết nối dữ liệu cho báo cáo.

Tại cửa sổ Field Explorer, nhấn phải chuột vào Database Fields / Chọn Database Expert. Xuất hiện cửa sổ Database Expert, tiến hành kết nối tới nguồn dữ liệu và chọn thủ tục hiển thị dữ liệu cho báo cáo (thủ tục này viết trong phần store procedure của cơ sở dữ liệu SQL Server) giống như phần hướng dẫn ở trên.

Mã lệnh thủ tục HoaDonBanHang viết trong SQL SERVER


USE [QLYBH] GO

/****** Object: StoredProcedure [dbo].[HoaDonBanHang]

Script Date: 12/07/2014 22:35:47 ******/ SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON GO

--

=============================================

-- Author: <Author,,Name>

-- Create date: <Create Date,,>

-- Description: <Description,,>

--

=============================================

CREATE PROCEDURE [dbo].[HoaDonBanHang]

-- Add the parameters for the stored procedure here

@SoHieuHD int

AS BEGIN

-- SET NOCOUNT ON added to prevent extra result sets from

-- interfering with SELECT statements. SET NOCOUNT ON;


-- Insert statements for procedure here

SELECT tblBanHang.*, tblKhachHang.HoTen, tblKhachHang.DienThoai, tblKhachHang.DiaChi, tblMatHang.TenMatHang, tblMatHang.DVT, tblChiTietHoaDon.SoLuong, tblChiTietHoaDon.DonGia, tblChiTietHoaDon.SoLuong * tblChiTietHoaDon.DonGia AS ThanhTien FROM tblBanHang, tblKhachHang, tblMatHang, tblChiTietHoaDon WHERE tblBanHang.MaKH

= tblKhachHang.MaKH AND tblBanHang.SoHieuHD =

tblChiTietHoaDon.SoHieuHD AND tblMatHang.MaMH = tblChiTietHoaDon.MaMH AND tblBanHang.SoHieuHD =

@SoHieuHD RETURN END


Trong phần cuối của hóa đơn bán hàng có hiển thị tổng tiền khách hàng phải trả. Để tính toán và hiển thị được giá trị tổng tiền này thực hiện như sau:

Nhấn phải chuột vào Formula Fields ở cửa sổ Field Explorer chọn New. Xuất hiện cửa sổ Formula Name. Nhập “tongtien” vào ô Name và nhấn OK.

Hình 103 Cửa sổ Formula Name Xuất hiện cửa sổ Formula Workshop Hình 104 Cửa 2

Hình 103. Cửa sổ Formula Name

Xuất hiện cửa sổ Formula Workshop.


Hình 104 Cửa sổ Formula Workshop Nhập công thức tính tổng tiền vào khung soạn 3

Hình 104. Cửa sổ Formula Workshop

Nhập công thức tính tổng tiền vào khung soạn thảo công thức:

Sum ({HoaDonBanHang;1.ThanhTien})


Nhấn “Save and close” để lưu biến hiển thị tổng tiền của hóa đơn.

Tiếp theo, tạo các đối tượng Text Object có nội dung “Khách hàng, Địa chỉ, Điện thoại, Số hóa đơn” ở phần Report Header. Điều chỉnh kích thước, font chữ, mầu chữ và vị trí các đối tượng này cho phù hợp với yêu cầu của báo cáo.

Từ cửa sổ Field Explorer kéo các trường TenMatHang, DVT, SoLuong, DonGia, ThanhTien vào phần Details.

Nháy phải chuột vào phần Details chọn Insert / Special Field / Record Number và kéo vào vị trí trước trường TenMatHang ở phần Details để hiển thị số thứ tự. Trong Crystal Report có nhiều trường đặc biệt, được xây dựng sẵn nhằm hiển thị các thông tin liên quan đến báo cáo được trình bày ở bảng bên dưới.

Bảng 6. Danh sách các trường đặc biệt trong Crystal Report.


Special Field

Mô tả

DataDate

Ngày báo cáo được sửa lần cuối.

DataTime

Giờ báo cáo được sửa lần cuối.

FileAuthor

Các tệp tin tác giả được lưu trữ cùng với báo cáo

FileCreationDate

Ngày tạo báo cáo.

Filename

Tên báo cáo

GroupNumber

Số thứ tự của nhóm trong báo cáo

GroupSelection


Công thức lựa chọn nhóm trong báo cáo.

ModificationDate

Ngày báo cáo được sửa gần nhất.

ModificationTime

Giờ báo cáo được sửa gần nhất.

PageNofM

Hiển thị giá trị “Page số thứ tự của trang of tổng số

Có thể bạn quan tâm!

Xem toàn bộ 318 trang tài liệu này.

trang

PageNumber

Số thứ tự trang hiện tại.

PrintDate

Ngày in báo cáo.

PrintTime

Giờ in báo cáo.

RecordNumber

Số thứ tự bản ghi.

RecordSelection

Công thức lựa chọn bản ghi.

ReportComments

Các chú thích được lưu trữ cùng với báo cáo.

ReportTitle

Tiêu đề của báo cáo.

TotalPageCount

Tổng số trang của báo cáo.



Sau khi chèn trường RecordNumber vào báo cáo, tiến hành thay đổi nội dung tiêu đề các trường cần hiển thị cho phù hợp với yêu cầu của báo cáo.

Nháy phải chuột vào biến tongtien ở phần Fomula Field chọn Insert to Report và kéo vào phần Report Footer.

Tạo một đối tượng Text Object tại phần Page Footer. Nhập nội dung cho đối tượng Text Object này là “Trang ”. Nháy phải chuột vào phần Page Footer chọn Insert

/ Special Field / Page Number, kéo vào trong nội dung của đối tượng Text Object vừa tạo.

Nháy phải chuột vào phần Report Header chọn Insert / Box để kẻ khung, Insert

/ Line để tạo phân cách cho các trường và các bản ghi của phần chi tiết hóa đơn.

Chuyển sang cửa sổ Main Report Preview để xem kết quả và hiệu chỉnh nếu

cần.

Xem tất cả 318 trang.

Ngày đăng: 16/07/2022
Trang chủ Tài liệu miễn phí