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 > Internet Explorer >

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 CAB) 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 CAB y al identificador de clase (CLSID) 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.

 

Consulte también el apartado El elemento OBJECT para obtener más información.

 

 

<html>

 <head>

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

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

 

         <SCRIPT LANGUAGE="javascript" For="objPlugIn" EVENT="ControlInitialized">

                 var strSampleRoot = "http://miRaíz/miRuta/miNombreDocumento";

                 objPlugIn.SchemaLoadObject.URL = strSampleRoot + ".xsd";

                 objPlugIn.XMLDataLoadObject.URL = strSampleRoot + ".xml";

                 objPlugIn.DesignDataLoadObject.URL = strSampleRoot + ".sps";

                 objPlugIn.StartEditing();

         </SCRIPT>

 

         <SCRIPT ID="clientEventHandlers" LANGUAGE="javascript">

                 var objCurrentRange = Null;

 

                 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;

                                 While (True)

                                 {

                                         try { objCursor.GotoPrevious(11); }

                                 catch (err) { break; }

                                 nColIndex++;

                         }

 

                         // Ir al principio de la tabla

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

 

                         // Recuento de filas

                         nRows = 1;

                         While (True)

                         {

                                 try { objTableStart.GotoNext(10); }

                         catch (err) { break; }

                         nRows++;

                         }

 

                         // Ordenación de burbuja

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

                                 for(var 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;

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

                                         if(strField1 > strField2) {

                                                 if(!objBubble.MoveRowUp()) {

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

                                                         return;

                                                 }

                                         }

                                 }

                         }

                 }

         </SCRIPT>

 </head>

 

 <body>

         <Object id="objPlugIn" 

         <!-- CodeBase selecciona el archivo CAB de 32 bits (AuthenticBrowserEdition.CAB) -->

         <!-- o el archivo CAB de 64 bits (AuthenticBrowserEdition_x64.CAB) -->

                 codeBase="http://miArchivoCAB/AuthenticBrowserEdition.CAB#Version=12,3,0,0" 

         <!-- El atributo Classid para el archivo CAB de 32 bits y para el de 64 bits es el mismo -->

                 classid="clsid:23B503E7-269B-45CE-BAB2-22AA97BED8E2" 

                 width="100%"

                 height="80%"

                 VIEWASTEXT>

                 <PARAM NAME="EntryHelpersEnabled" VALUE="TRUE">

                 <PARAM NAME="SaveButtonAutoEnable" VALUE="TRUE">

         </Object>

         <TABLE>

                 <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 siguiente palabra" 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>

 

 <SCRIPT LANGUAGE=javascript For=objPlugIn EVENT=selectionchanged>

         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;

 </SCRIPT>

 

</html>

 


© 2019 Altova GmbH