1 Ağustos 2013 Perşembe

SAP de iyelik (kip) ekleri kullanım Abap kodu

SAP Abap kodları ile yazdığım isimlerin sonuna gelecek olan türkçe iyelik eklerini belirleyen rutin.

*&---------------------------------------------------------------------*
*&      Form  KIP_EKI
*&---------------------------------------------------------------------*
form kip_eki using p_kipturu p_text type char100
          changing p_ek.
  datav_len  type i,
        v_cnt1 type i,
        v_cnt2 type value 1,
        seslivesert(100),
        ss"sonsesli
        sh"sonharf
        lv_text like p_text.
  lv_text p_text.

  replace all occurrences of 'İ' in lv_text with 'i'.
  replace all occurrences of 'I' in lv_text with 'ı'.

  translate lv_text to lower case.

  concatenate  'a' 'ı' 'e' 'i' 'u' 'o' 'ü' 'ö' 'ç' 'f' 'h' 'k' 'p' 's' 'ş' 't'
               into seslivesert
 separated by ','.

  v_len =  strlenlv_text ).
  do v_len times.
    if lv_text+v_cnt1(v_cnt2ca 'a,e,ı,o,ö,u,ü,i'.
      ss lv_text+v_cnt1(v_cnt2).
    endif.
    sh lv_text+v_cnt1(v_cnt2).
    v_cnt1 =  v_cnt1 + 1.
  enddo.


  case p_kipturu.
    when 'in' "iyelik eki -> Ahmet'in

      if sh 'a' or sh 'ı' .
        p_ek '''nın'.
      elseif sh 'e' or sh 'i' .
        p_ek '''nin'.
      elseif sh 'u' or sh 'o' .
        p_ek '''nun'.
      elseif sh 'ü' or sh 'ö' .
        p_ek '''nün'.
      elseif ss 'a' or ss 'ı' .
        p_ek '''ın'.
      elseif ss 'e' or ss 'i' .
        p_ek '''in'.
      elseif ss 'u' or ss 'o' .
        p_ek '''un'.
      elseif ss 'ü' .
        p_ek '''ün'.
      else  .
        p_ek '''ın'.
      endif.

    when 'e'  "ismin e hali -> Ahmet'e

      if     sh 'a' or sh 'ı' or sh 'u' or sh 'o' .
        p_ek '''ya'.
      elseif sh 'e' or sh 'i' or sh 'ü' or sh 'ö' ).
        p_ek '''ye'.
      elseif ss 'a' or ss 'ı' or ss 'u' or ss 'o' ).
        p_ek '''a'.
      elseif ss 'e' or ss 'i' or ss 'ö' or ss 'ü' ).
        p_ek '''e'.
      else.
        p_ek '''a'.
      endif.

    when 'i'  "ismin i hali -> Ahmet'i

      if sh 'a' or sh 'ı' .
        p_ek '''yı'.
      elseif sh 'e' or sh 'i' .
        p_ek '''yi'.
      elseif sh 'u' or sh 'o' .
        p_ek '''yu'.
      elseif sh 'ü' or sh 'ö' .
        p_ek '''yü'.
      elseif ss 'a' or ss 'ı' .
        p_ek '''ı'.
      elseif ss 'e' or ss 'i' .
        p_ek '''i'.
      elseif ss 'u' or ss 'o' .
        p_ek '''u'.
      elseif ss 'ü' .
        p_ek '''ü'.
      endif.

    when 'de' "ismin de hali -> Ahmet'te / Ayşe'de

      if sh 'a' or sh 'ı' or sh 'u' or sh 'o' .
        p_ek '''da'.
      elseif sh 'e' or sh 'i' or sh 'ü' or sh 'ö' .
        p_ek '''de'.
      elseif  sh ca seslivesert )
         and (  ss 'a' or ss 'ı' or ss 'u' or ss 'o' .
        p_ek '''ta'.
      elseif sh ca seslivesert )
         and ss 'e' or ss 'i'   or ss 'ü' or ss 'ö' .
        p_ek '''te'.
      elseif ss 'a' or ss 'ı' or ss 'u' or ss 'o' .
        p_ek '''da'.
      elseif ss 'e' or ss 'i' or ss 'ü' or ss 'ö' .
        p_ek '''da'.
      elseif sh ca seslivesert .
        p_ek '''ta'.
      else  .
        p_ek '''da'.
      endif.

    when 'den'"ismin de hali -> Ahmet'ten / Ayşe'den

      if sh 'a' or sh 'ı' or sh 'u' or sh 'o' .
        p_ek '''dan'.
      elseif sh 'e' or sh 'i' or sh 'ü' or sh 'ö' .
        p_ek '''den'.
      elseif sh ca seslivesert )
         and ss 'a' or ss 'ı' or ss 'u' or ss 'o' )  .
        p_ek '''tan'.
      elseif sh ca seslivesert )
         and ss 'e' or ss 'i' or ss 'ü' or ss 'ö' .
        p_ek '''ten'.
      elseif ss 'a' or ss 'ı' or ss 'u' or ss 'o' .
        p_ek '''dan'.
      elseif ss 'e' or ss 'i' or ss 'ü' or ss 'ö' .
        p_ek '''dan'.
      elseif sh ca seslivesert .
        p_ek '''tan'.
      else.
        p_ek '''dan'.
      endif.

    when 'ile'"beraberlik hali  -> Ayşeyle / Ahmetle

      if sh 'a' or sh 'ı' or sh 'u' or sh 'o' .
        p_ek ='yla'.
      elseif sh 'e' or sh 'i' or sh 'ü' or sh 'ö' .
        p_ek ='yle'.

      elseif ss 'a' or ss 'ı' or ss 'u' or ss 'o' .
        p_ek ='la'.
      elseif ss 'e' or ss 'i' or ss 'ö' or ss 'ü' .
        p_ek ='le'.
      else  .
        p_ek 'la'.
      endif.

  endcase.

endform.                    "kip_eki

Hiç yorum yok:

Yorum Gönder