FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour estructura de datos
Posts: 199
Joined: Fri Apr 18, 2008 04:21 PM
estructura de datos
Posted: Wed Sep 24, 2008 07:59 PM

Hola nuevamente a todos en el foro,

Tengo un problema actualmente estoy trabajando en una aplicacion que tiene el siguiente segmento de programaci贸n.
DEFINE STRUCT oServi
STRUCT FIELD "nofactura" INIT 0
STRUCT FIELD "fecha" INIT Space(10)
STRUCT FIELD "vendedor" INIT 0
STRUCT FIELD "marcav" INIT space(30)
STRUCT FIELD "idplaca" INIT space(30)
STRUCT FIELD "color" INIT space(30)
STRUCT FIELD "obs" INIT space(100)
STRUCT FIELD "agencia" INIT 0
STRUCT FIELD "serie" INIT space(2)
END STRUCT

Lo que me permite es trabajar una estructura de datos como si fuera una dbf por ejemplo

oServicios := TMsTable():New( oDb, "ordenserv" )
cSql := "select no_factura,fecha,id_vendedor,marcav,id_placa,color,obs,id_agencia,serie from ordenserv where "
cSql += "nit = '"+oBase:FieldGet(1)+"'"
cSql += "order by fecha desc"
if !oServicios:Open( cSql )
return( nil )
endif

oServicios:GoTop:Read()
While !oServicios:Eof()
oServi:Blank()
oServi:nofactura := oServicios:Fieldget(1)
oServi:fecha := oServicios:Fieldget(2)
oServi:vendedor := oServicios:Fieldget(3)
oServi:marcav := oServicios:Fieldget(4)
oServi:idplaca := oServicios:Fieldget(5)
oServi:color := oServicios:Fieldget(6)
oServi:obs := oServicios:Fieldget(7)
oServi:agencia := oServicios:Fieldget(
oServi:serie := oServicios:Fieldget(9)
oServi:Insert()
oServicios:Fetch()
end

oServi:GoTop()

y siquiero modificar
while !oServi:Eof()
if oServi:noFactura = 12345

oServi:marcav := "Mazda"
oServi:Save()

endif

oServi:Skip()
End

con esto lo que hago es llenra la estructura con una consulta, la cuestion es que quite varias librerias del archivo de compilacion hasta que encontre una libreria que es la que contiene esta clase para poder trabajar de esta forma, el problema es que no tengo los fuentes de esa libreria y necesito separar la aplicacion para otro segmento y no quiero compilar esta libreria.

Alguien conoce esta forma de hacer estructuras?

de antemano muy agradecido

Atentamente,
Julio Ponce

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
estructura de datos
Posted: Thu Sep 25, 2008 04:05 PM
Julio,

xHarbour te proporciona soporte de estructuras, parecidas a las que usas. Aqui tienes un ejemplo:
#include "hbstruct.ch"

function Main()

    local oServi

    STRUCTURE oServi 
       MEMBER "nofactura" INIT 0 
       MEMBER "fecha" INIT Space(10) 
       MEMBER "vendedor" INIT 0 
       MEMBER "marcav" INIT space(30) 
       MEMBER "idplaca" INIT space(30) 
       MEMBER "color" INIT space(30) 
       MEMBER "obs" INIT space(100) 
       MEMBER "agencia" INIT 0 
       MEMBER "serie" INIT space(2) 
    ENDSTRUCTURE 

    MsgInfo( "ok" )

return nil

FWH tambien proporciona soporte de estructuras pero est谩 orientado a construir estructuras para pasarlas como par谩metros a funciones en C:
#include "FiveWin.ch"
#include "struct.ch"

function Main()

    local oStruct

    STRUCT oRect
       MEMBER nLeft   AS LONG
       MEMBER nTop    AS LONG
       MEMBER nRight  AS LONG
       MEMBER nBottom AS LONG
    ENDSTRUCT

    MsgInfo( oRect:ClassName() )

return nil

De todas formas, como me comentastes, si necesitas que esas estructuras hagan m谩s cosas, lo id贸neo es que te construyas una Clase propia, salvo que encuentres los CH y PRGs que usabas.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 199
Joined: Fri Apr 18, 2008 04:21 PM
Estructura de Datos
Posted: Thu Sep 25, 2008 06:35 PM
Gracias solo con una consulta mas, me parece bien la idea de utilizar la estructura de xHarbour, pero como hago para insertar,modificar y recorrer la estructura.

de Antemano muy agradecido

Antonio Linares wrote:Julio,

xHarbour te proporciona soporte de estructuras, parecidas a las que usas. Aqui tienes un ejemplo:
#include "hbstruct.ch"

function Main()

    local oServi

    STRUCTURE oServi 
       MEMBER "nofactura" INIT 0 
       MEMBER "fecha" INIT Space(10) 
       MEMBER "vendedor" INIT 0 
       MEMBER "marcav" INIT space(30) 
       MEMBER "idplaca" INIT space(30) 
       MEMBER "color" INIT space(30) 
       MEMBER "obs" INIT space(100) 
       MEMBER "agencia" INIT 0 
       MEMBER "serie" INIT space(2) 
    ENDSTRUCTURE 

    MsgInfo( "ok" )

return nil

FWH tambien proporciona soporte de estructuras pero est谩 orientado a construir estructuras para pasarlas como par谩metros a funciones en C:
#include "FiveWin.ch"
#include "struct.ch"

function Main()

    local oStruct

    STRUCT oRect
       MEMBER nLeft   AS LONG
       MEMBER nTop    AS LONG
       MEMBER nRight  AS LONG
       MEMBER nBottom AS LONG
    ENDSTRUCT

    MsgInfo( oRect:ClassName() )

return nil

De todas formas, como me comentastes, si necesitas que esas estructuras hagan m谩s cosas, lo id贸neo es que te construyas una Clase propia, salvo que encuentres los CH y PRGs que usabas.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
estructura de datos
Posted: Thu Sep 25, 2008 08:24 PM

Julio,

Entiendo que cuando te refieres a "insertar,modificar y recorrer la estructura" de alguna forma tienes asociada esa estructura a una base de datos 贸 a un recordset de ADO, si ?

Una estructura no tiene ninguna relaci贸n con una base de datos. Es una forma de organizar la informaci贸n.

Por eso te indico que lo id贸neo es crearte la Clase que necesites en el caso de que no localices el c贸digo fuente que de la Clase que est谩s usando.

Has podido encontrar "DEFINE STRUCT" en alguno de tus ficheros CH ? Tiene que estar 贸 no podrias compilarlo. Otra opci贸n, como te indiqu茅, es que compiles con /p para que genere un fichero .ppo y dentro veamos en que se traduce ese comando.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 94
Joined: Tue Mar 28, 2006 04:09 PM
La clase se llama TArray
Posted: Thu Sep 25, 2008 09:34 PM

Hola, esa clase de la que hablas se llama TArray, si gustas mandame un correo y te la hago llegar..

Saludos

Luis Fernando Rubio Rubio
Posts: 94
Joined: Tue Mar 28, 2006 04:09 PM
Liga de Descarga TArray
Posted: Thu Sep 25, 2008 09:44 PM
Hola no se quien sea el creador de esta clase, ni me acuerdo de donde la saque, asi que solo aclaro que no es mia..

Saludos

http://www.4shared.com/file/64476829/2a ... d=f7cf9d59
" rel="noopener">
http://www.4shared.com/file/64476829/2a ... d=f7cf9d59
Luis Fernando Rubio Rubio
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
estructura de datos
Posted: Fri Sep 26, 2008 06:36 AM

With xHarbour you cann use HASH

aDati := TAssociativeArray()
aDati:c1 := "WWWW"
aDati:c2 := "eeeeee"

You cann simulate Scatter and gather of the record

//-------------------------------------------------------------------------
FUNCtion Scatter()
Local aVars := {=>}
LOcal nField := FCount()
LOcal nX := 1
FOR nX := 1 TO nField
aVars[FIELDNAME(nX)] := FieldGet(nX)
NEXT
RETURN aVars

Function Gather(aVars)
lOCAL Nx := 1

FOR Nx  := 1 TO  LEN(aVars)
        FieldPut(nX,aVArs[FIELDNAME(nX)]  )
NEXT

RETUrn TRUE

Maurizio

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
estructura de datos
Posted: Fri Sep 26, 2008 08:09 AM

Bueno, ya que ha aparecido, guard茅mosla bien para que no se pierda :-)

