When clic in the field "i_ekpo-ebeln" tab exit in report ALV

Good Afternoon! *********************************************************
Coloquei all the code, I believe for better clarification. When clico in the field i_ekpo-ebeln in the report is called transaction ME23 c/o GRID this functioning normally, but with the reports List and Hierarquico it does not happen the same and it prints in the baseboard the message "Invalid Function". when standard use buttons, functions of course.
obs.: I had that to create a SET Pf-status for each type of report pos I wanted that when clicar in the field box and clicar in the button "TO PRINT REPORT" it printed sapscript. How I make to solve such problem?
Att, Carlos Eduardo.
REPORT ztreino NO STANDARD PAGE HEADING LINE-SIZE 220.
************************declarações*********************
DATA: BEGIN OF y_ekko OCCURS 0,
        ebeln TYPE ekko-ebeln,  "Nº documento de compra
        bukrs TYPE ekko-bukrs,  "Empresa
        bsart TYPE ekko-bsart,  "Documento de compra
        loekz TYPE ekko-loekz,  "Código de eliminação
        aedat TYPE ekko-aedat,  "Data de criação do registro
        ernam TYPE ekko-ernam,  "Nome do responsável que criou o objeto
        lifnr TYPE ekko-lifnr,  "Nº conta do fornecedor
        ekgrp TYPE ekko-ekgrp,  "Grupo de compradores
        waers TYPE ekko-waers,  "Chave da moeda
        BOX   TYPE ptrv_approval-box, "campo para chekinbox
      END OF y_ekko,
      BEGIN OF y_ekpo OCCURS 0,
        ebeln TYPE ekpo-ebeln,  "Nº documento de compra
        ebelp TYPE ekpo-ebelp,  "Nº item do documento de compra
        loekz TYPE ekpo-loekz,  "Código de eliminação
        txz01 TYPE ekpo-txz01,  "Texto breve
        matnr TYPE ekpo-matnr,  "Nº material
        bukrs TYPE ekpo-bukrs,  "Empresa
        werks TYPE ekpo-werks,  "Centro
        menge TYPE ekpo-menge,  "Quantidade do pedido
        netpr TYPE ekpo-netpr,  "Preço líquido no documento de compra
        BOX   TYPE ptrv_approval-box, "campo para chekinbox
      END OF y_ekpo.
*início seleção de dados
SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE text-000.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP.
                                *Nº documento de compra
SELECT-OPTIONS : s_ebeln FOR ekko-ebeln NO INTERVALS OBLIGATORY,
                 s_bukrs FOR ekko-bukrs OBLIGATORY,  "Empresa
                 s_bsart FOR ekko-bsart.  "Documento de compra
SELECTION-SCREEN END OF BLOCK bl1.
SELECTION-SCREEN END OF BLOCK bl2.
**fim da seleção de dados----
**início da variante
SELECTION-SCREEN BEGIN OF BLOCK bl4 WITH FRAME TITLE text-000.
SELECTION-SCREEN BEGIN OF BLOCK bl3 WITH FRAME TITLE text-002.
PARAMETERS : p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK bl3.
SELECTION-SCREEN END OF BLOCK bl4.
***fim variante -
***início modo relatório
SELECTION-SCREEN BEGIN OF BLOCK bl5 WITH FRAME TITLE text-000.
SELECTION-SCREEN BEGIN OF BLOCK bl6 WITH FRAME TITLE text-003.
SELECTION-SCREEN SKIP.
  PARAMETERS : rb1 RADIOBUTTON GROUP TIPO DEFAULT 'X',
               rb2 RADIOBUTTON GROUP TIPO,
               rb3 RADIOBUTTON GROUP TIPO.
SELECTION-SCREEN END OF BLOCK bl6.
SELECTION-SCREEN END OF BLOCK bl5.
****fim modo relatório
*******início da opção de download
Dados do arquivo texto de saída.
SELECTION-SCREEN BEGIN OF BLOCK bl9 WITH FRAME TITLE text-004.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(15) text-005.
PARAMETERS: p_gerar  AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(15) text-006.
PARAMETERS: p_dir  LIKE rlgrap-filename DEFAULT 'c:'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(15) text-007.
PARAMETERS: p_arq  LIKE rlgrap-filename DEFAULT 'nota-geral.txt'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK bl9.
DATA :
      i_ekko  LIKE     y_ekko OCCURS 0 WITH HEADER LINE,
      i_ekpo  LIKE     y_ekpo OCCURS 0 WITH HEADER LINE.
     i_tabsaida LIKE  y_saida OCCURS 0 WITH HEADER LINE.
*********************Fim Declarações*******************************
*********************Declarações ALV*******************************
TYPE-POOLS : slis.
DATA :
       s_layout    TYPE  slis_layout_alv,
       t_sort      TYPE  slis_t_sortinfo_alv WITH HEADER LINE,
       t_fieldcat  TYPE  slis_t_fieldcat_alv WITH HEADER LINE,
       s_grupos    TYPE  slis_t_sp_group_alv WITH HEADER LINE,
       s_keyinfo   TYPE  slis_keyinfo_alv,
       extab       TYPE  slis_t_extab.
DATA :
       variant_exit(1) TYPE  c,
       def_variant(1)  TYPE  c,
       s_print      TYPE  slis_print_alv,
       s_top        TYPE  slis_t_listheader,
       variante     TYPE  disvariant,
       def_variante TYPE  disvariant,
       v_repid      LIKE  sy-repid,
*------pega a data que esta rodando a transação
       v_datasaida(10)  TYPE C,
*------para saber quantos Pedidos na EKKO
       v_exibe      TYPE I,
       s_selfield type slis_selfield,
       v_ucomm like sy-ucomm.
**********************Fim declarações ALV*************************
               Contants para Sapscript e declarações                 *
TABLES: ITCPO.
CONSTANTS:  c_on(1)  TYPE  C  VALUE  'X',    "Parâmetro para o Sapscript
            c_off(1) TYPE  C  VALUE  ''.     "Parâmetro para o Sapscript
