Đến nội dung chính
ERP Thực Chiến
Thư viện
Menu

Composite Layout trên Business Central 29, một bộ nhận diện cho mọi chứng từ

Dựng Theme, Header/Footer dùng chung bằng Composite Layout trên Business Central 29: báo giá, xác nhận đơn hàng cùng logo, màu, ngân hàng, đổi một chỗ là đủ.

Composite Layout là cách Business Central 29 tách một mẫu in Word thành ba phần: Body chứa nội dung riêng của từng report, Theme chứa màu, font, kiểu bảng, và Header/Footer chứa logo, thông tin công ty, ngân hàng. BC ghép ba phần lúc in. Theme và Header/Footer gán một lần cho cả công ty, không viết dòng AL nào.

Cùng đơn hàng 101024: bên trái layout Word chuẩn của Business Central, bên phải bộ nhận diện dựng bằng Composite Layout

Ví dụ trong bài là một công ty nội thất văn phòng giả lập tên Minh Long. Mọi bước đã chạy thật trên Business Central online 29.0 tháng 10/2026, với báo giá (report 1304) và xác nhận đơn hàng (report 1305).

Composite Layout giải việc gì#

Mẫu in chuẩn có tiêu đề tiếng Anh, thiếu mã số thuế, mỗi phiếu một kiểu. Trước bản 29, mỗi file Word mang chân trang riêng: đổi tài khoản ngân hàng là mở và upload lại từng file, bộ chứng từ 15 mẫu là 15 lần sửa.

Với Composite Layout, thông tin công ty trên Header/Footer lấy thẳng từ trang Company Information. Đổi ngân hàng hay logo ở đó thì mọi phiếu in ra theo thông tin mới.

Ba phần của một Composite Layout và bản in sau khi Business Central ghép lại

Điều kiện trước khi làm#

  • Business Central online bản 29.0 trở lên.
  • Feature: New Document Report Experience ở trạng thái Enabled trên trang Feature Management. Tính năng tắt thì trường Subtype và menu Composite layout không hiện.
  • Quyền sửa Report Layouts và Company Information.
  • Word desktop hoặc Word for the web. Add-in Business Central cho Word giúp chèn field nhanh hơn nhưng không bắt buộc.

Feature Management: New Document Report Experience đang Enabled cho All Users

Bước 1. Điền Company Information#

Header/Footer đọc thông tin công ty từ trang này nên phải điền trước khi in thử:

Thông tin in raTrường trên Company Information
Tên công tyName
Địa chỉAddress, Address 2, City, Post Code, Country/Region Code
Mã số thuếVAT Registration No.
Hotline, email, websitePhone No., E-Mail, Home Page
Ngân hàng, số tài khoảnBank Name, Bank Account No., Bank Branch No.
LogoPicture (PNG nền trong suốt, ngang khoảng 1.000 điểm ảnh)

Bước 2. Tạo Theme từ theme chuẩn của Microsoft#

Theme là file .dotx. Đừng dựng từ file trắng: theme chuẩn đã có sẵn các style BC dùng (BC Label, BC Number, BC Data Table, BC Totals Table).

  1. Mở Manage themes and header-footer layouts (từ Report Layouts > Composite layout), chọn Default Theme, chọn ... > Actions > Export.
  2. Đổi tên file thành ML-Theme.dotx. Nhấp chuột phải, chọn Open. Nhấp đúp sẽ tạo tài liệu mới từ template chứ không mở chính template.
  3. Gõ tạm một tiêu đề, một nhãn, chèn một bảng 4 x 4 đặt style BC Data Table để thấy kết quả khi chỉnh. Xóa phần này trước khi lưu.

Export theme chuẩn: More options, Actions, Export

Đổi bảng màu#

Vào Design > Colors > Customize Colors..., nhập mã hex cho từng ô rồi lưu bộ màu với tên Minh Long:

MàuMã hexÔ trong bảng màu themeDùng cho
Chữ chính#1F2A37Text/Background - Dark 1Chữ thường
Navy#0B3B5CText/Background - Dark 2Tiêu đề phiếu, hàng tiêu đề bảng, dòng tổng
Nền nhạt#F2F6FALight 2 và Accent 1Dòng xen kẽ của bảng
Đường kẻ#D5DEE8Accent 2Đường kẻ mảnh
Teal#0E7C86Accent 3Nhãn khối: KHÁCH HÀNG, THÔNG TIN ĐƠN HÀNG
Hổ phách#E8A33DAccent 4Điểm nhấn

Hộp thoại Create New Theme Colors: Dark 2 là màu chủ đạo, Accent 4 là màu nhấn

Đổi bảng màu xong nhìn chưa khác mấy, vì theme chuẩn dùng chủ yếu đen và xám. Thay đổi rõ nhất nằm ở bước gắn màu vào style.

Gắn màu vào style chữ và style bảng#

  • Title: cỡ 24, màu Text 2 (navy). Heading 2: màu Accent 3 (teal), tick All caps. Normal: để màu Automatic, chữ tự chuyển trắng khi nằm trên nền tối.
  • Trên Table Design, nhấp chuột phải vào BC Data Table > Modify Table Style, chọn Apply formatting to = Header row, nền navy, chữ Background 1 (trắng). Làm tương tự cho BC Totals Table với Total row.

