2011-07-01 5 views
0

레거시 MFC C++ 응용 프로그램 (VS2005)을 지원하며 일부 SSRS 보고서 (MS Reporting Services)를 호출하려고합니다. 나는 MS Report Viewer 컨트롤을 사용하기를 바랬지 만 .Net에서만 작동합니다. 나는 몇 가지 아이디어를 생각해 냈지만, 나는 기존의 지식에 반하는 생각을 계속하고있다. 나는 두 번째 의견을 얻기를 바라고있다.MS ReportViewer with MFC 사용

이미 보고서 서버 설정 (원격 서버 처리)이 있습니다. 이 MFC 애플리케이션에서 직접 보고서를 호출하는 것이 좋습니다 (예 : 고객에 대한 요약 보고서 표시). 지금 현재 URL에 매개 변수가있는 Internet Explorer를 직접 호출하고 있습니다. 간단하지만 작동하지만 다소 제한적입니다. 예를 들어 프린터 옵션을 설정할 수 없습니다.

우리 프로젝트가/clr 옵션으로 컴파일되지 않는다는 것을 언급 할 것입니다 - 우리는 몇몇 타사 라이브러리를 사용합니다. 그리고 그들과 다른 것들 사이에 너무 많은 링크 오류가 발생합니다. 이 프로젝트로 작업을 시도하는 것은 현실적으로 불가능합니다.

ReportViewer를 래핑하고 간단한 명령 줄 옵션 (서버, 보고서 이름)을 통해 제어하는 ​​간단한 C# 응용 프로그램을 만드는 아이디어가 떠 올랐습니다. 그러나 이것은 매개 변수에 너무 도움이되지 않습니다. 매개 변수를 보내는 방법을 생각해 내야합니다. 그러면 래퍼 프로그램에서 매개 변수를 파싱해야합니다.

dll을 호출하고 MFC에서 호출하지만 매개 변수와 동일한 문제가 다시 발생할 것이라고 계속 생각합니다.

MFC 버전의 보고서 뷰어가있는 경우 정말 좋겠지 만 온라인에서 수행 한 검색은 아무 것도 표시되지 않습니다. 샘플 C# 프로그램에서 적절한 호출을하기 위해 필요한 모든 것을 알아내는 데는 시간이 걸렸습니다. 누구든지 어떤 제안이 있습니까?

+0

당신이 브라우저 컨트롤을 사용할 수 있습니다 "경로"문자열을 읽고, 다음 보고서에 URL을 전달? –

+0

케이트 - 게시 해 주셔서 감사합니다! 브라우저를 제어하는 ​​것이 IE를 직접 호출하는 것과 거의 똑같은가? –

답변

0

나는 지금 당장 Internet Explorer를 직접 호출하기로 결정했습니다. 누군가 IE를 직접 호출하는 방법을 궁금해하는 경우 레지스트리에서 문자열로의 경로를 읽고 끝에 "/iexplore.exe"를 추가하십시오.

해당 위치에서
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE