.. _group__a3d__pdf__datamodel__module:

#################
Data Model Module
#################

**(HOOPS Publish Advanced)** \ Module to modelize data tables and interactivity. 

This module describes the functions and structures that allow you to define tables, relationships and widgets on a PDF page, as well as describing interactivity between widgets.

The process to define a data model binding is as follows: 


- Tables and Relationships must be created with :c:func:`~A3DPDFDataTableCreate` and :c:func:`~A3DPDFDataRelationshipCreate`\ .  
- The widgets are primarily created by other API functions, or with Acrobat Forms. Widgets can be Acrobat fields (text field, button, list), or a high level widget (ScrollTable, ViewCarousel ...) 
- Use A3DPDFXXXBindToTable functions to bind a widget to a data table. 
- Use :c:func:`~A3DPDFWidgetSetTargetBehaviour` functions to define the interactivity between widgets.  

Init states are defined as follows (also used when unselecting a widget): . Text fields are empty . List fields display the whole data table . 3D annot is defined in the PRC 

**Parameters**


   **pPage**\ : The Page object on which is the field. 

   **pcFieldId**\ : Unique name for the drop down field. 

   **ppDataFilter**\ : The :c:type:`~A3DPDFDataFilter` object created.


**Returns**


   A3D_SUCCESS in case of success or an error code


.. rst-class:: kind-group kind-topic

.. rubric:: Topics
   :class: kind-group-title


.. rst-class:: api-xref-list


* :ref:`DataTable Module <group__a3d__pdf__datamodel__table__module>`
* :ref:`DataRelationship Module <group__a3d__pdf__datamodel__table__rship>`

.. rst-class:: kind-group kind-enumeration

.. rubric:: Enumerations
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:enum:`~A3DPDFEWidgetTargetBehaviour`

.. rst-class:: kind-group kind-function

.. rubric:: Functions
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:func:`~A3DPDFPageGetDataFilterFromDropDownListField`
* :c:func:`~A3DPDF3DAnnotGet3DNodeScene`
* :c:func:`~A3DPDF3DAnnotGet3DViewList`
* :c:func:`~A3DPDFWidgetBindColumnsActions`
* :c:func:`~A3DPDFTextFieldBindToTable`
* :c:func:`~A3DPDFScrollTableBindToTable`
* :c:func:`~A3DPDFListBoxBindToTable`
* :c:func:`~A3DPDFDropDownListBindToTable`
* :c:func:`~A3DPDF3DNodeSceneBindToTable`
* :c:func:`~A3DPDF3DViewListBindToTable`
* :c:func:`~A3DPDF3DViewCarouselBindToTable`
* :c:func:`~A3DPDFDataFilterWidgetBindToTable`
* :c:func:`~A3DPDFButtonBindToTable`
* :c:func:`~A3DPDFWidgetSetTargetBehaviour`
* :c:func:`~A3DPDF3DAnnotActivatePMICrossHighlightAndSelect`
* :c:func:`~A3DPDF3DNodeSceneGetJavascriptManagerName`
* :c:func:`~A3DPDF3DNodeSceneSetZoomOnBehaviour`
* :c:func:`~A3DPDF3DViewListEnableViewTransitions`
* :c:func:`~A3DPDFCheckBoxSetForFitSelectedMode`
* :c:func:`~A3DPDFCheckBoxSetForZoomOnBehaviour`
* :c:func:`~A3DPDFCheckBoxSetForCheckAllColumn`

.. toctree::
   :maxdepth: 1
   :hidden:

   a3d_pdf_datamodel_table_module
   a3d_pdf_datamodel_table_rship
   ../enums/A3DPDFEWidgetTargetBehaviour
   ../functions/A3DPDFPageGetDataFilterFromDropDownListField
   ../functions/A3DPDF3DAnnotGet3DNodeScene
   ../functions/A3DPDF3DAnnotGet3DViewList
   ../functions/A3DPDFWidgetBindColumnsActions
   ../functions/A3DPDFTextFieldBindToTable
   ../functions/A3DPDFScrollTableBindToTable
   ../functions/A3DPDFListBoxBindToTable
   ../functions/A3DPDFDropDownListBindToTable
   ../functions/A3DPDF3DNodeSceneBindToTable
   ../functions/A3DPDF3DViewListBindToTable
   ../functions/A3DPDF3DViewCarouselBindToTable
   ../functions/A3DPDFDataFilterWidgetBindToTable
   ../functions/A3DPDFButtonBindToTable
   ../functions/A3DPDFWidgetSetTargetBehaviour
   ../functions/A3DPDF3DAnnotActivatePMICrossHighlightAndSelect
   ../functions/A3DPDF3DNodeSceneGetJavascriptManagerName
   ../functions/A3DPDF3DNodeSceneSetZoomOnBehaviour
   ../functions/A3DPDF3DViewListEnableViewTransitions
   ../functions/A3DPDFCheckBoxSetForFitSelectedMode
   ../functions/A3DPDFCheckBoxSetForZoomOnBehaviour
   ../functions/A3DPDFCheckBoxSetForCheckAllColumn


