ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] WPS JSA 类示例

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-11-1 16:00 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
/*01234567890123456789012345678901234567890123456789012345678901234567890123456789
* 合同主体类
* 时间: 2022/10/24
*********************************************************************************/

class Order{
        constructor(id,orderId,customer,totalValue,approvalPerson,operator,receiveSample,
                receiveDate,reportSending,paymentTerm,invoiceDate,paymentDate,reportDate,note){
                this.id = id;                                                                //右上角序号
                this.orderId = orderId;               
                this.customer = customer;
                this.totalValue = totalValue;
                this.approvalPerson = approvalPerson;
                this.operator = operator;               
                this.receiveSample = receiveSample;
                this.receiveDate = receiveDate;
                this.reportSending = reportSending;
                this.paymentTerm = paymentTerm;
                this.invoiceDate = invoiceDate;
                this.paymentDate = paymentDate;
                this.reportDate = reportDate;
                this.note=note;
        }
       
        newContents() { //填写订单表目录
                const orderContentsSheet=Sheets(OrderContentsStr);
                var i = 3;
//                查找序号,如果找到就修改,没有找到就在最上边插入新行
                while(orderContentsSheet.Cells(i,1) != "[END]") {
                        if(orderContentsSheet.Cells(i,1) == this.id) {
                                var exist=true;
                                break;
                        }
                        i++;
                };
                if(!exist) {
                        i = 3;
                        orderContentsSheet.Rows("3:3").Insert(xlShiftDown, undefined);
                }
                orderContentsSheet.Cells(i,1).Value2 = this.id;
                orderContentsSheet.Cells(i,2).Value2 = this.orderId;               
                orderContentsSheet.Cells(i,3.).Value2 = this.customer;
                orderContentsSheet.Cells(i,4).Value2 = this.totalValue;
                orderContentsSheet.Cells(i,5).Value2 = this.approvalPerson;
                orderContentsSheet.Cells(i,6).Value2 = this.operator;
                orderContentsSheet.Cells(i,7).Value2 = this.receiveSample;
                orderContentsSheet.Cells(i,8).Value2 = this.receiveDate;
                orderContentsSheet.Cells(i,9).Value2 = this.reportSending;
                orderContentsSheet.Cells(i,10).Value2 = this.paymentTerm;
                orderContentsSheet.Cells(i,11).Value2 = this.invoiceDate;
                orderContentsSheet.Cells(i,12).Value2 = this.paymentDate;
                orderContentsSheet.Cells(i,13).Value2 = this.reportDate;
                orderContentsSheet.Cells(i,14).Value2 = this.note;
        }
       
        newItems() { //填写合同明细表
                const orderItemsSheet = Sheets(OrderItemsStr);
                let orderIdRange = orderItemsSheet.Range("$A:$A");
//                删除已有的相同订单号的行
                do {
                        var orderIdCell = orderIdRange.Find(this.orderId);
                        if(orderIdCell != null){
                                orderIdCell.EntireRow.Delete();
                        }
                }while(orderIdCell != null);
//                写入订单明细工作表
                for(let i = 0;i < this.items.length;i++){
                        orderItemsSheet.Rows("2:2").Insert(xlShiftDown, undefined);
                        for(let j = 0;j < this.items[i].length;j++){
                                orderItemsSheet.Cells(2,1).Value2 = this.orderId;
                                orderItemsSheet.Cells(2,j+2).Value2 = this.items[i][j];
                        }
                }
        }
       
        delete() { //删除合同
                const orderContentsSheet=Sheets(OrderContentsStr);
                var i=3;
//                查找目录序号,如果找到就删除
                while(orderContentsSheet.Cells(i,1) != "[END]") {
                        if(orderContentsSheet.Cells(i,1) == this.id) {
                                let r = String(i) + ":" + String(i);
                                orderContentsSheet.Rows(r).Delete();
                                break;
                        }
                        i++;
                };       
//                查找明细订单号,删除记录
                const orderItemsSheet = Sheets(OrderItemsStr);
                let orderIdRange = orderItemsSheet.Range("$A:$A");
                if(this.orderId != undefined) {               
                        do {
                                var orderIdCell = orderIdRange.Find(this.orderId);
                                if(orderIdCell != null){
                                        orderIdCell.EntireRow.Delete();
                                }
                        }while(orderIdCell != null);
                }               
        }
}       



评分

2

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-21 22:54 , Processed in 0.027017 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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