• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

LUA - копирование строки из одной таблицы в другую

Автор Alteste, 09 апреля 2011, 12:03:37

« назад - далее »

Alteste

Есть два 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


Что не так?

Alteste

#1
В общем так нельзя сделать, копирование всей строки таблицы (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

Sqwer

Думаю, Акт3Д не загонялось на создании действительно полезного Скрипт интерфейса  для Квеста. Скорее это прогерский эксперемент или галочка "чтоб было". Текущий состав доступных команд очень мал.   :-\