FoxPro/Visual FoxPro - Actualizacion de un grid

 
Vista:
sin imagen de perfil

Actualizacion de un grid

Publicado por luis (6 intervenciones) el 26/09/2016 07:14:01
buenas noches . especialistas .

estoy iniciándome en el campo de la programación . tengo un pequeño problema que se que ustedes me podrán ayudar.
tengo un grid de visualizar los registros guardados de una tabla llamada finanzap. el problema se me presenta al momento de guardar un registro nuevo ya que no se visualiza en el grid ninguno de los registros guardado después de insertar el registro nuevo,

nombre del grid=grdfinanzap
recordsource=finanzap
recordsource type= 1-alias

codigo boton guardar
SELECT finanzap

APPEND BLANK
replace finanzap.idoper WITH thisformset.form2.text1.Value
replace finanzap.operador WITH thisformset.form2.text2.Value
replace finanzap.nrorecibo WITH thisformset.form2.text22.Value
REPLACE finanzap.fecha WITH thisformset.form2.text23.Value
replace finanzap.cedcho WITH thisformset.form2.text3.Value

thisformset.form1.grdFinanzap.REFRESH
THISFORM.REFRESH

problema: no aparece en el grid nada ni lo anterior guardado queda en blanco y tengo que salir y ejecutar nuevamente y si aparece la información .


agradeciendo toda su ayuda y valoro el tiempo que le hago perder al responderme este pregunta.

soy nuevo no me juzguen, por favor

gracias y muchas bendiciones
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Actualizacion de un grid

Publicado por Fidel José (657 intervenciones) el 26/09/2016 15:06:40
Recomendaciones:
1) No uses formset. Es un engorro inútil. Cuando lees el manual, parece que los formset son algo importante y necesario. Ambas cosas son absolutamente falsas. El día que realmente necesites manejar un conjunto de formularios, podrás crear una clase custom (por ejemplo) para coordinar el funcionamiento de los formularios que necesites.

2) Evita en lo posible APPEND BLANK + REPLACE. Usá INSERT INTO
1
2
3
4
5
6
7
8
9
10
11
12
INSERT INTO finanzap ;
	(Idoper,;
	Operador,;
	Nrorecibo,;
	Fecha,;
	Cedcho);
VALUES ;
	(thisformset.form2.text1.Value,;
	thisformset.form2.text2.Value,;
	thisformset.form2.text22.Value,;
	thisformset.form2.text23.Value,;
	thisformset.form2.text3.Value)

3) Modifica el name de los textbox para darle un nombre significativo:
Txt_Id, Txt_Nombre, Txt_Calle, Txt_Ciudad, etc

4) Si tienes un botón que está sobre un formulario, no empieces la referencia de objeto con Thisformset.form2.etc. La referencia correcta es This.parent.
1
2
3
4
5
6
7
8
9
10
11
12
INSERT INTO finanzap ;
	(Idoper,;
	Operador,;
	Nrorecibo,;
	Fecha,;
	Cedcho);
VALUES ;
	(this.parent.text1.Value,;
	this.parent.text2.Value,;
	this.parent.text22.Value,;
	this.parent.text23.Value,;
	this.parent.text3.Value)
Presta atención a este punto, pues puede ser parte de tu problema actual.

5) No utilices el Name de los form para nada de programación. El único valor que puede tener es para del debugger o el manejo de errores, para indicarte en qué form se produce un problema. En ese sentido, igual que a los otros objetos, debes ponerles un nombre significativo, descriptivo de la tarea que hacen.
Cuando se instancia un formulario, si lo haces desde un Command de Menu, tomará el nombre del scx correspondiente como referencia de objeto. Si el Name del formulario es identico al JustStem() del scx, la referencia de objeto coincide con el Name del form.
Cuando un formulario se instancia desde cualquier otro lugar (procedure, method, event, etc) la referencia de objeto es interna y no tiene nada que ver con el Name del formulario, ni con el nombre del archivo binario.
Para quedarte con la referencia de objeto, en el caso en que la necesites (por ejemplo, de un formulario principal tipo ShowWindow=2);
RELEASE oPpal
PUBLIC oPPal
DO FORM FrmPrincipal NAME oPPal
Luego, cualquier objeto o método del formulario FrmPrincipal podrá ser manejado con oPpal.TalMetodo, oPPal.TalObjeto
Sin embargo, esta metodología se debe utlizar con absoluta parsimonia. Visual Fox no dirá nada si en cualquier lado del sistema escribes:
oPpal = 0
Pero eso te hará perder la referencia de objeto. Por lo tanto, si uno abunda en este tipo de situaciones, también abundará en errores (que también se vuelven difícilies de encontrar).

6) Antes de continuar presta acabada atención a estos temas:
a) Referencias de objetos en Visual Fox Pro
b) Utilización de parámetros
c) Alcance de las variables
d) Clases visuales y no visuales. Antes de avanzar demasiado o a la hora de encarar un proyecto, piensa en tener desarrolladas tus propias clases form, textbox, label, editbox, listbox, combobox, spinner, grid, etc. A las clases les puedes agregar todas las propiedades y métodos que necesites para su funcionalidad y luego será solo colocarlas en el lugar indicado.
Piensa en un sistema que tenga 2 o 3 forms de clase (algunas propiedades son modificables solo en tiempo de diseño) y todos los desarrollos se hacen en clases Container.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar