Alaska Software Inc. - me falto un archivo
Username: Password:
AuthorTopic: me falto un archivo
Gustavo M. Burgosme falto un archivo
on Mon, 15 Nov 2010 21:23:30 -0300
-- 
Gustavo M. Burgos
Rivadavia 278
Pcia Roque Saenz Pea - Chaco
Argentina
Fijo 03732-420635
Movil 03732-15408559
Burmanspm@arnet.com.ar 




CLIENTE.PRG
Jose Luis OterminRe: me falto un archivo
on Mon, 15 Nov 2010 21:33:27 -0300
Gustavo,

Voy a pensar que lees los pensamientos.
Carlos (de Ing en Sistemas (NQN)) necesita justito un ejemplo de cmo 
imprimir un listado en formato grfico.

Muchas gracias por tus aportes.
No te das una idea de lo valiosos.

Saludos desde Buenos Aires

Jos Luis Otermin
Alaska Software
Soporte Tcnico
--------------------------------------------------------------------
Foros de Usuarios: news://news.alaska-software.com
Pgina Web: http://www.alaska-software.com
Base de Conocimientos en la Web: http://www.alaska-software.com/kbase.shtm
Oficina en Europa: Fax: +49 (0) 61 96 - 77 99 99 23
Oficina en EEUU: Fax: +1 (646) 218 1281
--------------------------------------------------------------------



"Gustavo M. Burgos" <Burmanspm@arnet.com.ar> escribi en el mensaje 
news:3413daf3$14e30f09$1cae4@news.alaska-software.com...
>
>
> -- 
> Gustavo M. Burgos
> Rivadavia 278
> Pcia Roque Saenz Pea - Chaco
> Argentina
> Fijo 03732-420635
> Movil 03732-15408559
> Burmanspm@arnet.com.ar
>
>
Ingenieria de Sistemas(NQN)Re: me falto un archivo
on Tue, 16 Nov 2010 14:16:13 -0300
Muchachos...sigo con atencion los msj y las exposiciones, por ahora estoy 
complicado con el tiempo, pero en la primera que pueda (me pongo en contacto 
con J.Otermin) y veo de ejecutar el cod. para ver como se comporta..(no se 
olviden que estoy haciendo mis primeras armas con xbase)
salu2
Carlos


==============================
 INGENIERIA DE SISTEMAS
    Desarrollos Informaticos
             Neuquen
Tel . 0299 4438604 Rotativa
   Empresa Integrante del CINP
Cluster Infotecnologico Neuquino Patagonico
==============================
<Jose Luis Otermin> escribi en el mensaje 
news:2c7579bd$215463c7$1cae3@news.alaska-software.com...
> Gustavo,
>
> Voy a pensar que lees los pensamientos.
> Carlos (de Ing en Sistemas (NQN)) necesita justito un ejemplo de cmo 
> imprimir un listado en formato grfico.
>
> Muchas gracias por tus aportes.
> No te das una idea de lo valiosos.
>
> Saludos desde Buenos Aires
> -- 
> Jos Luis Otermin
> Alaska Software
> Soporte Tcnico
> --------------------------------------------------------------------
> Foros de Usuarios: news://news.alaska-software.com
> Pgina Web: http://www.alaska-software.com
> Base de Conocimientos en la Web: http://www.alaska-software.com/kbase.shtm
> Oficina en Europa: Fax: +49 (0) 61 96 - 77 99 99 23
> Oficina en EEUU: Fax: +1 (646) 218 1281
> --------------------------------------------------------------------
>
>
>
> "Gustavo M. Burgos" <Burmanspm@arnet.com.ar> escribi en el mensaje 
> news:3413daf3$14e30f09$1cae4@news.alaska-software.com...
>>
>>
>> -- 
>> Gustavo M. Burgos
>> Rivadavia 278
>> Pcia Roque Saenz Pea - Chaco
>> Argentina
>> Fijo 03732-420635
>> Movil 03732-15408559
>> Burmanspm@arnet.com.ar
>>
>>
>
>
Jose Luis OterminRe: me falto un archivo
on Thu, 25 Nov 2010 22:25:16 -0300
Hola Gustavo,

Estuve mirando el cdigo fuente que enviaste y me parece oportuno hacer
algunos comentarios.
Tambin comentar los cdigos que enviaron otros colegas.
La idea es aprender y creo que nada mejor que un ejemplo concreto como ste.

Has codificado:

//------------------------------------------------//
 Etiqueta
//------------------------------------------------//
  oXb1 := Xbpstatic():new( drawingArea, , {06,110}, {100,20} )
   oXb1:caption := "Cd.Actual"
   oXb1:clipParent := .T.
   oXb1:clipSiblings := .T.
   oXb1:create()
//------------------------------------------------//
 Campo para ingreso de datos
