NC 刷新后,停留上一次选择的行(多行)

如图,我点击批量输入后,会调用列表刷新按钮。但数据之前选择的光标会跳到第一行,原先选择的行就不知道是哪行可。图为最终效果


// 批量输入日期后实时刷新 apply update(batch input date) to model(UI)
        getDataManager().refresh();
        // 拿到表头
        nc.ui.pub.beans.UITable htb = listView.getBillListPanel()
                .getHeadTable();
        htb.clearSelection();// 先清除

        // 设置列表选择模式
        htb.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        // re-find rows which still should be selected by judging pk*
        List<AggSellctrVO> newData = tmodel.getData();
        List<Integer> newnumList = new ArrayList(num.length);
        for (int i = 0, I = newData.size(); i < I; ++i) {
            if (pkList.remove(newData.get(i).getParentVO().getPk_sellctr_h())) {
                newnumList.add(i);
            }
        }
        int[] numr = integer2int(newnumList.toArray(new Integer[0]));// 存活(仍有对应纪录/最新)的被选行
        // 找到最小和最大 行号和列号
        int[] mm = minmax(numr, htb.getRowCount() - 1, -1);
        // 选中min~max
        htb.setRowSelectionInterval(mm[0], mm[1]);

        // start 使用排除法,清除不应选的行
        List<Integer> list = new ArrayList<Integer>(mm[1] - mm[0] + 1);
        for (int i = mm[0] + 1; i < mm[1]; ++i) {
            list.add(i);
        }
        for (int i = 0; i < numr.length; ++i) {
            Integer t = numr[i];
            list.remove(t);
            // 选中单元格
            htb.changeSelection(t, htb.getColumnCount(), false, true);
        }
        for (Integer i : list) {
            htb.getSelectionModel().removeSelectionInterval(i, i);
        }
        // end 使用排除法,清除不应选的行
时间: 2024-08-28 04:17:47

NC 刷新后,停留上一次选择的行(多行)的相关文章

android 拍照或者图库选择 压缩后 图片 上传

通过拍照或者从相册里选择图片通过压缩并上传时很多应用的常用功能,记录一下实现过程 一:创建个临时文件夹用于保存压缩后需要上传的图片 /** * path:存放图片目录路径 */ private String path = Environment.getExternalStorageDirectory().getPath() + "/XXX/"; /** * saveCatalog:保存文件目录 */ private File saveCatalog; /** * saveFile:保存

使用MJRefresh遇到的一个问题,上拉刷新后tableview瞬间滑到最底部

最近用MJRefresh上拉刷新时遇到一个问题,就是上拉刷新后,tableview会瞬间滑到最底部,用户还要往回翻才能看到新刷出来的数据,体验十分不好.查了很久没找到原因,最后发现在refreshview停止动画前,我代码里调用了两次tableview reloaddata,抱着尝试的心理,我改了代码结构,删除了一个tableview reloaddata,结果还真被我蒙对了!原因不明,可能是tableview的一个小bug,也可能是我的 MJRefreshView版本太老,是时候更新一下这个第

Oracle案例02——ORA-12034: &quot;SCOTT&quot;.&quot;USER_TABLE&quot; 上的实体化视图日志比上次刷新后的内容新

最近同事在交接工作时,发现有几个schedule job没有执行成功,我这边给看了下,其中一个是由于数据库迁移,调用dblink的host主机IP在tnsnames中没有变更导致,还有一个是无法视图的报错,即报错信息如下: 一.错误日志 通过查看schedual job报错日志,具体报错信息如下 ORA-12034:"SCOTT"."USER_TABLE" 上的实体化视图日志比上次刷新后的内容新ORA-06512: 在 "SYS.DBMS_SNAPSHOT

当你刷新当前Table时,刷新后如何回到你上一次所在位置呢?

第一: 在你刷新前保存所在位置的行号 procedure XXXClass.LockPositionEx;begin DisableControls; FHistoryRecNo := 0; FHistoryIndexName := EmptyStr; if Active then begin if IndexName <> EmptyStr then FHistoryIndexName := IndexName; IndexName := EmptyStr; if not IsEmpty t

android中Animation动画的连续播放与播放完毕后停留在最后的状态

我们做安卓应用的苦逼程序员们常常会需要用到Animation也就是动画.比如做地图功能的时候.我们在手机旋转时需要根据手机重力感应来调整地图的角度,让它上面的“北”一直指向地球的北面...好多人做动画的时候会遇到这么两个难题(我也曾经遇到过):1:动画执行完了一遍后又立刻恢复到了初始状态,或者动画只能不断循环动作.[问题:我想让动画动到某个位置或转到某个角度后停在那里,该如何做呢?]2:点击按钮一.动画从0度转到了10度,我再点击按钮二.需要动画从之前的10度位置再继续转到20度.再点击按钮三.

分享 WebBrowser显示Html内容3点细节技巧,解决刷新后空白

直接显示Html内容,不像直接导航网址容易处理: 问题:按微软的控件属性提示,可以用WebBrowser.DocumentText 属性赋值 ,但是这种赋值,只是首次有效,后续切换都没啥作用. 下面给出自己追求摸索的两点技巧: 1:通过WebBrowser.Document.Write(html)方法来输出html内容显示. 由于WebBrowser 需要经历几个事件后才会显示,直接输出是不行的,为此,需要有点技巧的使用: wbShowBlog.Navigate("about:blank&quo

自定义View——利用下拉刷新组件实现上拉加载

注:本文demo已经提交github,地址完整代码如下,demo工程已经上传至GitHub, github地址https://github.com/wsclwps123/UpLoadSwipeRefreshLayout 感谢大家支持! 在Android开发中,我们经常会用到列表下拉刷新和上拉加载的功能. Google在support.v4包中提供了一个组件可以用来进行下来刷新,这个组件是SwipeRefreshLayout. 下面我们来看一下这个组件的使用: 在布局文件中加上xml代码 <and

mjrefresh 刷新后上移

mjrefresh 调用两次 headerEndRefreshing 会造成刷新后上移 [self.view viewWithTag:1234]  当要找到view不在self.view上时 ,是找不到的,比如view在 self.navigationController.navigationBar上时,用self.navigationController.navigationBar找

由用友NC刷新功能得到启示

在做NC刷新界面数据的功能,就是 点刷新按钮然后刷新当前 list 中的数据,犯了一个错误. 我之前的做法是记录每次查询数据的sql条件语句,然后在点刷新的时候去调用这个条件语句,哈哈,错误就在这个逻辑,好天真的逻辑,原因是在数据改变后,刷新时,可能会因为条件改变而查不到数据,所以,不应该记录每次查询数据的sql条件语句,而是应该记录数据的pks,因为pks不会改变. 在做其他系统刷新时要尤其注意这个问题!