OO ABAP - Retrieve source from Class Builder?

Hi. Is there a way to display the source code for a class or interface definition that was created with the class builder (se24).
I looked through the drop downs, but I didn't see anything to display the source.
Thanks in advance.
Brendan

A class is distributed upon several includes. The Se24 in my 45b system offers to view the source via button on the bottom of the method list.
If you like you can try the following sample program also. Just paste the source and create the Pf-Status 'STA_MAIN' (line 135) and add the commands PICK(f2),Back, Exit, My_Edit(any key).
PS: double clicking on a include navigates forward ( if PICK is set to F2 ).
PPS: If you experience trouble with pasting the code and lost line termination, please paste into wordpad an save as text file.
[code]
report:   Ze80Lite
created:  17.aug.2000
purpose
this report displays various informations of report-source files
Change History
#nn - dd.mmm.yyyy - Author
                     short description
#00 - 17.aug.2000 - KZI
                     initial
report Ze80Lite
  no standard page heading
  line-size 120
  message-id sx.
*$ external types & constants =====================
*======================================================================
*$ local types ========================================================
*======================================================================
types:
  typ_source      type string,
  typ_source_tab  type standard table of typ_source,
  begin of typ_file_info,
    lsind         type syst-lsind,
    isvalid       type flag,
    r3state       type d010sinf-r3state,
    prgnam        type programm,
    srcnam        type programm,
    prgtyp        type d010sinf-subc,
  end of typ_file_info,
  begin of typ_line_info,
    flag_newline  type flag,
    flag_comment  type flag,
    text          type string,
  end of typ_line_info,
  begin of typ_method_info,
    methodname  type tmdir-methodname,
    methodindx  type tmdir-methodindx,
  end of typ_method_info,
  typ_method_info_tab type standard table of typ_method_info,
  typ_line_tab type standard table of typ_line_info.
selection-screen begin of block sel1 with frame title text-s01.
parameter:
  p_prgnam        type programm   obligatory,
  p_state         type d010sinf-r3state default 'I',
  p_typprg radiobutton group 0001 default 'X',
  p_typcla radiobutton group 0001,
  p_typifc radiobutton group 0001,
  p_typfct radiobutton group 0001,
  p_typmod radiobutton group 0001,
  p_typool radiobutton group 0001.
selection-screen end of block sel1.
constants:
  begin of gcr_rep,
    typ_prg   type  i          value 1,
    typ_cla   type  i          value 2,
    typ_ifc   type  i          value 3,
    typ_fct   type  i          value 4,
    typ_mod   type  i          value 5,
    typ_pool  type  i          value 6,
    max_modi  type  syst-lsind value 5,
    max_width type  i          value 80,
    mem_prg   type memoryid    value 'ST22_PRGNAME',
    mem_typ   type memoryid    value '91A',          " missuse
    mem_dir   type memoryid    value '91B',          " missuse
    mem_sta   type memoryid    value '91C',          " missuse
  end of gcr_rep.
data:
  goa_file      type standard table of typ_file_info.
=====================================================================
*$ report eventing ====================================================
=====================================================================
initialization.
  perform sub_init.
at selection-screen.
  perform sub_check.
start-of-selection.
  perform sub_main.
at line-selection.
  perform sub_click.
at user-command.
  perform sub_command
    using sy-ucomm.
  sy-ucomm = ''.
=====================================================================
*$ subroutines ========================================================
=====================================================================
form   :  sub_main
purp.  :  main entry point for procecssing
param  :  <global>     from selectio screen
rcode  :  ---
hist.  :  #00 -  KZI - created
form sub_main.
data declaration
  data:
    lon_error          type i,
    lon_srctyp         type i,
    loc_srcnam         type programm,
    lor_file           type typ_file_info.
init
  set pf-status 'STA_MAIN'.
  clear:
    lor_file,
    goa_file.
  do 10 times.
    append lor_file to goa_file[].
  enddo.
get the type
  " keep in sync with parameter, sub_check, sub_init
  case 'X'.
    when p_typprg.
      lon_srctyp = gcr_rep-typ_prg.
    when p_typcla.
      lon_srctyp = gcr_rep-typ_cla.
    when p_typifc.
      lon_srctyp = gcr_rep-typ_ifc.
    when p_typfct.
      lon_srctyp = gcr_rep-typ_fct.
    when p_typmod.
      lon_srctyp = gcr_rep-typ_mod.
    when p_typool.
      lon_srctyp = gcr_rep-typ_pool.
    when others.
      lon_srctyp = gcr_rep-typ_prg.
  endcase.
get true name
  perform sub_get_srcnam
    using
      lon_srctyp
      p_prgnam
    changing
      lon_error
      loc_srcnam.
  perform sub_dsp_source
    using
      p_prgnam
      loc_srcnam.
the end
  exit. " form
endform.                    "sub_main
form   :  sub_click
purp.  :  entry point for line selection
param  :  <global>    sy-lisel
rcode  :  ---
hist.  :  #00 -  KZI - created
form sub_click.
data declaration
  data:
    lon_error          type i,
    loc_prgnam         type programm,
    loc_srcnam         type programm.
get possibly program name
  if ( 0 eq lon_error ).
    perform sub_get_word_from_list
      changing
        loc_prgnam.
    if ( '' eq loc_prgnam ).
      lon_error = 1.
    else.
      translate loc_prgnam to upper case.
    endif.
  endif.
get source name
  if ( 0 eq lon_error ).
    case loc_prgnam.
      when 'METHODS'.
        perform sub_dsp_methods.
      when others.
        perform sub_get_srcnam
          using
            gcr_rep-typ_prg
            loc_prgnam
          changing
            lon_error
            loc_srcnam.
        if ( 0 eq lon_error ).
          perform sub_dsp_source
            using
              loc_srcnam
              loc_srcnam.
        endif.
    endcase.
  endif.
