MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 27/02/08, 10:19:33
dayanareyes dayanareyes is offline
Member
 
Fecha de Ingreso: jul 2006
Mensajes: 36
Question crear y validar un check

HOLA. antes que nada recuerdo que soy algo nueva en todo esto de SAP

TENGO UN DUDA, TENGO UN LISTADO ALV AHORA ME PIDEN QUE AGREGUE UN CAMPO CON LA FECHA DE CONTABILIZACION Y QUE COLOQUE UN CHECK EN LA PANTALLA PARA SELECCIONAR SI SE QUIEREN VER LAS CONTABILIZADAS O NO.

Me dicen que si esta contabilizada la factura, esta en la bseg, por lo que PRIMERA PREGUNTA DEBO HACER DOS SELECT??? POR UN IF??? A VER ALGO ASI COMO

IF "CHECK ESTA ACTIVO"
ACA EL SELECT CON RESPECTO A LA BSEG
ELSE
ACA EL SELECT CON LA VBRK
ENDIF.

PODRIA HACERLO ASI????????

SEGUNDA PREGUNTA COMO DEBO DEFINIR EL CAMPO DE ESE CHECK PARA USARLO EN EL PROGRAMA Y PARA VISUALIZARLO EN LA PANTALLA DE SELECCION?????

GRACIASSSSS
Responder Con Cita
  #2  
Viejo 27/02/08, 10:30:03
Avatar de robert_milan
robert_milan robert_milan is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Localización: Mexico, DF
Mensajes: 315
Primero que facturas las de FI o de SD, segundo no puedes entrar tan directamente a la bseg por que es tabla cluster debes usar la cabecera BKPF o las tablas indices bsad, bsak, bsik, bsid, bsas, bsis.

El chec solo es un check box como parametro


si escribes checkbox y luego F1, veras la documentacion que te guiara a usarlo correctamente

espero te sirva.
__________________
Un Huevon No Inútil


Solo di lo que piensas, a la mejor tienes la mejor respuesta....

Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

Consultor FI jr/ABAP Sr.
Responder Con Cita
  #3  
Viejo 27/02/08, 11:12:10
dayanareyes dayanareyes is offline
Member
 
Fecha de Ingreso: jul 2006
Mensajes: 36


hola....

mira este es el codigo q estoy usando.... podrias orientarme en la parte que esta en rojo digo, en referencia a la tabla q deberia usar para mostrar las contabilizadas?????

gracias


*&---------------------------------------------------------------------*
*& Report ZPS_LISTADO_VBRK *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT zps_listado_facturas .

*--Definición de las tablas
TABLES: vbrk, kna1, bkpf, bseg.

*--Definición de las Tipos, datos y TI
TYPES: BEGIN OF t_vbrk,
fkdat LIKE vbrk-fkdat, "Fecha de la Factura
vbeln LIKE vbrk-vbeln, "Numero de la Factura
belnr LIKE vbrk-belnr, "Numero de Factura
zuonr LIKE vbrk-zuonr, "Codigo Analitico
kunag LIKE vbrk-kunag, "Codigo Solicitante Cliente
name1 LIKE kna1-name1, "Nombre Cliente
opera LIKE vbrk-vbeln, "Operacion
netwr LIKE vbrk-netwr, "Importe - Valor Neto
waerk LIKE vbrk-waerk, "Moneda
fksto LIKE vbrk-fksto, "Anulada
budat LIKE bkpf-budat, "Fecha de Contabilizacion
xblnr LIKE bkpf-xblnr, "
fkart LIKE vbrk-fkart, "Clase de Documento
BELNR like bseg-BELNR,
END OF t_vbrk.


DATA: wa_factura TYPE STANDARD TABLE OF t_vbrk WITH HEADER LINE.
DATA: it_fact TYPE STANDARD TABLE OF t_vbrk WITH HEADER LINE.

*DATA: contab TYPE c.

*DATA: it_output TYPE STANDARD TABLE OF t_vbrk WITH HEADER LINE,
*p_tipo(10).



*
**--Selección de la pantalla principal

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: so_vbeln FOR vbrk-vbeln.
SELECT-OPTIONS: so_fkdat FOR vbrk-fkdat.
SELECT-OPTIONS: so_kunag FOR vbrk-kunag.
SELECT-OPTIONS: so_fkart FOR vbrk-fkart.
PARAMETER: so_fksto LIKE vbrk-fksto.
PARAMETER: conta AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN: END OF BLOCK b1.


*En relación a las facturas contabilizadas. En la pantalla de selección
*se debe poner un checkbox que indique si la factura está contabilizada
*o no y ya dentro del listado incluir la fecha de contabilización que es
* el BUDAT.
*
*Una factura está contabilizada si está almacenda en la BSEG. De manera
*que si te piden las facuras contabilizadas debes accceder a la BSEG y
*ver si está allí almacenada.
*
*El checkbox de la pantalla de selección lo puedes guardar en una
*variable y luego haces el chequeo antes de acceder a la BSEG.
*
*Si quieres mañana hablamos por si tienes dudas.



*&---------------------------------------------------------------------*
*& Form seleccion_datos
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->IT_ text
*----------------------------------------------------------------------*
FORM seleccion_datos TABLES it_vbrk STRUCTURE it_fact. "it_output.

*--Seleccionando los datos de la BD

IF conta = 'X'.

SELECT *
FROM ( vbrk inner join kna1
on vbrk~kunag = kna1~kunnr )
INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr
INTO CORRESPONDING FIELDS OF TABLE wa_factura
WHERE vbeln IN so_vbeln AND
fkdat IN so_fkdat AND
kunag IN so_kunag AND
fksto = so_fksto.
ELSE.

SELECT *
FROM ( vbrk INNER JOIN kna1
ON vbrk~kunag = kna1~kunnr )
INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr
INTO CORRESPONDING FIELDS OF TABLE wa_factura
WHERE vbeln IN so_vbeln AND
fkdat IN so_fkdat AND
kunag IN so_kunag AND
fksto = so_fksto.
ENDIF.


*--Si trae la información de la BD, clasificar la información
IF sy-subrc = 0.
*--Interactuando con la WA donde se guardo la información extraida de BD
LOOP AT wa_factura.
*--Moviendo la información de la WA a la TI que se mostrará en el ALV
MOVE-CORRESPONDING wa_factura TO it_fact.
*--Agregando la información a la TI
APPEND it_fact.
ENDLOOP.
ENDIF.
ENDFORM. "selección



*--Definiendo el primer evento del reporte
START-OF-SELECTION.
*-Llamando a las subrutinas y pasandole la TI que se mostraran en el ALV
PERFORM seleccion_datos TABLES it_fact. "it_output.
PERFORM alv_create TABLES it_fact. "it_output.


*Type Pool donde vienen definidas todas las estructuras y tablas
TYPE-POOLS: slis.

DATA:
* Catálogo de campos: contiene la descripción de los campos de salida
alv_git_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
alv_git_fieldcat_par TYPE slis_t_fieldcat_alv WITH HEADER LINE,
w_field TYPE slis_t_fieldcat_alv WITH HEADER LINE,
alv_sort TYPE slis_t_sortinfo_alv,
t_spec_groups TYPE slis_t_sp_group_alv,

* Descripción de la estructura de salida
alv_gwa_layout TYPE slis_layout_alv,
* alv_gwa_print type slis_print_alv,

* Cabecera del reporte
alv_git_heading TYPE slis_t_listheader WITH HEADER LINE,

* Eventos
alv_git_events TYPE slis_t_event WITH HEADER LINE,
alv_gc_save(1) TYPE c,
alv_gc_exit(1) TYPE c,
alv_gx_variant LIKE disvariant,
alv_gx_tmpvariant LIKE disvariant,
sp_group TYPE slis_sp_group_alv,


* Nombre de la Tabla con los datos para el ALV
alv_it_data TYPE slis_formname VALUE 'IT_ALV',

* Nombre del programa
alv_gx_repid LIKE sy-repid.


*-------------------------------------------------------------------*
* Declaración de constantes
*-------------------------------------------------------------------*
CONSTANTS:

* FORM para escribir el encabezado
alv_formname_top_of_page TYPE slis_formname VALUE 'ALV_TOP_OF_PAGE',
* * alv_formname_user_command TYPE slis_formname VALUE 'USER_COMMAND',
alv_formname_end_of_list TYPE slis_formname VALUE 'ALV_END_OF_LIST'.


INITIALIZATION.

* NOMBRE DEL PROGRAMA VARIABLE ALV
alv_gx_repid = sy-repid.
PERFORM initialize_variant.
* gs_print-no_print_listinfos = 'X'.


*Subrutinas del ALV
*---------------------------------------------------------------------*
* FORM alv_build_eventtab *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM alv_build_eventtab.

FREE alv_git_events.
*Llamada de la funcion
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = alv_git_events[].

*Llamada del Top_of_page
READ TABLE alv_git_events WITH KEY name = slis_ev_top_of_page.

IF sy-subrc = 0.
MOVE alv_formname_top_of_page TO alv_git_events-form.
APPEND alv_git_events.
ENDIF.


*Llamada del End_of_list
READ TABLE alv_git_events WITH KEY name = slis_ev_end_of_list.

IF sy-subrc = 0.
MOVE alv_formname_end_of_list TO alv_git_events-form.
APPEND alv_git_events.
ENDIF.

ENDFORM. "alv_build_eventtab


*&---------------------------------------------------------------------*
*& Form alv_ini_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_ini_layout.
* alv_gwa_layout-box_fieldname = 'SEL'.
* alv_gwa_layout-edit = 'X'.
*
*Indica como se vera la pantalla de salida.
* zebra = 'X' (Lista los registros con dos colores, uno por linea).
* zebra = ' ' (Lista los registro de un solo color).

alv_gwa_layout-zebra = 'X'.

*Detail_popup = ' ' (Al pulsar doble-click en un registro de la lista
*principal, se presenta otra lista con el detalle).
*Detail_popup = 'X' (Al pulsar doble-click en un registro de la lista
*principal, se presenta una ventana con el detalle).
*
alv_gwa_layout-detail_popup = ' '.
ENDFORM. "alv_ini_layout

*&---------------------------------------------------------------------*
*& Form alv_ini_fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_ini_fieldcat.
* Mediante esta tabla vamos a definir los campos que se quiere mostrar
* en el listado de salida.

*COLUMNAS CLAVES
CLEAR alv_git_fieldcat.
REFRESH alv_git_fieldcat.
alv_git_fieldcat-tabname = alv_it_data.
alv_git_fieldcat-fix_column = space. "# Dejar campos Fijos

*--Fecha
alv_git_fieldcat-fieldname = 'FKDAT'.
alv_git_fieldcat-seltext_l = text-002.
alv_git_fieldcat-just = 'C'.
alv_git_fieldcat-col_pos = '0'.
alv_git_fieldcat-outputlen = '15'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

*--Numero de la Factura
alv_git_fieldcat-fieldname = 'VBELN'.
alv_git_fieldcat-seltext_l = text-003.
alv_git_fieldcat-just = 'C'.
alv_git_fieldcat-col_pos = '1'.
alv_git_fieldcat-outputlen = '20'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

*--Numero de la Factura 2
alv_git_fieldcat-fieldname = 'BELNR'.
alv_git_fieldcat-seltext_l = text-003.
alv_git_fieldcat-just = 'C'.
alv_git_fieldcat-col_pos = '1'.
alv_git_fieldcat-outputlen = '20'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.


*--Codigo Analitico
alv_git_fieldcat-fieldname = 'ZUORN'.
alv_git_fieldcat-seltext_l = text-004.
alv_git_fieldcat-just = 'L'.
alv_git_fieldcat-col_pos = '2'.
alv_git_fieldcat-outputlen = '20'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

*--Cliente
alv_git_fieldcat-fieldname = 'NAME1'. "'KUNAG'.
alv_git_fieldcat-seltext_l = text-005.
alv_git_fieldcat-just = 'L'.
alv_git_fieldcat-col_pos = '3'.
alv_git_fieldcat-outputlen = '40'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

*--Operacion
alv_git_fieldcat-fieldname = 'VBELN'.
alv_git_fieldcat-seltext_l = text-006.
alv_git_fieldcat-just = 'L'.
alv_git_fieldcat-col_pos = '4'.
alv_git_fieldcat-outputlen = '20'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

*--Importe
alv_git_fieldcat-fieldname = 'NETWR'.
alv_git_fieldcat-seltext_l = text-007.
alv_git_fieldcat-just = 'L'.
alv_git_fieldcat-col_pos = '5'.
alv_git_fieldcat-outputlen = '7'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

