Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
SSIS Integration Runtime i Azure Data Factory
Data som transformeras av Integration Services-paket har ofta en utskriven rapport som slutdestination. System.Drawing.Printing-namnrymden i Microsoft .NET Framework tillhandahåller klasser för arbete med skrivare.
Note
Om du vill skapa en uppgift som du lättare kan återanvända över flera paket, överväg att använda koden i detta Script-uppgiftsexempel som utgångspunkt för en anpassad uppgift. Mer information finns i Utveckla en anpassad uppgift.
Description
Följande exempel hittar skrivare installerade på servern som stödjer lagligt format papper (som används i United States). Koden för att kontrollera stödda pappersstorlekar är inkapslad i en privat funktion. För att du ska kunna följa skriptets framsteg när det kontrollerar inställningarna för varje skrivare, använder skriptet metoden Log för att skicka ett informationsmeddelande för skrivare med lagligt papper och för att ge en varning för skrivare utan lagligt storlekspapper. Dessa meddelanden visas i utdatafönstret i Microsoft Visual Studio Tools for Applications (VSTA)-IDE:n när du kör paketet i designern.
För att konfigurera detta exempel på Script Task
Skapa variabeln med typen
PrinterListObject.På Script-sidan i Script Task Editor, lägg till denna variabel i egenskapen ReadWriteVariables.
I skriptprojektet, lägg till en referens till System.Drawing-namnrymden .
Använd Imports satser i din kod för att importera System.Collections och System.Drawing.Printing-namnrymderna .
Kod
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;
}