Cosmos

Preguntas frecuentes / Casos prácticos

  1. ¿Puede crear una tabla temporal un usuario con permiso CONNECT?
  2. No, el usuario debe tener permiso RESOURCE.

  3. Al confeccionar un impreso con rupturas de secuencia no se limpia bien la página al realizar la ruptura. Además, en el siguiente grupo imprime líneas del grupo anterior.
  4. Utilizar el método "Truncate".

  5. ¿Cómo aplicar una "Variable global" a toda la aplicación?
  6. Ponerla en una INCLUDE que siempre esté cargada; es decir, que esté asociada a todos los módulos que utilicen este objeto global y al módulo de inicio.

  7. En un grupo definido, ¿cómo imprimir un registro que ocupa varias líneas?
  8. Incluir los campos dentro de una caja con varias páginas para que el grupo la repita o utilizar un control de tipo "BAND GROUP".

  9. Al intentar borrar un registro con integridad referencial, ¿cómo capturar el aviso producido y cambiar el texto del mensaje?
  10. Bajar el "ErrorLevel" y, si el borrado falla, mostrar el mensaje de error que queramos.

  11. ¿Cómo hacer un grupo si cada registro necesita cuatro líneas de impresión?
  12. Utilizar una caja con tantas páginas como formatos de línea tenga y luego ir cambiando el "CurrentRow" del grupo y la "Page" de la caja; o bien utilizar un control de tipo "BAND GROUP".

  13. ¿Cómo limitar los valores que se pueden introducir a un campo de una tabla? Por ejemplo: Valores posibles "X" o " ".
  14. Se puede hacer de dos formas:

    • Configurando el atributo CHECK del campo de esa tabla.
    • Asignando al campo en el repositorio un control de tipo enumerado (DROP LIST) y configurar los posibles valores que el usuario pueda elegir.

    La manera óptima sería utilizando las dos a la vez.

  15. ¿Cómo poner una variable en la cláusula WHERE al hacer una SelectWindow?
  16. Concatenándola con el operador "+" de la clase "char" al resto de la sentencia SQL.

  17. No funciona la ayuda de Cosmos, ni siquiera ejecutando directamente los archivos ".chm" desde el Explorador.
  18. Registrar el control "hhctrl.ocx" del directorio "Windows\System"; copiar el fichero "hh.exe" del directorio "bin" de Cosmos al directorio Windows.

    Instalando Internet Explorer 5 o posterior también funciona.

  19. ¿Es posible detectar en qué línea se ha producido un error capturado con Whenever?
  20. Con el evento "On Error" de la clase "SqlServer" o bien con el de la clase "module".

  21. Se produce el siguiente error "COMPONENT OF THE KEY ARE MISSING IN DE COLUMN LIST".
  22. Cuando se modifica un campo que forma parte de una clave referencial compuesta se han de modificar todos los campos que forman dicha clave, aunque no varíe su valor.

  23. Al imprimir un informe se ejecuta "setup"; al seleccionar orientación horizontal hace caso omiso.
  24. Se debe utilizar el método "SetOrientation" indicando un 2 como parámetro.

  25. ¿Cómo realizar una consulta que permita recuperar las filas que no tienen información en algunas de sus columnas?
  26. Poner en la condición la cláusula "IS NULL".

  27. ¿Existe algún método que permita mostrar una ventana y poder realizar búsquedas de ficheros?
  28. Sí, el método "TreeWalk".

  29. ¿Cómo cambiar el orden de tabulación de los controles?
  30. Pinchando con el botón secundario del ratón y eligiendo la opción "set tab order". También se puede hacer editando las propiedades del control y modificando el atributo "Order".

  31. Al borrar una tabla se produce el error: "imposible to open the database table [tabla]". El nombre de la tabla que aparece en el error no es el de la tabla que está intentando borrar desde programa.
  32. Aumentar la variable de entorno MBISFILES a 100. Revisar los índices de la tabla con el comando "tchkidx".

  33. ¿Cuáles son los eventos para controlar lo que se teclea en un "EDIT FIELD"?
  34. Con el evento "EditChange".

  35. ¿Cómo se pueden tener repartidas las columnas de una tabla en un "grid" y en un "box"?
  36. Asociar la tabla a un "box" y, dentro de ella, poner el "grid" y los controles para las columnas.

  37. ¿Cómo mostrar un carácter por medio de su código ASCII?
  38. Con el método "Character()".

  39. ¿Cómo ver un fichero de texto como en una window?
  40. Utilizando un control de tipo "list box" con la propiedad "Sql Type" y valor "File".

  41. ¿Se puede utilizar el método "Locate" sobre un campo de tipo carácter en la definición de un CURSOR?
  42. No, se debe utilizar "matches" o "like".

  43. Al asociar una "tabla" a un "box" (la tabla se llama color), se producen errores al compilar el módulo, deshaciendo la asociación de la "tabla" con el "box".
  44. El nombre de la tabla ("color") es una palabra reservada, por lo que no se puede utilizar.

  45. ¿Cómo deshabilitar un menú?
  46. Poniendo la propiedad "DISABLED" del menú o de la opción que quiera deshabilitar a "TRUE".

    Si la opción de menú tiene asociado un comando se podrá deshabilitar con el método "DisableCommand" de la clase "form".

  47. Al utilizar el método GetEnv para recoger el valor de una variable de entorno no funciona.
  48. Comprobar que el nombre de la variable es idéntico al definido en el fichero "cosmos.ini".

    Si queremos recoger una variable de entorno de una conexión asociada a un SqlServer debemos utilizar el método "GetValue".

    Otra posibilidad es reiniciar Cosmos si se ha modificado el fichero "cosmos.ini".

  49. Al utilizar el método "GetQueryLike()" devuelve nulo.
  50. Para utilizar este método debemos estar en modo edición.

  51. ¿Existe algún método que permita saber si una columna de una tabla ha sido modificada?
  52. Sí, el método "SqlModified" de la clase FORMTABLE.

  53. ¿Hay alguna forma inmediata de posicionarnos en un número de registro determinado?
  54. Utilizando el método "SetCurrentRow".

  55. Al arrancar Cosmos aparece el siguiente mensaje: "Imposible actualizar el catálogo del sistema".
  56. Tiene definido otro Cosmos en la variable de entorno "COSMOSDIR" en el fichero "win.ini".

  57. ¿Cómo se relaciona una "view" de la base de datos con una "template" de un repositorio.
  58. Por el nombre de la "view" y del "template". El de ambos debe coincidir.

  59. Tenemos un "check box" en un "grid" como "pseudo". Al hacer una consulta no refresca el "check box", sino sólo el de la fila activa. Tiene activada la propiedad "store status". ¿Cómo hacer que refresque el "check box" completo?
  60. Asociando una variable al control y modificándola. La variable tiene que ser booleana.