Axapta : 검색을 통해 사용자가 양식 쿼리를 변경하지 않도록합니다.
문제
Axapta 3.0에서 사용자가 Prodroute DataSource에서 Oprid를 선택할 수있는 사용자 정의 조회 양식을 만들었습니다. 조회를 표시하기 전에 프로디드가 설정되어 사용자가 변경하지 않을 수 있습니다. 사용자는 유효한 프로디 드와 함께 생산 주문의 prodroute에서 Oprid 만 선택할 수 있습니다. 문서에 따르면, 범위를 잠그면 사용자가 쿼리를 변경하지 못하게 할 수 있습니다. 나는 다음과 같이했다 :
qbrProdId.value(queryValue(_prodId));
qbrProdId.status(RangeStatus::Locked);
여기서 qbrprodid는 유형의 변수입니다 QueryBuildRange _prodid를 지정합니다 프로디드.
조회가 표시되고 사용자가 필터를 변경하려고하면 프로디드가 잠겨 있습니다. 좋은. 그러나 사용자가 조회의 프로디드 필드에서 Ctrl+F를 누르거나 사용자가 도구 모음에서 검색을 클릭하면 다른 프로디드를 입력 할 수 있습니다.
이것을 어떻게 방지 할 수 있습니까?
나는 조회의 그리드에서 prodid 필드를 데이터 소스 필드 대신 유형 "디스플레이"로 바꾸는 것을 생각했습니다. 그러나 이것에 대한 더 나은 솔루션이 없습니까?
(그건 그렇고, 쿼리는 자동으로 생성되지 않지만 양식 데이터 소스의 "init"메소드에서 수동으로 생성됨).
해결책
자, task () 메소드를 무시할 수있는 것보다. 조회 양식에서 필터 기능을 비활성화해야합니다.
public int task(int _taskId)
{
int ret;
switch(_taskId)
{
case 2855:
case 2844:
case 2837:
case 799:
return 0;
}
ret = super(_taskId);
return ret;
}
다른 팁
범위 대신 Dynalink를 사용하십시오.
HTH
제휴하지 않습니다 StackOverflow