Q&A

  • [질문]스트링그리드셀에있는숫자만큼DB에조인된내용보여주기
안녕하십니까? 전봉수 입니다.
DB 테이블에서 공종코드(Mcode)를 축출하여 건수를 스트링그리드셀에 뿌려주는 작업인데요
건수를 추출하고나서 추출된 셀위에 마우스를 위치하고 클릭하면 접수내용(Nayong) 내용을
보려고합니다.
예를들어 추출된 셀값이 5이면 접수내용(Nayong)eh 5가지가 보여야 되겠죠?
좌표와 셀값은 델마당 검색을 통하여 입수를 하였는데 셀 내용을 보여주는 루턴은 아무리
찿아봐도 없는것 같아서 질문을 드립니다. 꼭좀 부탁드립니다.
여러분의 답변을 듲고 아래와같이 코팅을하여 결과를보니 숫자가 있는셀이든 없는셀이든
추출된 DB의 첫번째 내용만 보여주네요.
숫자가 있는셀만 숫자만큼 접수내용을 보여주는것을 완성해하는데 걱정비네요.
한번더 기회를 주십시요 답변 기다리겠습니다.  
var
  MiChJoForm: TMiChJoForm;
  COUNT : INTEGER;
  // 전역변수
  sText,sDBText: String;
  col, row : integer;

implementation
USES CALLU, GOCOMU, MiChJop;


// 셀 내용출력함수
PROCEDURE TMiChJoForm.MiChJO1_DATA(SENDER: TOBJECT);
BEGIN
  sDBText := StringGrid1.Cells[col,row];  // 여기값은 X필드의 값
  WITH QR_MiChJo1 DO
    BEGIN
      CLOSE;
      SQL.Clear;
      SQL.ADD('SELECT A.* , B.Mname, C.Yname, D.Hname, E.Sname '+
              ' FROM Jaryo A,Mich B,Yhng C,Chury D,Singo E '+
              ' Where '+
              ' A.Mcode = B.Mcode AND A.Ycode = C.Ycode AND '+
              ' A.Hcode = D.Hcode AND A.Scode = E.Scode '+
              ' Order BY A.Mcode');
    END;
End;


