CAFE

Q/A 게시판

Re:Re:sap -> ms-word로 출력하는 방법?

작성자정이|작성시간01.09.10|조회수365 목록 댓글 0
이미 이 내용은 저도 보았습니다.
하지만,, 내용이.. 전체적으로 조금,, 미약한것 같아요.
이 내용 참고삼아서 저도 적용 할려고 노력하고 있는데..
잘되질 않아서요. ㅠ.ㅠ





--------------------- [원본 메세지] ---------------------
제가 직접 만들어서 하지는 않았기에 크게 도움이 되지는 않을 듯 싶네요. 일단 참고로 하시려면 함수 LIST_CONVERT_TO_RTF를 참조하세요.
<br>

<br>
또 개발클래스 SOFFICEINTEGRATION에 예제가 몇개 있거든요. 참고로 하시구요.
<br>

<br>
그리고 아래 사항은 ESN에 올라있던 사항입니다. 도움이 되실지 모르겠는데 참고하세요. 내용은 Internal Table의 내용을 워드로 출력하는 내용입니다.
<br>
참고로 작성하신 분은 양한수(godisme@hanmir.com)이십니다.
<br>
-------------------------------------------------------------
<br>
SAP를 사용하다 보면 출력문제때문에 고심할때가 가끔 있는대요.
<br>
그냥 list processing으로 처리해도 되는것은 상관 없지만 양식
<br>
이 너무나도 중요하다고 해서(실은 요청하는 사람의 일방적인 생
<br>
각인 경우가 많지만) 서식을 사용하는 경우도 있고 한대요.
<br>
아시겠지만 서식을 쓰는것이 짜증나는 작업이죠,word 나 excel
<br>
에 비해서 그리 멋있지도 않고....
<br>

<br>
답이 있습니다.word 나 excel 로 데이타를 보내주면 되니까요.
<br>
이를 하기위해선 세가지 정도의 과정이 필요한대요.
<br>

<br>
예를 들면..
<br>
1. abap 소스코드안에서 office로 데이타를 넘겨주겠다고 선언
<br>

<br>

<br>
* 2개의 INCLUDE 문 사용하고
<br>
INCLUDE < CTLDEF >.
<br>
INCLUDE OFFICEINTEGRATIONINCLUDE.
<br>
* FUNCTION 및 기타루틴
<br>
DATA: FACTORY TYPE REF TO I_OI_DOCUMENT_FACTORY.
<br>
DATA: DOCUMENT TYPE REF TO I_OI_DOCUMENT_PROXY.
<br>
DATA: RETCODE TYPE T_OI_RET_STRING.
<br>

<br>
DATA: DOC_TABLE LIKE W3MIME OCCURS 0.
<br>
DATA: DOC_SIZE TYPE I.
<br>
DATA: DOC_TYPE(80) VALUE SOI_DOCTYPE_WORD97_DOCUMENT.
<br>
DATA: DOC_FORMAT(80) TYPE C.
<br>

<br>
* UPLOAD 된 office 화일을 인식시키는 함수
<br>
CALL FUNCTION 'SAP_OI_LOAD_MIME_DATA'
<br>
EXPORTING
<br>
OBJECT_ID = 'ZHRPROFILE'
<br>
IMPORTING
<br>
DATA_SIZE = DOC_SIZE
<br>
DOCUMENT_FORMAT = DOC_FORMAT
<br>
DOCUMENT_TYPE = DOC_TYPE
<br>
TABLES
<br>
DATA_TABLE = DOC_TABLE
<br>
EXCEPTIONS
<br>
OBJECT_NOT_FOUND = 1
<br>
INTERNAL_ERROR = 2
<br>
OTHERS = 3.
<br>

<br>

<br>
CALL METHOD FACTORY->GET_DOCUMENT_PROXY
<br>
EXPORTING DOCUMENT_TYPE = DOC_TYPE
<br>
IMPORTING DOCUMENT_PROXY = DOCUMENT
<br>
RETCODE = RETCODE.
<br>
CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE EXPORTING TYPE = 'E'.
<br>

