::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-04 20:45:35, Hit : 8993, Vote : 1381
 DBGrid의 Column, Record 의 위치 저장/이동


> if Qeury1.FieldByName('count('거래처코드') ').AsInteger 0 then
> ShowMessage('코드를 확인하십시요');

>   이후에 커서의 위치가 다음 Column으로 이동합니다.
>   에러가 확인된 후에 제자리에 있는 방법을 모르겠습니다.
>   Edit Box에서는 커서의 위치를 SetFocus로 옮기는데
>   DBGrid에서는 어떻게 하는지요?

DBGrid의 컬럼 이동은 SelectedField, SelectedIndex, SelectedRows 등을
이용하면 됩니다
이중 SelectedIndex 를 사용하시면 됩니다
[사용예]
  var
    Save_Index: Integer;
  begin
    ...
    ...
    Save_Index := DBGrid1.SelectedIndex; // 현재 컬럼의 위치를 저장
    ...
    // 다른 컬럼의 위치가 바뀌는 작업
    ...
    DBGrid1.SelectedIndex := Save_Index; // 컬럼위치를 원래위치로 이동
    ...
    ...
  end;

그리고 아래는 컬럼이 아닌 레코드 이동에 관한 내용인데 전에 다른분 한테
답변했던 내용인데 한번 보시라구 동봉합니다


Data Base의 커서(레코드 위치)를 제어하는 DELPHI 함수는
여러가지가 있지만 상이한 형태의 함수 2가지를 말씀드리겠
습니다

