Integration Services 패키지에서 변환된 데이터의 최종 대상은 인쇄된 보고서인 경우가 종종 있습니다.
System.Drawing.Printing Microsoft .NET Framework의 네임스페이스는 프린터 작업을 위한 클래스를 제공합니다.
참고 항목
여러 패키지에서 더 쉽게 다시 사용할 수 있는 작업을 만들려면 이 스크립트 태스크 샘플의 코드를 사용자 지정 작업의 시작점으로 사용하는 것이 좋습니다. 자세한 내용은 사용자 지정 작업 개발을 참조하세요.
설명
다음 예제에서는 법적 크기 용지(미국 사용됨)를 지원하는 서버에 설치된 프린터를 찾습니다. 지원되는 용지 크기를 확인하는 코드는 프라이빗 함수에 캡슐화되어 있습니다. 각 프린터의 설정을 검사할 때 스크립트의 진행률을 추적할 수 있도록 스크립트는 이 방법을 사용하여 Log 법적 크기 용지가 있는 프린터에 대한 정보 메시지를 발생시키고 법적 크기 용지가 없는 프린터에 대한 경고를 발생합니다. 관련 메시지는 디자이너에서 패키지를 실행할 때 Microsoft VSTA(Visual Studio Tools for Applications) IDE의 출력 창에 나타납니다.
이 스크립트 태스크 예제를 구성하려면
형식
PrinterList으로 명명된Object변수를 만듭니다.스크립트 태스크 편집기의 스크립트 페이지에서 ReadWriteVariables 속성에 이 변수를 추가합니다.
스크립트 프로젝트에서 System.Drawing 네임스페이스에 대한 참조를 추가합니다.
코드에서 문을 사용하여
ImportsSystem.CollectionsSystem.Drawing.Printing가져옵니다.
코드
Public Sub Main()
Dim printerName As String
Dim currentPrinter As New PrinterSettings
Dim size As PaperSize
Dim printerList As New ArrayList
For Each printerName In PrinterSettings.InstalledPrinters
currentPrinter.PrinterName = printerName
If PrinterHasLegalPaper(currentPrinter) Then
printerList.Add(printerName)
Dts.Events.FireInformation(0, "Example", _
"Printer " & printerName & " has legal paper.", _
String.Empty, 0, False)
Else
Dts.Events.FireWarning(0, "Example", _
"Printer " & printerName & " DOES NOT have legal paper.", _
String.Empty, 0)
End If
Next
Dts.Variables("PrinterList").Value = printerList
Dts.TaskResult = ScriptResults.Success
End Sub
Private Function PrinterHasLegalPaper( _
ByVal thisPrinter As PrinterSettings) As Boolean
Dim size As PaperSize
Dim hasLegal As Boolean = False
For Each size In thisPrinter.PaperSizes
If size.Kind = PaperKind.Legal Then
hasLegal = True
End If
Next
Return hasLegal
End Function
public void Main()
{
PrinterSettings currentPrinter = new PrinterSettings();
PaperSize size;
Boolean Flag = false;
ArrayList printerList = new ArrayList();
foreach (string printerName in PrinterSettings.InstalledPrinters)
{
currentPrinter.PrinterName = printerName;
if (PrinterHasLegalPaper(currentPrinter))
{
printerList.Add(printerName);
Dts.Events.FireInformation(0, "Example", "Printer " + printerName + " has legal paper.", String.Empty, 0, ref Flag);
}
else
{
Dts.Events.FireWarning(0, "Example", "Printer " + printerName + " DOES NOT have legal paper.", String.Empty, 0);
}
}
Dts.Variables["PrinterList"].Value = printerList;
Dts.TaskResult = (int)ScriptResults.Success;
}
private bool PrinterHasLegalPaper(PrinterSettings thisPrinter)
{
bool hasLegal = false;
foreach (PaperSize size in thisPrinter.PaperSizes)
{
if (size.Kind == PaperKind.Legal)
{
hasLegal = true;
}
}
return hasLegal;
}
Integration Services를 사용하여 최신 상태 유지
Microsoft의 최신 다운로드, 문서, 샘플 및 비디오와 커뮤니티에서 선택한 솔루션은 MSDN의 Integration Services 페이지를 방문하세요.
MSDN의 Integration Services 페이지 방문
이러한 업데이트에 대한 자동 알림을 보려면 페이지에서 사용할 수 있는 RSS 피드를 구독합니다.