工作生活与爱好

工作中的记录; 生活中的记忆; 业余爱好的记载。

2007-01-14

 

下载/上传 Smart Forms 和 Smart Styles的程序

由于本人的版本的是4.6C的,SAP没有提供下载和上传Smart Forms和Smart Styles的功能,幸运的是在网上找到了一个能实现这种功能的程序,如有需要可以下载。
本人已经修改了程序中存在的一些BUG,但也许还存在一些,如果大家有兴趣的话可以继续完善之,共同提高!


REPORT ZQUALITY LINE-SIZE 150 NO STANDARD PAGE HEADING.
******************************************************
*Program : ZSMART_FORM_UPLOAD_DOWNLOAD *
*Description : This utility/tool can download or *
* upload smartform and smartstyles. *
*====================================================*

*&===== TABLES =====
TABLES: STXFADM,"SAPscript Smart Forms: Administration
STXSADM."SAPscript Smart Styles: Administration
DATA: V_PASS,
G_ANS,
BEGIN OF TAB OCCURS 0,
LINE(144),
END OF TAB,
TNAME LIKE SY-REPID.

*&===== SELCTION SCREEN =====
SELECTION-SCREEN BEGIN OF BLOCK SMART1 WITH FRAME TITLE TEXT001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT101."Smart Form Name
PARAMETERS: P_FNAME LIKE STXFADM-FORMNAME DEFAULT 'ZTEST'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT102. "File Name
PARAMETERS: P_FFILE LIKE RLGRAP-FILENAME LOWER CASE
DEFAULT 'C:\ZTEST'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK IND1 WITH FRAME TITLE TEXT002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT103."None
PARAMETERS: P_FT RADIOBUTTON GROUP ABH1."Form Treatment
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT104."Upload
PARAMETERS: P_FU RADIOBUTTON GROUP ABH1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT105."Download
PARAMETERS: P_FD RADIOBUTTON GROUP ABH1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK IND1.
SELECTION-SCREEN END OF BLOCK SMART1.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN BEGIN OF BLOCK SMART2 WITH FRAME TITLE TEXT003.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT106."Smart Style Name
PARAMETERS: P_SNAME LIKE STXFADM-FORMNAME DEFAULT 'ZTEST'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT107."File Name
PARAMETERS: P_SFILE LIKE RLGRAP-FILENAME LOWER CASE
DEFAULT 'C:\ZTEST'."Style File Name
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK IND2 WITH FRAME TITLE TEXT004.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT108."None
PARAMETERS: P_ST RADIOBUTTON GROUP ABH2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT109."Upload
PARAMETERS: P_SU RADIOBUTTON GROUP ABH2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT110."Download
PARAMETERS: P_SD RADIOBUTTON GROUP ABH2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK IND2.
SELECTION-SCREEN END OF BLOCK SMART2.

*&===== INITIALIZATION =====
INITIALIZATION.
TEXT001 = 'Smart Forms Upload/Download'.
TEXT002 = 'Options'.
TEXT003 = 'Smart Style Upload/Download'.
TEXT004 = TEXT002.
TEXT101 = 'Smart Form Name'.
TEXT102 = 'File Name'.
TEXT103 = 'None'.
TEXT104 = 'Upload'.
TEXT105 = 'Download'.
TEXT106 = 'Smart Style Name'.
TEXT107 = TEXT102.
TEXT108 = TEXT103.
TEXT109 = TEXT104.
TEXT110 = TEXT105.

*&===== AT-SELCTION-SCREEN =====
AT SELECTION-SCREEN.
PERFORM SUB_VALIDATION.

DEFINE VMESS.
IF V_PASS = SPACE.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
TITEL = 'Smartform/Smartstyle Upload-Download Utility'
TEXTLINE1 = &1
START_COLUMN = 25
START_ROW = 6.
V_PASS = 'X'.
ENDIF.
END-OF-DEFINITION.

DEFINE ABHISHEK.
TAB-LINE = &1.
TRANSLATE TAB-LINE USING '@B`I!J~N^O%T#F?S|Q'.
APPEND TAB.
CLEAR TAB.
END-OF-DEFINITION.

DEFINE APP.
ITAB-ID = &1. ITAB-KEY = &2. ITAB-ENTRY = &3.
APPEND ITAB.
CLEAR ITAB.
END-OF-DEFINITION.

*&===== START-SELCTION-SCREEN =====
START-OF-SELECTION.
DATA: ERROR(150).
IF V_PASS = SPACE.
PERFORM SUB_WARNING.
IF G_ANS = '1'.
REFRESH TAB. CLEAR: TAB, TNAME.
ABHISHEK: 'PROGRAM ztabhi.'.
PERFORM FORM100000.
PERFORM FORM100001.
PERFORM FORM100002.
PERFORM FORM100003.
PERFORM FORM100004.
PERFORM FORM100005.
* LOOP AT TAB.
* WRITE:/ TAB-LINE.
* ENDLOOP.
GENERATE SUBROUTINE POOL TAB NAME TNAME MESSAGE ERROR.
IF SY-SUBRC = 0.
IF P_FU = 'X'.
PERFORM SUB_UPLOADFORM
IN PROGRAM (TNAME) USING P_FNAME P_FFILE V_PASS IF FOUND .
* PERFORM SUB_UPLOADFORM
* IN PROGRAM ZTABHI USING P_FNAME P_FFILE V_PASS IF FOUND .
ELSEIF P_FD = 'X'.
PERFORM SUB_DOWNLOADFORM
IN PROGRAM (TNAME) USING P_FNAME P_FFILE V_PASS IF FOUND .
* PERFORM SUB_DOWNLOADFORM
* IN PROGRAM ZTABHI USING P_FNAME P_FFILE V_PASS IF FOUND .
ENDIF.
IF P_SU = 'X'.
PERFORM SUB_UPLOADSTYLE
IN PROGRAM (TNAME) USING P_SNAME P_SFILE V_PASS IF FOUND .
ELSEIF P_SD = 'X'.
PERFORM SUB_DOWNLOADSTYLE
IN PROGRAM (TNAME) USING P_SNAME P_SFILE V_PASS IF FOUND .
ENDIF.
ELSE.
VMESS 'ERROR: Either the key is wrong or Program has been modified'.
ENDIF.
ELSE.
VMESS 'Action Cancelled'.
ENDIF.
ENDIF.

*&---------------------------------------------------------------------*

*& Form form100001
*&---------------------------------------------------------------------*

FORM FORM100001.
ABHISHEK:
' DEFINE DATADECS.',
' DATA: BEGIN OF T_&1 OCCURS 0.',
' INCLUDE STRUCTURE &1.',
' DATA: END OF T_&1.',
' SELECT * INTO TABLE T_&1 FROM &1 WHERE STYLENAME = P_?NAME.',
' END-OF-DEFINITION.',

' DEFINE DOWNLOADALL.',
' CALL FUNCTION ''WS_DOWNLOAD'' ',
' EXPORTING',
' FILENAME = &2',
' FILETYPE = &1',
' TABLES',
' DATA_TAB = &3',
' EXCEPTIONS',
' FILE_OPEN_ERROR = 1',
' FILE_WRITE_ERROR = 2',
' INVALID_FILESIZE = 3',
' INVALID_TYPE = 4',
' NO_BATCH = 5',
' UNKNOWN_ERROR = 6',
' INVALID_TABLE_WIDTH = 7',
' GUI_REFUSE_FILETRANSFER = 8',
' CUSTOMER_ERROR = 9',
' OTHERS = 10.',
' END-OF-DEFINITION.',

