miércoles, 28 de octubre de 2009

User Exits

Nos sirven para agregar codigo a las transacciones estandard, acontinuacion explico como.

1. Entra a la transaccion donde quieres meter tu codigo.
2. Busca el sting "CALL CUSTOMER FUNCTION" (usando ctrl + G)
3. Doble click en la que creas te puede servir, te situa en esa parte del programa,
doble click en el numero que tiene al final, te manda a la se37 ahi vemos un include z ese es el que podemos modificar.
4. Ejecuta la transaccion CMOD dale un nombre z, escribe una pequeña descripcion,
pasa a componentes, presiona el circulo para buscar una user exit(f4), selecciona el boton que tiene un "+" ( shift + f7 ), en nombre de componente pon el nombre de la funcion que vimos antes, guarde.
5. Doble click sobre el include que esta en la funcion modifique y luego active desde la CMOD.

Saludos

martes, 27 de octubre de 2009

Navidad tierregosa






Buenos dias vatoosss, hoy es un dia tierreroso lo que me hace recordar cierta anécdota que no paso hace un tiempo en “el terreno de kike” vease. Lugar de pisteaderas mortales.

Corria el año de 200( ke te importa) era el 24 de diciembre de tal año los estudiantes de una des-prestigiada universidad organizaron una fiesta en el terreno antes mencionado el terreno que kike es una extensión territorial muy amplia y muy tierregosa encumbrada en la mas absouluta lejania de cualquier colonia o ser vivo cerca del boulevard las torres, hablo de aquellos tiempos ahora esta de poca.

Es preciso mencionar que no habia agua, no habia luz electrica, y ni las rallitas de movistar se atreven a llegar alla, hacia un frio de la chingada, pero era una convivencia amena empezamos desde temprano habia comida y bebida para los paladares mas exigentes (chingos de fritanga, chingos de vironga y chingos de carne) no pues dale pisteale, vete por un carton , vete por otro, otro, otro hasta que ya todos pendejos no podiamos ni caminar, cuy muy conciente de que si se iba lo mas seguro es que agarrara monte y el poderoso shadow terminaria en medio de gobernadoras y nopales decidio quedarse alli, kike no tubo inconveniente y dijo que el tambien se quedaba ademas de su servidor y otra persona la cual no logramos recordar quien es.

Chuy en su pedez extrema decide irse a un sillon que habia en la casa del terreno, y los demas seguimos la fuesta, llegaron otros camaradas trajeron mas cheve.

Como no habia corriente electrica conectamos un foco a la bateria del carro de chuy y fue con la que sobrevivimos ademas de la musica, ya pasado bastante rato el carro empezo a dar síntomas de que la bateria se estaba descargando, por lo que super pablo (totol) dice –Nombre amos a prenderlo pa que no se descargue, deja le intento con mi llave, mi llave es MAGICA abre carros prende carros, abre candados dejen le intento,
Mientras kike iba a pedir las llaves del carro totol insistio e insistio hasta que la llave ya no salio, tratamos y tratamos y la llave nunca salio (ha cabron parece rima)
Intentamos de uno por uno y no la llave no salia, hasta que kike en un acto supremo de inteligencia uso unas pinsas mecanicas y le estiro con todo crujio un chingo y salio.
-AAA no MMSS inche kike picudo!!!! Todos .
Dejamos el carro de chuy por la paz y conectamos todo a otro, total ya como a las 5 am se fueron todos (ya se habia acabado la cheve los fritos y la carne por supuesto) ademas que era 25 de diciembre, como pudimos nos acomodamos 4 personas en 3 sillones y nos quedamos jetones con un frio de la chingada.

Despertamos de mañana todos adoloridos, el cuello torcido, las patas acalambradas, un solaso de poca, un aironaso de esos que levantan tierra a mas no poder y a la vez hacia frio, no pos amonos!.

Ya los cuatro metidos en el carro de chuy que va metiendo la llave.
-A carbón! Ha cabroon! *chuy frunce el ceño* -No da vuelta no mms que hicieron!
Todos risa y risa contamos la historia de lo que paso mientras dormia y see encabronaa
Y chuy cuando se encabrona es otro pedo se le paran los pelos (pocos).
Y que le marca a totol
–Pinche totol culero pa que le metes la llave y no se que tantas madres decia.
Totol: Si we voy para alla, llevo comida y agua (puro pedo se vuelve a dormir).

*arriba del carro de chuy* puro silencio afuera un tierregal de la chingada duramos como una hora hay esperando a totol, vuelve a marcarle chuy a totol
-Orale puto nos stamos deshidratando no mmss!!
Totol: No we no voy a poder ir porque no traigo gasolina .(se velve a dormir)
Nos bajamos del carro todos enervados.
-No pos vamonos a pie. Y dice kike nooombre aki roban un chingo y pinche chuy no pos no nos vamoos hasta que jale el pinceh carro!! Y le marca a su carnal que se traiga herramienta mientras sguimos esperando el airee arrecia inche tierregal de poca ya afuera del carro todos pareciamos cucarachas de panaderia, la garganta seca, al pasar saliva tragabas tierra ya.

Mientras esperabamos desaparece Felipe ( soy yo pero la historia se cuenta desde otro punto de vista) ya tenia rato y nada
-Se habra ido a pie este puto!
-Habra agarrado monte!
-A lo mejor ya lo atropellaron en el boulevard!!
Por lo que salimos a buscarlo, nos paramos en medio del boulevard y se veia venir a lo lejos como en esas películas del viejo oeste donde la carretera por el calor produce ondas, venia a mucha distancia y traia una fresca de 2 lts caminaba 2 pasos y le daba un trago, otros 2 y otro trago, con la pinche seed que traiamos pensamos en correr a alcanzarlo- Si este puto le sigue pisteando asi va a llegar sin nada!-
Pero logramos comportarnos a la altura y lo esperamos no mms que rica supo esa fresca con la cruda el solaso la tierra y lo adoloridos total nos la tomamos en pocos tragos.

Después de un rato la energia ya estaba muy baja ya ni siquiera hablabamos solo el viento chiflando,todos con las chamarras tratando de taparnos lo mas alto que podiamos, que no te diera la tierra en la cara, el pinche Felipe hacia unos gestos muy exagerados se levantaba la chamarra hasta taparse toda la cara y luego se oia cada cierto tiempo CUAAJJ CUAJJJ CUAJJJ CUAJJJJ.

-Ke trais ahí Felipe
-Onde we , onde .
-ahi trais algo
-No we nada es el aire

Y de nuevo CUAJJ CUAJJ CUAJJ CUAJJ
Ya cuando fue demasiado evidente dice el puto…. ha sii……… traigo unas galletas es que ya traigo hambre ustedes no? PUTOOOOOOOOO ¡!!!

Total se repartieron las que quedaban y llego el hermano de chuy, con la herramienta, intentamos desarmar el volante para prenderlo directo pero esa pinche cosa parece que la hizo haudinni pa que jamaz nadie la pudiera desarmar no pues total después de mucho se rindieron no pues ha hablarle a un cerrajero , 25 de dic!!! De seguro todos los cerrajeron andaban pedos, en un ataque de desesperación Felipe agarra un pinche desarmador y encuentra un tornillo “Secreto” lo desarma y PTUUUUUUUMMMM

Arranca el pinche carro todos felices no mmss weee te perdonamos lo de las galletas!
Kike corre y sin querer patea un bote donde teniamos los tornillos quitados y los riega por la tierra mas que suelta no pues hay nos tendran un chingo de rato rascando la tierra buscando los pinches tornillos, kike saco una raquetita y con esa crivando la tierra mientras crivabamos alguien comento –Que pinche navidad tan mas picuda creo que nunca se nos va a olvidar!!.

viernes, 25 de septiembre de 2009

Funcion para enviar correo mediante outlook

FUNCTION ZCORREO.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(CORREO2) TYPE C
*" REFERENCE(ADJUNTO2) TYPE C
*"----------------------------------------------------------------------
data:
correo(50) type c,
adjunto LIKE RLGRAP-FILENAME.

correo = correo2.
adjunto = adjunto2.

* AT SELECTION-SCREEN ON VALUE-REQUEST FOR adjunto.
* CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
* EXPORTING
* STATIC = 'X'
* MASK = ''
* CHANGING
* FILE_NAME = adjunto.
*
*start-of-selection.

TYPE-POOLS : ole2.
DATA: appoutlook TYPE ole2_object.
DATA: appout2 TYPE ole2_object.
DATA: appitem TYPE ole2_object.
DATA: namespace TYPE ole2_object.
DATA: attachments TYPE ole2_object.
DATA: frace01(45), frace02(45).
DATA: p_subj(20) TYPE c.
DATA: p_body TYPE string.




* Crear objeto OLE : outlook.application
CREATE OBJECT appoutlook 'outlook.application'.
* Mensajes vía MAPI
CALL METHOD OF appoutlook 'GetNameSpace' = namespace
EXPORTING
#1 = 'MAPI'.
* Crea objeto nuevo ITEM ( nuevo mensaje )
CALL METHOD OF appoutlook 'CreateItem' = appitem
EXPORTING
#1 = '0'.
* Propiedades TO , SUBJECT y BODY
SET PROPERTY OF appitem 'To' = correo.

* CONCATENATE p_subj 'OC: ' itab-ebeln INTO p_subj
*SEPARATED BY space.
SET PROPERTY OF appitem 'Subject' = 'Email Automatico'.

CONCATENATE '' 'Mensaje enviado de manera automatica '
INTO p_body.

SET PROPERTY OF appitem 'Body' = p_body.

