Query para sumar cantidad vendida por mes.
Estimados:
Tengo un query en la que saco varios campos de distintas tablas, una de ellas es INV1 desde la cual saco la cantidad vendida por producto.
Obviamente que esta consulta me trae las ventas una a una, pero yo necesito el total por mes, alguien sabe como lo puedo hacer?
Ademas es posible que los meses me salgan por columnas y no por filas?
Gracias.
Saludos a todos,
Viviana Medina
Buenos días:
Este query te puede servir para sacar la información que necesitas, solo es cuestión de que cambies un poco la sintáxis para que obtengas la información que quieres. En mi caso lo hice para sacar las ventas diarias del cliente mostrador.
Ya que tú deseas sacar tu venta por articulo debes hacer algo similar, ya que deberás restar las cancelaciones hechas también para obtener la venta real. De ésta forma acomodas tus filas en columnas, y puesto que tú variables dinámicas son las fechas podrás obtener el rango de mes que desees.
/*SELECT FROM .[OCRD] T2,[dbo].[ORDR] T3 */ DECLARE @FECHA1 DATETIME DECLARE @FECHA2 DATETIME
SET @FECHA1 = /* T3.DOCDATE */ '[%0]'
SET @FECHA2 = /* T3.DOCDATE */ '[%1]'
SELECT Fecha 'FECHA', sum(Venta_Directa) 'VENTA DIRECTA',sum(Cancelaciones ) 'NOTAS CRDITO', sum(Venta_Credito) 'VENTA CREDITO' FROM ( SELECT distinct T0.CreateDate as 'Fecha' , sum(T0.DocTotal) as 'Venta_Directa' ,0 as Cancelaciones, 0 as Venta_Credito FROM NNM1 T1 INNER JOIN OINV T0 ON T0.Series = T1.Series WHERE T0.CardCode = 'BMOS' AND T1.SeriesName = 'bola' and T0.CreateDate between @FECHA1 and @FECHA2 group by T0.CreateDate
union all
SELECT T0.CREATEDATE, 0,SUM(T0.DocTotal),0 FROM ORIN T0, NNM1 T2 WHERE T0.Series = T2.Series AND T2.SeriesName = 'bola' and T0.CreateDate between
@FECHA1 and @FECHA2 group by T0.CREATEDATE union all SELECT T0.CreateDate ,0,0,SUM(T0.DocTotal) FROM NNM1 T1 INNER JOIN OINV T0 ON T0.Series = T1.Series WHERE T0.CardCode <> 'BMOS' AND T1.SeriesName = 'bola' and T0.CreateDate between @FECHA1 and @FECHA2 group by T0.CreateDate)AS T88 group by Fecha
Similar Messages
-
¿Como pasar de renovación anual a mensual para aprovechar la plataforma unos meses más?
¿Como pasar de renovación anual a mensual para aprovechar la plataforma unos meses más? Mañana termina mi subscripción a formscentral. Me acabo de enterar que se cierra en junio. Me gustaría poder renovar por un par de meses más y no de forma anual como lo tenía activado hasta ahora. ¿Alguien sabe como puedo hacerlo?
These ones are typically caused by underlying problems on the PC that also often cause Windows Updates to fail to install. If we can fix the Windows Update trouble, we can usually get the iTunes trouble cleaned up en passant.
Go into your Windows update and try to check for new updates. If updates install, stock up on the ones you're behind on, restarting the PC if requested to do so. After the restart, try installing iTunes again. Does it go through this time for you?
If windows updates fail to install, go into your Update History and doubleclick the failures. What alphanumeric codes appear for you? (For example, 8007000B.) -
Mi pago por mes se emitió y lo pague, pero resulta que adobe me dice que no estoy suscrita a ningún plan por decirlo asi, la verdad que perdi plata y quiero poder bajarme los programas que estoy pagando.
Disculpa pero creo que no es la forma de expresar y tratar la dificultad que tienes con tu subscripción.
Puedes explicar lo de: por decirlo asi, Adobe te dice que no estas suscrita a ningun plan?
- Acaso te has puesto en contacto directo con ellos?
- Has intentado bajarte los programas?
- Sabes cómo hacerlo?
- Has consultado la información y ayuda sobre Creative Cloud?
Tienes que descargar una aplicacion o panel llamado Adobe Creative Cloud, abrirlo introduciendo tu Adobe ID (clave (email) y contraseña), verás una extensa lista de aplicaciones, descarga e instala los programas a los que te hayas suscrito.
Al abrirlos te pedira iniciar sesión o registrarte.
Ayuda de Creative Cloud | Instalación, actualización o desinstalación de aplicaciones
Puedes acudir a este Foro cuando tengas cualquier duda o dificultad, pero por favor no hables de "perder plata", que créeme, no la has perdido.
También puedes ponerte en contacto directamente con Adobe en tu país, por teléfono para cualquier dificultad que no puedas resolver. -
Tabla de Acumulados de Cuentas Contables por Mes
Hola a todos
Alguien sabe si existe una tabla de acumulados por mes para las cuentas contables, lo anterior ya que se requiere hacer una balanza de comprobación de acuerdo a unos criterios de la autoridad
De antemano agradezco su apoyo
SaludosBuen día estimado
En SAP no existe lo que indicas, la tabla de movimientos contables es una sola JDT1 para lineas OJDT para cabecera, y en ellas están todas las transacciones contables.
Saludos -
Query para buscar coincidencia de dos productos
Buenas.
Necesito realizar lo siguiente, tengo creada una query para buscar productos que contiene una Materia Prima, con ello no tengo problemas, se ingresa el código sap asociado y me muestra el código del articulo y su descripción, mas el código del articulo que lo contiene y misma descripción de el, con la siguiente query.
Select a.Code, b.ItemName, c.Code, d.ItemName, c.Quantity
From OITT a
Inner Join OITM b on a.Code = b.ItemCode
Inner Join ITT1 c on a.Code = c.Father
Left Join OITM d on c.Code = d.ItemCode
Where c.Code = [%0]
El punto es que no puedo lograr que me muestre coincidencias de ingredientes en dos materias primas, al colocar un "AND" me pide ambos codigos pero no muestra nada, al colocar "OR" me pide dos codigos, pero me muestra los productos que tienen una u otra no solo el producto que contiene ambas.
Select a.Code, b.ItemName, c.Code, d.ItemName, c.Quantity
From OITT a
Inner Join OITM b on a.Code = b.ItemCode
Inner Join ITT1 c on a.Code = c.Father
Left Join OITM d on c.Code = d.ItemCode
Where c.Code = [%0] or c.Code = [%1]
Doy ejemplo del problema escrito, tengo un pastel codigo 002, compuesto por mantequilla, agua, sal, harina, y tengo otro pastel codigo 003 compuesto por margarina, agua, sal, harina de soya, entonces necesito que me muestre los componentes en comun que tienen dichos codigos.
Si alguien pudiese ayudar lo agradecería mucho.Comprueba si esto te sirve. Saludos.
/*SELECT FROM [dbo].[OITM] T0*/
declare @ITEM1 as nvarchar(max)
/* WHERE */
set @ITEM1 = /* T0.ItemCode */ '[%0]'
/*SELECT FROM [dbo].[OITM] T1*/
declare @ITEM2 as nvarchar(max)
/* WHERE */
set @ITEM2 = /* T1.ItemCode */ '[%1]'
select code
from oitt a
where
charindex ('"'+@ITEM1+'"',(select stuff((
select ',"'+code +'"'from itt1
where father = (a.code)
for xml path ('')
),1,1,'')),1)<>0
AND
charindex ('"'+@ITEM2+'"',(select stuff((
select ',"'+code +'"'from itt1
where father = (a.code)
for xml path ('')
),1,1,'')),1)<>0 -
Query para poder desplegar Meses del Año en columnas
Jovenes disculpen, alguien me podria indicar como desplego los meses del año en columnas y solo se visualice los meses que tengan movimientos, y a la vez me muestre el total de compras de un cliente.
Ej. Enero Febrero
Juan Milian 10 0
Erick Rodas 0 10
De antemano muy agradecido por la ayudaHola...
Si en tu consulta quieres traer el detalle de los documentos y el total por Cliente, entonces te sugiero que revises el siguiente código..
SELECT T0.CardCode as 'Codigo Cliente', T0.DocDate as 'Fecha Documento', T0.DocEntry as 'N° Doc', T0.CardName as 'Nombre Cliente', T2.Phone1 as 'Telefono', T2.CntctPrsn as 'Persona de Contacto', T0.DocTotal as 'Total Doc',
(SELECT SUM(Y.DocTotal) FROM OINV Y WHERE Y.CardCode = T0.CardCode and MONTH(Y.DocDate) = '01')
FROM OINV T0 INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode WHERE MONTH(T0.DocDate) = '01'
Espero te sea de ayuda
Saludos Cordiales,
PD: Debes tener cuidado con el campo DocTotal, porque solo verás totales pero estos pueden estar reflejados en distintas monedas. -
Colegas,
Tengo un campo de usuario U_CantidadTotal
en el cual necesito que aparezca el cantidad total de las piezas de la orden de venta.
cómo sería el query?
Saludos!Hola
Tu busqueda formateada deberia quedar como
DECLARE @Var1 INT
SET @Var1 = (SELECT SUM($[$38.11.NUMBER]))
SELECT @Var1
Slds -
Alguien ha hecho, visto o necesitado alguna alarma para cuando el costo de un articulo sube mas de un 10-15% ??
Actualmente se tienen algunos detalles de errores humanos al capturar los costos de importacion y se quiere poner una alarma para saber cuando aumente un 10-15% el costo de un articulo, ya sea alarma o autorizacion y asi detectar estos movimientos.
Alguien ha hecho algo de eso o visto ?
Siento que debe ser un query en donde compare el ultimo costo de ese articulo con el nuevo sin embargo no se por donde empezar, alguien que me diera un norte?
O alguien ha hecho algo similar?
Edited by: Rui Pereira on Jun 24, 2008 6:51 PMCarlos,
Alguna vez lo pense en implementar, casi como desafio mental y me encontré con el sgte problema a resolver:
-. El costo de un item no va quedando de manera historica, es decir, si quieres saber el costo de un item a un momento X del tiempo pasado, significa que tienes que analizar las transacciones desde el dia CERO hasta ese momento.
¿cómo intentaría hacerlo?
1. como un store procedure ON-demand, es decir, cuando alguien lo necesite lo ejecuta.
2. ó ese store procedure como una alerta a ejecutarse 1 vez al dia o 2 veces al dia como máximo. Esto debido a que no es poco análisis y puedes cargar bastante el server si es mucha historia.
3. El store procedure lo haria analizando la tabla OINM, pues alli esta la historia de movimientos item a item, bodega a bodega.
4. Armaría una tabla temporal donde guardaria el costo del item por transaccion de la OINM, por FECHA; ITEM Y BODEGA.
5. El dato del porcentaje lo dejaria como parametro en alguna USER TABLE.
6. en función de la tabla temporal (tablas SQL Server #[nombre tabla]) y con el parametro, analizaría el valor del costo del registro X comparado con el registro X+1 para asi ir guardando un campo en la misma tabla de usuario que guarde la variación entre el costo anterior y el siguiente.
7. Finalmente el reporte debe mostrar aquellos registros cuya variación sea más alta y en función del porcentaje ingresado.
Esto fue lo que alguna vez pensé en hacer, pero que no logré resolver por falta de tiempo, pero sería una idea de por donde empezar.
Debes tener cuidado con:
-. lo que te decia al comienzo el mayor problema es contra que comparas el costo actual, pues una vez que una nueva transacción es ingresada a B1, el costo anterior es actualizado.
-. debes validar los costos que con las querys obtengas, con los costos que B1 muestra en los reportes para asi estar seguros que tienes bien los calculos, después que entra cualquier transacción de inventario.
Si lo logras hacer, no olvides publicarlo en el foro, pues sería una herramienta bastante util.
saludos -
Buenos días,
Alguien conoce como realizar una query que me de cuales son los pedidos o ordenes de fabricación que tienen todas las piezas y por lo tanto pueden ser montados??
Muchas graciasHola
La consulta sería:
SELECT T0.DocNum FROM OWOR T0 inner join WOR1 T1 on T0.DocEntry = T1.DocEntry
inner join OITW T2 on T1.ItemCode = T2.ItemCode
T0.DueDate >= [%0] and T0.DueDate <= [%1] and T0.Status <> 'L'
group by T0.DocNum
having sum(T1.PlannedQty) <= sum(T2.OnHand)
Esta consulta considera el stock total de la empresa, y te pide como parámetro el rango de fechas a analizar.
En tu post dices saber qué pedidos, entiendo que son pedidos de venta que incluyen estos artículos. Cuando creas los pedidos de venta, ¿le asocias documento de compras o de fabricación?
Un saludo
Agustín Marcos Cividanes -
Conecte ao iTunes para usar Notificações por Push (???!!)
Algumas pessoas já estão com esse problema a algum tempo.
Acontece que não dá pra ser avisado de notificações dos APPs (que não são originais do iPhone)
e esse aviso (pop up) abre TODA vez que acessamos esses APPs..
*desde a instalação do iOS 7
Alguma solução pra isso??Cara Erica,
Obrigado por ter contactado as Comunidades de Suporte Apple.
Para redefinir o seu iPhone (fazer um reset e voltar às definições de fábrica), deverá seguir os seguintes passos:
Vá até aos Ajustes do seu iPhone.
Abra o separador "Geral".
Navegue até ao final da lista de separadores e selecione "Redefinir".
Selecione "Redefinir Todo o Conteúdo e Ajustes".
Confirme a redefinição e aguarde que o telefone reinicie.
ATENÇÃO: A opção "Redefinir Todo o Conteúdo e Ajustes" apagará todo o conteúdo que está no iPhone (Contactos, Emails, Mensagens, Calendários, Aplicações, Músicas, Filmes, Programas de Televisão, etc.).
Atentamente,
Gonçalo Matos
Estou aqui para ajudar. Clique no botão "Reply" no caso de ter outra questão ou necessitar de outro esclarecimento para que eu possa ajudar da melhor forma que conseguir. -
por que ya no sale ios 4.x para ipod 1g?
Simple, porque no correría "bien", "bien" según Apple. Probablemente sea un tema de hardware (espero) y no una medida para hacerte comprar un iPod nuevo.
-
Mala señal para iphone en chile por movistar
Lamentablemente hay algo que en chile empaña lo espectacular que es el iphone.
la señal que provee movistar en chile es mala. tengo los siguientes problemas:
- se pega
- se cortan las llamadas
- cuando hablo hace interferencia con un transformer (ruido metalico)
- no puedo marcar
- la señal se cae
- no funciona el 3g
etc, etc, etc.......algunos dicen que es problema del iphone, pero a otra personas con movistar no le funciona.
alguien me puede orientar o contar su experiencia.
GRACIASY que haz hecho para intentar remediar le problema?
El Primer paso seria sacar la tarjeta sim y vovlerla a insertar. Con un alfiler o clip expulsar la charola lateral con la sim y posteriormente volverla a insertar.
El siguiente paso, seria reiniciar el telefono a ver si se resuelve. Mante presionado los botones de Home y Encendido simultaneamente hasta que aparezca le logo de Apple en la pantalla.
S aun no se resuelve: Quejate con tu compania de servicios celulares. Ellos son responsables del servicio y la tarjeta Sim. Si no encuentra la red celular tienes que hablar con tu proveedor. Apple no controla los servicios celulares. Solamente provee el dispositivo.
Ellos tendrian que darte solucion si es un problema con sus servicios o reemplazarte el celular si tiene algun fallo y aun esta en garantia. -
Como puedo hacer para liberar mi telefono por medio de appel por imei
hola como puedo liberar mi telefono orange por medio de imei gracias
Ok, ingeniero Felipe, disculpe mi demora pero me encontraba de viaje.
Ingeniero le envio la imagen del trabajo pero en la ultima parte donde se encuentra la salida de datos, al conectarlo al parlante no se escucha nada.
Como lo decia en el mansaje anterior estoy tomando la señal de un microfono normal, y el Psoc se encarga de digitalizar la señal, pero estuve indagando y me dicen que la falla se puede solucionar con un cantificador no lineal, esto con el fin de ralizar la reconstrucción.
Vale tener en cuenta que la señal que se envia y la señal que llega al PC es muy buena, y pracatimente exacta, al compararlas.
Mil gracias por su atencion ingeniero.
Attachments:
Diapositiva1.JPG 49 KB -
Problem with performance in a code.
Hi People! I have problems with the performance of this program. The tables that I use have much data and the program take two hours to finish.
Please, some one tell me how can I make a better performance.
Thanks!
This is the program:
TABLES:
faglflext, "Saldos mensuales por cta.
contable y prf center.
zavg_bal_table,
skat. "Chart of accounts
********************INTERNAL TABLE DEFINITION***************************
DATA: BEGIN OF t_itab1 OCCURS 0.
DATA: rbukrs TYPE faglflext-rbukrs. "Company Code
DATA: racct TYPE faglflext-racct. "Account ID
DATA: prctr TYPE faglflext-prctr. "Profit Center
DATA: kslvt TYPE faglflext-kslvt. "Total of the period in group currency
DATA: ksl01 TYPE faglflext-ksl01. "Total of the period in group currency
DATA: ksl02 TYPE faglflext-ksl02. "Total of the period in group currency
DATA: ksl03 TYPE faglflext-ksl03. "Total of the period in group currency
DATA: ksl04 TYPE faglflext-ksl04. "Total of the period in group currency
DATA: ksl05 TYPE faglflext-ksl05. "Total of the period in group currency
DATA: ksl06 TYPE faglflext-ksl06. "Total of the period in group currency
DATA: ksl07 TYPE faglflext-ksl07. "Total of the period in group currency
DATA: ksl08 TYPE faglflext-ksl08. "Total of the period in group currency
DATA: ksl09 TYPE faglflext-ksl09. "Total of the period in group currency
DATA: ksl10 TYPE faglflext-ksl10. "Total of the period in group currency
DATA: ksl11 TYPE faglflext-ksl11. "Total of the period in group currency
DATA: ksl12 TYPE faglflext-ksl12. "Total of the period in group currency
DATA: ksl13 TYPE faglflext-ksl13. "Total of the period in group currency
DATA: ksl14 TYPE faglflext-ksl14. "Total of the period in group currency
DATA: ksl15 TYPE faglflext-ksl15. "Total of the period in group currency
DATA: ksl16 TYPE faglflext-ksl16. "Total of the period in group currency
DATA: rldnr TYPE faglflext-rldnr. "Ledger in GL Accounting
DATA: rtcur TYPE faglflext-rtcur. "Currency Key
DATA: txt20 TYPE skat-txt20. "Description Text
DATA: saknr TYPE skat-saknr. "G/L account number
DATA: ktopl TYPE skat-ktopl. "Chart of Accounts
DATA: rpmax TYPE faglflext-rpmax. "Period
DATA: total_sum LIKE faglflext-ksl01. "Amount of the first month
DATA: ryear LIKE faglflext-ryear. "Fiscal Year
DATA: year LIKE faglflext-ryear. "Past Year
DATA: day_a TYPE sy-datum.
DATA: per_day TYPE rr_umper.
DATA: average TYPE vtcur12.
DATA: agregate TYPE vtcur12.
DATA: accumulate TYPE vtcur12.
DATA: average_sap TYPE rr_umper.
DATA: END OF t_itab1.
DATA: BEGIN OF t_itab2 OCCURS 0.
DATA: rbukrs TYPE faglflext-rbukrs. "Company Code
DATA: racct TYPE faglflext-racct. "Account ID
DATA: prctr TYPE faglflext-prctr. "Profit Center
DATA: kslvt TYPE faglflext-kslvt. "Total of the period in group currency
DATA: ksl01 TYPE faglflext-ksl01. "Total of the period in group currency
DATA: ksl02 TYPE faglflext-ksl02. "Total of the period in group currency
DATA: ksl03 TYPE faglflext-ksl03. "Total of the period in group currency
DATA: ksl04 TYPE faglflext-ksl04. "Total of the period in group currency
DATA: ksl05 TYPE faglflext-ksl05. "Total of the period in group currency
DATA: ksl06 TYPE faglflext-ksl06. "Total of the period in group currency
DATA: ksl07 TYPE faglflext-ksl07. "Total of the period in group currency
DATA: ksl08 TYPE faglflext-ksl08. "Total of the period in group currency
DATA: ksl09 TYPE faglflext-ksl09. "Total of the period in group currency
DATA: ksl10 TYPE faglflext-ksl10. "Total of the period in group currency
DATA: ksl11 TYPE faglflext-ksl11. "Total of the period in group currency
DATA: ksl12 TYPE faglflext-ksl12. "Total of the period in group currency
DATA: ksl13 TYPE faglflext-ksl13. "Total of the period in group currency
DATA: ksl14 TYPE faglflext-ksl14. "Total of the period in group currency
DATA: ksl15 TYPE faglflext-ksl15. "Total of the period in group currency
DATA: ksl16 TYPE faglflext-ksl16. "Total of the period in group currency
DATA: rldnr TYPE faglflext-rldnr. "Ledger in GL Accounting
DATA: rtcur TYPE faglflext-rtcur. "Currency Key
DATA: txt20 TYPE skat-txt20. "Description Text
DATA: saknr TYPE skat-saknr. "G/L account number
DATA: ktopl TYPE skat-ktopl. "Chart of Accounts
DATA: rpmax TYPE faglflext-rpmax. "Period
DATA: total_sum LIKE faglflext-ksl01. "Amount of the first month
DATA: ryear LIKE faglflext-ryear. "Fiscal Year
DATA: year LIKE faglflext-ryear. "Past Year
DATA: END OF t_itab2.
DATA: BEGIN OF t_zavg OCCURS 0.
DATA: bukrs TYPE bukrs.
DATA: racct TYPE racct.
DATA: prctr TYPE prctr.
DATA: day_a TYPE sy-datum.
DATA: per_day TYPE rr_umper.
DATA: average TYPE vtcur12.
DATA: agregate TYPE vtcur12.
DATA: accumulate TYPE vtcur12.
DATA: average_sap TYPE rr_umper.
DATA: END OF t_zavg.
DATA: BEGIN OF t_zavg2 OCCURS 0.
DATA: day_a TYPE sy-datum.
DATA: racct TYPE racct.
DATA: prctr TYPE prctr.
DATA: per_day TYPE rr_umper.
DATA: average TYPE vtcur12.
DATA: agregate TYPE vtcur12.
DATA: accumulate TYPE vtcur12.
DATA: average_sap TYPE rr_umper.
DATA: END OF t_zavg2.
* Variable definition *
DATA: balance_month_01 LIKE faglflext-ksl01.
DATA: balance_month_02 LIKE faglflext-ksl01.
DATA: balance_month_03 LIKE faglflext-ksl01.
DATA: balance_month_04 LIKE faglflext-ksl01.
DATA: balance_month_05 LIKE faglflext-ksl01.
DATA: balance_month_06 LIKE faglflext-ksl01.
DATA: balance_month_07 LIKE faglflext-ksl01.
DATA: balance_month_08 LIKE faglflext-ksl01.
DATA: balance_month_09 LIKE faglflext-ksl01.
DATA: balance_month_10 LIKE faglflext-ksl01.
DATA: balance_month_11 LIKE faglflext-ksl01.
DATA: balance_month_12 LIKE faglflext-ksl01.
DATA: balance_month_13 LIKE faglflext-ksl01.
DATA: current_average_balance LIKE zavg_bal_table-average.
DATA: current_balance LIKE faglflext-ksl01.
DATA: current_activity_balance LIKE faglflext-ksl01.
DATA: current_aggregate_balance LIKE zavg_bal_table-agregate.
DATA: average_balance_ytd LIKE zfintbco0001-period_avg_12.
DATA: count TYPE i.
DATA: wa_itab LIKE LINE OF t_itab1.
DATA: wa_low LIKE LINE OF t_itab1.
DATA: wa_high LIKE LINE OF t_itab1.
DATA: wa_itab2 LIKE LINE OF t_itab2.
DATA: wa_zavg2 LIKE LINE OF t_zavg2.
DATA: wa_zavg LIKE LINE OF t_zavg.
DATA: t_acum TYPE i.
DATA: companycode TYPE faglflext-rbukrs.
DATA: descripcion TYPE skat-txt20.
DATA: oref TYPE REF TO cx_root,
emsg TYPE zedesc,
param1 TYPE zparm,
parm1 TYPE zparm.
DATA: avg1 TYPE faglflext-ksl01. "AVG = AVERAGE
DATA: avg2 TYPE faglflext-ksl01.
DATA: avg3 TYPE faglflext-ksl01.
DATA: avg4 TYPE faglflext-ksl01.
DATA: avg5 TYPE faglflext-ksl01.
DATA: avg6 TYPE faglflext-ksl01.
DATA: avg7 TYPE faglflext-ksl01.
DATA: avg8 TYPE faglflext-ksl01.
DATA: avg9 TYPE faglflext-ksl01.
DATA: avg10 TYPE faglflext-ksl01.
DATA: avg11 TYPE faglflext-ksl01.
DATA: avg12 TYPE faglflext-ksl01.
DATA: conteo TYPE i.
DATA: conteo2 TYPE i.
DATA: numerocta TYPE faglflext-racct.
DATA: profitcenter TYPE faglflext-prctr.
DATA: average_month_01 TYPE zavg_bal_table-average.
DATA: aggregate_month_01 TYPE zavg_bal_table-agregate.
DATA: average_month_02 TYPE zavg_bal_table-average.
DATA: aggregate_month_02 TYPE zavg_bal_table-agregate.
DATA: average_month_03 TYPE zavg_bal_table-average.
DATA: aggregate_month_03 TYPE zavg_bal_table-agregate.
DATA: average_month_04 TYPE zavg_bal_table-average.
DATA: aggregate_month_04 TYPE zavg_bal_table-agregate.
DATA: average_month_05 TYPE zavg_bal_table-average.
DATA: aggregate_month_05 TYPE zavg_bal_table-agregate.
DATA: average_month_06 TYPE zavg_bal_table-average.
DATA: aggregate_month_06 TYPE zavg_bal_table-agregate.
DATA: average_month_07 TYPE zavg_bal_table-average.
DATA: aggregate_month_07 TYPE zavg_bal_table-agregate.
DATA: average_month_08 TYPE zavg_bal_table-average.
DATA: aggregate_month_08 TYPE zavg_bal_table-agregate.
DATA: average_month_09 TYPE zavg_bal_table-average.
DATA: aggregate_month_09 TYPE zavg_bal_table-agregate.
DATA: average_month_10 TYPE zavg_bal_table-average.
DATA: aggregate_month_10 TYPE zavg_bal_table-agregate.
DATA: average_month_11 TYPE zavg_bal_table-average.
DATA: aggregate_month_11 TYPE zavg_bal_table-agregate.
DATA: average_month_12 TYPE zavg_bal_table-average.
DATA: aggregate_month_12 TYPE zavg_bal_table-agregate.
DATA: ano TYPE i.
DATA: ano_pasado TYPE i.
DATA: ano_corriente TYPE i.
DATA: mesdia TYPE adb_pfrom.
DATA: firstline TYPE i.
DATA: kslvt TYPE faglflext-kslvt.
DATA: ksl01 TYPE faglflext-ksl01.
DATA: ksl02 TYPE faglflext-ksl02.
DATA: ksl03 TYPE faglflext-ksl03.
DATA: ksl04 TYPE faglflext-ksl04.
DATA: ksl05 TYPE faglflext-ksl05.
DATA: ksl06 TYPE faglflext-ksl06.
DATA: ksl07 TYPE faglflext-ksl07.
DATA: ksl08 TYPE faglflext-ksl08.
DATA: ksl09 TYPE faglflext-ksl09.
DATA: ksl10 TYPE faglflext-ksl10.
DATA: ksl11 TYPE faglflext-ksl11.
DATA: ksl12 TYPE faglflext-ksl12.
DATA: ksl13 TYPE faglflext-ksl13.
DATA: ksl14 TYPE faglflext-ksl14.
DATA: ksl15 TYPE faglflext-ksl15.
DATA: ksl16 TYPE faglflext-ksl16.
DATA: itab_kslvt TYPE faglflext-kslvt.
DATA: itab_ksl01 TYPE faglflext-ksl01.
DATA: itab_ksl02 TYPE faglflext-ksl02.
DATA: itab_ksl03 TYPE faglflext-ksl03.
DATA: itab_ksl04 TYPE faglflext-ksl04.
DATA: itab_ksl05 TYPE faglflext-ksl05.
DATA: itab_ksl06 TYPE faglflext-ksl06.
DATA: itab_ksl07 TYPE faglflext-ksl07.
DATA: itab_ksl08 TYPE faglflext-ksl08.
DATA: itab_ksl09 TYPE faglflext-ksl09.
DATA: itab_ksl10 TYPE faglflext-ksl10.
DATA: itab_ksl11 TYPE faglflext-ksl11.
DATA: itab_ksl12 TYPE faglflext-ksl12.
DATA: itab_ksl13 TYPE faglflext-ksl13.
DATA: itab_ksl14 TYPE faglflext-ksl14.
DATA: itab_ksl15 TYPE faglflext-ksl15.
DATA: itab_ksl16 TYPE faglflext-ksl16.
DATA: itab_bal00 TYPE faglflext-kslvt.
DATA: itab_bal01 TYPE faglflext-ksl01.
DATA: itab_bal02 TYPE faglflext-ksl02.
DATA: itab_bal03 TYPE faglflext-ksl03.
DATA: itab_bal04 TYPE faglflext-ksl04.
DATA: itab_bal05 TYPE faglflext-ksl05.
DATA: itab_bal06 TYPE faglflext-ksl06.
DATA: itab_bal07 TYPE faglflext-ksl07.
DATA: itab_bal08 TYPE faglflext-ksl08.
DATA: itab_bal09 TYPE faglflext-ksl09.
DATA: itab_bal10 TYPE faglflext-ksl10.
DATA: itab_bal11 TYPE faglflext-ksl11.
DATA: itab_bal12 TYPE faglflext-ksl12.
DATA: itab_bal13 TYPE faglflext-ksl13.
DATA: itab_bal14 TYPE faglflext-ksl14.
DATA: itab_bal15 TYPE faglflext-ksl15.
DATA: itab_bal16 TYPE faglflext-ksl16.
DATA: numero_de_cta TYPE faglflext-racct.
DATA: company_code TYPE faglflext-rbukrs.
DATA: profit_center TYPE faglflext-prctr.
DATA: currency_code TYPE faglflext-rtcur.
DATA: average_month TYPE zavg_bal_table-average.
DATA: aggregate_month TYPE zavg_bal_table-agregate.
* VARIABLES FOR INTERFACES LOG
DATA: v_tipo TYPE zzfinbc85typede VALUE 1. "Tipo 1 = OUT
DATA: v_nom_int(9) TYPE c VALUE 'ZFINFII00'. "Nombre de la interfaz
DATA: v_modulo(2) TYPE c VALUE 'FI'. "Modulo
DATA: v_comp_code(4) TYPE c VALUE '0000'. "Compañia 0000
DATA: v_alegacy(4) TYPE c VALUE '0001'.
DATA: v_fecha TYPE d.
DATA: v_error2(3) TYPE c VALUE 'E'.
DATA: l_sys_exc TYPE REF TO cx_ai_system_fault.
DATA: last_day TYPE sy-datum.
DATA: numero_mes TYPE i.
DATA: ryear TYPE faglflext-ryear.
DATA: numero_cuenta TYPE faglflext-racct.
DATA: numero_profit TYPE faglflext-prctr.
DATA: day_a TYPE i.
DATA: text(20) TYPE c.
*Acknowledge
DATA: lo_async_messaging TYPE REF TO if_wsprotocol_async_messaging,
lo_msg_id_protocol TYPE REF TO if_wsprotocol_message_id,
l_msg_id TYPE sxmsguid,
l_ack_request TYPE prx_ack_request_details.
DATA: fecha TYPE sy-datum.
DATA: fecha_ejecutandose TYPE sy-datum.
DATA: fecha_corriente TYPE i.
DATA: jan_fin TYPE sy-datum.
DATA: feb_fin TYPE sy-datum.
DATA: febb_fin TYPE sy-datum.
DATA: mar_fin TYPE sy-datum.
DATA: apr_fin TYPE sy-datum.
DATA: may_fin TYPE sy-datum.
DATA: jun_fin TYPE sy-datum.
DATA: jul_fin TYPE sy-datum.
DATA: aug_fin TYPE sy-datum.
DATA: sep_fin TYPE sy-datum.
DATA: oct_fin TYPE sy-datum.
DATA: nov_fin TYPE sy-datum.
DATA: dec_fin TYPE sy-datum.
DATA: porciento1 TYPE faglflext-ksl01.
DATA: porciento2 TYPE faglflext-ksl01.
DATA: porciento3 TYPE faglflext-ksl01.
DATA: porciento4 TYPE faglflext-ksl01.
DATA: porciento5 TYPE faglflext-ksl01.
DATA: porciento6 TYPE faglflext-ksl01.
DATA: porciento7 TYPE faglflext-ksl01.
DATA: porciento8 TYPE faglflext-ksl01.
DATA: porciento9 TYPE faglflext-ksl01.
DATA: porciento10 TYPE faglflext-ksl01.
DATA: porciento11 TYPE faglflext-ksl01.
DATA: porciento12 TYPE faglflext-ksl01.
data: mes(2) type c value '00'.
data: mes_anterior type sy-datum.
data: ceros(2) type c.
*DEFINICION DE RANGOS.
RANGES profit FOR faglflext-prctr.
RANGES account FOR faglflext-racct.
RANGES end_month FOR zavg_bal_table-day_a.
*Sele asigna el fin de mes a cada variable para que sea utilizada luego en el programa.
jan_fin = '20060131'.
feb_fin = '20060228'.
febb_fin = '20060229'.
mar_fin = '20060331'.
apr_fin = '20060430'.
may_fin = '20060531'.
jun_fin = '20060630'.
jul_fin = '20060731'.
aug_fin = '20060831'.
sep_fin = '20060930'.
oct_fin = '20061031'.
nov_fin = '20061130'.
dec_fin = '20061231'.
*Inicializando las variables a valor '0'.
balance_month_01 = 0.
balance_month_02 = 0.
balance_month_03 = 0.
balance_month_04 = 0.
balance_month_05 = 0.
balance_month_06 = 0.
balance_month_07 = 0.
balance_month_08 = 0.
balance_month_09 = 0.
balance_month_10 = 0.
balance_month_11 = 0.
balance_month_12 = 0.
balance_month_13 = 0.
current_average_balance = 0.
current_balance = 0.
current_activity_balance = 0.
current_aggregate_balance = 0.
average_balance_ytd = 0.
count = 0.
t_acum = 0.
conteo = 1.
conteo2 = 1.
ceros = '00'.
*THIS IS A STRUCTURE NAMED E_SKAT. WITH THE TWO FIELDS NAMED SAKNR *
*AND TXT20. *
TYPES: BEGIN OF e_skat,
ktopl LIKE skat-ktopl,
saknr LIKE skat-saknr,
txt20 LIKE skat-txt20,
END OF e_skat.
* SORT THE STRUCTURE IN ORDER FOR BEST PERFORMANCE *
DATA it_skat TYPE SORTED TABLE OF e_skat
WITH UNIQUE KEY saknr WITH HEADER LINE.
DATA: wa_skat LIKE LINE OF it_skat.
* CONSTANT DEFINITIONS (HAVE THE SAME VALUE EVER) *
CONSTANTS:
etype TYPE zetype VALUE 'INTER', "Utilizada con la funcion de error
innum TYPE zintnum VALUE 'ZFINFII00', "Utilizada con la funcion de error
inname TYPE zinname VALUE 'Sendero and Cognos Interfase', "Utilizada con la funcion de error
c_cuenta(10) TYPE c VALUE '0000270011',
c_ol(2) TYPE c VALUE '0L',
c_chart(4) TYPE c VALUE 'CAPI', "Chart Of Accounts
c_ceros(17) TYPE n VALUE '00000000000000.00', "ceros
acct_cog(10) TYPE n VALUE '0000270011', "Numero de cta. que se busca en COGNOS.
capi(4) TYPE c VALUE 'CAPI'.
* PARAMETROS de entrada para el usuario. *
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETERS:
p_date TYPE sy-datum DEFAULT sy-datum. "Fecha de corrida
IF p_date IS INITIAL.
p_date = sy-datum.
ENDIF.
* PARAMETEROS DE ENTRADA POR MEDIO DE RANGOS PARA EL USUARIO *
SELECT-OPTIONS:
p_bukrs FOR faglflext-rbukrs.
SELECTION-SCREEN END OF BLOCK bl1.
*IF THE USER SELECT THIS CHECK BOX WITH A CHECK MARK THE PROGRAM *
*SUBMIT THIS INTERFACE TO. *
SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE text-002.
PARAMETERS:
p_cognos TYPE c AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK bl2.
* This statement calls the subroutine specified, SENDERO or COGNOS *
IF p_cognos IS INITIAL.
PERFORM sendero.
ELSE.
PERFORM cognos.
ENDIF.
EXIT.
* SENEDERO INTERFACE *
FORM sendero.
*ESTE SELECT EXTRAE LA DATA DE LA TABLA FAGFLEXT Y SKAT
DATA: msgdetails TYPE zgl_sendero_file_dt_tab.
DATA: wa_msgdetails LIKE LINE OF msgdetails.
SELECT a~ryear a~rpmax a~rtcur a~racct a~rbukrs a~prctr
a~kslvt a~ksl01 a~ksl02 a~ksl03 a~ksl04 a~ksl05
a~ksl06 a~ksl07 a~ksl08 a~ksl09 a~ksl10 a~ksl11
a~ksl12 a~ksl13 a~ksl14 a~ksl15 a~ksl16 b~saknr
b~txt20 b~ktopl
FROM faglflext AS a INNER JOIN skat AS b ON a~racct = b~saknr AND a~rclnt = b~mandt
CLIENT SPECIFIED INTO CORRESPONDING FIELDS OF TABLE t_itab1
WHERE a~rclnt = sy-mandt
AND a~rbukrs IN p_bukrs
AND a~rldnr = '0L'
AND a~ryear = p_date+0(4)
AND b~spras EQ sy-langu
AND b~ktopl EQ 'CAPI'.
*SI NO ENCUENTRA DATA EN LA TABLA FAGLFLEXT ENVIA EL MENSAJE DE ERROR
*A LA TABLA DE ERROR.
IF sy-subrc <> 0.
MOVE 'No data found in FLAGLFLEXT or ZAVG_BAL_TABLE for this process.'(e01) TO emsg.
* PERFORM call_error_function USING emsg.
* PERFORM call_log_function_send.
MESSAGE: emsg TYPE 'E'.
ENDIF.
*EN ESTE SELECT SACO LA DESCRIPCION DE LA CUENTA
SORT t_itab1 BY racct ASCENDING.
DELETE t_itab1 WHERE racct = ''.
SORT t_itab1 BY prctr ASCENDING.
CLEAR t_itab1.
READ TABLE t_itab1 INTO wa_low INDEX 1 .
DESCRIBE TABLE t_itab1 LINES firstline.
READ TABLE t_itab1 INTO wa_high INDEX firstline.
IF wa_high-prctr = 'DUMMY'. "SI EL ULTIMO RECORD CONTIENE ALGUN 'DUMMY' ESCOJER EL RECORD DE ARRIBA.
firstline = firstline - 1. "CONTIENE EL NUMERO DEL INDICE.
READ TABLE t_itab1 INTO wa_high INDEX firstline.
ENDIF.
profit-sign = 'I'.
profit-option = 'BT'.
profit-low = wa_low-prctr.
profit-high = wa_high-prctr.
APPEND profit.
*COMPUTOS PARA CALCULAR EL ULTIMO DIA DEL MES.
fecha = p_date.
numero_mes = p_date+4(2). "PASO NUMERO DEL MES A VARIABLE.
p_date+4(2) = p_date+4(2) - numero_mes. "LE RESTO EL MISMO MES A LA FECHA PARA COMENZAR EL CONTEO DESDE EL MES 1.
DO numero_mes TIMES. "SE VA A EJECUTAR LAS MISMAS VECES DEL NUMERO DEL MES.
p_date+4(2) = p_date+4(2) + 1. "SE INCREMENTA EL NUMERO DEL MES.
CALL FUNCTION 'SG_PS_GET_LAST_DAY_OF_MONTH' "Obtiene el ultimo numero del mes.
EXPORTING
day_in = p_date
IMPORTING
last_day_of_month = last_day
EXCEPTIONS
day_in_not_valid = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF fecha = p_date.
fecha = fecha - 1. "le resta a fecha -1 para que busque en la tabla zavg_bal_table el record del dia anterior.
end_month-sign = 'I'.
end_month-option = 'EQ'.
end_month-low = fecha.
APPEND end_month.
ELSE.
end_month-sign = 'I'.
end_month-option = 'EQ'.
end_month-low = last_day.
APPEND end_month.
ENDIF.
ENDDO.
SORT end_month BY low ASCENDING.
SELECT bukrs racct prctr day_a per_day average agregate accumulate average_sap
FROM zavg_bal_table CLIENT SPECIFIED APPENDING TABLE t_zavg
WHERE mandt = sy-mandt
AND bukrs IN p_bukrs
AND day_a <= sy-datum
AND prctr IN profit.
SORT t_itab1 BY rbukrs racct prctr.
SORT t_zavg BY bukrs racct prctr day_a.
*IMPRESION Y ENVIO DE LOS DATOS REQUERIDOS
*Estos If verifican el mes que se esta ejecutando por el usuario para cambiarselo a la variable que identifica el fin de mes.
IF p_date+4(2) = jan_fin+4(2).
jan_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = feb_fin+4(2).
feb_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = mar_fin+4(2).
mar_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = apr_fin+4(2).
apr_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = may_fin+4(2).
may_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = jun_fin+4(2).
jun_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = jul_fin+4(2).
jul_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = aug_fin+4(2).
aug_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = sep_fin+4(2).
sep_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = oct_fin+4(2).
oct_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = nov_fin+4(2).
nov_fin+6(2) = p_date+6(2).
ENDIF.
IF p_date+4(2) = dec_fin+4(2).
dec_fin+6(2) = p_date+6(2).
ENDIF.
*Comienza primer loop en el programa a t_itab1 que es la tabla interna que contiene los datos de faglflext.
LOOP AT t_itab1 INTO wa_itab WHERE racct NE ''.
AT NEW prctr. "Limpia las variables que se muestran en el clear cada ves que comienza un nuevo profit center.
CLEAR: itab_kslvt, itab_ksl01, itab_ksl02, itab_ksl03, itab_ksl04, itab_ksl05, itab_ksl06, itab_ksl07, itab_ksl08,
itab_ksl09, itab_ksl10, itab_ksl11, itab_ksl12, itab_ksl13, itab_ksl14, itab_ksl15, itab_ksl16,
itab_bal00, itab_bal01, itab_bal02, itab_bal03, itab_bal04, itab_bal05, itab_bal06, itab_bal07,
itab_bal08, itab_bal09, itab_bal10, itab_bal11, itab_bal12, itab_bal13, itab_bal14, itab_bal15,
itab_bal16.
ENDAT.
*Se le pasa a la variable itab_ksl## el valor del mes que contenga flext.
itab_kslvt = itab_kslvt + wa_itab-kslvt. itab_ksl01 = itab_ksl01 + wa_itab-ksl01. itab_ksl02 = itab_ksl02 + wa_itab-ksl02.
itab_ksl03 = itab_ksl03 + wa_itab-ksl03. itab_ksl04 = itab_ksl04 + wa_itab-ksl04.
itab_ksl05 = itab_ksl05 + wa_itab-ksl05. itab_ksl06 = itab_ksl06 + wa_itab-ksl06.
itab_ksl07 = itab_ksl07 + wa_itab-ksl07. itab_ksl08 = itab_ksl08 + wa_itab-ksl08.
itab_ksl09 = itab_ksl09 + wa_itab-ksl09. itab_ksl10 = itab_ksl10 + wa_itab-ksl10.
itab_ksl11 = itab_ksl11 + wa_itab-ksl11. itab_ksl12 = itab_ksl12 + wa_itab-ksl12.
itab_ksl13 = itab_ksl13 + wa_itab-ksl13. itab_ksl14 = itab_ksl14 + wa_itab-ksl14.
itab_ksl15 = itab_ksl15 + wa_itab-ksl15. itab_ksl16 = itab_ksl16 + wa_itab-ksl16.
*En estas variables va acumulando el valor por mes. Osea, va sumando todo lo que tenga de ese mes por profit center. Al venir un profit
*nuevo esta se limpia.
itab_bal00 = itab_bal00 + wa_itab-kslvt. itab_bal01 = itab_bal01 + wa_itab-ksl01. itab_bal02 = itab_bal02 + wa_itab-ksl02.
itab_bal03 = itab_bal03 + wa_itab-ksl03. itab_bal04 = itab_bal04 + wa_itab-ksl04.
itab_bal05 = itab_bal05 + wa_itab-ksl05. itab_bal06 = itab_bal06 + wa_itab-ksl06.
itab_bal07 = itab_bal07 + wa_itab-ksl07. itab_bal08 = itab_bal08 + wa_itab-ksl08.
itab_bal09 = itab_bal09 + wa_itab-ksl09. itab_bal10 = itab_bal10 + wa_itab-ksl10.
itab_bal11 = itab_bal11 + wa_itab-ksl11. itab_bal12 = itab_bal12 + wa_itab-ksl12.
itab_bal13 = itab_bal13 + wa_itab-ksl13. itab_bal14 = itab_bal14 + wa_itab-ksl14.
itab_bal15 = itab_bal15 + wa_itab-ksl15. itab_bal16 = itab_bal16 + wa_itab-ksl16.
ryear = wa_itab-ryear.
CLEAR t_zavg.
sy-subrc = 0.
numero_de_cta = wa_itab-racct.
company_code = wa_itab-rbukrs.
profit_center = wa_itab-prctr.
currency_code = wa_itab-rtcur.
descripcion = wa_itab-txt20.
*Segundo loop a realizarce. Este utiliza la tabla interna: t_zavg la cual contiene los datos extraidos de zavg_bal_table.
LOOP AT t_zavg INTO wa_zavg WHERE bukrs = wa_itab-rbukrs AND racct = wa_itab-racct AND prctr = wa_itab-prctr.
AT NEW prctr. "Al cambiar el profit center limpia las variables que se encuentran en el clear.
CLEAR: average_month_01, average_month_02, average_month_03, average_month_04, average_month_05,
average_month_06, average_month_07, average_month_08, average_month_09, average_month_10, average_month_11,
average_month_12, average_month.
ENDAT.
*Dependiendo del mes que contiene el record de la tabla t_zavg este va acumulando el average_month.
IF wa_zavg-day_a+4(2) = '01'.
average_month_01 = average_month_01 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '02'.
average_month_02 = average_month_02 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '03'.
average_month_03 = average_month_03 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '04'.
average_month_04 = average_month_04 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '05'.
average_month_05 = average_month_05 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '06'.
average_month_06 = average_month_06 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '07'.
average_month_07 = average_month_07 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '08'.
average_month_08 = average_month_08 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '09'.
average_month_09 = average_month_09 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '10'.
average_month_10 = average_month_10 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '11'.
average_month_11 = average_month_11 + wa_zavg-accumulate.
ENDIF.
IF wa_zavg-day_a+4(2) = '12'.
average_month_12 = average_month_12 + wa_zavg-accumulate.
ENDIF.
*Este if verifica que cuando el record que se esta verificando sea con fecha de fin de mes calcule el resto del codigo que se encuentra debajo.
IF wa_zavg-day_a = jan_fin OR wa_zavg-day_a = feb_fin OR wa_zavg-day_a = mar_fin OR wa_zavg-day_a = apr_fin OR wa_zavg-day_a = may_fin OR wa_zavg-day_a = jun_fin OR
wa_zavg-day_a = jul_fin OR wa_zavg-day_a = aug_fin OR wa_zavg-day_a = sep_fin OR wa_zavg-day_a = oct_fin OR
wa_zavg-day_a = nov_fin OR wa_zavg-day_a = dec_fin.
aggregate_month = wa_zavg-agregate.
day_a = wa_zavg-day_a.
*Calcula el aggregate_month dependiendo de la fecha del record que se esta procesando.
IF wa_zavg-day_a+4(2) = '01'.
aggregate_month_01 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '02'.
aggregate_month_02 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '03'.
aggregate_month_03 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '04'.
aggregate_month_04 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '05'.
aggregate_month_05 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '06'.
aggregate_month_06 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '07'.
aggregate_month_07 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '08'.
aggregate_month_08 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '09'.
aggregate_month_09 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '10'.
aggregate_month_10 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '11'.
aggregate_month_11 = wa_zavg-agregate.
ENDIF.
IF wa_zavg-day_a+4(2) = '12'.
aggregate_month_12 = wa_zavg-agregate.
ENDIF.
ENDIF.
*Este if verifica que cuando el record que se esta verificando sea con fecha de fin de mes calcule el resto del codigo que se encuentra debajo.
IF wa_zavg-day_a+4(4) = jan_fin+4(4) OR wa_zavg-day_a+4(4) = feb_fin+4(4) OR wa_zavg-day_a+4(4) = febb_fin+4(4) OR wa_zavg-day_a+4(4) = mar_fin+4(4) OR
wa_zavg-day_a+4(4) = apr_fin+4(4) OR wa_zavg-day_a+4(4) = may_fin+4(4) OR wa_zavg-day_a+4(4) = jun_fin+4(4) OR wa_zavg-day_a+4(4) = jul_fin+4(4) OR
wa_zavg-day_a+4(4) = aug_fin+4(4) OR wa_zavg-day_a+4(4) = sep_fin+4(4) OR wa_zavg-day_a+4(4) = oct_fin+4(4) OR wa_zavg-day_a+4(4) = nov_fin+4(4) OR
wa_zavg-day_a+4(4) = dec_fin+4(4).
*Calcula la division entre la cantidad acumulada por mes y la fecha del fin de mes.
IF average_month_01 IS NOT INITIAL.
porciento1 = average_month_01 / jan_fin+6(2).
average_month = porciento1.
ENDIF.
IF average_month_02 IS NOT INITIAL.
porciento2 = average_month_02 / feb_fin+6(2).
average_month = porciento2.
ENDIF.
IF average_month_03 IS NOT INITIAL.
porciento3 = average_month_03 / mar_fin+6(2).
average_month = porciento3.
ENDIF.
IF average_month_04 IS NOT INITIAL.
porciento4 = average_month_04 / apr_fin+6(2).
average_month = porciento4.
ENDIF.
IF average_month_05 IS NOT INITIAL.
porciento5 = average_month_05 / may_fin+6(2).
average_month = porciento5.
ENDIF.
IF average_month_06 IS NOT INITIAL.
porciento6 = average_month_06 / jun_fin+6(2).
average_month = porciento6.
ENDIF.
IF average_month_07 IS NOT INITIAL.
porciento7 = average_month_07 / jul_fin+6(2).
average_month = porciento7.
ENDIF.
IF average_month_08 IS NOT INITIAL.
porciento8 = average_month_08 / aug_fin+6(2).
average_month = porciento8.
ENDIF.
IF average_month_09 IS NOT INITIAL.
porciento9 = average_month_09 / sep_fin+6(2).
average_month = porciento9.
ENDIF.
IF average_month_10 IS NOT INITIAL.
porciento10 = average_month_10 / oct_fin+6(2).
average_month = porciento10.
ENDIF.
IF average_month_11 IS NOT INITIAL.
porciento11 = average_month_11 / nov_fin+6(2).
average_month = porciento11.
ENDIF.
IF average_month_12 IS NOT INITIAL.
porciento12 = average_month_12 / dec_fin+6(2).
average_month = porciento12.
ENDIF.
*Cuando la fecha que esta entrando el usuario es la misma a la del record que se esta procesando en ese momento ejecuta el siguiente IF.
IF p_date+4(4) = wa_zavg-day_a+4(4).
current_average_balance = average_month.
current_aggregate_balance = aggregate_month.
average_balance_ytd = average_month.
ENDIF.
ENDIF.
ENDLOOP.
AT END OF prctr.
IF sy-subrc = 0.
*ESTAS VARIABLES SE ESTAN PASANDO A UNA VARIABLE NORMAL YA QUE SI SE DEJAN DENTRO DEL WORK AREA (WA) LE PONE ASTERISCOS.
*LOS IF QUE SE DEMUESTRAN ABAJO SON PARECIDOS A LOS UTILIZADOS EN LA *
*PARTE POSTERIOR LO UNICO QUE LA FECHA UTILIZADA NO ES EXTRAIDA DE LA *
*TABLA, ES LA QUE EL USUARIO INSERTA DENTRO DEL PARAMETRO. *
IF p_date+4(2) >= '01'.
COMPUTE: balance_month_01 = itab_bal00 + itab_bal01.
ENDIF.
IF p_date+4(2) >= '02'.
COMPUTE: balance_month_02 = itab_bal00 + itab_bal01 + itab_bal02.
ENDIF.
IF p_date+4(2) >= '03'.
COMPUTE: balance_month_03 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03.
ENDIF.
IF p_date+4(2) >= '04'.
COMPUTE: balance_month_04 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04.
ENDIF.
IF p_date+4(2) >= '05'.
COMPUTE: balance_month_05 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05.
ENDIF.
IF p_date+4(2) >= '06'.
COMPUTE: balance_month_06 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05 + itab_bal06.
ENDIF.
IF p_date+4(2) >= '07'.
COMPUTE: balance_month_07 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05 + itab_bal06 + itab_bal07.
ENDIF.
IF p_date+4(2) >= '08'.
COMPUTE: balance_month_08 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05 + itab_bal06 + itab_bal07 + itab_bal08.
ENDIF.
IF p_date+4(2) >= '09'.
COMPUTE: balance_month_09 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05 + itab_bal06 + itab_bal07 + itab_bal08 + itab_bal09.
ENDIF.
IF p_date+4(2) >= '10'.
COMPUTE: balance_month_10 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05 + itab_bal06 + itab_bal07 + itab_bal08 + itab_bal09 + itab_bal10.
ENDIF.
IF p_date+4(2) >= '11'.
COMPUTE: balance_month_11 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05 + itab_bal06 + itab_bal07 + itab_bal08 + itab_bal09 + itab_bal10 + itab_bal11.
ENDIF.
IF p_date+4(2) >= '12'.
COMPUTE: balance_month_12 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05 + itab_bal06 + itab_bal07 + itab_bal08 + itab_bal09 + itab_bal10 + itab_bal11 + itab_bal12.
ENDIF.
IF p_date+4(2) >= '13'.
COMPUTE: balance_month_13 = itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05 + itab_bal06 + itab_bal07 + itab_bal08 + itab_bal09 + itab_bal10 + itab_bal11 + itab_bal12 + itab_bal13.
ENDIF.
COMPUTE: current_balance = + itab_bal00 + itab_bal01 + itab_bal02 + itab_bal03 + itab_bal04 + itab_bal05 + itab_bal06 + itab_bal07 + itab_bal08 + itab_bal09 + itab_bal10 + itab_bal11 + itab_bal12 + itab_bal13 + itab_bal14 + itab_bal15 + itab_bal16.
*Computo para el activity balance.
IF p_date+4(2) = '01'.
current_activity_balance = itab_ksl01.
ENDIF.
IF p_date+4(2) = '02'.
current_activity_balance = itab_ksl02.
ENDIF.
IF p_date+4(2) = '03'.
current_activity_balance = itab_ksl03.
ENDIF.
IF p_date+4(2) = '04'.
current_activity_balance = itab_ksl04.
ENDIF.
IF p_date+4(2) = '05'.
current_activity_balance = itab_ksl05.
ENDIF.
IF p_date+4(2) = '06'.
current_activity_balance = itab_ksl06.
ENDIF.
IF p_date+4(2) = '07'.
current_activity_balance = itab_ksl07.
ENDIF.
IF p_date+4(2) = '08'.
current_activity_balance = itab_ksl08.
ENDIF.
IF p_date+4(2) = '09'.
current_activity_balance = itab_ksl09.
ENDIF.
IF p_date+4(2) = '10'.
current_activity_balance = itab_ksl10.
ENDIF.
IF p_date+4(2) = '11'.
current_activity_balance = itab_ksl11.
ENDIF.
IF p_date+4(2) = '12'.
current_activity_balance = itab_ksl12.
ENDIF.
*LE RESTA 1 AL AÑO CORRIENTE PARA VERIFICAR LUEGO SI EXISTE INFORMACION*
*DE AÑOS ANTERIORES. *
ano = ryear - 1.
* Get the values of the past year. *
ano = p_date+0(4) - 1.
IF ryear = ano.
wa_msgdetails-activity_previous_year = itab_ksl12.
* balance_previous_year = wa_msgdetails-balance_previous_year. *
wa_msgdetails-average_previous_year = average_month_12.
wa_msgdetails-aggreg_previous_year = aggregate_month_12.
ELSE.
*If the table don't have data the variables get '0000000000000'. *
wa_msgdetails-activity_previous_year = '00000000000000.00'.
wa_msgdetails-average_previous_year = '00000000000000.00'.
wa_msgdetails-aggreg_previous_year = '00000000000000.00'.
AT LAST.
wa_msgdetails-balance_previous_year = '00000000000000.00'.
wa_msgdetails-balance_previous_year = itab_kslvt +
itab_ksl01 +
itab_ksl02 +
itab_ksl03 +
itab_ksl04 +
itab_ksl05 +
itab_ksl06 +
itab_ksl07 +
itab_ksl08 +
itab_ksl09 +
itab_ksl10 +
itab_ksl11 +
itab_ksl12.
ENDAT.
ENDIF.
wa_msgdetails-account = numero_de_cta.
wa_msgdetails-company = company_code.
wa_msgdetails-cost_center = profit_center.
wa_msgdetails-currency_code = currency_code.
wa_msgdetails-account_description = descripcion.
wa_msgdetails-activity_month_01 = itab_ksl01.
wa_msgdetails-average_month_01 = porciento1.
wa_msgdetails-aggreg_month_01 = aggregate_month_01.
wa_msgdetails-activity_month_02 = itab_ksl02.
wa_msgdetails-average_month_02 = porciento2.
wa_msgdetails-aggreg_month_02 = aggregate_month_02.
wa_msgdetails-activity_month_03 = itab_ksl03.
wa_msgdetails-average_month_03 = porciento3.
wa_msgdetails-aggreg_month_03 = aggregate_month_03.
wa_msgdetails-activity_month_04 = itab_ksl04.
wa_msgdetails-average_month_04 = porciento4.
wa_msgdetails-aggreg_month_04 = aggregate_month_04.
wa_msgdetails-activity_month_05 = itab_ksl05.
wa_msgdetails-average_month_05 = porciento5.
wa_msgdetails-aggreg_month_05 = aggregate_month_05.
wa_msgdetails-activity_month_06 = itab_ksl06.
wa_msgdetails-average_month_06 = porciento6.
wa_msgdetails-aggreg_month_06 = aggregate_month_06.
wa_msgdetails-activity_month_07 = itab_ksl07.
wa_msgdetails-average_month_07 = porciento7.
wa_msgdetails-aggreg_month_07 = aggregate_month_07.
wa_msgdetails-activity_month_08 = itab_ksl08.
wa_msgdetails-average_month_08 = porciento8.
wa_msgdetails-aggreg_month_08 = aggregate_month_08.
wa_msgdetails-activity_month_09 = itab_ksl09.
wa_msgdetails-average_month_09 = porciento9.
wa_msgdetails-aggreg_month_09 = aggregate_month_09.
wa_msgdetails-activity_month_10 = itab_ksl10.
wa_msgdetails-average_month_10 = porciento10.
wa_msgdetails-aggreg_month_10 = aggregate_month_10.
wa_msgdetails-activity_month_11 = itab_ksl11.
wa_msgdetails-average_month_11 = porciento11.
wa_msgdetails-aggreg_month_11 = aggregate_month_11.
wa_msgdetails-activity_month_12 = itab_ksl12.
wa_msgdetails-average_month_12 = porciento12.
wa_msgdetails-aggreg_month_12 = aggregate_month_12.
wa_msgdetails-activity_month_13 = itab_ksl13.
wa_msgdetails-average_month_13 = '00000000000000.00'.
wa_msgdetails-aggreg_month_13 = '00000000000000.00'.
wa_msgdetails-balance_month_01 = balance_month_01.
wa_msgdetails-balance_month_02 = balance_month_02.
wa_msgdetails-balance_month_03 = balance_month_03.
wa_msgdetails-balance_month_04 = balance_month_04.
wa_msgdetails-balance_month_05 = balance_month_05.
wa_msgdetails-balance_month_06 = balance_month_06.
wa_msgdetails-balance_month_07 = balance_month_07.
wa_msgdetails-balance_month_08 = balance_month_08.
wa_msgdetails-balance_month_09 = balance_month_09.
wa_msgdetails-balance_month_10 = balance_month_10.
wa_msgdetails-balance_month_11 = balance_month_11.
wa_msgdetails-balance_month_12 = balance_month_12.
wa_msgdetails-balance_month_13 = balance_month_13.
wa_msgdetails-current_balance = current_balance.
wa_msgdetails-current_activity_balance = current_activity_balance.
CLEAR: porciento1, porciento2, porciento3, porciento4, porciento5, porciento6, porciento7, porciento8, porciento9, porciento10, porciento11,
porciento12, average_month.
*se multiplican las siguientes variables que contienen cantidades por -1 cuando el primer numero de la cta. es igual a
* 5, 6, 7, ó 8.
IF numero_de_cta+4(1) = '5' OR numero_de_cta+4(1) = '6' OR numero_de_cta+4(1) = '7' OR numero_de_cta+4(1) = '8'.
IF wa_msgdetails-current_balance IS NOT INITIAL.
wa_msgdetails-current_balance = wa_msgdetails-current_balance * -1.
ENDIF.
IF wa_msgdetails-activity_previous_year IS NOT INITIAL.
wa_msgdetails-activity_previous_year = wa_msgdetails-activity_previous_year * -1.
ENDIF.
IF wa_msgdetails-average_previous_year IS NOT INITIAL.
wa_msgdetails-average_previous_year = wa_msgdetails-average_previous_year * -1.
ENDIF.
IF wa_msgdetails-aggreg_previous_year IS NOT INITIAL.
wa_msgdetails-aggreg_previous_year = wa_msgdetails-aggreg_previous_year * -1.
ENDIF.
IF wa_msgdetails-balance_previous_year IS NOT INITIAL.
wa_msgdetails-balance_previous_year = wa_msgdetails-balance_previous_year * -1.
ENDIF.
IF wa_msgdetails-current_activity_balance IS NOT INITIAL.
wa_msgdetails-current_activity_balance = wa_msgdetails-current_activity_balance * -1.
ENDIF.
IF wa_msgdetails-activity_month_01 IS NOT INITIAL.
wa_msgdetails-activity_month_01 = wa_msgdetails-activity_month_01 * -1.
ENDIF.
IF wa_msgdetails-balance_month_01 IS NOT INITIAL.
wa_msgdetails-balance_month_01 = wa_msgdetails-balance_month_01 * -1.
ENDIF.
IF wa_msgdetails-average_month_01 IS NOT INITIAL.
wa_msgdetails-average_month_01 = wa_msgdetails-average_month_01 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_01 IS NOT INITIAL.
wa_msgdetails-aggreg_month_01 = wa_msgdetails-aggreg_month_01 * -1.
ENDIF.
IF wa_msgdetails-activity_month_02 IS NOT INITIAL.
wa_msgdetails-activity_month_02 = wa_msgdetails-activity_month_02 * -1.
ENDIF.
IF wa_msgdetails-balance_month_02 IS NOT INITIAL.
wa_msgdetails-balance_month_02 = wa_msgdetails-balance_month_02 * -1.
ENDIF.
IF wa_msgdetails-average_month_02 IS NOT INITIAL.
wa_msgdetails-average_month_02 = wa_msgdetails-average_month_02 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_02 IS NOT INITIAL.
wa_msgdetails-aggreg_month_02 = wa_msgdetails-aggreg_month_02 * -1.
ENDIF.
IF wa_msgdetails-activity_month_03 IS NOT INITIAL.
wa_msgdetails-activity_month_03 = wa_msgdetails-activity_month_03 * -1.
ENDIF.
IF wa_msgdetails-balance_month_03 IS NOT INITIAL.
wa_msgdetails-balance_month_03 = wa_msgdetails-balance_month_03 * -1.
ENDIF.
IF wa_msgdetails-average_month_03 IS NOT INITIAL.
wa_msgdetails-average_month_03 = wa_msgdetails-average_month_03 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_03 IS NOT INITIAL.
wa_msgdetails-aggreg_month_03 = wa_msgdetails-aggreg_month_03 * -1.
ENDIF.
IF wa_msgdetails-activity_month_04 IS NOT INITIAL.
wa_msgdetails-activity_month_04 = wa_msgdetails-activity_month_04 * -1.
ENDIF.
IF wa_msgdetails-balance_month_04 IS NOT INITIAL.
wa_msgdetails-balance_month_04 = wa_msgdetails-balance_month_04 * -1.
ENDIF.
IF wa_msgdetails-average_month_04 IS NOT INITIAL.
wa_msgdetails-average_month_04 = wa_msgdetails-average_month_04 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_04 IS NOT INITIAL.
wa_msgdetails-aggreg_month_04 = wa_msgdetails-aggreg_month_04 * -1.
ENDIF.
IF wa_msgdetails-activity_month_05 IS NOT INITIAL.
wa_msgdetails-activity_month_05 = wa_msgdetails-activity_month_05 * -1.
ENDIF.
IF wa_msgdetails-balance_month_05 IS NOT INITIAL.
wa_msgdetails-balance_month_05 = wa_msgdetails-balance_month_05 * -1.
ENDIF.
IF wa_msgdetails-average_month_05 IS NOT INITIAL.
wa_msgdetails-average_month_05 = wa_msgdetails-average_month_05 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_05 IS NOT INITIAL.
wa_msgdetails-aggreg_month_05 = wa_msgdetails-aggreg_month_05 * -1.
ENDIF.
IF wa_msgdetails-activity_month_06 IS NOT INITIAL.
wa_msgdetails-activity_month_06 = wa_msgdetails-activity_month_06 * -1.
ENDIF.
IF wa_msgdetails-balance_month_06 IS NOT INITIAL.
wa_msgdetails-balance_month_06 = wa_msgdetails-balance_month_06 * -1.
ENDIF.
IF wa_msgdetails-average_month_06 IS NOT INITIAL.
wa_msgdetails-average_month_06 = wa_msgdetails-average_month_06 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_06 IS NOT INITIAL.
wa_msgdetails-aggreg_month_06 = wa_msgdetails-aggreg_month_06 * -1.
ENDIF.
IF wa_msgdetails-activity_month_07 IS NOT INITIAL.
wa_msgdetails-activity_month_07 = wa_msgdetails-activity_month_07 * -1.
ENDIF.
IF wa_msgdetails-balance_month_07 IS NOT INITIAL.
wa_msgdetails-balance_month_07 = wa_msgdetails-balance_month_07 * -1.
ENDIF.
IF wa_msgdetails-average_month_07 IS NOT INITIAL.
wa_msgdetails-average_month_07 = wa_msgdetails-average_month_07 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_07 IS NOT INITIAL.
wa_msgdetails-aggreg_month_07 = wa_msgdetails-aggreg_month_07 * -1.
ENDIF.
IF wa_msgdetails-activity_month_08 IS NOT INITIAL.
wa_msgdetails-activity_month_08 = wa_msgdetails-activity_month_08 * -1.
ENDIF.
IF wa_msgdetails-balance_month_08 IS NOT INITIAL.
wa_msgdetails-balance_month_08 = wa_msgdetails-balance_month_08 * -1.
ENDIF.
IF wa_msgdetails-average_month_08 IS NOT INITIAL.
wa_msgdetails-average_month_08 = wa_msgdetails-average_month_08 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_08 IS NOT INITIAL.
wa_msgdetails-aggreg_month_08 = wa_msgdetails-aggreg_month_08 * -1.
ENDIF.
IF wa_msgdetails-activity_month_09 IS NOT INITIAL.
wa_msgdetails-activity_month_09 = wa_msgdetails-activity_month_09 * -1.
ENDIF.
IF wa_msgdetails-balance_month_09 IS NOT INITIAL.
wa_msgdetails-balance_month_09 = wa_msgdetails-balance_month_09 * -1.
ENDIF.
IF wa_msgdetails-average_month_09 IS NOT INITIAL.
wa_msgdetails-average_month_09 = wa_msgdetails-average_month_09 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_09 IS NOT INITIAL.
wa_msgdetails-aggreg_month_09 = wa_msgdetails-aggreg_month_09 * -1.
ENDIF.
IF wa_msgdetails-activity_month_10 IS NOT INITIAL.
wa_msgdetails-activity_month_10 = wa_msgdetails-activity_month_10 * -1.
ENDIF.
IF wa_msgdetails-balance_month_10 IS NOT INITIAL.
wa_msgdetails-balance_month_10 = wa_msgdetails-balance_month_10 * -1.
ENDIF.
IF wa_msgdetails-average_month_10 IS NOT INITIAL.
wa_msgdetails-average_month_10 = wa_msgdetails-average_month_10 * -1.
ENDIF.
IF wa_msgdetails-aggreg_month_10 IS NOT INITIAL.
wa_msgdetails-aggreg_month_10 = wa_msgdetails-aggreg_month_10 * -1.
ENDIF.
IF wa_msgdetails-activity_month_11 IS NOT INITIAL.
wa_msgdetails-activity_month_11 = wa_msgdetails-activity_month_11 * -1.
ENDIF.
IF wa_msgdetails-balance_month_11 IS NOT INITIAL.
wa_msgdetails-balance_month_11 = wa_msgdetails-balance_month_11 * -1.
ENDIF.
IF wa_msgdetails-average_month_11 IS NOT INITIAL.
wa_msgdetails-average_month_11 = wa_msgdetails-average_month_11 *Hi,
Are the month-ends (jan_fin etc) stored in the system? There are many variable declarations and if statements that could probably be eliminated if that is the case. More efficient use of storing those variables in internal tables so that the data is only used when needed.
Warren -
Ola queria saber como puedo hacer para q mi videollamada de face me puedan ver
ola queria sable de COMO HACER sí puedo pra q en mi videollamada en face me puedan ver
Hola, no se si aun no hayas resuelto tu problema, yo tuve un problema similar y me lo resolviero en el soporte tecnico de itunes, en la opcion de "obtener soporte tecnico para el itunes store por correo electronico"
Maybe you are looking for
-
DVD from previously prepared files - fails
I am trying to make a DVD of a project that I did in Sony Vegas Pro on my PC. I have made hundreds of DVD's on the PC by opening Nero and burning the AUDIO_TS and VIDEO_TS files to the DVD. I have a week old MBP and am a Mac Newbie. When I do this wi
-
Can I manage my Family Sharing and child's Apple ID from my windows computer?
I've bought a refurbished iPhone in lieu of new iPod touch for a kid. I've had an iPod classic for some years and have always managed my involvement with apple via iTunes on a windows laptop. I want to set up an "under 13" identity for her and start
-
CS2 acrobat 7,0 professional will not install
I have CS2 Premium on XP. Had problems with printer not supporting pdfs. After techs fixed my computer Acrobat 7.0 pro will not work right. after 3 weeks with customer support and waiting days for them to get back to me they say they can't help - don
-
How do i configure safari on new ipod touch - it won't connect to my wifi
How do I configure my husband's new iPod Touch (4th Gen.) for Safari? We have WiFi at home but when I choose our network nothing happens and there seem to be loads more things to fill in none of which I know the answer to! Help!
-
HT5312 I don't remember my security answers how do I reset them
I don't remember my security answers how do I reset them??