oracle 8
delphi c/s 사용합니다
시간표table, 수강신청table 이 있습니다
시간표 table : s_haksu s_gyosu s_ban s_hakgwa s_gubun
수강신청 table : su_haksu su_gyosu su_ban su_hakbun su_sungjuk su_dung
제가한일
마스터dbgrid detail dbgrid 를 각각 만들엇습니다
각각은 datasource1, 2 table1, 2 dbgrid1,2 를 만들고
table2에서 마스터source - table1 masterfield - haksu, gyosu, ban 을
match 시켯습니다
질문1)
dbgrid1 에서
s_gubun(학수구분)은 숫자로만 되어있습니다
이것을 1은 '선택'으로 2는 '필수' 로 display 하고싶습니다
질문2)
dbgrid2 에서
수강신청한 학생명단이 나옵니다
이때 연번항목을 추가해서 연번을 display 하고싶습니다
질문3)
dbgrid2 에서
수강신청한 학생명단이 나옵니다
이때 성적입력난에 0 ~ 100점 사이에 점수를 입력하도록
조건을 propery에서 min값 max값을 지정했습니다
조건에 맞지 않으면 error message 가 화면에 뜨게 하고싶습니다
지금은 프로그램이 죽어버립니다
어떤 event에서 어떻게 exception 처리를 해야 하나요
질문4)
dbgrid2 에서
수강신청한 학생명단이 나옵니다
이때 성적입력난에 점수를 입력하면
90 su_dung에 'A'
88 su_dung에 'B+'
가 display 되게 하고싶습니다
꼭 부탁드립니다 초보이고 또 급해서요 그리고 중요해서요
자세한 설명이면 더욱 고맙겠습니다
이 이벤트는 값이 입력되고 포커스가 이동하면서 생기는 이벤트입니다.
방금 입력된 값을 검사하는데 도움이 되겠지요.
그러니까 대충 코딩을 해보면...
Procedure TForm1.Table2su_sungjukOnValidate(sender : TObject);
begin
// 질문3
if not((Table2su_sungjuk.Value >= 0)
and (Table2su_sungjuk.Value <= 100)) then
begin
// Error 메세지 보이고 포커스도 이동시켜주면 친절하겠지요?
end
else
begin
// 질문4
Case Table2su_sungjuk.Value of
90..100 : Table2su_dung.Value := 'A'; // 문법이 맞나요? ^^;
~~~~~
else Table2su_dung.Value := 'F';
end;
end;
end;
참고로 Value는 각 필드 성격에 맞도록 AsString, AsFloat, AsInteger 등으로
쓸수 있습니다.
또 덧붙이면... TTable이라면 잘 모르겠지만 SQL을 슬수 있다면 질문1은 Oracle 함수를 써보세요. select decode(s_gubun, 1, '선택', 2, '필수', '') from.. 이렇게요.