Data:
      v_element(15) TYPE C,  "Elemento de texto do Sap Script
      v_type(15)    TYPE C,  "BODY
      v_window(15)  TYPE C,  "Janela
      flag          TYPE I,  "Uma condição para impressão do sapscript
      resp          TYPE C,  "resposta para confirmação do download tab
      zlen          TYPE I,  "Para verificar o um diretório válido
Para a função WS_DOWNLOAD só em declarar as variaveis deste tipo já *
seria o bastante para passar o caminho para a função
TABLES : ekko, ekpo.
                   initialization                                    *
INITIALIZATION.
  PERFORM zf_verifica_variante.
               at selection-screen on value-request                  *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
  PERFORM zf_busca_variante_existente.
             at seletion-screen                                      *
AT SELECTION-SCREEN.
  PERFORM zf_valida_variante.
validar os campo antes de fazer download do arquivo
  PERFORM zf_trata_parametros_gerar_arqu.
            start-of-selection                                       *
START-OF-SELECTION.
  PERFORM zf_seleciona_dados.
                   Criando ALV                                       *
  PERFORM zf_alv.
*&      Form  zf_verifica_variante
      text
-->  Verifica se a variante selecionada é existente
FORM zf_verifica_variante.
  CLEAR variante.
  v_repid = sy-repid.
  variante-report = v_repid.
Buscar variante default
  def_variante = variante.
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
       EXPORTING
            i_save        = 'A'
       CHANGING
            cs_variant    = def_variante
       EXCEPTIONS
            wrong_input   = 1
            not_found     = 2
            program_error = 3
            OTHERS        = 4.
  IF sy-subrc EQ 0.
    p_vari = def_variante-variant.
  ENDIF.
ENDFORM.                    " zf_verifica_variante
*&      Form  zf_busca_variante_existente
*-       text
*-  --> Vai buscar a variante existente
FORM zf_busca_variante_existente.
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
       EXPORTING
            is_variant          = variante      " Report com as
            i_save              = 'A'           " Variantes Salvas
            i_tabname_header    = 'I_EKPO'      " Tabela interna saida
            it_default_fieldcat = t_fieldcat[]  " Tabela de formatação
            i_display_via_grid  = 'X'  " Dispara POPUP em ALV
       IMPORTING
            e_exit           = variant_exit  " Se não existir variante X
            es_variant       = def_variante     " Variante default
       EXCEPTIONS
            not_found           = 1
            program_error       = 2
            OTHERS              = 3.
  IF sy-subrc = 2.
      MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ELSE.
    IF variant_exit = space.
      p_vari = def_variante-variant. " Recebe variante escolhida
    ENDIF.
  ENDIF.
ENDFORM.                    " zf_busca_variante_existente
*-&      Form  zf_valida_variante
*-       text
*-  -->  Verifica se a variante digitada é válida.
FORM zf_valida_variante.
  IF NOT p_vari IS INITIAL.
    variante             =     def_variante.    "nome do report
    def_variante-variant =     p_vari.          "nome que foi digitado
    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
         EXPORTING
              i_save     = 'A'
         CHANGING
              cs_variant = def_variante
              variante   = def_variante.
  ELSE.
    clear variante.
    variante-report = v_repid.
  ENDIF.
ENDFORM.                    " zf_valida_variante
-&      Form  zf_seleciona_dados
*-       text
-->  Seleciona os dados da ekko e ekpo
FORM zf_seleciona_dados.
  SELECT ebeln
       bukrs
       bsart
       loekz
       aedat
       ernam
       lifnr
       ekgrp
       waers
        FROM ekko
        INTO TABLE i_ekko
        WHERE
             ( ebeln IN s_ebeln AND
               bsart EQ 'NB' ).
SORT I_EKKO ASCENDING.
  IF sy-subrc EQ 0.
    SELECT ebeln
           ebelp
           loekz
           txz01
           matnr
           bukrs
           werks
           menge
           netpr
            FROM ekpo
            INTO TABLE i_ekpo
            FOR ALL ENTRIES IN i_ekko
            WHERE
                 ( ebeln EQ i_ekko-ebeln ).
  ENDIF.
SORT I_EKPO ASCENDING.
Para exibir no topo do relatório no grid
DESCRIBE TABLE I_EKKO LINES v_exibe.
ENDFORM.                    " zf_seleciona_dados
*-&      Form  zf_ALV
*-       text
-->  Opções de alv
FORM zf_alv.
IF rb1 = 'X'.
          PERFORM zf_gri.
ENDIF.
IF rb2 = 'X'.
          PERFORM ZF_HIERARQUICO.
ENDIF.
IF rb3  =  'X'.
          PERFORM ZF_LIST.
ENDIF.
ENDFORM.                    " zf_ALV
*&      Form  zf_gri
*-       text
*-  -->  Seqüência para gerar o alv grid
FORM zf_gri.
  PERFORM zf_layout.
  PERFORM zf_ordena_campos.
  PERFORM zf_monta_campos_alv.
  PERFORM zf_print.
  PERFORM zf_grupo.
  PERFORM zf_top  USING  s_top.
  IF  NOT  I_EKPO[] IS INITIAL.
    PERFORM zf_imprime_alv.
  ELSE.
    MESSAGE s000(zcl001)  WITH  'Nenhum registro encontrado.'.
    STOP.
  ENDIF.
ENDFORM.                    " zf_gri
*-&      Form  zf_layout
*-       text
-->  cria o layout do alv
FORM zf_layout.
  s_layout-box_tabname          = 'I_EKPO'.
  s_layout-box_fieldname        = 'BOX'.
  s_layout-get_selinfos         =  'X'.
  s_layout-detail_popup         =  'X'.
  s_layout-detail_initial_lines =  'X'.
  s_layout-zebra                =  'X'.
  s_layout-colwidth_optimize    =  'X'.
