• 预留窗体的问题


    问题描述
    操作路径:
    应收账款->销售订单->销售订单行->库存->预留
    一张销售订单有多行,选中其中一行(不要选的一行,要不然问题看不出来),点击库存->预留.

    做预留动作前的窗体如下图所示:

    如果在预留字段填写1,然后保存,预留界面就会变成下图所示的界面:

    如果看现有量页签就会发现产品已经不是Farseer而是00000002_162了,也就是说在预留窗体中做预留操作后,销售订单行的当前行会跳到第一行,导致预留窗体中的相应数据也被改写成销售订单第一行的物料对应的数据,这样操作起来非常不方便,我觉得这应该算是一个bug。
    原因
    由于每次做预留动作时都会通过调用SalesTable的doRefresh方法刷新SalesTable窗体,在该方法中调用了salesLine_ds.research()方法,该方法会导致excuteQuery()方法的调用,重新查询SalesLine表中的记录,这时当前行会重新定位到第一行。
    解决方法
    在调用salesLine_ds.research()方法前记住当前行,在重新查询后定位到原来那一行。将代码修改如下:
    void doRefresh()
    {
        
    //Farseer Begin
        SalesLine origSalesLine;
        
    //Farseer End
        ;
        salesTable_ds.reread();
        salesTable_ds.refresh();

        
    //Farseer Begin
        origSalesLine.RecId = salesLine.RecId;
        
    //Farseer End
        
        salesLine_ds.research();
        
        
    //Farseer Begin
        salesLine_ds.findRecord(origSalesLine);
        
    //Farseer End
        interCompanyPurchSalesReference_ds.executeQuery();
    }



  • 相关阅读:
    redisTemplate
    HttpURLConnection下载文件流
    Quartz集成springMVC 的方案二(持久化任务、集群和分布式)
    https请求
    将一个 JavaBean 对象转化为一个 Map
    Redis实现简单消息队列
    Spring Boot RestTemplate文件上传
    获取java栈异常
    获取 *.properties配置文件内容
    java格式化json串
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/806236.html
Copyright © 2020-2023  润新知