Q&A

  • 질문입니다 ㅜ
안녕하세요 D5를 사용하고 있습니다.

저는 지금 StringGrid 에서 DB에 저장되어 있는 자료를 불러와서 사용하고 있습니다.
자료에는 물품의 이름과 가격이 있는데요

불러온 자료의 이름이 같은것들의 가격들을 더해서 그 가격의 합을
이름이 같은것들의 마지막에 있는셀의 다음번에 셀을 추가해서 가격을 합을 적고 싶습니다.

다음자료들도 똑같이 같은이름들의 가격들의 합을 마지막셀 다음번 셀에 추가하고싶습니다.
DB에서 불러오는 자료들의 이름들이 정해지지 않고 다양한 이름들이 오니깐 어떻게 For문을 돌리고 조건을 잡아야할지
감을 잡을수 없어서
고수님들의 도움을 받고자 질문을 올립니다.
간단한 예제소스로 예를 들어주시면 정말 감사하겠습니다.  
예)
자료 : AAA   500
           AAA   300
           BBB  100
           BBB  200
           CCC 500

결과 : AAA  500
           AAA  300
                 800
           BBB 100
           BBB 200
                 300
           CCC 500
                  500
3  COMMENTS
  • Profile
    최용일 2009.03.23 23:06
    이전에 추가한 이름을 기억해놨다가, 새로 추가할 아이템의 이름과 비교해서 다르면 합계를 먼저 추가하고 새로운 아이템을 추가하시면 금방 될건데요...
  • Profile
    아낙네 2009.03.24 00:21
    저도 그런식으로 짜면 되겠다 생각은 했는데요
    도저히 이걸 소스로 어떻게 짜야할지가 생각이 안나서요 ..ㅜㅜ
    조건을 어떻게 줘야할지, for문을 어떻게 돌릴지가 도저히 감을 못잡겠네요 ;;
    고수님의 간단한 예라도 보여주시면 정말 감사하겠습니다.
  • Profile
    최용일 2009.03.24 07:00
    대강 적은것이라서 오류날 수 있겠지만... 아래와 같은 형식이 되겠죠...

    var
    TotalPrice, GoodsPrice: Integer;
    PrevGoodsName, GoodsName: string;
    begin
    TotalPrice := 0;
    PrevGoodsName := '';
    while not Query1.EoF do
    begin
    GoodsName := Query1.FieldByName('GoodsName').AsString;
    GoodsPrice := Query1.FieldByName('GoodsPrice').AsInteger;

    if (PrevGoodsName <> '') and (PrevGoodsName <> GoodsName) then
    begin // 합계출력
    StringGrid1.RowCount := StringGrid1.RowCount + 1;
    StringGrid1.Cells[1, StringGrid1.RowCount - 1] := IntToStr(TotalPrice);
    TotalPrice := 0;
    PrevGoodsName := GoodsName;
    end;

    // 상품출력
    StringGrid1.RowCount := StringGrid1.RowCount + 1;
    StringGrid1.Cells[0, StringGrid1.RowCount - 1] := GoodsName;
    StringGrid1.Cells[1, StringGrid1.RowCount - 1] := IntToStr(TotalPrice);
    TotalPrice := TotalPrice + GoodsPrice;
    end;
    end;
    • KDDG_Hit
    • 2009.03.26 06:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • delete
    • 2009.03.26 02:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • delete
      2009.03.26 02:59
      저걸 돌려보면 버튼클릭시 첫번째 에러 메세지는 ora-12571 이라고 뜨고 다시 눌르면 NET : Net...
    • 박종철
    • 2009.03.25 21:13
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.03.26 02:51
      음... TStringGrid의 KeyPress이벤트에 똑같이 코딩했는데... 잘 되는데요...
    • 박종철
      2009.03.26 17:44
      그냥 포커스만 가 있는 상태에서 하면 잘 됩니다. 그런데 옵션에 goEditing을 True로 하고 입력모드로 ...
    • 최용일
      2009.03.26 21:16
      델7인데요... goEditing에서도 잘 되구 TEdit에서도 잘 되는데요...
    • 박종철
      2009.03.26 21:56
      답변 감사합니다. 델파이 6에서는 안되나 보네요... ㅠ_ㅠ
    • delete
    • 2009.03.25 20:55
    • 0 COMMENTS
    • /
    • 0 LIKES
    • lee, js
    • 2009.03.25 20:18
    • 0 COMMENTS
    • /
    • 0 LIKES
    • lee, js
    • 2009.03.24 21:19
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이상호
    • 2009.03.24 08:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김병윤
      2009.03.24 17:24
      먼소린가 했네요 ㅎㅎ [기존소스] if(i mod 2)=0 then sum:=sum+i else if(i mod 2)=1 then sum1:=...
    • 김덕현
    • 2009.03.24 08:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 신동우
    • 2009.03.24 03:08
    • 10 COMMENTS
    • /
    • 0 LIKES
    • 후초보
      2009.03.24 03:12
      문제는 알겠는데 뭘 모르는 건지 알아야죠? 프로그램을 만들어 달라는 거예요? 버튼 누르면 click ...
    • 신동우
      2009.03.24 07:17
      정말 죄송한데 ...제가 이문제를 내일까지 꼭해야하는데 배운지가 얼마안되서 ㅠㅠ급하게 만드는방법이...
    • 신동우
      2009.03.24 07:53
      위에 문제가 딱실행이 될수있게 해주시면안돼나요 정말 내일 필요해서 ㅠㅠ sdw0704@hanmail.net 으로...
    • 소울해커
      2009.03.24 20:06
      ... 학교 과제물을 여기서 처리해달라고 하시는건 대체 무슨 생각이신지...ㅡ_ㅡ 프로그램 하실 마...
    • 신동우
      2009.03.24 20:17
      그게아니고여 배우고있는대 어려우니까 물어보는거구요 오해하지 마실래요? 알려주면서 그런소리하던...
    • 신동우
      2009.03.24 20:42
      제가필요한건 이위의 질문에 대한 소스값이 정말필요한데 2시까지마감이라 ㅠㅠ
    • 라벤더
      2009.03.24 22:34
      신동우님. 글이나 코멘트 써놓으신 걸 보니 기가 막히는군요. 델파이를 배운지 얼마나 되셨는지는 모르...
    • • • •
    • 후초보
    • 2009.03.24 08:51
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 신동우
      2009.03.24 20:42
      소스값이 필요한데 ㅠㅠ자세한 ㅠㅠㅠ
    • KDDG_Hit
      2009.03.25 02:27
      위 원문글 첫번째에 코멘트에 정확하게 달려있는데요.. 아예 프로젝트 파일을 원하시나?? -_-;; 이...
    • 후초보
      2009.03.26 02:41
      답답하신 분이네.. 소스를 다 올려줬는데 무슨 소스값이 필요하다는건지.. 혹시 프로그램 처음 강의 듣...
    • 박종철
      2009.03.26 17:46
      첨부파일을 확인도 못하시는 분이시라니... ㅡㅡ;;;; 맘씨 좋은 후초보님만 공연히 고생하셨네요..
    • KDDG_Hit
    • 2009.03.24 02:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.03.24 07:14
      CComBSTR은 ATL클래스로 델파이와 호환되지 않습니다. BSTR은 델파이에서 PWideChar로 변경하시면 잘 호...
    • KDDG_Hit
      2009.03.24 20:10
      그렇군요.. 감사합니다.. 마침 C++ 에서 CCOMBSTR 을 BSTR 로 변환하는 방법을 찾았는데.. 그걸 응...
    • 최용일
      2009.03.24 07:04
      다 맞는데 배열의 크기가 2048이니까 array[0..2047] of char로 되어야 겠네요...
    • 송 시중
      2009.03.26 05:39
      답변 감사합니다 ^^
    • 박준영
      2009.03.26 01:29
      ㅋㅋ 열심히 검색한 결과 두종류를 찾았습니다.. 사용법은 아직 모르고.. ㅋㅋ 하나는 무료같은데... DB...
    • 뽀롱
    • 2009.03.23 20:40
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 아낙네
    • 2009.03.23 19:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.03.23 23:06
      이전에 추가한 이름을 기억해놨다가, 새로 추가할 아이템의 이름과 비교해서 다르면 합계를 먼저 추가하...
    • 아낙네
      2009.03.24 00:21
      저도 그런식으로 짜면 되겠다 생각은 했는데요 도저히 이걸 소스로 어떻게 짜야할지가 생각이 안나서요 ...
    • 최용일
      2009.03.24 07:00
      대강 적은것이라서 오류날 수 있겠지만... 아래와 같은 형식이 되겠죠... var TotalPrice, GoodsPr...
    • 이상호
    • 2009.03.22 23:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.03.23 23:07
      홀수 합과 짝수 합을 계산하는 변수를 나누세요. 현재 sum이란 변수에 홀수합과 짝수합이 같이 들어가도...
    • 김덕현
    • 2009.03.21 08:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.03.24 00:09
      아래 사이트 참고하세요. http://kurapa.com/content-a402