Вывести значения в текстбокс, которые были введены крайний раз C# (значений сохраняются, но надо вывести)

Попробую ещё раз) У меня есть форма, которая вылезает при входе в таблицу (для фильтрации), я так же ее могу вызвать непосредственно в самой таблице, чтобы заново задать параметры отбора. Вопрос: как сделать так, чтобы при повторном открытии этой формы (если я захочу сменить параметры отбора, например) в текстбоксах даты "С" и "ДО" были даты, которые я ввел крайний раз? в самом коде я записываю значение дат в свойство (т.е. они запоминаются программой)

Cursor.Properties.Set("END_", date_end);

как оформить так чтобы следующий раз когда я открою эту форму, там уже будут даты которые были введены последний раз? знаю только что это делается через функцию Get, что-то типа Cursor.Properties.Get ... если кто-то знает как это сделать, объясните пожалуйста логику действий, я не силен в СИ шарпе, но мне очень интересно

public class PwregCursor : DataEditorBusinessLogic.CursorLogic
{
    public override SqlCmdText GetSqlFilter()
    {
        var Cond = ITnet2.Server.Dialogs.InputForm.Activate("_TESTFRM");
        if (Cond.Success)
        {
            string Conditions = "";
            // условие по дате C 
            var date_begin = Cond.InputFormValues.GetValue<DateTime>("DATE_D");
            if (Cursor.Properties.Contains("DATE_D_"))
            {
                Cursor.Properties.Get<DateTime>("DATE_D_");
            }
            if (date_begin != null )
            {
                Cursor.Properties.Set("DATE_D_", date_begin);  // запись значений данных в свойство
                Conditions += (" cast(PWREG.DATE_D as date) >= cast(@date_begin as date) ");
            }
            // условие по дате ПО
            var date_end = Cond.InputFormValues.GetValue<DateTime>("END");
            if (date_end != null)
            {
                Cursor.Properties.Set("END_", date_end);    // запись значений данных в свойство
                Conditions += " and cast(PWREG.DATE_D as date) <= cast(@date_end as date) ";
            }
            var n_kdk = Cond.InputFormValues.GetValue<string>("N_KDK");
            var rcentr = Cond.InputFormValues.GetValue<string>("RCENTR");
            var ceh = Cond.InputFormValues.GetValue<string>("CEH");
            // условие по сотруднику
            if (n_kdk != null && n_kdk.Length > 0)
            {
                Conditions += " and PWREG.N_KDK = @n_kdk ";
            }
            // условие по рабочему центру
            if (rcentr != null && rcentr.Length > 0)
            {
                Conditions += " and PWREG.RCENTR = @rcentr ";
            }
            // условие по цеху
            if (ceh != null && ceh.Length > 0)
            {
                Conditions += " and PRCR.CEH = @ceh ";
            }
            return new SqlCmdText(string.Format(Conditions),
                new SqlParam("n_kdk", n_kdk.ToString()),
                new SqlParam("rcentr", rcentr.ToString()),
                new SqlParam("ceh", ceh.ToString()),
                new SqlParam("date_begin", date_begin),
                new SqlParam("date_end", date_end));
        }
    }
}


Ответы (1 шт):

Автор решения: thegamestarted

Вопрос решил сам, добавил проверку и взятие данных из свойств перед объявлением формы "_TESTFRM", странная логика если честно, не понимаю почему именно так, но работает ... Вот такой код в итоге получился, может кому пригодится ...

public class PwregCursor : DataEditorBusinessLogic.CursorLogic
{
    public override SqlCmdText GetSqlFilter()
    {
        var date_begin = Date.FirstDateOfMonth(Settings.DateNow);
        if (Cursor.Properties.Contains("DATE_D_"))
        {
            date_begin = Cursor.Properties.Get<DateTime>("DATE_D_");
        }
        var date_end = Date.LastDateOfMonth(Settings.DateNow);
        if (Cursor.Properties.Contains("END_"))
        {
            date_end = Cursor.Properties.Get<DateTime>("END_");
        }
        var n_kdk = "";
        if (Cursor.Properties.Contains("N_KDK_"))
        {
            n_kdk = Cursor.Properties.Get<string>("N_KDK_");
        }
        var rcentr = "";
        if (Cursor.Properties.Contains("RCENTR_"))
        {
            rcentr = Cursor.Properties.Get<string>("RCENTR_");
        }
        var ceh = "";
        if (Cursor.Properties.Contains("CEH_"))
        {
            ceh = Cursor.Properties.Get<string>("CEH_");
        }
        var Cond = ITnet2.Server.Dialogs.InputForm.Activate("_TESTFRM",
            new Dictionary<string, object> { { "DATE_D_", date_begin } , { "END_", date_end } , { "N_KDK_", n_kdk } , { "RCENTR_", rcentr} , { "CEH_", ceh} });
        if (Cond.Success)
        {
            string Conditions = "";
            // условие по дате C 
            date_begin = Cond.InputFormValues.GetValue<DateTime>("DATE_D_");
            Cursor.Properties.Set("DATE_D_", date_begin);  // запись значений данных в свойство
            if (date_begin != null)
            {
                Conditions += " cast(PWREG.DATE_D as date) >= cast(@date_begin as date) ";
            }
            // условие по дате ПО
            date_end = Cond.InputFormValues.GetValue<DateTime>("END_");
            Cursor.Properties.Set("END_", date_end);    // запись значений данных в свойство
            if (date_end != null)
            {
                Conditions += "and cast(PWREG.DATE_D as date) <= cast(@date_end as date)";
            }
            n_kdk = Cond.InputFormValues.GetValue<string>("N_KDK_");
            Cursor.Properties.Set("N_KDK_", n_kdk);  // запись значений данных в свойство
            rcentr = Cond.InputFormValues.GetValue<string>("RCENTR_");
            Cursor.Properties.Set("RCENTR_", rcentr);  // запись значений данных в свойство
            ceh = Cond.InputFormValues.GetValue<string>("CEH_");
            Cursor.Properties.Set("CEH_", ceh);  // запись значений данных в свойство
            // условие по сотруднику
            if (n_kdk != null && n_kdk.Length > 0)
            {
                Conditions += " and PWREG.N_KDK = @n_kdk ";
            }
            // условие по рабочему центру
            if (rcentr != null && rcentr.Length > 0)
            {
                Conditions += " and PWREG.RCENTR = @rcentr ";
            }
            // условие по цеху
            if (ceh != null && ceh.Length > 0)
            {
                Conditions += " and PRCR.CEH = @ceh ";
            }
            return new SqlCmdText(string.Format(Conditions),
                new SqlParam("n_kdk", n_kdk.ToString()),
                new SqlParam("rcentr", rcentr.ToString()),
                new SqlParam("ceh", ceh.ToString()),
                new SqlParam("date_begin", date_begin),
                new SqlParam("date_end", date_end));
        }
          return 0;
    }
} 
→ Ссылка