Me estoy volviendo Loco

HMG en Español

Moderator: Rathinagiri

User avatar
danielmaximiliano
Posts: 2625
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Me estoy volviendo Loco

Post by danielmaximiliano »

Igual no es problema de Codificacion ya que la Tabla temporal TemPlant se carga correctamente con los datos desde otras tablas.

el problema surge con el GRID y ventanas MODAL no muestran los datos que estan en la tabla.

esa misma ventana MODAL ejecutada como MAIN los datos son mostrados correctamente.

Translate Google
Same problem is not encoding as the temporary table TemPlant load properly with data from other tables.

the problem arises with the GRID MODAL windows and no data are shown in the table.

MODAL window executed the same as MAIN data is displayed correctly.

Code: Select all

#include <hmg.ch>

Function Main
use Templant new
DEFINE WINDOW W_Imp1z    ;
   AT 10,10              ;
   WIDTH 1100 HEIGHT 650 ;
   TITLE " PLANTILLAS  " ;
   main    

    @ 50,10 GRID Grid_P1  ;
	    WIDTH  1050  ;
	    HEIGHT  400  ;
	    HEADERS        { 'Selecciona', 'Descripcion', 'Prescripcion', 'Via', 'Cant'     }  ;
	    WIDTHS         { 50          , 400          , 300           , 120  , 80         }  ;
		ROWSOURCE       "TemPlant" ;
		COLUMNFIELDS   { 'Si'        , 'Nombre'     , 'Prescribe'   , 'Via', 'Cantidad' }  ;
		EDIT ;
		VALUE          { 1 , 1 } ;
		COLUMNCONTROLS { {'TEXTBOX'  ,'CHARACTER'}  , {'TEXTBOX'    ,'CHARACTER'} , {'TEXTBOX','CHARACTER'} , ;
		                 {'TEXTBOX'  ,'CHARACTER'}  , {'TEXTBOX'    ,'NUMERIC'  ,'999'}                   } ;
		ALLOWAPPEND 
		
   @ 495, 200 BUTTON B_Agr CAPTION 'Agregar Item'    
   
   @ 510, 510 BUTTON B_Ace CAPTION 'Grabar'          

   @ 510, 635 BUTTON B_Can CAPTION 'Salir'           
END WINDOW
DefineGrid.rar
(2.5 KiB) Downloaded 197 times
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Me estoy volviendo Loco

Post by Javier Tovar »

Hola DanielMaximiliano,

No es importante, nada más le decía que muchas veces confundimos Procedimientos y funciones o se nos olvida lo que hacen.

Bueno, aquí lo que veo es que es importante el por que no muestra los datos, ya que si muestra registros pero en blanco.

Y lo que dices:
danielmaximiliano wrote:el problema surge con el GRID y ventanas MODAL no muestran los datos que estan en la tabla.

esa misma ventana MODAL ejecutada como MAIN los datos son mostrados correctamente.

Bueno ya hice la prueba con Main y Modal y no hay problema por el tipo de ventana, el problema es en la codificación.

Code: Select all

/*
* HMG Hello World Demo
* (c) 2002 Andrea M.
*/

#include "hmg.ch"

Function Main

use TemPlant  EXCLUSIVE NEW 

DEFINE WINDOW Form_1    ;
   AT 10,10              ;
   WIDTH 1100 HEIGHT 650 ;
   TITLE " PLANTILLAS  " ;
   ON INIT Modal2() ;
   MAIN     
 
END WINDOW

	CENTER WINDOW Form_1

	ACTIVATE WINDOW Form_1

Return

Function Modal2

DEFINE WINDOW Form_2    ;
   AT 10,10              ;
   WIDTH 1100 HEIGHT 650 ;
   TITLE " PLANTILLAS  " ;
   MODAL     

   
   
    @ 50,10 GRID Grid_P1  ;
	    WIDTH 1050  ;
	    HEIGHT 400  ;
	    HEADERS { 'Selecciona', 'Descripcion', 'Prescripcion', 'Via', 'Cant'}  ;
	    WIDTHS { 50, 400, 300, 120, 80} ;
		ROWSOURCE "TemPlant" ;
		COLUMNFIELDS { 'Si', 'Nombre', 'Prescribe', 'Via', 'Cantidad' } ;
		EDIT ;
		VALUE { 1 , 1 } ;
		COLUMNCONTROLS { {'TEXTBOX','CHARACTER'}, {'TEXTBOX','CHARACTER'}, {'TEXTBOX','CHARACTER'}, {'TEXTBOX','CHARACTER'}, {'TEXTBOX','NUMERIC','999'} } ;
		ALLOWAPPEND 
		
 
