Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas tardes,
EL cierre de mes en la empresa donde trabajo son los 25 de cada mes. Estoy mostrando las ventas de cada mes pero muestro el mes completo.
He intentado con algunos calendarios maestros pero no me funciona.
Como podría hacer para que por ejemplo si seleccionas:
Junio 2020 sea = 26/05/2020 al 25/06/2020.
Julio 2020 sea = 26/06/2020 al 25/07/2020.
Hola @ShirSandoval
Quizas te falta un poco de practica con calendarios; simule el problema que tienes con un archivo de ventas con datos para los años: 2012, 2013 y mediados del 2014; el archivo contiene informacion transaccional, lo cual me ayuda en ilustrar el procedimientos; aqui la informacion general de los archivos que tengo:
Calendar_Temp:
Load
RowNo() As Record,
Date(MakeDate(2011, 12, 31) + RowNo(), 'YYYY/MM/DD') As [Invoice Date],
MakeDate(2011, 12, 31) + 6 + RowNo() As Sales_Date
AutoGenerate (1200);
NoConcatenate
Calendar:
Load *,
Year(Sales_Date) As Sales_Year,
Month(Sales_Date) As Sales_Month
Resident Calendar_Temp;
Drop Table Calendar_Temp;
El calendarion contiene 1200 records, comenzando el: 31.Dec.2011 + 1 (es decir: 01.Jan.2012) y se extiende por dos años y medio (esto es debido a que la data que encontre es por 2 años y medio, en tu caso sera algo diferente).
El Data Model de mi application:
El Diagrama muestra que mis ventas fueron asociadas con el Calendario en la columna [Invoice Date], lo cual es perfecto; pero para efectos de reportes debo utilizar la columna Sales_Date, porque esta es la fecha que cumple con el requerimiento de tu reporte.
Anexo el QVF sin data, porque era demasiado grande, tambien agrego otra imagen que compara el sumario de ventas entre los dos calendarios; el de la izquierda muestra el calendario standard, mientras que a la derecha los resultados con el calendario especial.
Por favor, si tienes dudas pregunta !!!
Es bien simple, utiliza la siguiente expresion para determinar el numero de dias que se nececitan!
Let TargetDays = Today() - MakeDate(2011, 12, 31) + 1;
Ignoro si tu fecha inicial sigue siendo 13.Dec.2011, si la cambiastes ajusta la expresion para que emplee las fecha que utilizas, y luego, cambian el AutoGenerate de esta forma
AutoGenerate ($(TargetDays))
Tambien puedes colocar la expresion directamente en el AutoGenerate()
AutoGenerate (Today() - MakeDate(2011, 12, 31) + 1)
Saludos,
Yo creo que seria mejor introducir un "Calendario basado en periodos" (No quiero escribir Calendario Financiero, pero es realmente el nombre con el cual se conocen). Cualquiera de los Calendarios Maestros que Usted tiene, pueden ser utilizados, asi que no tiene que preocuparse y el impacto en la solucion sera menor; basicamente introduzca una nueva columna, la cual puede llamar "Periodo", la cual contendra el mes actual cuando el dia sea menor o igual que 25, y el proximo mes cuando el dia sea mayor que 25; claro, tendra que ajustar esta formula cuando llegue al 26 de Diciembre, porque alli, el periodo se re-inicializar en 1 (Siempre y cuando los resultados de los dias finales del año correspondan al proximo año - para aclarar esta duda hable con las personas de Finanzas que ellos son especialistas en este tipo de calendarios y le podran informar a cual año corresponden los resultados de los ultimos dias del año.
Espero que ayude, y buena suerte.
Hola sorry he intentado lo que me dices y no me funciona. Soy nueva en esto. @ArnadoSandoval
Esto es lo que tengo actualmente, pero no funciona ya que eso es mes calendario es decir en julio debo incluir las ventas de 26/06 en adelante.
Hola @ShirSandoval
Quizas te falta un poco de practica con calendarios; simule el problema que tienes con un archivo de ventas con datos para los años: 2012, 2013 y mediados del 2014; el archivo contiene informacion transaccional, lo cual me ayuda en ilustrar el procedimientos; aqui la informacion general de los archivos que tengo:
Calendar_Temp:
Load
RowNo() As Record,
Date(MakeDate(2011, 12, 31) + RowNo(), 'YYYY/MM/DD') As [Invoice Date],
MakeDate(2011, 12, 31) + 6 + RowNo() As Sales_Date
AutoGenerate (1200);
NoConcatenate
Calendar:
Load *,
Year(Sales_Date) As Sales_Year,
Month(Sales_Date) As Sales_Month
Resident Calendar_Temp;
Drop Table Calendar_Temp;
El calendarion contiene 1200 records, comenzando el: 31.Dec.2011 + 1 (es decir: 01.Jan.2012) y se extiende por dos años y medio (esto es debido a que la data que encontre es por 2 años y medio, en tu caso sera algo diferente).
El Data Model de mi application:
El Diagrama muestra que mis ventas fueron asociadas con el Calendario en la columna [Invoice Date], lo cual es perfecto; pero para efectos de reportes debo utilizar la columna Sales_Date, porque esta es la fecha que cumple con el requerimiento de tu reporte.
Anexo el QVF sin data, porque era demasiado grande, tambien agrego otra imagen que compara el sumario de ventas entre los dos calendarios; el de la izquierda muestra el calendario standard, mientras que a la derecha los resultados con el calendario especial.
Por favor, si tienes dudas pregunta !!!
@ArnadoSandoval excelente todo funciono como me lo explicas. De hecho las ventas de hoy ya me figuran como Agosto
mil gracias por tu tiempo y dedicación.
@ArnadoSandoval una consulta mas:
con el AutoGenerate (7000); me crea la cantidad de registros que le estoy indicando obvio, pero como puedo modificarlo para que genere hasta el día de hoy y todos los días se actualice, es decir que muestre la fecha máxima que hay en mi base de datos?
Gracias.
Es bien simple, utiliza la siguiente expresion para determinar el numero de dias que se nececitan!
Let TargetDays = Today() - MakeDate(2011, 12, 31) + 1;
Ignoro si tu fecha inicial sigue siendo 13.Dec.2011, si la cambiastes ajusta la expresion para que emplee las fecha que utilizas, y luego, cambian el AutoGenerate de esta forma
AutoGenerate ($(TargetDays))
Tambien puedes colocar la expresion directamente en el AutoGenerate()
AutoGenerate (Today() - MakeDate(2011, 12, 31) + 1)
Saludos,
Perfecto! Gracias una vez mas.