LookupTable.CreateLookupTablesMultiLang 方法
會建立多種語言的自訂欄位的查閱表格和對應的代碼遮罩。
命名空間: WebSvcLookupTable
組件: ProjectServerServices (在 ProjectServerServices.dll 中)
語法
'宣告
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/LookupTable/CreateLookupTablesMultiLang", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/", _
ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Sub CreateLookupTablesMultiLang ( _
ltds As LookupTableMultiLangDataSet, _
validateOnly As Boolean, _
autoCheckIn As Boolean _
)
'用途
Dim instance As LookupTable
Dim ltds As LookupTableMultiLangDataSet
Dim validateOnly As Boolean
Dim autoCheckIn As Boolean
instance.CreateLookupTablesMultiLang(ltds, _
validateOnly, autoCheckIn)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/LookupTable/CreateLookupTablesMultiLang", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/",
ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public void CreateLookupTablesMultiLang(
LookupTableMultiLangDataSet ltds,
bool validateOnly,
bool autoCheckIn
)
參數
ltds
類型:WebSvcLookupTable.LookupTableMultiLangDataSetLookupTableMultiLangDataSet datatable 中包含資料。
validateOnly
類型:System.Boolean僅限驗證,請勿建立。
autoCheckIn
類型:System.Boolean如果true,建立之後存回。
備註
If you create a non-text lookup table such as type Cost, Date, Duration, or Number, you still need to programmatically create a code mask. Project Web App hides the code mask for non-text lookup tables on the New Lookup Table page, but creates a code mask for the call to CreateLookupTable. The Example section includes sample code that creates a Duration lookup table. For more examples, see Using the ProjTool Test Application.
CreateLookupTables前的事件是LookupTableEventReceiver.OnCreating與後置事件是OnCreated。
例如, OnCreating事件處理常式中的e參數會公開LookupTableMultiLanguageDataSet物件。下列程式碼示範如何取得資料,例如LookupTableLanguages、 LookupTables,以及LookupTableValues不同資料表中的範例。
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
public class LookupTableEvents : LookupTableEventReceiver
{
public override void OnCreating(PSLibrary.PSContextInfo contextInfo,
LookupTablePreEventArgs e)
{
int lutLanguage =
(int)e.LookupTableInformation.LookupTableLanguages.Rows[0]["LCID"];
Guid lutMultiUid =
(Guid)e.LookupTableInformation.LookupTables.Rows[0]["LT_UID"];
string lutMultiValue =
(string)e.LookupTableInformation.LookupTableValues.Rows[0]["LT_VALUE_TEXT"];
. . .
}
To use datasets in event handlers, set a reference to the Microsoft.Office.Project.Schema.dll assembly. For more information, see How to: Write and Debug a Project Server Event Handler.
注意
當您使用 PSI 來建立或更新的數字的查閱表格時,請勿加上有多個兩個小數位數的值。
CreateLookupTablesMultiLang方法可讓您儲存含有兩個以上的小數位數。當您建立使用數字的查閱表格的自訂欄位時, Project Professional 2010會將 number 四捨五入至兩個小數位數的數字自訂欄位值,並顯示其為在下拉式清單中選取一個值的字串。當您選取一個值時, Project Professional 2010會將字串轉換回到數字。程序會顯示錯誤,因為具有兩個小數位數數值不存在。
Project Server 權限
權限 |
描述 |
---|---|
可讓使用者修改企業自訂欄位與查閱表格值的定義。通用權限。 |
範例
The following code fragment creates a lookup table named Test Duration LUT of type Duration. LookupTableWS is an arbitrary name for a reference to the LookupTable Web service. To test the code, add it to a sample console application. For more information, see Prerequisites for ASMX-Based Code Samples.
註解包含CreateLookupTablesMultiLang呼叫之後發佈資料庫中已變更的資料表名稱。
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
private const string LOOKUPTABLEWEBSERVICE = "_vti_bin/PSI/LookupTable.asmx";
private string baseUrl = "https://ServerName/ProjectServerName"/
private static WebSvcLookupTable.LookupTable lookupTable =
new WebSvcLookupTable.LookupTable();
LookupTableWS.LookupTableMultiLangDataSet lutMultiDS =
new LookupTableWS.LookupTableMultiLangDataSet();
// Initialize the LookupTable Web service for Windows logon.
lookupTable.Url = baseUrl + LOOKUPTABLEWEBSERVICE;
lookupTable.Credentials = CredentialCache.DefaultCredentials;
. . .
private void btnCreateNonTextLUT_Click(object sender, EventArgs e)
{
LookupTableWS.LookupTableMultiLangDataSet lutMultiDS =
new LookupTableWS.LookupTableMultiLangDataSet();
// Create the main LookupTable row in MSP_LOOKUP_TABLES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTablesRow lutMainRow =
lutMultiDS.LookupTables.NewLookupTablesRow();
lutMainRow.LT_UID = Guid.NewGuid();
lutMainRow.LT_FILL_ALL_LEVELS = false;
lutMainRow.LT_PRIMARY_LCID = 1033;
lutMainRow.LT_SORT_ORDER_ENUM = (byte)PSLibrary.LookupTables.SortOrder.Ascending;
lutMainRow.LT_NAME = "Test Duration LUT";
lutMultiDS.LookupTables.Rows.Add(lutMainRow);
// Create the 1-level mask structure in MSP_LOOKUP_TABLE_MASK_STRUCTURES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTableMaskStructuresRow lutMaskStructureRow =
lutMultiDS.LookupTableMaskStructures.NewLookupTableMaskStructuresRow();
lutMaskStructureRow.LT_UID = lutMainRow.LT_UID;
lutMaskStructureRow.LT_MASK_STRUCT_LENGTH = (int)PSLibrary.LookupTables.ANY_LENGTH_SEQUENCE;
lutMaskStructureRow.LT_MASK_STRUCT_LEVEL = 1;
lutMaskStructureRow.LT_MASK_STRUCT_TYPE_ENUM = (byte)PSLibrary.LookupTables.MaskSequence.DURATION;
lutMultiDS.LookupTableMaskStructures.Rows.Add(lutMaskStructureRow);
// Create the 1-level mask value in MSP_LOOKUP_TABLE_MASK_VALUES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTableMaskValuesRow lutMaskValueRow =
lutMultiDS.LookupTableMaskValues.NewLookupTableMaskValuesRow();
lutMaskValueRow.LCID = 1033;
lutMaskValueRow.LT_UID = lutMainRow.LT_UID;
lutMaskValueRow.LT_MASK_STRUCT_LEVEL = 1;
lutMaskValueRow.LT_MASK_VALUE_SEPARATOR = ".";
lutMultiDS.LookupTableMaskValues.Rows.Add(lutMaskValueRow);
// Create the value structure in MSP_LOOKUP_TABLE_STRUCTURES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTableStructuresRow lutStructureRow =
lutMultiDS.LookupTableStructures.NewLookupTableStructuresRow();
lutStructureRow.LT_UID = lutMainRow.LT_UID;
lutStructureRow.LT_STRUCT_UID = Guid.NewGuid();
lutMultiDS.LookupTableStructures.Rows.Add(lutStructureRow);
// Create values (one value per LCID) in MSP_LOOKUP_TABLE_VALUES.
LookupTableWS.LookupTableMultiLangDataSet.LookupTableValuesRow lutValueRow =
lutMultiDS.LookupTableValues.NewLookupTableValuesRow();
lutValueRow.LCID = 1033;
lutValueRow.LT_VALUE_DESC = "This is root level A";
lutValueRow.LT_VALUE_DUR = 30;
lutValueRow.LT_VALUE_DUR_FMT = (byte)PSLibrary.Task.DurationFormat.Hour;
lutValueRow.LT_STRUCT_UID = lutStructureRow.LT_STRUCT_UID;
lutMultiDS.LookupTableValues.Rows.Add(lutValueRow);
// Create the lookup table.
bool validateOnly = false;
bool autoCheckIn = true;
lookupTable.CreateLookupTablesMultiLang(lutMultiDS, validateOnly, autoCheckIn);
}
請參閱
參照
其他資源
How to: Write and Debug a Project Server Event Handler