在编辑器下实现id自增

例如上图,在点击Add时,实现Id自动加1,如何实现呢?

方法如下:

  1. 在定义如图上述的结构体时,在Id属性列,在结构体属性初始化时赋值

  1. 定义一个静态方法,静态方法里动态获取Datatable表里的数据

    获取上述表结构里的Id的属性值的方法有很多,如下只提供一个参考

   int32 UDataTableHelperUtils::GetDataTableLastIdNum(){int CardId = 0;UDataTable* DataTable = LoadObject<UDataTable>(nullptr,TEXT("DataTable'/Game/DataTables/DT_Cards.DT_Cards'"));if(!DataTable) return CardId;TArray<TArray<FString>> TableData = DataTable->GetTableData();#if WITH_EDITORfor(int i=0; i< TableData.Num();i++){FDataTableEditorUtils::RenameRow(DataTable,*TableData[i][0],*TableData[i][1]);}#endifDataTable->Modify();// UEditorAssetLibrary::SaveAsset(TEXT("DataTable'/Game/DataTables/DT_Cards.DT_Cards'"),false);const FString RowId = TableData[TableData.Num()-1][1];CardId = FCString::Atoi(*RowId);return CardId;}

​ 其中DataTable->GetTableData()方法里获取的是一个二维数组,行列结构。默认列下标为1是代表id属性的值

​ 其中const FString RowId = TableData[TableData.Num()-1][1];获取就是最后一行Id的属性值

动态修改RowName

如果是使用代码层面,动态添加一条记录。可以使用FDataTableEditorUtils,主要该类属于UnrealEd模块,在运行时是不可以使用的。

FDataTableEditorUtils::AddRow()

在运行时或者Runtime模式下,也可以通过UDataTable的方法AddRow()实现添加,但在运行时没有提供重置RowName的方法。

在上述代码中,该方法修改RowName并不是一个很高效的办法,这个可根据实际情况调整,笔者在编辑器下进行测试,不考虑性能问题

for(int i=0; i< TableData.Num();i++)
{FDataTableEditorUtils::RenameRow(DataTable,*TableData[i][0],*TableData[i][1]);
}

最后的最后,如果您觉得这篇文章帮助到您,请资助下这位朋友的粮食,谢谢!

UE4_DataTable 实现Id自增与设置RowName相关推荐

  1. oracle实现id自增和设置主键

    1.关于主键:在建表时指定primary key字句即可: create table test(   id  number(6) primary key,   name varchar2(30) ); ...

  2. mybatis-plus设置id自增,插入数据。

    mybatis-plus设置id自增,插入数据 没修改前 没修改前 这是我的实体类. @Data @AllArgsConstructor @NoArgsConstructor @ToString pu ...

  3. mysql如何让自增id从1开始设置方法(三种方法)

    mysql如何让自增id从1开始设置方法 第一种 如果表中数据没有用.如果直接删除数据,自动增长ID还是不会从1开始的,可以利用"清空数据表".这样自动增长ID也将会从1开始. 清 ...

  4. SpringBoot+mongoDB实现id自增

    这段时间给朋友做了一个微信小程序,顺便练习一下spring boot,虽然项目使用的是JPA+MySQL,但是好奇尝试了一下MongoDB实现自增ID,虽然MongoDB很少有自增ID的需求(在分布式 ...

  5. MyBatis-Plus 乐观锁 防止超卖、逻辑删除、自动填充、Id自增

    MyBatis-Plus 乐观锁 防止超卖.逻辑删除.自动填充 Day3 前面的简单的讲了一下mybatis-plus的使用 当然有很多不足 我写博客就是想促进大家一起学习 也想让这些内容更简单一些. ...

  6. 数据库-Oracle【Oracle数据库设置默认表空间问题及Oracle,SQL,MySQL的自增变量设置】...

    一. Oracle数据库设置默认表空间问题 DBA们经常会遇到一个这样令人头疼的问题:不知道谁在Oracle上创建了一个用户,创建时,没有给这个用户指定默认表空间,所以这个用户就会采用默认的表空间-- ...

  7. ORACLE 实现 ID 自增

    前言 目录 前言 具体命令 具体详解: 由于oracle数据库不像mysql一样在建立表的时候设置自动增长列功能 设置UUID的缺点 字符串占用的空间比较大. 而且效率也比较低下. 生成的ID是字符串 ...

  8. MiniDao支持ID自增主键策略,使用讲解

    MiniDao支持ID自增主键策略 用法示例: /*** 插入数据(ID采用自增策略,并返回自增ID)* @param employee */ @IdAutoGenerator(generator=& ...

  9. ssh oracle id native,hibernate解决oracle的id自增?

    以前做SSH项目时,涉及到的数据库是mySQL,只需将bean的配置文件id设为native 就可以实现表id的自增. 现在用到了Oracle,当然知道这样是不行的啦,那么用序列自增? 我在网络上搜索 ...

最新文章

  1. java mobile phone games_j2me100-src Java
  2. mysql connection闪退重连_玩家排位巅峰赛开局闪退,重连失败,10分钟后一个提示让他懵了...
  3. php万年历月份处理_php实现万年历的完整代码
  4. Spring @Value注解无法正确赋值问题
  5. mysql将查询数据另存
  6. 苹果进行iPhone问世后最重大转型:硬件时代转互联网服务
  7. SPI协议的通信原理
  8. js生成二维码并下载、批量生成二维码和压缩下载
  9. Litestar4D道路照明设计
  10. 《软件测试价值提升之路》学习之—测试工程师能力模型
  11. 按键精灵可以实现c语言吗,按键精灵的原理和编写方法(1)
  12. 《跟小智一起学网络》教程目录
  13. 牛牛试题排版插件V3更新发布
  14. 求矩阵乘法及行列式的值
  15. 计算机主机启动 显示器不动什么原因,主机开了电脑屏幕不亮怎么回事?电脑开机后显示器不亮的解决方案...
  16. 免费的桌面主题按钮 V1.0
  17. 低功率、运动传感器 PYQ 1548/7659 特性及应用
  18. 苹果手机用什么软件测试续航,苹果哪个系统最耗电 iOS10/11/12/13电池续航测试
  19. 学习vue笔记(5)
  20. 2020年了,IT外企还香吗?

热门文章

  1. keil烧录hex文件
  2. 数组属于一种原生类_前端程序员面试你应该懂的原生JS——1
  3. 多项式插值法的Python程序
  4. AutoCAD 2012开发环境配置
  5. ubuntu 安装gitk
  6. VTK和ITK中的坐标系统
  7. R 数据处理 流程目录及总结(学习生信学习手册的自我梳理)
  8. yarn在VSCode中无法执行,因为在此系统上禁止运行脚本。解决方法
  9. Spark开发之maven配置
  10. http://www.cnblogs.com/plexwin/archive/2005/10/28/263888.html