1. Các bước để tạo stored procedure
B1: Select * From Reports..L_DinhDangExcel Order By STT ( bảng này là bảng tập hợp tất cả các định dạng bắt buộc phải có ).
B2: Nếu cần chỉnh sửa lại độ rộng cột, tạo bảng có 2 cột tên [Index] và [ColumnWidth] (tên cột phải chính xác). Trong đó: + [Index]: thứ tự cột muốn đặt lại độ rộng trên file excel (bắt đầu từ 1) + [ColumnWidth]: độ rộng cột + Ví dụ: CREATE TABLE #DoRongCot ( [Index] INT, [ColumnWidth] INT ) INSERT INTO #DoRongCot VALUES ( 1, 20 ), (4, 20), (5, 5).
B3: Trong mỗi bảng Nội dung nếu cần:
– Định dạng cho dòng: Tạo thêm cột StyleSheet và chọn một kiểu trong bảng Reports..L_DinhDangExcel (là cột STT).
– Merge ngang (merge nhiều cột): Tạo thêm 3 cột sau:
+ IsMerge (có merge dòng hay không).
+ StartCell (Cột bắt đầu merge. Ví dụ: ‘A,C’).
+ EndCell (Cột kết thúc merge. Ví dụ: ‘B,D’).
– Định dạng riêng cho từng cell: Tạo thêm cột DinhDangCell, giá trị của cột có dạng [Tên cột chứa cell trên excel]-[Kiểu trong bảng L_DinhDangExcel (là cột STT)]. Ví dụ: ‘A-2,B-3’.
– Merge dọc (merge nhiều dòng): Tạo thêm cột VerticalMerge. Giá trị của cột là số dòng muốn merge thêm vào. Khi tạo cột này vẩn giữ 3 cột IsMerge, StartCell, EndCell. Ví dụ nếu ta có: ‘A,B’ As StartCell, ‘A,B’ As EndCell, ‘2,2’ As VerticalMerge. Số lượng giá trị trong VerticalMerge phải bằng số lượng cột cần merge trong StartCell, EndCell.
– Chỉnh chiều cao dòng: Tạo thêm cột RowHeight và thêm giá trị cho nó. – Cho vào Sheet cụ thề: Thêm cột có tên là Sheet. Có giá trị là string. Ví dụ: ‘1,3’ thì dòng nội dung sẽ xuất hiện trên Sheet 1 và 3.
– Chỉnh khổ giấy Landscape khi in thì Select ‘Landscape’ trước khi Select bảng L_DinhDangExcel. Trên code C# cho bảng 0 tên Lanscape và bảng 1 tên Format.
– Thục đầu dòng: Sử dụng cột “Indent” trong bảng L_DinhDangExcel.
2. Các bước để tạo solution C#
B1: Tạo 1 class library có các thành phần như sau:

B2: Viết nội dung cho class
– Kế thừa ServerShared.IReport.
– Load lên bảng “Select * From Reports..DinhDangExcel ” và đặt tên bảng là “Format”. Ngoài ra không đặt tên cho bảng nào nữa hết.
– Mở file excel template.
– Đổ nội dung excel vào.

3. Các lưu ý
Nếu thêm dòng vào bảng L_DinhDangExcel thì để ý STT mới thêm phải lớn hơn STT cũ lớn nhất trong bảng 1 đơn vị.
Sau khi hoàn thành việc thiết kế và binding data. Tiếp theo sẽ tạo dữ liệu trên table.
- Tạo 1 record trong table
Reports..L_Report
, trong table này có 2 column name cần lưu ý làProgID
vàDataProc
+ ProgID
: là tên project của report, kèm theo tên file template của report
+ DataProc
: tên stored procedure xử lý của report
- Tạo record(s) trong table
Reports..L_ReportParams
, trong table này cần lưu ý những column name sau- Type : quy định control type để hiển thị trên phần mềm, theo như hình minh họa bên dưới, group box “Tham số” để nhập các tham số. Nếu Type = “Dropdown” thì control trên màn hình sẽ là lookupedit, tương tự nếu Type = “DateFrom” thì control sẽ là DateTimeEdit
- Options: là tên Stored procedure để load dữ liệu vào control mà Type quy định