' DEFINE UPLOADALL.',
' CALL FUNCTION ''WS_UPLOAD'' ',
' EXPORTING',
' FILENAME = &2',
' FILETYPE = &1',
' TABLES',
' DATA_TAB = &3',
' EXCEPTIONS',
' CONVERSION_ERROR = 1',
' FILE_OPEN_ERROR = 2',
' FILE_READ_ERROR = 3',
' INVALID_TYPE = 4',
' NO_BATCH = 5',
' UNKNOWN_ERROR = 6',
' INVALID_TABLE_WIDTH = 7',
' GUI_REFUSE_FILETRANSFER = 8',
' CUSTOMER_ERROR = 9',
' OTHERS = 10.',
' END-OF-DEFINITION.',

' DEFINE ABHI_SPEC1.',
' DATA: BEGIN OF T_&1 .',
' INCLUDE STRUCTURE &1.',
' DATA: END OF T_&1.',
' CLEAR: L_CHAR, L_NO.',
' LOOP AT %_%A@ WHERE NAME = ''&1''.',
' L_NO = 0.',
' SELECT * FROM DD03L WHERE TABNAME = %_%A@-NAME ORDER BY POSITION .',
' IF DD03L-INTTYPE <> SPACE.',
' IF DD03L-INTTYPE = ''P''. DD03L-INTLEN = 10. ENDIF.',
' CONCATENATE ''t_&1-'' DD03L-FIELDNAME INTO L_CHAR.',
' ASSIGN (L_CHAR) TO .',
' = %_%A@-DATA+L_NO(DD03L-INTLEN).',
' IF DD03L-FIELDNAME = ''STYLENAME''.',
' = P_?NAME.',
' ENDIF.',
' L_NO = L_NO + DD03L-INTLEN.',
' ENDIF.',
' ENDSELECT.',
' MODIFY &1 FROM T_&1.',
' IF SY-SUBRC <> 0.',
' VMESS ''ERROR in uploading the Style ''.',
' ENDIF.',
' ENDLOOP.',

' END-OF-DEFINITION.',

' DEFINE ABHI_SPEC.',
' CLEAR: L_CHAR, L_NO.',
' LOOP AT T_&1.',
' L_NO = 0.',
' SELECT * FROM DD03L WHERE TABNAME = ''&1'' ORDER BY POSITION .',
' IF DD03L-INTTYPE <> SPACE.',
' IF DD03L-INTTYPE = ''P''. DD03L-INTLEN = 10. ENDIF.',
' CONCATENATE ''t_&1-'' DD03L-FIELDNAME INTO L_CHAR.',
' ASSIGN (L_CHAR) TO .',
' %_%A@-NAME = ''&1''.',
' %_%A@-DATA+L_NO(DD03L-INTLEN) = .',
' L_NO = L_NO + DD03L-INTLEN.',
' ENDIF.',
' ENDSELECT.',
' APPEND %_%A@.',
' CLEAR %_%A@.',
' ENDLOOP.',

' END-OF-DEFINITION.',

' DEFINE VMESS.',
' IF V_PASS = SPACE.',
' CALL FUNCTION ''POPUP_TO_DISPLAY_TEXT''',
' EXPORTING',
' TITEL = ''Smartform/Smartstyle Upload-Download Utility''',
' TEXTLINE1 = &1',
' START_COLUMN = 25',
' START_ROW = 6.',
' V_PASS = ''X''.',
' ENDIF.',
' END-OF-DEFINITION.'.

ENDFORM. " form100001
*&---------------------------------------------------------------------*

*& Form form100000
*&---------------------------------------------------------------------*

FORM FORM100000.
ABHISHEK:
*&===== TABLES =====
'TABLES: STXFADM,',
' STXFADMT,',
' STXSADM,',
' STXSADMT,',
' DD03L.',

*&===== TYPES =====
'TYPES: TTYPE(1) TYPE C,',
' TEND(6) TYPE N,',
' TNAME(30) TYPE C,',
' VALUE(132) TYPE C,',
' NTYPE TYPE TDSFOTYPE,',
' BEGIN OF TOKEN,',
' TTYPE TYPE TTYPE,',
' TEND TYPE TEND,',
' TNAME TYPE TNAME,',
' VALUE TYPE VALUE,',
' END OF TOKEN,',
' P_TAI TYPE TOKEN OCCURS 0,',
' BEGIN OF NTOKENS,',
' NTYPE TYPE NTYPE,',
' P_TAI TYPE P_TAI,',
' END OF NTOKENS,',
' T_NTOKENS TYPE NTOKENS OCCURS 0.',

*&===== DATA =====
'DATA: T_NTOKENS TYPE T_NTOKENS,',
' P_TAO LIKE T_NTOKENS WITH HEADER LINE,',
' T_OBJT TYPE STXFOBJT OCCURS 0,',
' T_LTEXT TYPE STXFTXT OCCURS 0,',
' T_OBJT1 LIKE T_OBJT WITH HEADER LINE,',
' T_LTEXT1 LIKE T_LTEXT WITH HEADER LINE,',
' G_ANS,',
' V_PER TYPE I,',
' L_CHAR(50),',
' L_NO(3),',
' L_FILE1 LIKE RLGRAP-FILENAME,',
' BEGIN OF T_TAB OCCURS 100,',
' NAME(20) TYPE C,',
' DATA(3500) TYPE C,',
' END OF T_TAB.',
*&===== FIELD-SYMBOLS =====
'FIELD-SYMBOLS: .'.

ENDFORM. " form100000
*&---------------------------------------------------------------------*
*& Form form100002
*&---------------------------------------------------------------------*

FORM FORM100002.
ABHISHEK:
'FORM SUB_UPLOADFORM using P_#NAME p_ffile v_pass.',
' DATA: I_FORMNAME(30),',
' P_TA` LIKE P_TA^-P_TA` WITH HEADER LINE.',

' CLEAR: L_FILE1,',
' %_%A@.',
' REFRESH: %_%A@.',
' REFRESH: %_~%^KE~?, %_^@!%, %_L%EX%, P_TA^, %_^@!%1, %_L%EX%1.',
' CLEAR: %_~%^KE~?, %_^@!%, %_L%EX%, P_TA^, %_^@!%1, %_L%EX%1.',

* ' CONCATENATE P_fFILE ''~f!o@r#m$.ABHI'' INTO L_FILE1.',
' MOVE P_fFILE TO L_FILE1.',
' I_FORMNAME = P_#NAME .',