* Se adjunta el archivo
if adjunto is not initial.
CALL METHOD OF appitem 'Attachments' = attachments.
CALL METHOD OF attachments 'Add'
EXPORTING
#1 = adjunto.
endif.
* Envíar directamente
CALL METHOD OF appitem 'Send'.
*Se muestra la pantalla del outlook
*CALL METHOD OF appitem 'Display'.
* Libera Espacio del objeto
FREE OBJECT attachments.
FREE OBJECT appitem.
FREE OBJECT namespace.
FREE OBJECT APPOUTLOOK.
* Cierra Outlook ( solo si se quiere que quede cerrado )

CALL METHOD OF appoutlook 'Quit'.

*en caso que quieras ejecutar outlook
*CALL FUNCTION 'WS_EXECUTE'
* EXPORTING
** commandline = commandline
* program = 'OUTLOOK.EXE'
* EXCEPTIONS
* frontend_error = 1
* no_batch = 2
* prog_not_found = 3
* illegal_option = 4
* OTHERS = 5.
*
* IF sy-subrc > 0.
* RAISE execution_failed.
* ENDIF.
*
MESSAGE s000(38) WITH 'Proceso email finalizado... '.
*







ENDFUNCTION.

ABAP envia por pdf el ultimo spool creado

*&---------------------------------------------------------------------*
*& Form ENVIA_MAIL2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

form envia_mail2.

DATA: IT_TSP01 LIKE TSP01 OCCURS 0 WITH HEADER LINE.
DATA: NUMBYTES TYPE I,
PDFSPOOLID LIKE TSP01-RQIDENT,
IT_PDF LIKE TLINE OCCURS 0.

*Lo primero es buscar el número de la orden de spool en la tabla TSP01. *En este caso le paso el nombre del usuario y el mandante.
SELECT RQIDENT
INTO (IT_TSP01-RQIDENT)
FROM TSP01
WHERE RQOWNER EQ SY-UNAME
AND RQCLIENT EQ SY-MANDT.
APPEND IT_TSP01.
ENDSELECT.

*Ordeno en forma descendente para quedarme con el último formulario *generado
SORT IT_TSP01 DESCENDING.

*Al siguiente módulo de función le paso el número de la orden para que *me devuelva el formulario dentro de la tabla IT_PDF
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID = IT_TSP01-RQIDENT
IMPORTING
PDF_BYTECOUNT = NUMBYTES
TABLES
PDF = IT_PDF
EXCEPTIONS
ERR_NO_OTF_SPOOLJOB = 1
ERR_NO_SPOOLJOB = 2
ERR_NO_PERMISSION = 3
ERR_CONV_NOT_POSSIBLE = 4
ERR_BAD_DSTDEVICE = 5
USER_CANCELLED = 6
ERR_SPOOLERROR = 7
ERR_TEMSEERROR = 8
ERR_BTCJOB_OPEN_FAILED = 9
ERR_BTCJOB_SUBMIT_FAILED = 10
ERR_BTCJOB_CLOSE_FAILED = 11
OTHERS = 12.

IF SY-SUBRC EQ 0.

*Una vez que tengo el formulario en la tabla hago el download
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = NUMBYTES
FILENAME = 'C:\Aviso.pdf'
FILETYPE = 'BIN'
TABLES
DATA_TAB = IT_PDF
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6.

IF SY-SUBRC EQ 0.
MESSAGE I014(ZSM) WITH 'Aviso de pago creado'
' '
' '.
*se envia un correo a la direccion correspondiente con el Aviso adjunto
CALL FUNCTION 'ZCORREO'
EXPORTING
correo2 = 'felipe.carrales@gmail.com'
adjunto2 = 'C:\Aviso.pdf'.


ELSE.
MESSAGE I014(ZSM) WITH 'No se pudo transferir el archivo c:\Aviso.pdf'.
DELETE FROM TSP01 WHERE RQIDENT EQ IT_TSP01-RQIDENT.
ENDIF.

ENDIF.



endform.

martes, 22 de septiembre de 2009

Abap enviar mail mediante outlook

report enviamail.


parameters:
correo(50) type c,
adjunto LIKE RLGRAP-FILENAME.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR adjunto.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
STATIC = 'X'
MASK = ''
CHANGING
FILE_NAME = adjunto.

start-of-selection.

TYPE-POOLS : ole2.
DATA: appoutlook TYPE ole2_object.
DATA: appout2 TYPE ole2_object.
DATA: appitem TYPE ole2_object.
DATA: namespace TYPE ole2_object.
DATA: attachments TYPE ole2_object.
DATA: frace01(45), frace02(45).
DATA: p_subj(20) TYPE c.
DATA: p_body TYPE string.




* Crear objeto OLE : outlook.application
CREATE OBJECT appoutlook 'outlook.application'.
* Mensajes vía MAPI
CALL METHOD OF appoutlook 'GetNameSpace' = namespace
EXPORTING
#1 = 'MAPI'.
* Crea objeto nuevo ITEM ( nuevo mensaje )
CALL METHOD OF appoutlook 'CreateItem' = appitem
EXPORTING
#1 = '0'.
* Propiedades TO , SUBJECT y BODY
SET PROPERTY OF appitem 'To' = correo.

* CONCATENATE p_subj 'OC: ' itab-ebeln INTO p_subj
*SEPARATED BY space.
SET PROPERTY OF appitem 'Subject' = 'Correo electronico test'.

CONCATENATE '' 'aca va el texto para el cuerpo del mensaje '
INTO p_body.

SET PROPERTY OF appitem 'Body' = p_body.

* Se adjunta el archivo
if adjunto is not initial.
CALL METHOD OF appitem 'Attachments' = attachments.
CALL METHOD OF attachments 'Add'
EXPORTING
#1 = adjunto.
endif.
* Envíar directamente
CALL METHOD OF appitem 'Send'.
*Se muestra la pantalla del outlook
******** CALL METHOD OF appitem 'Display'.
* Libera Espacio del objeto
FREE OBJECT attachments.
FREE OBJECT appitem.
FREE OBJECT namespace.
* Cierra Outlook ( solo si se quiere que quede cerrado )
***CALL METHOD OF appoutlook 'Quit'.

martes, 8 de septiembre de 2009

Historias Ninja


SI TIENE UN GATO O UN PERRO, ENSÉÑELES COMO AFRONTAR LA CRISIS... ELLOS TAMBIÉN DEBEN APORTAR A LA CASA.


YO ESTOY TRATANDO DE HACER LO MISMO CON MIS MASCOTAS!