END WINDOW

	CENTER WINDOW Form_2

	ACTIVATE WINDOW Form_2

Return
Saludos y espero que le sirva a nuestro amigo! :)
gabrieloq
Posts: 46
Joined: Thu Jan 24, 2013 9:45 pm
Location: Bucaramanga

Me estoy volviendo Loco

Post by gabrieloq »

Hola amigos, les agradezco la critica constructiva y las acepto con agrado me voy a poner en la tarea de corregirlas.

Con repecto a la no visualizacion del contenido del grid si usamos ventana modal para leer una tabla ya llena (tambien hice la prueba) me funciono pero si usamos una tabla que previamente se le da el comando zap y posteriomente se llena, empieza a presentar error en el refresh y en la visualizacion del grid (todo en negro o no visualiza nada) ademas se pone muy lento.

No se si es error de HMG o de la manera como yo programe (si es asi que debo hacer)
User avatar
danielmaximiliano
Posts: 2625
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Me estoy volviendo Loco

Post by danielmaximiliano »

gabrieloq wrote: Con repecto a la no visualizacion del contenido del grid si usamos ventana modal para leer una tabla ya llena (tambien hice la prueba) me funciono pero si usamos una tabla que previamente se le da el comando zap y posteriomente se llena, empieza a presentar error en el refresh y en la visualizacion del grid (todo en negro o no visualiza nada) ademas se pone muy lento.
gabrieloq wrote: With repect to the non-visualization of the content of the grid if we use modal window to read an already full table (also did the test) but if I run I use a table previously given the command zap posteriomente fills, starts to have errors in visualization and refresh the grid (all black or not displayed at all) also gets very slow.
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Me estoy volviendo Loco

Post by Javier Tovar »

Hola gabrieloq,

Queriéndote ayudar a tu problema, pero me topo con que al ejecutar se borran todas las DBF y CDX... y se detiene el programa y no encuentro en que parte le dices que los borre. Trate de arreglar las rutas y todo lo pase a una carpeta, pero me ocasiona este malestar. Alguna ayuda al respecto.

Saludos.

P.D.: Lo hace al escribir "Ort" y darle <ENTER>.
gabrieloq
Posts: 46
Joined: Thu Jan 24, 2013 9:45 pm
Location: Bucaramanga

Re: Me estoy volviendo Loco

Post by gabrieloq »

Gracias por su ayuda, la secuencia es la siguiente:

1. Se pide nombre del paciente, el sistema busca el nombre del paciente y solo los datos de esta Historia seran subidas a archivos temporales (estos se crean en \Archivo\Temp nombre del archivo mas un consecutivo) se solicitan los datos y dependiendo del medico abre un ventana para pedir datos de la Historia Clinica.
2. Para ayuda de medico existen unas plantillas (medicamentos, examenes, etc mas comunes) dependiendo del paciente, selecciona uno o varios escribiendo algo en la primera columna del grid esto para evitar escribir. a pesar de esto le dejo en el boton de formula que escriba que le va a mandar. Cuando da Click en Grabar se graba en Temporales.
3. Solo se graba en el sistema cuando el usuario da click en <ACTUALIZAR> ahi paso toda la informacion de los temporales a las dbf reales.
4. Existe en \Archivo\Aquasalud un archivo .bat que borra todos los CDX y los temporales creados en \Archivo\Temp esto para tener organizado el sitema y borrar basura.
------------------------------------------------
Thanks for your help, the sequence is as follows:

1. Patient name is requested, the system searches the patient's name and only the data of this history will be uploaded to temporary files (these are created in \ File \ Temp file name plus a row) the data are required and depending on the doctor opens a window to request data from the medical record.
February. Doctor for help there are some templates (medications, tests, etc. more common) depending on the patient, select one or more writing something in the first column of the grid to avoid writing this. despite this I leave the button type of formula that you will send. When da Click Temporary Record is recorded.
March. Recorded only in the system when the user clicks on <Update> there all information step temporary to real dbf.
April. Exists in \ File \ Aquasalud a. Bat that CDX and deletes all temporary created in \ File \ Temp this to have organized the sitema and erase junk.
sorry for the bad English use goole translator
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Me estoy volviendo Loco

Post by Javier Tovar »

Hola gabrieloq,

