Q&A

  • 텍스트에서 년월만 치면 날짜가 한달이 나오게 하는방법
안냐세요? 고수님들... 또다시 접니다.

다름이 아니라 텍스트에서 년월만 치면 날짜가 한달이 나오게 하는방법을 몰라

또 다시 이렇게 글을 띄웁니다. 텍스트에서 200011이라고 치면 나머지 두 개의

텍스트에 2000-11-01하구 2000-11-30일이 나와야 합니다.

참고로 저의 소스는 이겁니다.

=====================================================================

procedure TfrmSE1E0500.YYYYMMKeyPress(Sender: TObject; var Key: Char);

begin

inherited;

if key = #13 then begin

with qrydate do

begin

close;

ParamByName('yyymm').value := trim(yyyymm.text);

procdate1.text := copy(FieldByName('last').value, 1, 8) + '-' +'01';

procdate2.text := FieldByName('last').value;

end;

end;

end;

=======================================================================

요건 qrydate에 쓴 문장입니다.

=======================================================================

select last_day(to_date(:yyymm, 'YYYY-MM')) last

from dual

========================================================================



꼬옥 알려주세요... 제가 보기엔 데이트형을 일반 텍스트에 적용시켜서

에러가 난거 같은데... 아닌가요? 잘모르겠어요...



1  COMMENTS
  • Profile
    권경미 2000.12.19 01:05
    초짜 wrote:

    > 안냐세요? 고수님들... 또다시 접니다.

    > 다름이 아니라 텍스트에서 년월만 치면 날짜가 한달이 나오게 하는방법을 몰라

    > 또 다시 이렇게 글을 띄웁니다. 텍스트에서 200011이라고 치면 나머지 두 개의

    > 텍스트에 2000-11-01하구 2000-11-30일이 나와야 합니다.

    > 참고로 저의 소스는 이겁니다.

    > =====================================================================

    > procedure TfrmSE1E0500.YYYYMMKeyPress(Sender: TObject; var Key: Char);

    > begin

    > inherited;

    > if key = #13 then begin

    > with qrydate do

    > begin

    > close;

    > ParamByName('yyymm').value := trim(yyyymm.text);

    > procdate1.text := copy(FieldByName('last').value, 1, 8) + '-' +'01';

    > procdate2.text := FieldByName('last').value;

    > end;

    > end;

    > end;

    > =======================================================================

    > 요건 qrydate에 쓴 문장입니다.

    > =======================================================================

    > select last_day(to_date(:yyymm, 'YYYY-MM')) last

    > from dual

    > ========================================================================

    >

    > 꼬옥 알려주세요... 제가 보기엔 데이트형을 일반 텍스트에 적용시켜서

    > 에러가 난거 같은데... 아닌가요? 잘모르겠어요...





    꼭 db로 연결해서 가져올 필요가 있나요?



    없다면 아래 방법대루 해보시져?

    procedure TfrmSE1E0500.YYYYMMKeyPress(Sender: TObject; var Key: Char);

    var

    year,month,day : word;

    begin

    inherited;

    if key = #13 then

    begin

    procdate1.text:= copy(yyyymm.text,1,4)+'-'+copy(yyyymm.text,5,2)+'-'+'01';

    DecodeDate(strtodate(procdate1.text), Year, Month, Day);



    if Month = 12 then

    begin

    Inc(Year);

    Month := 1;

    end

    else Inc(Month);



    procdate2.text := datetostr(EncodeDate(Year, Month, 1) - 1);



    end;





    구지 db에 연결할 필요는 없을꺼 같은데...

    end;