-
10-06-2010, 04:38 AM #1Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Bắt sự kiện Report được in ra máy in?
Tôi muốn một bắt được sự kiện 1 Report được in ra máy in nhưng chưa có cách nào để phân biệt report được in ra máy in hay Print Preview? Mong cả nhà giúp đỡ!
View more random threads:
- xin giúp đỡ về VBA
- Lấy giá trị từ combo box
- Quản lý mua bán hàng - Phần 4: Thiết kế form
- Tìm kiếm với hai điều kiệm trong 1textbox
- Gửi và truyền dữ liệu từ xa
- ACE hãy chỉ cho em cach viết lệnh mong muốn trong Access
- Nhờ a Phatnq2002 nhặt số liệu từ các table
- Không thể tắt nút Close trên thanh tiêu đề !
- Giúp mình tạo số chứng từ tự động tăng theo tháng năm hiện tại
- Chỉ giùm việc chuyển dữ liệu sang hàng ngang
-
10-06-2010, 01:44 PM #2Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 16
Ðề: Bắt sự kiện Report được in ra máy in?
Gửi bởi dongnamnb
Muốn in ra máy in : DoCmd.OpenReport "rptPhieuThu"
Trong đó rptPhieuThu là tên Report muốn in hay xem
Thân
-
10-06-2010, 02:13 PM #3Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Bắt sự kiện Report được in ra máy in?
Cảm ơn xuanthanh nhiều!
Ý mình muốn hỏi là làm sao để xác định khi nào thì người sử dụng in ra máy in kể cả qua Preview hay không qua Preview? Nếu dùng lênh như xuanthanh thì xác đinh đc rồi nhưng nếu người dùng in khi đang Preview thì làm sao để bắt được sự kiện này?
Mình đang thiết kế 1 report đặc biệt chỉ cho phép người sử dụng in ra máy in 1 lần duy nhất còn Preview thì thoải mái.
-
10-06-2010, 05:59 PM #4Junior Member
- Ngày tham gia
- Dec 2015
- Bài viết
- 0
Re: Ðề: Bắt sự kiện Report được in ra máy in?
Về việc bắt sao cho có thể biết là in ra giấy hay preview thì khá phức tạp.
Trong phạm vi có thể có của Access, để ai cũng có thể làm được, tôi đề xuất với bác một vài giải pháp nhé:
Giải pháp 1:
Trong Tools - *******, bác tắt cái Allows Default Shortcut Menus.
Desgin riêng một cái toolbar cho Print Preview, trong đó không có nút Print. Sau đó trong report, bác gán thuộc tính ToolBar của report với cái toolbar này.
Giải pháp 2:
Trong report, bác cho một cái text Text1- ví dụ: "Không có giá trị phát hành"
Trong code gọi lệnh in thì bác có thể code đại khái như sau:
If luachon = "In ra giấy" Then
DoCmd.OpenReport "ReportName", acViewNormal, , , , "In"
Else
DoCmd.OpenReport "ReportName", acViewPreview, , , , "Xem"
End If
Trong Report, bác code cho cái Report_Open:
Text1.Visible = Not (OpenArgs = "In")
Với giải pháp 2 thì khi in bằng việc chọn Print trong Print Preview, sẽ kèm theo một chuỗi "Không có giá trị phát hành", như vậy nó sẽ không hợp lệ, đúng không.
Có thể có cách khác "siu" hơn, nhưng chịu, chỉ đến mức này thôi.
-
10-06-2010, 10:10 PM #5Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Bắt sự kiện Report được in ra máy in?
Một giải pháp khác : Thiết kế form frmMeNu để đìều khiển tất cả các hoạt động của chưng trình ( nếu không muốn làm cái ToolBar như của phatnq2002). Trong form đó có núlt lệnh để in Report, tạo một OptionGroup, gồm hai option là Print và Preview, một TextBox txtSo, gán giá trị của txtSo sao cho mỗi khi chọn option Print thì giá trị của nó tăng lên 1 (cái txtSo có giá trị ban đầu = 0). Và như thế khi viết code cho nút lệnh, nếu chọn option Preview thì vô tư, khi chọn option Print thì nếu txtSo=1 thì cho lệnh in, nếu, txtSo>1 thì cấm in.
Giải pháp này chắc là được
Nếu dùng ToolBar thì cũng tương tự thế thôi
Thân
-
10-07-2010, 04:38 AM #6Silver member
- Ngày tham gia
- Feb 2016
- Bài viết
- 0
Ðề: Bắt sự kiện Report được in ra máy in?
Ý tưởng của bác phatnq2002 tôi cũng đã thử nhưng chưa triệt để vì người dùng vẫn có thể ấn tổ hợp phím Ctrl + P để in như thường. Tôi luôn muốn mọi cái phải thật triệt để khi viết phần mềm. Mong nhận đc các giải pháp tốt hơn từ DKT!
-
10-07-2010, 06:50 PM #7Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Ðề: Bắt sự kiện Report được in ra máy in?
Gửi bởi dongnamnb
-
10-07-2010, 08:15 PM #8Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Re: Ðề: Bắt sự kiện Report được in ra máy in?
Gửi bởi dongnamnb
Trong form, ô này bị lock lại và được check Yes khi in bản chính thức!
Trong report, mình tạo 1 label11 với nội dung sau: "Bản Chỉ để xem không có giá trị phát hành". Và cho thuộc tính Visible= false
Xử lý nút nhấn như sau:
Mã:Private Sub cmdReview_Click() DoCmd.OpenReport "Table1", acPreview Reports![Table1]![Label11].Visible = True End Sub '''''''''''''' Private Sub cmdPrint_Click() If Isprint Then MsgBox " Da in roi, khong in duoc nua" Else DoCmd.OpenReport "Table1", acNormal Isprint.Value = True Me.Repaint End If End Sub
Sự ra đời của các thiết bị công nghệ – khoa học tiền tiến đã tạo tiền đề thúc đẩy nền kinh tế, từng lớp phát triển hơn. Những thiết bị, ứng dụng này tương trợ con người giải quyết công việc mau...
Bàn luận nhiều tác động tích cực của công nghệ thông tin cho con người