• Tạo report có chiều cao co dãn theo dữ liệu
  • 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

    [Hình: reporttest.JPG]

    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? 52_52
  • 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
    Mã:
    Line( Left, Top) - Step(Width, Height),Màu,BF
    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).


    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.Tongue_smileTongue_smileTongue_smileTongue_smile . Thank bạn!