안녕하십니까? 전봉수 입니다.
DB 테이블에서 공종코드(Mcode)를 축출하여 건수를 스트링그리드셀에 뿌려주는 작업인데요
건수를 추출하고나서 추출된 셀위에 마우스를 위치하고 클릭하면 접수내용(Nayong) 내용을
보려고합니다.
예를들어 추출된 셀값이 5이면 접수내용(Nayong)eh 5가지가 보여야 되겠죠?
좌표와 셀값은 델마당 검색을 통하여 입수를 하였는데 셀 내용을 보여주는 루턴은 아무리
찿아봐도 없는것 같아서 질문을 드립니다. 꼭좀 부탁드립니다.
여러분의 답변을 듲고 아래와같이 코팅을하여 결과를보니 숫자가 있는셀이든 없는셀이든
추출된 DB의 첫번째 내용만 보여주네요.
숫자가 있는셀만 숫자만큼 접수내용을 보여주는것을 완성해하는데 걱정비네요.
한번더 기회를 주십시요 답변 기다리겠습니다.
var
MiChJoForm: TMiChJoForm;
COUNT : INTEGER;
// 전역변수
sText,sDBText: String;
col, row : integer;
implementation
USES CALLU, GOCOMU, MiChJop;
// 셀 내용출력함수
PROCEDURE TMiChJoForm.MiChJO1_DATA(SENDER: TOBJECT);
BEGIN
sDBText := StringGrid1.Cells[col,row]; // 여기값은 X필드의 값
WITH QR_MiChJo1 DO
BEGIN
CLOSE;
SQL.Clear;
SQL.ADD('SELECT A.* , B.Mname, C.Yname, D.Hname, E.Sname '+
' FROM Jaryo A,Mich B,Yhng C,Chury D,Singo E '+
' Where '+
' A.Mcode = B.Mcode AND A.Ycode = C.Ycode AND '+
' A.Hcode = D.Hcode AND A.Scode = E.Scode '+
' Order BY A.Mcode');
END;
End;
// 스트링그리드1 마우스 클릭시 셀값 좌표확인
procedure TMiChJoForm.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin
Col := StringGrid1.Col; // 행
Row := StringGrid1.Row; // 열
sText := StringGrid1.Cells[Col,Row];
sDBText:='';
if StringGrid1.Col = 1 then
begin
QR_MiChJo1.Close;
MichJo1_DATA(SENDER);
QR_MiChJo1.Open;
if not QR_MiChJo1.EoF then
begin
sDBText :=
sDBText + QR_MiChJo1.FieldByName('Nayong').AsString + #13#10;
QR_MiChJo1.Next;
ShowMessage('StringGird의 정보: ('+IntToStr(Col)+','+IntToStr(Row)+') 값: ' + sText + #13#10 + ' DB정보: ' + #13#10 + sDBText);
end
else
ShowMessage('매칭되는 DB값이 없습니다.');
End
Else
if StringGrid1.Col = 5 then
begin
QR_MiChJo1.Close;
MichJo1_DATA(SENDER);
QR_MiChJo1.Open;
if not QR_MiChJo1.EoF then
begin
sDBText :=
sDBText + QR_MiChJo1.FieldByName('Nayong').AsString + #13#10;
QR_MiChJo1.Next;
ShowMessage('StringGird의 정보: ('+IntToStr(Col)+','+IntToStr(Row)+') 값: ' + sText + #13#10 + ' DB정보: ' + #13#10 + sDBText);
end
else
ShowMessage('매칭되는 DB값이 없습니다.');
End
Else
if StringGrid1.Col = 10 then
begin
QR_MiChJo1.Close;
MichJo1_DATA(SENDER);
QR_MiChJo1.Open;
if not QR_MiChJo1.EoF then
begin
sDBText :=
sDBText + QR_MiChJo1.FieldByName('Nayong').AsString + #13#10;
QR_MiChJo1.Next;
ShowMessage('StringGird의 정보: ('+IntToStr(Col)+','+IntToStr(Row)+') 값: ' + sText + #13#10 + ' DB정보: ' + #13#10 + sDBText);
end
else
ShowMessage('매칭되는 DB값이 없습니다.');
End;
// SHOWMESSAGE(QR_MichJo1.SQL.Text);
end;
if not QR_MiChJo1.EoF then
begin
while not QR_MiChJo1.EoF then
begin
sDBText := sDBText + QR_MiChJo1.FieldByName('Nayong').AsString + #13#10;
QR_MiChJo1.Next;
end;
ShowMessage('StringGird의 정보: ('+IntToStr(Col)+','+IntToStr(Row)+') 값: ' + sText + #13#10 + ' DB정보: ' + #13#10 + sDBText);
end