Luôn chọn màu trong hàng Theme Colors, không chọn Standard Colors hay More Colors. Màu theme đổi theo bảng màu, màu chọn cứng thì không.

Nội dung mẫu sau khi chỉnh theme: tiêu đề navy, nhãn teal, hàng tiêu đề bảng nền navy

Lưu file dạng .dotx, trên trang Manage themes and header-footer layouts chọn New theme, đặt tên, tải file lên. Muốn sửa tiếp thì dùng Replace, mọi phiếu nhận bản mới ở lần in sau.

Header/Footer là file .docx, chỉ dùng vùng đầu trang và chân trang. Thông tin công ty là các ô dữ liệu (content control) gắn với nhóm CompanyMetadata. Bài này sửa từ mẫu External Modern Logo: chọn dòng đó, Export, đổi tên thành ML-HeaderFooter.docx.

Ô dữ liệu chèn bằng XML Mapping Pane trên tab Developer (bật ở File > Options > Customize Ribbon). Ở ô Custom XML Part, chọn dòng:

text
urn:microsoft-dynamics-nav/reports/Tenant_Report_Defaults/2000000001/

Rồi mở cây NavWordReportXmlPart > BCReportInformation > CompanyMetadata.

XML Mapping Pane với nhóm CompanyMetadata của header/footer

Danh sách có hai dòng gần giống nhau. Chọn nhầm dòng businesscentral/internal/extended thì ô vẫn chèn được nhưng in ra trống.

Để chèn mã số thuế: gõ nhãn Mã số thuế: , nhấp chuột phải vào CompanyVATRegistrationNo, chọn Insert Content Control > Plain Text. Tên công ty làm tương tự với CompanyName. Logo đã có sẵn ô hình gắn CompanyLogo; trong Word ô này báo "The picture can't be displayed", khi in BC thay bằng logo thật.

Header sau khi sửa: tên công ty, mã số thuế, ô logo có sẵn

Ở chân trang, xóa các ô ít dùng ở Việt Nam (Company Fax No., Company Registration No., Company Giro No.), gõ nhãn tiếng Việt Hotline:, Ngân hàng:, Số tài khoản:. Nhãn phải gõ tay: các field ...Caption trong CompanyMetadata trả về nhãn tiếng Anh. File có hai bộ header/footer, trang đầu và các trang sau, sửa cả hai nếu chứng từ có thể dài hơn một trang.

Chân trang sau khi sửa: website, hotline, email, ngân hàng, số tài khoản

Lưu và đóng file trong Word rồi mới upload bằng New header/footer. File đang mở thì BC báo File upload failed.

Bước 4. Duyệt và gán cho cả công ty#

Theme và Header/Footer mới ở trạng thái Draft, chưa chọn được khi gán. Chọn từng dòng, ... > Set as Approved.

Sau đó mở Company Information, FastTab Reporting, chọn Default Theme và Default Header/Footer.

FastTab Reporting trên Company Information: theme và header/footer mặc định của công ty

Bước 5. Tạo layout Body cho xác nhận đơn hàng#

Body chỉ chứa nội dung riêng của phiếu: tiêu đề, khách hàng, bảng dòng hàng, tổng tiền, chữ ký. Không đặt logo hay thông tin công ty ở đây.

  1. Report Layouts > New, Report ID = 1305 (báo giá là 1304), Format Options = Word, Subtype = Body, bật Create a Blank Layout from the report object.
  2. Export layout, mở file, gõ tiêu đề XÁC NHẬN ĐƠN HÀNG và các nhãn tiếng Việt.
  3. Trong XML Mapping Pane, chọn urn:microsoft-dynamics-nav/reports/Standard_Sales_Order_Conf/1305/, mở NavWordReportXmlPart > Header, chèn DocumentNo, CustomerAddress1, ShipToAddress2, Totals > TotalAmountIncludingVAT như ở bước 3. Nhấp trái vào field trước rồi mới nhấp phải, nhấp phải ngay thì menu đôi khi không hiện.

Không bọc toàn bộ phần thân trong một repeater Header. BC tự lặp phần thân cho từng chứng từ, bọc thêm thì bản in chỉ còn header và footer.

Bảng dòng hàng lặp theo từng dòng#

Chèn bảng 2 hàng x 5 cột. Hàng 1 là tiêu đề cột. Hàng 2 chèn ItemNo_Line, Description_Line, Quantity_Line, UnitPrice, LineAmount_Line từ nhánh Header > Line. Bôi đen cả hàng 2, nhấp chuột phải vào node Line, chọn Insert Content Control > Repeating. Cuối cùng đặt style BC Data Table để bảng nhận màu của theme.

Hàng 2 đã chèn field và node Line để tạo repeater