// 스트링그리드1 마우스 클릭시 셀값 좌표확인
procedure TMiChJoForm.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin
  Col    := StringGrid1.Col; // 행
  Row    := StringGrid1.Row; // 열
  sText  := StringGrid1.Cells[Col,Row];
  sDBText:='';
  if StringGrid1.Col = 1 then
    begin
      QR_MiChJo1.Close;
      MichJo1_DATA(SENDER);
      QR_MiChJo1.Open;
      if not QR_MiChJo1.EoF then
        begin
          sDBText :=
           sDBText + QR_MiChJo1.FieldByName('Nayong').AsString + #13#10;
           QR_MiChJo1.Next;
          ShowMessage('StringGird의 정보: ('+IntToStr(Col)+','+IntToStr(Row)+') 값: ' + sText + #13#10 + ' DB정보: ' + #13#10 + sDBText);
        end
      else
        ShowMessage('매칭되는 DB값이 없습니다.');
    End
  Else
  if StringGrid1.Col = 5 then
    begin
      QR_MiChJo1.Close;
      MichJo1_DATA(SENDER);
      QR_MiChJo1.Open;
      if not QR_MiChJo1.EoF then
        begin
          sDBText :=
          sDBText + QR_MiChJo1.FieldByName('Nayong').AsString + #13#10;
          QR_MiChJo1.Next;
          ShowMessage('StringGird의 정보: ('+IntToStr(Col)+','+IntToStr(Row)+') 값: ' + sText + #13#10 + ' DB정보: ' + #13#10 + sDBText);
        end
      else
        ShowMessage('매칭되는 DB값이 없습니다.');
    End
  Else
  if StringGrid1.Col = 10 then
    begin
      QR_MiChJo1.Close;
      MichJo1_DATA(SENDER);
      QR_MiChJo1.Open;
      if not QR_MiChJo1.EoF then
        begin
          sDBText :=
          sDBText + QR_MiChJo1.FieldByName('Nayong').AsString + #13#10;
          QR_MiChJo1.Next;
          ShowMessage('StringGird의 정보: ('+IntToStr(Col)+','+IntToStr(Row)+') 값: ' + sText + #13#10 + ' DB정보: ' + #13#10 + sDBText);
        end
      else
        ShowMessage('매칭되는 DB값이 없습니다.');
    End;
// SHOWMESSAGE(QR_MichJo1.SQL.Text);
end;
4  COMMENTS
  • Profile
    최용일 2010.04.13 00:45
    DB는 꽤 하신것 같은데.... 쩝~

    if not QR_MiChJo1.EoF then
    begin
    while not QR_MiChJo1.EoF then
    begin
    sDBText := sDBText + QR_MiChJo1.FieldByName('Nayong').AsString + #13#10;
    QR_MiChJo1.Next;
    end;
    ShowMessage('StringGird의 정보: ('+IntToStr(Col)+','+IntToStr(Row)+') 값: ' + sText + #13#10 + ' DB정보: ' + #13#10 + sDBText);
    end
  • Profile
    전봉수 2010.04.13 01:58
    최용일님 답변감사합니다.
    아래와같이 코팅하면 셀에 값이 있으나 없으나. 검색된 접수내용이 몽땅 메세지박스에 출력됩니다.
    다시 말씀 드리자면 스트링그래드셀에 숫자로 표시되게하는 필드는 Mcode이고 셀에 마우스를 클릭하여
    보여주눈것은 Nayong 필드입니다. 다시한번 부탁드립니다.
    while not QR_MiChJo1.EoF DO //then
    begin
    sDBText := sDBText + QR_MiChJo1.FieldByName('Nayong').AsString + #13#10;
    QR_MiChJo1.Next;
    end;
  • Profile
    최용일 2010.04.13 02:22
    뭐가 문제죠? 셀에 값이 있나만 판별하면 되지 않나요?

    if 셀에 값이 있으면 then
    begin
    DB쿼리실행 (Mcode = 셀의 값)
    while ... do
    ...
    end;
  • Profile
    전봉수 2010.04.13 02:54
    최용일님 답변감사합니다.
    셀의 값은 표시되지만 값이있는 셀에 마우수를 클릭하면 그값의 내용을(접수내용) 봐서 어떻한 문제가 있는지 확인하는것입니다.
    "즉" 1~11까지 한달간 미해결된 수량이 셀에 표시되고 마냑 문제점을 중점관리를 하려면 숫자가 제일 많은셀부터 확인하여 그 숫자속에 어떻한 접수내용있는지 보려고 하는것입니다.
    • 한윤동
    • 2010.04.13 07:47
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 한윤동
      2010.04.14 08:03
      문제점 찾았습니다. ActiveX를 실행하는 Explorer를 관리자권한으로 실행시키면 메시지가 날라가고 아...
    • 송효재
      2010.04.17 03:34
      한가지 꽁수가 있어서 알려드립니다. ActiveX에서 공유메모리와 Semaphore를 먼저 생성한 다음, 응용 ...
    • 박유신
      2010.04.28 02:55
      ChangeWindowMessageFilter를 이용한 방법이 있습니다 참고하세요 http://cafe.moneta.co.kr/bbs.normal...
    • 산소프트
      2010.04.16 21:19
      저도 비슷한 상황이 있었는데, 인터넷이나 소켓관련은 무조건 인디로 ㅡㅡ;;
    • 이장미
    • 2010.04.13 05:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.04.13 21:58
      파일열어서 콤마로 구분해서 저장하세요. TStringList같은 컴포넌트를 쓰셔도 되구요... var List:...
    • 이장미
      2010.04.13 23:39
      감사합니다.^^
    • 한배검
    • 2010.04.13 03:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김용일
      2010.04.19 22:18
      혹 DB 연결하는 쿼리문을 사용하지 않으셨나요? 쿼리하는데 시간이 걸리지 않나 싶군요. 쿼리문이 최적...
    • 전봉수
    • 2010.04.12 23:52
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.04.13 00:45
      DB는 꽤 하신것 같은데.... 쩝~ if not QR_MiChJo1.EoF then begin while not QR_MiChJo1.EoF the...
    • 전봉수
      2010.04.13 01:58
      최용일님 답변감사합니다. 아래와같이 코팅하면 셀에 값이 있으나 없으나. 검색된 접수내용이 몽땅 메세...
    • 최용일
      2010.04.13 02:22
      뭐가 문제죠? 셀에 값이 있나만 판별하면 되지 않나요? if 셀에 값이 있으면 then begin DB쿼리실...
    • 전봉수
      2010.04.13 02:54
      최용일님 답변감사합니다. 셀의 값은 표시되지만 값이있는 셀에 마우수를 클릭하면 그값의 내용을(접수...
    • 이민규
    • 2010.04.12 23:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.04.13 00:35
      UDP는 데이터를 받을때 쓰시구요... IGMP로 데이터를 요청해야 합니다. Indy도 IGMP지원하는것으로 알...
    • 이민규
      2010.04.13 19:42
      답변 감사드립니다. IGMP 컴포넌트에 대한 내용이 지금 설치된 버전에서 안보여서 최신 버전으로 설치하...
    • 박준영
      2010.04.13 19:33
      제 질문에 답변을 달다니.. 이런.. ㅋ TopLeftChanged 이용해서 해결 봤습니다.. 좀 무식하게 했...
    • 이승걸
    • 2010.04.12 19:11
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 땅콩맨
      2010.04.13 05:05
      SourceForge에서 EmbeddedWebbrowser 컨트롤을 검색해보니 Delphi5부터 2009까지 지원한다고 나왔네요 ...
    • 하르만
      2010.04.21 10:49
      자료실에 올렸읍니다.
    • 박병흔
    • 2010.04.12 07:19
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.04.12 19:44
      InfoPower사의 DBGrid네요. http://www.woll2woll.com/InfoPower.html
    • 박병흔
      2010.04.13 21:56
      정말 감사합니다 즐건 한주 되세요
    • 그냥저냥
      2010.04.17 02:03
      InfoPower의 DBGrid.. 감사합니다..
    • 땅콩맨
      2010.04.10 07:38
      아 어려운 해결 수고하셨습니다
    • 전봉수
    • 2010.04.09 20:41
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 전봉수
      2010.04.09 23:30
      자체해결됨 // 실시간 10분 간격으로 그래프 표시 타이머 procedure TGasasForm.Timer1Timer(Sender: ...
    • 땅콩맨
      2010.04.10 07:35
      해결 ㅊㅋㅊㅋ
    • 전봉수
      2010.04.14 06:49
      땅콩맨님 답변 고맙습니다. 한가지만 더 부탁 드릴께요 한번 지나간 시간대는 더이상 이벤트를 출력을 안...
    • 김용일
      2010.04.19 22:28
      이런건 간단하죠. 끝내기 전에 타이머를 중지시키면 되죠. Timer1.Active := false;
    • 이우석
    • 2010.04.09 17:57
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 땅콩맨
      2010.04.10 07:31
      순수 HTML로 웹페이지를 구성하는게 아니라면 Delphi2007로 Web프로그램을 작성하는방법을 익히면서 같...
    • cdrd
      2010.04.12 00:28
      IntraWeb을 사용하시는 방법도 있습니다. 기존의 델파이와 비슷한 방식으로 사용할 수 있습니다. 해당 ...
    • 땅콩맨
      2010.04.12 03:19
      전에 마소였나? 긁적긁적 ^^;; IntraWeb에 대해서 기사가 나왔던걸 본게 기억이 나는데요? IntraWeb은 ...
    • 땅콩맨
      2010.04.12 03:46
      변경된 계정에 권한이 제대로 되어있는지 확인해 보심이...
    • 땅콩맨
      2010.04.09 03:14
      서버의 경로라도 로컬처럼 파일의 확장자를 얻어 유형을 알 수 있지 않을까요?
    • 이은주
      2010.04.09 06:32
      네 확장자를 이용해서 아이콘 처리하는 것은 됩니다만 파일 유형은 어떻게 찾을지 모르겠군요.
    • 이은주
      2010.04.09 09:38
      function F_Get_File_Type(const xcFile: String) : string; var vInfo: TSHFileInfo; vFlags...
    • 땅콩맨
      2010.04.10 07:17
      해결하셨다니 다행이네요. 즐건 주말되세요~ ^^
    • 시슈
    • 2010.04.08 09:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 땅콩맨
      2010.04.09 03:12
      볼포 자료실에 바코드컴포넌트가 있습니다. 참고하시길... http://cbuilder.borlandforum.com/impboa...
    • 시슈
      2010.04.16 19:34
      아, 이제서야 답변을 봤습니다.^^ 결국은 ZPL를 사용하지 않고 말씀하신 컴포넌트를 이용해서 해결했습...
    • 땅콩맨
    • 2010.04.08 10:18
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 유옥난
      2010.04.09 01:49
      아! 감사해요~ 땅콩맨님~~~!! 읽어봤는데 거기에도 보면 NS1:네임스페이스가 자식까지 다 들가있는데...
    • 유옥난
      2010.04.15 21:00
      땅콩맨님 ㄳ합니다 ^^ 처리 됐어요... 알고보니 델7쪽 문제가 아니고 닷넷서버쪽 문제네요. 에러나던것...
    • 땅콩맨
      2010.04.16 10:04
      아. 다행이네요 ^^ 제가 뭐 한게있나요... (쑥스)
    • 땅콩맨
    • 2010.04.09 02:48
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박준영
    • 2010.04.08 02:48
    • 6 COMMENTS
    • /
    • 0 LIKES
    • phono
      2010.04.08 08:30
      제일 중요한 에러 메시지가 빠졌네요.. SQL문을 코딩할때는 가급적.. 파라메터를 쓰는 것보다.. 해당 ...
    • 박준영
      2010.04.08 23:51
      답변 감사합니다.. ado 사용을 포기 했습니다.. ㅠ.ㅠ 같은 쿼리로.. TQuery 사용 하니 바로 되네요.....
    • phono
      2010.04.09 07:44
      델파이버전 몇을 쓰나요. 7은 sp1을 깔아줘야 합니다. 델7 기본 설치본 가지고 ado 쓰시면 이런저런 에...
    • 땅콩맨
      2010.04.12 04:22
      아. 델7에서 ado사용시 문제가 좀 있나보네요?
    • 박준영
      2010.04.12 19:33
      ㅎㅎ 델파이 6 씁니다.. 쩝.. 뭐 쉽게 쉽게 쓸려고 노력중이라.. 걍 쿼리 다시 만들었습니다.. 파...
    • 땅콩맨
      2010.04.13 04:59
      아... 파라독스에 맞게.. ㅋㅋㅋㅋㅋㅋ