Problema con Grid al usar una tabla

HMG en Español

Moderator: Rathinagiri

Post Reply
citro
Posts: 52
Joined: Wed Dec 22, 2010 3:45 pm

Problema con Grid al usar una tabla

Post by citro »

Tengo la siguiente grilla:

Code: Select all

#include "hmg.ch"

function IInsp( q,frm,txt )

DEFINE WINDOW FrmInspsuel ;
   AT 0,0 ;
   WIDTH 700 ;
   HEIGHT 500 ;
   TITLE " Consultas " ;
   MODAL ;
   ON INIT {|| FrmInspSuel.Grd_TipoCont.value:={1,1} } ;
   ON RELEASE {|| insp->( DbCloseArea() ) }

  _use( CambiaDire() +"tipocont","insp",,.f.,CambiaDire() +"tipocont" )

  titulo := "Tipo de contratación"

  DEFINE GRID Grd_TipoCont
    ROW 10
    COL 10
    WIDTH 680
    HEIGHT 430
    HEADERS { "Código","Nombre" }
    WIDTHS { 90,140}
    ROWSOURCE "Insp"
    COLUMNFIELDS { 'codigo','nombre' }
    CELLNAVIGATION .F.
  END GRID

END WINDOW

CENTER WINDOW FrmInspSuel
ACTIVATE WINDOW FrmInspSuel

return Nil
Por alguna razón cuando cierro el formulario me aparece el siguiente error:

Error DBCMD/2001 Workarea not in use DbGoto

En los ejemplos que hay acerca de uso de grilla con tablas, no veo que ninguno cierre las tablas al cerrar el formulario. Si en este ejemplo dejo la tabla abierta no me genera el error, pero me parece que lo correcto es que cuando uno cierra un formulario se cierren las tablas que fueron abiertas.

I have the following grid:

Code: Select all

#include "hmg.ch"

function IInsp( q,frm,txt )

DEFINE WINDOW FrmInspsuel ;
   AT 0,0 ;
   WIDTH 700 ;
   HEIGHT 500 ;
   TITLE " Consultas " ;
   MODAL ;
   ON INIT {|| FrmInspSuel.Grd_TipoCont.value:={1,1} } ;
   ON RELEASE {|| insp->( DbCloseArea() ) }

  _use( CambiaDire() +"tipocont","insp",,.f.,CambiaDire() +"tipocont" )

  titulo := "Tipo de contratación"

  DEFINE GRID Grd_TipoCont
    ROW 10
    COL 10
    WIDTH 680
    HEIGHT 430
    HEADERS { "Código","Nombre" }
    WIDTHS { 90,140}
    ROWSOURCE "Insp"
    COLUMNFIELDS { 'codigo','nombre' }
    CELLNAVIGATION .F.
  END GRID

END WINDOW

CENTER WINDOW FrmInspSuel
ACTIVATE WINDOW FrmInspSuel

return Nil
For some reason when I close the form I get the following error:

Error DBCMD/2001 Workarea not in use DbGoto

In the examples what about grid use with tables, I do not see any end tables to close the form. If in this example I open the table does not generate the error, but I think it is right that when you close a form to close the tables were open.
Antonio
Sistemas
Resipol
citro
Posts: 52
Joined: Wed Dec 22, 2010 3:45 pm

Problema con Grid al usar una tabla

Post by citro »

Ahí encontré el error, pero o bien es un bug o hay algo que estoy haciendo mal y me gustaría saber que es:
Hice la siguiente prueba: tomé el archivo DEMO.PRG que está en la carpeta H.M.G.3.0.39\SAMPLES\GRID.35

Code: Select all

/*
* HMG Virtual Grid Demo
* (c) 2009 Roberto Lopez
*/

#include "hmg.ch"

Function Demo35()

