mrsiro > 10-03-18, 11:17 AM
feeling > 11-05-18, 01:02 PM
NguyenDungAnh > 11-05-18, 10:03 PM
maidinhdan > 14-05-18, 05:47 PM
vodainhan > 05-07-18, 03:42 PM
(23-09-16, 05:11 PM)maidinhdan Đã viết: Rãnh rỗi sinh nông nổi: Trước bài viết này đã có 01 bài viết về " Tạo report có chiều cao co dãn theo dữ liệu " và với cách này thì chúng ta phải vẽ line ( vẽ đường vẽ cho nó). Từ những trăn trở đó, tôi cố đã tổng hợp được 1 hàm tự động mà chẳng cần khéo tay hay kẻ từng đoạn để canh chỉnh chiều cao của cái report nửa.
Demo_hàm cho report tự canh đều chiều cao theo chữ
Công dụng:
- Tìm cột có độ cao cao nhất để lấy nó làm chuẩn để chỉnh các cột còn lại cân bằng theo
Khả năng ứng dụng:
- Ứng dụng để canh độ cao của report
Hạn chế:
- Chưa biết
Code sử dụng:
1. Hàm Điều chỉnh độ cao
2. Hàm tìm chiều cao nhất của 1 dòng record
Cách gọi sử dụng, như Hình minh họa:
*************Chúng ta chỉ việc copy đoạn code sau vào bất kỳ report nào và thay vào đó là txt1, txt2, txt3 ( nhiều cột hơn thì cứ tạo thêm dòng dưới đó)
*************Nhớ là cũng cần import cái modules nửa nhé
Mã PHP:Private Sub Detail_Print(ByRef intCancel As Integer, ByRef intPrintCount As Integer)
Dim lm As Long
lm = Hamchieucaonhat(acDetail)
' Dien ten cot can can bang do cao o duoi day: txt1, txt2, txt3
Dieuchinhchieucao Me.txt1, lm, 0, 0, 0, 0, 0, vbRed
Dieuchinhchieucao Me.txt2, lm, 0, 0, 0, 0, 0, vbGreen
Dieuchinhchieucao Me.txt3, lm, 0, 0, 0, 0, 0, vbBlue
End Sub
Private Function Hamchieucaonhat(ByVal intSection As Integer) As Long
Dim lngHeight As Long
Dim ctlControl As Control
For Each ctlControl In Me.Section(intSection).Controls
If ctlControl.ControlType = acTextBox Then
If ctlControl.Height > lngHeight Then
lngHeight = ctlControl.Height
End If
End If
Next ctlControl
Hamchieucaonhat = lngHeight
End Function
Lưu ý: nếu gặp lỗi dòng đầu tiên không hiện hết chữ thì chọn 3 Textbox đó và đi đến Properties/ dòng Back Style: Sửa chữ Solid thành Transparent
Thân mến!
Vui lòng để lại Email để nhận file không khóa pass VBA.
mrtoanbin > 07-11-18, 09:07 PM
maidinhdan > 13-12-18, 01:24 PM
Trích dẫn:tới:
vodainhan <vodainhan68@gmail.com>,
Toan Nguyen <nguyentrungtoan0288@gmail.com>
ngày:12:23, 13 thg 12, 2018
huynhtanhai62 > 29-12-18, 05:13 PM
(23-09-16, 05:11 PM)maidinhdan Đã viết: Rãnh rỗi sinh nông nổi: Trước bài viết này đã có 01 bài viết về " Tạo report có chiều cao co dãn theo dữ liệu " và với cách này thì chúng ta phải vẽ line ( vẽ đường vẽ cho nó). Từ những trăn trở đó, tôi cố đã tổng hợp được 1 hàm tự động mà chẳng cần khéo tay hay kẻ từng đoạn để canh chỉnh chiều cao của cái report nửa.
Demo_hàm cho report tự canh đều chiều cao theo chữ
Công dụng:
- Tìm cột có độ cao cao nhất để lấy nó làm chuẩn để chỉnh các cột còn lại cân bằng theo
Khả năng ứng dụng:
- Ứng dụng để canh độ cao của report
Hạn chế:
- Chưa biết
Code sử dụng:
1. Hàm Điều chỉnh độ cao
2. Hàm tìm chiều cao nhất của 1 dòng record
Cách gọi sử dụng, như Hình minh họa:
*************Chúng ta chỉ việc copy đoạn code sau vào bất kỳ report nào và thay vào đó là txt1, txt2, txt3 ( nhiều cột hơn thì cứ tạo thêm dòng dưới đó)
*************Nhớ là cũng cần import cái modules nửa nhé
Mã PHP:Private Sub Detail_Print(ByRef intCancel As Integer, ByRef intPrintCount As Integer)
Dim lm As Long
lm = Hamchieucaonhat(acDetail)
' Dien ten cot can can bang do cao o duoi day: txt1, txt2, txt3
Dieuchinhchieucao Me.txt1, lm, 0, 0, 0, 0, 0, vbRed
Dieuchinhchieucao Me.txt2, lm, 0, 0, 0, 0, 0, vbGreen
Dieuchinhchieucao Me.txt3, lm, 0, 0, 0, 0, 0, vbBlue
End Sub
Private Function Hamchieucaonhat(ByVal intSection As Integer) As Long
Dim lngHeight As Long
Dim ctlControl As Control
For Each ctlControl In Me.Section(intSection).Controls
If ctlControl.ControlType = acTextBox Then
If ctlControl.Height > lngHeight Then
lngHeight = ctlControl.Height
End If
End If
Next ctlControl
Hamchieucaonhat = lngHeight
End Function
Lưu ý: nếu gặp lỗi dòng đầu tiên không hiện hết chữ thì chọn 3 Textbox đó và đi đến Properties/ dòng Back Style: Sửa chữ Solid thành Transparent
Thân mến!
Vui lòng để lại Email để nhận file không khóa pass VBA.