Muốn tên hàng dài tự xuống dòng mà bảng không tràn lề: Table Layout > AutoFit > Fixed Column Width, bỏ tick Specify height ở tab Row, và bỏ tick Allow row to break across pages. Phần này là tính năng của Word, dùng được cả ở các bản BC trước 29.

Bản in thật của phần thân: repeater ra đủ 6 dòng, dòng tên hàng dài tự cao lên

Ẩn dòng Giao hàng đến khi trùng địa chỉ khách#

Report 1305 có sẵn field ShowShippingAddress, bằng False khi địa chỉ giao trùng địa chỉ khách. Bôi đen dòng Giao hàng đến bằng chuột, trên tab Business Central của add-in chọn Hide If False, để What to hide = Field, chọn ShowShippingAddress, bấm Insert.

Hộp thoại Hide If False với danh sách field True/False của report 1305

Report 1305 chỉ có ba field True/False: ShowShippingAddress, ShowWorkDescription, PricesIncludingVAT. Ẩn theo điều kiện khác thì cần dev thêm field qua report extension.

Lưu, đóng file, Replace layout, chạy thử với một đơn hàng.

Bước 6. Duyệt layout và cho layout cũ nghỉ#

Từ bản 29, trạng thái layout áp cả cho layout của Microsoft. Layout Retired không còn hiện trong danh sách chọn khi in, người dùng hết in nhầm mẫu cũ.

  1. Chọn layout Body, Layout > Layout Status > Set as Approved, rồi Set as default.
  2. Chọn layout cũ đang mặc định, Layout Status > Set as Retired.

Layout Minh Long là mặc định, layout Word cũ của Microsoft đã Retired

In từ Sales Order bằng Print/Send > Print Confirmation..., trang yêu cầu đã chọn sẵn layout mới.

Muốn một phiếu riêng dùng bộ nhận diện khác thì chọn layout Body đó, Composite layout > Set report theme and header-footer.

Đổi ngân hàng, đổi màu cho cả bộ chứng từ#

Đổi tài khoản nhận tiền: sửa Bank Name, Bank Branch No., Bank Account No. trên Company Information rồi in lại. Báo giá và xác nhận đơn hàng cùng nhận số mới.

Chân trang trước và sau khi đổi ngân hàng, trên xác nhận đơn hàng và báo giá

Đổi màu: thay theme gán cho công ty. Hình dưới cùng phần thân, cùng header/footer, chỉ khác theme. Màu gõ cứng trong file Body (như thẻ tổng giá trị nền navy) thì không đổi theo.

Cùng đơn 101024 với theme Minh Long, Calm và Playful của Microsoft

Thêm báo giá dùng chung nhận diện: làm lại bước 5 với Report ID = 1304. Theme và Header/Footer lấy theo mặc định công ty.

Theme và header/footer được chọn độc lập, cấp nào trống thì xuống cấp dưới:

CấpPhạm viGán ở đâu
1Layout Body này, company hiện tạiReport Layouts > Composite layout > Set report theme and header-footer
2Layout Body này, mọi companyReport defaults for theme and header-footer > Set for one layout
3Mọi layout Body của report, company hiện tạiReport defaults for theme and header-footer > Set for one report
4Mọi layout Body của report, mọi companyNhư cấp 3, để trống Company Name
5Mọi report, company hiện tạiCompany Information > Reporting
6Mọi report, mọi companyReport defaults for theme and header-footer > Add global default

Bản 29 có ba theme (Default Theme, Calm, Playful) và 11 mẫu header/footer, nhưng chưa có layout Body cho báo giá, xác nhận đơn hàng hay hóa đơn. Phần Body vẫn phải tự làm.

Lỗi đã gặp khi làm#

Upload báo UnknownDataBinding, ví dụ:

text
/NavWordReportXmlPart/Header/SellToPhoneNo specifies a path that is not valid

File Word dùng field không có trong report: báo giá 1304 không có SellToPhoneNo như 1305. Xóa ô đó, xem danh sách field bằng Layout > Export report schema.

Replace file header/footer xong, phiếu in mất header/footer. Trên bản 29.0, Replace làm trống phần Header/Footer đã gán riêng cho layout, dù tài liệu Microsoft ghi là giữ nguyên. Vào Set report theme and header-footer chọn lại. Gán ở cấp công ty thì không bị.

Số tiền in 286,172,000. Format Region của khách hàng đang là en-US. Đặt vi-VN trên Customer Card, chứng từ tạo sau đó kế thừa.

Ngày in "20 October 2026". Field ngày dạng chữ in theo ngôn ngữ báo cáo, bản 29 chưa có tiếng Việt. Ghép từ DayNumber, MonthNumber, Year.

Bấm Insert trong Hide If False không phản hồi. Gặp với Word desktop bản 2026, add-in 0.1.173, khi vùng chọn có ô dữ liệu chèn bằng XML Mapping Pane. Chọn lại bằng chuột chỉ phần chữ cần ẩn, hoặc làm trên Word for the web.

Tài liệu gốc của Microsoft: Set up reusable themes and header and footer layouts và Design report layouts with the Business Central Word add-in.

Đọc tiếp