-
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:
- Giúp đở vấn đề share csdl access để được nhiều người dùng
- Giúp mình sort tren listbox vớii
- Connect ODBC trong ACCESS!
- [Giúp] Lồng Select SQL Query Append vào trong VBA
- Tạo đồng đếm thời gian trong quá trình tính toán
- Xuất Nhập Tồn Kho Đông Lạnh
- Đưa nhiều record vào một Unbound
- tìm tên khách hàng và hiển thị tất cả các dữ liệu liên quan lên form và subform
- Ẩn toolbar tự tạo?
- Hỏi về cách tô màu từ tìm kiếm và mở 1 form mới từ form trước đó
-
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
Địa chỉ cung cấp mẫu lăng mộ đá khu lăng mộ uy tín chất lượng Đá mỹ nghệ Tài Tuệ là đơn vị hàng đầu trong lĩnh vực điêu khắc chế tác các sản phẩm, công trình tâm linh bằng đá tại làng đá truyền...
Địa chỉ cung cấp mẫu lăng mộ đá khu lăng mộ uy tín chất lượng năm 2024