Skip to main content
11-Garnet
March 21, 2024
Solved

How to add an image from a repository to a table?

  • March 21, 2024
  • 3 replies
  • 1902 views

Hello,everyone!

Why does it fail when I use the AddDataTableEntry service to add an image from a repository to a table?

企业微信截图_17110097947317.png企业微信截图_17110100109309.png企业微信截图_1711009854871.png

Best answer by Sathishkumar_C
  • Create one more field with "IMAGE" basetype
  • Use GetImage() to get the image from respository  and insert into infotable
// CreateInfoTableFromDataShape(infoTableName:STRING("InfoTable"), dataShapeName:STRING):INFOTABLE(test_grid_image)
let image_data = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape({
 infoTableName: "InfoTable",
 dataShapeName: "test_grid_image"
});

// result: INFOTABLE dataShape: "FileSystemFileWithLinks"
var fileList = Things["SystemRepository"].GetFileListingWithLinks({
	path: undefined /* STRING */,
	nameMask: undefined /* STRING */
});

var fileCount = fileList.length;
var f = 0;
for( ; f < fileCount; f++){
 let newEntry = {
 path: undefined, // STRING [Primary Key]
 size: undefined, // NUMBER
 downloadLink: undefined, // HYPERLINK
 lastModifiedDate: undefined, // DATETIME
 name: undefined, // STRING
 img: Things["SystemRepository"].LoadImage({
 path: "/image.png" /* Replace with youe actual image paths*/
 }) // IMAGE
 }; 
 image_data.AddRow(newEntry);
}
result = image_data;

It worked for me.

3 replies

Rocko
19-Tanzanite
March 21, 2024

Hard to tell with the information given. Check the logs. Maybe the user lacks access/service execute privileges to access the file.

Maybe it does not get added to the DataTable. Maybe it's not queried correctly. Maybe the type is wrong.

Check if the link is contained in the datatable. Check the link is contained in the infotable you use as data source in the grid.

Snoopy_hu11-GarnetAuthor
11-Garnet
April 3, 2024

Ok thanks, I'll check the logs afterward!

18-Opal
March 22, 2024

hi @Snoopy_hu ,

 

In Column format of the colum "cImageLink" what did you give it?, it should ImageLink type

 

Thanks,

Snoopy_hu11-GarnetAuthor
11-Garnet
April 3, 2024

Yes, I chose the imagelink type.

17-Peridot
March 22, 2024
  • Create one more field with "IMAGE" basetype
  • Use GetImage() to get the image from respository  and insert into infotable
// CreateInfoTableFromDataShape(infoTableName:STRING("InfoTable"), dataShapeName:STRING):INFOTABLE(test_grid_image)
let image_data = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape({
 infoTableName: "InfoTable",
 dataShapeName: "test_grid_image"
});

// result: INFOTABLE dataShape: "FileSystemFileWithLinks"
var fileList = Things["SystemRepository"].GetFileListingWithLinks({
	path: undefined /* STRING */,
	nameMask: undefined /* STRING */
});

var fileCount = fileList.length;
var f = 0;
for( ; f < fileCount; f++){
 let newEntry = {
 path: undefined, // STRING [Primary Key]
 size: undefined, // NUMBER
 downloadLink: undefined, // HYPERLINK
 lastModifiedDate: undefined, // DATETIME
 name: undefined, // STRING
 img: Things["SystemRepository"].LoadImage({
 path: "/image.png" /* Replace with youe actual image paths*/
 }) // IMAGE
 }; 
 image_data.AddRow(newEntry);
}
result = image_data;

It worked for me.

Snoopy_hu11-GarnetAuthor
11-Garnet
April 3, 2024

Ok thanks, I'll give it a try as soon as possible