2011-10-31 22 views
0

我認爲問題的標題說明了一切。我正在開發SSIS的自定義數據流組件。我想使用一個複選框列表,它從集合中獲取它的值(列表,枚舉,...並不重要),併爲用戶提供檢查多個選項的可能性。 然後,我想要將這些列表作爲我的SSIS組件中的列表... 有人對此有何想法嗎?如何在定製SSIS數據流組件中使用複選框列表來定製屬性?

UPDATE

例如,我有一個包含{a,b,c,d}的列表。 (假設它是硬編碼的,儘管在實踐中我會將記錄從數據庫中提取出來)。

我想給用戶一個複選框,他可以從上面的列表中檢查a和c。

然後,我的組件中的屬性現在包含:{a,c}。

澄清

我有一個字符串列表。在我的用戶界面(如果可能的話,高級編輯器),我想創建一個組合框,其中的選項是列表中的字符串。

該組件具有字符串屬性。一旦用戶從組合框中做出選擇,就會創建一個包含選項的逗號分隔字符串並傳遞給組件並存儲在字符串屬性中。

我需要知道的是:

  • 如何建立在高級編輯的組合框(如果可能)字符串列表基於 ?
  • 如何從UI返回組件,然後 構建我的字符串?
+0

問題可能會說這一切,但我不知道它說什麼。 ;)你能提供一個你想要做什麼的例子嗎?輸入集合是一個靜態列表還是應該基於某些外部源? – billinkc

+0

好的。我只是用一個例子更新了這個問題。 – nche

+0

那麼像模糊查找的高級選項卡?將這些操作應用於數據流中的東西(可能是每列)?在組件開發方面,你在哪裏?你有很多經驗嗎? – billinkc

回答

2

我先回答第一個問題,第一:

  • 據我知道這是不可能做到這一點通高級編輯器,因爲你不能在託管它的定製UI控件;或者至少我不知道如何去做
  • 注意我寫了「custom」,因爲你問了多重選擇的組合框,並且這種控件在.NET中不可用;但有很多關於如何創建此類控制的Internet上的信息,如果您希望

這意味着您將必須develop UI form for Your component。要回答你的兩個問題,你需要檢查以下幾個部分這篇文章在:

  • 的設計時方法數據流組件 - 來看看如何自定義屬性添加到您的組件 - 你必須覆蓋ProvideComponentProperties方法
  • 開發一個用戶界面,用於數據流組件 - 來看看如何讓自定義用戶界面爲您的組件;您需要2個類:UI類(在您的組件中註冊)以及UI類中實例化和使用的UI表單;注意樣品(btnOK_Click處理)它表明你如何從UI使用SetCustomProperty方法
  • 驗證數據流組件保存屬性值組件本身 - 檢查驗證實施情況,看看如何從組件訪問財產 - 的使用CustomPropertyCollection組件元數據

澄清有關從組件傳遞屬性值到UI和備份:在你的組件

  • ProvideComponentProperties告訴SSIS什麼性質的部件具有
  • 當用戶在打開包裝後第一次啓動組件UI時,SSIS實例化UI類並調用Initialize實例方法並傳遞ComponentMetadata作爲參數
  • 當用戶啓動組件UI的打開時,SSIS調用先前的編輯方法創建的UI類的實例,並將父窗口的句柄,包變量和封裝連接作爲參數
  • 它的編輯方法,你應該調用窗體的構造函數,並顯示它 - UI類是非常簡單的,你可以在提到MSDN見文章
  • 窗體構造函數必須具有參數:包連接,包變量和組件元數據
  • 一旦用戶點擊表單上的OK,您可以使用組件元數據SetCustomProperty方法來設置屬性爲適當的值(拼接列表你的情況)
  • 讀取組件代碼(不是UI)中的屬性值的組件元數據對象
  • 的CustomPropertyCollection

還有一件事:因爲您將爲您的組件創建UI,請考慮使用已經與.NET框架一起提供的Checked ListBox,而不是創建自定義組件。

提供的鏈接是SQL Server 2008 R2,如果你願意,你可以選擇對物品的頂部不同的版本。

希望這足以讓您繼續完成您的任務。

相關問題