How to determine if a column is visible or hidden in MPP file (C# .NET)

Hello,

We have an issue during Project import that’s causing a serious usability issue with our product. Our online product is called Office Timeline Online and is accessible here: Build native PowerPoint timelines online | Office Timeline Online

In the product, we have built a Project importer (Build native PowerPoint timelines online | Office Timeline Online) that turns Project data into a timeline. We’ve run into a serious issue during the import process that makes the UX very confusing to end users, and it looks terrible.
Specifically, during import, we are unable to identify from the Aspose APIs if a column is visible or not.
When we pull column data from the .mpp file, we end up with at least 6 additional date columns and a few other % complete columns that are not visible in Microsoft Project. Even if the user never created these columns, they still get created and pulled.

image.png (68.6 KB)

We need to be able to show only visible columns, not all repeat columns. In the attached zip file, I created a new Project file with a title, duration, start and end dates. When we import, we get a lot more than just those 4 columns. Simple Test Project.zip (26.8 KB)

Can you please help us figure out how to display only columns that are visible to the end user in Project?

You can use the online app to test this yourselves. It doesn’t require any payment or account.

Thanks,
Eddy

@officetimeline,

I have observed the issue shared by you and we need to investigate the issue on our end. An issue with ID TASKSNET-3761 has been created in our issue tracking system to further investigate and resolve the issue. Can you please also share the used sample project on your end too that we may associate with ticket.

We have a web app, you can use it here for free: Build native PowerPoint timelines online | Office Timeline Online

Is that what you need?

@officetimeline,

We will share or request further feedback with you as soon as the issue will be investigated.

Hello, this is becoming a critical issue for us as we do a deeper integration with Project. Can you please provide an update? We need to ensure that we do not show columns that are not visible to end users. How can we programmatically figure out using the ASPOSE.Tasks APIs what is visible to the user in Project and what is not?

Can you please provide an update?

Thanks,
Eddy

@officetimeline,

Actually, the project.DefaultView.Table.TableFields enumeration contains visible columns only. So you can use it to check whether column is visible or not.

            Project project = new Project(@"Simple Test Project.mpp");

            foreach (var field in project.DefaultView.Table.TableFields)
            {
                Console.WriteLine(field.Field);
            }

The resulting output is:

TaskID
TaskIndicators
TaskManual
TaskName
TaskDuration
TaskStart
TaskFinish
TaskPredecessors
TaskResourceNames

Screenshot_1.png (24.5 KB)