주말인데도 불구하고 수고들 많으십니다.
다름이 아니오라 해당 테이블에서 자료를 가져와서 스트링그리드에 각 칼럼의 합계(Row의 합)와 세부 데이타 그리고, 입력받을 수 있는 최대값을 뿌려준후 수정할 수 있습니다.
그런데 데이타 수정시 칼럼의 합계보다 입력받을 수 있는 최대값 보다 큰경우 체크하여 다음 cell로 가지않게 하려는데 마땅히 구현할 수 있는 방법이 없어서 도움을 청합니다.
OnSellecSell 이벤트에서 구현하면 해당 컬럼에서 Row의 이동시 CanSelect를 false로 하면 row의 이동은 막을 수 있는데.......
DBGrid에서는 OnColExit 이벤트가 있어서 가능하겠지만 2차원 배열을 이용하여 Collumn과 Row가 코드테이블에서 가져오는 거라 DBGrid를 사용 할 수 없습니다.
제발 도움을....
----------------------------------
구분/종류 cd1 cd2 cd3 cd4 cd5
----------------------------------
최대값 10 10 10 10 10
----------------------------------
합계 5 5 6 3 2
----------------------------------
rcd1 (5) <===요부분에서 5보다 큰 값을 입력시 cd2로 가지
rcd2 5 않게 하렵니다.
rcd3 6 3
rcd4 2 2
rcd5 3
> 주말인데도 불구하고 수고들 많으십니다.
> 다름이 아니오라 해당 테이블에서 자료를 가져와서 스트링그리드에 각 칼럼의 합계(Row의 합)와 세부 데이타 그리고, 입력받을 수 있는 최대값을 뿌려준후 수정할 수 있습니다.
> 그런데 데이타 수정시 칼럼의 합계보다 입력받을 수 있는 최대값 보다 큰경우 체크하여 다음 cell로 가지않게 하려는데 마땅히 구현할 수 있는 방법이 없어서 도움을 청합니다.
> OnSellecSell 이벤트에서 구현하면 해당 컬럼에서 Row의 이동시 CanSelect를 false로 하면 row의 이동은 막을 수 있는데.......
> DBGrid에서는 OnColExit 이벤트가 있어서 가능하겠지만 2차원 배열을 이용하여 Collumn과 Row가 코드테이블에서 가져오는 거라 DBGrid를 사용 할 수 없습니다.
> 제발 도움을....
> ----------------------------------
> 구분/종류 cd1 cd2 cd3 cd4 cd5
> ----------------------------------
> 최대값 10 10 10 10 10
> ----------------------------------
> 합계 5 5 6 3 2
> ----------------------------------
> rcd1 (5) <===요부분에서 5보다 큰 값을 입력시 cd2로 가지
> rcd2 5 않게 하렵니다.
> rcd3 6 3
> rcd4 2 2
> rcd5 3
>
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
SelectCell 셀 인자로 ACol, ARow가 인자로 넘오온다면 ColExit과 같은 기능을 수행할것같은데요. 현재 선택한 컬럼과 로를 안다면 해당 컬럼과 로에서 엔터를 누른경우 조건비교해서 다음 컬럼으로 이동하지 못하게 하면되겠는데요.