Q&A

  • 셀병합에 대해 물어볼것이 있어요


그림에서 제목은 고정값이고 1번2번채널의 줄은 DB에서 가져오는건데요

TAdvStringGrid를 사용하고 있는데 제목은 'MergeCells(0,0,0,0)' 이걸 이용해서 만들었습니다.
그런데 내용 줄의 셀의 병합은 어떻게 해야 하는지요?
DB에서 가져오는거라 데이터가 1채널에서 2줄이 나올수 있고 1줄이 나올수도 있어서 하는방법을
모르겠습니다.

그리고 병합을 했을시 화면에서 더블클릭하면 그 데이터를 다른 화면에서 가져다가
쓸수 있도록 해야하는데요 병합하기전에는 form2.Edit1.Text := sg1.Cells[4,sg1.Row];
이런식으로 데이터를 가져다가 사용했는데 병합하면 어떻게 해야 가져다가 사용할수 있죠?
3  COMMENTS
  • Profile
    소울해커 2009.04.14 18:54
    1. 내용 줄이라는게 그리드헤더 부분을 제외한 부분을 말씀하시는건가요?

    똑같이 MergeCells를 사용하시면 됩니다.

    MergeCells(병합시작할 컬럼, 병합시작할 로우, 병합할 컬럼 수, 병합할 로우 수);

    병할할 수는 0~1이면 병합하지 않습니다.

    2. 병합된 셀의 값은 Cells[병합시작할 컬럼, 병합시작할 로우] 로 읽어다가 쓰시면 됩니다.

    병합된셀은 최초 병합시작한 셀의 값을 기준으로 보여주고 값을 가져옵니다.

    그러나 병합시작되지 않은 병합된 셀에도 값은 읽고 쓸 수 있으며

    병합해제되면 값이 보여진답니다.
  • Profile
    날개 2009.04.14 19:36
    답변감사합니다.

    1번 답변에서 궁금한것이.. 데이터가 고정적으로 들어오지 않는데 병합시작할 컬럼 등을 어떻게 찍을수 있는지를 알고 싶습니다.
    고정적이라면 "MergeCells(0,2,1,2) << 채널 1" 이런식으로 쓸수있는데요. 만약 상태1의 운용B 줄이 사라진다면 어떻게 해야되는지요?
    DB에서 가져오는거라 데이터가 유동적입니다. 그리고 헤더부분 제외한 부분이 내용줄 맞습니다.

    2번 답변의 궁금점.. 그럼 이렇게 sg1.Cells[sg1.Col,sg1.Row]; 사용해도 괜찮은건가요??
  • Profile
    소울해커 2009.04.14 20:12

    1. 처리루틴을 만드셔야죠.

    DB에서 데이터 받아온걸 그대로 일단 그리드에 집어넣고 그 다음 셀병합을 하세요.

    var
    bRemainder: Boolean;
    i, iBeginRow: Integer;
    sKeyField: String;
    begin
    with sg1 do
    begin
    bRemainder := False;
    iBeginRow := FixedRows;
    sKeyField := Cells[1, FixedRows];

    for i := FixedRows to RowCount - 2 do
    begin
    bRemainder := i = RowCount - 2;

    if (sKeyField <> Cells[1, i + 1]) or (i = RowCount - 2) then
    begin
    MergeCells(0, iBeginRow, 1, i - iBeginRow + 1 + Ord(bRemainder));
    MergeCells(1, iBeginRow, 1, i - iBeginRow + 1 + Ord(bRemainder));
    MergeCells(2, iBeginRow, 1, i - iBeginRow + 1 + Ord(bRemainder));
    MergeCells(3, iBeginRow, 1, i - iBeginRow + 1 + Ord(bRemainder));
    MergeCells(13, iBeginRow, 1, i - iBeginRow + 1 + Ord(bRemainder));
    MergeCells(14, iBeginRow, 1, i - iBeginRow + 1 + Ord(bRemainder));

    iBeginRow := i + 1;
    sKeyField := Cells[1, i + 1];
    end;
    end;
    end;
    end;

    대충 이런식으로 말이죠.

    2. 네
    • 초보자
    • 2009.04.16 04:00
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 손학준
    • 2009.04.16 03:27
    • 0 COMMENTS
    • /
    • 0 LIKES
    • cell
    • 2009.04.14 08:04
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2009.04.14 19:11
      [팁] PaperSize 변경하기 팁테크에 Printer로 검색해보시면 나옵니다. pDMode^.dmOrientation := D...
    • cell
      2009.04.14 20:57
      {$EXTERNALSYM DMORIENT_PORTRAIT} DMORIENT_PORTRAIT = 1; {$EXTERNALSYM DMORIENT_LANDSCAPE} ...
    • 소울해커
      2009.04.14 23:36
      아.. 질문을 잘못 이해해가지고 죄송합니다. (갈수록 이해력이 떨어져버려서..;;) 딱히 다른 방법은 ...
    • 이상탁
      2009.04.22 07:01
      원하시는 셋팅된 설정 파일을 만들어 두고선 설정을 변경할 수는 있습니다. 문제는 프린터 드라이버의...
    • 유상희
    • 2009.04.14 07:38
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2009.04.14 14:16
      똑 같은 내용의 질문이 올라 오는데요. 아마도 회원분들 답을 안해주실 듯 합니다. 숙제는 직접하시...
    • 노정윤
      2009.04.14 18:53
      심심해서 한번 해봤습니다. unit2 를 수정해서 다양한 기능을 추가해보세요 Form1 하나 뿐인 ...
    • 석주현
      2009.04.14 21:20
      정윤님이 오히려 숙제를 더 내주신 듯 하네요. ㅋ
    • 김병윤
      2009.04.14 23:19
      ㅎㅎ 숙제도와주는 사람은 악마...^^;; 무섭네요 ㅠ.ㅠ 많이 도와줬었는데... 도와주면 아무것도 하지 ...
    • 날개
    • 2009.04.14 04:24
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2009.04.14 18:54
      1. 내용 줄이라는게 그리드헤더 부분을 제외한 부분을 말씀하시는건가요? 똑같이 MergeCells를 사용하...
    • 날개
      2009.04.14 19:36
      답변감사합니다. 1번 답변에서 궁금한것이.. 데이터가 고정적으로 들어오지 않는데 병합시작할 컬럼 ...
    • 소울해커
      2009.04.14 20:12
      1. 처리루틴을 만드셔야죠. DB에서 데이터 받아온걸 그대로 일단 그리드에 집어넣고 그 다음 셀병합...
    • 구창민
      2009.04.13 21:37
      안녕하세요.. TPageControl 의 ActivePage 를 이용하시면 될거 같네요.. 즐거운 프로그래밍 하세요~
    • 석주현
      2009.04.13 17:57
      readln 을 쓰시면 될 것 같네요. Help를 찾아 보세요. ^^
    • 구창민
      2009.04.13 18:20
      InputQuery, InputBox, InputComboBox
    • 석주현
      2009.04.13 18:45
      InputQuery, InputBox, InputComboBox 아 이런게 있었군요. 전 커맨드 모드 생각했는데 좋은거 배웠네요...
    • 우재언
    • 2009.04.11 02:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2009.04.13 21:53
      안녕하세요.. 궁극적으로 필요한 기능이 탭오더를 설정할수 있는 UI 를 만드시는 것인가요? 예제를 ...
    • 야단났네~*
      2009.04.13 20:30
      글 올리고 씨름하다가 해결했습니다. ^^;;
    • 소울해커
      2009.04.10 21:54
      해당프로젝트의 메인폼의 dfm파일이 깨졌을 수도... 메인폼을 다른이름으로 대상저장해서 저장해보시...
    • 최용일
      2009.04.11 00:10
      Option에서 Desktop 환경을 저장하도록 해보세요. Tools/Environment Options메뉴의 Preferences탭에서 ...
    • 마바리
      2009.04.10 20:04
      MSQuery 의 Update sqls 작성은 하셨나요?
    • 초보임당
      2009.04.11 02:16
      MSConnection , MSQuery , DataSetProvider , ClientDataSet , DataSource ,DBGrid 를 올려 놓고요.. ...
    • 최용일
      2009.04.09 21:45
      뭐 특별히 복잡할것은 없는데요... 그냥 폼의 ShowHint속성을 True로 하고 TMaskEdit에 힌트메시지를 넣...
    • 차돌보이
      2009.04.09 22:52
      지금 시작하는 초보단계라서...감사합니다...잘 실행됩니다..
    • 차돌보이
      2009.04.09 22:52
      참고로 마우스가 닿아있는 한 계속 보이게 할수는 없나요?조금 있으니 사라져 버리네요~!
    • TOMATO
      2009.04.09 23:57
      Application.HintHidePause := 10000 시간 적당히 조정 하시면 될꺼에요~
    • 박종훈
    • 2009.04.09 18:54
    • 8 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.04.09 21:47
      책한권 사서 보세요. 델파이 도움말 잘 보시구요. 숙제같은데... 수업만 잘 들으셨으면 쉽게 하실 수 있...
    • 소울해커
      2009.04.10 00:32
      ... 글쓰신 말투가 어디서 본듯해서 뒤져봤더니 역시나... 교수님이 델파이를 하기위해서 필요한...
    • TOMATO
      2009.04.10 01:07
      요밑에 '초보생' 이라는 분이 올린거랑 똑같네요 같은 학교신가봐요;;
    • 라벤더
      2009.04.10 02:37
      지난번 그분이시군요. 잠깐 찾아보니 최근 2주 정도에만 다른 이름으로 세 개.. 난감하네요... -_-;;
    • 김병윤
      2009.04.10 08:56
      ^^ 이분 소울해커님한테 제대로 찍히셨네...;; 하도 이름을 자주 바꾸셔서 누구라고 불러야할지 모르...
    • 박종훈
      2009.04.14 19:49
      그럼 저장하고 저장 되는 값이라도 좀알려즈심안돼나요 전역선억하는거랑
    • 박종훈
      2009.04.14 19:54
      그리고 한줄완성해서 버튼을 클릭하면 다음칸으로 내려야하는데 내려가는법좀
    • • • •
    • 김갱
    • 2009.04.09 07:32
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 공호준
      2009.04.09 16:33
      델마당에 강좌가 있습니다. http://www.delmadang.com/ 열심히 하세요.
    • 석주현
      2009.04.09 18:17
      지금 시작하신 다면 책을 한권 구입해서 기본적인 것 부터 죽 보시고 하시는 게 좋습니다. 델마당에 동...
    • 김갱
    • 2009.04.09 03:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김병윤
      2009.04.09 07:18
      다른 고수분들의 좋은 방법들이 많을테지만 제가 생각하는 짧은 생각을 옮겨봅니다. 1. 두 가지 패턴...
    • 김갱
      2009.04.09 07:30
      감사합니다 ㅜ.ㅠ 근데 문제는... 제가 알고 싶어 하는게 찾아봐두 안나온다는 점이네요 ㅜ.ㅠ
    • 장성호
      2009.04.09 10:44
      ㅋㅋ 김병윤님께서 아주 좋은 방법을 소개해 주셨네요... 특히 커뮤니티 활용방법에 대해서 매우 동감...