SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Smartform upload / download utility



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Smartforms, SapScripts, PDF
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1640

PostPosted: Wed Dec 19, 2007 12:43 am    Post subject: Smartform upload / download utility Reply with quote

Code:
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. *
*
*================================================= =====================*
* *
* Abhishek is not responsible for any damages caused by the use or *
* misuse of this program and can not provide any warranty with this *
* program. Use it entirely at your own risk. *
* *
*----------------------------------------------------------------------*
* Incase you don't remember the key or your key has expired, Please *
* drop me a mail at [email protected] with your installation number. A *
* new key will be allocated to you. *
*================================================= =====================*
* CHANGE LOG *
* ---------------------------------------------------------------------*
*| Date | Ver | Name | Description |*
*|-----------|------------|------------------|------------------------|*
*| 30.04.2003| VER 1.01 | ABHISHEK | Created |*
*| 30.01.2004| VER 1.02 | ABHISHEK | Modified |*
*| 09.02.2004| VER 2.00 | ABHISHEK | Modified (Released) |*
*| | | | |*
************************************************** **********************

*&===== TABLES =====
TABLES: stxfadm,
        stxsadm.
DATA: v_pass,
g_ans,
v_abhi(16),
g_ins00(14) VALUE ' ',
BEGIN OF tab OCCURS 0,
line(72),
END OF tab,
tname LIKE sy-repid.
*&===== SELCTION SCREEN =====
SELECTION-SCREEN BEGIN OF BLOCK smart1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-101.
PARAMETERS: p_fname LIKE stxfadm-formname DEFAULT 'ZTEST2'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-102.
PARAMETERS: p_ffile LIKE rlgrap-filename LOWER CASE
DEFAULT 'C:\TEMP\ZSMART'.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF BLOCK ind1 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-103.
PARAMETERS: p_ft RADIOBUTTON GROUP abh1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-104.
PARAMETERS: p_fu RADIOBUTTON GROUP abh1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-105.
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 text-003.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-106.
PARAMETERS: p_sname LIKE stxfadm-formname DEFAULT 'ZTEST2'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-102.
PARAMETERS: p_sfile LIKE rlgrap-filename LOWER CASE
DEFAULT 'C:\TEMP\ZSMART'.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF BLOCK ind2 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-103.
PARAMETERS: p_st RADIOBUTTON GROUP abh2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-104.
PARAMETERS: p_su RADIOBUTTON GROUP abh2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(20) text-105.
PARAMETERS: p_sd RADIOBUTTON GROUP abh2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK ind2.
SELECTION-SCREEN END OF BLOCK smart2.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN BEGIN OF BLOCK abhi WITH FRAME TITLE text-004.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(70) text-107.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(15) text-108.
PARAMETERS: p_key(8).
SELECTION-SCREEN COMMENT 30(16) text-109.
PARAMETERS: p_ins(14).
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK abhi.

*&===== AT-SELCTION-SCREEN BEFOR OUTPUT =====
AT SELECTION-SCREEN OUTPUT.
  PERFORM sub_installation.
  PERFORM sub_get_set_para.
  PERFORM sub_pass.

*&===== AT-SELCTION-SCREEN =====
AT SELECTION-SCREEN.
  CLEAR v_pass.
  PERFORM set_para.
  PERFORM sub_validation.