the end
  exit. " form
endform.                    "sub_click
form   :  sub_command
purp.  :  entry point for user command
param  :  ---
rcode  :  ---
hist.  :  #00 -  KZI - created
form sub_command
  using
    value(poc_cmd)   type syst-ucomm.
data declaration
  data:
    lon_error        type i,
    lon_lsind        type syst-lsind,
    lor_file         type typ_file_info.
try to catch a valid file info
  if ( 0 eq lon_error ).
    read table goa_file[]
      into lor_file
      with key lsind = sy-lsind.
    if ( 0 ne sy-subrc ).
      lon_error = 1.
    elseif ( 'X' ne lor_file-isvalid ).
      lon_error = 1.
    endif.
  endif.
dispatch work
  if ( 0 eq lon_error ).
    case poc_cmd.
      when 'MY_EDIT'.
        editor-call for report lor_file-srcnam display-mode.
      when 'MY_HELP'.
        perform sub_dsp_help.
      when others.
        " nop
    endcase.
  endif.
endform.                    "sub_command
form   :  sub_get_word_from_list
purp.  :  get the word clicked on
param  :  <global>     sy-lisel
rcode  :  ---
hist.  :  #00 -  created
           #01 -  fixed a problem with words starting in first column
form sub_get_word_from_list
  changing
    prc_srcnam     type programm.
  data:
    loc_cmp(1)     type c,
    lon_bgn        type i,
    lon_end        type i,
    lon_len        type i.
get fundamental data
  lon_len = strlen( sy-lisel ).
  lon_bgn = sy-cucol.
  lon_end = sy-cucol.
find begin/end of word
  do.
    loc_cmp = sy-lisel+lon_bgn(1).
    if
        ''      eq loc_cmp or
        '"'',.' ca loc_cmp
      exit." do
    endif.
    lon_bgn = lon_bgn - 1.
    if ( 0 GT lon_bgn ).
      exit. " do
    endif.
  enddo.
  lon_bgn = lon_bgn + 1.
  do.
    loc_cmp = sy-lisel+lon_end(1).
    if
        lon_len le lon_end or
        ''      eq loc_cmp   or
        '"'',.' ca loc_cmp
      exit.
    endif.
    lon_end = lon_end + 1.
  enddo.
  lon_end = lon_end - 1.
if end >= begin give it back
  if ( lon_end ge lon_bgn ).
    lon_len = lon_end - lon_bgn + 1.
    prc_srcnam = sy-lisel+lon_bgn(lon_len).
  endif.
endform.                    "sub_get_word_from_list
form   :  sub_get_srcnam
purp.  :  builds sourcename according to selection screen settings
param  :  pon_prgtyp   distinquish the various program types
           pon_prgnam   the program name used to build the source file
rcode  :  prn_error    0 success, else failure
           prc_srcnam   name of sourcefile
hist.  :  #00 -  KZI - created
form sub_get_srcnam
  using
    value(pon_prgtyp)     type i
    value(poc_prgnam)     type program
  changing
    prn_error             type i
    prc_srcnam            type programm.
data declaration
  data:
    lon_error type i,                 " local errorflag
    x type i,                         " simple counter
    y type i,                         " simple counter
    lor_tfdir type tfdir.             " prog info tab.
build the true filename dependend on prg type
  " keep this source in sync with parameter, sub_check, sub_init
  case pon_prgtyp.
    when gcr_rep-typ_prg.
      " simple program
      prc_srcnam = poc_prgnam.
    when gcr_rep-typ_cla.
      " class
      prc_srcnam = poc_prgnam.
      x = strlen( poc_prgnam ).
      if ( 30 > x ).
        y = 30 - x.
        prc_srcnam+x(y) = '=============================='.
      endif.
      prc_srcnam+30(2) = 'CP'.
    when gcr_rep-typ_ifc.
      " interface
      prc_srcnam = poc_prgnam.
      x = strlen( poc_prgnam ).
      if ( 30 > x ).
        y = 30 - x.
        prc_srcnam+x(y) = '=============================='.
      endif.
      prc_srcnam+30(2) = 'IP'.
    when gcr_rep-typ_fct.
      " function pool
      concatenate
        'SAPL'
        poc_prgnam
        into prc_srcnam.
    when gcr_rep-typ_mod.
      " function module
      select
         single *
         into lor_tfdir
         from tfdir
         where funcname = poc_prgnam.
      if ( 0 eq sy-subrc ).
        concatenate
          'L'
          lor_tfdir-pname+4
          'U'
          lor_tfdir-include
          into prc_srcnam.
      else.
        lon_error = 1.
      endif.
    when gcr_rep-typ_pool.
      " type pool
      concatenate '%_C' poc_prgnam into prc_srcnam.
    when others.
      " unknown type
      lon_error = 1.
  endcase.
the end
  if ( 0 eq lon_error ).
    prn_error = 0.
  else.
    prn_error =  1.
    prc_srcnam = p_prgnam.
  endif.
endform.                    "sub_get_srcnam
form   :  Sub_Dsp_Methods
purp.  :  displays methods of a Class
param  :  prc_ClassName the name of the class to display methods from
rcode  :
hist.  :  #00 -  KZI - created
form sub_dsp_methods.
data declaration
  constants:
    c_Num_Index  type   i value 35,
    c_Num_Modulo type   i value 36,
    c_Index(37)  type   c
                 value  '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ?'.
  data:
    lon_Fraction      type i,
    lon_Modulo        type i,
    lon_Index         type i,
    lon_Offset        type i,
    loa_methods       type typ_method_info_tab,
    loc_Class_Name    type tmdir-classname,
    loc_include_Name  type programm,
    lor_file          type typ_file_info,
    loc_Index(3)      type c.
  field-symbols:
    <lor_method>       type  typ_method_info.
