Ejemplo nº2: ordenar una tabla

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Configuración del servidor > Página HTML para el complemento de Authentic > Firefox >

Ejemplo nº2: ordenar una tabla

A continuación aparece un ejemplo de página HTML que tiene un JavaScript incrustado y que requiere tener instalado Authentic Browser (archivo XPI) en el equipo. Recuerde que algunos servidores distinguen entre el uso de mayúsculas y minúsculas, así que si algún archivo no se encuentra, revise el uso de mayúsculas y minúsculas en los nombres de archivo y en los comandos del código.

 

El código del ejemplo:

 

Muestra cómo acceder al complemento. Modifique el código para remitir al archivo XPI y al identificador de clase (tipo MIME) de su versión del complemento (Trusted o Untrusted).

 

Muestra cómo cargar un archivo en el complemento. Modifique el código para remitir a su documento de muestra.

 

Implementa botones para el posicionamiento del cursor.

 

Implementa comandos más complejos como comandos para ordenar tablas.

 

Muestra cómo usar el evento SelectionChanged.

 

 

 

 

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<title>Página de prueba para Authentic Browser</title>

 

</head>

 

<!-- to disable the fast-back cache in Firefox, define an unload handler -->

<BODY id="bodyId" onunload="Unload()">

   <embed 

 id="objPlugIn" 

 type="application/x-authentic-scriptable-plugin" 

 width="100%" 

 height="60%" 

 PLUGINSPAGE="http://tu-servidor-incluida-la-ruta/AuthenticFirefoxPlugin_trusted.xpi"

 EntryHelpersEnabled="TRUE" 

 SaveButtonAutoEnable="TRUE" >

   </embed>

<TABLE>

<SCRIPT LANGUAGE="javascript">

var objCurrentRange = null;

var objPlugIn = document.getElementById('objPlugIn');

 

function BtnDocumentBegin() { objPlugIn.AuthenticView.DocumentBegin.Select(); }

function BtnDocumentEnd() { objPlugIn.AuthenticView.DocumentEnd.Select(); }

function BtnWholeDocument() { objPlugIn.AuthenticView.WholeDocument.Select(); }

function BtnSelectNextWord() { objPlugIn.AuthenticView.Selection.SelectNext(1).Select(); }

 

function BtnSortDepartmentOnClick()

{

 var objCursor = null;

 var objTableStart = null;

 var objBubble = null;

 var strField1 = "";

 var strField1 = "";

 var nColIndex = 0;

 var nRows = 0;

 

 objCursor = objPlugIn.AuthenticView.Selection;

 if (objCursor.IsInDynamicTable())

 {

         // calcular índice de columnas actual

         nColIndex = 0;

         bContinue = true;

         while ( bContinue )

         {

                 try { objCursor.GotoPrevious(11); }

                 catch (err) { bContinue = false; nColIndex--; }

                 nColIndex++;

         }

 

         // Ir al principio de la tabla

         objTableStart = objCursor.ExpandTo(9).CollapsToBegin().Clone();

 

         // recuento de filas

         nRows = 1;

         bContinue = true;

         while ( bContinue )

         {

                 try { objTableStart.GotoNext(10); }

                 catch (err) { bContinue = false; }

                 nRows++;

         }

 

         // ordenación de burbuja

         for ( i = 0; i < nRows - 1; i++) {

                 for( j 0; j < nRows-i-1; j++) {

                         objBubble objCursor.ExpandTo(9).CollapsToBegin().Clone();

                         // Seleccionar columna correcta en la fila de tabla nºX

                 objBubble.GotoNext(6).Goto(10,j,2).Goto(11,nColIndex,2).ExpandTo(6);

                strField1 = objBubble.Text;

                         try

                         {

                                 strField2 = objBubble.GotoNext(10).Goto(11,nColIndex,2).ExpandTo(6).Text;

                         }

                         catch ( err ) { continue; };

                if(strField1 > strField2) {

                                 if(!objBubble.MoveRowUp()) {

                                         alert(No está permitido mover la fila.');

                                         return;

                                 }

                         }

                 }

         }

 }

}

 

function InitAuthenticPluginPage( )

{

 var serverstr=su-servidor/';

 var basedir='Authentic/';

 objPlugIn.SchemaLoadObject.URL = 'http://' + serverstr + basedir + 'OrgChart.xsd';

 objPlugIn.XMLDataLoadObject.URL = 'http://' + serverstr + basedir + 'OrgChart.xml' ;

 objPlugIn.DesignDataLoadObject.URL = 'http://' + serverstr + basedir + 'OrgChart.sps';

 objPlugIn.StartEditing();

}

 

function Unload()

{

}

 

function OnSelectionChanged()

{

 var CurrentSelection = null;

 CurrentSelection = objPlugIn.AuthenticView.Selection;

 SelTable_FirstTextPosition.innerHTML = CurrentSelection.FirstTextPosition;

 SelTable_LastTextPosition.innerHTML = CurrentSelection.LastTextPosition;

 SelTable_FirstXMLData.innerHTML = CurrentSelection.FirstXMLData.Parent.Name;

 SelTable_FirstXMLDataOffset.innerHTML = CurrentSelection.FirstXMLDataOffset;

 SelTable_LastXMLData.innerHTML = CurrentSelection.LastXMLData.Parent.Name;

 SelTable_LastXMLDataOffset.innerHTML = CurrentSelection.LastXMLDataOffset;

}

 

objPlugIn.addEventListener("selectionchanged", OnSelectionChanged, false)

// suscripción a evento si se ejecuta en Firefox

objPlugIn.addEventListener("ControlInitialized", InitAuthenticPluginPage, false);

</SCRIPT>

<TR>

<TD><Input Type="button" value="Ir al principio" id="B1" onclick="BtnDocumentBegin()"></TD>

<TD><Input Type="button" value="Ir al final" name="B2" onclick="BtnDocumentEnd()"></TD>

<TD><Input Type="button" value="Documento entero" name="B3" onclick="BtnWholeDocument()"></TD>

<TD><Input Type="button" value="Seleccionar palabra siguiente" name="B4" onclick="BtnSelectNextWord()"></TD>

</TR>

<TR>

<TD><Input Type="button" value="Ordenar tabla en función de esta columna" id="B6" onclick="BtnSortDepartmentOnClick()"</TD>

</TR>

</TABLE>

<TABLE id=SelTable border=1>

<TR><TD id=SelTable_FirstTextPosition></TD><TD id=SelTable_LastTextPosition></TD></TR>

<TR><TD id=SelTable_FirstXMLData></TD><TD id=SelTable_FirstXMLDataOffset></TD></TR>

<TR><TD id=SelTable_LastXMLData></TD><TD id=SelTable_LastXMLDataOffset></TD></TR>

<TR><TD id=SelTable_Text></TD></TR>

</TABLE>

</body>

</html>

 


© 2019 Altova GmbH