Specify abap type in bind table method

- Added new field in the field catalog (ABAP_TYPE)
- Added the abap type management in the BIND_TABLE method
This commit is contained in:
Alessandro Iannacci 2015-06-17 14:12:53 +02:00
parent af00a56683
commit b9581c0113
2 changed files with 37 additions and 5 deletions

View File

@ -2812,25 +2812,56 @@ ENDCLASS. &quot;lcl_gui_alv_grid DEFINITION</localTypes>
&quot; issue #290 Add formula support in table &quot; issue #290 Add formula support in table
IF &lt;ls_field_catalog&gt;-formula EQ abap_true. IF &lt;ls_field_catalog&gt;-formula EQ abap_true.
IF &lt;ls_field_catalog&gt;-style IS NOT INITIAL. IF &lt;ls_field_catalog&gt;-style IS NOT INITIAL.
IF &lt;ls_field_catalog&gt;-abap_type IS NOT INITIAL.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_formula = &lt;fs_fldval&gt;
ip_abap_type = &lt;ls_field_catalog&gt;-abap_type
ip_style = &lt;ls_field_catalog&gt;-style ).
ELSE.
me-&gt;set_cell( ip_column = lv_column_alpha me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int ip_row = lv_row_int
ip_formula = &lt;fs_fldval&gt; ip_formula = &lt;fs_fldval&gt;
ip_style = &lt;ls_field_catalog&gt;-style ). ip_style = &lt;ls_field_catalog&gt;-style ).
ENDIF.
ELSE.
IF &lt;ls_field_catalog&gt;-abap_type IS NOT INITIAL.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_formula = &lt;fs_fldval&gt;
ip_abap_type = &lt;ls_field_catalog&gt;-abap_type ).
ELSE. ELSE.
me-&gt;set_cell( ip_column = lv_column_alpha me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int ip_row = lv_row_int
ip_formula = &lt;fs_fldval&gt; ). ip_formula = &lt;fs_fldval&gt; ).
ENDIF. ENDIF.
ENDIF.
ELSE. ELSE.
IF &lt;ls_field_catalog&gt;-style IS NOT INITIAL. IF &lt;ls_field_catalog&gt;-style IS NOT INITIAL.
IF &lt;ls_field_catalog&gt;-abap_type IS NOT INITIAL.
me-&gt;set_cell( ip_column = lv_column_alpha me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int ip_row = lv_row_int
ip_value = &lt;fs_fldval&gt; ip_value = &lt;fs_fldval&gt;
ip_abap_type = &lt;ls_field_catalog&gt;-abap_type
ip_style = &lt;ls_field_catalog&gt;-style ). ip_style = &lt;ls_field_catalog&gt;-style ).
ELSE. ELSE.
me-&gt;set_cell( ip_column = lv_column_alpha me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int ip_row = lv_row_int
ip_value = &lt;fs_fldval&gt;
ip_style = &lt;ls_field_catalog&gt;-style ).
ENDIF.
ELSE.
IF &lt;ls_field_catalog&gt;-abap_type IS NOT INITIAL.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_abap_type = &lt;ls_field_catalog&gt;-abap_type
ip_value = &lt;fs_fldval&gt; ). ip_value = &lt;fs_fldval&gt; ).
ELSE.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_value = &lt;fs_fldval&gt; ).
ENDIF.
ENDIF. ENDIF.
ENDIF. ENDIF.
ADD 1 TO lv_row_int. ADD 1 TO lv_row_int.

View File

@ -14,4 +14,5 @@
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="COND_STYLE" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZCL_EXCEL_STYLE_CONDITIONAL" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="REF" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" REF RC" MASKLEN="0000" DDTEXT="Font Style" DEPTH="00" COMPTYPE="R" REFTYPE="C" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/> <dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="COND_STYLE" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZCL_EXCEL_STYLE_CONDITIONAL" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="REF" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" REF RC" MASKLEN="0000" DDTEXT="Font Style" DEPTH="00" COMPTYPE="R" REFTYPE="C" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="TOTALS_FUNCTION" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_TABLE_TOTALS_FUNCTION" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Totals function for table column (xml ST_TotalsRowFunction)" SCRTEXT_S="Function" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/> <dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="TOTALS_FUNCTION" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_TABLE_TOTALS_FUNCTION" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Totals function for table column (xml ST_TotalsRowFunction)" SCRTEXT_S="Function" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="FORMULA" DDLANGUAGE="E" POSITION="0013" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/> <dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="FORMULA" DDLANGUAGE="E" POSITION="0013" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="ABAP_TYPE" DDLANGUAGE="E" POSITION="0014" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000000" DECIMALS="000000" MASK=" CHAR" MASKLEN="0000" DEPTH="00" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL> </TABL>