-
Tạo report có chiều cao co dãn theo dữ liệu
Noname > 09-08-10, 02:17 AM
Trong khi làm report. Có những dữ liệu vượt quá chiều ngang của field trình bày. Nhưng nếu ta set cho field đó có khả năng can grow thì nó sẽ nhảy dòng, làm lệch các khung ta đã canh chỉnh.Những người có kinh nghiệm giải quyết bằng cách chừa 1 khoảng trống đủ lớn để không bị "rớt dòng" đại loại như thế! Tuy nhiên, nếu không có dữ liệu nào thừa rớt dòng thì khoảng trống đó lãng phí trong report!
Vấn đề đặt ra là làm cách nào để report có thể tự do dãn chiều cao ở mỗi dòng khác nhau cho phù hợp với dữ liệu
Mình gợi ý theo một hướng khác là ta dùng hàm line để vẽ các đối tượng draw trên report, như vậy bạn sẽ có các đường kẻ đứng co dãn theo field.
Dưới đây là ví dụ mình sẽ vẽ hai đường thẳng đứng tự co dãn, bạn về tùy biến cho phù hợp nha
Code:
Mã:Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Me.Line (0, 0)-Step(0.01 * 567, 56 * 567), , BF
Me.Line (3 * 567, 0)-Step(0.01 * 567, 56 * 567), , BF
End Sub
Copy dòng code vào thủ tục Detail_Print cuả report:
- Bạn print preview sẽ có 2 đường thẳng rộng 0.01cm, chiều dài bằng chiều cao phần detail (đã co dãn, tối đa là 56cm). 2 đường có top-đỉnh là 0 cm, mép trái là 0cm và 3cm.
- Code trong report của Access dùng đơn vị twip, 1cm=567twips
Các đường ngang bạn chỉ cần vẽ 1 đường có Top=0, left=0 và chiều dài bằng chiều dài report ở phần detail.
Copy 1 đường tương tự cho các Group Footer và Report Footer như vậy bạn đã có thể co giãn như ý rồi
Download Demo -
RE: Tạo report có chiều cao co dãn theo dữ liệu
thang2301 > 25-10-11, 04:50 PM
Hi, mình đã làm theo hướng dẫn, khi xem ở chế độ view thì tốt, nhưng khi in thì một số line bị mất (không in ra), như vậy là bị sao? có giải pháp gì không hả bạn? -
RE: Tạo report có chiều cao co dãn theo dữ liệu
Noname > 25-10-11, 05:14 PM
Bạn thay số 0.01 bằng một số lớn hơn thử! 0.02 chẳng hạn -
RE: Tạo report có chiều cao co dãn theo dữ liệu
timhoasen > 26-10-11, 04:11 PM
sao em lam theo thuong dan roi ma no khong duoc mong cac bac giup em voi!
-
RE: Tạo report có chiều cao co dãn theo dữ liệu
KínhCận > 27-10-11, 09:00 AM
Chỉnh khung chuẩn ở kích cở chữ nào đấy rồi nhân bản ra, ví dụ khung số lương thường hàng đơn vị đến trăm ngàn, đơn giá hàng đơn vị đến chục tỷ, thành tiền hàng đơn vị đến ngàn tỷ,... theo thực tế khảo sát ta tạo sẵn khung chuẩn.
Mình thường làm mỗi thứ 1 khung chuẩn ở kích cở là ở 8-9-10-11-12 rồi copy nhân bản khi cần, cũng ko mất thời gian mấy. Chúc vui! -
RE: Tạo report có chiều cao co dãn theo dữ liệu
quanghoasla > 27-10-11, 10:57 AM
các pro có thể giải thích qua
Me.Line (0, 0)-Step(0.01 * 567, 56 * 567), , BF
Me.Line (1 * 567, 0)-Step(0.01 * 567, 56 * 567), , BF
Me.Line (5 * 567, 0)-Step(0.01 * 567, 56 * 567), , BF
Me.Line (9 * 567, 0)-Step(0.01 * 567, 56 * 567), , BF
Me.Line (13 * 567, 0)-Step(0.01 * 567, 56 * 567), , BF
Me.Line (17 * 567, 0)-Step(0.01 * 567, 56 * 567), , BF
đó là các line nào ? -
RE: Tạo report có chiều cao co dãn theo dữ liệu
Noname > 27-10-11, 01:55 PM
Cú Pháp
Có thể thay BF bằng B (kẻ hình chữ nhật, tham số F để thêm màu sắc ruột hình chữ nhật).Mã:Line( Left, Top) - Step(Width, Height),Màu,BF
Me.Line (13 * 567, 0)-Step(0.01 * 567, 56 * 567), , BF
Có nghĩa là: Kẻ một đường thẳng có Top =0, Left=13, rộng 0.01, chiều cao tùy theo chiều cao của detail nhưng tối đa là 56
Các đơn vị trên tính bằng Cm -
RE: Tạo report có chiều cao co dãn theo dữ liệu
quanghoasla > 27-10-11, 03:15 PM
Thanks noname nhiều. Mình thử cắt đoạn lệnh đi thì các line tương tự sẽ ẩn hoặc hiện tùy theo ý của mình. -
RE: Tạo report có chiều cao co dãn theo dữ liệu
bwomdem > 19-03-12, 11:04 PM
Mình copy trên mạng cái sub này:
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Me.ScaleMode = 1
Me.ForeColor = 0
'Repeat the following line of code for each vertical line
' 1*1440 represents 1 inch
Me.Line (0 * 1440, 0)-(0 * 1440, 14400) 'Draws line at Left Margin
Me.Line (0.25 * 1440, 0)-(0.25 * 1440, 14400)
Me.Line (3.0417 * 1440, 0)-(3.0417 * 1440, 14400)
Me.Line (3.9167 * 1440, 0)-(3.9167 * 1440, 14400)
Me.Line (4.9167 * 1440, 0)-(4.9167 * 1440, 14400)
Me.Line (5.9063 * 1440, 0)-(5.9063 * 1440, 14400)
End Sub
Các bạn thay số đầu tiên (sau dấu mở ngoặc) bằng left của TextBox là chuẩn luôn.
Good luck!
-
Noname, cho mình hỏi "Tạo report có chiều cao co dãn theo dữ liệu"
quoctrong_2311 > 25-04-12, 10:52 PM
mình đọc được bài của bạn viết về "Tạo report có chiều cao co dãn theo dữ liệu", mình mới tự mò học Access được 1 tuần, mình không biết mở phần nào trên report để copy đoạn code của bạn, bạn có thể hướng dẫn chi tiết cho mình không. ví dụ như: vào đâu, chọn dòng chữ gì VV.. Mình gà lắm, bạn đừng cười ngen.. Thank bạn!