Ayuda con una duda en xbrowse porfis !!

Ayuda con una duda en xbrowse porfis !!

Postby AIDA » Tue May 14, 2013 5:13 pm

Hola

Como están espero que muy bien :D

tengo la siguiente pregunta :idea:


como debo manejar la edición de datos directamente en un xbrowse en RED :?:

Gracias por adelantado :mrgreen:


Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 879
Joined: Fri Jan 12, 2007 8:35 pm

Re: Ayuda con una duda en xbrowse porfis !!

Postby RodolfoRBG » Tue May 14, 2013 8:41 pm

Hola Aida,

No esta muy detallada tu pregunta por lo que me atrevo a decirte solo lo siguiente:

Mas que trabajar el xbrowse en red, lo importante es abrir los archivos preparados para ser usados red. Esto es, abrirlos con un alias diferente y dependiendo de tus necesidades abrirlos de forma exclusiva (para que no los pueda abrir otro usuario de la red) o de forma compartida y bloquear solo el registro que vas a editar para que otro no lo pueda modificar hasta que lo desocupes.

Espero que sea lo que necesitabas.
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Ayuda con una duda en xbrowse porfis !!

Postby joseluisysturiz » Tue May 14, 2013 9:06 pm

Aida, si es lo que creo que quieres saber, aparte de lo que ya te dijo el colega radolfo. te explico:

- como usas DBF debes estar pendiente de los montos que se van facturando en cada estacion, lo ideal seria una tabla temporal para que controle el saldo disponible, esta deberia tener todos los productos con el saldo real menos el comprometido para que todas las estaciones lo lean, ejmp.

si un producto su existencia es de 100 y en una estacion estan procesando 10, aunque no este finalizada la factura, cuando otra estacion este facturando el mismo productos, no le puede dar informacion que hay 100, sino 90, porque ya 10 estan comprometidos, por eso te digo lo de una tabla general temporal que todas las estaciones pasen por ella al momento de facturar y vayan rebajando o aumentando, sea que este en facturacion o que no la terminen(anulen), o eliminen el producto de la lista que estan facturando, es un juego entre las estaciones, el saldo real y el saldo comprometido, bueno, es una idea y como yo lo hago...nose si algun otro colega tendra alguna manera mas eficiente y facil de hacer, si es asi, bienvenida sea.

espero te sea de ayuda mi idea y sea lo que necesitas, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Ayuda con una duda en xbrowse porfis !!

Postby MarioG » Wed May 15, 2013 1:44 pm

RodolfoRBG wrote:Hola Aida,
... lo importante es abrir los archivos preparados para ser usados red. Esto es, abrirlos con un alias diferente y ...

Rodolfo;
y como determino, desde una 2da PC que una DBF ya está abierta y quiero asignarle un nuevo Alias?
Consulto con Used() y Select() (desde una 2da PC, estando la 1ra con la app en ejecución) pero me duvelve el mismo Alias (y Select) que la primera
La consulta la hago inmediatamente luego del USE...SHARED

gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Ayuda con una duda en xbrowse porfis !!

Postby RodolfoRBG » Wed May 15, 2013 4:26 pm

Don Mario,

Mas que ver si la DBF esta ya abierta, hay que ver si el alias ya esta siendo usado. Lo que hago yo es asignarle un nuevo alias cada vez que abro un DBF. Por ejemplo:
Code: Select all  Expand view
I:=0 ; Archivo:="ANIMALES.DBF" ; NomArch:="ANIMALES" ; AliasAA:=""
DO WHILE .T.
 I+=1 ; DBSELECTAREA(I) //Se posiciona en el area correspondiente
 IF EMPTY(ALIAS()) //Si esta vacia
  AliasAA:=NomArch+STRZERO(I,3,0) ; EXIT //Al nombre del archivo le agrega el numero del area disponible
 ENDIF
ENDDO
//DBUSEAREA(lNuevaArea,cDriver,cNombre,cAlias ,lShared,lReadOnly)
DBUSEAREA  (.T.             ,           ,Archivo,AliasAA,.T.       ,.F. )
 
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Ayuda con una duda en xbrowse porfis !!

Postby rolando » Wed May 15, 2013 6:40 pm

Hola,

Como decimos por acá: "meto la cuchara".

Utilizo, desde que lo vi en algún post, la función cGetNewAlias() que cada vez que se pasa por la apertura le asigna un nuevo valor al alias. En el caso del ejemplo será travva00, travva01, etc.