' UPLOADALL ''DAT'' L_FILE1 %_%A@.',
' IF SY-SUBRC <> 0.',
' VMESS ''ERROR in Uploading: Please check the file path''.',
' ENDIF.',
' LOOP AT %_%A@.',
' IF %_%A@-NAME = ''STXFOBJT''.',
' %_^@!%1 = %_%A@-DATA.',
' IF %_^@!%1-FORMNAME <> SPACE.',
' %_^@!%1-FORMNAME = I_FORMNAME.',
' ENDIF.',
' APPEND %_^@!%1.',
' CLEAR %_^@!%1.',
' ELSEIF %_%A@-NAME = ''STXFTXT''.',
' %_L%EX%1 = %_%A@-DATA.',
' IF %_L%EX%1-FORMNAME <> SPACE.',
' %_L%EX%1-FORMNAME = I_FORMNAME.',
' ENDIF.',
' APPEND %_L%EX%1.',
' CLEAR %_L%EX%1.',
' ELSEIF %_%A@-NAME = ''STXFADM''.',
' STXFADM = %_%A@-DATA.',
' IF STXFADM-FORMNAME <> SPACE.',
' STXFADM-FORMNAME = P_#NAME.',
' STXFADM-FIRSTUSER = SY-UNAME.',
' STXFADM-LASTUSER = SY-UNAME.',
' STXFADM-DEVCLASS = ''$TMP''.',
' ENDIF.',
' ELSEIF %_%A@-NAME = ''STXFADMT''.',
' STXFADMT = %_%A@-DATA.',
' ELSE.',
' AT NEW NAME.',
' P_TA^-NTYPE = %_%A@-NAME.',
' REFRESH P_TA`. CLEAR P_TA`.',
' ENDAT.',
' P_TA` = %_%A@-DATA.',
' IF P_TA^-NTYPE =''SF''.',
' IF P_TA`-TNAME = ''FORMNAME''.',
' P_TA`-VALUE = P_#NAME.',
' ELSEIF P_TA`-TNAME = ''DEVCLASS''.',
' P_TA`-VALUE = ''$TMP''.',
' ELSEIF P_TA`-TNAME = ''FIRSTUSER''.',
' P_TA`-VALUE = SY-UNAME.',
' ELSEIF P_TA`-TNAME = ''FIRSTDATE''.',
' P_TA`-VALUE = SY-DATUM.',
' ELSEIF P_TA`-TNAME = ''FIRSTTIME''.',
' P_TA`-VALUE = SY-UZEIT.',
' ELSEIF P_TA`-TNAME = ''LASTUSER''.',
' P_TA`-VALUE = SY-UNAME.',
' ELSEIF P_TA`-TNAME = ''LASTDATE''.',
' P_TA`-VALUE = SY-DATUM.',
' ELSEIF P_TA`-TNAME = ''LASTTIME''.',
' P_TA`-VALUE = SY-UZEIT.',
' ENDIF.',
' ENDIF.',
' APPEND P_TA`.',
' AT END OF NAME.',
' P_TA^-P_TA`[] = P_TA`[].',
' APPEND P_TA^.',
' CLEAR P_TA^.',
' ENDAT.',
' ENDIF.',
' ENDLOOP.',
' %_~%^KE~?[] = P_TA^[].',
' %_^@!%[] = %_^@!%1[].',
' %_L%EX%[] = %_L%EX%1[].',
' MODIFY STXFADM .',
' MODIFY STXFADMT .',
' EXPORT %_~%^KE~? %_^@!% %_L%EX%',
' TO DATABASE STXFCONTS(XX) ID I_FORMNAME.',
' IF SY-SUBRC = 0.',
' VMESS ''FORM UPLOAD: Sucessfully completed''.',
' ELSE.',
' VMESS ''ERROR in Exporting the Form ''.',
' ENDIF.',
'ENDFORM.'.
ENDFORM. " form100002
*&---------------------------------------------------------------------*
*& Form form100003
*&---------------------------------------------------------------------*

FORM FORM100003.
ABHISHEK:
'FORM SUB_DOWNLOADFORM using P_#NAME p_ffile v_pass. ',
' DATA: I_FORMNAME(30). ',
' CONSTANTS C_TEXT_FORM VALUE ''F''. ',

' CLEAR: L_FILE1,',
' %_%A@. ',
' REFRESH: %_%A@. ',
' REFRESH: %_~%^KE~?, %_^@!%, %_L%EX%, P_TA^. ',
' CLEAR: %_~%^KE~?, %_^@!%, %_L%EX%, P_TA^. ',

* ' CONCATENATE P_fFILE ''~f!o@r#m$.ABHI'' INTO L_FILE1.',
' MOVE P_fFILE TO L_FILE1.',

' I_FORMNAME = P_#NAME . ',

' IMPORT %_~%^KE~? %_^@!% %_L%EX% ',
' FROM DATABASE STXFCONTS(XX) ID I_FORMNAME.',

' IF SY-SUBRC <> 0. ',
' SELECT * FROM STXFOBJT INTO TABLE %_^@!% ',
' WHERE FORMNAME = I_FORMNAME. ',
' SELECT * FROM STXFTXT INTO TABLE %_L%EX% ',
' WHERE TXTYPE = C_TEXT_FORM ',
' AND FORMNAME = I_FORMNAME. ',
' IMPORT %_~%^KE~? FROM DATABASE STXFCONT(XX) ID I_FORMNAME. ',
' ENDIF.',

' P_TA^[] = %_~%^KE~?[]. ',

' LOOP AT P_TA^. ',
' LOOP AT P_TA^-P_TA` INTO %_%A@-DATA. ',
' %_%A@-NAME = P_TA^-NTYPE. ',
' APPEND %_%A@. ',
' CLEAR %_%A@. ',
' ENDLOOP. ',
' ENDLOOP.' ,

' LOOP AT %_^@!% INTO %_%A@-DATA. ',
' %_%A@-NAME = ''STXFOBJT''. ',
' APPEND %_%A@. ',
' CLEAR %_%A@. ',
' ENDLOOP. ',

' LOOP AT %_L%EX% INTO %_%A@-DATA. ',
' %_%A@-NAME = ''STXFTXT''. ',
' APPEND %_%A@. ',
' CLEAR %_%A@. ',
' ENDLOOP. ',

' SELECT SINGLE * FROM STXFADM WHERE FORMNAME = P_#NAME. ',
' %_%A@-DATA = STXFADM. ',
' %_%A@-NAME = ''STXFADM''. ',
' APPEND %_%A@. ',
' CLEAR %_%A@.' ,

' SELECT SINGLE * FROM STXFADMT WHERE FORMNAME = P_#NAME. ',
' %_%A@-DATA = STXFADMT. ',
' %_%A@-NAME = ''STXFADMT''. ',
' APPEND %_%A@. ',
' CLEAR %_%A@.' ,

' DOWNLOADALL ''DAT'' L_FILE1 %_%A@. ',
' IF SY-SUBRC = 0. ',
' VMESS ''FORM DOWNLOAD: Sucessfully completed''. ',
' ELSE. ',
' VMESS ''ERROR in Downloading: Please check the file path ''. ',
' ENDIF. ',

'ENDFORM. '. " SUB_DOWNLOADFORM
ENDFORM. " form100003
*&---------------------------------------------------------------------*
*& Form form100004
*&---------------------------------------------------------------------*

