Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[4759] >질문< 에러잡아주세요..[Ak, Error!!]
hk4801 [ ] 938 읽음    1998-09-30 19:36
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;


+ -

관련 글 리스트
4759 >질문< 에러잡아주세요..[Ak, Error!!] hk4801 938 1998/09/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.