Rozumiem mniej więcej co chcesz zrobić, ale nie uzyskasz tego przez zmianę logiki ekranu. Tak jak napisałeś - wykasowanie danych ze struktury AFFD sprawi tylko, że na liście będziesz mieć puste rekordy.
Dane o PRT są wstawiane na ekran, do bieżącego rekordu table control modułem PBO LST_ENTRY_SHOW, najpewniej procedurą read_affhd_with_index:
Kod: Zaznacz cały
WHEN const-aktyp_ver.
* Step-Loop verlassen ?
IF rc27x-entries = 0 OR
rc27x-index_act > rc27x-index_end.
EXIT FROM STEP-LOOP.
ENDIF.
* Satz aus Belegtabelle lesen
PERFORM read_affhd_with_index
USING rc27x-index_act
rclst
affhd.
Z kolei ta procedura wywołuje funkcję CF_BT_CO_FHM_READ_WITH_INDEX:
Kod: Zaznacz cały
* FHM AFFHD-Struktur füllen
CALL FUNCTION 'CF_BT_CO_FHM_READ_WITH_INDEX'
EXPORTING
tabix_imp = rclst_out-index_plfh
IMPORTING
affhd_exp = affhd_out
EXCEPTIONS
fhm_master_not_found = 01.
a w funkcji odczytanie tablicy wewnętrznej AUFTFH:
Kod: Zaznacz cały
* Belegtabelleneintrag zum Index lesen
READ TABLE AUFTFH INDEX TABIX_IMP.
Musiałbyś się wciąć w miejsce gdzie ta tablica jest napełniana i wywalić z niej niepotrzebne PRT. To jest do zrobienia i zapewne zadziała, ale wymaga nieco zabawy. Może to mieć też niespodziewane skutki uboczne.
Pytanie czy jest sens robić taką zmianę, która jak rozumiem jest raczej kosmetyczna - chodzi o wygodę użytkowników. Może zamiast tego warto pomyśleć dlaczego w zleceniach produkcyjnych są PRT ze statusem "usunięte" i rozwiązać problem u źródła?