Q&A

  • 포인터의 이동에 따라 dbgrid의 내용을 보여주려면..??(고수님들 부탁드려요..
디비그리드에서 레코드포인터를 키보드나 마우스로 이동시킬때 버튼을 누르지 않더라도 특정필드의 값을 파라미터로 보내서 새로운 값을 구하고 또다른 디비그리드에 내용을 보여주려합니다..방법좀 알려주세요!!!



2  COMMENTS
  • Profile
    soriso 2000.11.11 00:17
    델사랑 wrote:

    > 디비그리드에서 레코드포인터를 키보드나 마우스로 이동시킬때 버튼을 누르지 않더라도 특정필드의 값을 파라미터로 보내서 새로운 값을 구하고 또다른 디비그리드에 내용을 보여주려합니다..방법좀 알려주세요!!!

    >

    두가지 방법이 있습니다.

    하나는 쿼리콤포넌트의 AfterScroll 이벤트를 사용하는 것.

    Query1과 DBGrid1과 연결하고

    Query2하고 DBGrid2하고 연결하면 됩니다.

    즉, 두번째 쿼리콤포넌트에서

    Query2.Close;

    Query2.ParamByName('Parameter').AsString :=

    DBgrid1.DataSource.DataSet.FieldByName('Field').AsString ;

    Query2.Open;

    또하나는 쿼리콤포넌트를 마스터디테일 관계로 설정하면 됩니다.

    Query2의 DataSource를 마스터에 해당하는 Query1의 Datasource로 설정하면 됩니다.

    그리고 나서

    Query1.Close;

    Query1.open;

    //이때는 Query2의 파라미터에 해당하는 필드가 Query1에 있어야 Query2가 Open됩니다.

    그리고 Query2에 파라미터가 있어도 Close후 open만 하면 됩니다.

    Query2.Close;

    Query2.Open;



    이렇게 하면 DBgrid1에서 포인터가 이동하면 DBgrid2에서 해당하는 레코드가 Open됩니다.



  • Profile
    Jon 2000.11.11 00:08
    델사랑 wrote:

    > 디비그리드에서 레코드포인터를 키보드나 마우스로 이동시킬때 버튼을 누르지 않더라도 특정필드의 값을 파라미터로 보내서 새로운 값을 구하고 또다른 디비그리드에 내용을 보여주려합니다..방법좀 알려주세요!!!

    >



    DBGrid의 OnCellClick event를 사용하세요.

    어떤 cell를 click했다면 Table이든지 Query든지 click한 record가 현재위치가 됩니다.

    그럼 event안에서



    Table1.FieldByName('Field Name').AsString or AsInteger



    등으로 현재 record의 field 값을 읽어와서 그것을 활용하면 되겠죠.