<br>
CALL METHOD DOCUMENT->OPEN_DOCUMENT_FROM_TABLE
<br>
EXPORTING DOCUMENT_TABLE = DOC_TABLE[]
<br>
DOCUMENT_SIZE = DOC_SIZE
<br>
IMPORTING RETCODE = RETCODE.
<br>
CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE EXPORTING TYPE = 'E'.
<br>

<br>
IF FACTORY IS INITIAL.
<br>
CALL METHOD C_OI_FACTORY_CREATOR=>GET_DOCUMENT_FACTORY
<br>
IMPORTING FACTORY = FACTORY
<br>
RETCODE = RETCODE.
<br>
IF RETCODE NE C_OI_ERRORS=>RET_OK. EXIT. ENDIF.
<br>

<br>
CALL METHOD FACTORY->START_FACTORY
<br>
EXPORTING R3_APPLICATION_NAME =
<br>
'인사기록카드'
<br>
* register_on_close_event = 'X'
<br>
* register_on_custom_event = 'X'
<br>
IMPORTING RETCODE = RETCODE.
<br>
CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE EXPORTING TYPE = 'E'.
<br>

<br>
CALL METHOD FACTORY->GET_LINK_SERVER
<br>
IMPORTING LINK_SERVER = LINK_SERVER
<br>
RETCODE = RETCODE.
<br>
CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE EXPORTING TYPE = 'E'.
<br>

<br>
CALL METHOD LINK_SERVER->START_LINK_SERVER
<br>
IMPORTING RETCODE = RETCODE.
<br>
CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE EXPORTING TYPE = 'E'.
<br>

<br>
ENDIF. "factory IS INITIAL.
<br>

<br>
ENDFORM. " INIT_FACTORY
<br>
* 주의사항 - 데이타를 모두다 character type으로 변환해주어야 함.
<br>

<br>

<br>
2. office 화일을 SAP R/3 로 upload.
<br>

<br>

<br>
메뉴 : 툴 &#61664; 업무기본구조 &#61664; 웹개발 &#61664; 웹레포팅
<br>
트랜잭션 코드 : SMW0
<br>
WebRFC 어플리케이션 이진데이터 선택
<br>

<br>
* 주의사항 - 오피스화일을 edit 할때마다 매번 upload 해주어야 한다.
<br>

<br>
3. office 제품의 매크로기능중 visual basic 편집기를 이용하
<br>
여 R/3 의 데이타를 받아들이는 루틴을 코딩.
<br>

<br>
Sub R3_Macro1()
<br>
Call R3_D1
<br>
Call R3_D2
<br>
Call R3_Gen
<br>
Call R3_Pic
<br>
Call R3_Print
<br>

<br>
End Sub
<br>

<br>
Sub R3_Macro2()
<br>
Call R3_D1
<br>
Call R3_D2
<br>
Call R3_Gen
<br>
Call R3_Pic
<br>
End Sub
<br>

<br>
Sub R3_D1()
<br>

<br>
Dim R3Table As Object
<br>
Dim WordTbl As Table
<br>

<br>
Set R3Table = ThisDocument.Container.LinkServer.Items("D1").Table
<br>
Set WordTbl = ThisDocument.Tables(1)
<br>

<br>
WordTbl.Cell(2, 2).Range.InsertAfter Text:=CVar(R3Table.Value(1, 1))
<br>
WordTbl.Cell(2, 4).Range.InsertAfter Text:=CVar(R3Table.Value(1, 2))
<br>

<br>
이상의 3부분으로 나눌수 있는데 주저리 주저리 써놓아서 이해하
<br>
기가 어려울듯한대요 스탠다드의 개발 클래스
<br>
SOFFICEINTEGRATION 에 예제 프로그램들이 있습니다.
<br>

<br>
참고적으로 위의 예제는 오피스97의 word를 기준으로 써놓은 것
<br>
이고요,오피스 2000에선 잘 안되는 경우도 있다고 하네요...
다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