안녕하세요.
델파이 프로젝트를 만들다 모르는 것이 있어 글을 올려 봅니다.
아시는 분은 제발 메일보내 주십시오. 부탁입니다.
2가지 문제가 있습니다.
첫번째 문제,
form에는 '이름''학번''학과''비밀번호'를 넣는 에디트와 메시지가 뜨는 에디트가 있습니다.
각 에디트에 이름,학번,학과,비밀번호를 써 넣은후 "확인"이라는 버튼을 누르면 만들어 놓은 DB와 비교
DB 예)
이름 학번 학과 비밀번호
aaa **** &&&&& 1111
bbb $$$$ &&&&& 2222
ccc @@@@ &&&&& 3333
를 해서 일치하는 항목이 있으면 다음 form으로
이동 하고, 일치하는 항목이 없다면 메시지 에디트에
"일치하는 항목이 없습니다."라는 메시지가 뜨도록 하는 것입니다.
DB와 일치하는 항목이 있으면 다음 form으로 넘어가면서 비밀번호를 제외한 '이름''학번''학과'가 다음form의 위쪽에 위치하는 에디트 3개에 하나씩 들어가도록 하는 것입니다.
두번째 문제,
form의 윗쪽에는 앞쪽 form에서 받은 '이름''학번''학과'가 에디트 3개에 기록되 있습니다.
form에 3개의 테이블을 올려놓고 첫번째 테이블에는
'교수''과목''학점'에 각각의 데이타를 넣은 DB를 연결하고,
ex) 교수 과목 학점
aaa **** 1
bbb %%%% 2
ccc @@@@ 2
그 테이블에 있는 항목을 하나 누른후
ex) 교수 과목 학점
aaa **** 1 aaa 줄을 누름.
"신청"이라는 버튼을 누르면
두번째 테이블에 첫번째 테이블에서 클릭했던 aaa줄 항목이 나오고,
첫번째 테이블에서 다른 항목 bbb줄을 누른후 "신청"을 누르면
두번째 테이블에 aaa줄 밑에 bbb줄이 생깁니다.
그리고 동시에 테이블 아래에 있는 "신청학점" 에디트에 학점들이 더해져 나오게 하는 것입니다.
마지막으로 확인 버튼을 누르면 3번째 테이블에 윗쪽에 있는 '이름''학번''학과'에디트의 내용들이 저장되게 하는 것입니다.
이상 제가 해결하지 못하는 문제 두가지를 올려 놓았습니다.
제발 부탁입니다. 도와 주십시오. 이 두가지 문제 때문에 몇주동안
잠도 못자고 끙끙대다가 이곳 사이트를 찾게되어 문제를 올리게 되었습니다.
도와 주십시오.
> 안녕하세요.
> 델파이 프로젝트를 만들다 모르는 것이 있어 글을 올려 봅니다.
> 아시는 분은 제발 메일보내 주십시오. 부탁입니다.
> 2가지 문제가 있습니다.
>
> 첫번째 문제,
> form에는 '이름''학번''학과''비밀번호'를 넣는 에디트와 메시지가 뜨는 에디트가 있습니다.
> 각 에디트에 이름,학번,학과,비밀번호를 써 넣은후 "확인"이라는 버튼을 누르면 만들어 놓은 DB와 비교
>
> DB 예)
> 이름 학번 학과 비밀번호
> aaa **** &&&&& 1111
> bbb $$$$ &&&&& 2222
> ccc @@@@ &&&&& 3333
>
>
> 를 해서 일치하는 항목이 있으면 다음 form으로
> 이동 하고, 일치하는 항목이 없다면 메시지 에디트에
> "일치하는 항목이 없습니다."라는 메시지가 뜨도록 하는 것입니다.
> DB와 일치하는 항목이 있으면 다음 form으로 넘어가면서 비밀번호를 제외한 '이름''학번''학과'가 다음form의 위쪽에 위치하는 에디트 3개에 하나씩 들어가도록 하는 것입니다.
>
> 두번째 문제,
> form의 윗쪽에는 앞쪽 form에서 받은 '이름''학번''학과'가 에디트 3개에 기록되 있습니다.
> form에 3개의 테이블을 올려놓고 첫번째 테이블에는
> '교수''과목''학점'에 각각의 데이타를 넣은 DB를 연결하고,
>
> ex) 교수 과목 학점
> aaa **** 1
> bbb %%%% 2
> ccc @@@@ 2
>
> 그 테이블에 있는 항목을 하나 누른후
> ex) 교수 과목 학점
> aaa **** 1 aaa 줄을 누름.
>
> "신청"이라는 버튼을 누르면
> 두번째 테이블에 첫번째 테이블에서 클릭했던 aaa줄 항목이 나오고,
> 첫번째 테이블에서 다른 항목 bbb줄을 누른후 "신청"을 누르면
> 두번째 테이블에 aaa줄 밑에 bbb줄이 생깁니다.
> 그리고 동시에 테이블 아래에 있는 "신청학점" 에디트에 학점들이 더해져 나오게 하는 것입니다.
> 마지막으로 확인 버튼을 누르면 3번째 테이블에 윗쪽에 있는 '이름''학번''학과'에디트의 내용들이 저장되게 하는 것입니다.
>
>
> 이상 제가 해결하지 못하는 문제 두가지를 올려 놓았습니다.
> 제발 부탁입니다. 도와 주십시오. 이 두가지 문제 때문에 몇주동안
> 잠도 못자고 끙끙대다가 이곳 사이트를 찾게되어 문제를 올리게 되었습니다.
> 도와 주십시오.
우선 1번의 경우 Query를 사용하면 쉽게 해결이 될것 같습니다.
Query에서 Select문을 사용하여 검색한 결과를 가지고서 하면 되겠네요...
Query의 SQL부분을
Select *
From "Database이름"
where 조건식 ex) 이름 = "abc" and 학번 = "****" and 학과 = "&&&&&"
이렇게 해주시면 우선 해당 사람의 field를 검색하게 됩니다.
그리고, 이렇게 나온 결과를 다음form의 edit box에 넣어주시면 되겠지요.
Edit1.Text := Query.FieldByName('이름').AsString;
Edit2.Text := Query.FieldByName('학번').AsString;
Edit3.Text := Query.FieldByName('학과').AsString;
만약 Query검색결과 일치하는 Field가 한개도 없다면 Query의 RecordCount가 0이므로
RecordCount가 0이 아닐경우 다음 Form을 보여주면 되겠구요.
아니면 에러메세지를 보내주면 되겠지요.
그리고, 이 방법말고 다른방법은 Key Field를 사용하는 것입니다.
Table을 만들경우에 KeyField를 하나 설정해서
Table.setkey;
Table.FieldByName('키로 설정된 Field').AsString := '입력내용';
if Table.Gotokey then
begin
해당 검색결과를 다음 폼에 넣어주고 Form을 보여주면 되겠네요...
end
else begin
검색결과가 없을경우의 처리
end;
이상이 1번에 해당하는 내용입니다.
참, 검색결과가 2개일경우의 처리를 먼저 해주어야하지 않을까요???
2번째 문제는 그냥 말그대로 하면 될꺼 같은데요...
신청버튼을 누르면 String Grid에 선택한 DBGrid의 내용을 옮겨다 놓으면 되고,
확인 버튼을 누르면 입력했던 내용들을 저장해주기만 하면 되지 않을까요?
우선 교수, 과목, 학점등을 저장하고 있는 DB를 DBGrid를 사용해서 보여야 겠죠?
DBGrid에서 선택을 하면 Datasource로 연결된 Table의 Index가 해당 위치로 같이
움직이게 됩니다. 따라서 이때 신청을 누르면 String Grid에
StringGrid.Cells[라인넘버, 필드넘버] := Table.FieldByName('교수').AsString;
.....
이렇게 해주고, 입력이 끝나고 확인 버튼을 누르면
StringGrid.Cells의 내용을 DB에 저장을 해주면 되겠죠.
Table.AppendRecord([StringGrid.Cells[라인넘버, 필드넘버1],
StringGrid.Cells[라인넘버, 필드넘버2],
....
StringGrid.Cells[라인넘버, 필드넘버n]]);
이렇게 해주면 쉽게 해결이 될것 같은데요...