|
강연화 님이 쓰신 글 :
: 안녕하십니까?
: 저는 ㈜에이알테크놀로지에 근무하는 강연화입니다.
: 저희 회사는 정보통신부 조달사무소가 발주하고, SK건설이 시공하는 위성전파감시센터 신축공사의 소프트웨어/DB 설계 부문을 담당하고 있는 회사입니다.
:
: 전파감시시스템의 기능별 수행결과를 보고서 형태로 출력하는 프로그램을 vc++로 구현하는데 있어 어려운 점이 생겨 자문을 구하고자 합니다.
: 전파감시운용자가 c프로그램에 제출기관 및 대상위성망 및 수신기관 정보를 입력하면
: 아래아(HWP) 및 MS-Word file의 보고서 형태(기본 보고서 튤의 빈칸에 입력한 정보가 채워지는 보고서)로 구현이 되어야 하는데, 이것을 어떻게 서로 연동시킬 수 있을지 해결방법을 찾고 있습니다.
:
: 바쁘신 와중에 폐를 끼치게 된 점 대단히 죄송하며, 방법을 알려주시길 부탁드립니다.
: 저의 e-mail은 yh5835@hanmail.net이며, 전화는 042-863-8660, FAX는 042-863-3680입니다.
: 감사합니다.
:
:
아마 NMS프로그램 중 일부를 지워하시는것 같군요..
저두 NMS쪽 프로그램을 하는 프로그램머 입니다.
우선 제가 생각할수 있는 방법은 두가지 정도 이군요..
1번째는 생짜로 노가다를 하는 것이구
2번째는 크리스탈 리포트같은 OCX를 사용하는 것이지요.
일단 VC에서 크리스탈 리포트를 사용하는 2번째 방법에
대해서 먼저 설명 드리죠...
[선결사항 입니다]
우선 님이 데이터를 받으셔서 일정한 파일네임을 부여해서 저장을 하셔야 겠지요.
아마도 NMS에서는 일/월/년 등 여러가지 옵션으로 데이터를 출력해 보니까요
[크리스탈 리포트를 사용하기 위해]
"Project-->Add to project-->Components and Controls"를 선택합니다
그러면, 켈러리 창이 뜹니다! (vb++6.0의 경우...)
여기에서 "Registered ActiveX Controls" 를 선택하고, "Crystal Report Control 4.6 "을 선택합니다.
그러면, default 로 "crystalctrl" .h 와 .cpp를 만들어 줄 겁니다!
리포트를 사용 할 폼뷰의 header file(.h) 에 crystalctrl.h 를 include 시키고
멤버 변수로서 다음과 같이 "CCrystalCtrl rep;" 선언합니다.
그리고 다음과 같이 실행시키면, 리포트가 실행 됩니다.
(출력방향은 기본으로 화면입니다)
//소스
void CTest1View::OnButton1()
{
// TODO: Add your control notification handler code here
LPCTSTR path = _T("결시자명단.rpt"); //리포트명
RECT rect; //리포트 크기 지정
rect.top = 10;
rect.bottom = 10;
rect.bottom = 100;
rect.right = 100;
rep.Create ("report1", 1, rect, this, 100); //리포트를 생성합니다
rep.SetReportFileName(path); //사용할 리포트의 full name을 셋합니다
rep.PrintReport(); //리포트를 실행 시킵니다
}
//위 에서 사용 한 Create 함수의 선언은 다음과 같습니다!
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CFile* pPersist = NULL, BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL)
크리스탈 리포트에서 지원하는 멤버 함수들은 "crystalctrl.h" 파일에
모두 선언되어 있으므로 참고 하시면 더 세밀하게 리포트를 컨트롤 하실 수 있을겁니다!
이러한 형태로 파일에서 원하시는 데이터 부분을 리포트의 컨트롤들을 이용해서 특정부분에
삽입하면 되겠죠...
그리구 첯번째 방법의 노가다도 비슷한 형태로 작업을 하죠.
미리 그리드나 리스트등을 이용해서 기본 폼을 만들어 놓고 파일에서 데이터를
읽어서 해당부분에 임포트 시키면 됩니다.
너무 간단하게 말씀을 드렸나요...
도움이 되셨으면 좋겠네요...
|