$show=home

Karakter İşlemleri İçin Örnek Kod

ABAP ile ilgili yayınlar birbirlerini takip eden konular içerir. Tüm ABAP yayınlarının listesine ulaşmak için  tıklayınız . Aşağıda kara...

ABAP ile ilgili yayınlar birbirlerini takip eden konular içerir. Tüm ABAP yayınlarının listesine ulaşmak için tıklayınız.
Aşağıda karakter işlemlerini kullanan bir ABAP kodu örneği gösterilmektedir.
[ 1 *---------------------------------------------* 2 * Report Z_MEMBERLIST03 * 3 * * 4 *---------------------------------------------* 5 * * 6 * * 7 * * 8 *---------------------------------------------* 9 10 REPORT z_memberlist03. 11 12 13 * Define strings 14 DATA: gender TYPE c length 1 VALUE 'F', "(old natation) gender(1) TYPE c, 15       last_name TYPE zmember01-mname, 16       phone TYPE n LENGTH 8 VALUE '887766', 17       area_code TYPE n LENGTH 5 VALUE '09876', 18       international_area_code TYPE c LENGTH 5 VALUE '+41', 19       phone_international TYPE c LENGTH 25. 20 21 22 * Control output original field content 23 WRITE / 'original field content'. 24 WRITE: 30 phone, 25       40 area_code, 26       50 international_area_code, 27       60 phone_international. 28 ULINE. 29 * SHIFT statement 30 WRITE / 'Shift'. 31 SHIFT phone LEFT DELETING LEADING '0'. 32 WRITE 30 phone. 33 SHIFT phone BY 2 PLACES RIGHT. 34 WRITE /30 phone. 35 ULINE. 36 * REPLACE statement 37 WRITE / 'Replace'. 38 phone_international = '  887766'. 39 REPLACE ` ` IN phone_international WITH area_code. 40 WRITE 60 phone_international. 41 REPLACE '0' IN phone_international WITH '+41-(0)'. 42 WRITE /60 phone_international. 43 REPLACE ` ` IN phone_international WITH `-`. 44 WRITE /60 phone_international. 45 ULINE. 46 * CONDENSE statement 47 WRITE / 'Condense'. 48 phone_international = '+41 -(0)9876  887766'. 49 CONDENSE phone_international. 50 WRITE 60 phone_international. 51 CONDENSE phone_international NO-GAPS. 52 WRITE /60 phone_international. 53 ULINE. 54 * CONCATENATE statement 55 WRITE / 'Concatenate'. 56 phone = '887766'. 57 SHIFT phone LEFT DELETING LEADING '0'. 58 phone_international = space. 59 CONCATENATE international_area_code area_code phone 60             INTO 61             phone_international 62             SEPARATED BY '-'. 63 WRITE 60 phone_international. 64 ULINE. 65 * SPLIT statement 66 WRITE / 'Split'. 67 international_area_code = space. 68 area_code = space. 69 phone = space. 70 SPLIT phone_international AT '-' 71      INTO 72      international_area_code area_code phone. 73 WRITE: 30 phone, 74       40 area_code, 75       50 international_area_code. 76 ULINE. 77 * Direct positioning 78 WRITE / 'Direct positioning'. 79 international_area_code = space. 80 international_area_code = phone_international(3). 81 WRITE 50 international_area_code. 82 phone_international = '+41-(0)9876-887766'. 83 area_code = space. 84 area_code = phone_international+4(7). 85 WRITE 40 area_code. 86 phone_international+1(2) = '33'. 87 WRITE 60 phone_international. ]
[post_ads_2]

Kaynak Kod İle İlgili Notlar

14-20. Satırlar
Gerçek hayatta, alanları ve veri türlerini tasarlarken gereksinimlerinizi en iyi karşılayan veri türünün hangisi olduğunu ayrıntılı olarak analiz etmenizi tavsiye ederiz. Tasarımdaki hataları daha sonraki aşamada düzeltmek zor olacaktır. Kod 5.1’deki örnekte, yerel telefon numarası (phone) ve alan kodu'nun (area_code) yalnızca rakamlardan oluştuğunu varsaydık (n veri türü). Öte yandan, uluslararası alan kodu (international_area_code) bir artı işareti içerir ve uluslararası telefon numarası (phone_international) okunabilirliği artırmak için slash işareti, parantez veya eksi işaretleri gibi ayırıcılar içerebilir. Bu nedenle, uluslararası alan kodu ve uluslararası telefon numarasının tamamı c veri türünde olmalıdır.

23-28. Satırlar
Bu ifadeler liste çıktısı için gereklidir. Okunabilirlik için, PHONE alanının içeriğinin 30. sütunda başlamasını, AREA_CODE alanının 40. sütunda başlamasını ve INTERNATIONAL_AREA_CODE ve PHONE_INTERNATIONAL alanlarının sırasıyla 50 ve 60. sütunlardan başlamasını istiyoruz. Ayrıca, burada ve ilerleyen kısımlarda listeyi kolay okunabilir konu alanlarına ayırmak için yatay çizgiler kullanılmıştır.

31. Satır
Bu satırda, başlangıçtaki sıfırları kaldırmak için sayısal alandaki dizeyi sola kaydırıyoruz. Gereksinimlere bağlı olarak, bu görevi yerine getirmek için başka yollar da vardır, ancak bu aşamada halen öğrenme safhasındayız. ('00887766' değeri sola dayalı olarak '887766' olur)

33. Satır
Burada, alanın içeriğini iki basamak sağa kaydırırız.

38. Satır
'  887766' literali alanın yeni içeriği olacaktır. Sol baştaki iki boşluk karakterine aşağıdaki örnekte ihtiyaç vardır.

39. Satır
Bu satırda, ilk boşluk karakteri AREA_CODE ('09876') alanının içeriği ile değiştirilir. Bu işlem arama teriminin string türünde (ters tırnak nedeniyle) olması sayesinde çalışır ve boşluk karakteri kabul edilir. ('  887766' değeri '09876 887766' olur.)

41. Satır
Bu satırda, sol baştaki ilk '0' karakterini '+41-(0)' literali ile değiştiriyoruz. ('09876 887766' değeri '+41-(0)9876 887766' olur.)

43. Satır
Bu satırda, ilk boşluk karakterini (` `) eksi işareti (-) ile değiştiriyoruz. ('+41-(0)9876 887766' değeri '+41-(0)9876-887766' olur.) Burada ters tırnak kullanılmış ve boşluk karakteri göz ardı edilmemiştir. Aksi takdirde, tüm dizenin önüne eksi işareti bir kere eklenir. Çünkü bu durumda yerine koyma metni aranan metnin önüne eklenmektedir.

48. Satır
Bu alıştırma için, PHONE_INTERNATIONAL alanına tanımlı içerik atanır: '41 -(0)9876  887766'. Alan toplamda üç tane boşluk karakteri içerir.

49. Satır
Alandaki alt dizeler kısaltılır ve böylece bu dizeler tek bir boşluk karakteri ile ayrılmış olur. ('41 -(0)9876  887766' değeri '41 -(0)9876 887766' olur.)

51. Satır
Alan içinde kalan boş karakterler de çıkarılır ve alt dizeler boşluklar olmadan kısaltılır.

56. ve 57. Satırlar
Benzer bir yöntem alıştırma için alanın içeriğini başlangıç değerine ayarlamak amacıyla kullanılır.

58. Satır
PHONE_INTERNATIONAL alanı boşluk karakterleri ile doldurulur. Bu amaçla, örnek rezerve edilmiş olan SPACE terimini kullanır, bu ise ' ' metin alanı literali ve dolayısıyla '' metin alanı literali ile eşdeğerdir. Bu, PHONE_INTERNATIONAL alanının atama sonrası, başlangıçta boş bir değerinin olmasını sağlar.

59-62. Satırlar
Bu ifade, dört satıra dağıtılmıştır. Bu komut, boş PHONE_INTERNATIONAL alanını komuttaki sıralarına göre INTERNATIONAL_AREA_CODE, AREA_CODE ve PHONE alanlarının içeriği ile doldurur. Daha iyi okunabilmesi için, alt dizeler hedef alanda eksi işareti ile ayrılır.

67-69. Satırlar
Alıştırma için, alanlara başlangıç değeri olarak boş karakterler atanır.

70-72. Satırlar
PHONE_INTERNATIONAL alanının içeriğinde '-' ayıracı aranır. Alan iki yerde bu ayırıcı içerdiğinden, üç alt metin vardır. Bu alt dizeler, ifadede belirtildiği sırayla hedef alanlara yazılır.

73-75. Satırlar
Daha önce boş karakter içeren alanlar, şimdi alt metinleri içerir ve listeye kendi konumlarına göre yazılır.

80. Satır
INTERNATIONAL_AREA_CODE alanı PHONE_INTERNATIONAL alanının ilk üç karakteri ile doldurulur. (+41-09876-887766 olan PHONE_INTERNATIONAL alanın ilk üç karakteri +41 olarak INTERNATIONAL_AREA_CODE'a yazılır)

84. Satır
PHONE_INTERNATIONAL alanının '+41-(0)9876-887766' olan içeriğinin 4. pozisyondan sonraki yedi karakteri -yani, 5,6,7,8,9,10 ve 11. karakterler- kopyalanır ve sistem bunları AREA_CODE alanına aktarmak için çalışır. Kaynak alanın veri türü c'dir (sabit uzunlukta karakter alanları), ve 5. ve 7. pozisyonlarda parantez karakteri vardır. Hedef alanın veri türü n'dir (sabit uzunlukta sayısal karakter alanları) ki bu herhangi bir rakam ve özel karakter kabul edemeyeceği anlamına gelir. Otomatik veri türü dönüştürme sadece sayısal karakterlerin (09876) hedef alanına transfer olmasını sağlar.

86. Satır
PHONE_INTERNATIONAL alanında, 2. ve 3. pozisyondaki içeriğin üzerine '33' literali yazılır. ('+41-(0)9876-887766' değeri  '+33-(0)9876-887766' olur.)

Program Çıktısı

Liste çıktısı 30. pozisyondan itibaren alanların özgün değerleri ile başlar. Bu listenin doğruluğunu kontrol etmenizi sağlar. PHONE alanı başta iki sıfır içerirken, PHONE_INTERNATIONAL alanı hiç bir değer içermez. (Şekil 5.1) İkinci bölümde ise, dize ilk önce sağa, sonra sola kaydırılmıştır. Üçüncü bölüm REPLACE ifadesi kullanılarak gerçekleştirilen işlemlerin sonuçlarını sunar. Öncelikle, baştaki sıfırları uluslararası alan kodu (international area code) ile ve sonra boş karakteri eksi işareti (-) ile değiştirdik. Dördüncü bölümde, CONDENSE deyimi dizeden boş karakterleri kaldırmak için kullanılmıştır. Beşinci bölümde CONCATENATE komutu eksi işaretleri ile ayrılmış bir dize oluşturmak için kullanıldı. Sonra SPLIT deyimi dizeyi üç alana bölmek için kullanıldı. Son bölüm ise uluslararası alan kodunu 41'den 33'e değiştirmek için doğrudan konumlandırmayı nasıl kullanabileceğinizi gösterir.
Şekil 1. Z_MEMBERLIST03 İçin Çıktı Görünümü

YORUM

Ad

/N/SAPTR/KDVB,1,AB03,1,AB08,1,ABAP,24,ABAVN,1,AFAB,1,AR02,1,AR03,1,AS01,1,AS02,2,AS03,1,AS11,1,AW01N,1,CO Kullanıcı,1,CO Uyarlama,1,CONCATENATE,1,CONDENSE,1,e-book,3,EC01,1,Excel,3,F-02,7,F-22,1,F-32,1,F-43,1,F-44,1,F-90,1,F-92,1,F110,2,FAGLL03,1,FB01,1,FB02,1,FB03,2,FB08,2,FB50,1,FB60,3,FB70,2,FBCJ,8,FBCJ3,1,FBCJC0,1,FBCJC1,1,FBCJC2,1,FBKP,1,FBL1N,3,FBL3N,1,FBL5N,4,FBN1,1,FBRA,2,FBV0,2,FBV2,1,FBV3,1,FBZP,1,FD01,1,FD08,1,FD09,1,FGI3,1,FI Kullanıcı,73,FI Uyarlama,41,FI01,1,FICO,1,FIT_DUE_DATE_SEL,1,FK01,1,FK02,1,FK08,1,FK09,1,FK10N,1,FS00,2,FS10N,1,FTXP,1,Gallery,4,LSMW,1,MIRO,2,Muhasebe,1,Nasıl,10,OB05,1,OB13,2,OB16,1,OB22,1,OB29,2,OB37,1,OB40,1,OB41,1,OB45,1,OB52,2,OB53,1,OB62,1,OB96,1,OBA0,1,OBA3,1,OBA4,1,OBA7,2,OBAR,1,OBAS,2,OBB8,1,OBB9,1,OBBO,1,OBBP,1,OBBU,1,OBC4,2,OBC5,1,OBCL,1,OBD2,1,OBD3,1,OBD4,1,OBWS,1,OBWW,1,OBXR,1,OBXT,1,OBXY,1,OBY6,1,OBYM,1,OBYN,1,OBYR,1,OKB2,1,OKB3,1,OLMRLIST,1,OX03,1,OX15,1,PFCG,1,REPLACE,1,S_ALR_87010175,1,S_ALR_87011965,1,S_ALR_87011990,1,S_ALR_87012004,1,S_ALR_87012050,1,S_ALR_87012052,1,S_ALR_87012082,1,S_ALR_87012090,1,S_ALR_87012172,1,S_ALR_87012183,1,S_ALR_87012357,1,SAP,3,SE11,5,SE38,6,SE71,1,SHCD,1,SHIFT,1,SKIP,1,SM30,1,SM35,1,SPLIT,1,Stopaj,3,ULINE,1,VN01,1,VOFA,1,WRITE,1,XD01,1,XDN1,1,XKN1,1,
ltr
item
SAP Muhasebe: Karakter İşlemleri İçin Örnek Kod
Karakter İşlemleri İçin Örnek Kod
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIzSJq-LHIs3e7jZFnEMs_QJhf9xlNDbjYzgMYiLcPWuoY_gTx3nd9F_Uwfrs26R9HQ5JSUQIYm69J8autUt0Ti_IedQGcY05dibIsft2XBzJj6efot8F-2F1v3cX_hBUM13BiUihvzoA/s1600/Depositphotos_123157088_m-2015.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIzSJq-LHIs3e7jZFnEMs_QJhf9xlNDbjYzgMYiLcPWuoY_gTx3nd9F_Uwfrs26R9HQ5JSUQIYm69J8autUt0Ti_IedQGcY05dibIsft2XBzJj6efot8F-2F1v3cX_hBUM13BiUihvzoA/s72-c/Depositphotos_123157088_m-2015.jpg
SAP Muhasebe
https://www.sapmuhasebe.com/2017/11/karakter-islemleri-icin-ornek-kod.html
https://www.sapmuhasebe.com/
https://www.sapmuhasebe.com/
https://www.sapmuhasebe.com/2017/11/karakter-islemleri-icin-ornek-kod.html
true
2532429962024234885
UTF-8
Loaded All Posts Not found any posts TÜMÜNÜ GÖSTER Devamı Yanıtla Cancel reply Sil By Ana Sayfa SAYFALAR KAYITLAR Tümünü Göster BENZER YAYINLAR ETİKET ARŞİV SEARCH TÜM KAYITLAR İsteğinize Uygun Kayıt Bulunamadı Ana Sayfaya Dön Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi Paz Pzt Sal Çrş Prş Cum Cmt Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık Oca Şub Mar Nis Mayıs Haz Tem Ağu Eyl Eki Kas Ara az önce 1 dakika önce $$1$$ minutes ago 1 saat önce $$1$$ hours ago Dün $$1$$ days ago $$1$$ weeks ago 5 haftadan fazla Takipçiler Takip Et THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content