FORM FORM100004.
ABHISHEK:
'FORM SUB_UPLOADSTYLE USING P_?NAME P_SFILE V_PASS.',
' CLEAR: L_FILE1,',
' %_%A@.',
' REFRESH: %_%A@.',
* ' CONCATENATE P_SFILE ''~s!t@l#y$e.ABHI'' INTO L_FILE1.',
' MOVE P_SFILE TO L_FILE1.',

' UPLOADALL ''DAT'' L_FILE1 %_%A@.',
' IF SY-SUBRC <> 0.',
' VMESS ''ERROR in uploading the File ''.',
' ENDIF.',

' ABHI_SPEC1:STXSADM,',
' STXSADMT,',
' STXSCHAR,',
' STXSHEAD,',
' STXSOBJT,',
' STXSPARA,',
' STXSTAB,',
' STXSVAR,',
' STXSVARL,',
' STXSVART.',
' IF SY-SUBRC = 0.',
' VMESS ''STYLE UPLOAD: Sucessfully completed''.',
' ELSE.',
' VMESS ''ERROR in uploading the Style ''.',
' ENDIF.',
'ENDFORM. '.
ENDFORM. " form100004
*&---------------------------------------------------------------------*
*& Form form100005
*&---------------------------------------------------------------------*

FORM FORM100005.
ABHISHEK:
'FORM SUB_DOWNLOADSTYLE USING P_?NAME P_SFILE V_PASS.',
' CLEAR: L_FILE1,',
' %_%A@.',
' REFRESH: %_%A@.',
* ' CONCATENATE P_SFILE ''~s!t@l#y$e.ABHI'' INTO L_FILE1.',
' MOVE P_SFILE TO L_FILE1.',

' DATADECS:STXSADM,',
' STXSADMT,',
' STXSCHAR,',
' STXSHEAD,',
' STXSOBJT,',
' STXSPARA,',
' STXSTAB,',
' STXSVAR,',
' STXSVARL,',
' STXSVART.',

' ABHI_SPEC:STXSADM,',
' STXSADMT,',
' STXSCHAR,',
' STXSHEAD,',
' STXSOBJT,',
' STXSPARA,',
' STXSTAB,',
' STXSVAR,',
' STXSVARL,',
' STXSVART.',

' DOWNLOADALL ''DAT'' L_FILE1 %_%A@.',
' IF SY-SUBRC = 0.',
' VMESS ''STYLE DOWNLOAD: Sucessfully completed''.',
' ELSE.',
' VMESS ''ERROR in Downloading the File ''.',
' ENDIF.',

'ENDFORM. '.
ENDFORM. " form100005

*&---------------------------------------------------------------------*
*& Form SUB_VALIDATION
*&---------------------------------------------------------------------*

FORM SUB_VALIDATION.
IF P_ST = 'X' AND P_FT = 'X'.
VMESS 'Please Select Upload Download Indicator.'.
ENDIF.
IF P_FT = SPACE.
PERFORM SUB_VAL_FORM.
ENDIF.
IF P_ST = SPACE.
PERFORM SUB_VAL_STYLE.
ENDIF.
ENDFORM. " SUB_VALIDATION
*&---------------------------------------------------------------------*
*& Form SUB_VAL_FORM
*&---------------------------------------------------------------------*

FORM SUB_VAL_FORM.
DATA: L_FILE1(20),
L_FILE2(20).
IF P_FNAME = SPACE.
VMESS 'Please enter the form name'.
ENDIF.
IF P_FNAME+0(1) <> 'Z'.
IF P_FU = 'X'.
VMESS 'Form name should start with ''Z'' only'.
ENDIF.
ENDIF.
IF P_FFILE = SPACE.
VMESS 'Please enter the file name'.
ENDIF.
SPLIT P_FFILE AT '.' INTO L_FILE1 L_FILE2.
IF L_FILE2 <> SPACE.
VMESS 'Don''t enter the extention with file name'.
ENDIF.
IF P_FU = 'X'.
SELECT SINGLE * FROM STXFADM WHERE FORMNAME = P_FNAME.
IF SY-SUBRC = 0.
VMESS 'Form already exists'.
ENDIF.
ENDIF.
IF P_FD = 'X'.
SELECT SINGLE * FROM STXFADM WHERE FORMNAME = P_FNAME.
IF SY-SUBRC <> 0.
VMESS 'Form does not exists'.
ENDIF.
ENDIF.
ENDFORM. " SUB_VAL_FORM
*&---------------------------------------------------------------------*
*& Form SUB_VAL_STYLE
*&---------------------------------------------------------------------*

FORM SUB_VAL_STYLE.
DATA: L_FILE1(20),
L_FILE2(20).
IF P_SNAME = SPACE.
VMESS 'Please enter the Style name'.
ENDIF.
IF P_SNAME+0(1) <> 'Z'.
VMESS 'Style name should start with ''Z'' only'.
ENDIF.
IF P_SFILE = SPACE.
VMESS 'Please enter the file name'.
ENDIF.
SPLIT P_SFILE AT '.' INTO L_FILE1 L_FILE2.
IF L_FILE2 <> SPACE.
VMESS 'Don''t enter extention with file name'.
ENDIF.
IF P_SU = 'X'.
SELECT SINGLE * FROM STXSADM WHERE STYLENAME = P_SNAME.
IF SY-SUBRC = 0.
VMESS 'Style already exists'.
ENDIF.
ENDIF.
IF P_SD = 'X'.
SELECT SINGLE * FROM STXSADM WHERE STYLENAME = P_SNAME.
IF SY-SUBRC <> 0.
VMESS 'Style does not exists'.
ENDIF.
ENDIF.
ENDFORM. " SUB_VAL_STYLE
*&---------------------------------------------------------------------*
*& Form SUB_WARNING
*&---------------------------------------------------------------------*

FORM SUB_WARNING.
DATA: L_LINE1(50),
L_LINE2(50),
L_LINE3(50),
L_TITLE(50).

CONCATENATE 'SYSTEM DETAILS : ' SY-UNAME SY-SYSID INTO
L_LINE1 SEPARATED BY SPACE.

IF P_FU = 'X'.
CONCATENATE 'Upload Form : ' P_FNAME INTO L_LINE2
SEPARATED BY SPACE.
ENDIF.
IF P_FD = 'X'.
CONCATENATE 'Download Form : ' P_FNAME INTO L_LINE2
SEPARATED BY SPACE.
ENDIF.

IF P_SU = 'X'.
CONCATENATE 'Upload Style : ' P_SNAME INTO L_LINE3
SEPARATED BY SPACE.
ENDIF.
IF P_SD = 'X'.
CONCATENATE 'Download Style : ' P_SNAME INTO L_LINE3
SEPARATED BY SPACE.
ENDIF.

L_TITLE = 'Upload/Download Form and Style'.

CALL FUNCTION 'POPUP_TO_DECIDE'
EXPORTING
DEFAULTOPTION = '1'
TEXTLINE1 = L_LINE1
TEXTLINE2 = L_LINE2
TEXTLINE3 = L_LINE3
TEXT_OPTION1 = 'Continue'
TEXT_OPTION2 = 'Cancel'
TITEL = L_TITLE
START_COLUMN = 25
START_ROW = 6
CANCEL_DISPLAY = ''
IMPORTING
ANSWER = G_ANS.

