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
Integration Services simgesi (küçük)Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve seçilen topluluk çözümleri yanı sıra Microsoft videolar için ziyaret Integration Services sayfa msdn veya TechNet:

Bu güncelleştirmelerle ilgili otomatik bildirim almak için, sayfadaki RSS akışlarına abone olun.