//------------------------------------------------//
   ocod:= XbpGET():new( drawingArea, , {110,110}, {104,20}, { {
XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
   ocod:clipSiblings := .T.
   ocod:dataLink := {|b| iif(b==nil, m_codian, m_codian := b ) }
   ocod:editable := .f.
   ocod:create()
   ocod:picture:= "999999"

//------------------------------------------------//

Y podrs advertir que se codifica mucho para hacer poco.
Este cdigo puede resumirse en dos:

PONER ETIQUETA "Cd.Actual"
INGRESAR 6 CARACTERES EN m_codian

Para eso hemos creado dos funciones (publicadas en cdigo fuente en el
ABM-GUI):

DOSSay() y DOSGet()

Este tipo de funciones reciben el nombre de envoltorio (o wrapper, en
ingls).
Con funciones de envoltorio (ver el cdigo fuente de ABM-GUI) se puede
ocultar la complejidad de la programacin orientada al objeto.
Sin embargo, una de las grandes ventajas (descripta impecablemente por Jorge
Borlando en su mensaje de respuesta a la convocatoria "Cmo convertir en una
Clase los procedimientos sueltos") es la de contar con variables pblicas
con tiempo de vida limitado y alcance acotado.

Cmo es el tema de las variables PUBLICAS con tiempo de vida limitado?
Las propiedades de un objeto son accesibles a todos sus mtodos durante el
tiempo de vida del mismo.
Al momento en que el objeto es destrudo en memoria, sus propiedades tambin
lo sern.

Un objeto permite que sus mtodos accedan a sus propiedades con slo
escribir:

#define PI    3.14159
METHOD Circulo:Perimetro()
RETURN  ( PI * ::nRadio)

En ese cdigo se ha ejecutado un clculo entre una constante y una propiedad
del objeto Circulo.

Las funciones de envoltorio ocultan la complejidad de la Programacin
Orientada al Objeto (POO), pero la POO evita tener que andar liberando
variables, crendolas o pasndolas por referencia donde sern utilizadas.
Tambin elude el inconveniente de superponer nombres ya utilizados.

Podra escribir varios tomos sobre las virtudes de la POO, pero la idea aqu 
es aprovechar lo que estbamos haciendo bien y continuar, pero hacindolo 
mejor.

Las funciones de envoltorio ocultan de la vista la complejidad del cdigo 
POO y al mismo tiempo siguen los preceptos del Anlisis Estructurado Moderno 
(Edward Yourdon, Ed. Prentice Hall ISBN 968-880-303-0).

En ese libro se indica que, siempre que sea posible, resuelva el problema en 
otro procedimiento.
Tambin se sintetiza que, si un mismo cdigo est escrito en dos lugares, es 
incorrecto que est en ambos.

Para comprender mejor estos conceptos, se sugiere mirar el procedimiento 
MAIN.
Se observar que se difiere la codificacin que opera con datos y objetos.
Este diferimiento tiene el objeto de simplificar la escritura de programas y 
que stos se ajusten al anlisis.
En el caso de los dos lugares (mencionado en la segunda oracin), se intenta 
que el cdigo que realiza una tarea se encuentre bajo un solo rtulo (un 
solo nombre de funcin o procedimiento).

Esto apareja la ventaja de poder leer el cdigo e inclusive acotar el lugar 
donde se producir un error.
Leamos a nuestro colega Jorge:

"Otro ejemplo que me ha servido mucho es agrupar todas las variables de
memoria y/o funciones genricas (como clculo de impuestos en el precio de
venta, calculo de intereses en el precio de venta, etc..)
En este caso a la hora de buscar una variable o agregar una, inicializarla o
mantener su valor dentro de la aplicacin se hace mucho ms fcil, ya que
como se desprende que est dentro de la clase voy a buscarla ah y no tengo
que ver en que parte del programa est definida (por supuesto esto se hace
fcil cuando uno debe acceder al programa despus de 2 aos de no
tocarlo...)
"
Entonces, retomando lo que se deca, el propsito de ABM-GUI es tambin 
comprender cmo se envuelve un objeto para aislar su operacin y evitar que 
su cdigo operacional nos complique nuestro cdigo fuente.

Seguiremos discutiendo cmo podemos llegar a un cdigo donde inclusive se 
"envase" funcionalidad.

Espero que este texto sea de utilidad

Jos Luis Otermin
Alaska Software
Soporte Tcnico
--------------------------------------------------------------------
Foros de Usuarios: news://news.alaska-software.com
Pgina Web: http://www.alaska-software.com
Base de Conocimientos en la Web: http://www.alaska-software.com/kbase.shtm
Oficina en Europa: Fax: +49 (0) 61 96 - 77 99 99 23
Oficina en EEUU: Fax: +1 (646) 218 1281
--------------------------------------------------------------------