Mis primero pininos en ABAP ayuda. no jala. :(

Mira me tome la molestia de aplicarle unas mejoras a tu programa para que funcione.

El codigo que inicie con _ solo retira el _.

Ahora bien, se quedaba en el mensaje tres, porque estabas lanzando un mensaje a modo popup dentro de un loop! no lo hagas, no funciona. Deje el mensaje dentro del loop pero lo condicione para que solo salga una vez.
El alv no funcionaba porque habia una mala referencia de los campos. Ahora esta ready. quita los _ y ejecutalo.

Programa corregido
REPORT  ZTEST.


data: begin of gt_ca occurs 0,
ocpedido type EKKO-EBELN,
fecha type EKKO-AEDAT,
moneda type EKKO-WAERS,
end of gt_ca.

data: begin of gt_fin occurs 0,
ocpedido1 type EKKO-EBELN,
fecha1 type EKKO-AEDAT,
moneda1 type EKKO-WAERS,
numpro1 type EKKO-LIFNR,
end of gt_fin.

DATA :gt_cat TYPE slis_t_fieldcat_alv,
gs_cat LIKE LINE OF gt_cat.

_DATA: pos type i value 1._  "Codigo agregado

_START-OF-SELECTION._

_  PERFORM zte_seleccion1._    "Codigo agregado
_  perform zte_alv1._

*&---------------------------------------------------------------------
*& Form ZTE_SELECCION1
*&---------------------------------------------------------------------
* text
*----------------------------------------------------------------------
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------
FORM ZTE_SELECCION1.

  message 'select' type 'I' .
  select a~EBELN a~AEDAT a~WAERS from EKKO as a
  into table gt_ca
  where a~AEDAT BETWEEN '20100101' AND '20160101'.
  REfresh gt_fin.
  if sy-subrc EQ 0.
    message 'select2' type 'I' .
    LOOP at gt_ca.
      "clear gt_fin.
_      at first._                                 " Codigo agregado
_        message 'select3' type 'I' ._
_      endat._
      gt_fin-ocpedido1 = gt_ca-ocpedido.
      gt_fin-fecha1 = gt_ca-fecha.
      gt_fin-moneda1 = gt_ca-moneda.

      write: / 'DATOS ',gt_fin-ocpedido1 ,gt_fin-fecha1 ,gt_fin-moneda1.
      APPEND gt_fin. "inserta en la tabla
    ENDLOOP.
* else.
* write: / 'no '.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  endif.
ENDFORM. " ZTE_SELECCION1

*&---------------------------------------------------------------------
*& Form ZTE_ALV1
*&---------------------------------------------------------------------
* text
*----------------------------------------------------------------------
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------
FORM ZTE_ALV1 .

  CHECK gt_fin IS NOT INITIAL.

  REFRESH gt_cat.

 *CLEAR gs_cat.
_  gs_cat-fieldname = 'OCPEDIDO1'._
  gs_cat-ref_fieldname ='EBELN'.
_  gs_cat-SELTEXT_M  = 'OC'._
  _gs_cat-tabname = 'GT_FIN_'.
  gs_cat-ref_tabname ='EKKO'.
  gs_cat-emphasize = 'C411'.
_  ADD 1 TO pos._
_  gs_cat-col_pos = pos._
  APPEND gs_cat TO gt_cat.


*  CLEAR gs_cat.
  _gs_cat-fieldname = 'FECHA1_'.
  gs_cat-ref_fieldname ='AEDAT'.
  _gs_cat-SELTEXT_M  = 'Fecha_'.
  _gs_cat-tabname = 'GT_FIN_'.
  gs_cat-ref_tabname ='EKKO'.
  gs_cat-emphasize = 'C601'.
_  ADD 1 TO pos._
_  gs_cat-col_pos = pos._
  APPEND gs_cat TO gt_cat.

*
*  CLEAR gs_cat.
  gs_cat-fieldname = 'MONEDA1'.
  gs_cat-ref_fieldname ='WAERS'.
  _gs_cat-SELTEXT_M  = 'Moneda_'.
_  gs_cat-tabname = 'GT_FIN._
  gs_cat-ref_tabname ='EKKO'.
  gs_cat-emphasize = 'C600'.
_  ADD 1 TO pos._
_  gs_cat-col_pos = pos._
  APPEND gs_cat TO gt_cat.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "llamado a la tabla de creacion en pantalla
  EXPORTING
  I_CALLBACK_PROGRAM = sy-repid
  IT_FIELDCAT = gt_cat[]
  TABLES
  T_OUTTAB = gt_fin[]
  EXCEPTIONS
  PROGRAM_ERROR = 1
  OTHERS = 2.
ENDFORM.                                                    " ZTE_ALV1
2 Me gusta