Posts Tagged tricks
Một vài mẹo nhỏ trong InfoPath 2007
Bài viết này xem như một chút thư giãn trước khi tiếp tục phần 3 của loạt bài “Tìm hiểu về HTML5″!
Vì sao lại là 2007?
InfoPath 2007 ra đời đã lâu, và hiện nay đã có phiên bản 2010 với nhiều tính năng mới. Tuy nhiên không phải ai cũng có điều kiện để chạy theo công nghệ, và một bộ phận lớn các nhà phát triển vẫn đang làm việc với InfoPath 2007. Bài viết này kết hợp những kiến thức thu thập được và kinh nghiệm thực tiễn của tác giả trong thời gian làm việc với InfoPath 2007.
I. Mô phỏng tab control trong form InfoPath:
InfoPath 2007 không cung cấp tab control. Nhưng bạn không cần phải quá lo lắng khi muốn sử dụng tính năng này, bởi chúng có thể được mô phỏng dễ dàng sử dụng các view và button. Các bước thực hiện như sau:
1. Tạo các view cần thiết: mỗi view tương ứng với một tab. Giả sử bạn cần hai tab, bạn sẽ phải tạo hai view riêng biệt. Để tạo view, trong Task Pane, click chọn View -> Add a New View -> Nhập tên cho view mới -> OK.
2. Trong mỗi view, insert một bảng có kích thước 2 x 1 (2 dòng và 1 cột). Dòng đầu tiên sẽ dùng để đặt các tab và dòng thứ hai là nội dung của view. Right click dòng thứ nhất và chọn Split Cell. Trong ô Number of Columns, điền số cột tương ứng với số tab muốn có.
3. Insert các button vào trong các ô này. Để trông giống tab hơn, chọn tất cả các button -> Borders and Shading, trong tab Borders chọn None, trong tab Shading chọn No Color. Sau đó thêm border cho table.
4. Việc cuối cùng là thêm rule để switch giữa các view khi người dùng click vào button. Double click button -> click Rules. Trong hộ thoại Rules, click Add. Nhập tên rule vào khung Name. Nhấn Add Action…, chọn Switch View trong combobox Action và chọn view muốn chuyển tới ở khung bên dưới. Nhấn OK để đóng các hộp thoại đang mở. Lặp lại các bước tương tự cho tất cả các button.
II. Giới hạn số item tối đa của Repeating Section:
Repeating Section là một tính năng tiện lợi cho phép người dùng dễ dàng thêm một lượng tùy ý các item (chẳng hạn trong một form hóa đơn có thể sử dụng repeating section để điền thông tin của từng mặt hàng trong hóa đơn đó). Tuy nhiên trong nhiều trường hợp, chúng ta cần phải giới hạn số item tối đa cho phép trong một repeating section. Mặc dù điều này không được hỗ trợ trong InfoPath 2007, ta vẫn có thể thực hiện bằng cách thay đổi trực tiếp file schema của form. Cách thực hiện:
1. Thiết kế form với InfoPath 2007, sau đó lưu lại form template.
2. Form template sẽ được lưu ở định dạng XSN. Đây thực chất là một file cab. Đổi tên file .xsn lại thành đuôi .cab và extract nó. Tìm file myschema.xsd và edit nó bằng notepad hoặc một trình soạn thảo văn bản khác.
3. Trong file myschema.xsd, xác định element định nghĩa schema cho repeating section. Element đó thường có dạng như sau:
<xsd:element ref=”my:RepeatingSectionName” minOccurs=”0″ maxOccurs=”unbound”/>
4. Thay đổi giá trị của maxOccurs sang giá trị mong muốn (vd bạn muốn giới hạn 4 item thì thay vào giá trị 4), lưu và đóng file, sau đó đóng gói các file vừa extract vào trong 1 file cab như trước (sử dụng lệnh MakeCab trong Cmd), rồi đổi tên lại thành file .xsn
Thế là xong! Kể từ nay, mỗi khi user nhập quá số item cho phép, họ sẽ gặp phải thông báo lỗi sau:
InfoPath cannot insert the section or row because of an error