init &_ precheck
  lor_file-isvalid = ''.
  lor_file-prgtyp =  ''.
  lor_file-lsind  =  sy-lsind + 1.
  modify goa_file[] from lor_file index lor_file-lsind.
  read table goa_file[] index sy-lsind into lor_file.
  if ( 0 ne sy-subrc or 'X' ne lor_File-isValid ).
    exit.
  endif.
  loc_Class_Name = lor_File-PrgNam.
  if ( loc_class_name cs '=' ).
    loc_Class_Name = loc_class_name(sy-fdpos).
  endif.
get all methods
  select methodname methodindx from tmdir
    into corresponding fields of table loa_methods[]
    where
      classname = loc_class_name AND
      methodname <> ''
    order by
     methodindx.
  if ( 0 ne sy-subrc ).
    write:
      'could not be loaded!'(e04),
      / 'No entry in TMDIR,' , loc_class_name.
    exit.
  endif.
put em on the list.
  Format: Reset.
  loc_Include_Name = loc_Class_Name.
  concatenate
    loc_Include_Name
    '=================================================='
    into loc_Include_Name.
    loc_Include_Name+30 = 'CM'.
  loop at loa_methods[] assigning <lor_method>.
    loc_Index = '000'.
    lon_Offset =   3.
    lon_Modulo =   <lor_Method>-MethodIndx mod c_Num_Modulo.
    lon_Fraction = <lor_Method>-MethodIndx div c_Num_Modulo.
    while ( ( lon_Fraction > 0 or lon_Modulo > 0 ) and lon_Offset > 0 ).
      lon_Offset = lon_Offset - 1.
      loc_Indexlon_Offset(1) = c_Indexlon_Modulo(1).
      loc_Include_Name+32 = loc_Index.
      lon_Modulo =   lon_Fraction mod c_Num_Modulo.
      lon_Fraction = lon_Fraction div c_Num_Modulo.
    endwhile.
    write: /
      loc_include_name intensified,
       at 40 <lor_method>-methodname(40).
  endloop.
endform.                    "sub_Dsp_Methods
form   :  sub_Dsp_Source
purp.  :  loads source file from database and displays its contents
           with write
param  :  prc_srcnam   name of source piece to display
rcode  :  <hide>       name of occasional included files
hist.  :  #00 -  KZI - created
form sub_dsp_source
  using
    value(poc_prgnam)  type programm
    value(poc_srcnam)  type programm.
data declaration
  data:
    lon_error          type i,
    lon_warn           type i,
    loa_source         type standard table of typ_source,
    loa_lines          type typ_line_tab,
    loc_line           type string,
    loc_print          type string,
    lon_tmp            type i,
    lon_tabix          type syst-tabix,
    lor_d010sinf       type d010sinf,
    lor_file           type typ_file_info.
  field-symbols:
    <lof_source>       type typ_source,
    <lof_line>         type typ_line_info.
init &_ precheck
  format:
    reset.
  if ( gcr_rep-max_modi lt sy-lsind ). " limit modes
    sy-lsind = gcr_rep-max_modi.
  endif.
  lor_file-srcnam =  poc_srcnam.
  lor_file-prgnam =  poc_prgnam.
  lor_file-lsind =   sy-lsind + 1.
  lor_file-r3state = p_state.
poc_srcnam =       ucase( poc_srcnam ).
check existance
  if ( 0 eq lon_error ).
    select *
      from d010sinf up to 1 rows
      into lor_d010sinf
      where
        prog = poc_srcnam
      order by
        r3state
        cdat.
      if ( lor_d010sinf-r3state eq p_state ).
        exit. " loop
      endif.
    endselect.
    if ( 0 ne sy-subrc ).
      lon_error = 1.
      write:
        'could not be loaded!'(e04),
        / 'No entry in D010SINF,' , poc_srcnam.
    endif.
  endif.
get report text
  if ( 0 eq lon_error ).
    read report poc_srcnam into loa_source[] state p_state.
    if ( 0 ne sy-subrc and 'I' eq p_state ).
      read report poc_srcnam into loa_source[] state 'A'.
      lon_warn = 1.
    endif.
    if ( 0 ne sy-subrc ).
      lon_tmp = strlen( poc_srcnam ).
      write: / 'Program'(e01).
      format inverse on. format color col_negative on.
      write at (lon_tmp) poc_srcnam.
      format inverse off.  format color col_negative off.
      write: /
        'Cannot load source info, sy-subrc= '(e02),sy-subrc.
    endif.
  endif.
create display
  if ( 0 eq lon_error ).
    perform sub_dsp_source_lines
      using
        poc_prgnam
        0
        0
        loa_source[]
      changing
        lon_error.
  endif.
update internal memory
  if ( 0 eq lon_error ).
    lor_file-isvalid = 'X'.
    if ( 0 eq lon_warn ).
      lor_file-r3state = p_state.
    else.
      lor_file-r3state = 'A'.
    endif.
    lor_file-prgtyp =  lor_d010sinf-subc.
  else.
    lor_file-isvalid = ''.
    lor_file-prgtyp =  ''.
  endif.
  modify goa_file[] from lor_file index lor_file-lsind.
the end
  if ( 0 ne lon_warn ).
    message s777 with
      'There is no inactive version => no upload possible!'(i01).
  endif.
  exit. " form