Bueno seguimos con el error, y tu programa no se que tiene que por todos lados le pones rutas a buscar y rutas que para encontrarlas esta difícil.

Creo que seria una buena idea que le dieras una buena estructura a tu programa, porque para seguirlo esta complicado.

Sugerencia:

1.- Pon al inicio de tu programa todas las rutas que vas a utilizar.

Code: Select all

#include "hmg.ch"
#include "Dbstruct.ch"
#include "Fileio.ch"

#define DirActual   GetCurrentFolder() +"\"     //RUTA DE DIRECTORIO ACTUAL

FUNCTION MAIN()
LOCAL ....

PUBLIC  Public ccDirData  := DirActual + "Data\", .... // DIRECTORIO "Data" dentro de tu carpeta principal donde vas a poner los DBF Y CDX, por ejemplo.

PRIVATE....

   SET EXCLUSIVE OFF           // Inactivar para poder Abrir sahred New
   SET DELETE ON               // Mostrar los Eliminados
   SET DATE ITALIAN            // Formato dd-mm-yyyy
   SET CENTURY ON              // que me muestre los 4 cifras del año
   SET EXACT ON                // para poder comparar strings
   SET NAVIGATION EXTENDED     // saltar desde un textbox a otro como un "tab"
   SET EPOCH TO YEAR(DATE()) - 50
   SET LANGUAGE TO SPANISH     // que los mensajes de errores o cancelación me los muestre en castellano
   SET MULTIPLE OFF WARNING    // que el user solo pueda abrir una sola instancia de la aplicación
   SET INTERACTIVECLOSE ON     // que me pregunte cuando yo cierro la ventana
   SET BELL ON
   SET DATE FORMAT "dd/mm/yyyy"    
   SET CODEPAGE TO SPANISH

   SET DEFAULT TO ( ccDirData ) // CON ESTAS DOS LINEAS EL PROGRAMA VA A BUSCAR LOS *.DBF Y *.CDX EN ESTA RUTA
   SET PATH    TO ( ccDirData )  // Y NO TIENES QUE PONERLE NADA EN UN: USE Usuario NEW EXCLUSIVE , POR EJEMPLO.

   DEFINE WINDOW
         ................
   END WINDOW

RETURN NIL

Puedes hacer rutas para cada tipo de archivos por ejemplo, para *.BMP, *.JPG, *.MEM,... Y para buscar una imagen solo tienes que poner ccDirJPG + "MiImagen.jpg", por ejemplo.

2.- Cuando abras o creas las *.DBF y *.CDX, ábrelas todas en un solo procedimiento y de esa manera tienes en un solo lugar donde hacer modificaciones. Solo cuando sea muy necesario créalas en los procedimientos particulares.

Espero ayudarte con esto.

Saludos.
gabrieloq
Posts: 46
Joined: Thu Jan 24, 2013 9:45 pm
Location: Bucaramanga

Re: Me estoy volviendo Loco

Post by gabrieloq »

Gracias por sus sugerencia.

Con respecto a el directorio a trabajar, existe una variable pubica ( cRuta) en el programa principal rx.prg que tiene como contenido la ruta de todos los .dbf y los .cdx ("Archivo\Curarte\"), ademas existe una carpeta "\Archivo\Temp\" en donde se crean los archivos temporales (Nombre del archivo + consecutivo ejemplo "Reg001.dbf" ) estos archivos temporales son creados por la funcion CrearTempReg() que esta en admision.prg es una fiel copia del archivo que los contiene (especie de filtro) los datos exclusivos del paciente a trabajar.
Cualquier duda por favor pregunten con gusto colaborare todo con fin de solucionar este problema del grid.
--------------------------------------------------------------------
Thank you for your suggestion.

With regard to the working directory, there is a pubic variable (cRuta) in the main program whose content rx.prg path all. Dbf and. Cdx ("\Archivo\Curarte\"), there is also a folder "\Archivo\Temp\" where temporary files (filename + consecutive example "Reg001.dbf") these temporary files are created by the CrearTempReg () function that was created admision.prg is a faithful copy of the file containing them (kind of filter) exclusive patient data to work.
Any questions please ask happy with everything I will work to fix this grid.
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Me estoy volviendo Loco

Post by Javier Tovar »

Hola gabrieloq,

Me canse y no logre compilar bien tu programa, creo que lo mejor es que hagas un demo lo más pequeño que se pueda con el problema y de esa manera te podría ayudar.

Gracias y por lo mientras veo otro post!
Post Reply