/// <summary>
/// 对目标字串,根据ListItem 和对应的 Field, 更新其中的字段内容
/// </summary>
/// <param name="myContent">Content String</param>
/// <param name="myItem">SPListItem Object</param>
/// <param name="myFld">SPField Object</param>
private void TranslateContentField(ref string myContent, SPListItem myItem, SPField myFld)
{
try
{
//Delete 1;#, 2;# ... and diplay only the option value (Category1 instead of 1;#Category1)
// use ;# as a starting symbol and #; as a ending symbol
if (myFld.Type.ToString() == "Lookup" || myFld.Type.ToString() == "User")
{
myContent = myContent.Replace("{" + myFld.ToString() + "}", "#^" + myItem[myFld.InternalName.ToString()].ToString() + "^#");
myContent = myContent.Replace("#^^#", ""); // remove #^^# from blank cell
myContent = GetDataFromLookUpOrUser(myContent);
}
else if (myFld.Type.ToString() == "URL")
{
int commaPos = myItem[myFld.InternalName.ToString()].ToString().IndexOf(",");
// Remove information after the delimiter ","
//myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString());
//myContent = myContent.Replace(myItem[myFld.InternalName.ToString()].ToString(), "<img src=" + myItem[myFld.InternalName.ToString()].ToString().Substring(0, commaPos) + " border='0'/>");
if (((SPFieldUrl)myFld).DisplayFormat == SPUrlFieldFormatType.Image)
myContent = myContent.Replace("{" + myFld.ToString() + "}", "<img src=" + myItem[myFld.InternalName.ToString()].ToString().Substring(0, commaPos) + " border='0'/>");
else
myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString().Substring(0, commaPos));
}
else if (myFld.Type.ToString() == "Calculated")
{
myContent = myContent.Replace("{" + myFld.ToString() + "}", "#%" + myItem[myFld.InternalName.ToString()].ToString() + "%#");
myContent = myContent.Replace("#%%#", ""); // remove #%%# from blank cell
myContent = GetDataFromCalculatedField(myContent);
}
else if (myFld.Type.ToString() == "MultiChoice")
{
myContent = myContent.Replace("{" + myFld.ToString() + "}", "#*MC" + myItem[myFld.InternalName.ToString()].ToString().Substring(2, myItem[myFld.InternalName.ToString()].ToString().Length - 2) + "MC*#");
myContent = myContent.Replace("#*MCMC*#", "");
myContent = this.GetDataFromMultipleChoice(myContent);
}
else if (myFld.Type.ToString() == "ModStat") //need modification
{
string modStat = "";
if (myItem[myFld.InternalName.ToString()].ToString() == "0")
{
modStat = "Approved";
}
else if (myItem[myFld.InternalName.ToString()].ToString() == "2")
{
modStat = "Pending";
}
myContent = myContent.Replace("{" + myFld.ToString() + "}", modStat);
}
else if (myFld.Type.ToString() == "Boolean")
{
string bol = "";
if (myItem[myFld.InternalName.ToString()].ToString() == "True")
{
bol = "Yes";
}
else
{
bol = "";
}
myContent = myContent.Replace("{" + myFld.ToString() + "}", bol);
}
else if (myFld.Type.ToString() == "Currency") //need modification
{
myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString());
}
else
{
//Debug
//myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString() + myFld.Type.ToString());
myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString());
}
}
catch (Exception)
{
myContent = myContent.Replace("{" + myFld.ToString() + "}", "");
}
}