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

Community Tip - Learn all about PTC Community Badges. Engage with PTC and see how many you can earn! X

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

Snoopy_hu
11-Garnet

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

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

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
11-Garnet
(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,
Email: psp316r@outlook.com,
Mobile: +91 8099838001.

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

Announcements


Top Tags