Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[5485] [답변] ICSOFT/ DBGrid 에서 선택된것을..
apoyando [ ] 997 읽음    1999-01-08 20:18
  지금 말씀하신 것이 아마도 Record Copy를 원하시는 것같네요.
  그런 기능을 기본적으로 제공해주는 것은 없습니다.
  그런것도 설계를 하고 코딩을 해야 하는 것이죠.

  코딩을 하기로 마음 먹으셨다면 다음과 같은 방법이 있겠습니다.
  물론 방법은 너무나도 다양합니다. 저는 그중 이해가 쉬운 제일 단순
  한 방법을 말씀드리려고 합니다.
                               
  다음과 같은 구조를 가진 GOODS.DBF라는 이름의 Table이 있다고 가정합시다.

            이름   속성  크기
  코드   -  ID       N      4 (0)
  상품명 -  NAME     C     20
  가격   -  PRICE    N     10 (0)
  입고일 -  In_Date  D  
  제작사 -  Maker    C     20

  요정도만 하죠.

  이제 위의 구조와 같은 Table에 데이터가 여러 레코드 들어가 있다고
  가정을 하고요. 그 테이블의 특정 레코드를 선택하면 선택된 레코드의
  내용들이 짠~~하고 옆에 있는 DBGrid에 나타나게 하고 싶으신거죠.

  그렇다면 먼저 선택된 내용이 저장될 Table이 있어야 합니다.
  대개의 경우 원본 테이블과 똑같은 구조로 되면 무난하겠는데요.
  그렇다면 일일이 새로 Structure를 구성할 것 없이 그냥 위의 GOODS.DBF를
  TEMP.DBF로 Copy 해서 쓰시면 되겠군요. (DBF파일의 Copy는 반드시 DBD로
  하셔야 합니다.)

  이제 옆의 임시 DBGrid가 TEMP.DBF로 연결 되었다고 하고요.

  그런다음 하나의 버튼을 마련하시고 그 버튼에다 다음의 코드를 사용해보시기 바랍니다.

procedure TForm1.BitBtn1Click(Sender: TObject);
begin

Table2.Append;
Table2.FieldByname('CODE').AsInteger:=Table1.FIeldByname('CODE').AsInteger;
Table2.FieldByname('NAME').AsString:=Table1.FIeldByname('NAME').AsString;
Table2.FieldByname('PRICE').AsInteger:=Table1.FIeldByname('CODE').AsInteger;
Table2.FieldByname('IN_DATE').AsDateTime:=Table1.FIeldByname('IN_DATE').AsDateTime;
Table2.Post;

end;

  아참, 이것은요 각각의 테이블이 다른 폼에 있어도 상관없습니다. 그럴경우 다만 테이블의
  지정만이 달라질 뿐입니다.

  무척 간단하죠?
  이렇게 간단합니다만 이런 쉬운 것으로부터 시작해서 그럴사한 프로그램이 만들어지는 겁니다.
  물론 말씀드렸다시피 이것은 가장 이해가 쉬운 방법일뿐 가장 좋은 방법은 아닙니다.

  응용을 해서 만드시기 바랍니다.

  그럼. 좋은 코딩하십시오.



 


+ -

관련 글 리스트
5485 [답변] ICSOFT/ DBGrid 에서 선택된것을.. apoyando 997 1999/01/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.