cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Did you know you can set a signature that will be added to all your posts? Set it here! X

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

Snoopy_hu
9-Granite

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

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

1 ACCEPTED SOLUTION

Accepted Solutions

  • 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.

View solution in original post

6 REPLIES 6
Rocko
17-Peridot
(To:Snoopy_hu)

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_hu
9-Granite
(To:Rocko)

Ok thanks, I'll check the logs afterward!

hi @Snoopy_hu ,

 

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

 

Thanks,

Shashi Preetham

Yes, I chose the imagelink type.

  • 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.

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

Top Tags