Kullanıcı arabirimi için özel görev geliştirme
Integration ServicesNesne modeli, kolayca özel bir kullanıcı arabirimi, sonra olabilir tümleşik ve görüntülenen görev oluşturma yeteneği özel görev geliştiriciler sağlar. SQL Server Veri Akışı Araçları (SSDT). Kullanıcı arabirimi kullanıcıya yararlı bilgiler sağlayabilir SSISTasarımcısı ve kılavuz kullanıcıların doğru özellikleri ve özel görevin ayarlarını yapılandırmak için.
Bir görev için özel kullanıcı arabirimi geliştirme iki önemli sınıfları kullanarak içerir. Aşağıdaki tabloda, bu sınıfları açıklar.
Sınıf |
Açıklama |
---|---|
Yönetilen bir görevi tanımlar ve Tasarım Zamanı bilgileri aracılığıyla özelliklerini denetlemek için nasıl sağlayan bir öznitelik SSISTasarımcısı görüntüler ve nesnesiyle etkileşim. |
|
Görev özel kullanıcı arabirimi ile ilişkilendirmek için görev tarafından kullanılan arabirim. |
Bu bölümde açıklar DtsTaskAttributeözniteliği ve IDtsTaskUIözel bir görev için kullanıcı arabirimi geliştirme ve nasıl oluşturulacağı, entegre, dağıtmak ve içinde görev hata ayıklama ile ilgili ayrıntıları sağlar arayüzü SSIStasarımcı.
SSISTasarımcı, görev için birden çok giriş noktası kullanıcı arabirimi sağlar: kullanıcı-ebilmek seçme düzenleme kısayol menüsünden görevi çift tıklatın veya tıklatın Show editörü özellik sayfasının altındaki bağlantı. Kullanıcı, bu giriş noktaları birini eriştiğinde SSISbulur ve görev kullanıcı arabirimi içeren derleme yükler. Özellikler iletişim kutusu oluşturma kullanıcıya görüntülenen görev kullanıcı arabirimi sorumludur SQL Server Veri Akışı Araçları (SSDT).
Görev ve kullanıcı arabirimi ayrı varlıklardır. Yerelleştirme, dağıtım ve bakım çalışmaları azaltmak için ayrı derlemelerde uygulanmalıdır. Görev dll yüklenemedi, çağrı veya genel kullanıcı arabirimi, içerdiği bilgiler haricinde herhangi bir bilgi içeren DtsTaskAttributeöznitelik değerleri görevi kodlu. Görev ve kullanıcı arabirimi ilişkili tek yolu budur.
DtsTask özniteliği
DtsTaskAttributeÖzniteliği bir görev kullanıcı arabirimi ile ilişkilendirmek için görev sınıf kodu dahil. SSISTasarımcısı kullanır öznitelik özelliklerini görev Tasarımcısı nasıl belirleneceği. Bu özellikleri, varsa görüntüleme ve simge adını içerir.
Aşağıdaki tablo özelliklerini açıklar DtsTaskAttributeözniteliği.
Özellik |
Açıklama |
---|---|
Görev akış denetimi araç kutusunda görüntüler. |
|
Görev Açıklaması (devralınan DtsLocalizableAttribute). Bu özellik araç ipuçlarında gösterilir. |
|
Görüntülenen simgeyi SSIStasarımcı. |
|
Kullandıysanız, bu değerleri ayarlayın DTSProductLevelnumaralandırma. Örneğin, RequiredProductLevel = DTSProductLevel.None. |
|
Tutar, ne zaman görevi teknik destek gerektiren durumlar için bilgi başvurun. |
|
Bir görev atar. |
|
Attribute.TypeID |
Türetilmiş bir sınıf içinde uygulanan zaman, bu öznitelik için bir benzersiz tanımlayıcı alır. Daha fazla bilgi için bkz: Attribute.TypeIDözelliğinde .NET Framework sınıf kitaplığı. |
Tarafından kullanılan derleme türü adı SSISDerleme yükleme için tasarımcı. Bu özellik, görev için kullanıcı arabirimi derleme bulmak için kullanılır. |
Aşağıdaki kod örneği gösterildiği DtsTaskAttributeo-cekti bakmak gibi sınıf tanımının üzerinde kodlu.
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SSIS.Samples
{
[DtsTask
(
DisplayName = "MyTask",
IconResource = "MyTask.MyTaskIcon.ico",
UITypeName = "My Custom Task," +
"Version=1.0.0.0," +
"Culture = Neutral," +
"PublicKeyToken = 12345abc6789de01",
TaskType = "PackageMaintenance",
TaskContact = "MyTask; company name; any other information",
RequiredProductLevel = DTSProductLevel.None
)]
public class MyTask : Task
{
// Your code here.
}
}
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SSIS.Samples
{
[DtsTask
(
DisplayName = "MyTask",
IconResource = "MyTask.MyTaskIcon.ico",
UITypeName = "My Custom Task," +
"Version=1.0.0.0," +
"Culture = Neutral," +
"PublicKeyToken = 12345abc6789de01",
TaskType = "PackageMaintenance",
TaskContact = "MyTask; company name; any other information",
RequiredProductLevel = DTSProductLevel.None
)]
public class MyTask : Task
{
// Your code here.
}
}
Imports System
Imports Microsoft.SqlServer.Dts.Runtime
<DtsTask(DisplayName:="MyTask", _
IconResource:="MyTask.MyTaskIcon.ico", _
UITypeName:="My Custom Task," & _
"Version=1.0.0.0,Culture=Neutral," & _
"PublicKeyToken=12345abc6789de01", _
TaskType:="PackageMaintenance", _
TaskContact:="MyTask; company name; any other information", _
RequiredProductLevel:=DTSProductLevel.None)> _
Public Class MyTask
Inherits Task
' Your code here.
End Class 'MyTask
Imports System
Imports Microsoft.SqlServer.Dts.Runtime
<DtsTask(DisplayName:="MyTask", _
IconResource:="MyTask.MyTaskIcon.ico", _
UITypeName:="My Custom Task," & _
"Version=1.0.0.0,Culture=Neutral," & _
"PublicKeyToken=12345abc6789de01", _
TaskType:="PackageMaintenance", _
TaskContact:="MyTask; company name; any other information", _
RequiredProductLevel:=DTSProductLevel.None)> _
Public Class MyTask
Inherits Task
' Your code here.
End Class 'MyTask
SSISTasarımcısı kullanır UITypeNameDerleme adı, tür adı, sürüm, Kültür ve derleme genel derleme önbelleği (gac) bulun ve tasarımcı tarafından kullanılacak yük için ortak anahtar belirteci içeren öznitelik özelliği.
Derleme bulunduğu kaldıktan sonra SSISTasarımcısı özniteliğinde görev hakkındaki ek bilgileri görüntülemek için diğer özellikleri kullanır SSIStasarımcı, ad, simge ve görevin açıklamasını gibi.
DisplayName, Description, Ve IconResourceözelliklerini belirtmek nasıl görev kullanıcıya sunulur. IconResourceÖzelliği, kullanıcı arabirimi derleme katıştırılmış simge kaynak kimliğini içerir. Tasarımcı kimliği simge kaynak montaj yükler ve görev için bir paket eklendiğinde araç ve tasarımcı yüzey üzerinde görev adının yanındaki görüntüler. Bir görevi bir simge kaynağının sağlamıyorsa, tasarımcı görev için varsayılan simge kullanır.
IDtsTaskUI arabirimi
IDtsTaskUIArabirim yöntemleri ve özellikleri adlandırılan koleksiyon tanımlar SSISbaşlatmak ve görevle ilişkili kullanıcı arabirimi görüntülemek için tasarımcı. Ne zaman kullanıcı arabirimi için göreve çağrılan, tasarımcı aramaları Initializeyöntemi, o yazdı görev kullanıcı arabirimi tarafından uygulanan ve daha sonra sağlar TaskHostve Connectionsgörev ve paket, sırasıyla, parametre olarak. Bu koleksiyonlar yerel olarak saklanır ve daha sonra da kullanılan GetViewyöntemi.
Tasarımcı aramaları GetViewyöntemi, görüntülenen pencere istemek için SSIStasarımcı. Görevin görev kullanıcı arabirimi içerir ve kullanıcı arabirimi görüntülemek için tasarımcı döner pencerede bir örneğini oluşturur. Genellikle, TaskHostve Connectionsnesneleri sağlanan için bir aşırı yüklenmiş kurucu penceresinde görev yapılandırmak için kullanılabilir.
SSISTasarımcısı arama GetViewgörevin görev kullanıcı arabirimi görüntülemek için kullanıcı Arabirimi yöntemi. Görev kullanıcı arabirimi Windows form Bu yöntemden verir ve SSISTasarımcısı bu form kalıcı iletişim kutusu olarak gösterilir. Form kapatıldığında, SSISTasarımcısı inceliyor değeri DialogResultözelliği olup görevi değiştirildi ve bu değişikliklerin kaydedilmesi gereken eğer belirlemek için formun. Eğer değeri DialogResultözelliği OK, SSISTasarımcısı aramalar; değişiklikleri kaydetmek için görevi sürdürme yöntemleri Aksi takdirde, değişiklikler atılır.
Aşağıdaki kod örneği Implements IDtsTaskUIarayüz ve SampleTaskForm adlı bir Windows form sınıfının varlığını varsayar.
using System;
using System.Windows.Forms;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Design;
namespace Sample
{
public class HelloWorldTaskUI : IDtsTaskUI
{
TaskHost taskHost;
Connections connections;
public void Initialize(TaskHost taskHost, IServiceProvider serviceProvider)
{
this.taskHost = taskHost;
IDtsConnectionService cs = serviceProvider.GetService
( typeof( IDtsConnectionService ) ) as IDtsConnectionService;
this.connections = cs.GetConnections();
}
public ContainerControl GetView()
{
return new HelloWorldTaskForm(this.taskHost, this.connections);
}
public void Delete(IWin32Window parentWindow)
{
}
public void New(IWin32Window parentWindow)
{
}
}
}
using System;
using System.Windows.Forms;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Design;
namespace Sample
{
public class HelloWorldTaskUI : IDtsTaskUI
{
TaskHost taskHost;
Connections connections;
public void Initialize(TaskHost taskHost, IServiceProvider serviceProvider)
{
this.taskHost = taskHost;
IDtsConnectionService cs = serviceProvider.GetService
( typeof( IDtsConnectionService ) ) as IDtsConnectionService;
this.connections = cs.GetConnections();
}
public ContainerControl GetView()
{
return new HelloWorldTaskForm(this.taskHost, this.connections);
}
public void Delete(IWin32Window parentWindow)
{
}
public void New(IWin32Window parentWindow)
{
}
}
}
Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Design
Imports System.Windows.Forms
Public Class HelloWorldTaskUI
Implements IDtsTaskUI
Dim taskHost As TaskHost
Dim connections As Connections
Public Sub Initialize(ByVal taskHost As TaskHost, ByVal serviceProvider As IServiceProvider) _
Implements IDtsTaskUI.Initialize
Dim cs As IDtsConnectionService
Me.taskHost = taskHost
cs = DirectCast(serviceProvider.GetService(GetType(IDtsConnectionService)), IDtsConnectionService)
Me.connections = cs.GetConnections()
End Sub
Public Function GetView() As ContainerControl _
Implements IDtsTaskUI.GetView
Return New HelloWorldTaskForm(Me.taskHost, Me.connections)
End Function
Public Sub Delete(ByVal parentWindow As IWin32Window) _
Implements IDtsTaskUI.Delete
End Sub
Public Sub [New](ByVal parentWindow As IWin32Window) _
Implements IDtsTaskUI.[New]
End Sub
End Class
Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Design
Imports System.Windows.Forms
Public Class HelloWorldTaskUI
Implements IDtsTaskUI
Dim taskHost As TaskHost
Dim connections As Connections
Public Sub Initialize(ByVal taskHost As TaskHost, ByVal serviceProvider As IServiceProvider) _
Implements IDtsTaskUI.Initialize
Dim cs As IDtsConnectionService
Me.taskHost = taskHost
cs = DirectCast(serviceProvider.GetService(GetType(IDtsConnectionService)), IDtsConnectionService)
Me.connections = cs.GetConnections()
End Sub
Public Function GetView() As ContainerControl _
Implements IDtsTaskUI.GetView
Return New HelloWorldTaskForm(Me.taskHost, Me.connections)
End Function
Public Sub Delete(ByVal parentWindow As IWin32Window) _
Implements IDtsTaskUI.Delete
End Sub
Public Sub [New](ByVal parentWindow As IWin32Window) _
Implements IDtsTaskUI.[New]
End Sub
End Class
|