1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

帖子
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 423|回复: 15

[讨论] 订单项目的开发

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-3-24 16:47 | 显示全部楼层 |阅读模式
本帖最后由 孙森峰 于 2025-3-26 05:09 编辑

大神们,我准备做一个订单项目,具有可扩展性

请帮忙!
(附件将后缀.zip去掉即可)


首先定义一个类Order,这是项目的核心

class Order {
    // 配置字段映射和常量
    static CONFIG = {
        fieldMapping: {          // 字段映射表 (参数名 -> 类属性名)
            totalValue: 'total'  // 示例:将参数中的 totalValue 映射到类的 total 属性
        },
        constants: {             // 常量配置
            status: 'pending'    // 示例:默认订单状态为 pending
        }
    };

    constructor(params = {}) {
        const { fieldMapping, constants } = Order.CONFIG;

        // 处理基础参数及默认值
        const {
                id = 1,
                saleId = null,
                customer = null,
                items = [],
//         ...restParams
                         orderId = null,
                         orderDate = null,
                         promisedBy = null
        } = params;

        // 初始化基础属性
        this.id = id;
        this.orderId = orderId;
        this.customer = customer;
        this.items = [...items];  // 防御性拷贝避免外部引用

        // 合并剩余参数(低优先级)
        Object.assign(this, {orderId, orderDate, promisedBy});

        // 处理字段映射(中优先级,覆盖直接赋值)
        Object.entries(fieldMapping).forEach(([paramKey, classKey]) => {
            if (paramKey in params) {
                this[classKey] = params[paramKey];
            }
        });

        // 注入常量配置(最高优先级,不可被覆盖)
        Object.entries(constants).forEach(([key, value]) => {
            this[key] = value;
        });
    }

    /**
     * 添加订单项
     * @param {Object} item - 订单项对象
     */
    itemAdd(item) {
        this.items.push(item);
        console.log(`Item added: ${JSON.stringify(item)}`);
    }

    /**
     * 删除订单项
     * @param {string|Object} item - 订单项ID或对象
     */
    itemDelete(item) {
        const targetId = typeof item === 'string' ? item : item?.id;
        const index = this.items.findIndex(i => i.id === targetId);
        if (index !== -1) {
            const [deleted] = this.items.splice(index, 1);
            console.log(`Item deleted: ${JSON.stringify(deleted)}`);
        }
    }
}




补充内容 (2025-4-11 18:45):
2025-4-11 : V0.41版本

补充内容 (2025-4-11 21:53):
2025-4-11: V0.42版本 扩展订单项目以及明细
项目主题具有良好的可扩展性

补充内容 (2025-4-13 21:31):
2025-4-13:V0.5版本
可以选择商品

补充内容 (2025-4-14 17:36):
2025-4-14: V0.52
增加右键功能,展开类别选择区域。保存时隐藏类别选择区域

补充内容 (2025-4-15 16:26):
2025-4-15:V0.6
新增商品表货号列右键事件,计算货号

项目框架基本完善,后期会做一些优化。请老师们多提意见

QCF.zip

14.98 KB, 下载次数: 7

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-24 16:48 | 显示全部楼层
本帖最后由 孙森峰 于 2025-3-26 05:07 编辑

这里将陆续上传完善的项目
1)能够从订单输入表获取数据

image.png


2)能够写入到订单表中
image.png




3) 实现明细的保存
image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-28 23:31 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-28 23:34 | 显示全部楼层
本帖最后由 孙森峰 于 2025-3-30 20:14 编辑

实现了从订单表读取


实现了从订单明细表读取

QCF.2.zip

15.27 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-31 16:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 孙森峰 于 2025-3-31 21:40 编辑

5. 实现了订单输入界面的订单内容填写。这个方法的目的是要在查找订单时刷新此界面的内容


6. 增加了保存和查找两个菜单命令

QCF.4.zip

15.94 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-4-3 10:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
7.增加了菜单命令 新建,下一个功能:菜单命令删除

QCF.5.zip

16.19 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-4-3 12:53 | 显示全部楼层
基本功能框架已经建立,版本V0.1
请老师们指正,并给个改进方向
image.png

QCF V0.1.zip

17.53 KB, 下载次数: 6

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-4-5 07:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
新增加客户表

QCF V0.11.zip

18.41 KB, 下载次数: 1

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-4-6 18:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
新增加了商品表,版本号V0.2
可以模糊输入商品名称

QCF V0.2.zip

23.29 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-4-9 22:29 | 显示全部楼层
细节完善版本,版本号V0.3
1)增加订单类方法calcTotalValue(),能正确填写订单表的总金额
2)修改了没有保存备注信息的BUG
3) 当输入新产品后,由于订单编码的改变将添加:序号公式,金额公式

QCF V0.3.zip

24.36 KB, 下载次数: 2

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-4-16 07:04 , Processed in 0.031731 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表