1.9 La clase GanttSetup

 Nos crearemos la clase GanttSetup porque la necesitaremos para guardar las modificaciones que realizamos sobre los datos.



//XBB :: http://axlearn2012.blogspot.com.es/ :: XBB_Gantt :: 20141208
class XBB_GanttSetup_SchedEmpl extends GanttSetup
{
}


public static XBB_GanttSetup_SchedEmpl construct()
{
 
   return new XBB_GanttSetup_SchedEmpl();
}

public static XBB_GanttSetup_SchedEmpl newGanttClient(XBB_GanttClient_SchedEmpl _ganttClient)
{

    XBB_GanttSetup_SchedEmpl ganttSetup =   XBB_GanttSetup_SchedEmpl::construct();

    ganttSetup.parmGanttClient(_ganttClient);
 
 

    return ganttSetup;
}


En nuestra clase GanttClient añadiremos el siguiente método:


protected GanttSetup createGanttSetup()
{
 
   return XBB_GanttSetup_SchedEmpl::newGanttClient(this);
}



En nuestra clase ActiveXVarchart agregaremos los siguiente métodos para identificar que campo de nuestra tabla son de inicio y final del nodo.

 

protected FieldName fieldNameSchedFromDate()
{
 
   return fieldStr(XBB_GanttTmpSchedEmpl, StartDate);
}

protected FieldName fieldNameSchedToDate()
{
 
   return fieldStr(XBB_GanttTmpSchedEmpl, EndDate);
}


En nuestro componente ActiveX agregaremos los siguientes métodos:



 

 

Para ver los métodos/eventos que se pueden agregar a nuestro ActiveX lo podemos hacer de dos maneras:
 
 
 





 
Otra manera es ir a ver los métodos OnEvent que tiene la clase GanttActiveXVarchart.
 
 

 
Aquí tenéis el código de los eventos. 
 
 
void onEvent_OnNodeModifyCompleteEx(
     COM      _node,
     int      _modificationType,
     boolean  _isLastNodeInSeries){

     EVR_GanttActiveXVarchart_SchedEmpl localGanttVisualization;

     localGanttVisualization = ganttClient.parmGanttVisualization();
     localGanttVisualization.onEvent_OnNodeModifyCompleteEx(

                   _node,
                   _modificationType,
                   _isLastNodeInSeries);
}


void onEvent_OnNodeModifyEx(
     COM         _oldNode,
     COM         _node,
     int         _modificationType,
     COMVariant  _returnStatus){

     EVR_GanttActiveXVarchart_SchedEmpl localGanttVisualization;

     localGanttVisualization = ganttClient.parmGanttVisualization();
     localGanttVisualization.onEvent_OnNodeModifyEx(

                     _oldNode,
                     _node,
                     _modificationType,
                     _returnStatus);
}
 

 
Con todo esto ya tendremos un formulario funcionando que mostrará datos y en el que podremos guardar las modificaciones con un botón.

Ahora mismo tendrá este aspecto que modificaremos en los próximos post.

 

En nuestro botón Save llamaremos al método Save de la clase GanttClient.



public void save()
{   if (Box::yesNo("@SYS136819", DialogButton::Yes) == DialogButton::Yes 
   {
       ganttClient.save();
   }
}
 




Descargar XBB_GanttSetup_SchedEmpl



Hoy también agrego el proyecto entero el cual contiene también el formulario para que podáis ver la configuración y los métodos anulados.



Descargar XBB_Gantt

Comentarios