Quest3D - Русскоязычное сообщество

Quest3D => Программирование => Тема начата: Alteste от 09 Апреля 2011, 11:03:37



Название: LUA - копирование строки из одной таблицы в другую
Отправлено: Alteste от 09 Апреля 2011, 11:03:37
Есть два Array Table с одинаковым набором столбцов. Почему то не работает скрипт копирования строки из одной таблицы в другую
Код:
function CallChannel()

local tablerow1 = channel.GetChild(0):GetValue()
local tablerow2 = channel.GetChild(1):GetValue()
local Table1 = q.GetTable("Table1")
local Table2 = q.GetTable("Table2")
local rowA = Table1:GetRow(tablerow1)
local rowB = Table2:GetRow(tablerow2)

rowA:Copy(rowB)

end

Что не так?


Название: Re: LUA - копирование строки из одной таблицы в другую
Отправлено: Alteste от 10 Апреля 2011, 11:14:46
В общем так нельзя сделать, копирование всей строки таблицы (Row) возможно только в пределах одной таблицы. Но в луа можно перегонять данные по отдельности, если эти данные типа Text или Value.
Код:
function CallChannel()

-- Подключаемые величины
local RowTab1 = channel.GetChild(0):GetValue() -- Номер строки в 1 таблице
local RowTab2 = channel.GetChild(1):GetValue() -- Номер строки во 2 таблице

-- Сами таблицы
local Table1 = q.GetTable("Table1")
local Table1 = q.GetTable("Table2")

-- Копируем значение Value из одной ячейки
local val1 = Table1:GetColumn("Value1") -- Название колонки в первой таблице
local value1 = val1:GetContent(RowTab1) -- Берем значение из ячейки 1 таблицы
local val2 = Table2:GetColumn("Value1") -- Название колонки во 2 таблице
local value2 = val2:SetContent(RowTab2,value1) -- Копируем значение в эту ячейку

end


Название: Re: LUA - копирование строки из одной таблицы в другую
Отправлено: Sqwer от 10 Апреля 2011, 11:23:18
Думаю, Акт3Д не загонялось на создании действительно полезного Скрипт интерфейса  для Квеста. Скорее это прогерский эксперемент или галочка "чтоб было". Текущий состав доступных команд очень мал.   :-\