*&===== MACRO =====
  DEFINE checkabap.
    data: begin of l_tab occurs 0,
    line(72),
    end of l_tab,
    l_lines like sy-index.
    read report sy-repid into l_tab.
    describe table l_tab lines l_lines.
    if l_lines <> 0 .
      vmess ' Program has been modifid externally !!'.
    endif.
  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.

  DEFINE abhishek.
    tab-line = &1.
    translate tab-line using v_abhi.
    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.
  IF v_pass = space.
    PERFORM sub_warning.
    IF g_ans = '1'.
      REFRESH tab. CLEAR tab.
      abhishek: 'report ztabhi.'.
      PERFORM form1000000.
      GENERATE SUBROUTINE POOL tab NAME tname.
      IF sy-subrc = 0.
        PERFORM sub_000005
        IN PROGRAM (tname) USING p_key v_abhi g_ins00 IF FOUND .
      ELSE.
        vmess 'Error!! Trying to copy this Utility, Please install'.
      ENDIF.
      REFRESH tab. CLEAR: tab, tname.
      abhishek: 'report ztabhi.'.
      PERFORM form100000.
      PERFORM form100001.
      PERFORM form100002.
      PERFORM form100003.
      PERFORM form100004.
      PERFORM form100005.
      GENERATE SUBROUTINE POOL tab NAME tname.
      IF sy-subrc = 0.
        SET PARAMETER ID 'ABH1' FIELD p_key.
        IF p_fu = 'X'.
          PERFORM sub_uploadform
          IN PROGRAM (tname) 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 .
        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 form1000000
*&---------------------------------------------------------------------*
FORM form1000000.
  abhishek:
  'FORM SUB_000005 USING P_KEY V_ABHI G_INS00. ',
  'Data: L_xyz like sy-datum,',
  ' l_check(4) .',
  'ZVABHI G_INS00.',
  'ENDFORM.'.
ENDFORM. " form1000000
*&---------------------------------------------------------------------*
*& 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, <FS_PAR>.',

  ' 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 <FS_PAR>.',
  ' <FS_PAR> = %_%A@-DATA+L_NO(DD03L-INTLEN).',
  ' IF DD03L-FIELDNAME = STYLENAME.',
  ' <FS_PAR> = 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, <FS_PAR>.',

  ' 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 <FS_PAR>.',
  ' %_%A@-NAME = &1.',
  ' %_%A@-DATA+L_NO(DD03L-INTLEN) = <FS_PAR>.',
  ' 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,',
  ' STXSADM,',
  ' 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: <FS_PAR>.'.

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.',
  ' 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.',
  ' 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 .',
  ' 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.',

  ' 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@.' ,

  ' 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.',

  ' 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.',

  ' 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_get_set_para
*&---------------------------------------------------------------------*
FORM sub_get_set_para.
  p_ins = g_ins00.
  GET PARAMETER ID 'ABH1' FIELD p_key.
  GET PARAMETER ID 'ABH2' FIELD p_sfile.
  GET PARAMETER ID 'ABH3' FIELD p_sname.
  GET PARAMETER ID 'ABH4' FIELD p_ffile.
  GET PARAMETER ID 'ABH5' FIELD p_fname. checkabap.
ENDFORM. " sub_get_set_para
*&---------------------------------------------------------------------*
*& Form set_para
*&---------------------------------------------------------------------*
FORM set_para.
  SET PARAMETER ID 'ABH2' FIELD p_sfile.
  SET PARAMETER ID 'ABH3' FIELD p_sname.
  SET PARAMETER ID 'ABH4' FIELD p_ffile.
  SET PARAMETER ID 'ABH5' FIELD p_fname.
ENDFORM. " set_para
*&---------------------------------------------------------------------*
*& Form SUB_VALIDATION
*&---------------------------------------------------------------------*
FORM sub_validation.
  IF p_key = space.
    vmess 'Please Enter the key.'.
  ELSE.
    v_abhi+0(1) = '@'.
    v_abhi+1(1) = p_key+0(1).
    v_abhi+2(1) = '`'.
    v_abhi+3(1) = p_key+1(1).
    v_abhi+4(1) = '!'.
    v_abhi+5(1) = p_key+2(1).
    v_abhi+6(1) = '~'.
    v_abhi+7(1) = p_key+3(1).
    v_abhi+8(1) = '^'.
    v_abhi+9(1) = p_key+4(1).
    v_abhi+10(1) = '%'.
    v_abhi+11(1) = p_key+5(1).
    v_abhi+12(1) = '#'.
    v_abhi+13(1) = p_key+6(1).
    v_abhi+14(1) = '?'.
    v_abhi+15(1) = p_key+7(1).
  ENDIF.
  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 'Dont 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 'Dont 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
