• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

DATA REPORT- rptLine Height=rptTextbox (at runtime)

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Moderator: tungblt

hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

DATA REPORT- rptLine Height=rptTextbox (at runtime)

Postby hetko123 » Thu 17/06/2010 4:51 pm

Nhờ các bạn giúp mình một vấn đề nam giải khi làm báo cáo với Data report. Tình huống như sau:

Khi nội dung của dữ liệu vừa vặn với độ rộng của textbox thì không có vấn đề gì xảy ra, nhưng khi dữ liẹu nhiều hơn độ rộng của textbox thì phần nội dung bị che lấp. Để kh8ác phục tình trạng này, mình set thuộc tính CanGrow=True cho textbox thì chữ tự động xuống hàng và textbox tự giãn theo chiều đứng. Nhưng gặp vấn đề khác là các control Line không thể tư nhận biết textbox đã giãn dòng để tự điều chỉnh độ cao (height) cho bằng với textbox, dẫn đến khuôn của report bị vỡ, kiểu như:

____________________________________________
| | {nội dung text box line 1 } |
{ line 2}
{line 3 }
_____________________________________________


Nhờ các bạn giúp hướng dẫn làm thế nào để line control tư động thay đổi height theo text box khi chạy.

Chân thành cảm ơn
Last edited by hetko123 on Mon 19/07/2010 10:47 am, edited 2 times in total.



hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