ENDFORM.                    " zf_layout
*-&      Form  zf_ordena_campos
*-       text
-->  Ordenação dos campos
FORM zf_ordena_campos.
  CLEAR t_sort.
  t_sort-spos      =  '1'.          "prioridade de ordenação
  t_sort-fieldname =  'EBELN'.      "campo da tab int. de saida
  t_sort-tabname   =  'I_EKPO'.     "tab inter de saida
  t_sort-up        =  'X'.          "ordenação do maior para o menor
  APPEND t_sort.
ENDFORM.                    " zf_ordena_campos
*-&      Form  zf_monta_campos_alv
      text
-->  è passado os campos de acordo com a ordem de exibição inicial
FORM zf_monta_campos_alv.
IF rb2  =  'X'.
  CLEAR t_FIELDCAT.
  t_FIELDCAT-FIELDNAME      =  'BOX'.
  t_FIELDCAT-TABNAME        =  'I_EKKO'.
  t_FIELDCAT-CHECKBOX       =  'X'.
  t_FIELDCAT-INPUT          =  'X'.
  APPEND t_FIELDCAT.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'EBELN'.
  t_fieldcat-tabname        =  'I_EKKO'.
  t_fieldcat-ref_fieldname  =  'EBELN'.
  t_fieldcat-ref_tabname    =  'EKKO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'BUKRS'.
  t_fieldcat-tabname        =  'I_EKKO'.
  t_fieldcat-ref_fieldname  =  'BUKRS'.
  t_fieldcat-ref_tabname    =  'EKKO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'BSART'.
  t_fieldcat-tabname        =  'I_EKKO'.
  t_fieldcat-ref_fieldname  =  'BSART'.
  t_fieldcat-ref_tabname    =  'EKKO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'AEDAT'.
  t_fieldcat-tabname        =  'I_EKKO'.
  t_fieldcat-ref_fieldname  =  'AEDAT'.
  t_fieldcat-ref_tabname    =  'EKKO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'ERNAM'.
  t_fieldcat-tabname        =  'I_EKKO'.
  t_fieldcat-ref_fieldname  =  'ERNAM'.
  t_fieldcat-ref_tabname    =  'EKKO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'LIFNR'.
  t_fieldcat-tabname        =  'I_EKKO'.
  t_fieldcat-ref_fieldname  =  'LIFNR'.
  t_fieldcat-ref_tabname    =  'EKKO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'EKGRP'.
  t_fieldcat-tabname        =  'I_EKKO'.
  t_fieldcat-ref_fieldname  =  'EKGRP'.
  t_fieldcat-ref_tabname    =  'EKKO'.
  APPEND t_fieldcat.
ENDIF.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'EBELN'.
  t_fieldcat-tabname        =  'I_EKPO'.
  t_fieldcat-ref_fieldname  =  'EBELN'.
  t_fieldcat-ref_tabname    =  'EKPO'.
  t_fieldcat-key            =  'X'.
  t_fieldcat-Hotspot        =  'X'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  T_fieldcat-fieldname     = 'EBELP'.
  T_fieldcat-tabname       = 'I_EKPO'.
  T_fieldcat-ref_fieldname = 'EBELP'.
  T_fieldcat-ref_tabname   = 'EKPO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'MATNR'.
  t_fieldcat-tabname        =  'I_EKPO'.
  t_fieldcat-ref_fieldname  =  'MATNR'.
  t_fieldcat-ref_tabname    =  'EKPO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'WERKS'.
  t_fieldcat-tabname        =  'I_EKPO'.
  t_fieldcat-ref_fieldname  =  'WERKS'.
  t_fieldcat-ref_tabname    =  'EKPO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'MENGE'.
  t_fieldcat-tabname        =  'I_EKPO'.
  t_fieldcat-ref_fieldname  =  'MENGE'.
  t_fieldcat-ref_tabname    =  'EKPO'.
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'NETPR'.
  t_fieldcat-tabname        =  'I_EKPO'.
  t_fieldcat-ref_fieldname  =  'NETPR'.
  t_fieldcat-ref_tabname    =  'EKPO'.
  t_fieldcat-do_sum         =  'X'. "totalizar campo
  APPEND t_fieldcat.
  CLEAR t_fieldcat.
  t_fieldcat-fieldname      =  'TXZ01'.
  t_fieldcat-tabname        =  'I_EKPO'.
  t_fieldcat-ref_fieldname  =  'TXZ01'.
  t_fieldcat-ref_tabname    =  'EKPO'.
  APPEND t_fieldcat.
ENDFORM.                    " zf_monta_campos_alv
*-&      Form  zf_top
*-       text
*-  --> Cria o texto de cabeçalho do ALV, passando por parametro o
--> p_S_TOP para s_top
FORM zf_top USING p_s_top  TYPE slis_t_listheader.
  DATA: ls_line  TYPE  slis_listheader.
  CLEAR  ls_line.
  ls_line-typ  =  'H'.
  ls_line-info  =  'Relatório de Compras por Classificação Contábil'.
  APPEND ls_line  TO  p_s_top.
  CLEAR  ls_line.
  ls_line-typ  =  'S'.
  ls_line-KEY  =  'Parametros Seleção '.
  ls_line-info  = '- Documento de compra'.
  APPEND ls_line  TO  p_s_top.
  CLEAR  ls_line.
  ls_line-typ  =  'S'.
  ls_line-info  = '- Empresa'.
  APPEND ls_line  TO  p_s_top.
  CLEAR  ls_line.
  ls_line-typ  =  'S'.
  ls_line-info  = '- Tip.doc.compra'.
  APPEND ls_line  TO  p_s_top.
  CLEAR  ls_line.
  ls_line-typ  =  'S'.
  ls_line-KEY  =  'Total Pedido'.
  ls_line-info  = v_exibe.
  APPEND ls_line  TO  p_s_top.
início Formatar a data
  CALL FUNCTION 'DATUMSAUFBEREITUNG'
   EXPORTING
     IDATE                 = SY-DATUM
   IMPORTING
     TDAT8                 = v_datasaida.
