从列表视图创建高级 Lua 数组表并调用数组元素

假设我有一个 CE Lua 表单和一些变量:

form.Show()
list = form.CEListView1

tab_player = {}

p_name = '乔'
p_gen = '男'

table.insert(tab_player,{player_name = p_name, player_gen = p_gen})

-- 然后将一些元素从列表视图添加到相同的记录索引中

for idx = list.ItemIndex + 1, list.Items.Count-1 do
 mtrl_name = list.Items[idx].Caption
 mtrl_qty =  list.Items[idx].SubItems[0]
 mtrl_unit = list.Items[idx].SubItems[1]
 mtrl_price = list.Items[idx].SubItems[2]
 mtrl_tprice = list.Items[idx].SubItems[3]
 table.insert(tab_player, {v_itemname = mtrl_name, v_itemqty = mtrl_qty,
              v_itemunit = mtrl_unit, v_itemprice = mtrl_price, v_itemttlprice = mtrl_tprice})
end

-- 检查
for index, data in ipairs(tab_player) do
    print(index)
    for key, value in pairs(data) do
        print('\t', key, value)
    end
end

结果是创建了 9 个 tab_player 记录索引(取决于列表视图上有多少项)。 我想要的是一个这样的结构,用于一个记录索引:

tab_player =
{
  player_name = p_name,
  player_gen = p_gen,

  {
    v_itemname = mtrl_name,
    v_itemqty = mtrl_qty,
    v_itemunit = mtrl_unit,
    v_itemprice = mtrl_price,
    v_itemttlprice = mtrl_tprice},

   {
    v_itemname = mtrl_name,
    v_itemqty = mtrl_qty,
    v_itemunit = mtrl_unit,
    v_itemprice = mtrl_price,
    v_itemttlprice = mtrl_tprice},

  {
    v_itemname = mtrl_name,
    v_itemqty = mtrl_qty,
    v_itemunit = mtrl_unit,
    v_itemprice = mtrl_price,
    v_itemttlprice = mtrl_tprice}

    -- 以此类推
}
  1. 如何使用 CE Lua 脚本获取我想要的结构?

  2. 如果完成了,那么 CE Lua 脚本如何从 tab_player 调用数据,以填充玩家名称编辑框、玩家性别编辑框以及将项目填充到 CE 列表视图中?

编辑: 我想要生成下面结构的数组表:

list = UDF1.CEListView1

tab_player = {}

player_name = '乔'
player_gen = '男'

-- 这是列表视图项:

--- 行 1,列 1 到 5
mtrl_name = list.Items[1].Caption   -- 牛奶
mtrl_qty =  list.Items[1].SubItems[0]  -- 300
mtrl_unit = list.Items[1].SubItems[1]  -- 毫升
mtrl_price = list.Items[1].SubItems[2] -- 3975
mtrl_tprice = list.Items[1].SubItems[3] -- 3975

--- 行 2,列 1 到 5
mtrl_name = list.Items[2].Caption   -- 糖
mtrl_qty =  list.Items[2].SubItems[0]  -- 1
mtrl_unit = list.Items[2].SubItems[1]  -- 公斤
mtrl_price = list.Items[2].SubItems[2] -- 18000
mtrl_tprice = list.Items[2].SubItems[3] -- 18000

--- 行 3,列 1 到 5
以此类推

tab_player 应该是这样的:

tab_player = {

-- 索引 0 或记录 1
{player_name = 'Joe', player_gen = 'Male',

-- 行 1,列 1 到 5
  {
   item_name = 'Milk',
   item_qty = 300,
   item_unit = 'ml',
   item_price = 3975,
   item_tprice = 3975
  },

-- 行 2,列 1 到 5
  {
   item_name = 'Sugar',
   item_qty = 2,
   item_unit = 'Kg',
   item_price = 9000
   item_tprice = 18000
  },

-- 行 3,列 1 到 5
  {
   item_name = 'bla bla bla',
   item_qty = 1,
   item_unit = 'bla',
   item_price = 1000000
   item_tprice = 1000000
  }

-- 以此类推
}

如何创建、打印多维数组表并如上所述回调数组表中的项?。

点赞