endform.                    "sub_dsp_source
form   :  sub_dsp_source_lines
purp.  :  loads source file from database and displays its contents
           with write
param  :  poc_prgnam   name of source piece to display
           pra_source   source to display
rcode  :  prn_error    0 success
hist.  :  #00 -  KZI - created
form sub_dsp_source_lines
  using
    value(poc_prgnam)  type programm
    value(pon_lwr_ndx) type i
    value(pon_upr_ndx) type i
    pra_source         type typ_source_tab
  changing
    prn_error          type i.
data declaration
  data:
    lon_Strlen         type i,
    lon_Tabix(5)       type n,
    loa_lines          type typ_line_tab,
    loc_line           type string,
    lon_error          type i,
    lon_tmp            type i,
    lon_lwr_ndx        type syst-tabix,
    lon_upr_ndx        type syst-tabix.
  field-symbols:
    <lof_source>       type typ_source,
    <lof_line>         type typ_line_info.
init &_ precheck
  format:
    reset.
  lon_error = 0.
  describe table pra_source[] lines lon_tmp.
  if ( 1 gt pon_lwr_ndx or lon_tmp lt pon_lwr_ndx ).
    lon_lwr_ndx = 1.
  else.
    lon_lwr_ndx = pon_lwr_ndx.
  endif.
  if ( 1 gt pon_upr_ndx or lon_tmp lt pon_upr_ndx ).
    lon_upr_ndx = lon_tmp.
  else.
    lon_upr_ndx = pon_upr_ndx.
  endif.
create display
  if ( 0 eq lon_error ).
    format: reset.
    loop at pra_source[]
      assigning <lof_source>
      from lon_lwr_ndx
      to   lon_upr_ndx.
      lon_tabix = syst-tabix.
      loc_line = <lof_source>.
      perform sub_cut_text_comment
        using
          loc_line
          'X'
        changing
          loa_lines[].
      loop at loa_lines[] assigning <lof_line>.
        if ( 'X' eq <lof_line>-flag_newline ).
          if ( 0 ne lon_tabix ).
            write:
              /(5) lon_tabix intensified color col_normal.
          else.
            write:
              /(5) '      .' intensified color col_normal.
          endif.
          write at 6 ''.
          lon_tabix = 0.
        endif.
        lon_Strlen = strlen( <lof_Line>-Text ).
        if ( 'X' eq <lof_line>-flag_comment ).
          write: at (lon_Strlen)
             <lof_line>-text intensified no-gap.
        else.
          write: at (lon_Strlen)
          <lof_line>-text no-gap.
        endif.
      endloop.
    endloop.
  endif.
the end
  if ( 0 ne lon_error ).
    prn_error = 1.
  else.
    prn_error = 0.
  endif.
  exit. " form
endform.                    "sub_dsp_source_lines
form   :  sub_chk_input
purp.  :  (en) validate input data
           (de) validieren der eingabewerte
param  :  ---
rcode  :  ---
hist.  :  #00 - initial
form sub_dsp_help.
data declaration
  data:
    lon_error        type i,
    loa_tline        type standard table of tline,
    loc_docnam       type syst-repid.
show help about ?
  if ( 0 eq lon_error ). " Help
    loc_docnam = sy-repid.
    call function 'HELP_OBJECT_SHOW'
      exporting
        dokclass         = 'RE'
        dokname          = loc_docnam
      tables
        links            = loa_tline[]
      exceptions
        object_not_found = 1
        sapscript_error  = 2
        others           = 3.
    if ( 0 ne sy-subrc ).
      lon_error = 1.
      message w777 with 'No Help Available'(w00).
      sy-subrc = 0.
    endif.
  endif.
endform.                    "sub_dsp_help
form   :  sub_init
purp.  :  initializes the selection screen
param  :  ---
rcode  :  ---
hist.  :  #00 -  KZI - created
form sub_init.
data declaration
  data:
    loc_memory(256) type c,
    lon_memory      type i.
memory id logic
  " get prog
  get parameter id gcr_rep-mem_prg  field p_prgnam.
  if ( 0 ne sy-subrc or '' eq p_prgnam ).
    p_prgnam = sy-repid.
  endif.
  set parameter id gcr_rep-mem_prg field p_prgnam.
  " get prog type ( keep in sync with parameters sub_check and
  " sub_get_srcnam )
  get parameter id gcr_rep-mem_typ field loc_memory.
  condense loc_memory.
  loc_memory = loc_memory(4).
  if ( loc_memory co ' 0123456789' ).
    lon_memory = loc_memory.
  else.
    lon_memory = gcr_rep-typ_prg.
  endif.
  clear:
    p_typcla,
    p_typfct,
    p_typifc,
    p_typmod,
    p_typool,
    p_typprg.
  case lon_memory.
    when gcr_rep-typ_prg.
      p_typprg = 'X'.
    when gcr_rep-typ_cla.
      p_typcla = 'X'.
    when gcr_rep-typ_ifc.
      p_typifc = 'X'.
    when gcr_rep-typ_fct.
      p_typfct = 'X'.
    when gcr_rep-typ_mod.
      p_typmod = 'X'.
    when gcr_rep-typ_pool.
      p_typool = 'X'.
    when others.
      " default
      p_typprg = 'X'.
  endcase.
  " get status ( keep in sync with sub check ).
  get parameter id gcr_rep-mem_sta  field p_state.
  if ( 'A' ne p_state ).
    " only 'I' or 'A' is allowed
    p_state = 'I'.
  endif.
  set parameter id gcr_rep-mem_sta field p_state.