Fim Formatar a data
  CLEAR  ls_line.
  ls_line-typ  =  'S'.
  ls_line-KEY  =  'Data da execução'.
  ls_line-info  = v_datasaida.
  APPEND ls_line  TO  p_s_top.
  CLEAR  ls_line.
  ls_line-typ  =  'S'.
  ls_line-KEY  =  'Usuário'.
  APPEND ls_line  TO  p_s_top.
  CLEAR  ls_line.
  ls_line-typ  =  'A'.
  ls_line-info  = sy-uname.
  APPEND ls_line  TO  p_s_top.
ENDFORM.                    " zf_top
*-&      Form  zf_print
*-       text
*-  -->  Parametros de Impressão para o ALV
FORM zf_print.
  s_print-no_print_selinfos     =  'N'.
  s_print-no_print_listinfos    =  'N'.
ENDFORM.                    " zf_print
*-&      Form  zf_imprime_alv
*-       text
*-  -->  Imprime o ALV c/ seu parametros
FORM zf_imprime_alv.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     I_CALLBACK_PF_STATUS_SET          = 'ZSET_PF_STATUS'
     I_CALLBACK_USER_COMMAND           = 'ZF_USER_COMMAND'
     i_callback_program                = v_repid
     i_callback_top_of_page            = 'TOP_OF_PAGE'
     is_layout                         =  s_layout
     it_fieldcat                       =  t_fieldcat[]
    IT_EXCLUDING                      =
     IT_SPECIAL_GROUPS                 = S_GRUPOS[]
     it_sort                           = t_sort[]
    IT_FILTER                         =
    IS_SEL_HIDE                       =
     i_default                         = 'X'
     i_save                            = 'A'
     is_variant                        = variante
    IT_EVENTS                         =
    IT_EVENT_EXIT                     =
     IS_PRINT                          = S_PRINT
    IS_REPREP_ID                      =
     I_SCREEN_START_COLUMN             = 0
     I_SCREEN_START_LINE               = 0
     I_SCREEN_END_COLUMN               = 0
     I_SCREEN_END_LINE                 = 0
    IT_ALV_GRAPHICS                   =
    IT_ADD_FIELDCAT                   =
    IT_HYPERLINK                      =
    I_HTML_HEIGHT_TOP                 =
    I_HTML_HEIGHT_END                 =
  IMPORTING
    E_EXIT_CAUSED_BY_CALLER           =
    ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = I_EKPO
   EXCEPTIONS
     program_error                     = 1
     OTHERS                            = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.                    " zf_imprime_alv
*-&      Form  zf_top-of-page
*-       text
-->  Cabeçalho ALV
FORM top_of_page.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
            it_list_commentary       = s_top
            i_logo                   = 'CARLOS_LOGO3'.
  I_END_OF_LIST_GRID       = .
ENDFORM.                    " zf_top-of-page
*-&      Form  ZF_HIERARQUICO
*-       text
*-  -->  RELATÓRIO HIERÁQUICO
form ZF_HIERARQUICO.
  PERFORM zf_layout.
  PERFORM zf_ordena_campos.
  PERFORM zf_monta_campos_alv.
  PERFORM zf_print.
  PERFORM zf_grupo.
  IF  NOT  I_EKPO[] IS INITIAL.
    PERFORM zf_imprime_hierarquico_alv.
  ELSE.
    MESSAGE s000(zcl001)  WITH  'Nenhum registro encontrado.'.
    STOP.
  ENDIF.
endform.                    " ZF_HIERARQUICO
*-&      Form  zf_grupo
     text
-->  Não é fundamental a criação de grupos de campos, mas facilita
ao usuário na hora de escolher os campos de exibição após o clique do
botão MODIFICAR LAYOUT . Vários campos da fieldcat podem ser
definidos para um mesmo grupo de campo.
form zf_grupo.
MOVE:'Moeda' TO S_GRUPOS-SP_GROUP,
     'Campos moeda' TO S_GRUPOS-TEXT.
     APPEND S_GRUPOS.
endform.                    " zf_grupo
*&      Form  zf_imprime_hierarquico_alv
      text
-->  p1        text
<--  p2        text
form zf_imprime_hierarquico_alv.
Vamos definir as ligações entre as tabelas para as quebras no momento
da impressão.
  s_keyinfo-header01  =  'EBELN'.
  s_keyinfo-item01    =  'EBELN'.
  CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
      I_CALLBACK_USER_COMMAND           = 'ZF_USER_COMMAND'
     I_CALLBACK_PF_STATUS_SET          = 'ZF_SET_PF_STATUS_HIERARQ'
      I_CALLBACK_PROGRAM                = v_repid
      IS_LAYOUT                         = S_LAYOUT
      IT_FIELDCAT                       = T_FIELDCAT[]
      IT_SPECIAL_GROUPS                 = S_GRUPOS[]
     IT_SORT                        =
     IT_FILTER                      =
-    Parâmetro p/executar sempre com a variante default
      I_DEFAULT                         = 'X'
-                     Se é possível salvar as variantes
      I_SAVE                            = 'A'
-                          Nome da variante selecionada
      IS_VARIANT                        = VARIANTE
     IT_EVENTS                      =
     IT_EVENT_EXIT                  =
      i_tabname_header                  = 'I_EKKO'
      i_tabname_item                    = 'I_EKPO'
     I_STRUCTURE_NAME_HEADER        =
     I_STRUCTURE_NAME_ITEM          =
      is_keyinfo                        = S_KEYINFO
      IS_PRINT                          = S_PRINT
     IS_REPREP_ID                   =
     I_BUFFER_ACTIVE                =
     I_BYPASSING_BUFFER             =
  IMPORTING
     E_EXIT_CAUSED_BY_CALLER        =
     ES_EXIT_CAUSED_BY_USER         =
    tables
      t_outtab_header                   = I_EKKO
      t_outtab_item                     = I_EKPO.
endform.                    " zf_imprime_hierarquico_alv
*&      Form  ZF_LIST
      text
-->  p1        text
<--  p2        text
form ZF_LIST.
  PERFORM zf_layout.
  PERFORM zf_ordena_campos.
  PERFORM zf_monta_campos_alv.
  PERFORM zf_print.
  PERFORM zf_grupo.
  IF  NOT  I_EKPO[] IS INITIAL.
      PERFORM zf_imprime_list_alv.
  ELSE.
    MESSAGE s000(zcl001)  WITH  'Nenhum registro encontrado.'.
    STOP.
  ENDIF.
