Bir veri akışı bileşeni için bir kullanıcı arabirim geliştirme
Görüntülenen bir bileşeni için bileşen geliştiricileri özel kullanıcı arabirim sağlayabilir Business Intelligence Development Studio bileşenin ne zaman düzenleniyor. Özel kullanıcı arabirim uygulayan bileşen eklenen veya silinen ve veri akışı görevden bileşen için Yardım istendiğinde bildirim da sağlar.
Bileşeniniz için özel kullanıcı arabirim sağlamazsanız, kullanıcılar hala bileşen ve özel özellikleri Gelişmiş düzenleyiciyi kullanarak yapılandırabilirsiniz.Gelişmiş düzenleyiciyi kullanarak uygun özel özellik deðerlerini düzenlemek, kullanıcılar izin verdiğinden emin TypeConverter() ve UITypeEditor() özelliklerini IDTSCustomProperty100 uygun olduğunda. Daha fazla bilgi için "Özel özellikler oluşturma" konusuna bakın. Tasarım saatı yöntemleri bir veri akışı bileşeni.
UITypeName özellik ayarlama
Özel kullanıcı arabirimi 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() özellik is a comma-delimited dize 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, den türetilmiş bir sınıf gösterir PipelineComponent sınıf temel ve belirtir 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 arabirim uygulama
The IDtsComponentUI arabirim contains methods that SSIS Designer calls when a component is added, deleted, and edited. Bileşen geliştiricileri, uygulama bu yöntemlerin bileşeninin kullanıcılarıyla etkileşimde kodu sağlar.
Bu sınıf, genellikle, bileşenden gelen ayrı bir derlemesinde uygulanır.Ayrı bir derleme kullanımını gerekli olmasa da, bu geliştirici oluşturmak ve bu bileşen ve birbirinden kullanıcı arabirim sağlar ve ikili Ayak izi'bileşeninin küçük kalmasını sağlar.
Özel kullanıcı arabirim uygulama geliştiricisi bileşen bileşeni üzerinden içinde düzenlenmiş olarak daha fazla denetim olanağı sağlar SSIS Tasarımcı. Örneğin, bir bileşen, kodu ekleyebilirsiniz New(IWin32Window) bir bileşeni başlangıçta eklendiğinde çağrılan yöntem bir veri akışı görevi ve bileşenin bir başlangıç yapılandırması ile kullanıcı kılavuzları bir sihirbaz görüntüler.
Uygulayan bir sınıf oluşturduktan sonra IDtsComponentUI arabirim, kullanıcı etkileşimi bileşeniyle yanıt kodu eklemeniz gerekir. The Initialize(IDTSComponentMetaData100, IServiceProvider) yöntem provides the IDTSComponentMetaData100 arabirim of the component, and is called before the New(IWin32Window) and Edit(IWin32Window, Variables, Connections) methods. Bu başvuru bir özel üye değişkeni ve bileşenin meta veriler bundan sonra değişiklik yapmak için kullanılan gerekir.
Bir bileşen ve değişiklikleri Persisting değiştirme
The IDTSComponentMetaData100 arabirim is provided as a parameter to the Initialize(IDTSComponentMetaData100, IServiceProvider) yöntem. Bu başvuru kullanıcı arabirim kodun bir üye değişkeni önbelleğe ve sonra kullanıcı arabirim ile kullanıcı etkileşimi için yanıt bileşeni değiştirmek için kullanılan.
Bileşen doğrudan ile değiştirebilirsiniz, ancak IDTSComponentMetaData100 arabirim oluşturmak daha iyi bir örnek, CManagedComponentWrapper kullanarak Instantiate() yöntem. Bileşen, arabirim kullanılarak doğrudan düzenlediğinizde bileşenin doğrulama güvenlik önlemlerinin atlama.Tasarım zamanı bileşeni örneğini kullanmanın yararı CManagedComponentWrapper bileşen için yapılan değişiklikleri bir denetime sahip olmak olur.
Dönüş değeri, Edit(IWin32Window, Variables, Connections) yöntem bir bileşenine yapılan değişiklikler kalıcı atıldı mı belirler. Bu yöntem döndürür. false, tüm değişiklikler atılır; true bileşen değişiklikleri devam ederse ve paket kaydedilmesine gerek olarak işaretler.
Hizmetleri tasarımcısının SSIS kullanma
The IServiceProvider parameter of the Initialize(IDTSComponentMetaData100, IServiceProvider) yöntem provides access to the following services of SSIS Designer:
Hizmet |
Açıklama |
---|---|
IDtsClipboardService |
Bileşen Kopyala/Yapıştır bir parçası olarak oluşturulup oluşturulmadığını belirlemek veya kesme/yapıştırma işlemi için kullanılır. |
IDtsConnectionService |
Varolan bağlantıları erişmeye veya paket içinde yeni bağlantı oluşturmak için kullanılır. |
IErrorCollectionService |
Tüm hatalar ve uyarılar yalnızca son hatayı veya uyarı yerine bileşen tarafından geçirilen yakalamak gerektiğinde olayların veri akışı bileşenlerinden yakalamak için kullanılır. |
IDtsVariableService |
Varolan değişkenleri erişmek veya yeni değişkenleri oluşturmak için kullanılan paket. |
IDtsPipelineEnvironmentService |
Ana veri akışı görevi erişmek için veri akışı bileşenleri ve diğer bileşenler, veri akışı tarafından kullanılan'i tıklatın.Bu özellik, bir bileşen gibi yavaş değiştirme boyut oluşturur ve gerektiği gibi ek veri akışı bileşenlerini bağlayan Sihirbazı'nı geliştirmek için kullanılabilir. |
Bu hizmetler, bileşen geliştiricileri erişmek ve bileşen yüklenen paket içinde nesne oluşturma olanağı sağlar.
Örnek
Aşağıdaki kod örneği, uygulayan özel kullanıcı arabirim sınıfı bütünleştirilmesi gösterir IDtsComponentUI arabirim ve bir bileşen için düzenleyici olarak hizmet veren bir Windows formu.
Özel kullanıcı arabirim sınıfı
Aşağıdaki kod uygulayan sınıfı gösterir IDtsComponentUI arabirim. The Edit(IWin32Window, Variables, Connections) yöntem creates the component editor and then displays the form. Dönüş değeri formun bileşen 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şağıdaki kod yapılan çağrı sırasında gösterilen bir Windows formu uygulaması gösterir Edit(IWin32Window, Variables, Connections) 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
|