Monday, November 15, 2010

Crear smartform

Crear el smartform
cargar los datos en tablas internas para enviarlas al SF.
form llamar_smartform .
    data: lf_formname          type tdsfname,     "Nombre Smartforms
        lf_fm_name           type rs38l_fnam,   "Nombre smartforms Generado
        p_output_options     type ssfcompop,    "propiedades de visualizac
        p_control_parameters type ssfctrlop.    "Controles
  lf_formname = 'ZSF_HOJAVIDA_10'.
* Propiedades de impresion:
  p_output_options-xdf2outdev    = 'LP01'.
  p_output_options-tddest        = 'LP01'. "Impresora
  p_output_options-tdimmed       = 'X'.    "Imprimir Inmediatamente
  p_output_options-tddelete      = 'X'.    "Borrar despues de Impresion
  p_output_options-tdnewid       = 'X'.    "Crear una nueva orden spool
*  p_output_options-tdcopies      = '12'.   "Nro de Copias de impresion
  p_control_parameters-preview   = 'X'.    "Vista de previsualizacion
  p_control_parameters-device    = 'PRINTER'.
  p_control_parameters-no_dialog = 'X'.    "Sin Cuadro de dialogo
  call function 'SSF_FUNCTION_MODULE_NAME'
    exporting
      formname           = lf_formname
    importing
      fm_name            = lf_fm_name
    exceptions
      no_form            = 1
      no_function_module = 2
      others             = 3.
  case sy-subrc .
    when 1.
      message i398 with 'No se pudo cargar el formulario.'.
      return.
    when 2.
      message i398 with 'No se pudo ejecutar el modulo de funcion.'.
      return.
    when 3.
      message i398 with 'No se pudo cargar la hoja de vida. Error no especificado.'.
      return.
  endcase.
  condense lf_fm_name.
* Obtener fecha en letras
  data ls_fecha type string.
  perform fecha_en_letras changing ls_fecha.
* Funcion que invoca al smartform
  try .
      call function lf_fm_name
        exporting
          control_parameters = p_control_parameters
          output_options     = p_output_options
          user_settings      = ' '
          ps_user            = sy-uname
          ps_fecha           = ls_fecha
        tables
          ptd_ztaspirante_10 = gtd_cabecera_asp
          ptd_educacion      = gtd_educacion
          ptd_titulos        = gtd_titulos
          ptd_laboral        = gtd_laboral
          ptd_conocimientos  = gtd_conocimientos
        exceptions
          formatting_error   = 1
          internal_error     = 2
          send_error         = 3
          user_canceled      = 4
          others             = 5.
      case sy-subrc .
        when 1.
          message i398 with 'No se pudo cargar la hoja de vida. Error de formato.'.
        when 2.
          message i398 with 'No se pudo cargar la hoja de vida. Error interno.'.
        when 3.
          message i398 with 'No se pudo cargar la hoja de vida. Error en el envio de datos.'.
        when 4.
          message i398 with 'No se pudo cargar la hoja de vida. Usuario cancelo la accion.'.
        when 5.
          message i398 with 'No se pudo cargar la hoja de vida. Error no contemplado.'.
      endcase.
    catch cx_sy_dyn_call_illegal_type.
      message i398 with 'No se pudo cargar la hoja de vida. Excepcion ejecutada'.
      return.
  endtry.

endform.                    " llamar_hoja_vida

No comments:

Post a Comment