www.fivetechsoft.com/files/utilities/tarray.rar

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 182
Joined: Tue Oct 18, 2005 10:01 AM
estructura de datos
Posted: Mon Sep 29, 2008 07:31 PM
xHarbour te proporciona soporte de estructuras, parecidas a las que usas.


Ol谩 Antonio.

Added to Harbour (Adicionado ao Harbour ):

2008-09-29 13:11 UTC-0300 Antonio Carlos Pantaglione
<toninho@fwi.com.br>
* contrib/xhb/common.mak
* contrib/xhb/makefile
+ contrib/xhb/hbstruct.ch
+ contrib/xhb/hbstruct.prg
+ STRUCTURE / MEMBER / ENDSTRUCTURE support


Regards,

Toninho.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
estructura de datos
Posted: Mon Sep 29, 2008 09:09 PM

Toninho,

Bien! :-)

gracias,

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 199
Joined: Fri Apr 18, 2008 04:21 PM
Re: Liga de Descarga TArray
Posted: Tue Sep 30, 2008 07:00 PM
Gracias Luis fernando,


Esta clase tiene lo que necesito, y gracias tambien Antonio y por supuesto ya la tengo guardada para que no se pierda.

Atentamente,
Julio Rodrigo Ponce Hinestroza
www.suproye.com



derpipu wrote:Hola no se quien sea el creador de esta clase, ni me acuerdo de donde la saque, asi que solo aclaro que no es mia..

Saludos

http://www.4shared.com/file/64476829/2a ... d=f7cf9d59
" rel="noopener">
http://www.4shared.com/file/64476829/2a ... d=f7cf9d59
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
estructura de datos
Posted: Tue Sep 30, 2008 07:18 PM

JPonce:

Por ah铆 tambien existe una clase TPUblic(), Desconozco quien sea el autor aunque se mencionan varios nombres, OSCAR CHACON, RAY ISLAS, EDUARDO RIZZOLO, DANIEL ANDRADE, tal vez tambien te pueda servir.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion