¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como corrigir a conversão automática de horas no ALV Grid - Problema com campo editável do tipo stdaz

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 4 Vistas
0
Cargando...

Prezados amigos,

Estou usando ALV Grid e a saída em modo editável. Tenho horas (tipo de dado stdaz) como campo editável, agora quando

eu digito no campo editável como 10.00 ....... na tela aparece apenas 10.00 ....... no entanto, quando eu digito e pressiono o botão que coloquei no ALV grid ...... o código de comando do usuário é ativado onde posso ver na área de trabalho o valor

que digitei no campo editável é exibido como 0.10 em vez de 10.00 ...........

eu declarei este campo apenas como stdaz.

meu código é o seguinte no comando do usuário.

CASE ucomm.

WHEN '&GRK'.

IF NOT Gt_final[] IS INITIAL.

LOOP AT gt_final INTO wa_tmp_final WHERE

chk = 'X'.

IF wa_tmp_final-grade NE 'SE6A' .

SELECT SINGLE * FROM pa0008 INTO wa_pa0008 WHERE pernr = wa_tmp_final-pernr

AND lga01 = '1000'.

SELECT SINGLE * FROM pa0014 INTO wa_pa0014 WHERE pernr = wa_tmp_final-pernr

AND lgart = '2048'.

break-point.

IF wa_pa0008-bet01 IS NOT INITIAL.

wa_tmp_final-amt1096 = wa_tmp_final-adminohrs * (wa_pa0008-bet01 + wa_pa0014-betrg) / 240.

MODIFY TABLE gt_final FROM wa_tmp_final transporting amt1096.

ENDIF.

endif.

endloop.

ENDIF.

ENDCASE.

Wa_tmp_final-adminohrs -


> está me dando 0.10 em vez de 10.00, não consigo entender como está sendo convertido automaticamente.

por favor, corrijam-me por que se comporta assim como descrito acima.

Saudações

madhuri.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá,

Madhuri, você pode tentar isto:

Coloque seu campo que está com esse problema como

" wa_fieldcat-decimals = '2'. "

isso resolverá seu problema.

por exemplo:

wa_fieldcat-fieldname = 'KBETR'.

  • ls_fieldcatalog-checkbox = 'X'.

  • ls_fieldcatalog-datatype = 'C'.

ADICIONAR 1 A wf_pos.

wa_fieldcat-col_pos = wf_pos.

wa_fieldcat-outputlen = '15'.

wa_fieldcat-reptext = 'PREÇO EXISTENTE'.

wa_fieldcat-coltext = 'PREÇO EXISTENTE'.

wa_fieldcat-seltext = 'PREÇO EXISTENTE'.

wa_fieldcat-tooltip = 'PREÇO EXISTENTE'.

wa_fieldcat-key = 'X'.

wa_fieldcat-icon = 'X'.

wa_fieldcat-TABNAME = 'IT_DATA'.

wa_fieldcat-decimals = '2'. /// mantenha este campo como 2 para que seja salvo no formato requerido.

*ls_fieldcatalog-edit = 'X'.

    • wa_fieldcat-edit = 'X'.

ADICIONAR wa_fieldcat A it_fieldcat.

EXCLUIR wa_fieldcat.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

°Olá Gaurav!

Obrigado pela sua solução, está funcionando... mas tenho um problema: o texto no cabeçalho está sendo alterado para o texto padrão da tabela de referência.

Quando alterei meu código da seguinte forma:

gk_FIELDCAT-REF_FIELD = 'STDAZ'. " nome do campo

gk_FIELDCAT-REF_TABLE = 'T550P'. " nome da tabela

em vez do meu texto personalizado, estou obtendo o padrão... meu código é o seguinte:

PERFORM f_get_fcat USING :

'CHK' 'CheckBox' 'X' ,

'PERNR' 'Código do empregado' espaço,

'ENAME' 'Nome do empregado' espaço,

'DATE' 'Data' espaço,

'PWRKTIME' 'Tempo de trabalho planejado' espaço.

FORM f_get_fcat USING value(p_0708)

value(p_0709)

p_0710.

GK_fieldcat-fieldname = p_0708.

GK_fieldcat-tabname = 'IT_FINAL'.

GK_fieldcat-seltext_l = p_0709.

GK_fieldcat-edit = p_0710.

IF p_0708 EQ 'CHK'.

GK_fieldcat-checkbox = p_0710.

ENDIF.

IF p_0708 EQ 'ADMINOHRS'.

gk_FIELDCAT-REF_FIELDname = 'STDAZ'. " nome do campo

gk_FIELDCAT-REF_TABname = 'T550P'. " nome da tabela

.

endif.

APPEND GK_fieldcat TO Gt_fieldcat.

CLEAR : gk_fieldcat.

endform.

Como posso obter meu texto personalizado que estou passando no perform?

Saudações

Madhuri.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

No campo de moeda, está ocorrendo um problema ............ então no campo de catálogo você só precisa fornecer o campo de referência e o nome da tabela de referência.....

Seu problema será resolvido.

WA_FIELDCAT-REF_FIELD = 'MENGE'.  " nome do campo
  WA_FIELDCAT-REF_TABLE = 'EKPO'.  " nome da tabela

Por favor, me avise se o problema não for resolvido.

Saudações

Gaurav

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

Apenas adicione um campo para resolver o problema............

SE p_0708 EQ 'ADMINOHRS'.

gk_FIELDCAT-COLTEXT = ' '."Cabeçalho da coluna.

gk_FIELDCAT-REF_FIELDname = 'STDAZ'. " nome do campo

gk_FIELDCAT-REF_TABname = 'T550P'. " nome da tabela

endif.

Saudações,

Gaurav

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?