OOLV显示BAPI和BDC和打印内表Word文件下载.docx

上传人:b****6 文档编号:21979466 上传时间:2023-02-02 格式:DOCX 页数:11 大小:134.72KB
下载 相关 举报
OOLV显示BAPI和BDC和打印内表Word文件下载.docx_第1页
第1页 / 共11页
OOLV显示BAPI和BDC和打印内表Word文件下载.docx_第2页
第2页 / 共11页
OOLV显示BAPI和BDC和打印内表Word文件下载.docx_第3页
第3页 / 共11页
OOLV显示BAPI和BDC和打印内表Word文件下载.docx_第4页
第4页 / 共11页
OOLV显示BAPI和BDC和打印内表Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

OOLV显示BAPI和BDC和打印内表Word文件下载.docx

《OOLV显示BAPI和BDC和打印内表Word文件下载.docx》由会员分享,可在线阅读,更多相关《OOLV显示BAPI和BDC和打印内表Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

OOLV显示BAPI和BDC和打印内表Word文件下载.docx

HEADER 

LINE.

PARAMETERS 

FILE 

LOCALFILE 

OBLIGATORY.

程序:

AT 

SELECTION-SCREEN 

ON 

VALUE-REQUEST 

FOR 

FILE.

PERFORM 

PRM_FILE."

选择文件路径

START-OF-SELECTION.

FRM_EXCEL."

点击执行,赋值

CALL 

SCREEN 

100."

跳转主屏幕

*-------------------------------------------------------------------*

FORM 

PRM_FILE 

.

METHOD 

CL_GUI_FRONTEND_SERVICES=>

FILE_OPEN_DIALOG

EXPORTING

WINDOW_TITLE 

'

选择文件'

FILE_FILTER 

XLS 

模板文件|*.XLSX'

INITIAL_DIRECTORY 

D:

\'

CHANGING

FILE_TABLE 

把导入的excel表赋给FILE_TABLE

RC

EXCEPTIONS

CNTL_ERROR 

1

FILE_OPEN_DIALOG_FAILED 

2

ERROR_NO_GUI 

3.

CL_GUI_CFW=>

FLUSH

CNTL_SYSTEM_ERROR 

2.

READ 

INTO 

INDEX 

1.

IF 

SY-SUBRC 

EQ 

LW_TABLE-FILENAME.

ENDIF.

ENDFORM. 

FRM_EXCEL. 

FUNCTION 

ALSM_EXCEL_TO_INTERNAL_TABLE'

FILENAME 

FILE

I_BEGIN_COL 

1"

开始和结束的行列

I_BEGIN_ROW 

I_END_COL 

7"

I_END_ROW 

100"

TABLES

INTERN 

IEXCEL

INCONSISTENT_PARAMETERS 

UPLOAD_OLE 

OTHERS 

<

>

WRITE:

读入文件错误!

FILE.

ELSE.

一般下面是才是我们关心的问题,循环excel,excel有3列,下面是IEXCEL-COL一列一列的读取,ATENDOFROW当读取一行(3列)后,赋给内表一行

LOOP 

CASE 

IEXCEL-COL.

WHEN 

IT_USERS-USERNAME 

IEXCEL-VALUE(20).

IT_USERS-PASSWORD 

IT_USERS-LASTNAME 

ENDCASE.

ROW."

ATENDOF也就是一行结束后赋值

APPEND 

IT_USERS."

当读取一行(3列)后,赋给内表一行

ENDAT.

ENDLOOP.

ENDFORM.

*&

--------------------------点击按钮执行事件-------------------------*

MODULE 

USER_COMMAND_0100 

INPUT.

SY-UCOMM.

BAPI'

Z_BAPI.

BDC'

Z_BDC.

BACK'

LEAVE 

PROGRAM.

EXIT'

PRINT'

Z_SMARTFORMS.

ENDMODULE.

BAPI

**BAPI变量

l_bapipwd 

bapipwd. 

密码

l_address 

bapiaddr3. 

lastname 

姓氏

l_username 

BAPIBNAME. 

用户名

l_logondata 

bapilogond. 

日期

