2012-07-27 16 views
5

The pictureİlk önce tüm gerekli parametreleri doldurmadan OLMADAN bir parametre için birden fazla aralık nasıl seçilir?

"Satış sipariş no." Için birden fazla aralık seçimlerine sahip olmak isterdim.

Sorun: i yeşil ile işaretli düğmeye bastığınızda, ben hata "Gerekli tüm giriş alanları doldurun" olsun.

Ana işlem blokumu START-OF-SELECTION olayına koydum.

Bunun olmaması için ne yapmalı? Bana öyle geliyor ki, diğer zorunlu alanları doldurmadan tüm zorlukları çözmeden çoklu seçimler ekleyebilmem gerekiyor.

cevap

6

Parametre/seçim seçenekleri ile OBBIGATORY olarak ayarlandığında, bu çalışmaz. Bir süre önce aynı problem vardı ve varsayılan olarak kullanışlı değerlerle ZORUNLU giriş parametrelerini doldurmak için hiçbir şansı vardı, bu yüzden şu ki:

  • tüm seçkin-seçenekler arasından ZORUNLU seçeneğini kaldırın ve
  • parametreleri
  • zorunlu hallerde girdi kendinizi hiçbir F4, yardım, F1 yardım veya herhangi seçme seçeneğin yanındaki düğme için onay Kulp basıldığında:

Kodu:

AT SELECTION-SCREEN ON s_reswk. 

IF sy-ucomm(1) <> '%' AND  " sel screen action request 
    sy-ucomm(1) <> '_' AND  " scope option 
    s_reswk IS INITIAL.   " Obligatory input missing 
    MESSAGE text-e01 TYPE 'E'. " Error message 
ENDIF. 
+3

... ve siz işteyken bir mesaj sınıfı kullanın. Bu, daha sonra bir dokümantasyon metni eklemenizi sağlar. – vwegert

-2

1:İşte ben tamamen ZORUNLU ilave edilerek belirlenen davranış reproduces bulundu ne "ZORUNLU" eklenmesini OUT atın. : PBO için:

LOOP AT SCREEN. 
    IF screen-name cs 'name-of-your-select-options-or-parameter'. 
    screen-required = 2. 
    MODIFY SCREEN. 
    ENDIF. 
: PAI için:

if sscrfields-ucomm = 'ONLI'. 
    if 'name of your select-option-or-parameter' is initial. 
     clear sscrfields. 
     message 'Fill in all required fields.'(009) type 'E'. 
    endif. 
    endif. 

Bildirim deyimi CS'nin mantıksal operatörü içerir, ilk. Bu, kontrolünüzün adı diğer garip şeyleri de içerecektir. Örneğin,% _P_MATNR_% SCREEN %% (burada parametreniz p_matnr idi).

Ayrıca beyanı: TABLES sscrfields. gereklidir.

+2

Bu gerçekten kötü bir fikir. Bu sayede, programı doğrudan çalıştırırken gerekli alanın girişini zorlarsınız, ancak kullanıcı aynı parametreyi girmeden arka plan işi olarak planlayabilir. Ayrıca, belgelere göre, ekran gerekli 0 ya da 1 alır. 2'ye ayarlanması şimdi işe yarayabilir, ancak etkisini değiştirebilir veya daha fazla uyarı yapmadan tamamen çalışmaya devam edebilirsiniz. – vwegert

İlgili konular