• 批量更新记录


    界面上通过按钮批量更新数据很常见,列个更新的例子,方便查阅。

    销售订单界面,批量更新行地址:

    1.定义继承Runbase的类,使用框架更方便

    class UpdateSalesLineAddress extends RunBase
    {
        DeliveryAddress       deliveryAddress;
        SalesLine               salesLine;
        DialogField             d_deliveryAddress;
    }

    2.Dilog界面设计:

        public Object dialog()
        {
            Dialog dialog = super();
    
            dialog.caption("标题");
    
            d_deliveryAddress = dialog.addField(extendedTypeStr(DeliveryAddress));
            //d_deliveryAddress = dialog.addFieldValue(extendedTypeStr(DeliveryAddress),salesLine.DeliveryAddress);
          //d_status = dialog.AddField(Enumstr(SalesStatus));
            return dialog;
        }

    3.获取Dialog界面中需要更新的值:

      public boolean getFromDialog()
        {
            boolean ret;
    
            ret = super();
    
            deliveryAddress = d_deliveryAddress.value();
    
            return ret;
        }

    4.主方法中进行更新

    上次上传时可能部分代码丢失了,这里补段代码,写法类似。

     public   static void main(Args _args)
        {
            FormDataSource                  formDataSource;
            SalesSettleTable            	salesSettleTableloc;
            CustPackingSlipJour             custpackingSlipJour;
            CustPackingSlipTrans            custpackingSlipTrans;
            ConfirmGenerateSettlement       salesSettlement  = new ConfirmGenerateSettlement();
    
            if(!_args)
            {
                throw Error("@SYS22539");
            }
    
            formDataSource = _args.caller().dataSource();
             
            ttsbegin;
          
            if(formDataSource)
            {
                salesSettleTableloc = salesSettlement.insertSettlement();
    
                if(_args.dataset() == tableNum(CustPackingSlipJour))
                {
                    for(custpackingSlipJour = formDataSource.getFirst(true) ? formDataSource.getFirst(true) : formDataSource.cursor();
                        custpackingSlipJour;
                        custpackingSlipJour = formDataSource.getNext())
                    {
                        while select custpackingSlipTrans
                            where custpackingSlipTrans.PackingSlipId == custpackingSlipJour.PackingSlipId
                            &&    custpackingSlipTrans.SalesId       == custpackingSlipJour.SalesId
                            &&    custpackingSlipTrans.DeliveryDate  == custpackingSlipJour.DeliveryDate                    
                        {
                            salesSettlement.insertToSalesParmLine(custpackingSlipTrans);
                        }
    
                        custpackingSlipJour.selectForUpdate(true);
                        custpackingSlipJour.Settled = NoYes::Yes;
                        custpackingSlipJour.doUpdate();
                    }
                }                       
            }       
            ttscommit;      
        }
    

      

  • 相关阅读:
    MongoDB--CSharp Driver Quickstart .
    关于 IIS7.0下文件写入无权限的解决办法
    Android和WCF通信
    要想有什么样的成就就要有什么样的眼光
    DateTime.Now.ToString() 用法
    机械硬盘怎么看是否4k对齐
    【.Net】在WinForm中选择本地文件
    【.Net】C#获取Windows系统特殊文件夹的路径
    【Python】Python网络编程
    【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
  • 原文地址:https://www.cnblogs.com/sunny-technology/p/9339085.html
Copyright © 2020-2023  润新知