Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Создание сем. таблицы

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
Азаматов Азамат Хадисович



Зарегистрирован: 17.02.2005
Сообщения: 100
Откуда: г. Учалы, Респ. Башкортостан

СообщениеДобавлено: Пн 24 Дек 2012 04:02    Заголовок сообщения: Создание сем. таблицы Ответить с цитатой

Написал код
Код:

        private void CreateNewMap(string name)
        {
            try
            {
                string tname;
                Ingeo.IIngeoVectorMap vmap = app.ActiveProjectView.Project.Area.Maps.AddVectorMap();
                vmap.Name = name;
                vmap.Update();
                app.ActiveProjectView.Project.Contents.Add(vmap.ID);
                Ingeo.IIngeoLayer layer = vmap.Layers.Add();
                layer.Name = "Профиль продольный";
                layer.Update();
                Ingeo.IIngeoStyle lstl = layer.Styles.Add();
                lstl.Name = "Линия 0.3";
                lstl.Update();
                Ingeo.IIngeoStdPainter pntr = lstl.Painters.Add(Ingeo.TIngeoPainterType.inptStd) as Ingeo.IIngeoStdPainter;
                pntr.Pen.Color = 0;
                pntr.Pen.WidthInMM = 0.0003;
                pntr.Pen.ForZoomScale = 0;
              //  pntr.Brush.Style = InScripting.TInBrushStyle.inbsClear;
                lstl.Update();
                Ingeo.IIngeoSemTable st = layer.SemTables.Add();
                Random rnd = new Random();

                st.Name = "profile" + rnd.Next(10000);
                st.LinkType = 0;
          //      st.SemDbTableName = st.Name;
                st.Update();
                layer.Update();
            //    st.SemDbTable.Update();
                st.SemDbTable.Fields.Add("Text", Ingeo.TIngeoFieldDataType.inftString, 255, 0, 0);
       //         st.SemDbTable.Update();
                tname = st.Name;
                st.Update();
//                st.LinkType = 0;
                Ingeo.IIngeoSemFieldInfo sf= st.FieldInfos.Add("Text", "Text", "", "", "");
                               
                st.Update();
                Ingeo.IIngeoStyle tstl = layer.Styles.Add();
                tstl.Name = "Текст 8";
                tstl.Update();
                Ingeo.IIngeoTextPainter tpntr = tstl.Painters.Add(Ingeo.TIngeoPainterType.inptText) as Ingeo.IIngeoTextPainter;
                tpntr.Font.Size = 8;
                tpntr.Font.ForZoomScale = 0;
                tpntr.Text = "{" + tname + ".Text}";
                tstl.Update();
                layer.Update();

            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
           // layer.Update();
        }

таблицу создает, поле не создает
если раскомментить SemDbTable.Update() выдает ошибку "Не задано имя таблицы"

Как правильно создать поля в таблице?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Пн 24 Дек 2012 12:28    Заголовок сообщения: Ответить с цитатой

http://integro.ru/wiki/index.php?title=%D0%98%D0%BD%D0%93%D0%B5%D0%BE:API0003
_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Азаматов Азамат Хадисович



Зарегистрирован: 17.02.2005
Сообщения: 100
Откуда: г. Учалы, Респ. Башкортостан

СообщениеДобавлено: Пн 24 Дек 2012 12:50    Заголовок сообщения: Ответить с цитатой

разобрался
нужно больше update()
Код:

        private void CreateNewMap(string name)
        {
            try
            {
                string tname;
                Ingeo.IIngeoVectorMap vmap = app.ActiveProjectView.Project.Area.Maps.AddVectorMap();
                vmap.Name = name;
                vmap.Update();
                app.ActiveProjectView.Project.Contents.Add(vmap.ID);
                Ingeo.IIngeoLayer layer = vmap.Layers.Add();
                layer.Name = "Профиль продольный";
                layer.Update();
                Ingeo.IIngeoStyle lstl = layer.Styles.Add();
                lstl.Name = "Линия 0.3";
                lstl.Update();
                Ingeo.IIngeoStdPainter pntr = lstl.Painters.Add(Ingeo.TIngeoPainterType.inptStd) as Ingeo.IIngeoStdPainter;
                pntr.Pen.Color = 0;
                pntr.Pen.WidthInMM = 0.0003;
                pntr.Pen.ForZoomScale = 0;
                lstl.Update();
                Ingeo.IIngeoSemTable st = layer.SemTables.Add();
                Random rnd = new Random();

                st.Name = "profile" + rnd.Next(10000);
                st.SemDbTableName = st.Name;
                st.LinkType = 0;
                st.SemDbTable.Update();
                st.Update();
                st.SemDbTable.Fields.Add("Text", Ingeo.TIngeoFieldDataType.inftString, 255, 0, 0);
                Ingeo.IIngeoSemFieldInfo sf = st.FieldInfos.Add("Text", "Text", "", "", "");
                st.SemDbTable.Update();
Ingeo.TIngeoFieldDataType.inftString, 255, 0, 0);
                tname = st.Name;
                st.Update();
                Ingeo.IIngeoStyle tstl = layer.Styles.Add();
                tstl.Name = "Текст 8";
                tstl.Update();
                Ingeo.IIngeoTextPainter tpntr = tstl.Painters.Add(Ingeo.TIngeoPainterType.inptText) as Ingeo.IIngeoTextPainter;
                tpntr.Font.Size = 8;
                tpntr.Font.ForZoomScale = 0;
                tpntr.Text = "{" + tname + ".Text}";
                tstl.Update();
                layer.Update();

            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }

так работает. Спасибо за наводку.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB