hook_<libraryPrefix>_namingFaceplateTabs()

This function determines the titles for the tabs in a faceplate.

Synopsis

void hook_<libraryPrefix>_namingFaceplateTabs(string sDp, dyn_langString &name, dyn_string panels);

Parameters

Parameter Description
sDp Name of the datapoint.
name Name of the faceplate.
panels Name of the tab panel.

Return Value

-

Description

This function determines the titles for the tabs in a faceplate.

By default, a tab title is determined from the text catalog of the library by defining the name of the tab panel as keyword and by assigning the titles in the adjacent columns depending on the language.

If no title was specified in the text catalog of the library for the tab, the name of the tab panel is used as tab title in all project languages.

You can find the function in the stdlib_hook_project.ctl under wincc_oa_path/Stdlib_3.18/scripts/libs/

hook_namingFaceplateTabs(string dp, dyn_langString &name, dyn_string panels)
{
  dyn_string dsTmp;
  langString entry;
  string text;
  int nrOfLangs = getNoOfLangs();
  if (DebugInfos) DebugN("nrOfLangs",nrOfLangs, dynlen(panels));
  //read out the Faceplatetabnames from the messagecatalog
  for (int i=1; i<=dynlen(panels); i++)
  {
    text = panels[i];
    strreplace(text, ".pnl", "");
    strreplace(text, ".xml", "");
    dsTmp = makeDynString();
    for (int j=1; j<=nrOfLangs; j++)
    {
      dsTmp[j] = getCatStr(getLibNameFromDP(dp),text,getGlobalLangId(j-1));
      dyn_errClass de;
      de=getLastError();
      if(dynlen(de)!=0)
      {
        dsTmp[j] = getCatStr("stdlib",text,getGlobalLangId(j-1));
        de=getLastError();
        if(dynlen(de)!=0)
        {
          dsTmp[j]=text;
          DebugN("error!, faceplate-tabname not found for",text, dp);
        }
      }
    }
    entry = dsTmp;
    name[i] = entry;
  }
}