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
Integration Services icon (small) Tümleştirme Hizmetleri ile güncel kalın

Karşıdan yüklemeler, makaleleri, örnekler ve en son Microsoft video yanı sıra, seçili topluluğun çözümleri için ziyaret Integration Services sayfa MSDN veya TechNet:

Bu güncelleştirmelerin otomatik bildirim için kullanılabilir RSS akışlarına abone olmak sayfa.