Bir veri akışı bileşeni için bir kullanıcı arabirimi geliştirme
Bileşen geliştiricileri görüntülenen bir bileşen için özel kullanıcı arabirim sağlayabilir Business Intelligence Development Studio bileşenin ne zaman düzenlenen.Bileşen eklenen veya silinen veri akışı görevi ve bileşen için Yardım istenildiğinde özel kullanıcı arabirim uygulama, bildirim sağlar.
Bileşeniniz için özel kullanıcı arabirim belirtmezseniz, kullanıcılar hala bileşen ve özel özellikleri Gelişmiş Düzenleyicisi'ni kullanarak yapılandırabilirsiniz.Gelişmiş düzenleyici kullanarak uygun şekilde özel özellik değerlerini düzenlemek kullanıcılar sağlar emin TypeConverter ve UITypeEditor özelliklerini IDTSCustomProperty100 uygun olduğunda.Daha fazla bilgi için "Özel özellikler oluşturma" konusuna bakın. in Tasarım -saat yöntemleri bir veri akışı bileşen.
UITypeName özelliği
Özel kullanıcı arabirim sağlamak için geliştirici gerekir küme UITypeName özellik DtsPipelineComponentAttribute uygulayan bir sınıf adını IDtsComponentUI arabirim.When this property is set by the component, SQL Server Integration Services loads and calls the custom user interface when the component is edited in SSIS Designer.
The UITypeName property is a comma-delimited string that identifies the fully qualified name of the type.Aşağıdaki liste, sırasıyla türünü tanımlayan öğeleri gösterir:
Tür adı
Derleme adı
Dosya sürüm
Kültür
Ortak anahtar belirteci
Aşağıdaki kod örneği, bir sınıfın türetildiği gösterir PipelineComponent belirtir ve taban sınıfı UITypeName özellik.
[DtsPipelineComponent(
DisplayName="SampleComponent",
UITypeName="MyNamespace.MyComponentUIClassName,MyAssemblyName,Version=1.0.0.0,Culture=neutral,PublicKeyToken=abcd...",
ComponentType = ComponentType.Transform)]
public class SampleComponent : PipelineComponent
{
//TODO: Implement the component here.
}
<DtsPipelineComponent(DisplayName="SampleComponent", _
UITypeName="MyNamespace.MyComponentUIClassName,MyAssemblyName,Version=1.0.0.0,Culture=neutral,PublicKeyToken=abcd...", ComponentType=ComponentType.Transform)> _
Public Class SampleComponent
Inherits PipelineComponent
End Class
IDtsComponentUI arabirimini uygulayan
The IDtsComponentUI interface contains methods that SSIS Designer calls when a component is added, deleted, and edited.Bileşen geliştiricileri, bu yöntemlerin bileşen kullanıcılarıyla etkileşimde kendi uygulamasında kod sağlayabilir.
Bu sınıf genellikle uygulanır bir derleme bileşen ayrıdır.Ayrı bir derleme kullanımını gerekli olmasına karşın, bu geliştirici oluşturmak ve dağıtmak bileşeni ve birbirinden kullanıcı arabirim sağlar ve küçük bileşenin ikili parmak izini tutar.
Özel kullanıcı arabirim uygulama bileşeni geliştirici bileşen üzerinde daha fazla denetim içinde düzenlenmiş olarak verir SSIS Tasarımcısı.Örneğin, bir bileşeni koda ekleyebileceðiniz New bir bileşeni başlangıçta eklendiğinde çağrılan yöntem, veri akışı görevi ve kullanıcının başlangıç yapılandırmasını bileşen. rehberlik bir sihirbaz görüntüler
Uygulayan bir sınıf oluşturduktan sonra IDtsComponentUI arabirim, bileşeniyle kullanıcı etkileşimi yanıt kodu eklemeniz gerekir.The Initialize method provides the IDTSComponentMetaData100 interface of the component, and is called before the New and Edit methods.Bu başvuru özel üye değişkeninde saklanan ve bundan sonra bileşenin meta veriler değiştirmek için kullanılır.
Bir bileşeni ve değişiklikler kalıcı yapma değiştirme
The IDTSComponentMetaData100 interface is provided as a parameter to the Initialize method.Bu başvuru bir üye değişkeni kullanıcı arabirim kodu tarafından önbelleğe alınmış ve ardından yanıt olarak kullanıcı etkileşimi ile kullanıcı arabirim bileşeni değiştirmek için kullanılan.
Bileşen yoluyla değiştirebilseniz de IDTSComponentMetaData100 arabirim, onu oluşturmak daha iyi bir örnek , CManagedComponentWrapper kullanarak Instantiate yöntem.Doğrudan kullanarak bileşen düzenlediğinizde arabirim, bileşenin doğrulama güvenlik önlemlerinin atlayabilir.Tasarım - kullanmanın avantajısaat bileşen örneği CManagedComponentWrapper ise, bileşen it. yapılan değişiklikler üzerinde denetime sahip olun
Dönüş değeri Edit yöntem bir bileşenine yapılan değişiklikler kalıcı veya atılan olup olmadığını belirler.Ne zaman bu yöntem döndürür false, tüm değişiklikler göz ardı; trueBileşen değişiklikleri devam ederse ve paket kaydedilmesine gerek olarak işaretler.
Hizmetleri SSIS Tasarımcısı kullanma
The IServiceProvider parameter of the Initialize method provides access to the following services of SSIS Designer:
Hizmet |
Açıklama |
---|---|
[ T:Microsoft.SqlServer.Dts.Design.IDtsClipboardService ] |
Bileşeni bir kopyalama veya yapıştırma bir parçası olarak oluşturulup oluşturulmadığını belirlemek veya kesme/yapıştırma işlemi için kullanılır. |
[ T:Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionService ] |
Varolan bağlantıları erişmek veya paket içinde yeni bağlantı oluşturmak için kullanılır. |
[ T:Microsoft.SqlServer.Dts.Design.IErrorCollectionService ] |
Tüm hatalar ve uyarılar yalnızca son hata alma veya uyarı yerine bileşen tarafından harekete geçirilen yakalamak gerektiğinde veri akışı bileşenlerinden olayları yakalamak için kullanılır. |
[ T:Microsoft.SqlServer.Dts.Runtime.Design.IDtsVariableService ] |
Varolan değişkenleri erişmek veya yeni değişkenleri oluşturmak için kullanılan paket. |
[ T:Microsoft.SqlServer.Dts.Design.IDtsPipelineEnvironmentService ] |
Üst veri akışı görev erişmek için veri akışı bileşenlerini ve diğer veri akışı bileşenleri tarafından kullanılır.Bu özellik yavaş değiştirme boyut oluşturur ve gerektiği gibi ek veri akışı bileşenlerini bağlayan Sihirbazı gibi bir bileşenin geliştirmek için kullanılabilir. |
Bu hizmetleri bileşen geliştiricileri erişmek ve nesneleri oluşturma olanağı sağlamak paket bileşeninin yüklendiği içinde.
Örnek
Aşağıdaki kod örneği uygulayan özel kullanıcı arabirim sınıfı tümleştirme gösterir IDtsComponentUI arabirimi ve düzenleyici için bir bileşen olarak gören bir Windows formu
Özel kullanıcı arabirim sınıfı
Aşağıdaki kodda gösterildiği uygulayan sınıf IDtsComponentUI arabirim.The Edit method creates the component editor and then displays the form.Dönen değer formun bileşenine yapılan değişiklikler kalıcı olup olmadığını belirler.
using System;
using System.Windows.Forms;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Pipeline.Design;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
namespace Microsoft.Samples.SqlServer.Dts
{
public class SampleComponentUI : IDtsComponentUI
{
IDTSComponentMetaData100 md;
IServiceProvider sp;
public void Help(System.Windows.Forms.IWin32Window parentWindow)
{
}
public void New(System.Windows.Forms.IWin32Window parentWindow)
{
}
public void Delete(System.Windows.Forms.IWin32Window parentWindow)
{
}
public bool Edit(System.Windows.Forms.IWin32Window parentWindow, Variables vars, Connections cons)
{
// Create and display the form for the user interface.
SampleComponentUIForm componentEditor = new SampleComponentUIForm(cons, vars, md);
DialogResult result = componentEditor.ShowDialog(parentWindow);
if (result == DialogResult.OK)
return true;
return false;
}
public void Initialize(IDTSComponentMetaData100 dtsComponentMetadata, IServiceProvider serviceProvider)
{
// Store the component metadata.
this.md = dtsComponentMetadata;
}
}
}
Imports System
Imports System.Windows.Forms
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Pipeline.Design
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Namespace Microsoft.Samples.SqlServer.Dts
Public Class SampleComponentUI
Implements IDtsComponentUI
Private md As IDTSComponentMetaData100
Private sp As IServiceProvider
Public Sub Help(ByVal parentWindow As System.Windows.Forms.IWin32Window)
End Sub
Public Sub New(ByVal parentWindow As System.Windows.Forms.IWin32Window)
End Sub
Public Sub Delete(ByVal parentWindow As System.Windows.Forms.IWin32Window)
End Sub
Public Function Edit(ByVal parentWindow As System.Windows.Forms.IWin32Window, ByVal vars As Variables, ByVal cons As Connections) As Boolean
' Create and display the form for the user interface.
Dim componentEditor As SampleComponentUIForm = New SampleComponentUIForm(cons, vars, md)
Dim result As DialogResult = componentEditor.ShowDialog(parentWindow)
If result = DialogResult.OK Then
Return True
End If
Return False
End Function
Public Sub Initialize(ByVal dtsComponentMetadata As IDTSComponentMetaData100, ByVal serviceProvider As IServiceProvider)
Me.md = dtsComponentMetadata
End Sub
End Class
End Namespace
Özel Düzenleyicisi
Çağrı sırasında gösterilen Windows form uygulaması aşağıdaki kod gösterir Edit yöntem.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.Samples.SqlServer.Dts
{
public partial class SampleComponentUIForm : System.Windows.Forms.Form
{
private Connections connections;
private Variables variables;
private IDTSComponentMetaData100 metaData;
private CManagedComponentWrapper designTimeInstance;
private System.ComponentModel.IContainer components = null;
public SampleComponentUIForm( Connections cons, Variables vars, IDTSComponentMetaData100 md)
{
variables = vars;
connections = cons;
metaData = md;
}
private void btnOk_Click(object sender, System.EventArgs e)
{
if (designTimeInstance == null)
designTimeInstance = metaData.Instantiate();
designTimeInstance.SetComponentProperty( "CustomProperty", txtCustomPropertyValue.Text);
this.Close();
}
private void btnCancel_Click(object sender, System.EventArgs e)
{
this.Close();
}
}
}
Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime
Namespace Microsoft.Samples.SqlServer.Dts
Public Partial Class SampleComponentUIForm
Inherits System.Windows.Forms.Form
Private connections As Connections
Private variables As Variables
Private metaData As IDTSComponentMetaData100
Private designTimeInstance As CManagedComponentWrapper
Private components As System.ComponentModel.IContainer = Nothing
Public Sub New(ByVal cons As Connections, ByVal vars As Variables, ByVal md As IDTSComponentMetaData100)
variables = vars
connections = cons
metaData = md
End Sub
Private Sub btnOk_Click(ByVal sender As Object, ByVal e As System.EventArgs)
If designTimeInstance Is Nothing Then
designTimeInstance = metaData.Instantiate
End If
designTimeInstance.SetComponentProperty("CustomProperty", txtCustomPropertyValue.Text)
Me.Close
End Sub
Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Me.Close
End Sub
End Class
End Namespace
|