private static string GetTranslatedString(HPMUniqueID projectId, EHPMProjectDefaultColumn column, uint iValue)
        {
            HPMUntranslatedString unTranslated = SessionManager.Session.UtilGetColumnDataItemFormatted(projectId, column, iValue);
            HPMLanguage           language     = SessionManager.Session.LocalizationGetDefaultLanguage();
            String translated = SessionManager.Session.LocalizationTranslateString(language, unTranslated);

            return(translated);
        }
        /// <summary>
        /// Gets a localized string from a Hansoft full translation ID.
        ///
        /// NOTE: Currently there is no way to select which translation to use but UK English will always be used.
        /// </summary>
        /// <param name="fullId">The full translation ID for the string to get.</param>
        /// <returns>The localized string.</returns>
        public static string GetLocalizedStringForFullId(string fullId)
        {
            uint translationId = SessionManager.Session.LocalizationGetTranslationIDFromFullTranslationID(fullId);
            HPMUntranslatedString untranslated = SessionManager.Session.LocalizationCreateUntranslatedStringFromTranslationID(translationId, null);
            HPMLanguage           language     = SessionManager.Session.LocalizationGetDefaultLanguage(); // This means that UK English always will be used

            return(SessionManager.Session.LocalizationTranslateString(language, untranslated));
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            // The ID of the authenticated user
            FormsIdentity ID = (FormsIdentity)HttpContext.Current.User.Identity;
            m_ResourceID = new HPMUniqueID(Convert.ToInt32(ID.Name));
            m_NoUserID = new HPMUniqueID(-1);
            // Find context is empty but can be set by choosing a report or providing a search string
            m_FindContexts = new Dictionary<string, HPMFindContextData>();
            ErrorLabel.Visible = false;

            try
            {
                InitHansoftVirtualSession();
                m_UpdatedFromWeb = m_VirtSession.LocalizationCreateUntranslatedStringFromString("Updated from web integration sample");
                AddProjectControls();

                // update info contains info from callbacks about changed Hansoft elements
                HPMUpdateInfo update = Session["updateinfo"] as HPMUpdateInfo;

                if (!IsPostBack || update.FullUpdate)
                {
                    AddData();
                    update.FullUpdate = false;
                    // retain selected tab between postbacks (doesn't work for the first tab - TabContainer bug?) Uncomment it if you want to experiment with it
                    //if (Session["ActiveTabIndex"] != null)
                    //{
                    //    int storedIndex = (int)Session["ActiveTabIndex"];
                    //    TabContainer projectTabs = Page.FindControl("ProjectTabs") as TabContainer;
                    //    if (storedIndex <= projectTabs.Tabs.Count)
                    //        projectTabs.ActiveTabIndex = storedIndex;
                    //}
                    BindDataSources();
                }


            }
            catch (HPMSdkException error)
            {
                SetErrorMessage("An error occurred when communicating with the Hansoft server.", error.ErrorAsStr());
            }
            catch (HPMSdkManagedException error)
            {
                SetErrorMessage("An error occurred when communicating with the Hansoft server.", error.ErrorAsStr());
            }
        }