두 개의 그리드가있는 양식이 있습니다. 각 그리드에는 자체 데이터 소스가 있습니다. 자세한 내용은 첨부 된 그림을 참조하십시오.AX2012 - 생성시 새 기본 테이블 필드 값 가져 오기
첫 번째 모눈에서 선택한 선 i에 따라 두 번째 모눈의 내용이 변경됩니다.
내 문제 : 첫 번째 표에서 새 행을 만들면 도끼가 새로운 "조합 ID"(주 필드, INT)를주지 않기 때문에 두 번째 표에 값을 입력 할 수 없습니다
어떻게 해결할 수 있습니까?
두 개의 그리드가있는 양식이 있습니다. 각 그리드에는 자체 데이터 소스가 있습니다. 자세한 내용은 첨부 된 그림을 참조하십시오.AX2012 - 생성시 새 기본 테이블 필드 값 가져 오기
첫 번째 모눈에서 선택한 선 i에 따라 두 번째 모눈의 내용이 변경됩니다.
내 문제 : 첫 번째 표에서 새 행을 만들면 도끼가 새로운 "조합 ID"(주 필드, INT)를주지 않기 때문에 두 번째 표에 값을 입력 할 수 없습니다
어떻게 해결할 수 있습니까?
상단 모눈이 머리글이고 아래쪽이 "선"인 부모 - 자식 양식처럼 보입니다.
CombinationID
이 기본 키인 경우 숫자 시퀀스 또는 고유 한 방식으로 생성해야합니다.
양식에서 데이터 소스 MDISSearchDimensions
의 JoinSource
은 MDISAccountSearchTerms
으로 설정해야합니다. 그것은 테이블 릴레이션을 사용할 것이지만, 그것들이 조인되었다고 지정해야합니다.
그런 다음 CombinationID
이 헤더에서 설정되면 줄만 입력하면됩니다. 테이블 MDISSearchDimensions
에 initFromMDISAccountSearchTerms(MDISAccountSearchTerms _MDISAccountSearchTerms)
이라는 메서드를 추가하고 CombinationID
을 설정하고이 메서드를 MDISSearchDimensions.initValue()
안에 호출합니다.
답변 해 주셔서 감사합니다! CombinationID에 대한 숫자 시퀀스를 만듭니다. 다음 단계를 사용합니다. https://community.dynamics.com/gp/b/dynamics101trainingcentergp/archive/2014/09/24/creating-custom-number-sequences-in-microsoft-dynamics-ax-2012 – JamesnxD
새 줄을 보면 시스템에 "CS01-00001이 저장되거나 삭제되지 않았기 때문에 새 번호를 할당 할 수 없습니다."라는 메시지가 표시됩니다. 내가 폼을 열거 나 닫을 때 Ctrl + S를 누르면 잘 동작합니다. 행을 자동 저장하는 방법이 있습니까? – JamesnxD
시도해보십시오 https://dynamicsuser.net/ax/f/developers/84652/solution-to-solve-number-sequence-problem-for-the-error-a-new-number-cannot-be-assigned-가 있습니다. -has-been-been-saved-or-deleted –
두 번째 데이터 소스의 InsertIfEmpty
속성을 비활성화해야합니다.
번째 소스의 initValue
방법은 마스터 CombinationId
소스 값에 CombinationId
필드 (단, 적절한 관계)를 초기화하고, 그러나 현재는 마스터 데이터 소스 필드 값을 가지고 있으므로 이전한다.
남겨두고 싶은 경우 다른 옵션이 있습니다. 두 번째 데이터 소스의 validateWrite
에서 수동으로 설정합니다
public boolean validateWrite()
{;
MDISAccountDimension.CombinationId = MDISAccountSearchTerms.CombinationId;
return super();
}
따라서 더 이상 인해
Mandatory
이 설정되는 실패하지 않습니다.
사용자 오류가 발생하지 않도록 두 번째 눈금에 CombinationId
을 숨겨야합니다.
첫 번째 그리드에서 조합 ID를 어떻게 채우고 있습니까? 숫자 순서인가요? 어떤 경우에도 첫 번째 그리드 테이블의 수퍼 삽입 방법 후 첫 번째 그리드 테이블과 같이 조합 ID를 사용하여 두 번째 그리드 테이블에 새 레코드를 삽입하십시오. –