PDA

Ver la Versión Completa : Diferenciar ámbito del programa


ramiromd90
26-06-2013, 03:03:38
Buenas, tal vez el título no es demasiado descriptivo, pero me encuentro en la siguiente situación.
Estoy realizando una aplicación (mi primer desarrollo en Delphi). La aplicación le permite al usuario crear nuevos proyectos. Los proyectos, poseen estudios. Por ende, el usuario puede crear estudios a partir de datos ingresados por teclado mediante un formulario de carga de datos.
A su vez, el usuario puede abrir un proyecto existente y modificar o agregar datos de algún estudio asociado al proyecto. Por lo cual, los formularios de carga de datos deberían visualizarse con la información almacenada sobre el estudio.
Mi duda es, como puedo diferenciar el escenario en el que se encuentra el programa, es decir, si se esta trabajando con un proyecto nuevo o con uno existente, de modo que puede cargar los formularios según corresponda. Se entiende?.
Vengo de años con PHP, y realizar esto es cosa de medio segundo. Pero en este nuevo mundo, no se me ocurre la manera de lograrlo.
Desde ya, muchas gracias.

ecfisa
26-06-2013, 05:47:20
Mi duda es, como puedo diferenciar el escenario en el que se encuentra el programa, es decir, si se esta trabajando con un proyecto nuevo o con uno existente, de modo que puede cargar los formularios según corresponda.

Hola ramiromd90.

El planteo es extremadamente genérico como para dar una resupuesta precisa... Pero básicamente se resume a verificar si un proyecto existe o no. Si existe, nos encontramos frente a un ingreso o modificación de un nuevo estudio, de modo contrario se ante el ingreso de un nuevo proyecto.

Se podrían dar respuestas mas específicas si te explayaras en la información sobre el asunto.

Por ejemplo:

¿ Donde y como se almacenan los proyectos y estudios ?
¿ Usas RDBMS para el manejo y almacenamiento de los datos ? ¿ Cuál ?
¿ Usas componentes para conectarte con los datos ? ¿ Cuales ?
¿ Que datos básicos contiene o conforman un proyecto ?
¿ Que datos básicos contiene o conforman un estudio ?
¿ Como están establecidas la o las relaciónes entre proyectos y estudios ?
...


Saludos. :)

Casimiro Notevi
26-06-2013, 10:27:50
Vengo de años con PHP, y realizar esto es cosa de medio segundo. Pero en este nuevo mundo, no se me ocurre la manera de lograrlo.

Pues no se entiende nada de lo que quieres, no es excusa el lenguaje, deberías explicar tal y como dice ecfisa ^\||/

ramiromd90
26-06-2013, 20:29:22
Ecfisa, gracias por la respuesta. Te comento, los proyectos se guardan en una base de datos. Uso como RDBMS Firebird.
El tema es el siguiente, cuando un usuario abre un proyecto, debería lograr tener (¿una variable global?) con el id del proyecto o false en caso de que el proyecto sea nuevo.
Entonces, cuando abro el formulario de algún estudio, podría preguntar por ese valor que comentaba en el párrafo anterior. Y cargar o no los datos.
Mi duda en si, no es como manejar la situación, sino como puedo establecer un "checkpoint" que indique si el proyecto es nuevo o no.
Saludos.

Pues no se entiende nada de lo que quieres, no es excusa el lenguaje, deberías explicar tal y como dice ecfisa ^\||/

¿Excusas?, ¿lenguaje?, ¿eh?.

ramiromd90
26-06-2013, 20:49:54
Se me ocurrió, tal vez, al momento de abrir un proyecto, generar un archivo binario con información básica del mismo (un temporal).
Al abrir el formulario de un estudio, consultar al archivo binario, para determinar si el proyecto es nuevo o existente.
No sé si es la mejor forma, pero me puede servir. Si, entendieron mi caso, y conocen otro método de lograr lo que busco, bienvenido sea.
Saludos.

ecfisa
26-06-2013, 20:56:42
Hola ramiromd90.

No termino de entender la dinámica del proceso: ¿ De que modo elige el usuario crear un nuevo proyecto o abrir uno existente ? ¿ O esta decisión se produce de forma automática y es transparente para el usuario ?


Saludos :)

ramiromd90
27-06-2013, 02:25:53
Hola ramiromd90.
No termino de entender la dinámica del proceso: ¿ De que modo elige el usuario crear un nuevo proyecto o abrir uno existente ? ¿ O esta decisión se produce de forma automática y es transparente para el usuario ?


Sin ánimos de ofender, pero creo que ambos sabemos que la manera que tiene el usuario es mediante una opción. No me he puesto a pensar en la trivialidad si hacerlo al iniciar la aplicación (como en Cincom Visualworks Smalltalk) o que la aplicación abra de una y el usuario mediante el menú "Archivo" elija "Proyecto nuevo" o "Abrir proyecto existente", al estilo Office.
La lógica debería ser independiente a la vista.

Saludos.

ecfisa
27-06-2013, 04:06:43
Hola.
pero creo que ambos sabemos que la manera que tiene el usuario es mediante una opción la manera que tiene el usuario es mediante una opción.
No, en realidad yo me acabo de enterar.

Entonces es muy simple, como te dije al principio se reduce a verificar la existencia o no de un proyecto luego de que el usuario ingrese el identificador.

A modo de ejemplo, una función que devuelve True si el proyecto existe en la tabla PROYECTOS o False de otro modo:

function ProyectExists(const Id: Integer): boolean;
begin
with IBQuery do
begin
Close;
SQL.Text := 'SELECT * FROM PROYECTOS WHERE ID = :PID';
ParamByName('PID').AsInteger :=Id;
Open;
Result := not IsEmpty;
Close;
end;
end;


Saludos. :)

nlsgarcia
27-06-2013, 09:01:36
ramiromd90,


...mi primer desarrollo en Delphi...los proyectos se guardan en una base de datos...


Te sugiero revisar:

Delphi Basics : http://www.delphibasics.co.uk/

Build Data-Aware Applications with Delphi : http://delphi.about.com/od/database/u/delphi_database_programming.htm

La Cara Oculta de Delphi 4 : http://terawiki.clubdelphi.com/Delphi/Manuales/?download=La_Cara_Oculta_De_Delphi_4_pdf_.zip

Espero sea útil :)

Nelson.