DBGrid의 값중에 '투자금액' 과 '추정완성액' 이라는 필드의
값들을 모두 누계하는 것을 하려고 합니다.
예>
필드명 : 투자금액 추정완성액
레코드1: 1000 1000
레코드2: 2000 100
---------------------------------------
합계 3000 1100 <<-- 구하려는 값
한데... 컴파일시 에러는 젼혀 없는데,
Runtime시 Down 되는 현상이 일어납니다.
에러가 없는데 왜그러는 지 모르겠습니다.
에러좀.. 잡아주세요..
로직이 잘못되었다면.. 그것도 알려주시고요..
본인의 추측 : 다운되는 현상이
데이타베이스파일(파라독스7.0)을 사용하는데
필드명을 한글로 써써 그런건 아닌가요?
델파이는 한글에 약하다던데..쩝.
[참고]
아래코드는 두번째 Form2 의 리스트이고
Form2에서 Form1을 참조하는 것은 Table1 입니다..
소스입니다..
unit exam022_Out; // << Form2 >>
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, StdCtrls;
type
TfrmExam022_Out = class(TForm)
DBGrid1: TDBGrid;
lblTotal: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmExam022_Out: TfrmExam022_Out;
implementation
uses exam022; // Form1 을 사용하기 위해 선언했음.
{$R *.DFM}
procedure TfrmExam022_Out.Button1Click(Sender: TObject);
var
iTotal : LongInt;
iTemp1, iTemp2, iTemp3, iTemp4 : LongInt;
// rTemp1, rTemp2, rTemp3 : Real;
// rTotal : Real; // 총공정
begin
iTemp1 := 0;
iTemp2 := 0;
iTemp3 := 0;
iTemp4 := 0;
frmExam022.Table1.First;
repeat
iTemp1:= frmExam022.Table1.FieldByName('투입금액').AsInteger;
iTemp2:= iTemp2 + iTemp1;
iTemp3:= frmExam022.Table1.FieldByName('추정완성액').AsInteger;
iTemp4:= iTemp4 + iTemp3;
Until frmExam022.Table1.EOF ;
iTotal := iTemp4 Div iTemp2 * 100; // 총공정값 연산
lblTotal.Caption := IntToStr(iTotal); //총공정 디스플레이
ShowMessage(' 투입금액 누계 : ' + IntToStr(iTemp2));
end;
|