endform.                    " ZF_LIST
*&      Form  zf_imprime_list_alv
      text
-->  p1        text
<--  p2        text
form zf_imprime_list_alv.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
   EXPORTING
      I_CALLBACK_PF_STATUS_SET       = 'ZF_SET_PF_STATUS_LIST'
      I_CALLBACK_USER_COMMAND        = 'ZF_USER_COMMAND'
    I_INTERFACE_CHECK              = ' '
    I_BYPASSING_BUFFER             =
    I_BUFFER_ACTIVE                = ' '
     I_CALLBACK_PROGRAM             = v_repid
     I_STRUCTURE_NAME               = 'I_EKPO'
     IS_LAYOUT                      = S_LAYOUT
     IT_FIELDCAT                    = T_FIELDCAT[]
    IT_EXCLUDING                   =
     IT_SPECIAL_GROUPS              = S_GRUPOS[]
     IT_SORT                        = T_SORT[]
    IT_FILTER                      =
    IS_SEL_HIDE                    =
     I_DEFAULT                      = 'X'
     I_SAVE                         = 'A'
     IS_VARIANT                     = VARIANTE
    IT_EVENTS                      =
    IT_EVENT_EXIT                  =
     IS_PRINT                       = S_PRINT
    IS_REPREP_ID                   =
     I_SCREEN_START_COLUMN          = 0
     I_SCREEN_START_LINE            = 0
     I_SCREEN_END_COLUMN            = 0
     I_SCREEN_END_LINE              = 0
  IMPORTING
    E_EXIT_CAUSED_BY_CALLER        =
    ES_EXIT_CAUSED_BY_USER         =
    TABLES
      t_outtab                       = I_EKPO.
endform.                    " zf_imprime_list_alv
*&      Form  zf_user_command
      text
-->  p1        text
<--  p2        text
form zf_user_command using p_v_ucomm like SY-UCOMM
                           p_s_selfield type slis_selfield.
*---tratamento de impressão do Sapscript----
CASE p_v_ucomm.
  FLAG = 0.
     WHEN 'IMPRIMIR' OR 'PRINT'.
         LOOP AT i_ekpo.
              IF NOT i_ekpo-BOX IS INITIAL.
                FLAG = FLAG + 1.
              ENDIF.
        ENDLOOP.
se tiver selecionado apenas uma box
        IF flag EQ 1.
            IF p_gerar EQ 'X'.
*-----perform para confirmação de download
              PERFORM zf_popup_to_confirm.
            ENDIF.
*------chama o form para imprimir o sapscript
              PERFORM zf_sapscript.
        ENDIF.
box estiver vazia
        IF flag EQ 0.
           MESSAGE E017(ZCL_GRUPO04). "Selecione apenas uma BOX
                                      "referente ao pedido de compras.
           STOP.
        ENDIF.
"estiver selecionado + de uma box
        IF flag GT 1.
           MESSAGE E017(ZCL_GRUPO04). "Selecione apenas uma
                                     "BOX referente ao pedido de compra.
           STOP.
        ENDIF.
ENDCASE.
CASE p_s_selfield-sel_tab_field.
*observe na exibição do relatório(hierarquico) que temos o EKKO-EBELN
ficaria  melhor visualmente, a utilização de clicar no mesmo
     WHEN 'I_EKPO-EBELN'. "tab de saida
           SET PARAMETER ID 'BES' FIELD p_s_selfield-VALUE.
           CALL TRANSACTION 'ME23' AND SKIP FIRST SCREEN.
ENDCASE.
endform.                    " zf_user_command
*&      Form  ZSET_PF_STATUS
      text
     -->P_EXTAB  text
form ZSET_PF_STATUS using    p_extab.
  set pf-status 'BOTOES' EXCLUDING extab.
endform.                    " ZSET_PF_STATUS
*&      Form  zf_sapscript
      text
-->  p1        text
<--  p2        text
form zf_sapscript.
--carregar a ITCPO----
  PERFORM zf_itcpo.
----chamar a função Open_form
  PERFORM zf_open_form.
*----buscar o fornecedor e seus dados
LOOP AT I_ekko.
        v_element  =  'CABPRIN'.
        v_type     =  'BODY'.
        v_window   =  'JANCABEC'.
        PERFORM  zf_imprime_form USING  v_element
                                        v_type
                                        v_window.
ENDLOOP.
*----buscar o documento de compra selecionado
LOOP AT i_ekpo.
    IF i_ekpo-BOX = 'X'.
        v_element  =  'MAIN'.
        v_type     =  'BODY'.
        v_window   =  'MAIN'.
        PERFORM  zf_imprime_form USING  v_element
                                        v_type
                                        v_window.
*---o comando EXIT é para que somente quando 1 registro for selecionado
no relatório e a verificação da igualdade acontecer faz que saia do
Loop
    EXIT.
    ENDIF.
ENDLOOP.
  PERFORM zf_close_form.
endform.                    " zf_sapscript
*&      Form  zf_itcpo
      text
-->  p1        text
<--  p2        text
form zf_itcpo.
*Parâmetros para impressão da tabela ITCPO
ITCPO-TDCOPIES   = 1.           "Quantidade de cópias
ITCPO-TDPAGESLCT = ''.          "Seleção de páginas
ITCPO-TDPROGRAM  = SY-REPID.    "Captura o nome do programa
ITCPO-TDIMMED    = c_on.        "Saída imediata do relatório
ITCPO-TDPREVIEW  = c_on.        "Exibição prévia do relatório
ITCPO-TDDEST     = 'LOCL'.      "SPOOL: dispositivo de saída
ITCPO-TDFAXUSER  = SY-UNAME.    "Usuário logado naquele momento
ITCPO-TDSENDDATE = SY-DATUM.    "Data de envio desejada
ITCPO-TDSENDTIME = SY-UZEIT.    "Hora envio desejada
ITCPO-TDNEWID    = c_on.        "Nova ordem SPOOL
ITCPO-TDARMOD    = c_on.       "IMPRIMIR: modo de arquivamento
ITCPO-TDTITLE    = 'Relatório de Compras por Classificação Contábil'.
endform.                    " zf_itcpo
*&      Form  zf_open_form