Local aValue := { Nil , Nil }


	* We will work with multiples index.
	* It will be better to work with an unique 'OrderBag' file.
	* So, we will use DBFCDX RDD.

	REQUEST DBFCDX , DBFFPT
	RDDSETDEFAULT( "DBFCDX" )

	USE TEST

	INDEX ON CODE	TAG A-CODE	TO TEST		ASCENDING
	INDEX ON FIRST	TAG A-FIRST	TO TEST		ASCENDING
	INDEX ON LAST	TAG A-LAST	TO TEST		ASCENDING
	INDEX ON BIRTH	TAG A-BIRTH	TO TEST		ASCENDING

	INDEX ON CODE	TAG D-CODE	TO TEST		DESCENDING
	INDEX ON FIRST	TAG D-FIRST	TO TEST		DESCENDING
	INDEX ON LAST	TAG D-LAST	TO TEST		DESCENDING
	INDEX ON BIRTH	TAG D-BIRTH	TO TEST		DESCENDING

	SET ORDER TO TAG A-CODE

	GO TOP

	* Grid Column Controls Definitions

	aCtrl_1 := {'TEXTBOX'	,'NUMERIC','9999999999'}
	aCtrl_2 := {'TEXTBOX'	,'CHARACTER'}
	aCtrl_3 := {'TEXTBOX'	,'CHARACTER'}
	aCtrl_4 := {'DATEPICKER','UPDOWN'}
	aCtrl_5 := {'CHECKBOX'	,'Yes','No' }
	aCtrl_6 := {'EDITBOX' }

	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 800 ;
		HEIGHT 510 ;
		TITLE 'Multiple Index Test' ;
		MAIN 


		DEFINE MAIN MENU 
			POPUP 'Test'
				ITEM 'Order Col.1 Ascending' ACTION Order1Ascending()
				ITEM 'Order Col.2 Ascending' ACTION Order2Ascending()
				ITEM 'Order Col.3 Ascending' ACTION Order3Ascending()
				ITEM 'Order Col.4 Ascending' ACTION Order4Ascending()
				ITEM 'Order Col.1 Descending' ACTION Order1Descending()
				ITEM 'Order Col.2 Descending' ACTION Order2Descending()
				ITEM 'Order Col.3 Descending' ACTION Order3Descending()
				ITEM 'Order Col.4 Descending' ACTION Order4Descending()
			END POPUP
		END MENU


		@ 10,10 GRID Grid_1 ;
			WIDTH 770 ;
			HEIGHT 400 ;
			HEADERS {'Column 1','Column 2','Column 3','Column 4','Column 5','Column 6'} ;
			WIDTHS {140,140,140,100,100,100};
			VALUE { 1 , 1 } ;
			ROWSOURCE "Test" ;
			COLUMNFIELDS { 'Code' ,  'First' , 'Last' ,  'Birth' , 'Married' , 'Bio' } 

		
	END WINDOW

	CENTER WINDOW Form_1

	ACTIVATE WINDOW Form_1

Return



Procedure Order1Ascending

	SET ORDER TO TAG A-CODE IN Test

	Form_1.Grid_1.Refresh

Return

Procedure Order2Ascending

	SET ORDER TO TAG A-FIRST IN Test

	Form_1.Grid_1.Refresh

Return

Procedure Order3Ascending

	SET ORDER TO TAG A-LAST IN Test

	Form_1.Grid_1.Refresh

Return

Procedure Order4Ascending

	SET ORDER TO TAG A-BIRTH IN Test

	Form_1.Grid_1.Refresh

Return

Procedure Order1Descending

	SET ORDER TO TAG D-CODE IN Test

	Form_1.Grid_1.Refresh

Return

Procedure Order2Descending

	SET ORDER TO TAG D-FIRST IN Test

	Form_1.Grid_1.Refresh

Return

Procedure Order3Descending

	SET ORDER TO TAG D-LAST IN Test

	Form_1.Grid_1.Refresh

Return

Procedure Order4Descending

	SET ORDER TO TAG D-BIRTH IN Test

	Form_1.Grid_1.Refresh

Return
y lo único que hice fue modificar lo siguiente:

Code: Select all

DEFINE WINDOW Form_1 ;
   AT 0,0 ;
  WIDTH 800 ;
  HEIGHT 510 ;
  TITLE 'Multiple Index Test' ;
  MODAL ;
  ON RELEASE {|| DbCloseAll() }
Con esa modificación me arroja el mismo error que comenté al inicio del post, o sea:

Error DBCMD/2001 Workarea not in use DbGoto

Este módulo lo llamo desde otro principal, desde un ítem de menú, o sea que ya tengo un módulo principal, y la ventana de este módulo la defino como MODAL, porque en el módulo que desarrollé necesito que el usuario elija un ítem de esa grilla pero sin salir hasta que se seleccione algo o se cierre el formulario.
Bueno, como dije al principio, no se si es un bug, o hay algo que por ahí que está mal dentro del desarrollo propuesto.
Antonio
Sistemas
Resipol
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Problema con Grid al usar una tabla

Post by Pablo César »

Hola Antonio, no sé si resolviste el problema contornandolo. Pero de facto existe (hasta la version HMG 3.2) un bug. Para solucionarlo fijate en este tópico:

http://hmgforum.com/viewtopic.php?p=31282#p31282
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Post Reply