endform.                    "sub_init
form   :  sub_check
purp.  :  at the selection screen
param  :  ---
rcode  :  ---
hist.  :  #00 -  KZI - created
form sub_check.
data declaration
  data:
    loc_memory(4)    type c,
    lon_rcode        type i.
memory id handling
  case p_state.
    when 'A' or 'I'.
      " ok
    when others.
      message e777 with
        'Only ''A'' and ''I'' are allowed for state'(se1).
  endcase.
  set parameter id gcr_rep-mem_prg field p_prgnam.
  set parameter id gcr_rep-mem_sta field p_state.
  " multiple choice
  " keep in sync with parameters and sub_check, sub_main
  case 'X'.
    when p_typprg.
      loc_memory = gcr_rep-typ_prg.
    when p_typcla.
      loc_memory = gcr_rep-typ_cla.
    when p_typifc.
      loc_memory = gcr_rep-typ_ifc.
    when p_typfct.
      loc_memory = gcr_rep-typ_fct.
    when p_typmod.
      loc_memory = gcr_rep-typ_mod.
    when p_typool.
      loc_memory = gcr_rep-typ_pool.
    when others.
      " if bugfree this should never happen, sync source if you
      " expierience this source to be executed
      loc_memory = gcr_rep-typ_prg.
  endcase.
  if ( '' ne loc_memory ).
    set parameter id gcr_rep-mem_typ field loc_memory.
  endif.
endform.                    "sub_check
form   :  sub_split_comment
purp.  :  splits a line into a comment and command part.
param  :  poc_line     to source line
           poc_command  the command part
           poc_comment  the comment part
rcode  :  <hide>       name of occasional included files
hist.  :  #00 -  KZI - created
form sub_split_comment
  using
    value(poc_line)       type typ_source
  changing
    prc_command           type typ_source
    prc_comment           type typ_source.
data declaration
  data:
    loc_First_Char(1)     type c,
    lon_len_old           type i,
    lon_len_new           type i,
    lon_pos_cmt           type i,
    loc_buf1              type string,
    loc_buf2              type string,
    loc_cmtbuf(240)       type c.
init & precheck
  clear:
    prc_command,
    prc_comment.
computation
  loc_First_Char = poc_Line.
  if ( '*' eq loc_First_Char ).
    prc_command = ''.
    prc_comment = poc_line.
  else.
    if ( poc_line ca '"' and poc_line np '''"''' ).
      split poc_line at '"' into loc_buf1 loc_buf2.
      if ( '' eq loc_buf1 ).
        prc_command = ''.
        prc_comment = poc_line.
      else.
        lon_len_old =
          strlen( poc_line ).
        lon_len_new =
          strlen( loc_buf1 ) +
          strlen( loc_buf2 ).
        lon_pos_cmt = lon_len_old - lon_len_new - 2.
        if ( 0 gt lon_pos_cmt or 240 lt lon_pos_cmt ).
          lon_pos_cmt = 0.
        endif.
        loc_cmtbuf+lon_pos_cmt = '"'.
        prc_command = loc_buf1.
        concatenate loc_cmtbuf loc_buf2 into prc_comment.
      endif.
    else.
      prc_command = poc_line.
      prc_comment = ''.
    endif.
  endif.
the end
  exit. " form
endform.                    "sub_split_comment
form   :  sub_cut_text_comment
purp.  :  splits a line into a comment and command part.
param  :  poc_line     to source/text line
           poc_cmt      'X' chk for comments
rcode  :  pra_lines    filled with line info ( reset )
hist.  :  #00 -  KZI - created
form sub_cut_text_comment
  using
    value(poc_line)       type string
    value(poc_cmt_check)  type flag
  changing
    pra_lines             type typ_line_tab.
data declaration
  data:
    loc_buf1              type string,
    loc_buf2              type string,
    loc_comment           type string,
    loc_command           type string.
  data:
    loc_First_Char(1)     type c,
    loc_new_line          type flag,
    lon_cur_pos           type i,
    lon_new_pos           type i.
init & precheck
  clear:
    pra_lines[],
    loc_command,
    loc_comment.
computation
  loc_First_Char = poc_Line.
  if ( '' eq poc_cmt_check or '' eq poc_line ).
    loc_command = poc_line.
    loc_comment = ''.
  else.
    if ( '*' eq loc_First_Char ).
      loc_command = ''.
      loc_comment = poc_line.
    else.
      if ( poc_line ca '"' and poc_line np '''"''' ).
        split poc_line at '"' into loc_buf1 loc_buf2.
        if ( '' eq loc_buf1 ).
          loc_command = ''.
          loc_comment = poc_line.
        else.
          loc_command = loc_buf1.
          concatenate '"' loc_buf2 into loc_comment.
        endif.
      else.
        loc_command = poc_line.
        loc_comment = ''.
      endif.
    endif.
  endif.
cvt text
  lon_cur_pos = 0.
  loc_new_line = 'X'.
  if ( '' ne loc_command ).
    perform sub_cut_text_width
      using
        loc_command
        loc_new_line
        lon_cur_pos
        gcr_rep-max_width
      changing
        pra_lines[]
        lon_new_pos.
    lon_cur_pos =  lon_new_pos.
    loc_new_line = ''.
  endif.
  if ( '' ne loc_comment ).
    perform sub_cut_text_width
      using
        loc_comment
        loc_new_line
        'X'
        lon_cur_pos
        gcr_rep-max_width
      changing
        pra_lines[]
        lon_new_pos.
    lon_cur_pos =  lon_new_pos.
    loc_new_line = ''.
  endif.
  if ( '' ne loc_new_line ).
    perform sub_cut_text_width
      using
        loc_new_line
        lon_cur_pos
        gcr_rep-max_width
      changing
        pra_lines[]
        lon_new_pos.
    lon_cur_pos =  lon_new_pos.
    loc_new_line = ''.
  endif.