此处的return在下面调到他的自带MESSAGE,(提示信息 

l_return 

BAPIRET2 

l_return1 

L_RETURN.如果用系统表里的结构就可以用这句,而不用下面自己声明结构,不过一般必要的自己写结构

WA_MSSAGE,

USERNAME 

BAPIBNAME-BAPIBNAME,"

UTYPE 

MESSAGE-MSGTY, 

消息类型

MSGTX 

MESSAGE-MSGTX, 

消息文本

FLAGS 

LENGTH 

10,"

消息灯颜色

WA_MSSAGE.

IT_MSSAGE 

WA_MSSAGE 

Z_BAPI 

WHERE 

TAG 

X'

把前面读取excel的数据赋给这3个字段

IT_USERS-USERNAME.

IT_USERS-PASSWORD.

l_address-LASTNAME 

IT_USERS-LASTNAME. 

address是一个系统结构,而我只需要LASTNAME字段,所以-lastname

BAPI_USER_CREATE'

username 

l_username

password 

l_bapipwd

address 

l_address

LOGONDATA 

l_logondata

return 

l_return.

L_RETURN.

IT_MSSAGE-USERNAME 

l_username.

IT_MSSAGE-UTYPE 

L_RETURN-TYPE. 

l-return是一张消息表

IT_MSSAGE-MSGTX 

L_RETURN-MESSAGE.

IT_MSSAGE.

如果是弹出消息提示,就是下面这串代码,因为我们要用lv来显示消息信息,所以这段代码此处无用

L_RETURN 

TO 

** 

如果成功则调用i005(ZBAPI),否则调用自带的消息文本.

MESSAGE 

i005(ZBAPI) 

l_return-MESSAGE.

*定义窗口定制控制,定义ALV对象

WA_CONTAINER 

SCRFNAME 

VALUE 

LV'

 

LV是屏幕上画出来的LV的名字

ALV_GRID 

REF 

CL_GUI_ALV_GRID,

WA_CUSTOM_CONTAINER 

CL_GUI_CUSTOM_CONTAINER.

GS_FIELDCAT 

LVC_S_FCAT,

GT_FIELDCAT 

LVC_T_FCAT.

**------------------ 

PBO 

屏幕输出前执行-----------------------*

STATUS_0100 

OUTPUT.

*如果窗口还没有创建ALV对象则创建它

IS 

INITIAL.

CREATE 

OBJECT 

WA_CUSTOM_CONTAINER

CONTAINER_NAME 

WA_CONTAINER. 

屏幕上LV名字,在声明中已给初始值

ALV_GRID

I_PARENT 

WA_CUSTOM_CONTAINER.

FRM_FIELDCAT. 

调用自定义LV显示列表

ALV_GRID->

SET_TABLE_FOR_FIRST_DISPLAY

IT_OUTTAB 

IT_MSSAGE[]

IT_FIELDCATALOG 

GT_FIELDCAT. 

CLEAR 

IT_MSSAGE[].

ENDMODULE. 

*-----------------------------自定义LV显示---------------------*

FRM_FIELDCAT 

GS_FIELDCAT-COL_POS 

GS_FIELDCAT-FIELDNAME 

USERNAME'

GS_FIELDCAT-OUTPUTLEN 

24.

GS_FIELDCAT-COLTEXT 

用户'

GT_FIELDCAT.

UTYPE'

20.

消息类型'

MSGTX'

80.

消息'

4.

FLAGS'

10.

备注'

BDC

*BDC批量

Z_BDC 

IT_USERS.

IT_USERS-TAG 

CLEAR:

IT_BDCDATA,IT_BDCDATA[].

perform 

bdc_dynpro 

using 

SAPLSUU5'

0050'

bdc_field 

BDC_CURSOR'

USR02-BNAME'

BDC_OKCODE'

=CREA'

0100'

=UPD'

ADDR3_DATA-NAME_LAST'

IT_USERS-LASTNAME.

ADDR3_DATA-LANGU_P'

record-LANGU_P_003.

ADDR3_DATA-DEFLT_COMM'

zh'

G_PASSWORD2'

USLOGOND-USTYP'

G_PASSWORD1'

bdc_transaction 

SU01'

FRM_MESSAGE. 

放IF里,代表只有选中才会赋值

*---------------------Start 

new 

screen 

----------------------------

BDC_DYNPRO 

USING 

PROGRAM 

DYNPRO.

IT_BDCDATA.

IT_BDCDATA-PROGRAM 

PROGRAM. 

BDC模块库

IT_BDCDATA-DYNPRO 

DYNPRO. 

BDC屏幕号码

IT_BDCDATA-DYNBEGIN 

*-------------------------Insert 

field 

BDC_FIELD 

FNAM 

FVAL.

NODATA.

FVAL 

IT_BDCDATA. 

IT_IT_BDCDATA系统结构

IT_BDCDATA-FNAM 

FNAM. 

FNAM字段名

IT_BDCDATA-FVAL 

FVAL. 

字段值

BDC_TRANSACTION 

tcode.

REFRESH 

messtab.

TRANSACTION 

tcode 

IT_BDCDATA

MODE 

N'

如果是'

,则代表点击按钮时直接保存,不然会跳su01界面去

UPDATE 

S'

MESSAGES 

------------------ 

Form 

FRM_MESSAGE------------------------------

FRM_MESSAGE 

L_MSTRING(248).

LIST>

导入灯包

TABLES 

T100.

SELECT 

SINGLE 

FROM 

T100 

SPRSL 

messtab-MSGSPRA

AND 

ARBGB 

messtab-MSGID

MSGNR 

messtab-MSGNR.

L_MSTRING 

T100-TEXT.

CS 

&

1'

REPLACE 

messtab-MSGV1 

L_MSTRING.

2'

messtab-MSGV2 

3'

messtab-MSGV3 

4'

messtab-MSGV4 

messta

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1