web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Automatically add proj...
Power Apps
Answered

Automatically add project to repetitive code and optimize code

(0) ShareShare
ReportReport
Posted on by 139

An excellent night with everyone, I am building an application and it happens that I have a very large code for 4 projects. My question is if it can be automated so that when I add a project it can be added to all the codes.

The projects are: "Amancae", "Aquilaria", "Gardenia" and "Sauco".

What I need is that when a project called "Lilas" is added I don't have to add it to each of the codes. Is it possible to achieve this?
Also, if you could help me improve the code, maybe it can be optimized more?

With(
 {
 wRacProg: Filter(
 EmpresasPorMes;
 (Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate)
 );
 wRaHecho: Filter(
 DBActoCondiciones;
 Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate
 );
 wRacCerrado: Filter(
 DBActoCondiciones;
 IDEstado = Value(2) And Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate
 );
 wInProg: Filter(
 InspeccionPorMes;
 (Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate)
 );
 wInHecho: Filter(
 DBControlInspeccion;
 FechaInspeccion >= DatePicker1.SelectedDate && FechaInspeccion <= DatePicker2.SelectedDate
 );
 wOPTProg: Filter(
 OptPorMes;
 (Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate)
 );
 wOPTHecho: Filter(
 DBOPT;
 Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate
 )
 };
 Concurrent(
 Set(
 varRACPrAm1;
 Sum(
 Filter(
 wRacProg;
 Proyecto = "Amancae"
 );
 Cantidad
 )
 );
 Set(
 varRACPrAq1;
 Sum(
 Filter(
 wRacProg;
 Proyecto = "Aquilaria"
 );
 Cantidad
 )
 );
 Set(
 varRACPrG1;
 Sum(
 Filter(
 wRacProg;
 Proyecto = "Gardenia"
 );
 Cantidad
 )
 );
 Set(
 varRACPrS1;
 Sum(
 Filter(
 wRacProg;
 Proyecto = "Sauco"
 );
 Cantidad
 )
 );
 Set(
 varRACHechAm1;
 CountRows(
 Filter(
 wRaHecho;
 Proyecto = "Amancae"
 )
 )
 );
 Set(
 varRACHechAq1;
 CountRows(
 Filter(
 wRaHecho;
 Proyecto = "Aquilaria"
 )
 )
 );
 Set(
 varRACHechG1;
 CountRows(
 Filter(
 wRaHecho;
 Proyecto = "Gardenia"
 )
 )
 );
 Set(
 varRACHechS1;
 CountRows(
 Filter(
 wRaHecho;
 Proyecto = "Sauco"
 )
 )
 );
 Concurrent(
 Set(
 varRACCerAm1;
 CountRows(
 Filter(
 wRacCerrado;
 Proyecto = "Amancae"
 )
 )
 );
 Set(
 varRACCerAq1;
 CountRows(
 Filter(
 wRacCerrado;
 Proyecto = "Aquilaria"
 )
 )
 );
 Set(
 varRACCerG1;
 CountRows(
 Filter(
 wRacCerrado;
 Proyecto = "Gardenia"
 )
 )
 );
 Set(
 varRACCerS1;
 CountRows(
 Filter(
 wRacCerrado;
 Proyecto = "Sauco"
 )
 )
 );
 Set(
 varInPrAm1;
 Sum(
 Filter(
 wInProg;
 Proyecto = "Amancae"
 );
 Cantidad
 )
 );
 Set(
 varInPrAq1;
 Sum(
 Filter(
 wInProg;
 Proyecto = "Aquilaria"
 );
 Cantidad
 )
 );
 Set(
 varInPrG1;
 Sum(
 Filter(
 wInProg;
 Proyecto = "Gardenia"
 );
 Cantidad
 )
 );
 Set(
 varInPrS1;
 Sum(
 Filter(
 wInProg;
 Proyecto = "Sauco"
 );
 Cantidad
 )
 );
 Set(
 varInHechAm1;
 CountRows(
 Filter(
 wInHecho;
 Proyecto = "Amancae"
 )
 )
 );
 Set(
 varInHechAq1;
 CountRows(
 Filter(
 wInHecho;
 Proyecto = "Aquilaria"
 )
 )
 );
 Set(
 varInHechG1;
 CountRows(
 Filter(
 wInHecho;
 Proyecto = "Gardenia"
 )
 )
 );
 Set(
 varInHechS1;
 CountRows(
 Filter(
 wInHecho;
 Proyecto = "Sauco"
 )
 )
 );
 Set(
 varOPTPrAm1;
 Sum(
 Filter(
 wOPTProg;
 Proyecto = "Amancae"
 );
 Cantidad
 )
 );
 Set(
 varOPTPrAq1;
 Sum(
 Filter(
 wOPTProg;
 Proyecto = "Aquilaria"
 );
 Cantidad
 )
 );
 Set(
 varOPTPrG1;
 Sum(
 Filter(
 wOPTProg;
 Proyecto = "Gardenia"
 );
 Cantidad
 )
 );
 Set(
 varOPTPrS1;
 Sum(
 Filter(
 wOPTProg;
 Proyecto = "Sauco"
 );
 Cantidad
 )
 )
 );
 Set(
 varOPTHechAm1;
 CountRows(
 Filter(
 wOPTHecho;
 Proyecto = "Amancae"
 )
 )
 );
 Set(
 varOPTHechAq1;
 CountRows(
 Filter(
 wOPTHecho;
 Proyecto = "Aquilaria"
 )
 )
 );
 Set(
 varOPTHechG1;
 CountRows(
 Filter(
 wOPTHecho;
 Proyecto = "Gardenia"
 )
 )
 );
 Set(
 varOPTHechS1;
 CountRows(
 Filter(
 wOPTHecho;
 Proyecto = "Sauco"
 )
 )
 )
 )
)

 very grateful for your support. Have a wonderful day.

