Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Значения переменной из базы данных
 
Как получить значения переменной если они хранятся во внутренней базе данных?
ValueListCount для значений из базы возвращает 0
Код
for (int i = 0; i < v.ValueListCount; i++) 
   ddl.Items.Add(v.GetValueListString(i));
 
 
Лучше всего создайте переменную, значение которой получается из базы данных через стандартную функцию (val, find).
А код для работы такой. (Убедитесь, что вызвали beginchange)

doc.BeginChanges("1");
foreach (InternalDatabase db in doc.GetDatabases())
{
int n = db.GetColumnCount();
if (n < 1) continue;

}
doc.EndChanges();
 
Цитата
Osiris2000 пишет:
Лучше всего создайте переменную, значение которой получается из базы данных через стандартную функцию (val, find).
Мне нужны варианты выбора значений
Цитата
Osiris2000 пишет:
А код для работы такой. (Убедитесь, что вызвали beginchange)...
А можно получить ссылку на базу имея ссылку на переменную которая использует эту базу?
И есть ли класс который описывает элемент управления комбинированный список?
 
Получить ссылку можно.
Похоже, что таких классов нет.

Уважаемый joomba, могли бы вы подробнее рассказать о задаче, которая перед вами стоит? Может быть мы сможем подсказать вам подходящий вариант её реализации.
 
Я пишу веб-вьювер и мне нужно чтобы элементы управления отображались в браузере так же как на странице элементов управления
Пока только две функции: инициализации страницы (создание элементов управления) и обновления при нажатии на кнопку (создание pdf-файла)
Код
     protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                var doc = (Document)Session["doc"];
                foreach (var v in doc.GetVariables())
                {
                    if (v.Hidden == false && v.External == true)
                    {
                        var tr = new TableRow();
                        var tc1 = new TableCell();
                        tc1.Text = v.Name;
                        tr.Cells.Add(tc1);
                        var tc2 = new TableCell();
                        if (v.ValueListCount > 0)
                        {
                            var ddl = new DropDownList();
                            ddl.Width = 30;
                            for (int i = 0; i < v.ValueListCount; i++)
                            {
                                ddl.Items.Add(v.GetValueListString(i));
                            }
                            if (v.IsText)
                                ddl.Text = v.TextValue;
                            else
                                ddl.Text = v.RealValue.ToString();
                            tc2.Controls.Add(ddl);
                            tr.Cells.Add(tc2);
                        }
                        else
                        {
                            var tb = new TextBox();
                            tb.Width = 30;
                            if (v.IsText)
                                tb.Text = v.TextValue;
                            else
                                tb.Text = v.RealValue.ToString();
                            tc2.Controls.Add(tb);
                            tr.Cells.Add(tc2);
                        }
                        Table1.Rows.Add(tr);
                    }
                }
            }
            catch (Exception ex)
            {
                form1.Controls.Add(new Literal() { Text = ex.Message + "<br/>" + ex.StackTrace });
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                var doc = (Document)Session["doc"];
                doc.BeginChanges("Изменение внешних переменных");
                string val;
                foreach (TableRow r in Table1.Rows)
                {
                    foreach (var v in doc.GetVariables())
                    {
                        if (r.Cells[0].Text == v.Name)
                        {
                            if (v.ValueListCount > 0)
                                val = ((DropDownList)r.Cells[1].Controls[0]).Text;
                            else
                                val = ((TextBox)r.Cells[1].Controls[0]).Text;
                            if (v.IsText)
                                v.TextValue = val;
                            else
                                v.RealValue = Double.Parse(val);
                        }
                    }
                }
                doc.EndChanges();
                var exp2pdf = new ExportToPDF(doc);
                exp2pdf.ExportPages.Add(doc.GetPages().First());
                exp2pdf.Export(outFile);
            }
            catch (Exception ex)
            {
                form1.Controls.Add(new Literal() { Text = ex.Message + "<br/>" + ex.StackTrace });
            }
        }
 
 
Цитата
Osiris2000 пишет:
Получить ссылку можно...
Вот очень хочется узнать как! Список значений сильно нужен.
 
Цитата
joomba пишет:
Вот очень хочется узнать как! Список значений сильно нужен.
Надо получить значение переменной в текстовом виде. А потом проанализировать строку и найти в ней имя базы данных.
Страницы: 1