Вывести значения в текстбокс, которые были введены крайний раз 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 шт):
Вопрос решил сам, добавил проверку и взятие данных из свойств перед объявлением формы "_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;
}
}
