es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El script onEdit(e) funciona a medias, pero cuando lo cambio a un script que se ejecute al hacer clic, funciona. Necesito que también funcione en dispositivos móviles.

¡Feliz Año Nuevo – Gracias de antemano por ayudarme con esto!
Necesito ejecutar mi script en un dispositivo móvil. El script funciona perfectamente en un escritorio, ya que puedo hacer clic en un botón, pero cuando lo cambio a un script “onEdit(e)”, solo funciona parcialmente.
Aquí está la página de origen desde donde el script debería ejecutarse en el dispositivo móvil: https://docs.google.com/spreadsheets/d/1Wq8jI87A2PkRuwnDzl0fjV7bUSRPkc6JfRQNLvYBN_s/edit?usp=sharing

Aquí está la página de destino donde el script envía datos:
https://docs.google.com/spreadsheets/d/1CYZO6fP3APscxDLS881x3eJ9YEC9ydBXDxvmPaSUwU0/edit?usp=sharing

Aquí está el script:

function checkValue() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName("SCAN");
  var valueToCheck = s.getRange("A5").getValue();

  if (valueToCheck == true) {
    var theRoll = s.getRange("A4").getValue();
    var statusPage = SpreadsheetApp.openById('1CYZO6fP3APscxDLS881x3eJ9YEC9ydBXDxvmPaSUwU0');
    var statusSheet = statusPage.getSheetByName("DailyCut");
    var lr1 = statusSheet.getLastRow();
    var range = statusSheet.getRange(2, 1, lr1-1, 4).getValues();
    var barCode = s.getRange("A2").getValue();

    for (var j = 0; j < range.length; j++) {
      if (barCode == range[j][1]) {
        statusSheet.getRange(j+2, 16).setValue(new Date()).setNumberFormat('h:mm');
        statusSheet.getRange(j+2, 14).setValue("Robin");
        statusSheet.getRange(j+2, 15).setValue(new Date()).setNumberFormat('dd-mm-yyyy');
        statusSheet.getRange(j+2, 17).setValue(theRoll);
        j = range.length;
      }
    }

    s.getRange(2, 1).setValue("");
    s.getRange(4, 1).setValue("");
    s.getRange(5, 1).setValue(false);
  }
}
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para ejecutar el script checkValue() en un dispositivo móvil, puedes utilizar un activador onEdit(e). Sin embargo, la implementación actual del script parece depender en gran medida de elementos de interfaz de usuario que pueden no estar disponibles en un entorno móvil, como s.getRange("A2").getValue() para escanear códigos de barras.

    Para hacer que el script sea compatible con dispositivos móviles, es posible que necesites modificarlo para utilizar métodos de entrada más simples, como un cuadro de diálogo de solicitud. Además, debes considerar las limitaciones de los dispositivos móviles, como pantallas más pequeñas, capacidad de procesamiento limitada y velocidades de conexión variables.

    Aquí tienes algunos pasos que puedes seguir para modificar el script para su uso en dispositivos móviles:

    1. Reemplaza la entrada del escáner de códigos de barras con un cuadro de diálogo de solicitud utilizando Browser.msgBox() o SpreadsheetApp.getUi().prompt().
    2. Prueba exhaustivamente el script en un dispositivo móvil para asegurarte de que funcione como se espera.
    3. Considera crear una interfaz de usuario simplificada compatible con dispositivos móviles, como Google Forms o una aplicación web personalizada, que interactúe con el script.
    4. Optimiza el script para dispositivos móviles minimizando cálculos innecesarios, reduciendo la cantidad de llamadas a la API y limitando la cantidad de datos procesados.

    En general, es posible ejecutar el script checkValue() en un dispositivo móvil, pero requerirá algunas modificaciones y pruebas cuidadosas para asegurarse de que funcione correctamente en un entorno móvil.

Comments are closed.