zoukankan      html  css  js  c++  java
  • 预留窗体的问题

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

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

    如果在预留字段填写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();
    }



  • 相关阅读:
    入侵特斯拉——智能汽车安全性分析
    D-Link系列路由器漏洞挖掘入门
    工控安全入门之 Ethernet/IP
    浅谈JS数据类型存储问题
    【备忘】12306购票必杀技
    制作炫酷的专题页面
    杂记(下)
    杂记(上)
    跨域请求解决方案
    好用的表单验证插件
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/806236.html
Copyright © 2011-2022 走看看