안녕하십니까, 델파이 관계자 여러분들.......
요즘 계속 날씨가 꿀꿀하죠, 그래도 밝은 마음가지시길.......
제 질문은요.....
도서관리 프로그램에서요, "대여일", "반납예정일", "반납확인"이라는 필드를 두고요,
반납예정일이 지나면 반납확인 필드에 미납이라고 입력을 하려구요.
근데 이 입력을 버튼을 클릭해서요,
반납예정일 전이라면 "반납"이라고 입력이 되게하고, 반납예정일이 지났으면 미납이라
고 입력이 되게 하고싶거든요.
버튼클릭으로 특정레코드에 데이타를 넣을려면 어떻게 해야하는지???????
갈켜주세요~~~~~~~~~~~!
그럼, 여러분들 항상 좋은 하루되세요!!!!
> 안녕하십니까, 델파이 관계자 여러분들.......
> 요즘 계속 날씨가 꿀꿀하죠, 그래도 밝은 마음가지시길.......
>
> 제 질문은요.....
> 도서관리 프로그램에서요, "대여일", "반납예정일", "반납확인"이라는 필드를 두고요,
> 반납예정일이 지나면 반납확인 필드에 미납이라고 입력을 하려구요.
> 근데 이 입력을 버튼을 클릭해서요,
> 반납예정일 전이라면 "반납"이라고 입력이 되게하고, 반납예정일이 지났으면 미납이라
> 고 입력이 되게 하고싶거든요.
> 버튼클릭으로 특정레코드에 데이타를 넣을려면 어떻게 해야하는지???????
> 갈켜주세요~~~~~~~~~~~!
> 그럼, 여러분들 항상 좋은 하루되세요!!!!
아마도 파라독스를 쓰시는 것 같군요. 로컬용 프로그램 같구요.
원하는 기능을 추가하시려면 먼저 오늘날짜와 반납예정일을 비교해야 겠지요.
오늘날짜가 반납예정일보다 작거나 같으면 '반납' 크면 '미납'이 되겠군요.
반납예정일 계산시 시간까지 계산하지 않고 날짜만 가지고 계산한다면
이렇게 해도 괜찮을 것 같군요.
프로그램 시작시 대여테이블에서 오늘날짜와 반납예정일을 비교하여 반납,미납을 결정해 줍니다. 이 때는 오늘날짜가 반납예정일보다 큰 경우만 적용하면 되겠구요.
버튼클릭시 처리도 날짜만 비교하면 되니까 간단하겠군요.
아래 함수는 온라인상에서 제가 만들어 본 것입니다. 즉석에서 만든 것이므로
오류가 있을지도 모르겠습니다.(미테스트) 그냥 참고만 하세요.
//특정일자가 지난 대여항목을 '미납'으로 처리하는 루틴
procedure TForm1.Proccess_Borrow(D:TDateTime;mark{,b_code}:String);
begin
with Query1 do begin
Close;
sql.Clear;
sql.Add('update '대여.db ');
sql.Add('set');
sql.Add('반납확인=:n1 ');
sql.Add('where 반납예정일>:n2');
//sql.Add('and 대여코드=:n3 '); 특정 대여건에 대해 처리할 경우 추가
//ParamByname('n3').AsString:= b_code;
ParamByname('n1').AsString:= mark;
ParamByname('n2').AsString:= DateToStr(D);
execSQL;
end;
end;
예를 들어 오늘이 지난 항목을 미납으로 처리하려면
procedure TForm1.Button1Click(Sender:TObject);
begin
Proccess_Borrow(Now,'미납');
end;
참고로 날짜는 TDate형이든 String형이든 간에 크다 작다로 비교하시면 됩니다.
그리고 가능하면 String형으로 만들어 주시는 것이 나중에 처리하기가 편할겁니다.