Q&A

  • 엑셀로 전환시
화면에는 데이타베이스에서 가지고온 내용이 있고 그 내용을 엑셀에다가 뿌려주려고 합니다. 그런데 화면에 보여지는 내용만 보여지고 나머지의 자리에는 마지막 데이타내용이 반복되어서 나오는데 해결 방법이 없을까요?
엑셀 눌렀을 때 일어나는 부분 소스
TtsDBGrid(Form.Components[i]).CurrentDataRow := TtsDBGrid(Form.Components[i]).DataRownr[Row];
FieldValue := TtsDBGrid(Form.Components[i]).Cell[Cols, TtsDBGrid(Form.Components[i]).CurrentDataRow];
ExcelWorksheet1.Cells.Item[Row, Cols] := FieldValue;
1  COMMENTS
  • Profile
    김경록 2002.03.15 05:08
    필드의 내용을 가져오실때, 어떤 필드의 내용을 기준으로 가져오셨나하구
    생각해 보세여..
    님은 그 대상이 DBGrid이군여..
    Dataset기준으로 가져와 보세여..
    Dataset(Query, Table 컴포넌트)의 Fields[] 에 있는 갯수와
    DBGrid의 필드갯수가 다르다면,
    뭔가 출력될때 잘못되겠져?  DBGrid 기준으로 출력한다면?
    제가 코딩할때에는 이렇게 코딩을 합니다.
    저는 DBGrid에 있는 해당 Record의 Field가 가지는
    실제 Dataset의 Field명을 가져와서..
    Dataset의 Field명에 있는 실제 Data값을 가져옵니다..
    음.. 예제가 어디 있을텐데..
    찾아봐야겠군여..

    찾았네여.. 좀 시간 걸렸지만..
    도움되었으면 하네여..
    뭐 이런식으로 사용했읍니다.
    당연히
    Loop를 돌면서 했겠져?
    DataSet의 FieldCount나 DBGrid의 FieldCount를 가지고요..
    만약, DBGrid의 FieldCount를 가지고 Loop를 돌린다면,
    당연히, DataSet의 Field갯수와 DBGrid의 필수 갯수가 틀리다면,
    DBGrid의 필드갯수데로 나타나겠져?
    꺼구로 해도 마찬가지겠구여..
    그러니까, 먼저 어떤걸 기준으로 돌릴지는 님이 생각해보시는게 ^^;
    어쨌는 저는 아래 방법으로 코딩이 가능합니다.
    이것은 물론, 실제 업무에 사용한 방법입니다.
    답이 되었을런지 모르겠네여..

    aq_Query.FieldByName(ag_Grid.Fields[j-1].FieldName).DisplayText
    aq_Query.FieldByName(ag_Grid.Fields[j-1].FieldName).AsFloat


                최강의 프로그래머를 위하여~~~