첫번째:
  데이터 세트(TTable, TQuery)의 특정 위치를 표시하여 원할 때 그
  위치로 빠르게 돌아갈 수 있는 방법입니다.
  DELPHI는 책갈피(Bookmark) 메소드를 통해 이 기능을 제공합니다.
  세가지 책갈피 메소드는 다음과 같습니다.
  . GetBookmark : TBookmark 유형의 변수를 return 합니다
  . GoToBookmark : 커서를 데이터 세트(TTable, TQuery)에 있는 위치로
                   이동시킵니다
  . FreeBookmark : 사용한 책갈피를 free 시킵니다

  [사용예]
     BookMark := Query1.GetBookMark; // TQuery의 현재 위치를 얻습니다
     Query1.DisableControls; // DBGrid의 선택막대가 움직이는것을 막습니다
     try
       Query_psowhis.First; // TQuery의 레코드를 맨처음으로
       CheckYN := False;
       while not Query1.eof do // 처음부터 끝까지 특정필드 검사
       begin
         if (Query1WDYN.AsString = 'Y') or
            (Query1WDYN.AsString = 'N')
         then
         begin
           CheckYN := True;
           Break;
         end;
         Query1.Next;
       end;
     finally
       {BookMark변수에 저장된 위치로 이동(검사를 하면서 레코드가 변경되었으므로)
       Query1.GotoBookMark(BookMark);
       Query1.EnableControls; // DBGrid의 선택막대 표시
       Query1.FreeBookMark(BookMark); // 사용된 Bookmark 해제
     end;

     if CheckYN = True then
     begin
       Phelpmsg.Caption := '';
       MessageBox(handle, '추출/조회한 자료에 이미 확인된 자료가 있습니다.',
                          '작업안내', MB_ICONWARNING);
       System.Exit;
     end;

두번째:
  데이터 세트(TTable, TQuery)의 검색시 많이 사용하는 함수가 Goto(), GotoNearest(),
  Find(), FindNearest() 입니다
  근데 Locate() 함수가 추가되어 저는 이 Locate() 함수를 주로 사용합니다
  이 방법은 책갈피 처럼 원래 위치를 저장한 후 어떤 작업을 한 후 저장된
  책갈피로 이동하는것이 아니라 임의 Key 값에 따라 위치를 이동하는 방법입니다
  [사용법]
     if Query1.Locate('EMPNO;SUBDATE;',
                       VarArrayOf([Save_EMPNO, Save_SUBDATE]), [loPartialKey])
     then
       DBGrid1.SetFocus;

     위에서 TQuery인 Query1 에서 필드 EMPNO 와 SUBDATE 의 값이
     변수 Save_EMPNO 와 Save_SUBDATE 에 저장된 값을 갇는 레코드로
     직접 이동하는 방법입니다
     아래의 DBGrid1.SetFocus 는 DBGrid 로 포커스를 주어 선택막대가 표시되게
     합니다





971   [네트웍/인터넷] Internet에 연결중인지 여부를 알려면...  김영대 2003/03/04 5161 1329
970   [윈도우즈 API] 델파이 3.0에서 한글변환을 하는법....  김영대 2003/03/04 5472 1383
969   [시스템] 떠 있는 프로그램 죽이기...  김영대 2003/03/04 5604 1372
968   [시스템] 다른 Application 생성과 소멸에 대하여...  김영대 2003/03/04 4804 1298
967   [윈도우즈 API] 도구모음 Bar는 어떻게 만드는지...  김영대 2003/03/04 4677 1325
966   [일반/컴포넌트] StringGrid의 Cell에 입력 값 제한 하기  김영대 2003/03/04 5750 1272
965   [데이터베이스] DB의 Blob필드에 화일을 저장하기  김영대 2003/03/04 5081 1222
964   [시스템] Windows NT 에서 한글 NT인지 영문 NT인지 구분하는 방법  김영대 2003/03/04 5082 1321
963   [시스템] 오직 하나의 프로그램만 실행...  김영대 2003/03/04 4992 1349
962   [데이터베이스] TBlobField에 대한 사용법  김영대 2003/03/04 4861 1250
961   [멀티미디어] TMedia Player에서 BMP파일로 저장하기(화면 capture)  김영대 2003/03/04 4419 1244
960   [일반/컴포넌트] StringGrid에서 Enter Key를 Tab Key와 같은 효과  김영대 2003/03/04 5077 1176
959   [데이터베이스] Stored Procedure 작성을 어떻게 하나  김영대 2003/03/04 4880 1260
958   [윈도우즈 API] 날짜변형에 대해서...  김영대 2003/03/04 4756 1210
957   [윈도우즈 API] 델파이에서 시간을 기다리는 함수  김영대 2003/03/04 5765 1346
956   [데이터베이스] DBGrid에서 MultiSelect된것 알아내려면...  김영대 2003/03/04 5223 1237
955   [윈도우즈 API] 외부 프로그램의 윈도우 크기 조절  김영대 2003/03/04 4846 1237
954   [윈도우즈 API] 클립보드로 복사  김영대 2003/03/04 5615 1393
953   [일반/컴포넌트] VB Left$(), Right$(), LTrim$() ...  김영대 2003/03/04 4787 1189
952   [윈도우즈 API] 화면캡처하기 Delphi3.0에서...  김영대 2003/03/04 4684 1264
951   [데이터베이스] 엑셀자료를 읽어서 DB에 UPDATE  김영대 2003/03/04 5131 1248
950   [시스템] 프린터 상태가 Ready인지 아닌지 검사  김영대 2003/03/04 5710 1641
949   [데이터베이스] DBGrid 에서 선택된 필드의 타이틀을 굵게  김영대 2003/03/04 4695 1288
948   [윈도우즈 API] bitmap을 JPEG로 변환  김영대 2003/03/04 4889 1309
  [데이터베이스] DBGrid의 Column, Record 의 위치 저장/이동  김영대 2003/03/04 8993 1381
946   [데이터베이스] ORACLE 나 SQL Server 에서 레코드 번호  김영대 2003/03/04 4921 1250
945   [윈도우즈 API] 키보드의 임의키 발생  김영대 2003/03/04 5142 1323
944   [데이터베이스] BDE 버전정보  김영대 2003/03/04 3983 1125
943   [일반/컴포넌트] 문자열의 암호화(Password 처리)  김영대 2003/03/04 4371 1076
942   [일반/컴포넌트] Image의 90도 회전  김영대 2003/03/04 5055 1158
941   [윈도우즈 API] 파일정보(생성,변경,접근일자,속성,종류...)  김영대 2003/03/04 5306 1236
940   [윈도우즈 API] 윈도우즈 탐색기와의 연동  김영대 2003/03/04 5403 1322
939   [시스템] 절약형 모니터의 켜기/끄기  김영대 2003/03/04 4658 1282
938   [시스템] 드라이브 포맷(Format) API 함수  김영대 2003/03/04 4703 1278
937   [일반/컴포넌트] virtual keys 리스트  김영대 2003/03/04 4130 1180
936   [윈도우즈 API] short/long file name 변환  김영대 2003/03/04 4160 1221
935   [일반/컴포넌트] 메뉴 아이템의 동적 추가와 그림넣기  김영대 2003/03/04 4531 1183
934   [윈도우즈 API] 파일의 확장명으로 실행화일 연결  김영대 2003/03/04 4953 1316
933   [시스템] CD-ROM 문 열기/닫기  김영대 2003/03/04 4688 1331
932   [일반/컴포넌트] QReport에서 출력된 자료를 Text화일로 저장  김영대 2003/03/04 4392 1215

1 [2][3][4][5][6][7][8][9][10]..[25] [다음 10개]
 

Copyright 1999-2019 Zeroboard / skin by zero