Bắt đầu với USPCaller và Wizard
Phạm vi áp dụng
✅ Bravo 8 · ✅ Bravo 10
Hai loại màn hình chạy thủ tục theo bước:
| Màn hình | Mục đích |
|---|---|
| USPCaller | Thực thi một lệnh với server — 1 bước chạy |
| Wizard | Thực thi danh sách các bước để giải quyết một bài toán |
I. USPCaller
Đặc điểm
Về cơ sở dữ liệu: USPCaller chỉ có 1 bước chạy nên vẫn phải khai báo 1 dòng trong B00Command để định nghĩa chức năng. Tuy nhiên thủ tục thực hiện không khai báo trong B00Command mà khai báo trong DataSource.
Về Validator: Hỗ trợ kiểm tra trực tiếp ở layout khi thực hiện chức năng — VD kiểm tra đơn vị tổng hợp, dữ liệu trong thời gian khóa… thay vì phải kiểm tra ở thủ tục như trước.
Giao diện — 3 bước rõ ràng
| Bước | Nội dung |
|---|---|
| 1. Nhập tham số | Hiển thị các tham số do người dùng tự gõ vào |
| 2. Chi tiết | Show chi tiết thời gian thực hiện, các bước trong toàn bộ chức năng (thực hiện thủ tục nào, cập nhật trigger nào…) |
| 3. Kết quả | Show kết quả chi tiết của chức năng |
DataSource
Các thẻ khai báo tương tự Editor. Chú ý:
Command
Khai báo thủ tục được thực hiện khi chạy chức năng (thay cho cột CtorArg1 trong B00Command của bản B7).
<Command>Ten_thu_tuc</Command>Tham số tự khớp tên
Các tham số truyền vào thủ tục khai báo ở cột
CtorArgstrongB00Commandvà các giá trị khai báo layout — chương trình tự hiểu mặc định.VD: thủ tục có tham số
@_DocDate1→ chương trình tự lấy tham sốDocDate1.
Trường hợp tham số là chuỗi XML:
| Cách | Cú pháp | Kết quả |
|---|---|---|
| Chỉ định tên bảng và cột | IdList=@vB20Item.Id | Chỉ truyền cột được chỉ định |
| Truyền toàn bộ | IdList=@* | Dữ liệu có thể gồm cả bảng mẹ và bảng con — người dùng tự xác định lấy từ bảng nào |
<UpdateSeriesItems>
<zCtorArgs>GetSelectedData=*;IdList=@vB20Item.Id;AutoRun=False;</zCtorArgs>
</UpdateSeriesItems>Validators
Kiểm tra tính hợp lệ trước khi cho thực hiện chức năng — thường dùng để kiểm tra thời gian hợp lệ, kiểm tra tham số nhập ở layout.
Layout — pannelParameters
| Thẻ | Nội dung |
|---|---|
autoActionWhenCompleted | Hành động tiếp theo khi chức năng hoàn thành: • None — (mặc định) không làm gì• CloseForm — đóng chức năng• ExitProgram — thoát chương trình• ShutDownComputer — tắt máy tính |
bAutoAddPrintSettings | Hiển thị định dạng in cho màn hình trả về kết quả. Mặc định False |
zCompletedText | Câu thông báo khi thành công, thay cho “Đã thực hiện thành công” |
zUncompletedText | Câu thông báo khi có lỗi, thay cho “Có lỗi trong khi thực hiện” |
| verifyWorkingData | Khóa form khi đổi năm / đơn vị làm việc |
Layout — pannelReporter
Khai báo hiển thị màn hình Reporter kết quả ở “bước 3 Kết quả”. Nguyên tắc và cách khai báo tương tự Bắt đầu với Reporter.
stepContainer
Chỉ định Text, Caption cho từng bước trong màn hình USPCaller.
<stepContainer>
<pageStart>
<Text>Các tham số tính giá vốn</Text>
<Caption>Bước nhập tham số</Caption>
</pageStart>
<pageProgress>...</pageProgress>
<pageEnd>...</pageEnd>
</stepContainer>II. Wizard
Đặc điểm
Về cơ sở dữ liệu: Chỉ cần khai báo 1 dòng trong B00Command để định nghĩa chức năng — các bước thực hiện không cần khai báo trong B00Command như B7.
Thay đổi lớn nhất của Wizard
Dữ liệu kế thừa ở các bước có thể được khai báo chỉ đích danh từ BẤT KỲ bước nào trước đấy — mà không phải nhất định là kết quả của bước ngay trước đấy như B7.
⚠️ Lưu ý về biểu thức
Wizard KHÔNG dùng
expr="True"và{=...}
navigator — khai báo các bước
Mỗi bước định nghĩa trong thẻ Items.
Tên bước = tên SubLayout
Tên của mỗi bước (Item) thường chính là tên của SubLayout khai báo tương ứng với bước đó.
| Version | Hỗ trợ |
|---|---|
| 4.5.8.0 | Khai báo zCustomConnectionName và nCommandTimeout cho từng bước dạng Command |
Bốn kiểu bước
1. Thực hiện một thủ tục lưu
Trả về kết quả là đầu vào cho các bước tiếp theo.
<AccountList>
<Command>usp_sys_ChenhLechTyGiaCuoiKy</Command>
<Visible>False</Visible>
<Parameters>
<DocDate2>DocDate2</DocDate2>
<TransCode>TransCode</TransCode>
<BranchCode>Branch()</BranchCode>
<Year>FiscalYear()</Year>
<LangId>LANGID()</LangId>
</Parameters>
</AccountList>Quy tắc đặt tên bảng kết quả
Kết quả trả về của thủ tục ở bước
Xcó tên tương ứng:
X— bảng trả về đầu tiênX1— bảng trả về thứ 2… và tiếp tục
2. Bước là màn hình Editor
<CollectExpensesEdit>
<Assembly>Bravo.DataEditor</Assembly>
<ClassName>DataEditor</ClassName>
<zCtorArgs>GetDataSet=CollectExpensesGetData;CustomDataSource=True;</zCtorArgs>
<Text>
<Vietnamese>Xem và sửa dở dang cuối kỳ</Vietnamese>
<English>Adjust unfinished factor</English>
</Text>
</CollectExpensesEdit>
GetDataSet=CollectExpensesGetData→ chỉ đích danh dữ liệu hiển thị ở bước này là kết quả của bướcCollectExpensesGetData.
3. Bước là màn hình Reporter
<CalculateProducts>
<Assembly>Bravo.Reporter</Assembly>
<ClassName>Reporter</ClassName>
<zCtorArgs expr="True">DocDate='{=DocDate}';WorkProcessCode='{=WorkProcessCode}';
FiscalYear='{=FiscalYear}';BranchCode='{=BranchCode}';AutoRun=True;</zCtorArgs>
<Text>
<Vietnamese>Xác định thành phẩm</Vietnamese>
</Text>
</CalculateProducts>4. Bước là màn hình Explorer
<ResultReview>
<Assembly>Bravo.DataExplorer</Assembly>
<ClassName>DataExplorer</ClassName>
<zCtorArgs expr="True">FilterKey=WorkProcessCode='{=WorkProcessCode}' AND
Year=YEAR('{=DocDate}') AND Month=MONTH('{=DocDate}') AND
FiscalYear='{=FiscalYear}';AutoSearch=True;</zCtorArgs>
<Text>
<Vietnamese>Kết quả tính giá thành</Vietnamese>
</Text>
</ResultReview>bValidateErrorToContinue
Cho phép sang bước tiếp theo nếu thực hiện không có lỗi.
| Mặc định | False |
Điều hướng
| Version | Hỗ trợ |
|---|---|
| V4.1.2.1 | Command Backward / Forward (quay lại / tiếp tục bước) và Refresh (F5) để thực hiện lại một bước bất kỳ |
| Ver 4.1.7.0 | Khi quay lại bước trước bằng Esc hoặc Backward sẽ chỉ quay lại các bước đã được thực hiện |
Lưu layout trong Wizard
Nếu đứng ở màn hình một bước và sửa đổi layout rồi lưu → không hiển thị biểu tượng lưu tạm và không lưu thật được. Phải quay ra màn hình đầu tiên để lưu thật.
Liên quan
Bắt đầu với Reporter · Bắt đầu với Editor · Bắt đầu với Explorer · zSubLayout · MainWindow · Thẻ khác của Reporter