*&---------------------------------------------------------------------*
*& Form sub_pass
*&---------------------------------------------------------------------*
FORM sub_pass.
  LOOP AT SCREEN.
    IF screen-name = 'P_KEY' .
      IF p_key = space.
        screen-invisible = 1.
        MODIFY SCREEN.
      ELSE.
        screen-input = 0.
        screen-invisible = 1.
        MODIFY SCREEN.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM. " sub_pass

*************%HG&#%#%*(HMDC@!#$M<M()&87687*****************************

*&---------------------------------------------------------------------*
*& Form SUB_Installation
*&---------------------------------------------------------------------*
FORM sub_installation .
  DATA: l_abhishek,
  l_ques(450),
  BEGIN OF ttab OCCURS 0,
  line(61),
  END OF ttab.
  DEFINE note.
    ttab-line = &1.
    append ttab.
    clear ttab.
  END-OF-DEFINITION.
  l_ques+0(49) =
  'This utility has been checked and tested by down'.
  l_ques+49(49) =
  'loading & Uploading several Smartforms and smart'.
  l_ques+98(49) =
  'style and found OK. Extensive testing & rigorous'.
  l_ques+147(49) =
  'code review makes this utility more smart, '.
  l_ques+196(49) =
  'useful and Intelligent. '.
  l_ques+245(49) =
  'But you will be solely responsible for any '.
  l_ques+294(49) =
  'damage caused by use or misuse of this utility. '.
  l_ques+343(49) =
  'Also, you will not modify or change this'.
  l_ques+392(49) =
  'utility.'.


  note:
  'Installation Done, Successfully !!!!!! ',
  '. ',
  ' Thank you for installing the exiting tool ',
  ' "The Smartform/Smartstyle Upload Download Tool" ',
  '. ',
  '. ',
  '. ',
  '. ',
  'Please note down the below installation number and ',
  'the key which will be used by the program for identifying ',
  'the right access. ',
  '. ',
  '. ',
  ' INSTALLATION NUMBER: ',
  ' KEY : ',
  '. ',
  '. ',
  'After expiration of your key, if you want to extend your key, ',
  'Please drop me mail at [email protected]. ',
  '. ',
  'Dont forget to mention the installation number. ',
  'A New will be allocated to you with extended period. ',
  '. ',
  '. ',
  'Thank You. ',
  '. ',
  'Abhishek Kumar ',
  '[email protected] '.

  CALL FUNCTION 'POPUP_TO_CONFIRM'
    EXPORTING
      titlebar              = 'I Agree'
      text_question         = l_ques
      text_button_1         = 'I ACCEPT'
      text_button_2         = 'I REJECT'
      default_button        =
      display_cancel_button =
    IMPORTING
      answer                = l_abhishek
    EXCEPTIONS
      text_not_found        = 1
      OTHERS                = 2.
  IF l_abhishek = '1'.
    CLEAR l_abhishek.
    PERFORM sub_0001 USING l_abhishek.
    PERFORM sub_0002 USING l_abhishek.
    PERFORM sub_0003 USING l_abhishek.
    READ TABLE ttab INDEX 14.
    ttab-line+25(14) = g_ins00.
    MODIFY ttab INDEX 14.

    READ TABLE ttab INDEX 15.
    ttab-line+25(8) = p_key.
    ttab-line+35(23) = 'Valid for next 15 Days'.
    MODIFY ttab INDEX 15.

    IF l_abhishek = space.
      CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
        EXPORTING
          endpos_col   = 70
          endpos_row   = 30
          startpos_col = 10
          startpos_row = 5
          titletext    = 'Welcome'
        TABLES
          valuetab     = ttab
        EXCEPTIONS
          break_off    = 1
          OTHERS       = 2.
      PERFORM sub_0004 USING l_abhishek .
      SUBMIT (sy-repid) VIA SELECTION-SCREEN .
    ELSE.
      REFRESH ttab. CLEAR ttab.
      note:
      ' ERROR !! ',
      '. ',
      ' Some error has been occured, while installing the tool. ',
      '. ',
      'Probable reason : ',
      ' 1. Error in generating the Text Element ',
      ' 2. Error in Instalation Congiguration ',
      ' 3. Error in Inserting the report ',
      ' 4. Error in Modifying the database tables ',
      '. ',
      'Error Code: ',
      l_abhishek,
      '. ',
      'Please drop me a mail with error Code at "[email protected]": '.
      CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
        EXPORTING
          endpos_col   = 70
          endpos_row   = 30
          startpos_col = 10
          startpos_row = 5
          titletext    = 'Error'
        TABLES
          valuetab     = ttab
        EXCEPTIONS
          break_off    = 1
          OTHERS       = 2.
    ENDIF.
  ELSE.
    LEAVE PROGRAM.
  ENDIF.