Boa Tarde Carlos,
Welcome to the SDN Forums. SDN gets it's power from the large community throughout the world. To harvest that power of knowledge we have settled on one language for posts here which is English.
Clearly English is not your first language, but don't be afraid, I would vouch that for most of the participant here on SDN English is the second language.
As it is for me. I am just lucky, that I am living in the States long enough that German colleagues start to look at me strangely when I talk to them in German, because it doesn't totally sound right anymore
So we are very forgiving her in SDNland regarding grammar and spelling (although not as much anymore in the Weblogs), we even provide a spell checker.
Please post your question again in English.
If people don't understand you they will ask you about the things that they don't understand and you can then clarify.
Try it out. Your chance of an excellent responds is way higher.
Boa sorte, Mark.

Similar Messages

  • I set iCloud up last week and the next day when out in the field I could not get Outlook to open up.  I want to change my settings so I can get mail at home or in the field

    I set iCloud up last week and the next day when out in the field I could not get Outlook to open up.  I want to change my settings so I can get mail at home or in the field, not just when i'm at home.  I have a PC and fios internet with Verizon at home.  I have a Sprint air card in the field or access an available wifi.  I want to change my settings to allow for receiving email in the field.  What's the point of an air card and icloud for backup fi it doesn't work in the field for some odd reason?

    Apple - Support - Mail Setup Assistant

  • A word document was emailed to me.  I can open the document without a problem.  Is there a way for me to type on the document.... to fill out the form?  When I click the fields, the virtual keyboard does not appear.

    A word document was emailed to me.  I can open the document without a problem on my iPad 2.   Is there a way for me to type on the document.... to fill out the form?  When I click the fields, the virtual keyboard does not appear.

    If you want to edit a word document then you will need an app on your iPad that supports word so that you can copy them to it via 'open in' e.g. Apple's Pages app or a third-party app such as Documents To Go or QuickOffice HD

  • Problems when user enter the field

    I have problem when user enter the field, but it cannot retrieve from the table. Below is my program, help me to check is it correct or not, THANKS
    <input type="text" name="po_num<%=i%>" style="width:100%;text-align:left;" onChnage="chkPOexist(<%=i%>)">
    Function chkPOexist(i){
    if documen.all.po_num.value == null {
    alert ("PO cannot be null");
    else {
    po_num = new String;
    po_num = eval(document.po_num[i].value)
    alert(po_num);
    <% System.out.println("PP " +po_num);
    sql_query = "SELECT po_num"+
    " FROM pomast"+
    " WHERE po_num '"+po_num+"' ";
                        try{
                        rset = db.execSQL(sql_query);
                        catch(SQLException e) {
                        System.err.println("Error in query");
                        while(rset.next()== true){
    po_num = rset.getString("po_num");
    %>
    </select value="<%=po_num%>"><%=po_num%></select>
                        <%}%>

    You seem to have some confusion between java and javascript, and when they run.
    Java code runs only on the server, and produces an HTML page.
    Javascript code runs on the client.
    The two can not communicate. Specific to your example you seem to think that the java code will be executed by your onChange event.
    This is not the case.
    In order to run java code again you have make a request by submitting the form, or clicking on a link.
    Cheers,
    evnafets

  • Hello,I have done this successful in the past but on my IPad it shows I have 4 apps that need to be updated so when I hit the update tab all I get is a white screen. When I hit the purchase or other tabs it opens up. What could be the problem?

    ****,I have done this successful in the past but on my IPad it shows I have 4 apps that need to be updated so when I hit the update tab all I get is a white screen. When I hit the purchase or other tabs it opens up. What could be the problem?

    There have been numerous reports on the forum today regarding this issue. It seems to be an issue at Apple, but no information has been posted on the status site.
    http://www.apple.com/support/systemstatus/

  • I just installed CS 6 and now my Acrobat Pro is crashing. I marked several spots to redact and when I applied the redaction, it crashed and produced a report.  How do I get it to stop crashing.

    I just installed CS 6 and now my Acrobat Pro is crashing. I marked several spots to redact and when I applied the redaction, it crashed and produced a report.  How do I get it to stop crashing? I am on OS 10.9.4

    Report the problem to Adobe Acrobat Support along with sample PDFs and detailed description of the steps you perform.

  • There used to be a special feature on the previouse versions of Firefox. when you close the firefox with multiple tabs opened it displays an option of saving it or closing without saving. but this version specially the 7th doesnot have that.

    specially version 3.6 is good on saving the tabs before closing the firefox. but the latest versions should have had more that just this but it doesnt support the saving tabs or may be i didnt see it there. please if it has this feature let me know.
    the other thing is the norton toolbar 2011.7.1.3 is incompatible with firefox 7.

    Firefox 4 and later versions save the previous session automatically, so there is no longer need for the dialog asking if you want to save the current session.<br />
    Use "File > Exit" or "Firefox > Exit" (Mac: "Firefox > Quit Firefox") if you want to restore multiple windows.<br />
    You can use "History > Restore Previous Session" to get the previous session at any time.<br />
    You may need to click the orange/gray Firefox button to see History.<br />
    There is also a "Restore Previous Session" button on the default <b>about:home</b> Home page.
    Using the "Show my windows and tabs from last time" setting is a more reliable way to restore session data.
    * [http://kb.mozillazine.org/Menu_differences Firefox/Tools > Options] > General > Startup: "When Firefox Starts": "Show my windows and tabs from last time"

  • HT1386 My Music and Apps downloaded but not my audiobooks? Its says 7 when looking to the left. But tab up top says 0??

    When looking on the left in Itunes says I have 7 books (audio book). When looking on the top tab says I have 0 books. They will not download to my Iphone. All my music and apps did however..

    Hey Sierra, You can do just what you have stated. My question, what is your "other"? If it is over 1.5 GB you most likely have corrupt files. Doing a Restore to New, Factory restore should correct it. Just make sure you make a full backup of all information on your iPod to your computer before you restore, so you don't lose your stuff, contacts, videos, pictures, non-iTunes music, etc, use the cable and connect with your computer. Then, via cable, connect to your computer, run the Restore to new, don't use your backup. Treat this iPod as if it was your first one ever. When restore is done, set up and add what info you wish to install on this iPod. The music apps etc you purchased should be on your computer, if not you should be able to retrieve purchased apps and music from iTunes. Any music, videos, apps not purchased from iTunes will be lost to you if you do not save them to your computer or the cloud first. When your done, make a current Backup and you should good to go. Hope this helps. Good luck. Cheers.

  • Running a partial Sysprep when deploying in the field

    is it possible for me to run a partial sysprep portion onto a baseline Windows 2012 R2 image? The servers that ship to my customers are WIN2K12R2 ready with proper product key, but the field technician who arrives onsite has about an hour of additional prep
    work once, ie, compueter name, security settings, UAC, firewall rules, etc. I don't see a need to reimage the server, I would just simply run a settings change type of script. Is Sysprep the way to go? Thanks,
    gman225

    It's hard to state a definitive 'yes' from your brief description, but it sounds like it would be the way to go.  You can build a lot of preconfiguration into an image before it is sysprepped for the out-of-the-box experience.  Once on site, depending
    on how you have tailored the image, it is possible to complete things automatically, even things like computer name and security settings.  Or, you can create a PowerShell script to handle many of the settings.  Lots of ways to speed the process.
    The key is that you have the proper license from Microsoft that allows you to distribute software in this manner - not any license works legally.  That generally means an OEM version of the software.  In fact, that is often how OEMs provide a tailored
    experience for their startup.
    . : | : . : | : . tim

  • Need to add tab in the me21 and the fields to that tab

    i have one requirement i which i have to  add one tab in the PO thru me21n and that tab is to be placed after the shipping tab.i have to add then the user input fields to it.please suggest me how to find that include,will it be screen exit that i need to create.do i require the access key from SAP for this.
    kindly suggest.
    thnaks

    These are following exits .
    LMEDR001 Enhancements to print program
    LMELA002 Adopt batch no. from shipping notification when posting a GR
    LMELA010 Inbound shipping notification: Transfer item data from IDOC
    LMEQR001 User exit for source determination
    LMEXF001 Conditions in Purchasing Documents Without Invoice Receipt
    LWSUS001 Customer-Specific Source Determination in Retail
    M06B0001 Role determination for purchase requisition release
    M06B0002 Changes to comm. structure for purchase requisition release
    M06B0003 Number range and document number
    M06B0004 Number range and document number
    M06B0005 Changes to comm. structure for overall release of requisn.
    M06E0004 Changes to communication structure for release purch. doc.
    M06E0005 Role determination for release of purchasing documents
    ME590001 Grouping of requsitions for PO split in ME59
    MEETA001 Define schedule line type (backlog, immed. req., preview)
    MEFLD004 Determine earliest delivery date f. check w. GR (only PO)
    MELAB001 Gen. forecast delivery schedules: Transfer schedule implem.
    MEQUERY1 Enhancement to Document Overview ME21N/ME51N
    MEVME001 WE default quantity calc. and over/ underdelivery tolerance
    MM06E001 User exits for EDI inbound and outbound purchasing documents
    MM06E003 Number range and document number
    MM06E004 Control import data screens in purchase order
    MM06E005 Customer fields in purchasing document
    MM06E007 Change document for requisitions upon conversion into PO
    MM06E008 Monitoring of contr. target value in case of release orders
    MM06E009 Relevant texts for "Texts exist" indicator
    MM06E010 Field selection for vendor address
    MMAL0001 ALE source list distribution: Outbound processing
    MMAL0002 ALE source list distribution: Inbound processing
    MMAL0003 ALE purcasing info record distribution: Outbound processing
    MMAL0004 ALE purchasing info record distribution: Inbound processing
    MMDA0001 Default delivery addresses
    MFAB001 User exit for generation of release order
    RFLB001 Control Items for Contract Release Order
    MPL0001 User subscreen for additional data on AMPL
    Also some of them you can find thru transaction SPRO going into Purchase Order->System Modifications .

  • Retaining the cursor on a Text Field when error on the field

    Hi,
    We have a requirement, where when we tab out of a text field, the data entered gets validated and exceptions are caught using array list and then thrown on top of the page.
    However, we have a requirement, that on tab out, the cursor should remain in the same field in case there are errors thrown on that field otherwise should move to the next field.
    My Approach is
    1) Capture the tabout event in PFR.
    2) If the validation returns erorr messages, do a forwardImmediately to CurrentPage
    3) Set the focus in PR and throw the exception.
    I read the discussion on the link How to set focus on a textinput/poplist using PPR
    and tried the same approach but below are my observations.
    Approach - 1) WITH FIRE PARTIAL ACTION on text field.
    Input = Invalid, then error message is thrown and I am not able to see the cursor.
    Input =  Valid  , then I see the cursor in the next text field, which is correct.
    Approach - 2) WITH FIRE ACTION
    Input = Invalid, then error message is thrown, the text in the textfield looks selected, which is the required functionality.
    Input =  Valid, then still I see the same text as selected. Here I dont want the text to be selected and want the cursor to move to the next field. This is not happening.
    Please let me know where exactly I am committing the mistake.
    Thanks
    Saurabh
    Edited by: SaurabhAg on Jan 25, 2012 5:53 AM
    Edited by: SaurabhAg on Jan 25, 2012 6:06 AM
    Edited by: SaurabhAg on Jan 25, 2012 6:44 AM

    Can someone please reply to this. Its urgent.
    Thanks
    Saurabh

  • TS3714 I am trying to delete an event that somehow got put on my calendar for every day -- several TIMES a day - for 14 months.  When I hit the "Delete AllFuture Events" tab, my phone freezes.  iPhone 4S, iOS 7

    I've tried turning the phone off and on several times; no luck there.
    Also closed all other apps while attempting to solve this problem.

    I read the article thanks.   I tried the settings-general-reset-reset network settings-reboot system-go to wifi settings-select wireless connection-select the ">"-symbol-select auto for http proxy.   I was optimistic about that because I thought I changed some setting somehow to cause this problem, but it didn't work.  More specifically, I did connect successfully and browsed the Internet for a good while, but then I put down the phone for a minute, the phone went into sleep/power save mode, and when I picked it back up a moment later it was no longer connected.  Dang.   Had to select the connection and use my password yet again. 
    Another valuable bit of info for you.   The only network with which I have this problem is my home.   I use all kinds of devices at home and no other devices have this problem.  Also, I use this iPhone all over with various wifi networks at hotels and starbucks and family's homes with no issues whatsoever.  It remembers and automatically reconnects with every wireless network except the one in my own house. 

  • HT1386 I am unable to sync music from itunes to my itouch 5th gen. This has never happened before. I use a i3 processor on my windows 7. The music just won't sync and when I go the "on this ipod" tab, the songs come faded and there is a circle.

    I have tried resetting and restoring also but it just wont sync music!

    Di you restore to factoru settings/ne iPod?
    Do the songs play OK in iTunes?
    Does any media sync to the iPod?
    Try
    Removing and reinstalling iTunes and other software components for Windows Vista, Windows 7, or Windows 8
    However, after your remove the Apple software components also remove the iCloud Control Panel via Windows Programs and Featurs appin the Window Control Panel. Then reinstall all the Apple software components

  • How to handle warning message for the fields in tab merging , PERSONAS 2.0

    Hi all,
    Please advice me on the below issue.
    In a transaction VA32 , I have merged the fields from one tab to another tab using tab caching.
    when i try to change the value of  a merged fields , it throws the warnings message. So it is continuously looping from one tab to another tab.
    So i tried to use the additional editor concepts in tab caching as below.
    Looping is stopped and throws warning message in the same tab.
    All the changes are saved successfully only when the enter button is clicked once in the main screen, else the changes are not saved and my previous value remains.
    Anybody have an idea on how we can use Additional actions in Tab caching concepts.
    Thank you,
    Arun

    Hi Kranthi,
    When i try to save the fields which i merged from different tab is not saving.
    Please find the below details.
    Green highlighted fields are custom fields which is merged from different screen like header or item overview screen. This is handled in script button.
    Red highlighted fields are merged from different tab like shipping or sales using tab caching concept.
    While changing the value of the fields which is merged from different tab , and press ENTER then it throws the Warning message if occurs.
    After warning message, if i try to save using the script button for copying all the custom fields which is merged from different screen , pasted it to their respective screens and also saved.
    Its working fine.
    When i try to save it before pressing ENTER button then the respective changes had made in the merged fields from different tab are not reflected.
    How we can handle this issue?
    Thank you,
    Arun

  • Error:Ref cound more than 1 when add the field

    hai,
    I got the error like "Ref cound more than 1" when i add the field in the table.I use this fuction
    Public Function createUserFields(ByVal tablename As String, ByVal fieldName As String, ByVal fieldDescription As String, ByVal dataType As SAPbobsCOM.BoFieldTypes, Optional ByVal dataSize As Long = 0, Optional ByVal subType As SAPbobsCOM.BoFldSubTypes = SAPbobsCOM.BoFldSubTypes.st_None, Optional ByVal linkedTable As String = "") As Boolean
    Dim v_UserField As SAPbobsCOM.UserFieldsMD
    Dim v_RetVal As Long
    Dim v_ErrCode As Long
    Dim v_ErrMsg As String = ""
    Try
    createUserFields = False
    If Not UserFieldExists(tablename, fieldName) Then
    app.StatusBar.SetText("Creating Table " + tablename + " ...... :> Adding Field: " & fieldName & " - " & fieldDescription, SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Warning)
    v_UserField = com.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields)
    v_UserField.TableName = "@" + tablename
    v_UserField.Name = fieldName
    v_UserField.Description = fieldDescription
    v_UserField.Type = dataType
    If dataType = SAPbobsCOM.BoFieldTypes.db_Alpha Then
    v_UserField.Size = dataSize
    End If
    If Not (subType = SAPbobsCOM.BoFldSubTypes.st_None) Then
    v_UserField.SubType = subType
    End If
    If linkedTable "" Then v_UserField.LinkedTable = linkedTable
    ' If Not (v_progressBar Is Nothing) Then v_progressBar.Text = tablename + ":> " + "Adding Field:> " & fieldName & " :> " & fieldDescription
    v_RetVal = v_UserField.Add()
    If v_RetVal = 0 Then
    createUserFields = True
    Else
    com.GetLastError(v_ErrCode, v_ErrMsg)
    app.StatusBar.SetText("Failed to add UserField " & fieldName & v_ErrCode & " " & v_ErrMsg, SAPbouiCOM.BoMessageTime.bmt_Medium, SAPbouiCOM.BoStatusBarMessageType.smt_Error)
    End If
    System.Runtime.InteropServices.Marshal.ReleaseComObject(v_UserField)
    v_UserField = Nothing
    GC.Collect()
    End If
    can any one help me?
    Regards,
    Ramya.s

    HI
    In 2007 i always got the same problem.
    Solution:
    1st create all tables
    then
    2nd create all fields
    and do not use any querys to exists the table or field
    >If Not UserFieldExists(tablename, fieldName) Then
    use lretcode when you add the field / Table, even it is -2035 it is already exists, do not care.
    '... your original code
                If v_RetVal <> 0 Then
                    Select Case v_RetVal
                        Case -2035 'means already exist
                        Case Else
                            com.GetLastError(v_ErrCode, v_ErrMsg)
    '... your original code
                    End Select
                End If
    Only this way was working for me....
    Regards,
    J.
    Edited by: Janos  Nagy on Jul 30, 2008 2:58 PM

Maybe you are looking for