*--Moneda local
alv_git_fieldcat-fieldname = 'WAERK'.
alv_git_fieldcat-seltext_l = text-007.
alv_git_fieldcat-just = 'L'.
alv_git_fieldcat-col_pos = '5'.
alv_git_fieldcat-outputlen = '7'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

*--Anulada
alv_git_fieldcat-fieldname = 'FKSTO'.
alv_git_fieldcat-seltext_l = text-008.
alv_git_fieldcat-just = 'L'.
alv_git_fieldcat-col_pos = '5'.
alv_git_fieldcat-outputlen = '7'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.


*--Fecha de Contabilizacion
alv_git_fieldcat-fieldname = 'BUDAT'.
alv_git_fieldcat-seltext_l = text-010.
alv_git_fieldcat-just = 'L'.
alv_git_fieldcat-col_pos = '5'.
alv_git_fieldcat-outputlen = '15'.
APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

ENDFORM. "alv_ini_fieldcat
*&---------------------------------------------------------------------*
*& Form alv_build_comment
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_build_comment.

*Definicion del contenido del top_of_page
DATA: aux_1(100) TYPE c,
aux_2(100) TYPE c,
empresa_nombre TYPE t001-butxt,
fch1(10) TYPE c,
fch2(10) TYPE c.

DATA: divi(100) TYPE c,
div_asignada TYPE c.

FREE alv_git_heading.

CLEAR aux_1.
aux_1 = ' '.
alv_git_heading-typ = 'H'.
alv_git_heading-key = aux_1.
alv_git_heading-info = aux_1.
APPEND alv_git_heading.


CLEAR aux_1.
aux_1 = 'Listado de Facturas'.
alv_git_heading-typ = 'H'.
* alv_git_heading-key = aux_1.
alv_git_heading-info = aux_1.
APPEND alv_git_heading.

* Fecha
alv_git_heading-typ = 'S'.
DATA fecha(10).
PERFORM format_date USING sy-datum CHANGING fecha.
alv_git_heading-key = 'Fecha: '.
alv_git_heading-info = fecha.
APPEND alv_git_heading.

ENDFORM. "alv_build_comment
*&---------------------------------------------------------------------*
*& Form format_date
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_SY_DATUM text
* <--P_FECHA text
*----------------------------------------------------------------------*
FORM format_date USING fecha_entrada LIKE sy-datum
CHANGING fecha_salida TYPE c.

*Definicion formato de la fecha
CONCATENATE fecha_entrada+6(2) fecha_entrada+4(2) fecha_entrada+0(4)
INTO fecha_salida SEPARATED BY '/'.


ENDFORM. " format_date

*&---------------------------------------------------------------------*
*& Form alv_listado
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_ALV text
*----------------------------------------------------------------------*
FORM alv_listado TABLES it_fact. "p_it_alv.

DATA: lc_glay TYPE lvc_s_glay.

lc_glay-edt_cll_cb = 'X'.

*Llamado de la funcion del ALV



***************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
i_buffer_active = ' '
i_callback_program = alv_gx_repid "g_repid
* i_callback_pf_status_set = 'ALV_PF_STATUS_SET'
* i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'it_fact' "alv_it_data "'T_DATOS'
is_layout = alv_gwa_layout "gs_layout
it_fieldcat = alv_git_fieldcat[] "gt_fieldcat[]
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IT_FIELDCAT =
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = alv_sort[]
* IT_FILTER =
* IS_SEL_HIDE =
i_default = 'A' " 'X'
i_save = alv_gc_save "'A'
is_variant = alv_gx_variant "gx_variant
it_events = alv_git_events[] "gt_events[]
* IT_EVENT_EXIT =
* IS_PRINT =ls_print
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_fact "t_datos

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. "alv_listado
*&---------------------------------------------------------------------*
*& Form alv_top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_top_of_page.

*Llamado de la funcion del top_of_page
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = alv_git_heading[].
* I_LOGO =
* I_END_OF_LIST_GRID =

ENDFORM. "alv_top_of_page
*&---------------------------------------------------------------------*
*& Form alv_create
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_create TABLES it_fact. "p_it_output.

