Q&A

  • DBGrid에서 %값 출력하기
너무 초보인지라.. 무례하게 질문을 하더라도 용서하시고 꼭 부탁드려요..
인사관리 테이블을 작성하고 있는데 퍼센트가 나오지를 않네요....
쿼리분석기에서는 되는데.. 컴포넌트 SQL에 입력을 하면 안되네요... 그냥 공백이구.. db는 랜상에서 mssql2000사용하고 있습니다.
쿼리sql 컴포넌트에 SQL T스트링 리스트 작성에다 아래와 같이 입력을
했거든요..

select bu_code, insacho, insabo, insahyun, (insahyun / insacho)*100 AS insapercent From insadb

//  DBGrid 출력시  // 아래와 같이 나와야 하는데.. 몇퍼센트인지 안나오네요..

bu_code(부서코드)  insacho(총원)  insabo(보충)  insahyun(현재원)  insapercent(%)
---------------------------------------------------------------------------------
10                      0            10            10              100

위와 같이 입력을 했더니 어떨때는 처음에는 또 되더니 나중에는 read only 테이블이라고 나오네요.. 으흐흐~~ 벌써 3일째 이것가지고 씨름하다가 .. 머리 아퍼 죽겠습니다..

그리고 두번째는 퍼센트 셀을 100% ~ 90% = 노란색, 90% ~ 80% = 파란색, 80% ~ 70% 빨간색이렇게 해달 셀을 표시해달라고 하는데.. 바쁘시겠지만 꼭 좀 도와주세요..... 질책 하지 마시구요... 부탁이에요..

