从SAP GridView中获取数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class SapGuiGridView:
    """
    SAP中GridView组件数据的表示对象类。
 
    用于从SAP的GridView中读取指定的数据。
    """
 
    @staticmethod
    def get_data(session, _id, columns, handler=None):
        """
        读取查询到的表格数据。
 
        :param session: SAP回话Session
        :param _id: SAP组件ID。
        :param columns: 列名称
        :param handler: 过滤函数
        """
        rows = []
        try:
            session.findById(_id)
        except Exception as _:
            # 无数据,直接返回
            return rows
        grid_view = session.findById(_id)
        row_count = grid_view.RowCount
        row_number = 0
        page_size = grid_view.VisibleRowCount
 
        while True:
            for i in range(page_size):
                row = [grid_view.GetCellValue(row_number, column) for column in columns]
                row_number += 1
 
                # print(row_number, row)
 
                tmp = handler(row) if handler else row
                if tmp:
                    # print(row_number, tmp)
                    rows.append(tmp)
                else:
                    # print('Delete', row_number)
                    pass
 
                if row_number >= row_count:
                    break
            if row_number >= row_count:
                break
            elif row_number + page_size < row_count:
                grid_view.firstVisibleRow = row_number
            else:
                grid_view.firstVisibleRow = row_count - page_size
 
        return rows

  

 

https://blog.csdn.net/chenguangqi/article/details/125787117?spm=1001.2014.3001.5502

posted @   CrossPython  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2021-08-24 调用outlook发邮件
点击右上角即可分享
微信分享提示