2014-12-15 7 views
0

사용자가 특수 문자 을 입력하지 못하도록 제한하고 싶습니다. (파이프)은 모든 이름 필드 또는 데이터 입력 필드에 있습니다.RPG 특수 문자 '|'의 사용자 입력을 제한합니다. 임의의 이름 필드 또는 데이터 입력 필드에

체크 화면 자체에서 발생해야하고 (여기

How to prevent user from entering special characters (like symbols not visible in keyboard) in a text field (Character type)?을 설명) RPG/RPGLE 프로그램

통해 I은 VALUES() 표시 파일 함수를 사용하여 시도하지 어느 함수에 언급 된 문자 만 허용합니다. 예를 들면.

VALUES('A' 'B'...)

및 유지하지 '|' 그것을 거부하는 것이지만, 그렇게해서는 안되는 것을 무효화 할 수 있으므로 매우 제한적입니다.

+0

입력 필드의 문자가 1 문자 만 아닌 경우 VALUES()는 도움이되지 않습니다. 디스플레이 파일에는 요구하는 기능이 없으며 어쨌든 좋은 방법이 아닙니다. 유효성 검사 프로그램에서 데이터의 유효성을 검사하는 것이 훨씬 좋습니다. – user2338816

답변

3

가장 쉬운 방법은 워크 스테이션에서 편집을 수행하는 대신 런타임에 편집 검사를하는 것입니다.

3
  1. 왜이 편집 검사를해야합니까? 당신이 테이블을 내보내고 내보내기 루틴이 파이프를 벗어나지 않기 때문입니까? 그렇다면 내보내기 루틴을 수정하십시오!
  2. 그런데 실제로는 의 특수 문자를 데이터에 넣지 않으려 고하는 이유가 많이 있습니다. 년 동안 배운 내용은 응용 프로그램이 데이터를 파일로 가져 오는 유일한 방법은 아닙니다. . DBU 및 WRKDBF와 같은 유틸리티가 있습니다. 은 FTP 및 클라이언트 액세스 파일 전송과 같은 전송 응용 프로그램입니다. Excel, 웹 응용 프로그램 및 데이터베이스에 연결할 수있는 ODBC와 같은 외부 프로토콜이 있습니다. 마지막으로, 저장 프로 시저와 기타 시스템의 프로그램이 있습니다. 다른 파일에서 데이터를 가져올 수 있습니다. 이러한 특수 문자가 '정리'되지 않은 파일입니다.

@david가 올바른 대답을 가지고 있다고 생각합니다. 런타임에 데이터를 확인하십시오. 내가 이것을 구현하는 방법은 방아쇠를 당기는 것입니다. 그렇게하면 특수 문자로 필드를 삽입하거나 업데이트하려고해도 데이터베이스 자체가이 시도를 거부합니다.

+0

안녕하세요. 1. 일부 데이터의 경우 Upstream에서 CRAP 데이터를 가져 오기 때문에 편집 확인이 수행되어야합니다. '|' 적절한 형태로 보내지 만, 미들웨어가 끝날 때 XML 맵핑을하는 동안 어떤 식 으로든 쓸모 없게됩니다. @David가 지적했듯이, 런타임시 수행 할 수 있지만 워크 스테이션에서 동일한 작업을 수행하면 이러한 값을 보낼 수있는 많은 영역이 있으므로 혼란을 덜 일으킬 수 있습니다. 그런데, 나는 너희들이 제안한대로 진행하고 결과를 되 찾을 것입니다. – Saad

+1

해결책은 아마도 나쁜 문자가 나오는 위치를 기반으로 한 솔루션의 조합 일 것입니다. 내 큰 문제는 사람들이 MS Word에서 텍스트를 붙여 넣는 자바 응용 프로그램에서 오는 유니 코드 문자입니다.텍스트의 일부분을 삭제하기 전에 문제의 원인을 이해해야합니다. – jmarkmurphy