本小软件的主要功能是,以C#.NET WINFORM 开发一个固定的客户端,然后以HTTP+XML的方式与SAP进行数据交互,用户和权限管理都在SAP中实现,WINFORM中的报表导航清单、报表输出和输入帮助都根据在SAP中配置的数据动态生成,后续只需要ABAPer在SAP按规范的简单配置和开发就可以实现WINFORM 客户端自动生成不同的报表。
目录
1、WINFORM客户端
桌面中的图标
双击后会显示登录界面
1.1、设置SAP服务器URL
http://192.168.214.128:8000/sap/zwgsy
1.2、登录SAP报表外挂系统
输入帐号和密码点击登录,验证通过后进入系统主界面,如下图。
左边是报表清单,右边是报表显示区域
1.3、登录密码修改
如下图,进入用户信息界面
点击【更改密码】按钮
如下图,输入原密码和两次新密码后,点击确认
如果数据验证无误,系统返回成功消息。
1.4、报表查询
双击左边报表清单其中的一个报表,右边会显示该报表的界面,该界面中分为上下两部份,上半部为报表的筛选条件,下半部份为报表的表格输出
点击【查询】按钮
如下图操作,可调出相关输入帮助。
如下图,选中对应物料后,点【选中确认】按钮
如下图,多选情况下,不同的选中数据将以;号分隔开,些时再点击【查询】按钮
表格中只支显示符合筛选条件的数据,如下图。
2、SAP服务端
2.1、外挂系统帐号管理
TCODE:ZWGSY001 - 外挂系统帐号管理
创建、修改、锁定、解锁、重置密码、分配报表权限等功能。
2.2、外挂系统系统配置
TCODE:ZWGSY000 - 外挂系统系统配置
2.2.1、外挂系统帐接口版本
2.2.2、外挂报表功能码
报表功能码定义,配置对应的功能类和对应方法
报表选择条件
报表字段
2.2.3、外挂报表F4码
外挂报表F4码定义,配置对应的功能类和对应方法
输入帮助中显示的字段
2.2.3、外挂报表系统报表导航树内容配置
3、报表快速开发演示
3.1成本中心主数据报表
选择条件 | |
成本中心编码 | KOSTL |
功能范围 | FUNC_AREA |
输出字段 | |
控制范围 | KOKRS |
成本中心编码 | KOSTL |
有效期开始 | DATAB |
有效期结束 | DATBI |
成本中心名称 | LTEXT |
成本中心负责人 | VERAK |
成本中心类型 | KOSAR |
成本中心类型描述 | KTEXT |
功能范围 | FUNC_AREA |
功能范围描述 | FKBTX |
公司代码 | BUKRS |
货币 | WAERS |
利润中心 | PRCTR |
利润中心名称 | LTEXT_PRCTR |
记录数量标识 | MGEFL |
冻结-实际初级成本 | BKZKP |
冻结-计划初级成本 | PKZKP |
冻结-实际次级成本 | BKZKS |
冻结-计划次级成本 | PKZKS |
冻结-实际销售收入 | BKZER |
冻结-计划收入 | PKZER |
冻结-未清项更新 | BKZOB |
3.2、定义外挂系统F4码
3.2.1、成本中心编码的F4码
成本中心编码的F4码已存在,直接使用。
3.2.2、功能范围的F4码
功能范围的F4码未创建,创建过程如下
在类:ZWGSY_CLASS_F4LIST 中增加方法:F4LIST_FKBER
选中方法:F4LIST_EXAMPLE 点击复制按钮
然后点到空白行,点击粘贴按钮
生成一个新的方法。
把新生成的方法更改为:F4LIST_FKBER 功能范围输入帮助
把方法中的代码按下图修改
METHOD F4LIST_FKBER.
*****************************************************************
* 1 取得F4LIST显示数据
*****************************************************************
SELECT A~FKBER,
A~FKBTX
UP TO @I_ZROWCOUNT ROWS
FROM TFKBT AS A
INTO TABLE @DATA(IT_OUTPUT)
WHERE A~SPRAS EQ '1'
AND A~FKBER LIKE @I_ZBMINPUT
AND A~FKBTX LIKE @I_ZMXINPUT.
*****************************************************************
* 2 E_DATA绑定F4LIST数据
*****************************************************************
FIELD-SYMBOLS: <FS_IT> TYPE ANY TABLE.
CREATE DATA E_DATA LIKE IT_OUTPUT.
ASSIGN E_DATA->* TO <FS_IT>.
<FS_IT> = IT_OUTPUT.
ENDMETHOD.
3.3、定义外挂系统功能码
报表选择条件
报表输出字段
在TCODE:SE24中根据类:ZWGSY_CLASS_EXAMPL 拷贝创建类:ZWGSY_CLASS_ZTEST001
把方法:ZMETHOD_EXAMPL 更改为方法:ZTEST001
METHOD ZTEST001.
************************************************************
* 1 取得选择条件
************************************************************
DATA: RT_KOSTL TYPE RANGE OF CSKS-KOSTL,
RW_KOSTL LIKE LINE OF RT_KOSTL.
DATA: RT_FKBER TYPE RANGE OF CSKS-FUNC_AREA,
RW_FKBER LIKE LINE OF RT_FKBER.
CLEAR: RT_KOSTL.
LOOP AT IT_SEL INTO DATA(WA_SEL).
CASE WA_SEL-FIELD.
WHEN 'KOSTL'.
CLEAR: RW_KOSTL.
RW_KOSTL-SIGN = WA_SEL-SIGN.
RW_KOSTL-OPTION = WA_SEL-OPTION.
RW_KOSTL-LOW = WA_SEL-LOW.
RW_KOSTL-LOW = |{ RW_KOSTL-LOW ALPHA = IN }|.
RW_KOSTL-HIGH = WA_SEL-HIGH.
RW_KOSTL-HIGH = |{ RW_KOSTL-HIGH ALPHA = IN }|.
APPEND RW_KOSTL TO RT_KOSTL.
WHEN 'FKBER'.
CLEAR: RW_FKBER.
RW_FKBER-SIGN = WA_SEL-SIGN.
RW_FKBER-OPTION = WA_SEL-OPTION.
RW_FKBER-LOW = WA_SEL-LOW.
RW_FKBER-HIGH = WA_SEL-HIGH.
APPEND RW_FKBER TO RT_FKBER.
ENDCASE.
ENDLOOP.
************************************************************
* 2 取得报表数据
************************************************************
SELECT A~KOKRS,
A~KOSTL,
A~DATAB,
A~DATBI,
B~LTEXT,
A~VERAK,
A~KOSAR,
C~KTEXT,
A~FUNC_AREA,
D~FKBTX,
A~BUKRS,
A~WAERS,
A~PRCTR,
F~LTEXT AS LTEXT_PRCTR,
A~MGEFL,
A~BKZKP,
A~PKZKP,
A~BKZKS,
A~PKZKS,
A~BKZER,
A~PKZER,
A~BKZOB
FROM CSKS AS A LEFT OUTER JOIN CSKT AS B ON B~SPRAS = '1'
AND B~KOKRS = A~KOKRS
AND B~KOSTL = A~KOSTL
AND B~DATBI = A~DATBI
LEFT OUTER JOIN TKT05 AS C ON C~SPRAS = '1'
AND C~KOSAR = A~KOSAR
LEFT OUTER JOIN TFKBT AS D ON D~SPRAS = '1'
AND D~FKBER = A~FUNC_AREA
LEFT OUTER JOIN CEPC AS E ON E~PRCTR = A~PRCTR
AND E~KOKRS = A~KOKRS
AND E~DATBI >= A~DATBI
AND E~DATAB <= A~DATBI
LEFT OUTER JOIN CEPCT AS F ON SPRAS = '1'
AND F~PRCTR = E~PRCTR
AND F~DATBI = E~DATBI
AND F~KOKRS = E~KOKRS
INTO TABLE @DATA(IT_OUTPUT)
WHERE A~KOSTL IN @RT_KOSTL
AND A~FUNC_AREA IN @RT_FKBER.
************************************************************
* 3 报表数据转DATA类型
************************************************************
FIELD-SYMBOLS: <FS_IT> LIKE IT_OUTPUT.
CREATE DATA E_DATA LIKE IT_OUTPUT.
ASSIGN E_DATA->* TO <FS_IT>.
<FS_IT> = IT_OUTPUT.
ENDMETHOD.
3.4、配置报表导航树
3.5、用户帐号分配权限
ZWGSY001 - 外挂系统帐号管理
3.6、WINFORM客户端查看报表
WINFORM无需任何更改,直接登录使用。