*Llamados de las subrutinas del ALV
*** PERFORM ordenar_por USING alv_sort[].
PERFORM alv_build_eventtab.
PERFORM alv_ini_layout.
PERFORM alv_ini_fieldcat.
PERFORM alv_build_comment.
PERFORM alv_listado TABLES it_fact. "p_it_output.


ENDFORM. "alv_create
*&---------------------------------------------------------------------*
*& Form initialize_variant
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM initialize_variant.

*Llamado de la variable de inicializacion del programa
alv_gc_save = 'A'.
CLEAR alv_gx_variant.
alv_gx_variant-report = alv_gx_repid.
alv_gx_variant = alv_gx_variant.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = alv_gc_save
CHANGING
cs_variant = alv_gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
vari = alv_gx_variant-variant.
ENDIF.

ENDFORM. "initialize_variant

**&---------------------------------------------------------------------
*
**& Form ordenar_por
**&---------------------------------------------------------------------
*
** text
**----------------------------------------------------------------------
*
** -->P_SORT text
**----------------------------------------------------------------------

***FORM ordenar_por USING p_sort TYPE slis_t_sortinfo_alv.
***
*** DATA: wa_sort TYPE slis_sortinfo_alv.
*** CLEAR wa_sort.
*** wa_sort-fieldname = 'vbeln'.
*** wa_sort-spos = 1.
*** wa_sort-up = 'X'.
*** wa_sort-subtot = 'X'.
*** APPEND wa_sort TO p_sort.
***
***
***ENDFORM. " ordenar_por

*&---------------------------------------------------------------------*
*& Form alv_pf_status_set
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->EXTAB text
*----------------------------------------------------------------------*
*FORM alv_pf_status_set USING extab TYPE slis_t_extab."TABLES
*p_it_output
*
* SET PF-STATUS 'ESTANDAR_NEW_II'. " EXCLUDING p_it_output.
*
*ENDFORM. "alv_pf_status_set

*&---------------------------------------------------------------------*
*& Form refresca_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->U_SELFIELD text
*----------------------------------------------------------------------*
FORM refresca_alv USING u_selfield TYPE slis_selfield.

u_selfield-refresh = 'X'.
u_selfield-col_stable = 'X'.
u_selfield-row_stable = 'X'.

ENDFORM. "refresca_alv

*&---------------------------------------------------------------------*
*& Form ALV_END_OF_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*FORM alv_end_of_list.
*
**Seleccion del end_of_list
** DATA: aux_5(100) TYPE c.
**
** FREE alv_git_heading.
** aux_5 = 'Días'.
** alv_git_heading-typ = 'S'.
** alv_git_heading-key = aux_5.
*** alv_git_heading-info = suma.
** APPEND alv_git_heading.
**
** CLEAR aux_5.
*** FREE alv_git_heading.
** aux_5 = 'Promedio de días'.
** alv_git_heading-typ = 'S'.
** alv_git_heading-key = aux_5.
*** alv_git_heading-info = promedio.
** APPEND alv_git_heading.
**
* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
* it_list_commentary = alv_git_heading[]
* i_end_of_list_grid = 'end'.
**
**
**
*ENDFORM. "ALV_END_OF_LIST
Responder Con Cita
  #4  
Viejo 27/02/08, 13:26:16
dayanareyes dayanareyes is offline
Member
 
Fecha de Ingreso: jul 2006
Mensajes: 36
Alguien Me Puede Ayudarrrrr
Responder Con Cita
  #5  
Viejo 27/02/08, 13:45:03
bisonye bisonye is offline
Senior Member
 
Fecha de Ingreso: ago 2006
Mensajes: 635
Hola,

Tienes un problema de concepto que debería solucionarte tu consultor

Si la factura de SD está contabilizada efectivamente se guarda la factura FI en la BKPF y en la BSEG. Si no me equivoco el número de documento es el mismo en FI y en SD por lo que lo que tienes que hacer para comprobar que la factura está contabilizada es mirar en la tabla BKPF si existe el número de documento.

Podrías hacerlo con un INNER JOIN así:

vbak INNER JOIN bkpf ON vbak~vbeln = bkpf~belnr

O bien con selects anidados para cada factura SD hacer el select a la bkpf.

Espero te sirva.

Saludos
Responder Con Cita
  #6  
Viejo 27/02/08, 14:48:23
dayanareyes dayanareyes is offline
Member
 
