"ALV 스탠다드에서 필터링 안되는 현상 발생" 이란 제목의QnA 가 올라온 바 있습니다.
질문이 완료된 상태인데, 원인이 데이터 형태가 달라서라는 얘기가 있는데, 이것이 무엇을 말하는지 모르겠습니다.
필터링시 pop up 화면(?)의 입력 데이터 형태와 화면상의 컬럼 데이터가 다른지는 어떻게 알 수 있나요?
제 문제는 alv 에 조회된 결과를 kna1-kunnr 을 기준으로 해서 필터링을 하려 하는데, 필터링의 결과로 아무것도 없다고 나오는 것입니다.
kunnr 에는 현재 6자리의 값들이 들어 있습니다. data dictionary 에서 kna1-kunnr을 찾아보면 10자리의 char로 되어 있지요.
필터링 시 multiple-selection button을 눌러서 필터링 하고자 하는 kunnr 값 6자리를 입력하고 나면 multiple selection에 1자리 값만 입력되고는 필터링의 결과로 아무것도 없다고 나옵니다.
게시판에서 유사 질문을 찾아보니 fieldcat 의 길이를 늘려주라는 답변이 있어서 fieldcat 길이를 11 정도로 해 보았습니다만, 해결되지 않았습니다. 혹 이 방법으로 해결이 된다고 하더라도 컬럼의 내용이 가변적일 때도 가능할까요?
컬럼의 길이는 char 50 이지만, char 1 ~ char 50 인 경우에 fieldcat을 조정함으로서 해당 컬럼에 대한 필터링이 가능한지 의문입니다.
유사 질문에 대한 또다른 답으로는 컬럼에 대소문자가 혼합된 문자열이 들어 있는 경우. lowercase = 'x' 를 함으로써 해당컬럼에 대한 필터링을 할 수 있다는 답변이 있습니다. 일단 이 방식은 안되었습니다만, 문자열이 영문이 아닌 경우(한글)일 때에도 이런 방식으로 해결이 가능할 까요?
타 사이트에서 아래와 같은(파란색 글씨) 답을 구하였습니다만, 아직 해결은 안 되었습니다.
거래선이 10자리이기 때문에 자리수 만큼 0을 채우거나 *를 이용하면 필터링이 됩니다.
alv filter의 조건을 입력 할 때 alpha conversion을 할 수 있는 방법이 있을 까요?
아래의 내용 중 "패턴이나 input 형태의 데이터로 필터링 걸어주시면 될 것 같습니다. " 이 부분은 무엇을 말하는 것일까요?
현재 그리드의 필드속성정보를 바탕으로 선택된 컬럼에 대해 필터링 선택화면이 만들어지기 때문에 필드길이를 변경하거나 하는 것음 무의미 할 것 같네요. ^^; 아마도 alpha conversion 때문일 것 같다는 생각이 드네요. 예를 들면 현재 6자리 고객번호를 입력하여 필터링을 하면 필터링이 안될거예요. 그러나 선행 '0'을 다 채우거나 '*고객번호*'형태로 필터링하시면 결과가 나올겁니다. 아마도 kunnr의 alpla conversion 이 현재 필터링 선택조건에 적용이 안되는 것 같습니다. 입력한 값이 그대로 적용이 되어 '0000123456' 과 '123456'은 다른것으로 인식하는 것 같네요. 패턴이나 input 형태의 데이터로 필터링 걸어주시면 될 것 같습니다. 1자리 값만 입력되는 것은 프로그램을 봐야 알겠지만 field-catalog 가 잘못 설정된 것 같다는 생각이 드네요. ^^