Re: [Nhờ giúp đỡ] Về DATA REPORT (Control tự điều chỉnh khi

Postby hetko123 » Thu 17/06/2010 8:54 pm

Ko có ai giúp đỡ hết T_T

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby truongphu » Fri 18/06/2010 9:15 pm

Tôi chưa Test, nhưng vẫn tin thuộc tính (property) của Line trong DatatReport là bất biến (ReadOnly)
1- Tại Secction1 (Secction chính), các Record đều được thể hiện thông qua chỉ môt đại biểu textbox, và tương tự như thế, Line cũng sẽ đựoc nhân lên...
Vậy thì, textbox có cangrow true hay false, Line sẽ được nhân lên đúng theo thiết kế mà không lệ thuộc textbox.height

do đó, bạn nên thiết kế Line, phù hợp 2 điều kiện cangrow true hay false

2- Nếu theo ý bạn, Line thay đổi phù hợp textbox.height, bạn có thể nêu điều kiện theo Command1.Recordset.fields

Code: Select all

If Len(Command1.Recordset.fields("aaa").Value)>15 then...

trong điều kiện trên, bạn cứ hoạch định Line1.Top là bao nhiêu đấy...

Tuy nhiên, tôi vẫn không tin là thành công
Nghĩ rằng bạn khao khát có câu trả lời, nên có lời góp ý , thế thôi
vì thật ra, câu thắc mắc của bạn cũng không có gì bức thiết...
bạn cứ suy nghĩ thêm xem sao..
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby hetko123 » Fri 18/06/2010 9:57 pm

Trước hết xin cảm ơn bạn.

truongphu wrote:Tôi chưa Test, nhưng vẫn tin thuộc tính (property) của Line trong DatatReport là bất biến (ReadOnly)
1- .........bạn nên thiết kế Line, phù hợp 2 điều kiện cangrow true hay false........

2- ..........Nếu theo ý bạn, Line thay đổi phù hợp textbox.height, bạn có thể nêu điều kiện theo Command1.Recordset.fields

Code: Select all

If Len(Command1.Recordset.fields("aaa").Value)>15 then...

trong điều kiện trên, bạn cứ hoạch định Line1.Top là bao nhiêu đấy...

.........câu thắc mắc của bạn cũng không có gì bức thiết...


1. Cụ thể là thiết kế như thế nào? ít nhất cần có giải pháp cụ thể chứ?

2. Bạn có thể cụ thể và chi tiết hơn không?

hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby hetko123 » Fri 18/06/2010 10:03 pm

Vấn đề này không bức thiết lắm.....???
Đây là vấn đề khá rắc rối, mà tôi đã tìm kiếm câu trả lời khắp mà không tìm thấy, nên mới pót lên nhờ các bạn giúp đỡ (nếu biết) mà. VÀ THẬT SỰ RẤT CẦN THIẾT VÀ BỨC THIẾT

Rất mong nhận được sự trợ giúp tốt nhất của các bạn

hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby hetko123 » Sat 19/06/2010 10:19 am

[-O< có bạnnào giúp mình với. Bây giờ khi in report, khi chữ > chiều rộng của textbox thi textbox tự động giãn theo chiều dọc, mấy cái đường vễ khung bi trống, trông buồn bực quá :(( :(( :((

PLS PLS PLS HELP ME !!! :-/

hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby hetko123 » Mon 21/06/2010 3:59 pm

Có lẻ đây là một vấn đề quá khó đối với nhân tài lập trình Việt chăng? :-?

Hay đây chỉ là vấn đề khó khắn mà chỉ riêng một mình tôi mới gặp và cần thiết, nên không bạn nào quan tâm :-/ :-/

Thôi nhờ bạn admin rãnh rổi ghé qua khóa cái mục này (hoặc xóa luôn cho đỡ vướng mắt [-( )

Cảm ơn bạn truongphu đã có câu trả lời, dù không thật sự giúp ích nhiều lắm. Chúc các bạn khỏe.

boy1234
Guru
Guru
Posts: 448
Joined: Mon 13/10/2008 3:12 pm
Location: Dĩ An - Bình Dương
Been thanked: 32 times

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby boy1234 » Mon 21/06/2010 4:11 pm

Thực sự là không phải không có giải pháp. Trước đây từng gặp cảnh này khi in Báo cáo cũng vướng mắc như bạn. Đành làm theo 1 cách mà hơn lòng vòng nhưng khá hiệu quả cho công việc. Giải pháp của mình là làm 2 cái Report tương tự nhau nhưng sẽ giãn textbox ở report sau rộng giống như bạn mô tả. Tức là 1 vấn đề nhưng dùng 2 report để giải quyết. Việc còn lại là code làm sao để lấy đúng các báo cáo mình mong muốn. ;)
Attachments
untitled1.PNG
untitled2.PNG
Dạo này nghiện honda SS50

hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby hetko123 » Tue 22/06/2010 12:02 pm

Đó đúng là những gì mình đang thật sự cần. Cách của bạn cũng có thể là một giải pháp, nhưng có lẽ vẫn chưa thật sự là giải pháp tốt. Vì các lý do như sau:
1. Không phải trong dữ liệu tất cả các ô textbox đều bị tràn dữ liệu, có cái vượt khung, có cái không vượt khung, độ cao của từng hàng trong báo cáo tư điều chỉnh theo độ cao của textbox. Nếu làm theo cách của bạn thì lại để phần trống tại những hàng mà độ dài dữ liệu nằm vừa vặn trên 1 hàng.

2. Độ dài Dữ liệu trên textbox là không giống nhau, có thể vược quá 2,3,4,..nhiều hàng hơn. Không lẻ với mỗi loại như vậy lại tạo 1 report tương tư nữa?

Rất cảm ơn bạn đã góp ý, rất mong tiếp tục trao đổi thêm với bạn về vấn đề này để tìm ra cách giải quyết tốt nhất (tất nhiên là đừng góp ý kiểu "chuyển qua Crsytal Report cài cho rồi :)" )

Liệu bạn có thể gửi mình một bản demo cho cách làm như của bạn ở trên không?

User avatar
trieu4978
Thành viên chính thức
Thành viên chính thức
Posts: 22
Joined: Wed 23/06/2010 6:58 pm
Location: HCM
Contact:

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby trieu4978 » Wed 30/06/2010 6:47 pm

Thật ra không có gì khó cả!
Bạn có thể viết code để vẽ line lúc run-time chứ đừng vẽ line trong lúc design report là giải quyết được hết! Hoặc vẽ trước cũng được, nhưng khi chạy, bạn thay đổi tọa độ của Line theo Textbox trong Report (Cách này dễ hơn)! Thậm chí bạn có thể "thêm mắm dặm muối" vào cho Report của bạn thêm 'ngon' nữa là đằng khác.
Bạn chỉ cần lưu ý là Truy cập đến Report thông qua các đối tượng con là Section và Control và số index của tụi nó!
Chúc bạn thành công! Nếu có gì vướng mắc, hãy gửi lên, tôi sẽ giúp bạn ngay khi có thể!
Bao năm lầm lũi đi với đời
Vẫn bàn tay trắng với chơi vơi
Thuyền tình dăm bận rời bến nhỏ
Rượu nồng cay đắng vẫn đầy vơi!
™T

User avatar
vietteiv
Quản trị
Quản trị
Posts: 1325
Joined: Sat 10/02/2007 12:17 am
Location: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 times
Been thanked: 71 times
Contact:

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby vietteiv » Wed 30/06/2010 10:21 pm

cho hỏi trieu978 một chút:
làm theo cách bạn nói là trước khi show report ra thì coder phải đi đo đến độ dài từng record của dữ liệu, rồi so sánh với chiều rộng, dài của text để xuống dòng phải không? nếu in dữ liệu trên 1 trang giấy thì mất bao nhiu phút, vậy khoảng cỡ 500 trang hay mấy ngàn trang thì sẽ mất bao lâu mới show ra được cái report đó?

@còn để giải quyết câu hỏi của tác giả thì rất đơn giản nếu sử dụng các control hỗ trợ báo cáo khác, như cystal report, active report... còn datareport thì chưa biết vì ít tìm hiểu cái này

hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby hetko123 » Thu 01/07/2010 4:37 pm

trieu4978 wrote:Thật ra không có gì khó cả!
.....có thể viết code để vẽ line lúc run-time chứ đừng vẽ line trong lúc design report.....


Theo tôi biết điều này là không thể, vì DR không hỗ trợ đồ họa trong report. :P

hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby hetko123 » Thu 01/07/2010 4:39 pm

trieu4978 wrote:Thật ra không có gì khó cả!
.....Hoặc vẽ trước cũng được, nhưng khi chạy, bạn thay đổi tọa độ của Line theo Textbox trong Report (Cách này dễ hơn)! .....


Theo bạn thì vẽ như thế nào ;;) đã giúp thì giúp cho trót, cho một cái demo ví dụ đi bạn.

User avatar
trieu4978
Thành viên chính thức
Thành viên chính thức
Posts: 22
Joined: Wed 23/06/2010 6:58 pm
Location: HCM
Contact:

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby trieu4978 » Thu 01/07/2010 6:31 pm

vietteiv wrote:cho hỏi trieu978 một chút:
làm theo cách bạn nói là trước khi show report ra thì coder phải đi đo đến độ dài từng record của dữ liệu, rồi so sánh với chiều rộng, dài của text để xuống dòng phải không? nếu in dữ liệu trên 1 trang giấy thì mất bao nhiu phút, vậy khoảng cỡ 500 trang hay mấy ngàn trang thì sẽ mất bao lâu mới show ra được cái report đó?

@còn để giải quyết câu hỏi của tác giả thì rất đơn giản nếu sử dụng các control hỗ trợ báo cáo khác, như cystal report, active report... còn datareport thì chưa biết vì ít tìm hiểu cái này


Nói nhưvietteiv thì quả là không biết gì cả!!! Tôi đâu cần biết độ rộng và chiều cao của textbox hay record đề làm gì. Tôi chỉ cần set vị trí Line tương ứng với nó mà thôi! Việdc này làm bằng máy, máy tính xử lý chứ có phải vẽ bằng tay đâu mà chậm!!??!!

Tôi không có nhiều thời gian để làm nguyên một bộ mới, nếu hetko 123 muốn thì gửi project của bạn lên đi, khi rảnh, tôi sẽ thêm code vào cho!
Bao năm lầm lũi đi với đời
Vẫn bàn tay trắng với chơi vơi
Thuyền tình dăm bận rời bến nhỏ
Rượu nồng cay đắng vẫn đầy vơi!
™T

User avatar
vietteiv
Quản trị
Quản trị
Posts: 1325
Joined: Sat 10/02/2007 12:17 am
Location: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 times
Been thanked: 71 times
Contact:

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby vietteiv » Fri 02/07/2010 12:37 am

trieu4978 wrote:Nói nhưvietteiv thì quả là không biết gì cả!!! Tôi đâu cần biết độ rộng và chiều cao của textbox hay record đề làm gì. Tôi chỉ cần set vị trí Line tương ứng với nó mà thôi! Việdc này làm bằng máy, máy tính xử lý chứ có phải vẽ bằng tay đâu mà chậm!!??!!

Tôi không có nhiều thời gian để làm nguyên một bộ mới, nếu hetko 123 muốn thì gửi project của bạn lên đi, khi rảnh, tôi sẽ thêm code vào cho!

nói rất hay, vậy thì làm giúp mình cái datareport này đi. trong project demo mình đã set sẵn thuộc tính cangrow cho textbox. bạn hãy làm theo cách bạn nói xem nào. hi vọng bạn không làm mình và mọi người thất vọng. 2 hình dưới đây là kết quả hiện tại

1.JPG

2.JPG
Attachments
Data_Report.rar
source demo
(159.79 KiB) Downloaded 340 times

hetko123
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Thu 17/06/2010 4:43 pm

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby hetko123 » Fri 02/07/2010 2:01 pm

trieu4978 wrote:... gửi project của bạn lên đi, khi rảnh, tôi sẽ thêm code vào cho!....


vietteiv đã đưa ví dụ demo rồi đấy, bạn thử xem sao =D> =D>

PS: Thêm một chút: Trong các thuộc tính của rptLine có thuộc tính LineSlant, không hiểu thuộc tính này để làm gì nhỉ?

User avatar
vietteiv
Quản trị
Quản trị
Posts: 1325
Joined: Sat 10/02/2007 12:17 am
Location: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 times
Been thanked: 71 times
Contact:

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby vietteiv » Fri 02/07/2010 11:07 pm

vẫn chưa thấy trieu4978 trả lời, không biết có làm được như câu hát rất hay và đầy tự tin trên kia không ;))

p/s: lâu rồi forum tĩnh lặng, ít có tranh luận sôi nổi nên tui vào góp chút gió cho dzui. nếu gió to thành bão thì cũng thích lắm thay :P

User avatar
vuathongtin
Điều hành viên
Điều hành viên
Posts: 1028
Joined: Sun 02/05/2010 10:03 pm
Location: Xứ sở DG
Has thanked: 2 times
Been thanked: 105 times
Contact:

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby vuathongtin » Fri 02/07/2010 11:51 pm

vẫn chưa thấy trieu4978 trả lời, không biết có làm được như câu hát rất hay và đầy tự tin trên kia không

Nếu trieu4978 làm được thì sao nhỉ :P
Bùi Thành Nhân
* Chuyên gia MMO
congtacvien.online

User avatar
vietteiv
Quản trị
Quản trị
Posts: 1325
Joined: Sat 10/02/2007 12:17 am
Location: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 times
Been thanked: 71 times
Contact:

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby vietteiv » Sat 03/07/2010 9:45 am

thì quá giỏi rồi còn gì. nói được và làm được thì mới hay. chứ vào topic rồi chém gió vài câu thì lần sau bài trả lời như thế được coi là spam và bị del ngay.

heko wrote:Theo tôi biết điều này là không thể, vì DR không hỗ trợ đồ họa trong report.

câu nói này sai, vì datareport vẫn hỗ trợ như thường

theo hướng đề xuất của trieu4978, tìm hiểu thêm thì hi vọng sẽ giải quyết được câu hỏi này: đó là vẽ lại đường line, hộp box theo chiều cao của textbox được chọn (textbox chứa dữ liệu nhiều nhất) rồi cho các control trong section đó thay đổi theo. để tui ngâm thêm 1 chút nữa xem có ứng dụng được cho datareport của vb6 hay không :P

User avatar
Kasper
Guru
Guru
Posts: 1063
Joined: Fri 16/05/2008 10:54 am
Has thanked: 2 times
Been thanked: 76 times
Contact:

Re: DATA REPORT- rptLine Height=rptTextbox at runtime

Postby Kasper » Mon 05/07/2010 8:14 am

Hôm bữa cũng ngâm cứu cái này nhưng bó tay. Khi ta thay đổi height của rptLine thì section chứa nó sẽ thay đổi theo kể cả những cái được nhân lên. Khi đặt thuộc tính cho rptTextbox là Cangrow = True, tui lợi dụng cái này để set height của rptLine theo height của section khi nó grow, nhưng không được vì khi rpttextbox grow nhưng height của section vẫn như lúc thiết kế. Chắc đành phải chờ cao thủ thôi :D
Lành tợ tòng, ác tợ hoa,
Nhà hòa muôn việc đều nên.


Return to “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Who is online

Users browsing this forum: No registered users and 10 guests