Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
SSIS Integration Runtime v rámci Azure Data Factory
Data, která jsou transformována balíčky integračních služeb, často mají jako konečnou cílovou kartu tištěnou zprávu. Jmenný prostor System.Drawing.Printing v Microsoft .NET Frameworku poskytuje třídy pro práci s tiskárnami.
Note
Pokud chcete vytvořit úkol, který lze snadněji znovu použít napříč více balíčky, zvažte použití kódu v tomto ukázkovém skriptu úlohy jako výchozího bodu pro vlastní úkol. Další informace naleznete v tématu Vývoj vlastníhoúloh .
Description
Následující příklad lokalizuje tiskárny nainstalované na serveru, které podporují papír v legální velikosti (jak se používá ve USA). Kód pro kontrolu podporovaných velikostí papíru je zapouzdřen v soukromé funkci. Aby bylo možné sledovat průběh skriptu při kontrole nastavení každé tiskárny, skript využívá Log tuto metodu k vyvolání informační zprávy tiskárnám s papírem legální velikosti a k upozornění tiskárnám bez papíru s legální velikostí. Tyto zprávy se objevují v okně Output v IDE Microsoft Visual Studio Tools for Applications (VSTA) při spuštění balíčku v designéru.
Pro konfiguraci tohoto příkladu Script Task
Vytvořte proměnnou pojmenovanou
PrinterListtypem Object.Na stránce Script v Editoru úloh skriptů přidejte tuto proměnnou do vlastnosti ReadWriteVariables.
V projektu skriptů přidejte odkaz na jmenný prostor System.Drawing .
Ve svém kódu použijte příkazy Imports k importu jmenných prostorů System.Collections a System.Drawing.Printing .
Code
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;
}