Q&A

  • [질문] 마스터파일과 디테일파일에 대해
안녕하세요..이제 델파이 걸음마 중 입니다.

공부를 하던 중 난관에 부딪쳐 이렇게 글을 올려요..


다름아니라 값이 변하면 굵은 글씨체나 색이 칠해 지도록 만들어 볼려고 하는데요..

dbgrid에 전체적으로 변하게 만드는 것은 즐코로 해보았는데.

dbgrid내에 특정 셀값이 변하게 되면 눈에 띄게 굵거나 빨간색으로나 변하게 만들어 볼려고 합니다.


여기서 문제가 주어졌는데요..


마스터파일과 디데일파일은 하나의 파일이 되는 것 아닌가요.? (공부하는 자의 생각^^;;)

마스터는 합계내용, 디테일은 상세내용 (수량,금액등등)

수량이 틀려지면 눈에 띄게 만들라고 하는데, 여기저기 검색해보다가 애메모해 글을 올립니다.

두개의 파일을 비교하는  거라면 두개의 테이블을 비교 할텐데..

디테일의 수량을 고쳐도 그 수량과 비교할 값을 어디서 가져와야 하는지요..?



델파이 고수님들의 조언 부탁드립니다.

dbgriddatacell 내에 기본 조건이라든지 아님 예제를 보여 주시면 감사하겠습니다.
2  COMMENTS
  • Profile
    Crazy™ 2008.07.25 00:07
    말씀하신대로 예를 들면
    보통 master 의 경우에는 데이타의 기본정보나 품목, 또는 거래처, 합계수량등을 기록합니다.
    detail 에는 master에 품목에 대한 색상, 사이즈, 타입, 수량등이 들어가겠죠
    즉 detail의 a색상 b타입의 c사이즈의 수량이 변경되었다면 master 테이블에게도 해당 unique한 번호를 찾아서 업데이트 처리를 해줘야겠죠.

    설계하는 사람에 따라 저 master테이블의 합계수량 필드를 넣을지 말지는 틀리지만
    1. 합계수량을 master를 보여주는 사람도 있고,
    2. 합계수량 필드가 없다면 detail의 값을 sum해야겠죠.
    2번의 경우엔 쿼리가 틀리지 않는다면 값이 틀리지 않겟죠.
    단 rdms의 따라 특히 ms-sql 경우엔 비교하는 필드가 null이라면 ..데이타가 제외되버려서 sum 처리가 되지 않는 부분도 있답니다.

    아래는 셀단위 색상입니다., 폰트는 brush.color 대신 font.color 넣으심 되겠네용/.
    case Column.Index of
    0 : begin
    if fM0101.T0206.Fieldbyname('C003').AsInteger <> 0 then
    begin
    DBGrid1.Canvas.Brush.Color := $00D6FFC8;
    end;
    end;
    1 : begin
    if GetHelpColor(fM0101.T0206.Fieldbyname('C004').AsString) then
    begin
    DBGrid1.Canvas.Brush.Color := $00D0FFFF;
    end;
    end;
    end;
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, []);

  • Profile
    임대순 2008.07.30 02:52
    답변감사드립니다.

    많은 도움 됐습니다.^^..즐코하세요..