Private Function TTX_FILE()
dim DB as connection
dim RS as recordset
DB.open "DSN=연결할 DB", ["ID"] ,["Password"]
//값을 가져올 DB 열어주고
strsql = "SELECT .......... "
//내가 원하는 레코드셋을 추출해줄 쿼리문
RS.Open strsql, DB, adOpenDynamic, adLockReadOnly
//뒤의 두 개는 원하시는 값을 선택하시면 되구요
hResult = CreateFieldDefFile(RS, strPath & "\ttx파일이름.ttx" , true)
// 가장 중요한 부분 (대소문자 구문 확실하게 하셔서 쓰세요)
// 저 함수를 쓰기 위해서는
// Declare Function CreateFieldDefFile Lib "p2smon.dll" (lpunk As Object, ByVal filename As String, ByVal bOverWriteExistingFile As Long) As Long
// 위의 선언이 필요합니다.
// 리턴값(hResult)이 1이면 지정한 경로에 ttx파일이 만들어져 있을 거에요.
report.Database.Table(1).SetDataSource RS, 3
// dim report AS New crViewer (crViewer는 폼에 배치한 crystal report viewer 이름입니다)
// 맨뒤의 3은 그냥 "3"을 써주라고 하더라구요
마지막으로 레코드셋이랑 DB닫아주시면 됩니다
End Function
2. 좀 더 손쉬운 .. CR 에서 TTX 파일 만드는 방법
크리스탈 레포트 실행시키신 다음 "Database Expert"를 누르시면 왼쪽 "Available Data Sources"에 쭉쭉 리스트가 뜨실겁니다
그 중 "Create New Connection"을 선택하신 다음 "Field Definitions Only"이라는 메뉴를 선택하세요
그럼 기존의 TTX 파일을 찾을 수 있는 버튼과 새로 생성시킬 수 있는 [Create File]라는 버튼이 있을거에요
[Create File..]을 누르신 다음 원하는 형태의 테이블을 정의해 주시면 됩니다.
예) Field Name : szName
Field Type : string(string 의 경우 옆에 크기를 지정하는 칸이 생겨요) 255
Sample Data : Devpia(넣어도 그만 안 넣어도 그만)
하나의 필드 설정이 끝났다면 [Add]를 누른다음 다음 필드 정의를 하시면 되겠죠
설정이 모두 끝났다면 [File]->[Save As]로 원하는 곳에 저장을 해주시고 [Exit]로 나오시면 됩니다
그럼 TTX 파일이 원하는 곳에 생성되어 있을 거에요.
이 경우, 만드신 TTX 파일을 바로 레포트에서 확인하실 수 있으니 확실하게 필드 정의만 되어있다면 아주 편한 방법입니다.
** 저두 초보라 설명이 어설픕니다. 혹시 이해안되시는 부분있으면 다시 질문 올려주세요
즐프하세요~