Fecha de Ingreso: jul 2006
Mensajes: 36
Unhappy


AAAAAAAAAAAA

y si ya tengo esto:


SELECT *
FROM ( vbrk inner join kna1 on vbrk~kunag = kna1~kunnr )
INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr

INTO CORRESPONDING FIELDS OF TABLE wa_factura
WHERE vbeln IN so_vbeln AND
fkdat IN so_fkdat AND
kunag IN so_kunag AND
fksto = so_fksto.

como hago para colocar otro inner o es q esto q tengo esta mal?????
Responder Con Cita
  #7  
Viejo 27/02/08, 15:36:46
bisonye bisonye is offline
Senior Member
 
Fecha de Ingreso: ago 2006
Mensajes: 635
Perdona pero no había visto el segundo inner Join.

En principio lo tienes hecho ¿que problema tienes ahora?
Responder Con Cita
  #8  
Viejo 27/02/08, 15:45:16
dayanareyes dayanareyes is offline
Member
 
Fecha de Ingreso: jul 2006
Mensajes: 36
Unhappy Pleasee

a ver....

coloque esto asi

IF conta = 'X'.

SELECT *
FROM ( vbrk INNER JOIN kna1
ON vbrk~kunag = kna1~kunnr )
INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr
INTO CORRESPONDING FIELDS OF TABLE wa_factura
WHERE vbeln IN so_vbeln AND
fkdat IN so_fkdat AND
kunag IN so_kunag AND
fksto = so_fksto.

ELSE.


SELECT *
FROM ( vbrk INNER JOIN kna1
ON vbrk~kunag = kna1~kunnr )
INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr
INTO CORRESPONDING FIELDS OF TABLE wa_factura
WHERE vbeln IN so_vbeln AND
fkdat IN so_fkdat AND
kunag IN so_kunag AND
fksto = so_fksto.
ENDIF.

evidentemente los dos selecte q tengo

en el if y el else son identicos.... ya lo se....

PERO EL PROBLEMA QUE TENGO ES PRESCISAMENTE COMO VALIDO QUE UNA FACTURA A SIDO CONTABILIZADA???? OSEA SI EL CHECK = 'X' COMO PUEDO VALIDAR ESO????

ME HE LIADO BASTANTE... MI JEFA ME DICE ESTO:
Una factura está contabilizada si está almacenda en la BSEG. De manera que si te piden las facuras contabilizadas debes accceder a la BSEG y ver si está allí almacenada.

El checkbox de la pantalla de selección lo puedes guardar en una variable y luego haces el chequeo antes de acceder a la BSEG.

Y ENTIOENDO QUE LA BSEG ES CLOSTER Y NO SE PUEDE ACCEDER DIRECTAMENTE... BUENO ESO ME LO DIJERON ACA


ASI QUE NO TENGO IDEA COMO HACER ESA VALIDACION
Responder Con Cita
  #9  
Viejo 27/02/08, 16:58:17
bisonye bisonye is offline
Senior Member
 
Fecha de Ingreso: ago 2006
Mensajes: 635
Bueno veo dos casos:

1.- Quieres ver todas las facturas o solo las contabilizadas:
Si el check es X tu select es el que tienes. En caso de que quieras ver todas le quitas el inner join a la BKPF

2.- Quieres ver las que no están contabilizadas o todas
Si el check es x es el select que tienes(todas). En el otro caso tienes que recuperar todas las facturas y comprobar en la BKPF si existe el documento. Si existe no lo muestras.

Con esto creo que lo tienes todo.

Saludos

Úlima edición por bisonye fecha: 27/02/08 a las 17:01:03.
Responder Con Cita
  #10  
Viejo 27/02/08, 21:11:08
Avatar de Rodolfo Montiel Rivera
Rodolfo Montiel Rivera Rodolfo Montiel Rivera is offline
Member
 
Fecha de Ingreso: oct 2007
Mensajes: 92
Thumbs up Dejame tu correo

Si puedes dejarme tu correo Ok mas bien cheka tus mensajes privados de aqui de sap te deje una solucion el FORM extraccion es todo lo que necesitas.
__________________
01010000
01001010
10011000
10100001

De Byte a Beat.

Úlima edición por Rodolfo Montiel Rivera fecha: 27/02/08 a las 21:36:19.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 20:43:06.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web