2014-11-26 2 views
0

Im программно одобряет задачу утверждения. Im, используя этот код:Языковая строка Sharepoint TaskStatus

ht[SPBuiltInFieldId.Completed] = "TRUE"; 
ht["Completed"] = "TRUE"; 
ht[SPBuiltInFieldId.PercentComplete] = 1.0f; 
ht["PercentComplete"] = 1.0f; 
ht["Status"] = "Completed"; 
ht[SPBuiltInFieldId.TaskStatus] = SPResource.GetString(new CultureInfo((int)openTask.Web.Language, false), Strings.WorkflowStatusCompleted, new object[0]); 
ht[SPBuiltInFieldId.FormData] = SPWorkflowStatus.Completed; 
ht[SPBuiltInFieldId.WorkflowOutcome] = "Schváleno"//Approved in czech language; 
ht[SPBuiltInFieldId.TaskStatus] = "Schváleno";//Approved in czech language; 
ht["TaskStatus"] = "Schváleno";//Approved in czech language; 

Ref: Approve a SharePoint workflow task using SharePoint Web Services/Object Model

Все работает, но я думаю, что этот код uggly:

первую очередь я не понимаю, почему nessery определить значение для SPBuiltInFieldId.TaskStatus и "TaskStatus"? Но когда я удаляю задачу TaskStatus, не утверждается. Я вижу, что SPBuiltInFieldId.TaskStatus является секвенциальным идентификатором поля, но почему он не записывает значение в поле «TaskStatus»?

Моя вторая проблема больше, поэтому мне нужно поместить значение TaskStatus в форму строки языка установки sharepoint. Как вы видите, моя sharepoint локализована на чешском языке. Но когда я перейду к другому экземпляру sharepoint (словацкий, английский ...), этот код перестанет работать исправно.

Есть ли способ получить строку текста текста «Approved» на языке установки sharepoint? что-то вроде SPBuiltInFieldId.TaskStatus?

ответ

1

Вы можете использовать функции локализации SharePoint. Так заменить все "Completed" и "Schváleno" по

SPUtility.GetLocalizedString("$Resources:core,Tasks_Completed", null, web.Language) 

Есть две важные части кода:

  1. "$ Ресурсы, ядро, Tasks_Completed" - относится к core.resx файла Ресурсы Папка SharePoint. Он содержит множество строк системных ресурсов, используемых SharePoint внутренне. Например. как в этом случае.
  2. web.Language - значения в выборе (статус задачи) определяются языком Интернета. В пользовательском интерфейсе (например, установив текст кнопки), вы должны использовать:

    SPUtility.GetLocalizedString ("$ Ресурсы: ядро, cui_ButListFormSave", нулевой (UINT) System.Threading.Thread.CurrentThread.CurrentUICulture.LCID)

    поскольку это использует язык текущего пользователя, поскольку SP использует олицетворение по умолчанию.

Смежные вопросы