the end
  exit. " form
endform.                    "sub_cut_text_comment
form   :  sub_cut_text_width
purp.  :  splits text info into several lines to make them
           fit to a max-width
param  :  poc_line     to source/text line
           poc_cmt      'X' chk for comments
rcode  :  pra_lines    appended ( no reset ) line info.
hist.  :  #00 -  KZI - created
form sub_cut_text_width
  using
    value(poc_text)      type string
    value(poc_new_line)  type flag
    value(poc_typ_cmt)   type flag
    value(pon_cur_pos)   type i
    value(pon_max_width) type i
  changing
    pra_lines            type typ_line_tab
    prn_new_pos          type i.
data declaration
  data:
    lor_text_info         type typ_line_info,
    lon_cnt_loop          type i,
    lon_tmp               type i,
    lon_pos_cur           type i,
    lon_len_cur           type i,
    loc_buf_cur           type string,
    loc_new_line          type flag.
init & precheck
  loc_buf_cur =  poc_text.
  loc_new_line = poc_new_line.
  lon_pos_cur =  pon_cur_pos.
  do.
    if ( '' eq loc_buf_cur and '' eq loc_new_line or
         1000 lt lon_cnt_loop ).
      exit. " do
    else.
      lon_cnt_loop = lon_cnt_loop + 1.
      clear:
        lor_text_info.
      lor_text_info-flag_comment = poc_typ_cmt.
      if ( '' ne loc_new_line ).
        loc_new_line =               ' '.
        lor_text_info-flag_newline = 'X'.
        lon_pos_cur =                 0.
      endif.
      lon_len_cur = strlen( loc_buf_cur ).
      lon_tmp = lon_pos_cur + lon_len_cur.
      if ( lon_tmp le pon_max_width ).
        " all fits in currentline
        lor_text_info-text = loc_buf_cur.
        loc_buf_cur = ''.
        lon_pos_cur = lon_pos_cur + lon_len_cur.
      else.
        " we need to split
        lon_tmp = pon_max_width - lon_pos_cur.
        if ( 0 gt lon_tmp ).
          " should not happen
          lor_text_info-text = loc_buf_cur.
          loc_buf_cur = ''.
        else.
          lor_text_info-text = loc_buf_cur(lon_tmp).
          loc_buf_cur = loc_buf_cur+lon_tmp.
        endif.
        lon_pos_cur = 0.
        loc_new_line = 'X'.
      endif.
      append lor_text_info to pra_lines[].
    endif.
  enddo.
the end
  prn_new_pos = lon_pos_cur.
  exit. " form.
endform.                    "sub_cut_text_width
[/code]

