Char tablo alanından sadece sayısal verilerin SQL ile çekilmesi
Harfler bir char değişkenine aktarılır. Her harf için range`e CP koşulu eklenir. ( * asteriks ile ) .
Sorguya "not in" ile range verilir.
FORM F_NEW_NUMBER CHANGING chn_new TYPE Z_E_FIRMA.
DATA: LV_MAX_FR_ID TYPE Z_E_FIRMA.
ranges: lr_id for Z_FIRMA-Fr_ID.
data: lv_charlist type char100 VALUE `ABCDEFGHIJKLMNOPRSTQUVXWYZabcdefghijklmnoprstquvxwyz`.
data: lv_compare type char3 .
data: lv_size type int4.
data: lv_xndx type int4.
lv_size = strlen( lv_charlist ).
lv_xndx = 0.
do lv_size times.
CONCATENATE `*` lv_charlist+lv_xndx(1) `*` INTO lv_compare.
lr_id = `ICP`. lr_id-lOW = lv_compare. append lr_id.
lv_xndx = lv_xndx + 1.
ENDDO.
SELECT SINGLE MAX( Fr_ID )
into LV_MAX_FR_ID
FROM Z_FIRMA
where FR_ID NOT IN lr_id.
chn_new = LV_MAX_FR_ID + 1.
ENDFORM.