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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
T-Flex API code for database in clipboard copy /// Код API T-Flex для базы данных в буфер обмена
 
Hello,

we use T-Flex in Germany, and follow sometimes this forum with the Google Translator, because here interesting topics.
In Germany is T-Flex named as TENADO CAD 3D but we don´t have a community / Forum like this.

My question is the follow one. How is it possible to use the function in the macro to save the databse in the clipboard.
In the Attachment you see a picture from the function i mean.


We would like have the code for this function.

Thank you very much for help.

Best regards and god´s blessing
Simon


Translated with Google:

Здравствуйте,
Мы используем T-Flex в Германии и иногда посещаем этот форум с помощью Google Translator, потому что здесь интересные темы.
В Германии T-Flex назван TENADO CAD 3D, но у нас нет сообщества / форума.
Мой вопрос следующий. Как можно использовать функцию макроса для сохранения базы данных в буфере обмена.
В приложении вы видите изображение из функции, которую я имею в виду.
Нам нужен код для этой функции.
Большое вам спасибо за помощь.

С наилучшими пожеланиями и благословением Бога
Саймон


 
Simon Missel, in this case, the API does not support functions for executing an application command. You need to unload the data from the table. For example:
Код
using System;
using System.Data;
using TFlex.Model;

namespace Test
{
    public class Class17
    {
        public static void Run()
        {
            Document document = TFlex.Application.ActiveDocument;
            DataTable table = null;
            string db_name = "A";

            if (document == null)
                return;

            document.BeginChanges("Export XML data from internal database");

            foreach (var i in document.GetDatabases())
            {
                if (i.Name == db_name && i.SubType == DatabaseType.Internal)
                {
                    InternalDatabase internalDatabase = (InternalDatabase)i;
                    table = GetDataTable(internalDatabase);
                    break;
                }
            }

            if (table != null)
                table.WriteXml(@"e:\export_data.xml");

            document.EndChanges();
        }

        static DataTable GetDataTable(InternalDatabase internalDatabase)
        {
            DataTable table = null;
            DataColumn column = null;
            DataRow row = null;

            if (internalDatabase == null)
                return table;

            table = new DataTable(internalDatabase.Name);

            for (int i = 0; i < internalDatabase.GetColumnCount(); i++)
            {
                switch (internalDatabase.GetColumnType(i))
                {
                    case DatabaseColumnType.DBInt:
                        column = new DataColumn(internalDatabase.GetColumnName(i), typeof(Int32));
                        table.Columns.Add(column);
                        break;
                    case DatabaseColumnType.DBReal:
                        column = new DataColumn(internalDatabase.GetColumnName(i), typeof(Double));
                        table.Columns.Add(column);
                        break;
                    case DatabaseColumnType.DBText:
                        column = new DataColumn(internalDatabase.GetColumnName(i), typeof(String));
                        table.Columns.Add(column);
                        break;
                }
            }

            for (int r = 0; r < internalDatabase.GetRecordCount(); r++)
            {
                row = table.NewRow();

                for (int c = 0; c < internalDatabase.GetColumnCount(); c++)
                {
                    switch (internalDatabase.GetColumnType(c))
                    {
                        case DatabaseColumnType.DBInt:
                            row[c] = internalDatabase.GetIntValue(c, r);
                            break;
                        case DatabaseColumnType.DBReal:
                            row[c] = internalDatabase.GetRealValue(c, r);
                            break;
                        case DatabaseColumnType.DBText:
                            row[c] = internalDatabase.GetTextValue(c, r);
                            break;
                    }
                }

                table.Rows.Add(row);
            }

            return table;
        }
    }
}
T-FLEX CAD 17.1.6.0
 
Hello Vite,

thank you for answer our question and the code for unload the database.

Best Regards ansd Gods blessing
Simon Missel
Страницы: 1