-
Hỏi cách lập Report dạng cây
ledangvan > 31-10-15, 11:45 AM
Tôi có một report (Bảng cân đối tài khoản)
http://www.mediafire.com/download/b1bvo3...ieumau.mdb
Tôi muốn : Nếu là tài khoản cấp 1 thì hiện luôn và bôi đậm (Không hiện chi tiết)
Nếu tài khoản có cấp 2 thì cấp 1 bôi đậm - Cấp 2 để bình thường hiện cả cấp 1 cả cấp 2
Ví dụ :
1111 - Tiền mặt -> Nó chỉ có một tài khoản cấp 1 -> Muốn nó chỉ hiện 1111 - Tiền mặt và chữ đậm
1121 - Tiền gửi ngân hàng -> TK cấp 1
11211 - Tiền gửi ngân hàng Công thương Ba Đình -> TK cấp 2
11212 - Tiền gửi ngân hàng BIDV -> Tài khoản cấp 2
-> Muốn là khi hiện lên báo biểu nó sẽ hiện như sau :
1111 - Tiền mặt
1121 - Tiền gửi ngân hàng
11211 - Tiền gửi ngân hàng Công thương Ba Đình
11212 - Tiền gửi ngân hàng BIDV
Mọi người giúp mình với, xin cảm ơn nhiều. -
RE: Hỏi cách lập Report dạng cây
tranthanhan1962 > 31-10-15, 06:28 PM
Có phải ý của bạn là nếu MSTK=MSTK cấp 1 (có nghĩa là MSTK có số ký tự là 4) sẽ bị ẩn chứ gì?
Nếu như vậy bạn viết code tại group hiển thị của nó như sau:
Ví dụ trên report của bạn nó là GroupFooter1
Mã:Private Sub GroupFooter1_Format(Cancel As Integer, FormatCount As Integer)
If Len(MSTK.Value) = 5 Then
GroupFooter1.Visible = True
Else
GroupFooter1.Visible = False
End If
End Sub
Tương tự nếu bạn muốn ẩn luôn tài khoản đó khi nó bằng tài khoản cha (Tài khoản có 3 ký tự)
Mã:Private Sub GroupHeader1_Format(Cancel As Integer, FormatCount As Integer)
If Len(MSTK.Value) = 4 Then
GroupHeader1.Visible = True
Else
GroupHeader1.Visible = False
End If
End Sub
* Bạn phải cần tạo một textbox MSTK tại một group nào đó hoặc detail cũng được. Nếu không muốn nhìn thấy textbox này set Visible cho nó bằng false -
RE: Hỏi cách lập Report dạng cây
ledangvan > 31-10-15, 07:02 PM
(31-10-15, 06:28 PM)tranthanhan1962 Đã viết: Có phải ý của bạn là nếu MSTK=MSTK cấp 1 (có nghĩa là MSTK có số ký tự là 4) sẽ bị ẩn chứ gì?
Nếu như vậy bạn viết code tại group hiển thị của nó như sau:
Ví dụ trên report của bạn nó là GroupFooter1
Mã:Private Sub GroupFooter1_Format(Cancel As Integer, FormatCount As Integer)
If Len(MSTK.Value) = 5 Then
GroupFooter1.Visible = True
Else
GroupFooter1.Visible = False
End If
End Sub
Tương tự nếu bạn muốn ẩn luôn tài khoản đó khi nó bằng tài khoản cha (Tài khoản có 3 ký tự)
Mã:Private Sub GroupHeader1_Format(Cancel As Integer, FormatCount As Integer)
If Len(MSTK.Value) = 4 Then
GroupHeader1.Visible = True
Else
GroupHeader1.Visible = False
End If
End Sub
* Bạn phải cần tạo một textbox MSTK tại một group nào đó hoặc detail cũng được. Nếu không muốn nhìn thấy textbox này set Visible cho nó bằng false
Bác xem giúp em File ví dụ với, File đó em cũng đã thử nhóm theo MSTK rồi nhưng khi nó hiện sẽ hiện
Nhóm 3 ký tự
Nhóm 4 ký tự
Nhóm 5 ký tự
Nó nhóm như này, không đúng ý tưởng lắm:
111 (Nhóm 3 ký tự)
1111 Tiền mặt (Nhóm 4 ký tự)
1111 Tiền mặt (Nhóm 5) ký tự
112
....
131 (Nhóm 3 ký tự)
131 (Nhóm 4 ký tự)
131 (Nhóm 5 ký tự)
Em muốn nó nhóm ra :
TK 1111 chỉ có 1 tài khoản (Không có cha, con ..) thì chỉ hiện mình nó và in đậm
TK 131 cũng thế ...
Nhưng tài khoản 1121 nó có mấytài khoản cấp 2 nên muốn nó hiện :
1121
11211 - Ngân hàng ...
11212 - Ngân hàng ...
Kết quả sẽ hiện :
1111
1121
11211
11212
11213
131
133
1331
1332
141
156
1561
1562
.... -
RE: Hỏi cách lập Report dạng cây
tranthanhan1962 > 31-10-15, 11:30 PM
Do CSDL của bạn khi phân tích không tường minh nên gặp khó khăn trong trường hợp này. Tài khoản của bạn lại có giá trị sẵn nên khó lòng xử lý lại từ đầu. Thực ra các cấp tài khoản điều được quy định sẳn: 1/ Nhóm tài khoản gồn 2 chữ số. 2/ Tài khoản mà bạn gọi là tài khoản cha chính là tài khoản cấp 1 gồm 3 chữ số, tài khoản có 4 chữ số là tài khoản cấp 2. Tùy theo yêu cầu của đơn vị có thể đặt ra tài khoản đến cấp 5, cấp 6. Ngoài ra còn còn các loại tài khoản đặt biệt là 7, 8, 9, 0. Nhưng do đặt thù của từ công ty nên mỗi đơn vị làm mỗi khác.
Khi làm bằng word, excel xử lý thủ công thì rất dễ nhưng khi làm access thì đẽ ra đủ kiểu khó do mỗi đơn vị làm theo thói quen của mình. Để chuẩn hóa bạn có thể nghiên cứu ở đây
Trong điều kiện dữ liệu của bạn mình chỉ có thể hỗ trợ bằng các ý sau. Do các cấp nhóm không ổn định theo số ký tự nên bạn có thể xử lý theo từng trường hợp đưa vào các field nhóm 1 (Chử đen đậm), nhóm 2 (chữ xanh), nhóm 3 (chữ nghiêng) tạo các field yes/no cho từng nhóm cho từng tài khoản. Cũng vẫn dùng code trên nhưng sửa lại Nhóm nào yes thì cho hiển thị. Ví dụ:
Mã:Private Sub GroupFooter1_Format(Cancel As Integer, FormatCount As Integer)
If Len(NHOM2.Value) = True Then
GroupFooter1.Visible = True
Else
GroupFooter1.Visible = False
End If
End Sub
*Trước khi xử lý tạo relationship 2 table cho dễ làm hơn.