Categories:
  • Verified answer
    CU-18081211-6 Profile Picture
    9,272 Moderator on at

    @Daniel20 ,

    My thoughts:

    Set(projects;["Amancae";"Aquilaria";"Gardenia";"Sauco";"Lilas"]);;
    With(
     {
     wRacProg: Filter(
     EmpresasPorMes;
     (Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate)
     );
     wRaHecho: Filter(
     DBActoCondiciones;
     Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate
     );
     wRacCerrado: Filter(
     DBActoCondiciones;
     IDEstado = Value(2) && Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate
     );
     wInProg: Filter(
     InspeccionPorMes;
     (Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate)
     );
     wInHecho: Filter(
     DBControlInspeccion;
     FechaInspeccion >= DatePicker1.SelectedDate && FechaInspeccion <= DatePicker2.SelectedDate
     );
     wOPTProg: Filter(
     OptPorMes;
     (Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate)
     );
     wOPTHecho: Filter(
     DBOPT;
     Fecha >= DatePicker1.SelectedDate && Fecha <= DatePicker2.SelectedDate
     )
     };
    ClearCollect(
     projectsData,
     ForAll(projects,
     {
     project:Value;
     varRACPr:Sum(Filter(wRacProg;Proyecto=Value);Cantidad);
     varRACHech:CountRows(Filter(wRaHecho;Proyecto=Value));
     varRACCer:CountRows(Filter(wRacCerrado;Proyecto=Value));
     varInPr:Sum(Filter(wInProg;Proyecto=Value);Cantidad);
     varInHech:CountRows(Filter(wInHecho;Proyecto=Value));
     varOPTPr:Sum(Filter(wOPTProg;Proyecto=Value);Cantidad);
     varOPTHech:CountRows(Filter(wOPTHecho;Proyecto=Value));
     }
     )
    )
    )

    For each new Project you want to include just update the projects variable. The projects variable can be defined preferably in App Formulas (as constants) using:

    projects=["Project1";"Project2";"Project3"];;

    The result is a collection where on each row you have the relevant data you need. Wherever you need to access info about a specific project and a specific property use: 

    LookUp(projectData;Project="specificProject";specificProperty)

     Hope it helps !

  • Daniel20 Profile Picture
    139 on at

    Thank you very much, it's just what I needed.
    I am very grateful and excited with the response since I will be able to continue advancing with the app.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Leaderboard > Power Apps

#1
11manish Profile Picture

11manish 352 Super User 2026 Season 2

#2
M Bilal Khan Profile Picture

M Bilal Khan 323

#3
Mohsin Ali Profile Picture

Mohsin Ali 226

Last 30 days Overall leaderboard