Tengo que entrenar a mi perro... mi gato se fue =(

*-*-*
los gatos son de putos!
*-*-*
...Debes tener un Gato
*-*-*
no tengo tengo un perro asesino se llama Satan
*-*-*
Si ese tosco perro te asesina a diario te hara mal
...debes tener un gato
*-*-*
jajajaja
Tonto!
contigo no se puede !
creo que solo hay una manera de acabar con esta discusion
*pffffff explota una bomba de humo y sale caminando entre las tinieblas*


te hare enfadar para que hagas tu maximo esfuerzo

*corre tan rapido que se ven muchos, desenfunda su Katana y le rebana la cabeza a Beckam,
antes de que caiga al suelo, le ensarta la espada en un hojo y te la muestra retadoramente,
mientras el cuerpo aun se mueve saltando chorros de sangre de 6 metros*

Este es tu idolo!...




*-*-*

Ja ja ja *se mofa en tono de indiferencia ante la muerte de beckman, con la vista al suelo,,, y poco a poco dirijiendola a su adversario*

He estado esperando este momento kabuto *comienza musicka emocionante*

Jajaja *se mofa mas*

*Toma su daga de la Muerte, y se hace un corte en el brazo izquierdo*



te mostrare una tecnica Prohibida por los antiguos ninjas

*la sangre cae al suelo y grita*

Tecnica de invocacion Ninja

*Sucede una explosion y aparece un guerrero del infierno invocado, el es es*

*notece que se marco copia a fco jimenez, alias la bestia del infierno, quien se unira a la batalla como invocacion del guerrero ninja*

*-*-*

demasiado tarde...
*solo dejo un rastro la hayabusa susuky entre ruido de el motor que pareciera qeu estan acuchillando a un marrano;
se aleja a 400 km por hora*
Voy a comer orita regresoooooooooooooo...!!
tsssssssssssssssss (ruido de moto)

lunes, 7 de septiembre de 2009

Uso del Join en ABAP

A continuacion un ejemplo del uso del join para cuando necesitar traer
datos de dos o mas tablas.

SELECT VDBEVI~RANL KNA1~NAME1 VDBEVI~SBEWART VDBEVI~DDISPO VDBEVI~BHWHR
INTO CORRESPONDING FIELDS OF TABLE i_table FROM vdbevi
INNER JOIN KNA1 on VDBEVI~KUNNR = KNA1~KUNNR
WHERE VDBEVI~DDISPO IN p_fecham
and VDBEVI~KUNNR = p_KUNNR
and ( VDBEVI~SBEWART = '4530' OR VDBEVI~SBEWART = '4531' ) .

viernes, 4 de septiembre de 2009

Libro namber guan

Una tarde lluviosa en un pueblo olvidado, un retrato que habla por si mismo, otros tiempos: don anciano se da cuenta que no es lo mismo los tiempos han cambiado, nadie tiene tiempo para nada, todos olvidan vivir, el trabajo y la vida atareada los distrae, el no puede ayudar a nadie, solo es un retrato , olvidado en un pueblo lejano, en una cabaña que esta por derrumbarse, pronto no quedara nada, el anciano solo se lamenta, jamaz podra cumplir su mision, jamaz ira al cielo.

Logs llenos en sql

Si tus logs se han llenado, basta crear un backup para ello:
-Abrimos enterprise manager
-Nos desplazamos a la base de datos que tenga el log lleno
-Clic derecho encima de ella : all tasks : backup database
-Selecionamos transaction logs, hubicacion y aceptar

Si marca algun error como alternativa podemos agregar otro archivo de logs:
-Click derecho sobre la base de datos : propiedades
-Pestaña transaction logs : en los 3 puntitos : ponemos nombre aceptar
-El tamaño lo igualamos a el que teniamos anteriormente y listo

Saludos

lunes, 31 de agosto de 2009

Backup y respaldo de CISCO PIX 501

Para hacer un backup de la configuracion de el CISCO PIX FIREWALL 501
hacemos lo siguiente

-Instalar un servidor tftp de tu preferencia (yo use el pt360 tool suite)
-conecta directamente el pix a tu pc utilizando para ello el cable de consola
(azul con un lado rj45 = ethernet del otro lado serial)
conectamos en la terminal del pix que dice "CONSOLE"
-conecta un cable ethernet normal del puerto 1 de tu pix al de tu maquina.
-Utilizaremos hyperterminal de windows. (si tu maquina no lo tiene usa algun otro)
o desde telnet
-Conectamos el pix a la corriente electrica y esperamos.
-Muchas letritas hasta que te ponga algo como esto.
Escribe el comando seguido de enter y te debe poner lo mismo.

pixfirewall>enable
Password:tupassword
pixfirewall#write net 192.168.1.106:pixbackup
Building configuration...
TFTP write 'pixbackup' at 192.168.1.106 on interface 1
[OK]
pixfirewall#
(con esto tenemos ya guardada la configuracion en tu pc)
Para reestablecerla:
pixfirewall# configure terminal
pixfirewall(config)# config net 192.168.1.106:pixbackup

192.168.1.106 = ip de tu maquina
pixbackup = nombre dado al archivo de configuracion

Es todo..

martes, 18 de agosto de 2009

ALV Simple

ALV Simple
REPORT zalv_simple.
* Jorge Serra (AbapLife) http://abaplife.bitacoras.com
* Se trata de un pequeño ejemplo de listado ALV para aquellos que nunca
* han creado uno. Por supuesto, a los que ya sepáis algo de ALV, no
* creo que os sirva de mucho
* Propósito:
* ---------
* Voy mostrar un listado de posiciones de pedidos de compras
* Pasos esenciales (Buscar el simbolo '§')
* ----------------
* 1. Definición estructuras y tablas necesarias
* 2. Definimos la tabla con los datos de salida
* 3. Toma de datos
* 4. Definición estructura y formato de salida
* 5. Mostrar listado
*<-- § Paso 1. Definicion estructuras y tablas necesarias
* Type Pool donde vienen definidas todas las estructuras y tablas
TYPE-POOLS: slis.
* Catálogo de campos: contiene la descripción de los campos de salida
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
* Especificaciones de la disposición de la lista: descripción de la
* estructura de salida
gs_layout TYPE slis_layout_alv,
* Nombre del programa g_repid LIKE sy-repid.
*<-- § Paso 2. Definimos la tabla con los datos de salida
TYPES: BEGIN OF st_output.
INCLUDE STRUCTURE ekpo.
TYPES: END OF st_output.
DATA: gt_output TYPE STANDARD TABLE OF st_output WITH HEADER LINE.
INITIALIZATION. g_repid = sy-repid.
START-OF-SELECTION.
*<-- § Paso 3. Toma de datos
PERFORM toma_datos.
*<-- § Paso 4. Estructura y formato de salida
PERFORM init_fieldcat.
PERFORM init_layout.
*<-- § Paso 5. Mostrar listado
PERFORM listado.
*&&-----------------------------------------------------------------&&*
* SUBRUTINAS DEL PROGRAMA*
*&&-----------------------------------------------------------------&& *
*---------------------------------------------------------------------*
* FORM INIT_FIELDCAT *
*---------------------------------------------------------------------*
FORM init_fieldcat.
* Mediante esta tabla vamos a definir los campos que queremos mostrar
* en el listado de salida.
gt_fieldcat-fieldname = 'EBELN'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'EBELP'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MATNR'. gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'WERKS'. gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MENGE'. gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'MEINS'.
gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat.
ENDFORM.
*---------------------------------------------------------------------*
* FORM INIT_LAYOUT *
*---------------------------------------------------------------------*
FORM init_layout.
* Mediante esta estructura podemos definir el formato de salida
gs_layout-zebra = 'X'.
gs_layout-f2code = '&ETA'.
gs_layout-detail_popup = 'X'.
ENDFORM.
*---------------------------------------------------------------------*
* FORM TOMA_DATOS *
*---------------------------------------------------------------------*
FORM toma_datos.
* Los datos deben guardarse en la tabla interna de salida
SELECT * FROM ekpo UP TO 100 ROWS INTO TABLE gt_output.
ENDFORM. " TOMA_DATOS
*---------------------------------------------------------------------*
* FORM LISTADO *
*---------------------------------------------------------------------*
FORM listado.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
TABLES t_outtab = gt_output
EXCEPTIONS program_error = 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.
ENDFORM. " LISTADO

REPORTE REGULATORIO DE CARTERA DE CRÉDITO

Base de datos logica BTF

************************************************************************
* *
* Nombre del Programa: ZR04_CNBV *
* Programador : *
* Fecha : *
*----------------------------------------------------------------------*

REPORT ZR04_CNBV
LINE-SIZE 1023
LINE-COUNT 60
MESSAGE-ID 67
NO STANDARD PAGE HEADING.

include: ZR04_CNBV_top, " Declaracion de Variables
ZR04_CNBV_sub. " Declaracion de Subrutinas.

***********************************************************************
START-OF-SELECTION.
***********************************************************************
get vdarl.

perform f_proceso.

get vdbevi.

perform f_proceso_cred.

v_mes = vdbevi-dbudat+4(2).

IF V_fecha_liq < vdbevi-dbudat.

v_fecha_liq = vdbevi-dbudat.

endif.

GET vdarl LATE.

if i_deta-scwhr ne 'MXN'.
perform f_conversion_moneda_ext.
endif.

describe table i_mov110 lines sy-tabix.

****
if sy-tabix => 1.
* delete i_mov110 index 1.
delete i_mov110 where pkond is initial.
describe table i_mov110 lines sy-tabix.
endif.
*****

if sy-tabix > 0.

sort i_mov110 by dbudat descending.
read table i_mov110 index 1.
if sy-subrc = 0.

i_deta-tasa = i_mov110-pkond.

endif.

else.

describe table i_mov110a lines sy-tabix.
if sy-tabix > 0.

sort i_mov110a by dbudat ascending.
read table i_mov110a index 1.
if sy-subrc = 0.

i_deta-tasa = i_mov110a-pkond.

endif.

endif.

endif.

refresh: i_mov8301, i_mov8304, i_mov110a, i_mov110.

perform f_calcula_total.

I_DETA-ESTIMA = ABS( I_DETA-ESTIMA ).

if v_cant_venc = 0.
i_deta-situacion = '1'.
elseif v_cant_venc > 0.
if v_ssonder = '1' or v_ssonder = '2'.
i_deta-situacion = '3'.
else.
i_deta-situacion = '2'.
endif.
endif.



if v_ssonder = '1' or v_ssonder = '2'.
i_deta-intvig = 0.
i_deta-intven = i_deta-int_venc + I_DETA-INT_VIG -
I_DETA-saldo77.
i_deta-cta_ord = 'Especial'.
else.
i_deta-intvig = i_deta-int_vig + i_deta-int_venc.
i_deta-intven = 0.
i_deta-cta_ord = 'Normal'.
endif.

clear: v_dias_venc.

if l_total ne 0 and i_deta-Fecha_Ap <= pa_stich.

i_deta-saldo = l_total - I_DETA-saldo77.

append i_deta.

endif.

clear: i_deta.

***********************************************************************
END-OF-SELECTION.
***********************************************************************
perform f_reporte.



















*FIN DEL REPORTE CONTINUAN LOS 2 INCLUDES
*&---------------------------------------------------------------------*
*& Include ZR04_CNBV_TOP *
*&---------------------------------------------------------------------*
tables: VDARL,
vdbevi,
T056P,
vzzkoko.


DATA: v_subreporte(3) type c value '411',
v_addrnumber like but020-addrnumber,
v_city1 like adrc-city1,
v_CITY2 like adrc-city2,
v_POST_CODE1 like adrc-POST_CODE1,
v_street like adrc-street,
v_house_num1 like adrc-house_num1,
v_REGION like adrc-REGION,
v_regiogroup like adrc-regiogroup,
v_ammrhy like vzzkopo-ammrhy,
v_cantidad type p decimals 2,
v_num_cias type i,
l_total type p decimals 2,
V_FC_FIN LIKE SY-DATUM,
V1 LIKE VTBFORM-BVARWERT,
V2 LIKE VTBFORM-BVARWERT,
V3 LIKE VTBFORM-BVARWERT,
V4 LIKE VTBFORM-BVARWERT,
VX LIKE VTBFORM-BVARWERT,
v_cant_vig like vdbevi-bbwhr,
v_cant_venc like vdbevi-bbwhr,
v_name_org1 like but000-name_org1,
v_name_org2 like but000-name_org2,
v_name_first like but000-NAME_FIRST,
v_name_last like but000-NAME_LAST,
v_name_lst2 like but000-name_lst2,
v_jobgr like but000-jobgr,
v_bez30 like TB028T-bez30,
v_saldo like bseg-wrbtr,
v_ssonder like vdarl-ssonder,
v_Dias_Venc type i,
v_mes(2) type n,
v_fecha_liq like vdbevi-dbudat,
v_tiee like t056p-ZSOLL.

* Tablas Internas.
data: begin of i_deta occurs 0,
subreporte like v_subreporte,
Contrato_cr like RMF67-XRANL,
cia(80) type c,
paterno like but000-name_last,
materno like but000-name_lst2,
name1 like but000-name_first,
name2 like but000-name_first,
rfc like BPDTAX-STCEG,
direc_1(71) type c,
colonia like ADDR2_DATA-CITY2,
cod_postal like ADDR2_DATA-POST_CODE1,
localidad like ADDR2_DATA-regiogroup,
actividad(10) type c,
c_contable(12) type c,
saldo TYPE I, "like vdbevi-bbwhr,
fecha_Ap like RMF67-XDBLFZ,
fecha_fin like RMF67-XDBLFZ,
reestruct type c,
freestruct type c,
moneda type c,
tasa type p decimals 2 ,
intvig type i,
intven TYPE I, "like vdbevi-bbwhr,
frecuencia type c,
situacion type c,
estima TYPE I, "like bseg-wrbtr,
garantia(3) type c,
v_garantia TYPE I, "like vdlv-bvertrag,
especial(2) type c,
relacion(2) type c,
fondeo(2) type c,
porcen(3) type c,
ciudad like ADDR2_DATA-CITY1,
Plazo type i,
Num_Pagos_cr type i,
Frec_Pagos_cr type i,
cap_vig like vdbevi-bbwhr,
int_vig type p decimals 2,
int_vig2 type p decimals 2,
cap_venc like vdbevi-bbwhr,
int_venc like vdbevi-bbwhr,
scwhr like vdbevi-scwhr,
cta_ord(8) type c,
saldo77 like vdbevi-bbwhr.
data: end of i_deta.

data: begin of i_vdarlsic occurs 0,
iRSICHER like vdarlsic-rsicher.
data: end of I_vdarlsic.

data: begin of i_vdlv occurs 0,
BVERTRAG like vdlv-BVERTRAG.
data: end of I_vdlv.



data: begin of i_mov8301 occurs 0,
SBEWART like vdbevi-sbewart,
DBUDAT like VDBEVI-DBUDAT,
pKOND like VDBEVI-PKOND.
data: end of I_MOV8301.

data: begin of i_mov8304 occurs 0,
SBEWART like vdbevi-sbewart,
DBUDAT like VDBEVI-DBUDAT,
pKOND like VDBEVI-PKOND.
data: end of I_MOV8304.

data: begin of i_mov110 occurs 0,
SBEWART like vdbevi-sbewart,
DBUDAT like VDBEVI-DBUDAT,
pKOND like VDBEVI-PKOND.
data: end of I_MOV110.

data: begin of i_mov110a occurs 0,
SBEWART like vdbevi-sbewart,
DBUDAT like VDBEVI-DBUDAT,
pKOND like VDBEVI-PKOND.
data: end of I_MOV110a.


data: begin of i_bsis occurs 0,
bukrs like bsis-bukrs,
hkont like bsis-hkont,
augdt like bsis-augdt,
augbl like bsis-augbl,
zuonr like bsis-zuonr,
gjahr like bsis-gjahr,
BELNR like bsis-belnr.
data: end of i_bsis.

data: begin of i_bseg occurs 0,
BUKRS like bseg-bukrs,
BELNR like bseg-belnr,
GJAHR like bseg-gjahr,
BUZEI like bseg-buzei,
wrbtr like bseg-wrbtr,
ZUONR(18) type c,
SHKZG like bseg-shkzg.
data: end of i_bseg.

data: begin of i_vzzkopo occurs 0,
rkey like vzzkopo-rkey1,
dguel_kp like vzzkopo-dguel_kp,
skoart like vzzkopo-skoart,
PKOND like vzzkopo-pkond,
bkond like vzzkopo-bkond,
szsref like vzzkopo-szsref.
data: end of i_vzzkopo.

data: begin of i_vzzkopo_201 occurs 0,
rkey like vzzkopo-rkey1,
dguel_kp like vzzkopo-dguel_kp,
skoart like vzzkopo-skoart,
PKOND like vzzkopo-pkond,
bkond like vzzkopo-bkond,
szsref like vzzkopo-szsref.
data: end of i_vzzkopo_201.


data: begin of i_bsid occurs 0,
zuonr like bsid-zuonr,
zfbdt like bsid-zfbdt,
augdt like bsid-augdt,
budat like bsid-budat,
cpudt like bsid-cpudt,
belnr like bsid-belnr,
buzei like bsid-buzei,
SHKZG like bsid-shkzg,
WRBTR like bsid-WRBTR,
vertn like bsid-vertn,
vbewa like bsid-vbewa,
int_mora type p decimals 6.
data: end of i_bsid.


DATA: BEGIN OF I_ZKOPO OCCURS 5.
INCLUDE STRUCTURE VZZKOPO.
DATA: END OF I_ZKOPO.

DATA: BEGIN OF I_glt0 OCCURS 0.
INCLUDE STRUCTURE glt0.
DATA: END OF I_glt0.

DATA : I_VZZKOPA LIKE VZZKOPA OCCURS 0 WITH HEADER LINE.

data: begin of i_tcurr occurs 0,
GDATU like tcurr-gdatu,
UKURS like tcurr-ukurs.
data: end of I_TCURR.

data: begin of i_but0id occurs 0,
PARTNER like but0id-partner,
type like but0id-type,
IDNUMBER like but0id-idnumber.
data: end of i_but0id.

PARAMETERS:
PA_STICH LIKE SY-DATUM OBLIGATORY.





*&---------------------------------------------------------------------*
*& Include ZR04_CNBV_SUB *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form f_proceso
*&---------------------------------------------------------------------*
* Proceso principal
*----------------------------------------------------------------------*
FORM f_proceso .

perform f_obtiene_datos_cia.

perform f_obtiene_clas_contable.

perform f_obtiene_saldos_cuenta.

perform f_obtiene_estimaciones_prev.

* perform f_calcula_tasa.

perform f_obtiene_datos_cr.

ENDFORM. " f_proceso
*&---------------------------------------------------------------------*
*& Form f_proceso_cred
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_proceso_cred .

i_deta-scwhr = vdbevi-scwhr.

if vdbevi-sbewziti = 'A' and vdbevi-sstorno is initial.

if vdbevi-VVSSOLHAB = 'S'.

i_deta-cap_vig = i_deta-cap_vig + vdbevi-bbwhr.

else.

i_deta-cap_vig = i_deta-cap_vig - vdbevi-bbwhr.

endif.

endif.

if vdbevi-sbewziti = 'TZ' or "vdbevi-sbewart = '4530' or
vdbevi-sbewart = '3160' or vdbevi-sbewart = '3260'.

if vdbevi-dbudat <= PA_STICH.

if vdbevi-VVSSOLHAB = 'S'.
i_deta-int_venc = i_deta-int_venc +
vdbevi-bbwhr.
else.

i_deta-int_venc = i_deta-int_venc -
vdbevi-bbwhr.
endif.

endif.

endif.

if vdbevi-sbewziti = 'TTRA' or vdbevi-sbewziti = 'TTEN' or
vdbevi-sbewziti = 'TT' or vdbevi-sbewziti = 'S ' or
vdbevi-sbewziti = 'SERP'.


if vdbevi-dbudat <= PA_STICH.

if vdbevi-VVSSOLHAB = 'S'.
i_deta-cap_venc = i_deta-cap_venc +
vdbevi-bbwhr.
else.
i_deta-cap_venc = i_deta-cap_venc -
vdbevi-bbwhr.
endif.

endif.

endif.

if ( vdbevi-sbewart = '0120' or vdbevi-sbewart = '0115' or
vdbevi-sbewart = '0135' or vdbevi-sbewart = '0138' ).
* and vdbevi-sstorno is initial.


if vdbevi-dbudat <= PA_STICH.

if vdbevi-VVSSOLHAB = 'S'.
i_deta-cap_vig = i_deta-cap_vig - vdbevi-bbwhr.
else.
i_deta-cap_vig = i_deta-cap_vig + vdbevi-bbwhr.
endif.

endif.

endif.

if vdbevi-sbewziti = 'EAAR'.

if vdbevi-dbudat <= PA_STICH.

if vdbevi-VVSSOLHAB = 'S'.
i_deta-int_vig = i_deta-int_vig + vdbevi-bbwhr.
else.
i_deta-int_vig = i_deta-int_vig - vdbevi-bbwhr.
endif.

endif.

endif.


* IF vdbevi-sbewart = '8301'.
*
* if vdbevi-dbudat <= PA_STICH.
*
* I_MOV8301-SBEWART = vdbevi-sbewart.
* I_MOV8301-DBUDAT = VDBEVI-DBUDAT.
* I_MOV8301-PKOND = VDBEVI-PKOND.
* APPEND I_MOV8301.
*
* ENDIF.
*
* ENDIF.
*
* IF vdbevi-sbewart = '8304'.
*
* if vdbevi-dbudat <= PA_STICH.
*
* I_MOV8304-SBEWART = vdbevi-sbewart.
* I_MOV8304-DBUDAT = VDBEVI-DBUDAT.
* I_MOV8304-PKOND = VDBEVI-PKOND.
* APPEND I_MOV8304.
*
* ENDIF.
*
* ENDIF.

if vdbevi-sbewart = '0110'.

if vdbevi-dbudat <= PA_STICH.

i_mov110-sbewart = vdbevi-sbewart.
I_MOV110-DBUDAT = VDBEVI-DBUDAT.

****
IF NOT VDBEVI-PKOND IS INITIAL.

I_MOV110-PKOND = VDBEVI-PKOND.

ELSE.

SELECT PKOND
INTO I_MOV110-PKOND
FROM VDBEPP
WHERE RANL = vdbevi-RANL
AND PKOND = '0110'.
ENDSELECT.

ENDIF.

APPEND I_MOV110.

else.

i_mov110a-sbewart = vdbevi-sbewart.
I_MOV110a-DBUDAT = VDBEVI-DBUDAT.
I_MOV110a-PKOND = VDBEVI-PKOND.
APPEND I_MOV110a.

endif.

ELSE.

if vdbevi-sbewart = '0001'.

if vdbevi-dbudat <= PA_STICH.

i_mov110-sbewart = vdbevi-sbewart.
I_MOV110-DBUDAT = VDBEVI-DBUDAT.

****
IF NOT VDBEVI-PKOND IS INITIAL.

I_MOV110-PKOND = VDBEVI-PKOND.

ELSE.

SELECT SINGLE PKOND
INTO I_MOV110-PKOND
FROM VDBEPP
WHERE RANL = vdbevi-RANL.
* ENDSELECT.

ENDIF.

APPEND I_MOV110.

else.

i_mov110a-sbewart = vdbevi-sbewart.
I_MOV110a-DBUDAT = VDBEVI-DBUDAT.
I_MOV110a-PKOND = VDBEVI-PKOND.
APPEND I_MOV110a.

endif.

endif.


endif.

ENDFORM. " f_proceso_cred
*&---------------------------------------------------------------------*
*& Form f_reporte
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_reporte .

perform f_cabecera_del_detalle.

perform f_detalle.

ENDFORM. " f_reporte
*&---------------------------------------------------------------------*
*& Form f_lee_plazo_original
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_lee_plazo_original .
data: l_meses type p decimals 2,
l_dias type p decimals 2,
I TYPE I,
D TYPE P DECIMALS 2.

select single *
from vzzkoko
where RKEY1 = vdarl-ranl.

if sy-subrc = 0.

i_deta-fecha_ap = vzzkoko-DGUEL_KK.
i_deta-fecha_fin = vzzkoko-delfz.


l_dias = vzzkoko-delfz - vzzkoko-DGUEL_KK.

i_deta-plazo = l_dias.

endif.


ENDFORM. " f_lee_plazo_original
*&---------------------------------------------------------------------*
*& Form f_calcula_total
*&---------------------------------------------------------------------*
* Calcula total.
*----------------------------------------------------------------------*
FORM f_calcula_total .
* data:l_total type p decimals 2.

i_deta-int_vig = -1 * i_deta-int_vig.

v_cant_vig = i_deta-cap_vig.
v_cant_venc = i_deta-cap_venc + i_deta-int_venc.

i_deta-int_vig2 = i_deta-int_vig.

if i_deta-int_vig < 0.
i_deta-int_vig = 0.
endif.

l_total = i_deta-cap_vig + i_deta-int_venc +
i_deta-cap_venc + i_deta-int_vig.

ENDFORM. " f_calcula_total
*&---------------------------------------------------------------------*
*& Form f_encabezado
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_encabezado .

write:/01 'NAFIN',
11 'ACREDITADO',
64 'CONTRATO',
77 'CONT.NAFIN',
88 'OTORGA',
110 'MONTO',
131 'MONEDA',
142 'PLAZO',
153 'T.BASE',
174 'S.TASA',
185 'I.R',
196 'F.R',
208 'CAP. VIGENTE',
228 'INT. VIGENTE',
246 'CAP. VENCIDO',
266 'INT. VENCIDO',
286 'INT. MORATORIO',
306 'SALDO TOTAL',
327 'M.VENCIDOS',
338 'ID. CRED',
349 'PAGADO_IFNB',
370 'RIESGO',
381 'VINCULADO',
392 'CAP. CONTABLE',
413 'GARANTIA',
435 'RESERVAS',
456 'SITUACION',
10 '|',
63 '|',
76 '|',
87 '|',
109 '|',
130 '|',
141 '|',
152 '|',
173 '|',
184 '|',
195 '|',
207 '|',
227 '|',
245 '|',
265 '|',
285 '|',
305 '|',
326 '|',
337 '|',
348 '|',
369 '|',
380 '|',
391 '|',
412 '|',
434 '|',
455 '|',
466 '|'.



ENDFORM. " f_encabezado
*&---------------------------------------------------------------------*
*& Form f_obtiene_datos_cia
*&---------------------------------------------------------------------*
* Obtiene datos de la Compañia
*----------------------------------------------------------------------*
FORM f_obtiene_datos_cia .

v_ssonder = vdarl-ssonder.

select single stceg
into i_deta-rfc
from bp1020
where partnr = vdarl-rdarnehm.

select single name_org1 name_org2 NAME_FIRST NAME_LAST NAME_LST2
JOBGR
into (v_name_org1, v_name_org2, v_name_first, v_name_last,
v_name_lst2, v_jobgr)
from but000
where partner = vdarl-rdarnehm.

if sy-subrc = 0.

concatenate v_name_org1 v_name_org2
into i_deta-cia separated by space.

SPLIT v_name_first
AT SPACE
INTO i_deta-name1
i_deta-name2.

i_deta-paterno = v_name_last.
i_deta-materno = v_name_lst2.

endif.

perform f_obtiene_direccion.

perform f_obtiene_actividad.



ENDFORM. " f_obtiene_datos_cia
*&---------------------------------------------------------------------*
*& Form f_obtiene_direccion
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_obtiene_direccion .

select single ADDRNUMBER
into v_addrnumber
from but020
where partner = vdarl-rdarnehm.

if sy-subrc = 0.

select single CITY1 CITY2 REGIOGROUP POST_CODE1 street
house_num1 REGION
into (v_city1, v_CITY2, v_regiogroup, v_POST_CODE1, v_street,
v_house_num1, v_REGION)
from adrc
where addrnumber = v_addrnumber.

if sy-subrc = 0.

concatenate v_street
v_house_num1
into i_deta-direc_1 separated by space.

i_deta-colonia = v_city2.
i_deta-cod_postal = v_post_code1.
i_deta-localidad = v_regiogroup.


endif.

endif.


ENDFORM. " f_obtiene_direccion
*&---------------------------------------------------------------------*
*& Form f_obtiene_datos_cr
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_obtiene_datos_cr .


i_deta-Contrato_cr = vdarl-ranl.
i_deta-reestruct = 0.
i_deta-freestruct = space.
i_deta-moneda = '0'.
i_deta-especial = 'NO'.
i_deta-porcen = '100'.


if vdarl-stitart = '01' or vdarl-stitart = '05'.
i_deta-fondeo = '1'.
elseif vdarl-stitart = '02' or vdarl-stitart = '06'.
i_deta-fondeo = '8'.
elseif vdarl-stitart = '03'.
i_deta-fondeo = '3'.
endif.

*17.08.2009 FJCH->
case i_deta-fondeo.
when '01'.i_deta-fondeo = '01'.
when '02'.i_deta-fondeo = '06'.
when '03'.i_deta-fondeo = '12'.
when '04'.i_deta-fondeo = '06'.
when '05'.i_deta-fondeo = '01'.
when '06'.i_deta-fondeo = '17'.
when '07'.i_deta-fondeo = '06'.
when '08'.i_deta-fondeo = '06'.
when others. i_deta-fondeo = '*'.

endcase.
*17.08.2009 FJCH<-
perform f_garantia.

perform f_lee_plazo_original.

perform f_lee_datos_pagos.

perform f_creditos_relacionados.

ENDFORM. " f_obtiene_datos_cr
*&---------------------------------------------------------------------*
*& Form f_lee_datos_pagos
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_lee_datos_pagos .

select rkey1
dguel_kp
skoart
PKOND
BKOND
szsref
into table i_vzzkopo
from vzzkopo
where rkey1 = vdarl-ranl
and dguel_kp <= pa_stich
and skoart = '262'.

if sy-subrc = 0.

* cambio 1/09/2006
select single ammrhy
into v_ammrhy
from vzzkopo
where rkey1 = vdarl-ranl
and skoart = '201'.
if sy-subrc = 0 and v_ammrhy <> 0.

i_deta-Frec_Pagos_cr = v_ammrhy * 30.
if i_deta-frec_pagos_cr > 0.
if i_deta-frec_pagos_cr = 30. i_deta-frecuencia = '1'.
elseif i_deta-frec_pagos_cr = 90. i_deta-frecuencia = '2'.
elseif i_deta-frec_pagos_cr = 180. i_deta-frecuencia = '3'.
elseif i_deta-frec_pagos_cr = 360. i_deta-frecuencia = '4'.
endif.

i_deta-Num_Pagos_cr = i_deta-plazo / i_deta-frec_pagos_cr.
endif.

else.
* Fin cambio 1/09/2006

select single ammrhy
into v_ammrhy
from vzzkopo
where rkey1 = vdarl-ranl
and skoart = '209'.
if sy-subrc = 0 and v_ammrhy <> 0.

i_deta-Frec_Pagos_cr = v_ammrhy * 30.
if i_deta-frec_pagos_cr > 0.
if i_deta-frec_pagos_cr = 30. i_deta-frecuencia = '1'.
elseif i_deta-frec_pagos_cr = 90. i_deta-frecuencia = '2'.
elseif i_deta-frec_pagos_cr = 180. i_deta-frecuencia = '3'.
elseif i_deta-frec_pagos_cr = 360. i_deta-frecuencia = '4'.
endif.

i_deta-Num_Pagos_cr = i_deta-plazo / i_deta-frec_pagos_cr.
endif.

else.

select rkey1
dguel_kp
skoart
PKOND
BKOND
szsref
into table i_vzzkopo_201
from vzzkopo
where rkey1 = vdarl-ranl
* and dguel_kp <= pa_stich
and skoart = '201'.

IF SY-SUBRC = 0.

delete adjacent duplicates from I_VZZKOPO_201
comparing dguel_kp+0(6).

DESCRIBE TABLE I_VZZKOPO_201 LINES SY-TABIX.
i_deta-Num_Pagos_cr = SY-TABIX.

i_deta-frec_pagos_cr = i_deta-PLAZO / i_deta-Num_Pagos_cr.

if i_deta-frec_pagos_cr = 30. i_deta-frecuencia = '1'.
elseif i_deta-frec_pagos_cr = 90. i_deta-frecuencia = '2'.
elseif i_deta-frec_pagos_cr = 180. i_deta-frecuencia = '3'.
elseif i_deta-frec_pagos_cr = 360. i_deta-frecuencia = '4'.
endif.

ENDIF.


endif.
*
endif.
*
else.
select single ammrhy
into v_ammrhy
from vzzkopo
where rkey1 = vdarl-ranl
and skoart = '201'.
if sy-subrc = 0 and v_ammrhy <> 0.

i_deta-Frec_Pagos_cr = v_ammrhy * 30.
if i_deta-frec_pagos_cr > 0.
if i_deta-frec_pagos_cr = 30. i_deta-frecuencia = '1'.
elseif i_deta-frec_pagos_cr = 90. i_deta-frecuencia = '2'.
elseif i_deta-frec_pagos_cr = 180. i_deta-frecuencia = '3'.
elseif i_deta-frec_pagos_cr = 360. i_deta-frecuencia = '4'.
endif.

i_deta-Num_Pagos_cr = i_deta-plazo / i_deta-frec_pagos_cr.
endif.

else.


i_deta-Num_Pagos_cr = 1.
i_deta-Frec_Pagos_cr = i_deta-plazo + 1.

i_deta-frecuencia = '0'.
endif.

endif.

if i_deta-frecuencia = space.

i_deta-frecuencia = '0'.

endif.

ENDFORM. " f_lee_datos_pagos
*&---------------------------------------------------------------------*
*& Form f_cabecera_del_detalle
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_cabecera_del_detalle .

write:
/01 text-032, " Secuencia
11 '|',
12 text-001, " Numero
26 '|',
27 text-002, " Razon
108 '|',
109 text-003, " Paterno
149 '|',
150 text-004, " Materno
190 '|',
191 text-005, " Nombre
232 '|',
233 text-007, " RFC
254 '|',
255 text-008, " Dirección
327 '|',
328 text-009, " Colonia
369 '|',
370 text-010, " Cp
381 '|',
382 text-011, " Localidad
392 '|',
393 text-012, " Actividad
404 '|',
405 text-013, " Contable
418 '|',
419 text-014, " Respon
437 '|',
438 text-015, " Fecdis
449 '|',
450 text-016, " Vence
461 '|',
462 text-017, " Reestruc
471 '|',
472 text-018, " Fecrees
480 '|',
481 text-019, " Moneda
488 '|',
489 text-020, " Tasa
502 '|',
503 text-021, " Intvig
523 '|',
524 text-022, " intven
544 '|',
545 text-023, " Frecuen
553 '|',
554 text-024, " Situación
564 '|',
565 text-025, " Estima
585 '|',
586 text-026, " Garan
592 '|',
593 text-027, " Valgaran
613 '|',
614 text-028, " Especial
623 '|',
624 text-029, " Relación
633 '|',
634 text-030, " Fondeo
641 '|',
642 text-031, " Porcen
649 '|',
650 'Cta ord',
659 '|',
660 'Saldo cta 700..',
680 '|',
681 'Cap. vigente',
700 '|',
701 'Int. Vigente',
720 '|',
721 'Cap. Venc.',
740 '|',
741 'Int. Venc.',
760 '|'.

ENDFORM. " f_cabecera_del_detalle
*&---------------------------------------------------------------------*
*& Form f_detalle
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_detalle .
data: l_fecha(8) type n.

sort: i_deta by Contrato_cr.

loop at i_deta.

write:/01 sy-tabix, " Secuencia
11 '|',
12 i_deta-Contrato_cr, " Numero
26 '|',
27 i_deta-cia, " Razon
108 '|',
109 i_deta-paterno, " Paterno
149 '|',
150 i_deta-materno, " Materno
190 '|',
191 i_deta-name1, " Nombre
212 i_deta-name2,
232 '|',
233 i_deta-rfc, " RFC
254 '|',
255 i_deta-direc_1, " Dirección
327 '|',
328 i_deta-colonia, " Colonia
369 '|',
370 i_deta-cod_postal, " Cp
381 '|',
382 i_deta-localidad, " Localidad
392 '|',
393 i_deta-actividad, " Actividad
404 '|',
405 i_deta-c_contable, " Contable
418 '|',
419 i_deta-saldo, " Respon
437 '|',
438 i_deta-fecha_Ap, " Fecdis
449 '|',
450 i_deta-fecha_fin, " Vence
461 '|',
462 i_deta-reestruct, " Reestruc
471 '|',
472 i_deta-freestruct, " Fecrees
480 '|',
481 i_deta-moneda, " Moneda
488 '|',
489 i_deta-tasa LEFT-JUSTIFIED, " Tasa
502 '|',
503 i_deta-intvig, " Intvig
523 '|',
524 i_deta-intven, " intven
544 '|',
545 i_deta-frecuencia, " Frecuen
553 '|',
554 i_deta-situacion, " Situación
564 '|',
565 i_deta-estima, " Estima
585 '|',
586 i_deta-garantia, " Garan
592 '|',
593 i_deta-v_garantia, " Valgaran
613 '|',
614 i_deta-especial, " Especial
623 '|',
624 i_deta-relacion, " Relación
633 '|',
634 i_deta-fondeo, " Fondeo
641 '|',
642 i_deta-porcen, " Porcen
649 '|',
650 i_deta-cta_ord,
659 '|',
660 i_deta-saldo77,
680 '|',
681 i_deta-cap_vig,
700 '|',
701 i_deta-int_vig2,
720 '|',
721 i_deta-cap_venc,
740 '|',
741 i_deta-int_venc,
760 '|'.

endloop.

ENDFORM. " f_detalle
*&---------------------------------------------------------------------*
*& Form f_conversion_moneda_ext
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_conversion_moneda_ext .
data: l_gdatu like tcurr-GDATU,
l_fecha(8) type c.

concatenate pa_stich+6(2)
pa_stich+4(2)
pa_stich+0(4)
into l_fecha.

CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
EXPORTING
INPUT = l_fecha
IMPORTING
OUTPUT = l_gdatu.


SELECT GDATU
UKURS
INTO TABLE I_TCURR
FROM tcurr
where kurst = 'M'
and fcurr = 'MXN'
and tcurr = i_deta-scwhr
and gdatu >= l_gdatu.
if sy-subrc = 0.
sort i_tcurr by gdatu ascending.
read table i_tcurr index 1.
if sy-subrc = 0.

i_deta-cap_vig = abs( i_deta-cap_vig *
i_tcurr-ukurs ).
i_deta-int_venc = abs( i_deta-int_venc *
i_tcurr-ukurs ).
i_deta-cap_venc = abs( i_deta-cap_venc *
i_tcurr-ukurs ).
i_deta-int_vig = i_deta-int_vig *
abs( i_tcurr-ukurs ).


endif.

endif.



ENDFORM. " f_conversion_moneda_ext
*&---------------------------------------------------------------------*
*& Form f_obtiene_actividad
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_obtiene_actividad .

if i_deta-cia is not initial.

select single ind_sector
into i_deta-actividad
from BUT0IS
where partner = vdarl-rdarnehm.

else.

select single BEZ30
into v_bez30
from TB028T
where spras = 'S'
and jobgr = v_jobgr.
if sy-subrc = 0.

i_deta-actividad = v_bez30+0(7).

endif.

endif.

ENDFORM. " f_obtiene_actividad
*&---------------------------------------------------------------------*
*& Form f_obtiene_clas_contable
*&---------------------------------------------------------------------*
FORM f_obtiene_clas_contable .

case vdarl-RREFKONT.

when '13010101' or '13010141' or '13010144' or '13010147' or
'13510101' or '13510141' or '13510144' or '13510147' or
'99500101'.
i_deta-c_contable = '130101000000'.

when '13010201' or '13010241' or '13010244' or '13010247' or
'13510201' or '13510241' or '13510244' or '13510247' or
'99500102'.
i_deta-c_contable = '130102000000'.

when '13010301' or '13010341' or '13010344' or '13010347' or
'13510301' or '13510341' or '13510344' or '13510347' or
'99500103'.
i_deta-c_contable = '130103000000'.

when '13020101' or '13020141' or '13020144' or '13020147' or
'13520101' or '13520141' or '13520144' or '13520147' or
'99500201'
* Modif. 16.04.2008.
or '13020103'.
i_deta-c_contable = '130201000000'.

when '13020201' or '13020203' or '13020241' or '13020244' or
'13020247' or
'13520201' or '13520203' or '13520241' or '13520244' or
'13520247' or '99500202'.
i_deta-c_contable = '130202000000'.

when '13030101' or '13030201' or '13530101' or '13530201' or
'99500301' or '99500302'.
i_deta-c_contable = '130301000000'.

endcase.

ENDFORM. " f_obtiene_clas_contable
*&---------------------------------------------------------------------*
*& Form f_obtiene_saldos_cuenta
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_obtiene_saldos_cuenta .

clear: v_saldo.

if vdarl-ssonder = '1' or vdarl-ssonder = '2'.

select bukrs
hkont
augdt
augbl
zuonr
gjahr
BELNR
into table i_bsis
from bsis
* Modif. 16.04.2008 where hkont = '7700030100'
where hkont = '7800030100'
and BUDAT <= pa_stich.
if sy-subrc = 0.

select BUKRS
BELNR
GJAHR
BUZEI
wrbtr
ZUONR
SHKZG
into table i_bseg
from bseg
for all entries in i_bsis
where bukrs = i_bsis-bukrs
and belnr = i_bsis-belnr
and hkont = i_bsis-hkont
and zuonr = vdarl-ranl.

if sy-subrc = 0.

loop at i_bseg.

if i_bseg-SHKZG = 'S'.

v_saldo = v_saldo + i_bseg-wrbtr.

else.

v_saldo = v_saldo - i_bseg-wrbtr.

endif.

endloop.

endif.

endif.

endif.

I_deta-saldo77 = abs( v_saldo ).

ENDFORM. " f_obtiene_saldos_cuenta
*&---------------------------------------------------------------------*
*& Form f_calcula_tasa
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_calcula_tasa .

data: l_tasa_fija like vzzkopo-pkond,
l_fecha like sy-datum,
l_fecha_c like sy-datum.


SELECT *
INTO TABLE I_ZKOPo
FROM VZZKOPO
WHERE BUKRS EQ VDARL-BUKRS
AND RKEY1 EQ VDARL-RANL
and SKOART EQ '701'.
if sy-subrc = 0.

loop at i_zkopo.

if i_zkopo-szsref is initial.

l_tasa_fija = i_zkopo-pkond.

else.

SELECT * INTO TABLE I_VZZKOPA
FROM VZZKOPA
WHERE BUKRS EQ VDARL-BUKRS
AND RKEY1 EQ VDARL-RANL
AND SKOART EQ '701'.


endif.

endloop.

endif.

clear: v_tiee.

CONVERT DATE pa_stich INTO INVERTED-DATE V_FC_FIN.
SELECT * UP TO 1 ROWS FROM T056P
WHERE REFERENZ EQ I_ZKOPO-SZSREF
AND DATAB GE V_FC_FIN.
if sy-subrc = 0.
v_tiee = T056P-ZSOLL.
endif.

ENDSELECT.




if v_tiee is not initial.

case i_zkopo-svarname.
WHEN 'V1'.
MOVE v_tiee TO v1.
WHEN 'V2'.
MOVE v_tiee TO V2.
WHEN 'V3'.
MOVE v_tiee TO V3.
WHEN 'V4'.
MOVE v_tiee TO V4.
endcase.

LOOP AT I_VZZKOPA.
CASE I_VZZKOPA-SVARNAME.
WHEN 'V1'.
MOVE I_VZZKOPA-PKOND TO V1.
WHEN 'V2'.
MOVE I_VZZKOPA-PKOND TO V2.
WHEN 'V3'.
MOVE I_VZZKOPA-PKOND TO V3.
WHEN 'V4'.
MOVE I_VZZKOPA-PKOND TO V4.

ENDCASE.

endloop.


CASE I_ZKOPO-SFORMREF.
WHEN '0001'. " V1 * V2 + V3
i_deta-tasa = V1 * V2 + V3 .
WHEN '0002'. " V1 * V2 - V3 * V4
i_deta-tasa = V1 * V2 - V3 * V4 .
WHEN '0003'. " V1 + V3
i_deta-tasa = V1 + V3 .
ENDCASE.

else.

i_deta-tasa = l_tasa_fija.

endif.

ENDFORM. " f_calcula_tasa
*&---------------------------------------------------------------------*
*& Form f_garantia
*&---------------------------------------------------------------------*
* Garantia.
*----------------------------------------------------------------------*
FORM f_garantia .

* if vdarl-SVZWECK = '01' or vdarl-SVZWECK = '02' or
* vdarl-SVZWECK = '04' or vdarl-svzweck = '06'.
* i_deta-garantia = '1'.
* elseif vdarl-svzweck = '03'.
* i_deta-garantia = '0'.
* elseif vdarl-svzweck = '05' or vdarl-svzweck = '07'.
* i_deta-garantia = '5'.
* endif.
*
*
* select RSICHER
* into table i_VDARLSIC
* from VDARLSIC
* where bukrs = vdarl-bukrs
* and RANL = vdarl-ranl.
* if sy-subrc = 0.
*
* select bvertrag
* into table i_vdlv
* from vdlv
* for all entries in i_vdarlsic
* where RSICHER = i_vdarlsic-irsicher.
* if sy-subrc = 0.
*
* loop at i_vdlv.
*
* i_deta-v_garantia = i_deta-v_garantia +
* i_vdlv-bvertrag.
*
* endloop.
*
* endif.
*
* endif.

*17.08.2009 FJCH->
i_deta-garantia = vdarl-sdtyp.
case i_deta-garantia.
when '511'. i_deta-garantia = '25'.
when '512'. i_deta-garantia = '11'.
when '513'. i_deta-garantia = '26'.
when '521'. i_deta-garantia = '27'.
when '522'. i_deta-garantia = '4'.
when '531'. i_deta-garantia = '0'.
when '532'. i_deta-garantia = '25'.

when others. i_deta-garantia = '*'.
endcase.
*17.08.2009 FJCH<-


ENDFORM. " f_garantia
*&---------------------------------------------------------------------*
*& Form f_obtiene_estimaciones_prev
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_obtiene_estimaciones_prev .
data: l_zuonr(18) type n,
l_ranl(18) type n.


select bukrs
hkont
augdt
augbl
zuonr
gjahr
BELNR
into table i_bsis
from bsis
* Modif 16.04.08where ( hkont = '1390010100' or hkont = '1390020100' or
* hkont = '1390030100' or hkont = '1390040100' )
where ( hkont = '1391500101' or hkont = '1391500201' or
hkont = '1391500301' )

and BUDAT <= pa_stich.
if sy-subrc = 0.

select BUKRS
BELNR
GJAHR
BUZEI
wrbtr
ZUONR
SHKZG
into table i_bseg
from bseg
for all entries in i_bsis
where bukrs = i_bsis-bukrs
and belnr = i_bsis-belnr
* Modificación 31.07.2009 R.O.G.
and ( hkont = '1391500101' or hkont = '1391500201' or
hkont = '1391500301' ).
* and zuonr = vdarl-ranl.

if sy-subrc = 0.

l_ranl = vdarl-ranl.


loop at i_bseg.

l_zuonr = i_bseg-zuonr.

if l_zuonr <> l_ranl.
continue.
endif.

if i_bseg-SHKZG = 'S'.

i_deta-estima = i_deta-estima + i_bseg-wrbtr.

else.

i_deta-estima = i_deta-estima - i_bseg-wrbtr.

* Modif. 31.07.2009 R.O.G.
* perform f_detalle.

endif.

endloop.

endif.

endif.

ENDFORM. " f_obtiene_estimaciones_prev
*&---------------------------------------------------------------------*
*& Form f_creditos_relacionados
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_creditos_relacionados .

i_deta-relacion = 'NO'.

select PARTNER type IDNUMBER
into table i_but0id
from but0id
where partner = vdarl-rdarnehm.

if sy-subrc = 0.

loop at i_but0id.

if i_but0id-type = 'BUP001' or i_but0id-type = 'FS0001'.
i_deta-relacion = 'SI'.
exit.
endif.

endloop.

endif.

ENDFORM. " f_creditos_relacionados

lunes, 17 de agosto de 2009

Uso del Case ABAP

case i_deta-garantia.
when '25'. i_deta-garantia = '511'.
when '11'. i_deta-garantia = '512'.
when '26'. i_deta-garantia = '513'.
when '27'. i_deta-garantia = '521'.
when '4'. i_deta-garantia = '522'.
when '0'. i_deta-garantia = '531'.
when others. i_deta-garantia = '0'.
endcase.

lunes, 3 de agosto de 2009

WinAvi Video converter 8.0

COnvierte y quema diversos formatos de videos como
AVI, ASF, MOV, RM, WMV, SWF, MKV, OGG, OGM y MPG.
Para grabarlos en dvd o vcd tiene una velocidad
sorprendente compatible con vista y xp.

Descargar aqui.
deja un comentario.

Drivers Pc chips P23G para windows XP

Si a alguien le hacen falta descargar aqui.
incluye drivers:

Realtek AC'97 Audio for VIA (R) Audio Controller
VIA S3G UniChrome Pro IGP
VIA Standard Host Bridge
VIA Standard PCI to ISA Bridge

Deja un comentario.

miércoles, 29 de abril de 2009

10 trucos para hacer Windows Vista más Rápido

Desactiva el servicio de indexado de Windows Vista


El servicio de indexado de Windows constantemente está repaando todos los archivos del sistema para tenerlo disponible rapidamente en la búsqueda. Esto afecta gravemente al rendimineto del sistema operativo. Pasos para desactivar:
Haz click en el menú inicio, luego en equipo.
Haz click con el botón derecho en el disco C:
En la pestaña general desmarca “Permitir a index server indiza el disco para acelerar la búsqueda”
En el cuadro de diálogo subsecuente marca la opción “incluir subcarpetas y archivos”
Desactiva la Compresión diferencial remota

La Compresión diferencial remota lo único que hace es medir los cambios en ficheros sobre una red para transferirlos con un ancho de banda mínimo en lugar de la transferencia de un fichero entero que se ha movido previamente, vaya no sirve de mucho. Pasos para desactivar este servicio:
Ve a Panel de Control luego a Programas y características
Haz click en “Activar o desactivar las características de Windows”
Eso hará que aparezca una nueva ventana en la que habrá que deshabilitar la casilla “Compresión diferencial remota”.
Desactiva la ejecución automática de Windows Defender

La protección en tiempo real de Windows Defender contra malware continúa ejecutándose a pesar de hayamos desactivado su ejecución automática. Para desactivarlo por completo hay que seguir estos pasos:
Abre el Panel de Control
Selecciona Windows Defender
Ve a herramientas en el menú superior
Selecciona opciones
Desmarca iniciar automáticamente cuando inicie Windows
Desactivar la desfragmentación automática del disco duro

Windows Vista te desfragmenta tu disco duro sin necesidad de que tu lo hagas manualmente, ¿pero es esto necesario? tú lo puedes hacer manualmente cada semana. Pasos para desactivarlo:
Haz click en el menú inicio, luego en equipo.
Haz click con el botón derecho en el disco C:
En la pestaña herramientas desmarca “programar”
Agrega una memoria flash USB de 2 GB o más para aprovechar las ventajas de Windows Ready Boost (Memoria caché adicional)

ReadyBoost deja a usuarios utilizar un dispositivo de memoria Flash como memoria RAM Virtual para mejorar el sistema sin tener que abrir la PC, Windows ReadyBoost puede mejorar el funcionamiento del sistema porque puede recuperar los datos guardados en la memoria Flash más rápido que recuperar de el disco duro, disminuyendo el tiempo de espera para que tu PC responda. Pasos para activar ReadyBoost.
Inserta una memoria flash USB
Haz click en inicio y luego en equipo
Haz click derecho sobre la memoria
Selecciona la pestaña ReadyBoost
Elije utiliar este dispositivo
Selecciona el espacio que le quieras asignar
Desactiva la hibernación de Windows

Los servicios en segundo plano de la hibernación de Windows utiliza demasiados recursos, si regularmente no utilizas la hibernación de Windows la puedes desactivar siguiendo estos sencillos pasos:
Entra al panel de control, luego a opciones de energía
Click en cambiar configuración del plan
Click en cambiar configuración avanzada de energía
Expende la selección dormir
Después de la selección expende hibernar
Arrastra el selector hasta cero
Click en aplicar
Desactivar restauración del sistema

Los analisis y creación de puntos de restauración del sistema consumen grandes cantidades de recursos, deshabilitando este servicio obviamente signficaría menor consumo de recurso, pasos para hacerlo:
Ve a panel de control, luego a sistema
Selecciona protección del sistema en el panel izquierdo y tenemos la ventana que nos muestra el disco duro con una marca a la izquierda
Desmarcamos y damos a Aplicar. Ya podemos cerrar y listo.
Desactiva el User Access Control (UAC) Control de cuentas de usuario

Una de las características que más molestan al empezar a utilizar Windows Vista es el UAC (User Control Access). Es el causante de mensajes molestos como “Un programa no identificado desea tener acceso a este equipo” o “Necesita confirmar esta operación”.
Haz click en Inicio y luego en Panel de Control
Ahí ve a Cuentas de usuario y protección infantil
Después a Cuentas de usuario
Entra a Activar o desactivar el Control de cuentas de usuario, y desmarca la casilla “Usar el Control de cuentas de usuario (UAC) para ayudar a proteger el equipo”.
Desactiva servicios innecesarios que se ejecutan al inicio de Windows Vista

Los pasos y los servicios que podemos desactivar son los siguientes (si alguno de ellos lo necesitas no lo desactives):
Entra al Panel de Control
Selecciona Herramientas Administrativas
Elige Configuración del sistema
Haz click en la pestaña de servicios
Puedes desactivar sin ningún problema los siguientes servicios: 
Servicio y soporte técnico
Temas
Informes de errores
Centro de Seguridad
Registro y alertas de rendimiento
Registro Remoto
Office source engine
Escritorio remoto
Registros de sucesos
Servicio de cifrado
Desactiva características innecesarios de Windows Vista

Hay algunas caracteristicas que trae Windows Vista que algunas personas no necesitan, y de pueden desactivar para mejorar el rendimiento del sistema, los pasos y las características son las siguientes:
Ve a Panel de Control luego a Programas y características:
Selecciona características:
Luego en habilitar o deshabilitar características de Windows:
Puedes desactivar los siguientes: 
Servicio de indexado
Compresión difrencial remota
Componentes opcionales para TabletPC
Servicio de replicación Windows DFS
Fax de Windows
Windows Meeting Space

Por defecto Windows Vista no saca el máximo provecho de los procesadores de más de 1 núcleo hasta que el sistema está totalmente cargado es por eso que sólo usa 1 núcleo para el arranque, esto lo podemos cambiar moviendo algunas configuraciones para obligar a Vista a usar todos los núcleos, los pasos son los siguientes:
En el menú inicio presiona el botón ejecutar y escribe MSCONFIG y da aceptar.
Te va a abrir una ventana del MSCONFIG ahí te vas a la pestaña que dice Arranque (Boot).
Ahí te vas a donde dice Opciones avanzadas y en número de procesadores selecciona el número de núcleos con los que cuenta tu procesador.

viernes, 27 de marzo de 2009

Reloj de progreso ABAP

REPORT Z_PROGRESS_CLOCK.

DATA: A LIKE SY-UCOMM.




DO 100 TIMES.
 DO 300 TIMES.
 GET TIME.
 ENDDO.

 A(3) = SY-INDEX.A+3 = '%'.

 CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
 EXPORTING
 PERCENTAGE = SY-INDEX
 TEXT = A.
ENDDO.

Chicharos magicos

Esta chica si que sabe hacer gestos muy divertido ella es Kimmy.

La quinta montaña Cohelo Paulo

hoy lei este libro esta bastante corto, cosa buena porque no soy muy devoto a leer me gusto aunque lei criticas de que eno es una buena obra del autor me logro cautivar, el tema es religioso y aun asi facinante.

una historia chida si quieres bajate el libro y hechale una leida rapida aunque no creo que lo dejes a medias.

Ahora voy a leer el Alquimista del mismo autor según comentarios la mejor obra de este autor.

Descarga la quinta montaña de Paulo Cohelo.

jueves, 26 de marzo de 2009

Sentencia Like en ABAP

cuando queremos seleccionar de una tabla los campos que empiecen con tal palabra 

ejemplo seleccionamos de una tabla todos los campos que empiecen por 'credito'

REPORT Zsql .
tables zcatalogo.
data begin of ti_catalogo occurs 0.
include structure zcatalogo.
data end of ti_catalogo.

select * from zcatalogo into table ti_catalogo where concepto LIKE 'Credito%'
.
loop at ti_catalogo.
write: / ti_catalogo-concepto.
endloop.



jueves, 22 de enero de 2009

Codigos Fallas Dodge Neon 95

These were posted in the Neons.org FAQ, but to make them easier for first gen owners Id like to post them here as a sticky. 

First, to find out why your check engine light is on.. 

1. Cycle the ignition key ON-OFF-ON-OFF-ON within 5 seconds. 
2. Count the number of times the "check engine" lamp on the instrument panel flashes on and off. The number of flashes represents the code. There is a slight pause between the flashes representing the first and second digits of the code. Longer pauses separate individual codes. For example, flash-flash-flash [pause] flash-flash represents the code 32. 

To cycle the ignition key ON means to turn it only as far as it takes to get the radio to come on. It does not mean to turn the 
engine on. 

CODE Description of Trouble Code 

Key Dance = On - Off - On - Off - On within 5 seconds

11 Timing belt skipped 1 tooth or more from initial learned value, Intermittent loss of either camshaft or crankshaft position sensor, No crank reference signal detected during engine cranking
12 Direct battery input to PCM was disconnected within the last 50 key-on cycles
13 No change in MAP from start to run
14 MAP sensor voltage too low
15 No vehicle speed sensor signal
17 Closed loop temp not reached or engine cold too long
21 02s sensor problem (oxygen sensor), upstream or down stream
22 Engine coolant temp sensor out of range
23 Intake air temp sensor out of range
24 Throttle Position sensor out of range
25 Idle air control motor circuits, target idle not reached (+/- 200),vacuum leak found
27 Injector control circuit
31 Evap purge flow monitor failure or evap solenoid circuit
32 EGR system failure
33 A/C clutch relay circuit
34 Speed control Solenoid circuits
35 Rad Fan control relay circuit
37 Torque converter clutch solenoid CKT or park/neutral switch failure
41 Generator field not switching properly
42 Fuel pump relay control ckt, Auto shutdown relay control ckt, No ASD relay output voltage at PCM, Fuel level sending unit volts out of range, Fuel level unit No change over miles
43 Multiple/ single cylinder misfire
44 Battery temp sensor volts out of range
46 Charging system voltage too low
51 Fuel system lean
52 Fuel system rich
53 Internal control failure
54 No Cam signal at PCM
55 End of error messages (If you get this only, no errors were found)
62 PCM failure SRI mile not stored
63 PCM Failure EEPROM write denied
64 Catalytic Converter Efficiency Failure
65 Power steering switch failure