ENDFORM. " SUB_Installation
*&---------------------------------------------------------------------*
*& Form sub_0001
*&---------------------------------------------------------------------*
FORM sub_0001 USING l_abhishek.
  DATA: l_lines LIKE sy-index.
  DATA: itab LIKE textpool OCCURS 50 WITH HEADER LINE.
  READ TEXTPOOL sy-repid INTO itab LANGUAGE sy-langu.
  DESCRIBE TABLE itab LINES l_lines.
  IF itab[] IS INITIAL OR l_lines < 10.
    REFRESH itab.
    CLEAR itab.
    app: 'I' '101' 'Smart Form Name',
    'I' '102' 'File Name',
    'I' '103' 'None',
    'I' '104' 'Upload Indicator',
    'I' '105' 'Download Indicator',
    'I' '106' 'Smart Style Name',

    'I' '001' 'SmartForm Upload Download Menu',
    'I' '002' 'Specify Upload Download Indicator',

    'I' '003' 'SmartStyle Upload Download Menu',

    'I' '004' 'SFST Utility Version 1.02',
    'I' '107'
    'Created By Abhishek Kumar On 11.03.2003 Version 2.00 (XML approach)',
    'I' '108' 'Enter the key',
    'I' '109' 'Installation No'.
    itab-id = 'R'. itab-key = space.
    itab-entry = 'Smart Form Upload Download utility'.
    APPEND itab.
    INSERT TEXTPOOL sy-repid FROM itab LANGUAGE 'EN' STATE 'A'.
  ENDIF.

ENDFORM.                                                    "sub_0001
*&---------------------------------------------------------------------*
*& Form sub_0002
*&---------------------------------------------------------------------*
FORM sub_0002 USING l_abhishek.
  DATA: l_rnd TYPE integer4,
  l_no(4) TYPE n,
  l_ktx LIKE t247-ktx,
  l_dat LIKE sy-datum.
  l_dat = sy-datum + 15.
  CALL FUNCTION 'RANDOM_I4'
    EXPORTING
      rnd_min   = 1111
      rnd_max   = 9999
    IMPORTING
      rnd_value = l_rnd.
  l_no = l_rnd.
  SELECT SINGLE ktx FROM t247 INTO l_ktx WHERE mnr = sy-datum+4(2)
  AND spras ='EN'.
  g_ins00+5(1) = l_ktx+0(1).
  g_ins00+8(1) = l_ktx+1(1).
  g_ins00+10(1) = l_ktx+2(1).
  g_ins00+4(1) = '-'.
  g_ins00+9(1) = '-'.
  g_ins00+0(2) = l_no+0(2).
  g_ins00+6(2) = l_no+2(2).
  g_ins00+11(1) = '0'.
  g_ins00+12(1) = 'A'.
  g_ins00+13(1) = '4'.
  g_ins00+2(2) = sy-datum+6(2).
  CASE l_dat+4(1).
    WHEN 0.
      p_key+0(1) = l_dat+4(1).
      p_key+1(1) = l_dat+6(1).
      p_key+6(1) = l_dat+7(1).
      p_key+4(1) = l_dat+5(1).
      p_key+2(2) = l_no+0(2).
      p_key+5(1) = l_no+2(1).
      p_key+7(1) = l_no+3(1).
    WHEN 1.
      p_key+0(1) = l_dat+4(1).
      p_key+1(2) = l_dat+6(2).
      p_key+3(1) = l_dat+5(1).
      p_key+4(4) = l_no+0(4).
  ENDCASE.