3  COMMENTS
  • Profile
    일그니 2004.10.14 21:26
    혹시나 하는 맘으로 적어봅니다.
    쿼리 컴포넌트의 질의어중
    (insahyun / insacho)*100 AS insapercent
    을 소수점을 정리함 해보심도...
    TRUNC같은 것을 이용해보심도 있나? 몰겟네여.
    자리수가 들쭉 날쭉하면 그럴수도 있습니다.

  • Profile
    모영철 2004.10.14 21:13
      if  (QryGongJ.FieldByName('AFTER_QTY').AsString = '')
      and (QryGongJ.FieldByName('AFTER_WGT').AsString = '') then
        (Sender as TDBGridEH).Canvas.Font.Color := clBlue

      else if (QryGongJ.FieldByName('AFTER_QTY').AsString <> '')
      and (QryGongJ.FieldByName('AFTER_WGT').AsString = '') then
        (Sender as TDBGridEH).Canvas.Font.Color := clGreen

      else if (QryGongJ.FieldByName('AFTER_QTY').AsString = '')
      and (QryGongJ.FieldByName('AFTER_WGT').AsString <> '') then
        (Sender as TDBGridEH).Canvas.Font.Color := clGreen;

      if gdFocused in State then
        (Sender as TDBGridEH).Canvas.Brush.Color := $00FDEDEA;

      (Sender as TDBGridEH).DefaultDrawDataCell(Rect, Field, State);

    저도 하도 오래되서 기억이 가물가물 하네요..
    오래된 소스를 뒤적이며 찾아낸 소스가 위에 겁니다.

    OnDrawDataCell 이벤트에 넣어줘야 하구요...디비그리드에 필드를 미리 올려
    놓으면 아마 다른 이벤트에서 해줘야 할겁니다. 비슷한 다른 이름의 이벤트가
    있을걸로 기억하구요..

    그리고 %에 관한건 자세한 원인은 잘모르겠지만.
    그냥 쿼리에서 말고 CalcField를 쓰시면 해결 될거 같습니다.

    아 델파이없이 그냥 답변 해드리려니 너무 허접하네요..
    도움이 됐으면 좋겠습니다.


  • Profile
    박원용 2004.10.15 09:22
    먼저 도움주셔서 정말 감사하구요.. %는 잘됩니다.. 그런데..
    특정 셀에 대한 조건을 부여했을때 색깔바꾸기는 잘 안되네요...T.T

    아래와 같이 입력을 했는데.. 아무런 변화가 없어요.. 제가 너무 몰라서..
    예를 들어 조건은 90~100이란 조건은 셀이 파란색으로
    90~80은 노란색으로 80~70은 빨간색으로 이렇게 셀의 값에따라서
    셀색깔이 변해야 하는데..아무리 해도 전혀 변화가 없네요..
    and 다음에 또 필드를 입력해야한다하는데 무엇을 입력해야할지 몰라서
    막았어요..

      if  (Query1.FieldByName('insapersent').AsString = '')
    // and (Query1.FieldByName('AFTER_WGT').AsString = '') then
        (Sender as TDBGrid).Canvas.Font.Color := clBlue

      else if (Query1.FieldByName('insapersent').AsString <> '')
    //  and (.FieldByName('AFTER_WGT').AsString = '') then
        (Sender as TDBGrid).Canvas.Font.Color := clGreen

      else if (Query1.FieldByName('insapersent').AsString = '')
    //  and (Query1.FieldByName('AFTER_WGT').AsString <> '') then
        (Sender as TDBGrid).Canvas.Font.Color := clGreen;

      if gdFocused in State then
        (Sender as TDBGrid).Canvas.Brush.Color := $00FDEDEA;

      (Sender as TDBGrid).DefaultDrawDataCell(Rect, Field, State);

    • 정동욱
      2004.10.15 03:29
      [...] FTimer.Enabled = True 하면 무조건 타이머 돌아 갑니다.     if not...
    • 정동욱
      2004.10.15 04:04
      [...] 구현 하는 방법은 스킬에 따라 여러가지 있겠습니다만 델파이답게 구현 하는법을 한가지 ...
    • 진돌
    • 2004.10.15 01:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이승민
      2004.10.15 01:45
      자료실에 가셔서 ACM 관련 내용을 찾아서 참고 하시면 될것같네요. 콤포넌트들과 데모프로그램 들도 있...
    • 신철우
    • 2004.10.14 22:44
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 우하하
      2004.10.15 01:30
      혹시 레이블을 디자인모드에서 먼저 생성하셨다면.. var   TempLabel : array[0..2] of ^TLab...
    • 정동욱
      2004.10.14 23:22
         [줄바꿈]    Label1.WordWrap := True;    Label1.Caption :=...
    • 모영철
      2004.10.14 23:20
      MyLabel : array[0..100] of TLabel; 위처럼 선언 하시면 되구요.. 전 델파이6인데 줄바꿈 되는데요......
    • Maru
    • 2004.10.14 22:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Maru
      2004.10.15 00:30
      아래의 경우 함수안에서 19를 자를때 19 하고뒤에 공백한칸을 포함시켜서 에러가 났네요.. 19만딱자르니...
    • 김길현
    • 2004.10.14 09:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 우하하
      2004.10.15 02:02
      type   PBitmap = ^TBitmap;    procedure loadjpgfile(Path_Name:PChar; NowBmp: ...
    • 정동욱
      2004.10.14 18:57
      [...] 위에서와 같이 imgbmp는 Free 하면 않됩니다. 객체의 동적생성 이니 언젠가는 Free 해야 하...
    • 박원용
    • 2004.10.14 05:24
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 일그니
      2004.10.14 21:26
      혹시나 하는 맘으로 적어봅니다. 쿼리 컴포넌트의 질의어중 (insahyun / insacho)*100 AS insapercent ...
    • 모영철
      2004.10.14 21:13
        if  (QryGongJ.FieldByName('AFTER_QTY').AsString = '')   and (QryGon...
    • 박원용
      2004.10.15 09:22
      먼저 도움주셔서 정말 감사하구요.. %는 잘됩니다.. 그런데.. 특정 셀에 대한 조건을 부여했을때 색깔바...
    • 기타맨
    • 2004.10.14 04:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 기타맨
      2004.10.14 18:53
      답변자료에 있군요.
    • 희아빠
    • 2004.10.14 02:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 스바쉬
    • 2004.10.13 23:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이승민
      2004.10.14 01:02
      http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?db=dmdres2&mode=read&num=648&page=1&backdepth=1 ...
    • 스바쉬
      2004.10.14 18:01
      .
    • 모영철
      2004.10.14 00:05
      그런경우 어떻게 값을 넣어줬는지는 모르겠는데요.. WM_USER + X 이렇게 해서 메세지를 날려서 받...
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.10.14 00:37
      그래도 머가 먼지 모르겠네요...이쪽은 초보라 그런가벼요...
    • 최용일
      2004.10.14 01:28
      안녕하세요. 최용일입니다. 걍 메세지를 보내세요... PostMessage(CheckBoxHandle, BM_SETCHECK, BST...
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.10.14 02:36
      감사합니다... 아래걸루 하니까 되구요...위에것은 그림만 되네요... 근디 버튼은 어떻게 하는지????...
    • 최용일
      2004.10.14 05:07
      안녕하세요. 최용일입니다. TSpeedButton이면 윈도우컨트롤이 아니니까 핸들도 없을테구요... 그 스...
    • 우하하
      2004.10.15 02:10
      비슷한 경험이 있었던 기억이.. TRichEdit 써보시죠. Win32에 있습니다.
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.10.13 21:57
      혹시 그 컴포넌트들이 한 폼에 있는 것은 아니것죠... 비슷한 부분끼리 그룹으로 입력을 받으면 ...
    • 희망봉
    • 2004.10.13 18:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2004.10.13 22:07
      무슨 말씀이신지.... 스파이에서 핸들이 나오지 않는다면 그건 윈도우가 아닙니다. 버튼이나 폼들. 콤보...
    • 존재의바다
      2004.10.14 07:51
      문제를 정면돌파하지 마시고 우회하면 어떨까 합니다. 동작도 잘 되고 하면 굳이 종료시점에 장애나는...
    • 권성욱
      2004.10.14 02:36
      델마당에도 질문 하셨던거 같던데... Dll 을 호출 할때 stdcall로 호출하지 마시고, cdecl로 호출 ...
    • 김명찬
      2004.10.13 03:31
      VC++로 만든 DLL이 크게 1 전문생성 2 연결(connect) 3 전송(send) 4 수신(receive) 이런과정을 거치...
    • 석주현
      2004.10.13 18:14
      혹시 종료 하기 전에 커넥션을 안끊으신건 아닌지...ㅠ_ㅠ
    • 이승민
      2004.10.14 01:08
      저는 서버쪽에서 클라이언트가 접속되었을 때 일정시간에 한번씩 Ping data 를 보냅니다. 뭐 Ping 이라...
    • 최용일
      2004.10.13 02:23
      안녕하세요. 최용일입니다. 원래 TCP자체가 그러한 경우에 대해서 마땅히 대처할만한 방법을 제공하지는...
    • 김정은
    • 2004.10.12 21:18
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 서기원
      2004.10.13 01:17
      예전에 여긴가 델코에서 말씀하신 문제를 포함하여 TWebBrowser의 버그에 대해서 글을 읽은 것 같은데.......
    • 신철우
      2004.10.15 19:10
      아래경로는 설명만 잔뜩해놓고 다운로드링크가 없네요. 확실하게 알려주시면 고맙겠습니다.
    • 최용일
      2004.10.15 20:47
      안녕하세요. 최용일입니다. 글좀 읽어보세요. 위에 왼쪽에서 네번째에 EmbeddedWB이라고 써져 있잖아...
    • 김정은
      2004.10.13 22:45
      설치과정이 많이 되나요? 에구구~~그래도 함 깔아바야겠네요~ 즐거운 시간 많이 많이 보내세요~~
    • 이용남
      2007.02.02 19:04
      uses     RVClass, RVProj, RVCsStd;   var    ...
    • 정동욱
      2004.10.12 22:35
      [...] 결론만 말씀 드리면 TEvent 를 사용 해야 합니다. Execute 의 끝행에서 Event.WaitFot...
    • 최용일
      2004.10.12 07:51
      안녕하세요. 최용일입니다. 두개의 핸들값이 다르다면 님께서 다른 윈도우의 핸들을 찾으신겁니다. 윈도...