También, desde que me lo indicó Antonio, uso la clase Tdatabase lo cual simplifica mucho la programación (por lo menos para mi) porque además de tratar a la DBF como un objeto, se encarga de los bloqueos ella misma (aunque pueden ser incluidos por uno también).

Ejemplo de cGetNewAlias():

Code: Select all  Expand view
local cTrabajos:=cGetNewAlias('travva')

if lChDir(cCarpetaInstalacion) .and. file(".\DBF's\TRABAJOS.DBF")
        use ".\DBF's\TRABAJOS.DBF" shared new alias (cTrabajos)                            
             (cTrabajos)->(ordsetfocus(1) , dbgotop())                      
   else
         msginfo("Lo siento, no puedo acceder al directorio de trabajo")
         return nil
endif


Saludos.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: Ayuda con una duda en xbrowse porfis !!

Postby MarioG » Thu May 16, 2013 12:48 pm

Gracias por las respuestas!
Rolando, tengo presente el uso cGetNewAlias() para generar un nuevo alias; gracia nuevamente
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Ayuda con una duda en xbrowse porfis !!

Postby AIDA » Thu May 16, 2013 4:34 pm

Hola

Esta Classe Tdatabase funciona con Xharbour ?

donde encuentro información para usarla o ejemplos :?:

Gracias :D

Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 879
Joined: Fri Jan 12, 2007 8:35 pm

Re: Ayuda con una duda en xbrowse porfis !!

Postby AIDA » Thu May 16, 2013 4:43 pm

MarioG wrote:
RodolfoRBG wrote:Hola Aida,
... lo importante es abrir los archivos preparados para ser usados red. Esto es, abrirlos con un alias diferente y ...

Rodolfo;
y como determino, desde una 2da PC que una DBF ya está abierta y quiero asignarle un nuevo Alias?
Consulto con Used() y Select() (desde una 2da PC, estando la 1ra con la app en ejecución) pero me duvelve el mismo Alias (y Select) que la primera
La consulta la hago inmediatamente luego del USE...SHARED

gracias



Muchas gracias ya estoy leyendo lo que comentan aquí :D

si es mi caso dos programas en red que abren una misma DBF :)
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 879
Joined: Fri Jan 12, 2007 8:35 pm

Re: Ayuda con una duda en xbrowse porfis !!

Postby RodolfoRBG » Thu May 16, 2013 5:11 pm

Hola guapa,

Si trabaja con xHarbour y al definir la base de datos como un objeto (ejemplo oDBF), es el equivalente (en parte) a crear un arreglo con los contenidos de cada campo (oDBF:LOAD()) y manipularlos para al final, si asi lo decides, grabarlos en la DBF (oDBF:SAVE()). Ejemplo:

Code: Select all  Expand view
USE MiDBF //Abres tu DBF
DATABASE oDBF //Creas el objeto
oDBF:DBRLOCK() //Bloqueas el registro que vas a trabajar para que nadie mas lo pueda usar
oDBF:LOAD() //Pasa todos los campos al objeto oDBF
oDBF:Clave:="001" //Le asignas un valor temporal al campo MiDBF->Clave
oDBF:Descripcion:="Articulo 1" //Le asignas un valor temporal al campo MiDBF->Descripcion
oDBF:SAVE() //Al final pasa el contenido de oDBF:Clave y oDBF:Descripcion a MiDBF->Clave y MiDBF->Descripcion
oDBF:DBRUNLOCK() //Desbloqueas el registro para que ya lo puedan usar otros
 


Puedes ver mas informacion en SAMPLES\DBF01.prg

Espero te sirva. Salu2
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Ayuda con una duda en xbrowse porfis !!

Postby AIDA » Thu May 16, 2013 7:30 pm

Hola Rolando

tendrás un ejemplo amplio para usar cGetNewAlias() :mrgreen:

trate de usarlo con lo que compartiste pero no me funciono :shock:


Saluditos :wink:







rolando wrote:Hola,





Como decimos por acá: "meto la cuchara".

Utilizo, desde que lo vi en algún post, la función cGetNewAlias() que cada vez que se pasa por la apertura le asigna un nuevo valor al alias. En el caso del ejemplo será travva00, travva01, etc.

También, desde que me lo indicó Antonio, uso la clase Tdatabase lo cual simplifica mucho la programación (por lo menos para mi) porque además de tratar a la DBF como un objeto, se encarga de los bloqueos ella misma (aunque pueden ser incluidos por uno también).

