Oracle APEX餐厅应用:实现关联菜品表的点餐按钮及账单添加功能
Oracle APEX餐厅应用需求实现方案
这个需求完全可以在Oracle APEX中实现,以下是具体操作步骤:
1. 准备数据库表
确保已创建两个核心业务表:
items:存储菜品基础信息,需包含item_id(主键)、item_name(菜品名称)、price(单价)字段bill_preview:存储临时账单数据,建议包含bill_preview_id(主键,可选自增)、item_id、item_name、price、quantity(默认值1)、session_id(用于隔离不同用户的账单数据)字段
2. 创建菜品按钮展示区域
在APEX页面中添加按钮区域,采用卡片/按钮组布局展示菜品:
- 每个菜品对应一个按钮,按钮标题绑定
items表字段,动态显示为item_name || ' ¥' || price(根据实际货币符号调整) - 为每个按钮设置动态动作,触发条件为「点击」
3. 配置按钮的点击逻辑
点击按钮时依次执行以下动作:
3.1 插入数据到临时账单表
添加「执行PL/SQL代码」动作,代码示例:
INSERT INTO bill_preview (item_id, item_name, price, quantity, session_id) VALUES (:P_ITEM_ID, :P_ITEM_NAME, :P_ITEM_PRICE, 1, V('APP_SESSION'));
:P_ITEM_ID、:P_ITEM_NAME、:P_ITEM_PRICE为按钮绑定的items表字段值,需在按钮属性中设置为动态取值V('APP_SESSION')获取当前用户的APEX会话ID,避免不同用户的账单数据混淆
3.2 刷新账单预览区域
添加「刷新区域」动作,选择账单预览表所在的页面区域,实现点击后实时更新账单内容
4. 构建账单预览表
在页面中添加交互式报表或经典报表,数据源选择bill_preview表,并添加筛选条件session_id = V('APP_SESSION'),仅展示当前用户的账单数据:
- 可添加「删除」按钮,允许用户移除误选菜品
- 配置汇总行,用
SUM(price * quantity)计算账单总价
5. 配置账单打印功能
给账单预览区域添加打印按钮:
- 选择APEX自带的「打印」动作,设置输出格式为PDF
- 可自定义打印模板,添加餐厅标识、账单标题等内容
内容的提问来源于stack exchange,提问作者Vihen Theekshadha
相关产品推荐
相关产品推荐

