/** * 表单带网格明细保存,页面模板 * @param {*} mainDataset 保存数据集,命名规范 ds_[数组下标]_[对话框id] * @param {*} conf 组件定义配置项 * @returns */ import { StringUtil } from "@birt/funclib/StringUtil.js"; import { formStyle01 } from "@birt/templates/compose/data-list/form-style-01"; import { editTable } from "../compose/table/edit-table" export function newInstance(mainDataset, subDataset, conf) { const dlgId = StringUtil.randomString(6); // 设置数据集id (加上随机数,下推映射不到目标数据集) // mainDataset.controlId += "_" + dlgId; // subDataset.controlId += "_sub_" + dlgId // 表单操作工具条 var hcFormToolbar = false; if (conf.hcFormToolbar) { hcFormToolbar = { controlName: "HcFormToolbar", controlId: "HcFormToolbar_" + dlgId, dataset: mainDataset.controlId, layout: ["cancel", "save"], size: "small", addOne: "true", style: "padding:15px;text-align:right;" } // 应用工具条个性化配置 Object.assign(hcFormToolbar, conf.hcFormToolbar || {}); } // 标题 var hcTitle = false; if (conf.hcTitle) { hcTitle = { controlName: "HcTextLabel", controlId: "HcTextLabel_" + dlgId } // 应用标题个性化配置 Object.assign(hcTitle, conf.hcTitle || {}); } // 表单内容 var hcForm = false; if (conf.hcForm) { hcForm = { controlName: "HcForm", controlId: "HcForm_" + dlgId, dataset: mainDataset.controlId, labelWidth: "80px", rules: { }, children: [], }; // 应用表单个性化配置 Object.assign(hcForm, conf.hcForm || {}); } // 表单网格明细 if (!conf.hcTable) { conf.hcTable = {} } if (!(conf.hcTable.isEdit === false)) { conf.hcTable.isEdit = true; } var hcTable = editTable(dlgId, subDataset.controlId, conf); // 网格明细详情内容 var hcTableDetailForm = false; if (hcTable.detailForm) { hcTableDetailForm = { controlName: "HcForm", controlId: "HcForm_sub_" + dlgId, dataset: subDataset.controlId, // labelWidth: "80px", children: [ formStyle01( hcTable.detailForm.form, hcTable.detailForm.cols )], }; // 应用表单个性化配置 // Object.assign(hcTableDetailForm, || {}); } // 系统表单自动填充字段 debugger var hcSysForm = false; if (conf.hcSysForm) { var hcSysForm = { controlName: "HcForm", controlId: "HcForm_sys_" + dlgId, dataset: mainDataset.controlId, labelWidth: "80px", rules: { }, children: [], }; // 应用系统字段表单个性化配置 Object.assign(hcSysForm, conf.hcSysForm || {}); } // 应用报表模型 var birtWorkBook = Object.assign({ controlName: "BirtWorkBook", controlId: "BirtWorkBook_" + dlgId, showToolBar: false, totalPage: 1, renderType: "pages", height: function (parentHeight) { return parentHeight - 150; }, }, conf.birtWorkBook || {}) birtWorkBook.children = [ { controlName: "BirtSheet", controlId: "BirtSheet_" + dlgId, name: "sheet_" + dlgId, pageIndex: 0, dataSets: [mainDataset, subDataset], children: [ { controlName: "BirtFormSheet", controlId: "BirtFormSheet_" + dlgId, children: [] .concat(hcFormToolbar ? hcFormToolbar : []) .concat(hcTitle ? hcTitle : []) .concat(hcForm ? hcForm : []) .concat(hcTable ? hcTable : []) .concat(hcTableDetailForm ? hcTableDetailForm : []) .concat(hcSysForm ? hcSysForm : []) } ] } ]; // 返回布局结构 return birtWorkBook }