Professional Documents
Culture Documents
Codigo
Codigo
************************************************************************
* DEFINICION TABLAS, ESTRUCTURAS Y TIPOS
*
************************************************************************
*--DEFINICION DE TABLAS DE SISTEMA
TABLES: bsad,
"Contabilidad: ndice secundario para deudores
faglflexa,
"Cifras movimientos reg.maestro ctas.mayor
skb1,
skat,
t001,
ska1.
DATA: saldo
LIKE faglflexa-hsl.
INCLUDE zalv.
************************************************************************
* DEFINICION DE PARAMETROS DE SELECCION
*
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK uno WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP.
PARAMETERS:
p_bukrs LIKE faglflexa-RBUKRS OBLIGATORY.
"Sociedad
SELECT-OPTIONS: s_saknr FOR faglflexa-RACCT,
"N cuenta
s_budat FOR faglflexa-budat,
"Fecha contab.
s_monat FOR faglflexa-poper.
"Mes contable
PARAMETERS:
p_gjahr LIKE faglflexa-gjahr.
"Ejerc. Contable
SELECTION-SCREEN END OF BLOCK uno.
SELECTION-SCREEN BEGIN OF BLOCK dos WITH FRAME TITLE text-200.
PARAMETERS: cta_alt AS CHECKBOX DEFAULT space.
SELECTION-SCREEN END OF BLOCK dos.
************************************************************************
* DEFINICION DE VARIABLES
*
************************************************************************
************************************************************************
*
*
*
*
*
T R A T A M I E N T O
*
*
*
*
*
************************************************************************
*----------------------------------------------------------------------*
*
START-OF-SELECTION
*
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM selecciona_datos.
PERFORM procesa_datos.
IF NOT cta_alt IS INITIAL.
PERFORM ctaltern.
ENDIF.
END-OF-SELECTION.
PERFORM pinta.
************************************************************************
*
*
*
*
*
S U B - R U T I N A S
*
*
*
*
*
************************************************************************
*&---------------------------------------------------------------------*
*&
Form selecciona_datos
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM selecciona_datos .
SELECT * APPENDING
FROM
WHERE
AND
ENDFORM.
*&---------------------------------------------------------------------*
*&
Form procesa_datos
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM procesa_datos .
DATA: BEGIN OF i_items OCCURS 0.
INCLUDE STRUCTURE bapi1028_4.
DATA: END
OF i_items.
DATA: companycode
glacct
fiscalyear
currencytype
date_from
date_to
v_debe
v_haber
v_dif
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
bapi1028_0-comp_code,
bapi1028_0-gl_account,
bapi1028_4-fisc_year,
bapi1028_5-curr_type,
bapi3007-from_date,
bapi3007-to_date,
faglflexa-hsl,
faglflexa-hsl,
faglflexa-hsl.
IF s_monat-high IS INITIAL.
s_monat-high = s_monat-low.
ENDIF.
companycode = p_bukrs.
fiscalyear
= p_gjahr.
currencytype = '10'.
LOOP AT i_cliente.
CLEAR i_items. REFRESH i_items.
glacct
= i_cliente-saknr.
*
*
*
v_debe
ENDLOOP.
= v_debe
+ i_items-debits_per.
TO
TO
TO
TO
i_datos-debe,
i_datos-haber,
i_datos-saknr,
i_datos-name1.
IS INITIAL AND
IS INITIAL AND
IS INITIAL.
ENDLOOP.
ENDFORM.
" procesa_datos
*&---------------------------------------------------------------------*
*&
Form name1_cliente
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_I_CLIENTE_SAKNR text
*----------------------------------------------------------------------*
FORM name1_cliente USING
p_saknr.
SELECT SINGLE * FROM skat WHERE spras = 'es'
AND ktopl = 'puc'
AND saknr = p_saknr.
ENDFORM.
" name1_cliente
*&---------------------------------------------------------------------*
*&
Form saldo
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_I_DATOS_saldo text
*----------------------------------------------------------------------*
FORM saldo USING
p_saldo.
DATA: BEGIN OF balance OCCURS 0.
INCLUDE STRUCTURE bapi1028_3.
DATA: END
OF balance.
DATA: companycode
glacct
fiscalyear
currencytype
companycode
glacct
fiscalyear
currencytype
=
=
=
=
LIKE
LIKE
LIKE
LIKE
bapi1028_0-comp_code,
bapi1028_0-gl_account,
bapi1028_3-fisc_year,
bapi1028_5-curr_type.
p_bukrs.
i_cliente-saknr.
p_gjahr - 1.
'10'.
IMPORTING
account_balance = balance.
RETURN
= .
p_saldo = balance-balance.
ENDFORM.
" saldo
*&---------------------------------------------------------------------*
*&
Form pinta
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM pinta .
DATA: var_saldo(30),
var_debe(30),
var_haber(30),
anio(4).
repname = sy-repid.
anio
= p_gjahr - 1.
* Descripcin estndar de campos
IF NOT cta_alt IS INITIAL.
PERFORM obt_descrip_campos_tabla USING repname 'I_DATOS2'.
ELSE.
PERFORM obt_descrip_campos_tabla USING repname 'I_DATOS'.
ENDIF.
* Asignar TOP OF PAGE
PERFORM asignar_top_of_page.
* Quitamos el cero de los importes.
PERFORM no_zero USING: 'DEBE'
'X',
'HABER'
'X',
'DIF_DEBE'
'X',
'DIF_HABER'
'X',
'SALDO'
'X'.
* Marcamos los campos de los sumatorios.
PERFORM do_sum USING: 'DEBE'
'X',
'HABER'
'X',
'DIF_DEBE'
'X',
'DIF_HABER'
'X',
'SALDO'
'X'.
* Cambiamos la descripcin
CONCATENATE 'Dbiteur' p_gjahr
INTO var_debe SEPARATED BY space.
* Disposicin
gs_disvariant-report
= repname.
* Se muestra el listado
IF NOT cta_alt IS INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program
= repname
i_callback_pf_status_set = formname_pf_status_set
i_callback_user_command = formname_user_command
is_layout
= layout
it_fieldcat
= fieldtab[]
it_events
= events[]
i_save
= 'A'
it_sort
= alv_sort[]
is_variant
= gs_disvariant
TABLES
t_outtab
= i_datos2
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
ELSE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program
= repname
i_callback_pf_status_set = formname_pf_status_set
i_callback_user_command = formname_user_command
is_layout
= layout
it_fieldcat
= fieldtab[]
it_events
= events[]
i_save
= 'A'
it_sort
= alv_sort[]
is_variant
= gs_disvariant
TABLES
t_outtab
= i_datos
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
ENDIF.
ENDFORM.
" pinta
*&---------------------------------------------------------------------*
*&
Form subtotal
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM subtotal.
IF NOT cta_alt IS INITIAL.
REFRESH alv_sort.
CLEAR alv_sort.
alv_sort-fieldname = 'CLASE2'.
alv_sort-subtot = 'X'.
APPEND alv_sort.
REFRESH alv_sort2.
CLEAR alv_sort.
alv_sort2-fieldname = 'CLASE2'.
alv_sort2-subtot = 'X'.
alv_sort2-expa
= 'X'.
alv_sort2-comp
= ' '.
APPEND alv_sort2.
ELSE.
REFRESH alv_sort.
CLEAR alv_sort.
alv_sort-fieldname = 'CLASE'.
alv_sort-subtot = 'X'.
APPEND alv_sort.
REFRESH alv_sort2.
CLEAR alv_sort.
alv_sort2-fieldname = 'CLASE'.
alv_sort2-subtot = 'X'.
alv_sort2-expa
= 'X'.
alv_sort2-comp
= ' '.
APPEND alv_sort2.
ENDIF.
ENDFORM. " subtotal
*&---------------------------------------------------------------------*
*&
Form cambio_descripcion
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM cambio_descripcion USING pf_fieldname
pf_scrtext_l
pf_scrtext_m
pf_scrtext_s
pf_coltext.
READ TABLE fieldtab WITH KEY fieldname = pf_fieldname ASSIGNING <fs>.
IF sy-subrc EQ 0.
<fs>-seltext_l = pf_scrtext_l.
<fs>-seltext_m = pf_scrtext_m.
<fs>-seltext_s = pf_scrtext_s.
<fs>-reptext_ddic = pf_coltext.
ENDIF.
ENDFORM.
" cambio_descripcion
*&---------------------------------------------------------------------*
*&
Form no_zero
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM no_zero USING pf_fieldname
p_zero.
READ TABLE fieldtab WITH KEY fieldname = pf_fieldname ASSIGNING <fs>.
IF sy-subrc EQ 0.
<fs>-no_zero = p_zero.
ENDIF.
ENDFORM.
" no_zero
*&---------------------------------------------------------------------*
*&
Form do_sum
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM do_sum USING pf_fieldname
p_sum.
READ TABLE fieldtab WITH KEY fieldname = pf_fieldname ASSIGNING <fs>.
IF sy-subrc EQ 0.
<fs>-do_sum = p_sum.
ENDIF.
ENDFORM.
" do_sum
*---------------------------------------------------------------------*
*
FORM alv_top_of_page
*
*---------------------------------------------------------------------*
*
Textos de cabecera
*
- typ,
" H = Header, S = Selection, A = Action
*
- key,
*
- info,
*---------------------------------------------------------------------*
FORM alv_top_of_page.
DATA: lt_list_commentary TYPE slis_t_listheader,
ls_list_commentary TYPE slis_listheader.
DATA: v_date(60).
SELECT SINGLE * FROM t001 WHERE bukrs = p_bukrs.
CONCATENATE 'Du' '01/'
s_monat-low '/'
p_gjahr
'au'
'31/'
s_monat-high '/'
p_gjahr
INTO v_date SEPARATED BY space.
* Componemos texto de cabecera
CLEAR ls_list_commentary.
ls_list_commentary-typ = 'H'.
ls_list_commentary-info = 'Balance des comptes gnraux'.
APPEND ls_list_commentary TO lt_list_commentary.
*
CLEAR ls_list_commentary.
ls_list_commentary-typ = 'S'.
ls_list_commentary-key = 'Socit:'.
ls_list_commentary-info = t001-butxt.
APPEND ls_list_commentary TO lt_list_commentary.
*
CLEAR ls_list_commentary.
ls_list_commentary-typ = 'S'.
ls_list_commentary-key = 'Date comptable:'.
ls_list_commentary-info = v_date.
APPEND ls_list_commentary TO lt_list_commentary.
*
CLEAR ls_list_commentary.
ls_list_commentary-typ = 'A'.
ls_list_commentary-info = 'Edition Provisiore - Experim en euros'.
APPEND ls_list_commentary TO lt_list_commentary.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = lt_list_commentary.
ENDFORM.
"alv_top_of_page
*&--------------------------------------------------------------------*&
Form PF_STATUS
*&--------------------------------------------------------------------FORM pf_status USING lt_cua_exclude TYPE slis_t_extab.
SET PF-STATUS 'ACTIVO'.
ENDFORM.
"pf_status
*&--------------------------------------------------------------------*&
Form USER_COMMAND
"user_command
*&---------------------------------------------------------------------*
*&
Form alv_gener
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM alv_gener .
* Se muestra el listado general
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program
= repname
i_callback_pf_status_set = formname_pf_status_set
i_callback_user_command = formname_user_command
is_layout
= layout
it_fieldcat
= fieldtab[]
it_events
= events[]
i_save
= 'A'
it_sort
= alv_sort[]
is_variant
= gs_disvariant
TABLES
t_outtab
= i_datos
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
ENDFORM.
" alv_gener
*&---------------------------------------------------------------------*
*&
Form alv_bilan
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM alv_bilan .
CLEAR i_datos_bilan. REFRESH i_datos_bilan.
LOOP AT i_datos WHERE clase+6(1) <= 5.
MOVE-CORRESPONDING i_datos TO i_datos_bilan.
APPEND i_datos_bilan.
CLEAR i_datos_bilan.
ENDLOOP.
* Se muestra el listado bilan
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program
= repname
i_callback_pf_status_set = formname_pf_status_set
i_callback_user_command = formname_user_command
is_layout
= layout
it_fieldcat
= fieldtab[]
it_events
= events[]
i_save
= 'A'
it_sort
= alv_sort2[]
is_variant
= gs_disvariant
TABLES
t_outtab
= i_datos_bilan
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
ENDFORM.
" alv_bilan
*&---------------------------------------------------------------------*
*&
Form alv_gestion
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM alv_gestion .
CLEAR i_datos_gestion. REFRESH i_datos_gestion.
companycod1
glacc1
fiscalyea1
currencytyp1
=
=
=
=
p_bukrs.
ska1-saknr.
p_gjahr - 1.
'10'.
*
*
*
*
*
*
*