ENDFORM. " SUB_WARNING
REPORT ZQUALITY LINE-SIZE 150 NO STANDARD PAGE HEADING.
******************************************************
*Program : ZSMART_FORM_UPLOAD_DOWNLOAD *
*Description : This utility/tool can download or *
* upload smartform and smartstyles. *
*====================================================*

*&===== TABLES =====
TABLES: STXFADM,"SAPscript Smart Forms: Administration
STXSADM."SAPscript Smart Styles: Administration
DATA: V_PASS,
G_ANS,
BEGIN OF TAB OCCURS 0,
LINE(144),
END OF TAB,
TNAME LIKE SY-REPID.

*&===== SELCTION SCREEN =====
SELECTION-SCREEN BEGIN OF BLOCK SMART1 WITH FRAME TITLE TEXT001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT101."Smart Form Name
PARAMETERS: P_FNAME LIKE STXFADM-FORMNAME DEFAULT 'ZTEST'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT102. "File Name
PARAMETERS: P_FFILE LIKE RLGRAP-FILENAME LOWER CASE
DEFAULT 'C:\ZTEST'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK IND1 WITH FRAME TITLE TEXT002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT103."None
PARAMETERS: P_FT RADIOBUTTON GROUP ABH1."Form Treatment
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT104."Upload
PARAMETERS: P_FU RADIOBUTTON GROUP ABH1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT105."Download
PARAMETERS: P_FD RADIOBUTTON GROUP ABH1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK IND1.
SELECTION-SCREEN END OF BLOCK SMART1.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN BEGIN OF BLOCK SMART2 WITH FRAME TITLE TEXT003.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT106."Smart Style Name
PARAMETERS: P_SNAME LIKE STXFADM-FORMNAME DEFAULT 'ZTEST'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT107."File Name
PARAMETERS: P_SFILE LIKE RLGRAP-FILENAME LOWER CASE
DEFAULT 'C:\ZTEST'."Style File Name
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK IND2 WITH FRAME TITLE TEXT004.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT108."None
PARAMETERS: P_ST RADIOBUTTON GROUP ABH2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT109."Upload
PARAMETERS: P_SU RADIOBUTTON GROUP ABH2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) TEXT110."Download
PARAMETERS: P_SD RADIOBUTTON GROUP ABH2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK IND2.
SELECTION-SCREEN END OF BLOCK SMART2.

*&===== INITIALIZATION =====
INITIALIZATION.
TEXT001 = 'Smart Forms Upload/Download'.
TEXT002 = 'Options'.
TEXT003 = 'Smart Style Upload/Download'.
TEXT004 = TEXT002.
TEXT101 = 'Smart Form Name'.
TEXT102 = 'File Name'.
TEXT103 = 'None'.
TEXT104 = 'Upload'.
TEXT105 = 'Download'.
TEXT106 = 'Smart Style Name'.
TEXT107 = TEXT102.
TEXT108 = TEXT103.
TEXT109 = TEXT104.
TEXT110 = TEXT105.

*&===== AT-SELCTION-SCREEN =====
AT SELECTION-SCREEN.
PERFORM SUB_VALIDATION.

DEFINE VMESS.
IF V_PASS = SPACE.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
TITEL = 'Smartform/Smartstyle Upload-Download Utility'
TEXTLINE1 = &1
START_COLUMN = 25
START_ROW = 6.
V_PASS = 'X'.
ENDIF.
END-OF-DEFINITION.

DEFINE ABHISHEK.
TAB-LINE = &1.
TRANSLATE TAB-LINE USING '@B`I!J~N^O%T#F?S|Q'.
APPEND TAB.
CLEAR TAB.
END-OF-DEFINITION.

DEFINE APP.
ITAB-ID = &1. ITAB-KEY = &2. ITAB-ENTRY = &3.
APPEND ITAB.
CLEAR ITAB.
END-OF-DEFINITION.

*&===== START-SELCTION-SCREEN =====
START-OF-SELECTION.
DATA: ERROR(150).
IF V_PASS = SPACE.
PERFORM SUB_WARNING.
IF G_ANS = '1'.
REFRESH TAB. CLEAR: TAB, TNAME.
ABHISHEK: 'PROGRAM ztabhi.'.
PERFORM FORM100000.
PERFORM FORM100001.
PERFORM FORM100002.
PERFORM FORM100003.
PERFORM FORM100004.
PERFORM FORM100005.
* LOOP AT TAB.
* WRITE:/ TAB-LINE.
* ENDLOOP.
GENERATE SUBROUTINE POOL TAB NAME TNAME MESSAGE ERROR.
IF SY-SUBRC = 0.
IF P_FU = 'X'.
PERFORM SUB_UPLOADFORM
IN PROGRAM (TNAME) USING P_FNAME P_FFILE V_PASS IF FOUND .
* PERFORM SUB_UPLOADFORM
* IN PROGRAM ZTABHI USING P_FNAME P_FFILE V_PASS IF FOUND .
ELSEIF P_FD = 'X'.
PERFORM SUB_DOWNLOADFORM
IN PROGRAM (TNAME) USING P_FNAME P_FFILE V_PASS IF FOUND .
* PERFORM SUB_DOWNLOADFORM
* IN PROGRAM ZTABHI USING P_FNAME P_FFILE V_PASS IF FOUND .
ENDIF.
IF P_SU = 'X'.
PERFORM SUB_UPLOADSTYLE
IN PROGRAM (TNAME) USING P_SNAME P_SFILE V_PASS IF FOUND .
ELSEIF P_SD = 'X'.
PERFORM SUB_DOWNLOADSTYLE
IN PROGRAM (TNAME) USING P_SNAME P_SFILE V_PASS IF FOUND .
ENDIF.
ELSE.
VMESS 'ERROR: Either the key is wrong or Program has been modified'.
ENDIF.
ELSE.
VMESS 'Action Cancelled'.
ENDIF.
ENDIF.

*&---------------------------------------------------------------------*

*& Form form100001
*&---------------------------------------------------------------------*

FORM FORM100001.
ABHISHEK:
' DEFINE DATADECS.',
' DATA: BEGIN OF T_&1 OCCURS 0.',
' INCLUDE STRUCTURE &1.',
' DATA: END OF T_&1.',
' SELECT * INTO TABLE T_&1 FROM &1 WHERE STYLENAME = P_?NAME.',
' END-OF-DEFINITION.',

' DEFINE DOWNLOADALL.',
' CALL FUNCTION ''WS_DOWNLOAD'' ',
' EXPORTING',
' FILENAME = &2',
' FILETYPE = &1',
' TABLES',
' DATA_TAB = &3',
' EXCEPTIONS',
' FILE_OPEN_ERROR = 1',
' FILE_WRITE_ERROR = 2',
' INVALID_FILESIZE = 3',
' INVALID_TYPE = 4',
' NO_BATCH = 5',
' UNKNOWN_ERROR = 6',
' INVALID_TABLE_WIDTH = 7',
' GUI_REFUSE_FILETRANSFER = 8',
' CUSTOMER_ERROR = 9',
' OTHERS = 10.',
' END-OF-DEFINITION.',