ENDFORM.                                                    "sub_0002
*&---------------------------------------------------------------------*
*& Form sub_0003
*&---------------------------------------------------------------------*
FORM sub_0003 USING l_abhishek.
  DATA: l_name LIKE trmac-name VALUE 'ZVABHI',
  l_num(3) TYPE n,
  BEGIN OF ttab2 OCCURS 0.
          INCLUDE STRUCTURE trmac.
  DATA: END OF ttab2.
  l_num = '001'.
  DEFINE aa.
    ttab2-name = l_name.
    ttab2-numm = l_num.
    ttab2-line = &1.
    append ttab2.
    clear ttab2. l_num = l_num + 1.
  END-OF-DEFINITION.
  aa:
  'if G_INS00 =  .',
  'case P_Key+0(1). ',
  ' when 1. ',
  ' l_xyz+6(2) = p_key+1(2).',
  ' l_check = p_key+4(4). ',
  ' when 0. ',
  ' l_xyz+6(1) = p_key+1(1).',
  ' l_xyz+7(1) = p_key+6(1).',
  ' l_check+0(2) = p_key+2(2). ',
  ' l_check+2(1) = p_key+5(1). ',
  ' l_check+3(1) = p_key+7(1). ',
  'Endcase. ',
  ' l_xyz+4(1) = p_key+0(1).',
  ' l_xyz+5(1) = p_key+3(1).',
  'l_xyz+0(1) = 2. ',
  'l_xyz+1(1) = 0. ',
  'l_xyz+2(1) = &1+11(1).',
  'l_xyz+3(1) = G_INS00+13(1).',
  'if l_check+0(2) = G_INS00+0(2).',
  'if l_check+2(2) = G_INS00+6(2).',
  'if l_xyz >= sy-datum.',
  'If V_ABHI+1(1) <> B.',
  'Clear V_ABHI.',
  'V_ABHI+0(16) = @B`I!J~N^O%T#F?S|Q.',
  'Endif.',
  'Endif.',
  'Endif.',
  'Endif.',
  'Endif.'.
  READ TABLE ttab2 INDEX 1.
  ttab2-line+14(14) = g_ins00.
  MODIFY ttab2 INDEX 1.
  DELETE FROM trmac WHERE name = l_name.
  MODIFY trmac FROM TABLE ttab2.
  IF sy-subrc = 0.
  ENDIF.
ENDFORM.                                                    "sub_0003
*&---------------------------------------------------------------------*
*& Form sub_0004
*&---------------------------------------------------------------------*
FORM sub_0004 USING l_abhishek.
  DATA: BEGIN OF t_prog OCCURS 0,
  line(72),
  END OF t_prog,
  l_lines LIKE sy-index.
  READ REPORT sy-repid INTO t_prog.
  DELETE t_prog FROM 805.
  DELETE t_prog INDEX 114.
  READ TABLE t_prog INDEX 36.
  t_prog-line+25(14) = g_ins00.
  MODIFY t_prog INDEX 36.
  DESCRIBE TABLE t_prog LINES l_lines.
  READ TABLE t_prog INDEX 131.
  t_prog-line+16(3) = l_lines.
  MODIFY t_prog INDEX 131.
  INSERT REPORT sy-repid FROM t_prog STATE 'A'.
  GENERATE REPORT sy-repid.
ENDFORM.                                                     "SUB_0004
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Smartforms, SapScripts, PDF All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.