2014-02-25 4 views
1

독립 실행 형 프로그램으로 게시하는 VB.Net 프로그램이 있습니다. 프로그램에 보고서를 추가하고 싶습니다. 이상적으로는 VB.Net 형식의 보고서를 주 프로그램의 일부로 호출하여 열 수 있습니다. 따라서 양식을 작성하는 방법을 모르기 때문에 주 프로그램에서 양식을 열 수 있으며 주 프로그램에서 추가 된 양식을 호출하는 방법을 모르겠습니다.vb.net : 기존 프로그램에 첨부 파일로 vb.net 양식을 추가하려면 어떻게합니까?

자신의 프로그램처럼 추가 양식을 게시하고 싶지는 않습니다. 이상적으로, 나는 그들이 주 프로그램의 일부 였고 주 프로그램 내에서만 실행할 수있는 것처럼 보이고 행동하길 바란다.

나는 양식을 작성하여 DLL이나 그 프로그램을 특정 디렉토리에서 읽어 들인 다음 메인 프로그램의 하위 양식으로 열 수있는 유사한 것으로 저장한다고 생각하고있다. 또한 양식을 하나의 파일로 저장하도록 추가하고 싶습니다.

누군가 올바른 방향으로 나를 가리킬 수 있습니까?

감사합니다.

+0

그게 효과가있는 것 같습니다. 어떤 도움이 필요 하신가요? – Ccorock

+0

보고서를 작성하는 데는 두 가지 표준 방법이 있습니다. Crystal 보고서 (클라이언트 측 실행, 필요한 것 같음) 및 SSRS (보고 서비스, 서버 측, 많이 사용함)가 있습니다. 휠체어를 재발 명할 필요는 없습니다. 유혹을받을 수도 있지만. 당신이 바퀴를 다시 발명하는 것을 좋아한다면, 바퀴의 재발 명을 좋아하는 다른 사람들의 제 3 자 해결책을 사용하는 것을 먼저 고려하십시오. [Devexpress와 같은] (https://www.devexpress.com/Products/NET/Reporting/). – Neolisk

답변

0

도움 (사이비 코드)

희망 최대 작업 :

Private Sub open_report2() 

     Dim oType As System.Type 
     Dim oAssembly As System.Reflection.Assembly 
     Dim oObject As System.Object 
     oAssembly = Reflection.Assembly.LoadFrom("C:\VB.NET\report3\report3\bin\Debug\report3.exe") 
     oType = oAssembly.GetType("report3.r1") 
     oObject = Activator.CreateInstance(oType) 
     oObject.show() 
End Sub 

open_report2 Sub는 내 메인 프로그램에 있습니다.

내 보고서 프로그램에서 report3은 내 루트 네임 스페이스이고 r1은 표시 할 양식의 클래스 이름입니다.

0

MyReports라는 응용 프로그램을 만들고 해당 응용 프로그램에서 모든 양식을 만들 수 있습니다. 그런 다음 MyReports 응용 프로그램을 게시하십시오.

그런 다음 "주 프로그램"에서 MyReports.DLL이라는 DLL을 참조합니다. 당신의 새로운 양식을 추가하기 때문에

당신이 상속 될 보고서를 기반으로 새 양식을 만들 찾고 있다면 ... ADD ->New Item -> 왼쪽과 Inherited FormWindows Forms을 선택합니다. BROWSE을 누르고 MyReports에서 사용할 양식을 선택하십시오. 개인적으로 해본 적이 없지만 양식을 기반으로 양식을 만들어야합니다. 당신은 단순히 새로운 응용 프로그램 내 보고서를 표시하려면

는 인스턴스화 .... 그게 전부

Dim myCoolReport as new MyReports.CoolCoolReport 
myCoolReport.Show 

이 종료 코드

+0

조언 해 주셔서 감사합니다. 하지만 내 기본 프로그램을 컴파일 할 때 DLL이 없다면 DLL을 어떻게 참조합니까? 프로그램을 만들 때 참조를 추가하는 방법을 알고 있지만 기본적으로 폴더 나 다른 파일의 모든 파일을 읽고 개별적으로 열기를 원합니다. – user2721815

+0

인스턴스화가 필요한 것처럼 들리지만, 런타임에 DLL을 여는 방법에 대해 자세히 알아야합니다. – user2721815

관련 문제