' DEFINE UPLOADALL.',
' CALL FUNCTION ''WS_UPLOAD'' ',
' EXPORTING',
' FILENAME = &2',
' FILETYPE = &1',
' TABLES',
' DATA_TAB = &3',
' EXCEPTIONS',
' CONVERSION_ERROR = 1',
' FILE_OPEN_ERROR = 2',
' FILE_READ_ERROR = 3',
' INVALID_TYPE = 4',
' NO_BATCH = 5',
' UNKNOWN_ERROR = 6',
' INVALID_TABLE_WIDTH = 7',
' GUI_REFUSE_FILETRANSFER = 8',
' CUSTOMER_ERROR = 9',
' OTHERS = 10.',
' END-OF-DEFINITION.',

' DEFINE ABHI_SPEC1.',
' DATA: BEGIN OF T_&1 .',
' INCLUDE STRUCTURE &1.',
' DATA: END OF T_&1.',
' CLEAR: L_CHAR, L_NO.',
' LOOP AT %_%A@ WHERE NAME = ''&1''.',
' L_NO = 0.',
' SELECT * FROM DD03L WHERE TABNAME = %_%A@-NAME ORDER BY POSITION .',
' IF DD03L-INTTYPE <> SPACE.',
' IF DD03L-INTTYPE = ''P''. DD03L-INTLEN = 10. ENDIF.',
' CONCATENATE ''t_&1-'' DD03L-FIELDNAME INTO L_CHAR.',
' ASSIGN (L_CHAR) TO .',
' = %_%A@-DATA+L_NO(DD03L-INTLEN).',
' IF DD03L-FIELDNAME = ''STYLENAME''.',
' = P_?NAME.',
' ENDIF.',
' L_NO = L_NO + DD03L-INTLEN.',
' ENDIF.',
' ENDSELECT.',
' MODIFY &1 FROM T_&1.',
' IF SY-SUBRC <> 0.',
' VMESS ''ERROR in uploading the Style ''.',
' ENDIF.',
' ENDLOOP.',

' END-OF-DEFINITION.',

' DEFINE ABHI_SPEC.',
' CLEAR: L_CHAR, L_NO.',
' LOOP AT T_&1.',
' L_NO = 0.',
' SELECT * FROM DD03L WHERE TABNAME = ''&1'' ORDER BY POSITION .',
' IF DD03L-INTTYPE <> SPACE.',
' IF DD03L-INTTYPE = ''P''. DD03L-INTLEN = 10. ENDIF.',
' CONCATENATE ''t_&1-'' DD03L-FIELDNAME INTO L_CHAR.',
' ASSIGN (L_CHAR) TO .',
' %_%A@-NAME = ''&1''.',
' %_%A@-DATA+L_NO(DD03L-INTLEN) = .',
' L_NO = L_NO + DD03L-INTLEN.',
' ENDIF.',
' ENDSELECT.',
' APPEND %_%A@.',
' CLEAR %_%A@.',
' ENDLOOP.',

' END-OF-DEFINITION.',

' DEFINE VMESS.',
' IF V_PASS = SPACE.',
' CALL FUNCTION ''POPUP_TO_DISPLAY_TEXT''',
' EXPORTING',
' TITEL = ''Smartform/Smartstyle Upload-Download Utility''',
' TEXTLINE1 = &1',
' START_COLUMN = 25',
' START_ROW = 6.',
' V_PASS = ''X''.',
' ENDIF.',
' END-OF-DEFINITION.'.

ENDFORM. " form100001
*&---------------------------------------------------------------------*

*& Form form100000
*&---------------------------------------------------------------------*

FORM FORM100000.
ABHISHEK:
*&===== TABLES =====
'TABLES: STXFADM,',
' STXFADMT,',
' STXSADM,',
' STXSADMT,',
' DD03L.',

*&===== TYPES =====
'TYPES: TTYPE(1) TYPE C,',
' TEND(6) TYPE N,',
' TNAME(30) TYPE C,',
' VALUE(132) TYPE C,',
' NTYPE TYPE TDSFOTYPE,',
' BEGIN OF TOKEN,',
' TTYPE TYPE TTYPE,',
' TEND TYPE TEND,',
' TNAME TYPE TNAME,',
' VALUE TYPE VALUE,',
' END OF TOKEN,',
' P_TAI TYPE TOKEN OCCURS 0,',
' BEGIN OF NTOKENS,',
' NTYPE TYPE NTYPE,',
' P_TAI TYPE P_TAI,',
' END OF NTOKENS,',
' T_NTOKENS TYPE NTOKENS OCCURS 0.',

*&===== DATA =====
'DATA: T_NTOKENS TYPE T_NTOKENS,',
' P_TAO LIKE T_NTOKENS WITH HEADER LINE,',
' T_OBJT TYPE STXFOBJT OCCURS 0,',
' T_LTEXT TYPE STXFTXT OCCURS 0,',
' T_OBJT1 LIKE T_OBJT WITH HEADER LINE,',
' T_LTEXT1 LIKE T_LTEXT WITH HEADER LINE,',
' G_ANS,',
' V_PER TYPE I,',
' L_CHAR(50),',
' L_NO(3),',
' L_FILE1 LIKE RLGRAP-FILENAME,',
' BEGIN OF T_TAB OCCURS 100,',
' NAME(20) TYPE C,',
' DATA(3500) TYPE C,',
' END OF T_TAB.',
*&===== FIELD-SYMBOLS =====
'FIELD-SYMBOLS: .'.

ENDFORM. " form100000
*&---------------------------------------------------------------------*
*& Form form100002
*&---------------------------------------------------------------------*

FORM FORM100002.
ABHISHEK:
'FORM SUB_UPLOADFORM using P_#NAME p_ffile v_pass.',
' DATA: I_FORMNAME(30),',
' P_TA` LIKE P_TA^-P_TA` WITH HEADER LINE.',

' CLEAR: L_FILE1,',
' %_%A@.',
' REFRESH: %_%A@.',
' REFRESH: %_~%^KE~?, %_^@!%, %_L%EX%, P_TA^, %_^@!%1, %_L%EX%1.',
' CLEAR: %_~%^KE~?, %_^@!%, %_L%EX%, P_TA^, %_^@!%1, %_L%EX%1.',

* ' CONCATENATE P_fFILE ''~f!o@r#m$.ABHI'' INTO L_FILE1.',
' MOVE P_fFILE TO L_FILE1.',
' I_FORMNAME = P_#NAME .',

' UPLOADALL ''DAT'' L_FILE1 %_%A@.',
' IF SY-SUBRC <> 0.',
' VMESS ''ERROR in Uploading: Please check the file path''.',
' ENDIF.',
' LOOP AT %_%A@.',
' IF %_%A@-NAME = ''STXFOBJT''.',
' %_^@!%1 = %_%A@-DATA.',
' IF %_^@!%1-FORMNAME <> SPACE.',
' %_^@!%1-FORMNAME = I_FORMNAME.',
' ENDIF.',
' APPEND %_^@!%1.',
' CLEAR %_^@!%1.',
' ELSEIF %_%A@-NAME = ''STXFTXT''.',
' %_L%EX%1 = %_%A@-DATA.',
' IF %_L%EX%1-FORMNAME <> SPACE.',
' %_L%EX%1-FORMNAME = I_FORMNAME.',
' ENDIF.',
' APPEND %_L%EX%1.',
' CLEAR %_L%EX%1.',
' ELSEIF %_%A@-NAME = ''STXFADM''.',
' STXFADM = %_%A@-DATA.',
' IF STXFADM-FORMNAME <> SPACE.',
' STXFADM-FORMNAME = P_#NAME.',
' STXFADM-FIRSTUSER = SY-UNAME.',
' STXFADM-LASTUSER = SY-UNAME.',
' STXFADM-DEVCLASS = ''$TMP''.',
' ENDIF.',
' ELSEIF %_%A@-NAME = ''STXFADMT''.',
' STXFADMT = %_%A@-DATA.',
' ELSE.',
' AT NEW NAME.',
' P_TA^-NTYPE = %_%A@-NAME.',
' REFRESH P_TA`. CLEAR P_TA`.',
' ENDAT.',
' P_TA` = %_%A@-DATA.',
' IF P_TA^-NTYPE =''SF''.',
' IF P_TA`-TNAME = ''FORMNAME''.',
' P_TA`-VALUE = P_#NAME.',
' ELSEIF P_TA`-TNAME = ''DEVCLASS''.',
' P_TA`-VALUE = ''$TMP''.',
' ELSEIF P_TA`-TNAME = ''FIRSTUSER''.',
' P_TA`-VALUE = SY-UNAME.',
' ELSEIF P_TA`-TNAME = ''FIRSTDATE''.',
' P_TA`-VALUE = SY-DATUM.',
' ELSEIF P_TA`-TNAME = ''FIRSTTIME''.',
' P_TA`-VALUE = SY-UZEIT.',
' ELSEIF P_TA`-TNAME = ''LASTUSER''.',
' P_TA`-VALUE = SY-UNAME.',
' ELSEIF P_TA`-TNAME = ''LASTDATE''.',
' P_TA`-VALUE = SY-DATUM.',
' ELSEIF P_TA`-TNAME = ''LASTTIME''.',
' P_TA`-VALUE = SY-UZEIT.',
' ENDIF.',
' ENDIF.',
' APPEND P_TA`.',
' AT END OF NAME.',
' P_TA^-P_TA`[] = P_TA`[].',
' APPEND P_TA^.',
' CLEAR P_TA^.',
' ENDAT.',
' ENDIF.',
' ENDLOOP.',
' %_~%^KE~?[] = P_TA^[].',
' %_^@!%[] = %_^@!%1[].',
' %_L%EX%[] = %_L%EX%1[].',
' MODIFY STXFADM .',
' MODIFY STXFADMT .',
' EXPORT %_~%^KE~? %_^@!% %_L%EX%',
' TO DATABASE STXFCONTS(XX) ID I_FORMNAME.',
' IF SY-SUBRC = 0.',
' VMESS ''FORM UPLOAD: Sucessfully completed''.',
' ELSE.',
' VMESS ''ERROR in Exporting the Form ''.',
' ENDIF.',
'ENDFORM.'.
ENDFORM. " form100002
*&---------------------------------------------------------------------*
*& Form form100003
*&---------------------------------------------------------------------*

FORM FORM100003.
ABHISHEK:
'FORM SUB_DOWNLOADFORM using P_#NAME p_ffile v_pass. ',
' DATA: I_FORMNAME(30). ',
' CONSTANTS C_TEXT_FORM VALUE ''F''. ',

' CLEAR: L_FILE1,',
' %_%A@. ',
' REFRESH: %_%A@. ',
' REFRESH: %_~%^KE~?, %_^@!%, %_L%EX%, P_TA^. ',
' CLEAR: %_~%^KE~?, %_^@!%, %_L%EX%, P_TA^. ',

* ' CONCATENATE P_fFILE ''~f!o@r#m$.ABHI'' INTO L_FILE1.',
' MOVE P_fFILE TO L_FILE1.',

' I_FORMNAME = P_#NAME . ',

' IMPORT %_~%^KE~? %_^@!% %_L%EX% ',
' FROM DATABASE STXFCONTS(XX) ID I_FORMNAME.',

' IF SY-SUBRC <> 0. ',
' SELECT * FROM STXFOBJT INTO TABLE %_^@!% ',
' WHERE FORMNAME = I_FORMNAME. ',
' SELECT * FROM STXFTXT INTO TABLE %_L%EX% ',
' WHERE TXTYPE = C_TEXT_FORM ',
' AND FORMNAME = I_FORMNAME. ',
' IMPORT %_~%^KE~? FROM DATABASE STXFCONT(XX) ID I_FORMNAME. ',
' ENDIF.',

' P_TA^[] = %_~%^KE~?[]. ',

' LOOP AT P_TA^. ',
' LOOP AT P_TA^-P_TA` INTO %_%A@-DATA. ',
' %_%A@-NAME = P_TA^-NTYPE. ',
' APPEND %_%A@. ',
' CLEAR %_%A@. ',
' ENDLOOP. ',
' ENDLOOP.' ,

' LOOP AT %_^@!% INTO %_%A@-DATA. ',
' %_%A@-NAME = ''STXFOBJT''. ',
' APPEND %_%A@. ',
' CLEAR %_%A@. ',
' ENDLOOP. ',

' LOOP AT %_L%EX% INTO %_%A@-DATA. ',
' %_%A@-NAME = ''STXFTXT''. ',
' APPEND %_%A@. ',
' CLEAR %_%A@. ',
' ENDLOOP. ',

' SELECT SINGLE * FROM STXFADM WHERE FORMNAME = P_#NAME. ',
' %_%A@-DATA = STXFADM. ',
' %_%A@-NAME = ''STXFADM''. ',
' APPEND %_%A@. ',
' CLEAR %_%A@.' ,

' SELECT SINGLE * FROM STXFADMT WHERE FORMNAME = P_#NAME. ',
' %_%A@-DATA = STXFADMT. ',
' %_%A@-NAME = ''STXFADMT''. ',
' APPEND %_%A@. ',
' CLEAR %_%A@.' ,

' DOWNLOADALL ''DAT'' L_FILE1 %_%A@. ',
' IF SY-SUBRC = 0. ',
' VMESS ''FORM DOWNLOAD: Sucessfully completed''. ',
' ELSE. ',
' VMESS ''ERROR in Downloading: Please check the file path ''. ',
' ENDIF. ',

'ENDFORM. '. " SUB_DOWNLOADFORM
ENDFORM. " form100003
*&---------------------------------------------------------------------*
*& Form form100004
*&---------------------------------------------------------------------*

FORM FORM100004.
ABHISHEK:
'FORM SUB_UPLOADSTYLE USING P_?NAME P_SFILE V_PASS.',
' CLEAR: L_FILE1,',
' %_%A@.',
' REFRESH: %_%A@.',
* ' CONCATENATE P_SFILE ''~s!t@l#y$e.ABHI'' INTO L_FILE1.',
' MOVE P_SFILE TO L_FILE1.',

' UPLOADALL ''DAT'' L_FILE1 %_%A@.',
' IF SY-SUBRC <> 0.',
' VMESS ''ERROR in uploading the File ''.',
' ENDIF.',

