8자리 코드번호를 넣어주려고 합니다..
앞에 네자리는 영문이구요..화면에서 값을 받아 넣어줍니다..
그리고 뒤에 네자리는 0001,0002,0003,...1000,1001..
이런식으로 주려고 합니다..
그리드에 아무것도 없을때는 뒤에 4자리를 '0001'로 셋팅해주고..
그리드에 한건 이상이 있을 때는 그리드의 코드값의 뒤에 네자리와 비교하여
그 최대값에 1을 증가시켜 최대값을 넣어주려고 합니다..
그런데..
더이상 진도가 나가지 않네요..
여기 저기 뒤져는 봤지만 워낙 초보라서 봐도 잘 모르겠더라구요..
실은 제가 질문을 제대로 했는지도 의심스럽슴다..ㅠ.ㅠ
어떻해 하면 좋을까요..
부탁드립니다..
ls_maxcode := copy((Query1.FieldByName('mtr_code').AsString),5,4);
if ls_maxcode = '' then
begin
ls_maxcode := '0001';
Result := RxDBLC_Fst_Class.Value + RxDBLC_Snd_Class.Value + ls_MaxCode;
end
* 구창민님에 의해서 게시물 이동되었습니다 (2002-11-05 19:35)
쿼리결과에 대한 정보가 부족하지만
뒤네자리가 순서대로 정렬된 상태면
간단하게는 Query1.Last 보내고 +1 해서 구하면 되겠네요.
섞여있다면
그리드에 나온값이 이미 한번 쿼리를 거친거죠?
그럼 앞에 영문4자리가 똑같은 가정하에
같은 쿼리로 MAX(mtr_code)로 해서 뒤네자리만 +1 하면 될꺼 같은데
이도저도 아니면
가장 무식하게는 맥스를 구할 때 까지 루프를 돌리면 되겠네요.
Temp : String;
ls_maxcode := '0001';
Query1.First;
while not Query1.Eof do begin
Temp := copy((Query1.FieldByName('mtr_code').AsString),5,4);
if Temp > ls_maxcode then
ls_maxcode := Temp;
Query1.Next;
end;
그럼 즐프하세요.