Cosmos

Preguntas frecuentes / Casos prácticos

  1. ¿Se puede eliminar el botón del "Print" del "Preview"?

    No, pero se puede utilizar el método PreviewEx que sí lo permite. Este método se implementó en la versión 4.2.2 de Cosmos.

  2. ¿De qué manera se puede borrar un fichero?

    Con el método "Delete" de la clase "Module".

  3. ¿Se puede asociar una variable en un "check box".

    Sí. Además, dicha variable puede ser de cualquier tipo, pero en la pestaña de "Special" tiene que tener "boolean".

  4. ¿Cómo reutilizar un módulo definido en otro proyecto?

    Con los "extern objects" de Cosmos, pero teniendo cuidado de no poner en el path la ruta absoluta, o bien enlazando el módulo.

  5. ¿Cómo componer una fecha en una instrucción SELECT si el día, mes y año están en columnas distintas?

    Con la función "mdy(<mes>,<día>,<año>)".

  6. ¿Cómo podemos ejecutar un programa sin que reciba el foco?

    Con la función "WinExec" de la librería dinámica "Kernel32.dll".

  7. Al definir un acelerador con una tecla, ¿podemos utilizar la funcionalidad normal de dicha tecla?

    No, Sólo podemos restringir el uso del acelerador a un FORM en concreto con el método "NewAccelerator".

  8. ¿De qué forma se pueden mostrar los mensajes de un fichero de mensajes?

    Con los métodos "MsgText" y "MsgTextDef".

  9. ¿Cómo se pueden pasar argumentos en el comando "Cosrun"?

    Con el modificador "-arg".

  10. ¿Traduce la parte decimal el comando "Inwords"?

    No, ha de hacerse manualmente.

  11. En un "MessageBox" queremos lanzar un mensaje cuyo contenido es muy largo y deseamos que aparezca en varias líneas. ¿Cómo se puede hacer esto?

    Hay que poner un retorno de carro y un salto de línea con el método "Character". Por ejemplo: "10.Character;" "13.Character;".

  12. ¿De qué forma se puede leer un fichero que tiene una única línea cuyo contenido es tan grande que no cabe en un "char"?

    Leyendo el fichero en modo binario.

  13. En una tabla, al enviar un campo booleano (Char(1) values N,S interface CheckBox) a una hoja de formulario de impresora, aparece correctamente, pero muestra un mensaje indicando que la "variable" y el "control" son incompatibles. ¿A qué puede ser debido?

    Hay que definir la variable de tipo "boolean", no del tipo de dato "boolena" (en la definición de variable en la pestaña de "values"), indicando ahí sus valores, uno por cada línea.

  14. ¿Cuál es el equivalente en Cosmos de la variable interna de MultiBase "Operation"?

    Los métodos "InEditQueryLike" y "Status".

  15. ¿Cómo podemos cambiar la página de una caja por programa?

    Con la propiedad "Page".

  16. Las funciones "EvalVar" y "AsgVar" no dan aviso o error en ejecución si la variable cuyo nombre se pasa como parámetro no existe. ¿Se puede realizar algún tipo de control al respecto?

    Efectivamente no se produce ningún aviso, pero el método devuelve verdadero o falso si la variable no existe, por lo que se puede realizar una comprobación.

  17. Al imprimir directamente al puerto con un STREAM, ¿cómo se pueden poner atributos de impresión tales como negrita, comprimido, etc.?

    Enviando directamente las secuencias de escape.

  18. ¿Se puede saber cuál es el nodo "padre" de un nodo en una lista en árbol?

    Sí, con el método "GetTreeParent".

  19. ¿Cómo se puede cargar en una "drop list" el contenido de una tabla?

    Utilizando un CURSOR y el método "AddString", o bien utilizando el método "LoadSelect".

  20. ¿Se puede trabajar en cliente-servidor a través de un router?

    Sí.

  21. ¿Cómo podemos tener dos tablas abiertas al mismo tiempo en determinados procesos?

    Hay que utilizar dos objetos de la clase "SqlServer" distintos.

  22. En un mantenimiento cabeceras-líneas queremos ver la información de la tabla de líneas cargando dicho contenido en una lista. ¿De qué forma se puede hacer?

    Utilizando el evento "RowChanged" de la tabla de cabeceras y un "LoadSelect" sobre la lista de tipo "sql" y "column list".

  23. ¿Cómo se puede seleccionar un registro de una tabla de cabecera sin que seleccione todos los registros de la tabla de líneas?

    La única forma posible es no conectando las tablas y realizando un mantenimiento manual.

  24. ¿Se puede leer el fichero de "log" de una base de datos transaccional?

    No. Lo único que se puede hacer es un «"rollforward database to "file""», donde nos aparecerán todas las instrucciones.

  25. ¿Para heredar las propiedades de un formulario, éste tiene que ser abstracto?

    No necesariamente.

  26. ¿Se puede utilizar el método "GetEnv" para leer la variable de entorno "DBHOST"?

    Sólo se puede hacer si está definida dentro del entorno del usuario, si no, es necesario utilizar el método "GetValue".

  27. ¿Cómo saber en el evento "ClickHeader" la columna donde se ha pinchado?

    Por el parámetro que recibe dicho evento.

  28. ¿Cómo convertir una base de datos a transaccional?

    Con la instrucción: start database <BD> with log in "<fichero log>".

  29. ¿Qué capacidad tiene Cosmos en cuanto a registros?

    Tiene un número ilimitado de accesos en cuanto a registros, ficheros y rowsize.

  30. Puesto que los campos numéricos no admiten edición, lo simulamos ejecutando la instrucción: "char=decimal.Using(3);". De esta forma se consigue edición, pero el campo queda ajustado a la izquierda. ¿Qué hay que hacer para ajustarlo a la derecha?

    Utilizando el método "SetColumnAlign".