Similar Messages

  • HR ABAP Retrieving data from IT0008

    Hi Gurus,
    I want to retrieve the data from infotype 0008 on the basis of  I Val date(which is at the end of IT 8 beside Total. Like the record in infotype 8 is with some date but in between there may be changes in some components of the employee. So on the basis of I Val date only i want to retrieve the data of an employee.
    Can any one tell me how to retrieve the data from IT 8 using I Val Date.
    Regards,
    Srinath

    Hi,
    Please try HR_READ_INFOTYPE.
    or else try
    DATA: T_PPBWLA LIKE PBWLA OCCURS 0 WITH HEADER LINE.
        CALL FUNCTION 'RP_FILL_WAGE_TYPE_TABLE'
          EXPORTING
            BEGDA  = sy-datum -
            ENDDA  = sy-datum
            INFTY  = '0008'
            PERNR  = pernr
          TABLES
            PPBWLA = T_PPBWLA.
    Here begda and endda you can put as per your logic.
    Hope it helps.
    Regards
    Hiren K.Chitalia

  • Retrieve method from class which extends JFrame

    hi, i need some help with my program.
    I have two class which both extends JFrame. The first class called security class and second class is available class.
    In the SECURITY class, i create a button to operate the AVAILABLE class and it generate a result in method Count(). I want to view the result in Frame SECURITY by calling method count() but i could manage to do it. Could somebody help me how to manage this problem?
    Thanks.

    may be you could create a instance of the class you wanted to access method from or pass the instance from one class to another.
    like this:
    public class A extends JFrame
    public B newB= new B();
    public A(){}
    public void someMethod()
    newB.someOtherMethod();
    public class B extends JFrame
    public B(){}
    public void someOtherMethod()
    i hope it is what you are looking for

  • Switch to "Source Code-Based" mode in class builder

    hi,
    while doing the tutorial
    http://help.sap.com/saphelp_nwpi71/helpdata/en/67/6b5bbb681e4f10b44bc2d6c4167b02/content.htm
    i came across the step,
    ... Switch to Source Code-Based mode , in the class builder,
    but in my workbench it is not available.
    i searched on sdn, and saw the link
    [Settings of the Class Builder|http://help.sap.com/saphelp_nwpi71/helpdata/en/67/6b5bbb681e4f10b44bc2d6c4167b02/content.htm]
    it shows there must be an option for
    Source Code-Based Class Builder  -  If you choose this option, the system opens the Source Code-Based Class Builder by default.
    but in my system, i can see all other options in the Utilities->Settings-Classbuider page, except the option of Source Code-Based Class Builder
    could this be related to my permissions or our version of sap system.
    madhu_1980

    [ABAP documentation indicates it is available as of 7.0 ehp 2|http://help.sap.com/abapdocu_70/en/ABENNEWS-710-TOOLS.htm#!ABAP_MODIFICATION_2@2@]

  • Best way to retrieve page source from a webserver using a fixed schedule??

    Right now I have a working program that will get the html source from a webserver, parse it and format to a more readable format. (In the future I would like to send a message with its content to a cellphone). But for now I would just like to know the best way to keep the connection object alive, while being able to call a GET request for the source (without having to create a new object everytime), in this case it is the bufferedreader. (The getSource() method is called in a thread every minute.
    What would be the best way to achieve this?
    Here is a snippet of the code for the web class.
    public class cWeb {
    static {
    try {
    myUrl = new URL("http://xxx.xxx.xxx/index.html");
    catch (MalformedURLException murle){
    System.out.println(murle.getMessage());
    catch (IOException ioe){}
    public static void getSource()
    String inputLine = null;
    pageSource = null; // this is a global var used in parse
    try {
    BufferedReader in = new BufferedReader(
    new InputStreamReader(
    myUrl.openConnection().getInputStream()));
    while ((inputLine = in.readLine()) != null)
    pageSource += inputLine;
    in.close();
    catch (MalformedURLException murle){}
    catch (IOException ioe){}
    }

    Hi,
    The data can be passed using URL parameters.
    In NW04s, Web Dynpro provides "Suspend" and "Resume" plugs for transferring the control to Non-WebDynpro framework and back to Web Dynpro application.
    1. Define an outbound plug of type suspend in the interface view
    -Suspend plug automatically generates a parameter with the name URL of type string
    2. Define a method (e.g. onActionSuspend) in the view controller, set return type void
    3. Define an action in the view controller (e.g. suspend, the event handler is onActionSuspend)
    4.Create the URL‘
    URL = newString(URLofTheExternalFrameworkapplication+ paramsString)
    5.Implement the FirePlug
    wdThis.wdGetTopLevelComponentInterfaceViewController().wdFirePlugSuspend(URL);
    6.Define an inbound plug of type resume in interface view.
    public void onPlugResumePlug{
    String resumepara=
    WDWebContextAdapter.getWebContext.getRequestParamet
    er/“param1“);
    From the non-WD framework,
    1. you have to get the currentURL
    String wdUrl= getCurrentUrl();
    2. Decode the URL
    try{
    wdUrl= URLDecoder.decode(wdUrl,“ISO-8859-1“);
    3.Then you can build the URL by appending URL params
    wdResumeUrl= wdUrl+ 'param1=' + result + 'param2'
    4. invoke it, the WD application would be resumed without getting timed out.
    If you don't have plugs of type Suspend and Resume in interface view in your IDE, then it maybe in the later versions of NW04s.
    Hope this helps.
    Thanks and Regards,
    Rohit Jaiswal

  • Why class builder allows to develop abstract final class ? What is the use of such class in ABAP?

    I am new to ABAP. I tried creating abstract class and found that class builder allows development of abstract final class. What is the use of such class in ABAP?

    Hi,
    Does not compile:
    This one do:
    Inheritance:
    Regards.

  • How to retrieve content from DAO Class and process in Controller Class?

    Hello
    This is for the experts.
    What is the best approach to passing a large set of data from Class A to Class B? I have a DAO Class that connects to a database to retrieve data. I tried saving the data in a collection (map) and passing the collection to Class B. The problem here is that the data is may be too large for a collection without increasing the heap size, it could cause out of memory exception. Instead I'd like to pass the data (row by row) on to the "Controller" Class where which will process each row. I am not sure how to do this without using a collection or some sort. Some tips will be much appreciated.
    Note: MVC Rules dictates that Controller cannot call the DAO Class directly, it has to go through the Model which talks directly with the DAO Class.
    Thanks
    Edited by: 875864 on 30-Oct-2011 15:05

    875864 wrote:
    Hello
    This is for the experts.
    What is the best approach to passing a large set of data from Class A to Class B? I have a DAO Class that connects to a database to retrieve data. I tried saving the data in a collection (map) and passing the collection to Class B. The problem here is that the data is may be too large for a collection without increasing the heap size, it could cause out of memory exception. Instead I'd like to pass the data (row by row) on to the "Controller" Class where which will process each row. I am not sure how to do this without using a collection or some sort. Some tips will be much appreciated.
    Note: MVC Rules dictates that Controller cannot call the DAO Class directly, it has to go through the Model which talks directly with the DAO Class.
    Thanks
    Edited by: 875864 on 30-Oct-2011 15:05if its a large set of data, and is fetched from DB and you are sure that it is too large and chances of getting out of memory exception then why you are passing it over request.
    If the data is fetched based on some filter criteria, then just pass the filter criteria from class A to class B, and fetch the data from DB based on the filter criteria in class B.

  • How To change UME Data source from Abap to Java.

    Hi Experts,
    Can any one give me Detailed Steps of how to Migrate from UME Data Source from Abap to Java, as the Ume Data Source is initally configured for Abap.
    Regards,
    Siva

    Siva,
    Please search before you post a question.
    This has been discussed many a times in here. Please refer to this [thread|To change ABAP UME database to Portal database;.
    Good Luck!
    Sandeep Tudumu

  • Detailed example for ABAP mapping in XI7.0 with code in  class builder

    hi experts,
                  will any one one send me the detailed example(including navigation steps) for ABAP mapping in XI7.0 with code in class builder.
                                                         Thankin u,

    Hi,
    Just go through the below link.It will guide you how to do abap mapping:
    The guide is on XI 3.0 but the same can be used in 7.0 also.
    The How-to-guide
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5c46ab90-0201-0010-42bd-9d0302591383
    This link will provide more information regarding program point of view.
    http://help.sap.com/saphelp_nw04/helpdata/en/86/8280ba12d511d5991b00508b6b8b11/content.htm
    Thanks,
    Kishore.
    Edited by: Kishore on Mar 14, 2008 4:35 AM

  • How to hide the source of class from others?

    Good day!
    Recently (I'm novice) I found many programs that allow to get from
    .class file .java file, e.g. any people can access the source code
    of my work...
    So, how can I prevent this?
    Thank you in advance!

    Add an @author tag in your source code, may be some copyright notice/warning (if any) and forget...
    anybody who opens ur compilied class will see ur name..
    leave the rest to them, let them copy if they need to why bother..
    We are moving to open source, right!!! May be some one might report an error/bug, for good.
    Sorry if this doesn help,
    Sneha.

  • Only to import  JAVA CLASS  and JAVA SOURCE  from .DMP file using IMPDP

    hi,
    I have a schema X, In that schema some of the *"JAVA CLASS" and "JAVA SOURCE"* objects are missing ..
    The procedures ,functions..etc objects were updated at X schema..
    I have 1 dmp file of Y schema , containing the missing "JAVA CLASS" and "JAVA SOURCE" s.. Can I import the the same to the schema X using IMPDP
    i tried using INCLUDE clause but it is not working
    eg:
    impdp john1/john1@me11g22 directory=datadump dumpfile=DEVF2WAR.DMP remap_schema=devf2war:john INCLUDE="JAVA CLASS","JAVA CLASS"but error..
    ORA-39001: invalid argument value
    ORA-39041: Filter  "INCLUDE" either identifies all object types or no object types.regards,
    jp

    Double post: IMPDP to import  JAVA CLASS  and JAVA SOURCE from .DMP file
    Already replied.
    Regards
    Gokhan

  • "Retrieve the COM class factory from component with CLSID {623F456-...etc}

    When i try to run on Window server 2008 R2 it gives following error
    "Retrieve the COM class factory from component with CLSID {623F456-...etc} failed due to the followi
    i developed application in xp  it run fine

    Hi
    When you make an ard select the target CPU x86 rather then any CPU in advanced compile options(Properties-> Compile-> Advance Compile Options)
    hope it helps
    Regards
    Rupinder

  • Retrieving the COM class factory for component with CLSID {479A1AAC-C148-40BB-9868-A9773DA66AF9} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

    Hi,
    I tried to use the
    SWFToImageObject Objswfobj = new SWFToImageObject(); for Capturing the Chart as Image using SWFToImage.dll
    But whenever creating the object as above firsrt line of the code i am getting the below error. 
    Retrieving the COM class factory for component with CLSID {479A1AAC-C148-40BB-9868-A9773DA66AF9} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
    if required any components or any solutions.
    Thaks in advance.
    Regards
    Ravikumar

    Hi,
    I am not able to find sharepoint word in your post so can you please confirm that your question is related to sharepoint?
    > Class not registered
    For you issue, this error usually comes if you don't have DLL in proper place so add SWFToImage.dll in GAC and then add this assembly reference in your project from GAC. 
    Hemendra: "Yesterday is just a memory,Tomorrow we may never see"
    Whenever you see a reply and if you think is helpful, click "Vote As Helpful"! And whenever
    you see a reply being an answer to the question of the thread, click "Mark As Answer

  • Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80010001 Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED)).Retrieving the COM class f

    Hi,
    I have created an windows service for sending the mails automatically through outlook. whenever i run the service i get the following error:
    Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80010001 Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED)).Retrieving the COM class
    factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80010001 Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED)).
    Do you have any suggestion and solution for the above mentioned problem. Thanks.

    Hello,
    Thank you for your post.
    I am afraid that the issue is out of support range of VS General Question forum which mainly discusses the usage issue of Visual Studio IDE such as
    WPF & SL designer, Visual Studio Guidance Automation Toolkit, Developer Documentation and Help System
    and Visual Studio Editor.
    I am moving your question to the moderator forum ("Where is the forum for..?"). The owner of the forum will direct you to a right forum.
    Best regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to get information from ODBC sources to Forms Builder environment

    Hi,
    Could anyone help me, to get some examples or more information, that how can I get information from ODBC sources to Forms Builder environment. I have a need to read data for example to LOV.

    If you are on Forms 6i you install the Oracle Client Adaptor from the Forms CD. You then have a way of connecting to ODBC datasources.
    To connect to ODBC at the same time as you are connected to Oracle you can use the EXEC_SQL package to create a second connection via odbc and issue select statements against that datasource.

Maybe you are looking for

  • Radio button state on region load...

    Is there a way to set the radio button state (click event) on a region load? The default value of 0 (read-only) works when clicked, but doesn't when the page initially loads, and it's like the button click event needs to take place at the region load

  • Printing pdfs

    When I print a pdf document some of the lines of text are a lighter black than the rest of the copy. This only happens with pdfs and it isn't always in the same location on the page. Are there settings I'm missing?

  • How to display metadata created by PSE 6

    If I give someone a jpg image who does not have PSE, how are they able to see the keywords, notes etc that have been stored with the image in the metadata? Reason I ask is that after doing a "Write Keyword Tag and Properties Info to Photos", I then u

  • Migration from Groupwise to OCS 10G

    Hi, is somebody have any experience about this migration. What product did you use to migrate ? Did you use internal Oracle products or a tierce product or a developed special product for this migration ? Thank's yannick

  • CD/DVD drive does not work after Win 8 intsallation

    from a month i've updated my windows into windows 8, everything is working great but the DVD-RW . When i put empty cd and try to open it, it gives me error while opening saying: "windows was unable to complete the format" So is that a software or a h