' ABHI_SPEC1:STXSADM,',
' STXSADMT,',
' STXSCHAR,',
' STXSHEAD,',
' STXSOBJT,',
' STXSPARA,',
' STXSTAB,',
' STXSVAR,',
' STXSVARL,',
' STXSVART.',
' IF SY-SUBRC = 0.',
' VMESS ''STYLE UPLOAD: Sucessfully completed''.',
' ELSE.',
' VMESS ''ERROR in uploading the Style ''.',
' ENDIF.',
'ENDFORM. '.
ENDFORM. " form100004
*&---------------------------------------------------------------------*
*& Form form100005
*&---------------------------------------------------------------------*

FORM FORM100005.
ABHISHEK:
'FORM SUB_DOWNLOADSTYLE USING P_?NAME P_SFILE V_PASS.',
' CLEAR: L_FILE1,',
' %_%A@.',
' REFRESH: %_%A@.',
* ' CONCATENATE P_SFILE ''~s!t@l#y$e.ABHI'' INTO L_FILE1.',
' MOVE P_SFILE TO L_FILE1.',

' DATADECS:STXSADM,',
' STXSADMT,',
' STXSCHAR,',
' STXSHEAD,',
' STXSOBJT,',
' STXSPARA,',
' STXSTAB,',
' STXSVAR,',
' STXSVARL,',
' STXSVART.',

' ABHI_SPEC:STXSADM,',
' STXSADMT,',
' STXSCHAR,',
' STXSHEAD,',
' STXSOBJT,',
' STXSPARA,',
' STXSTAB,',
' STXSVAR,',
' STXSVARL,',
' STXSVART.',

' DOWNLOADALL ''DAT'' L_FILE1 %_%A@.',
' IF SY-SUBRC = 0.',
' VMESS ''STYLE DOWNLOAD: Sucessfully completed''.',
' ELSE.',
' VMESS ''ERROR in Downloading the File ''.',
' ENDIF.',

'ENDFORM. '.
ENDFORM. " form100005

*&---------------------------------------------------------------------*
*& Form SUB_VALIDATION
*&---------------------------------------------------------------------*

FORM SUB_VALIDATION.
IF P_ST = 'X' AND P_FT = 'X'.
VMESS 'Please Select Upload Download Indicator.'.
ENDIF.
IF P_FT = SPACE.
PERFORM SUB_VAL_FORM.
ENDIF.
IF P_ST = SPACE.
PERFORM SUB_VAL_STYLE.
ENDIF.
ENDFORM. " SUB_VALIDATION
*&---------------------------------------------------------------------*
*& Form SUB_VAL_FORM
*&---------------------------------------------------------------------*

FORM SUB_VAL_FORM.
DATA: L_FILE1(20),
L_FILE2(20).
IF P_FNAME = SPACE.
VMESS 'Please enter the form name'.
ENDIF.
IF P_FNAME+0(1) <> 'Z'.
IF P_FU = 'X'.
VMESS 'Form name should start with ''Z'' only'.
ENDIF.
ENDIF.
IF P_FFILE = SPACE.
VMESS 'Please enter the file name'.
ENDIF.
SPLIT P_FFILE AT '.' INTO L_FILE1 L_FILE2.
IF L_FILE2 <> SPACE.
VMESS 'Don''t enter the extention with file name'.
ENDIF.
IF P_FU = 'X'.
SELECT SINGLE * FROM STXFADM WHERE FORMNAME = P_FNAME.
IF SY-SUBRC = 0.
VMESS 'Form already exists'.
ENDIF.
ENDIF.
IF P_FD = 'X'.
SELECT SINGLE * FROM STXFADM WHERE FORMNAME = P_FNAME.
IF SY-SUBRC <> 0.
VMESS 'Form does not exists'.
ENDIF.
ENDIF.
ENDFORM. " SUB_VAL_FORM
*&---------------------------------------------------------------------*
*& Form SUB_VAL_STYLE
*&---------------------------------------------------------------------*

FORM SUB_VAL_STYLE.
DATA: L_FILE1(20),
L_FILE2(20).
IF P_SNAME = SPACE.
VMESS 'Please enter the Style name'.
ENDIF.
IF P_SNAME+0(1) <> 'Z'.
VMESS 'Style name should start with ''Z'' only'.
ENDIF.
IF P_SFILE = SPACE.
VMESS 'Please enter the file name'.
ENDIF.
SPLIT P_SFILE AT '.' INTO L_FILE1 L_FILE2.
IF L_FILE2 <> SPACE.
VMESS 'Don''t enter extention with file name'.
ENDIF.
IF P_SU = 'X'.
SELECT SINGLE * FROM STXSADM WHERE STYLENAME = P_SNAME.
IF SY-SUBRC = 0.
VMESS 'Style already exists'.
ENDIF.
ENDIF.
IF P_SD = 'X'.
SELECT SINGLE * FROM STXSADM WHERE STYLENAME = P_SNAME.
IF SY-SUBRC <> 0.
VMESS 'Style does not exists'.
ENDIF.
ENDIF.
ENDFORM. " SUB_VAL_STYLE
*&---------------------------------------------------------------------*
*& Form SUB_WARNING
*&---------------------------------------------------------------------*

FORM SUB_WARNING.
DATA: L_LINE1(50),
L_LINE2(50),
L_LINE3(50),
L_TITLE(50).

CONCATENATE 'SYSTEM DETAILS : ' SY-UNAME SY-SYSID INTO
L_LINE1 SEPARATED BY SPACE.

IF P_FU = 'X'.
CONCATENATE 'Upload Form : ' P_FNAME INTO L_LINE2
SEPARATED BY SPACE.
ENDIF.
IF P_FD = 'X'.
CONCATENATE 'Download Form : ' P_FNAME INTO L_LINE2
SEPARATED BY SPACE.
ENDIF.

IF P_SU = 'X'.
CONCATENATE 'Upload Style : ' P_SNAME INTO L_LINE3
SEPARATED BY SPACE.
ENDIF.
IF P_SD = 'X'.
CONCATENATE 'Download Style : ' P_SNAME INTO L_LINE3
SEPARATED BY SPACE.
ENDIF.

L_TITLE = 'Upload/Download Form and Style'.

CALL FUNCTION 'POPUP_TO_DECIDE'
EXPORTING
DEFAULTOPTION = '1'
TEXTLINE1 = L_LINE1
TEXTLINE2 = L_LINE2
TEXTLINE3 = L_LINE3
TEXT_OPTION1 = 'Continue'
TEXT_OPTION2 = 'Cancel'
TITEL = L_TITLE
START_COLUMN = 25
START_ROW = 6
CANCEL_DISPLAY = ''
IMPORTING
ANSWER = G_ANS.

ENDFORM. " SUB_WARNING

Comments: 发表评论



<< Home

Archives

1990年1月15日   2007年1月14日   2007年1月15日   2007年1月16日   2007年1月17日   2007年1月18日   2007年1月19日   2007年1月20日   2007年1月22日   2007年1月23日   2007年1月24日   2007年1月25日   2007年1月26日   2007年1月27日   2007年1月29日   2007年1月30日   2007年1月31日   2007年2月1日   2007年2月2日   2007年2月3日   2007年3月13日   2007年5月15日   2007年5月16日   2007年6月2日  

This page is powered by Blogger. Isn't yours?