【SAP自动化】(4)从SAP GridView中获取数据

本文介绍了如何封装独立的代码来方便地从SAP GridView中读取数据,提供了一种SAP操作GridView的通用方法,适用于各种数据读取场景。


前言

为了方便从SAP GridView中读取数据,封装了独立于具体GridView数据的读取方法。


代码实现

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

总结

该方法为SAP操作各个GridView数据提供了便利。


仅供参考,如有帮助不胜荣幸,如需转载请注明出处。
请关注、点赞、收藏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值