Nos gustaría utilizar la lógica de tiempo (YTD, Sameperiodlastyear) en nuestro informe y, por lo tanto, necesitamos una ‘tabla de fechas’. Ver: https://docs.microsoft.com/en-us/power-bi/desktop-date-tables
La solución que creamos no nos permite crear un conjunto de datos utilizando Power BI Desktop, por lo que necesitamos crear el conjunto de datos utilizando la API.
¿Hay alguna forma de crear una tabla de fechas dinámica en un ‘¿Push dataset ‘(un conjunto de datos creado por la API)? La mejor manera sería crear una tabla calculada con una declaración DAX como CALENDARAUTO ().
Como último recurso, podríamos enviar una tabla de fechas con las fechas reales en las filas, pero si es posible, quiero usar una tabla calculada.
phil_harris
Hola,
Sí, esto es un verdadero dolor en el cuello. El Push DataSet no parece poder aplicar un atributo «IsDateTable» a un conjunto de datos.
También intenté usar Medidas para crear las columnas, usando CALENDARAUTO (), sin embargo, esto tampoco parece funcionar.
Como una solución de pirateo para esto, genero una tabla usando la API, luego simplemente genero las columnas en el código: ex: De hecho, aún más está roto, ya que no puede «ordenar» un objeto visual por una columna no visual, como está a menudo se requiere para Mes, u otros campos Alfa, ya que el orden predeterminado es Alph ion el visual. Seguro que me gustaría que esto funcionara un poco mejor.
Dado que no puede designar una tabla como una «Tabla de fecha especial», debe agregar explícitamente una relación a la fecha y las columnas.
Código de pirateo simple:
var dataRowsReq = new PostRowsRequest ();
// PSH – Debido a que no puedo hacer que CALENDARAUTO () DAX funcione, los generaré aquí … int monthIdx = 0; int quarterIdx = 0; var calPrev = new CalendarPbi (); var dateStart = new DateTime (2015, 1, 1); var dateEnd = new DateTime (2021, 12, 31); var fechas = nueva lista (); para (var dt = dateStart; dt <= dateEnd; dt = dt.AddDays (1)) { var cal = new CalendarPbi (); cal.Date = dt.ToString («MM / dd / aaaa»); cal.Year = String.Format («CY {0: yyyy}», dt); cal.Month = String.Format («{0: aaaa MM}», dt); // PBI BrainDead – Necesito ordenar aquí … cal.Quarter = String.Format («{0: yyyy} Q {1}», dt, ((dt.Month + 2) / 3));
// Ordenar Idxss … if (mes cal.! = mes cal. anterior) { monthIdx ++; }