Q&A

  • StringGrid에서의 로우별 합계는 어떻게....?


디테일 테이블로 사용할 목적으로 StringGrid를 만들었습니다.



StringGrid에서의 로우별 합계는 어떻게 구하는지요

원료비 100

재료비 200

노무비 200

경 비 300

소 계 ?



여기서 전 소계를 구하고 싶은데요... 어떤 식으로 해야하는지요..



제가 스트링그리드를 잘 몰라서 그런데.. 좀 설명도 같이 덧붙혀주셨으면



정말 감사하겠습니다.

2  COMMENTS
  • Profile
    배불뚝 1999.10.20 00:59
    > StringGrid에서의 로우별 합계는 어떻게 구하는지요

    > 원료비 100

    > 재료비 200

    > 노무비 200

    > 경 비 300

    > 소 계 ?



    이렇게 해보세용



    procedure summary(r, c:integer); //r은 총 레코드수, c는 총 컬럼수(합계컬럼제외)

    var

    i, j, total : integer;

    begin

    total := 0; //합계 초기값



    for j := 1 to r do //각 레코드별

    for i := 1 to (c+1) do //각 컬럼별

    if i < (c+1) then //합계컬럼이 아닐 경우

    total := strtoint(stringgrid1.cells[i,j]) + total;

    else //합계컬럼일 경우

    stringgrid1.cells[i,j] := inttostr(total) ;

    end;

  • Profile
    박성훈 1999.10.19 20:14
    sun wrote:

    >

    > 디테일 테이블로 사용할 목적으로 StringGrid를 만들었습니다.

    >

    > StringGrid에서의 로우별 합계는 어떻게 구하는지요

    > 원료비 100

    > 재료비 200

    > 노무비 200

    > 경 비 300

    > 소 계 ?

    >

    > 여기서 전 소계를 구하고 싶은데요... 어떤 식으로 해야하는지요..

    >

    > 제가 스트링그리드를 잘 몰라서 그런데.. 좀 설명도 같이 덧붙혀주셨으면

    >

    > 정말 감사하겠습니다.



    스트링그리드는 가로방향이 Row이고 세로방향이 Column이 되니까 금액이 들어있는 칼럼의 합계를 구하고 싶다는 얘기같은데...

    Row와 Column은 0부터 시작하는 건 아실테죠?



    procedure GridTotal;

    var

    r:Integer;

    total:Double;

    begin

    total:='0';

    with grid1 do begin //grid1은 스트링그리드의 Name

    //금액이 들어 있는 첫번째 Row부터 마지막 Row까지

    for i:=0 to rowcount-1 do begin

    total:=total+ StrToFloat(cells[1,i]); //1번 칼럼에 금액이 들어 있다고 치면

    end;

    Cells[1,소계가 들어갈 Row번호]:= FloatToStrF(total,ffNumber,10,0);

    end;

    end;