Ejemplo de cGetNewAlias():

Code: Select all  Expand view
local cTrabajos:=cGetNewAlias('travva')

if lChDir(cCarpetaInstalacion) .and. file(".\DBF's\TRABAJOS.DBF")
        use ".\DBF's\TRABAJOS.DBF" shared new alias (cTrabajos)                            
             (cTrabajos)->(ordsetfocus(1) , dbgotop())                      
   else
         msginfo("Lo siento, no puedo acceder al directorio de trabajo")
         return nil
endif


Saludos.

Rolando :D
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 879
Joined: Fri Jan 12, 2007 8:35 pm

Re: Ayuda con una duda en xbrowse porfis !!

Postby karinha » Thu May 16, 2013 8:19 pm

Holá Aida,

Mira en FWH\SAMPLES\TESTMDI8.PRG porfa.

Salu2;
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Ayuda con una duda en xbrowse porfis !!

Postby acuellar » Thu May 16, 2013 11:15 pm

Gracias Rolando por lo del cGetNewAlias()

Funciona perfecto.

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1643
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Ayuda con una duda en xbrowse porfis !!

Postby rolando » Thu May 16, 2013 11:23 pm

Aida,

Ante el pedido de una dama, no puedo más que ceder.

Subí al box el PRG, la DBF y el exe del ejemplo que copio a continuación por si quieres bajar todo desde ahí.

https://www.box.com/s/lqse6hfhr0a11zpmp3ga

El PRG:

Code: Select all  Expand view
//
// Ejemplo para Aida
//
// se puede ver el uso primitivo de la TDatabase (oBrw:setodbf(oDbf))
//
// y también el uso del cGetNewAlias (coloco el cAlias en el title de la ventana)
//


#include "Fivewin.ch"


    Function Main()

    public oWnd

   
    Define window oWnd ;
             from 50,50 to 700,1100 pixel;
             menu Buildmenu();
             title "Sample para Aida";
             mdi
             
             
             
    Activate window oWnd
   
   
    Return nil
             
             
             
//---------------------------------------------------------------------------

    Function Buildmenu()             

    local oMenu, oAbrir 
   
    menu oMenu 2007
        menuitem "Abrir" message 'Abrir un nuevo browse'
            menu
                menuitem oAbrir prompt '&Abrir un xBrowse' action Hojear() ;                    
                            message "Hojear "
                           
            endmenu
    endmenu
   
    Return oMenu                       
//--------------------------------------------------------------------------------------------------------------




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


    Function Hojear()

    local cAlias:=cGetNewAlias('Sample')
    local oChild, oBrw, oDbf
   
    use "customer" shared new alias (cAlias)
  database oDbf
   
     
    Define window oChild title "Usando cGetNewAlias, el cAlias es "+cAlias mdichild of oWnd
   oBrw := TXBrowse():New( oChild )

   oBrw:nMarqueeStyle       := MARQSTYLE_HIGHLCELL
   oBrw:nColDividerStyle    := LINESTYLE_BLACK
   oBrw:nRowDividerStyle    := LINESTYLE_BLACK
   oBrw:lColDividerComplete := .t.

   oBrw:setoDbf(oDbf)


   oBrw:CreateFromCode()
   oChild:oClient := oBrw

  Activate window oChild on init oBrw:setfocus() valid (oDbf:close() , .t.)
 
    Return nil  

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


En el PRG ejemplo se puede ver que cuando abres un nuevo xBrowse, en el title de la ventana te indica el nombre que toma el alias cada vez que una nueva window es abierta (gracias a la función cGetNewAlias() ).

Además, en forma rudimentaria, usé la TDatabase para asignarle al xBrowse el objeto oDbf ( oBrw:setoDbf(oDbf) ).

Hay muchos ejemplos del uso de la clase Database y ya Rodolfo explicó básicamente su uso. Desde que Antonio me indicó, uso siempre la TDatabase porque, como dije, simplifica mucho el código.

Espero te sirva.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: Ayuda con una duda en xbrowse porfis !!

Postby AIDA » Fri May 17, 2013 1:19 am

QUE LINDO :D

Muchísimas gracias revisare con calmita el código para entenderlo bien y aplicarlo

y les comento después como quedo :)

Te agradezco mucho mucho y a todos los demás también :mrgreen:


Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 879
Joined: Fri Jan 12, 2007 8:35 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 44 guests