Oracle APEX 如何在交互式网格(Interactive Grid)行中添加文件浏览器
交互式网格(Interactive Grid)文件上传功能实现方案
方案1:直接在交互式网格内配置文件上传列
该需求可以直接实现,操作步骤如下:
- 首先调整你当前的查询SQL,补充文档类型主键列(交互式网格做行级DML操作必须依赖唯一主键),修改后的SQL参考:
select dt.id as DOC_TIPO_ID, descripcion, alias from documento_tipo dt where requerido = 'S' union all select dt.id as DOC_TIPO_ID, dt.descripcion, dt.alias from documento_tipo_ramo dtr join documento_tipo dt on dtr.documento_tipo = dt.id join cia_riesgo ramo on dtr.ramo = ramo.id join riesgo r on ramo.riesgo = r.id where r.id = :P15_ID
- 进入交互式网格的列编辑界面,新增一个虚拟列,字段类型选择文件上传
- 配置文件上传列的存储规则:指定你预先准备的文件存储表、对应BLOB字段、文件名字段、MIME类型字段,关联条件设置为当前行的
DOC_TIPO_ID、页面项:P15_ID和存储表的对应关联字段匹配 - 开启交互式网格的行级编辑权限,保存配置后即可实现每行独立上传文件,上传的文件会自动绑定对应行的配置数据
方案2:替代实现方案(适配配置受限场景)
如果交互式网格内置的文件上传列无法满足你的权限或业务逻辑要求,可以用更灵活的方案:
- 给交互式网格新增一个按钮列,按钮文本设置为「上传文件」,设置按钮点击触发动态动作,弹出模态框页面
- 模态框页面接收两个传参:当前行的
DOC_TIPO_ID、页面项:P15_ID,模态框内单独放置原生文件上传组件,配置文件存储逻辑 - 可额外在交互式网格中增加一个展示列,查询显示对应行已上传的文件名,还可扩展预览、下载功能
注意:两种方案都需要提前创建好文件存储表,表中需包含关联字段(文档类型ID、风险ID)和BLOB、文件名、MIME类型等必要存储字段,确保上传的文件可以和配置表的行一一对应。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

