PROBLEMA CON TXBROWSE

User avatar
LuisPonce
Posts: 190
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU
Contact:

Re: PROBLEMA CON TXBROWSE

Post by LuisPonce »

Gracias Jose Luis, ahi paso el codigo, pero....

Francisco, entonces estoy usando la siyntaxis de otra version???, ese debe ser el problema sin duda, en los ejemplos de \Samples de mi version testxbrw.prg y testxbr2.prg no hay algo parecido, asi que no cuento con un ejemplo desde recursos.


FUNCTION EDITAFILE()
LOCAL oLbxAlmacenes,oFntArial,oFntArial2
LOCAL AliasCmp
LOCAL cFilCompra:=cImpLoc+"WI"+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)+".DBF"
LOCAL aStru:={ {"FILIAL","C",3,0},{"CODIGO","C",3,0},{"ALMACEN","C",2,0},{"CANTIDAD","N",12,2} }

DbCreate(cFilCompra,aStru)

USE &cFilCompra NEW SHARED Alias FTAlmacenes

* Dialogo

DEFINE FONT oFntArial NAME "Arial" SIZE 0, -14
DEFINE FONT oFntArial2 NAME "Arial" SIZE 0, -14 BOLD
DEFINE BRUSH oBrush NAME "BMP_TECLAS2"
DEFINE DIALOG oDlgTraslado RESOURCE "CONS_TABLA" BRUSH oBrush OF oDlg TITLE "Stock en Almacenes"

REDEFINE XBROWSE oLbxAlmacenes ID 112 OF oDlgTraslado ;
COLUMNS "FILIAL", "CODIGO", "ALMACEN","CANTIDAD" ;
HEADERS "FL","CO","Almacen","Cantidad";
SIZES 70,170,170,140 ;
ALIAS "FTAlmacenes" FOOTERS LINES CELL

AEval( oLbxAlmacenes:aCols, { |o| o:nEditType := 0 ,; //No editables
o:nHeadStrAlign := 2 } ) //texto encab/col centrado


REDEFINE BTNBMP ID 117 OF oDlgTraslado NAME "BMP_ACEPTAR" ACTION (lAceptar:=.T.,oDlgTraslado:End())
REDEFINE BTNBMP ID 118 OF oDlgTraslado NAME "BMP_SALIR" ACTION (lAceptar:=.F.,oDlgTraslado:End())

ACTIVATE DIALOG oDlgTraslado CENTERED ON INIT (oLbxAlmacenes:SetFocus(.T.))

Select("FTAlmacenes")

IF lAceptar

* ACCIONES

ENDIF

FTAlmacenes->(DbCloseArea())

oFntArial:End()
oFntArial2:End()

oLbxCompra:UpStable()
oLbxCompra:Refresh()

RETURN Nil

Error E0030 syntax error "Syntax error at 'XBROWSE' "

en mi epitafio pondre este mensaje de error..... :(
Error E0030 syntax error "Syntax error at 'XBROWSE' "
Luis Ponce
User avatar
LuisPonce
Posts: 190
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU
Contact:

Re: PROBLEMA CON TXBROWSE

Post by LuisPonce »

Gracias Jose Luis, colegas que le dieron un vistazo a mi problema

Adapte el ejemplo de Jose Luis a mi function y quedo asi:

FUNCTION EDITAFILE(oWnd)
LOCAL oBrow,oFntArial,oFntArial2,oCol
LOCAL AliasCmp
LOCAL cFilCompra:=cImpLoc+"WI"+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)+".DBF"
LOCAL aStru:={ {"FILIAL","C",3,0},{"CODIGO","C",3,0},{"ALMACEN","C",2,0},{"CANTIDAD","N",12,2} }

DbCreate(cFilCompra,aStru)

USE &cFilCompra NEW SHARED Alias FTAlmacenes

* Dialogo

DEFINE FONT oFntArial NAME "Arial" SIZE 0, -14
DEFINE FONT oFntArial2 NAME "Arial" SIZE 0, -14 BOLD
DEFINE BRUSH oBrush NAME "BMP_TECLAS2"

DEFINE DIALOG oDlgTraslado RESOURCE "CONS_TABLA" BRUSH oBrush OF oWnd TITLE "Stock en Almacenes"



DBSELECTAREA("FTAlmacenes") // MAESTRO DE ALUMNOS
*FTAlmacenes->( OrdSetFocus(2) )
FTAlmacenes->( DBGOTOP() )
DATABASE oDbfALUM // LECTURA Y CLONACION DE DBF ORIGINAL
oDbfALUM:GOTOP()


*REDEFINE XBROWSE oBrow ID 112 OF oDlgTraslado

*oBrow:=TxBrowse():Redefine(112,oDlgTraslado) ESTE NO FUNCIONA !!!!!

oBrow:=TxBrowse():New( oDlgTraslado )

WITH OBJECT oBrow

:bClrStd := { || If( ( oBrow:nArrayAt % 2 ) == 0, { CLR_BLACK, RGB( 224, 236, 255 ) }, { CLR_BLACK, RGB( 189, 211, 253 ) } ) }
:bClrSel := { || If( ( oBrow:nArrayAt % 2 ) == 0, { CLR_BLACK, RGB( 224, 236, 255 ) }, { CLR_BLACK, RGB( 189, 211, 253 ) } ) }
:nMarqueeStyle := 4
:bRClicked := { || msginfo(cvaltochar(recno())) } // LLAMA MENU-POPUP CON BOTON DERECHO
:nLeft := 203 // DISTANCIA DESDE EL BORDER IZQ.

:nMarqueeStyle := 2 // MARQSTYLE_HIGHLROW
:nColDividerStyle := 2 //LINESTYLE_BLACK
:nStretchCol := STRETCHCOL_LAST
:lColDividerComplete := .T.
:nHeaderHeight := 30
:l2007 := .T.
:lFooter := .F.
:lRecordSelector := .T.

END WITH

//COMIENZAN LAS COLUMNAS

*** COL.1
oCol := oBrow:AddCol()
oCol:bStrData := {|| IIF( LastRec() > 0 ,;
STRZERO( FTAlmacenes->FILIAL, 7 ), SPACE(10) ) }
oCol:cHeader := "Filial"
oCol:nWidth := 70
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT

*** COL.2
oCol := oBrow:AddCol()
oCol:bStrData := {|| IIF( LastRec() > 0, FTAlmacenes->CODIGO, SPACE(250) ) }
oCol:cHeader := "Codigo"
oCol:nWidth := 250
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT

*** COL.3
oCol := oBrow:AddCol()
oCol:bStrData := {|| IIF( LastRec() > 0, FTAlmacenes->ALMACEN, SPACE(250) ) }
oCol:cHeader := "Almacen"
oCol:nWidth := 250
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT

*** COL.4
oCol := oBrow:AddCol()
oCol:bStrData := {|| IIF( LastRec() > 0 ,;
STRZERO( FTAlmacenes->CANTIDAD, 8 ), SPACE(10) ) }
oCol:cHeader := "Cantidad"
oCol:nWidth := 70
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT

// TERMINAN LAS COLUMNAS

oBrow:cAlias := "FTAlmacenes"
oBrow:SetRDD()
oBrow:Refresh( .T. )
oBrow:CreateFromCode()

REDEFINE BTNBMP ID 117 OF oDlgTraslado NAME "BMP_ACEPTAR" ACTION (lAceptar:=.T.,oDlgTraslado:End())
REDEFINE BTNBMP ID 118 OF oDlgTraslado NAME "BMP_SALIR" ACTION (lAceptar:=.F.,oDlgTraslado:End())

ACTIVATE DIALOG oDlgTraslado CENTERED

Select("FTAlmacenes")

IF lAceptar

* ACCIONES

ENDIF

FTAlmacenes->(DbCloseArea())

*oFntArial:End()
*oFntArial2:End()

*oLbxCompra:UpStable()
*oLbxCompra:Refresh()

RETURN Nil

Compilo !!!!! me emocioné, me dio problemas en :nMarqueeStyle := MARQSTYLE_HIGHLROW, :nColDividerStyle := LINESTYLE_BLACK, :nStretchCol := STRETCHCOL_LAST.... cambié los valores y me dio el error :

Error description: Error BASE/1003 Variable does not exist: STRETCHCOL_LAST

Stack Calls
===========
Called from: VT20100.prg => EDITAFILE(11072)
Called from: FW-VT2.prg => (b)BUILDMENU(796)
Called from: MENU.PRG => TMENU:COMMAND(0)

Quité esa linea y ahora se cuelga al parecer sin retorno... luego salio error en AL_CENTER
oCol:nDataStrAlign := AL_LEFT

quité todos los AL_CENTER y AL_LEFT y que creen... ahora me da este mensaje:


Time from start: 0 hours 0 mins 27 secs
Error occurred at: 11/01/2013, 01:12:16
Error description: Error FiveWin/1 Non defined Id: No: 123

Stack Calls
===========
Called from: CONTROL.PRG => TCONTROL:INITIATE(0)
Called from: XBROWSE.PRG => TXBROWSE:INITIATE(0)
Called from: => __OBJSENDMSG(0)
Called from: HARBOUR.PRG => OSEND(0)
Called from: HARBOUR.PRG => ASEND(0)
Called from: DIALOG.PRG => TDIALOG:INITIATE(0)
Called from: DIALOG.PRG => TDIALOG:HANDLEEVENT(0)
Called from: => DIALOGBOX(0)
Called from: DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: VT20100.prg => EDITAFILE(11128)
Called from: FW-VT2.prg => (b)BUILDMENU(796)
Called from: MENU.PRG => TMENU:COMMAND(0)


Todos sabemos que este error se refiere a que en la funcion se hace referencia a un recurso IDentificado con el numero "123"... :D en toda la funcion no veo un ID con ese numero, si alguien lo ve por favor aviseme!!!

el xbrowse.ch que utilizo tiene fecha 04/02/2008 08:01 p.m. 3,559 .... es el correcto ?

Gracias
Luis Ponce
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: PROBLEMA CON TXBROWSE

Post by FranciscoA »

Luis, prueba esto. Está probado con la 7.12 por lo que debería funcionarte con tu versión.
Recuerda incluir en tu prg la linea "Include xBrowse.ch"
Para probarlo, le cambié algunos ID's y nombre de la tabla de tu ejemplo original.

Code: Select all

//-------------------
FUNCTION EDITAFILE()
LOCAL oLbxAlmacenes,oFntArial,oFntArial2
LOCAL cFilCompra:="ALMACEN"     //cImpLoc+"WI"+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)+".DBF"
LOCAL aStru:={ {"FILIAL","C",3,0},{"CODIGO","C",3,0},{"ALMACEN","C",2,0},{"CANTIDAD","N",12,2} }

local oDlg,oCol
local oDlgTraslado, lAceptar:=.f.

DbCreate(cFilCompra,aStru)

USE &cFilCompra NEW SHARED Alias FTAlmacenes

DEFINE FONT oFntArial NAME "Arial" SIZE 0, -14
DEFINE FONT oFntArial2 NAME "Arial" SIZE 0, -14 BOLD
DEFINE DIALOG oDlgTraslado RESOURCE "COMPLOC" TITLE "Stock en Almacenes"


oLbxAlmacenes := TXBrowse():New( oDlg ) 
oLbxAlmacenes:cAlias:="FTAlmacenes"

  oLbxAlmacenes:nMarqueeStyle       := MARQSTYLE_HIGHLROW
  oLbxAlmacenes:nColDividerStyle    := LINESTYLE_INSET 
  oLbxAlmacenes:nRowDividerStyle    := LINESTYLE_INSET 
  oLbxAlmacenes:lColDividerComplete := .t. 

  oLbxAlmacenes:nHeaderHeight        := 30   //Altura cabeceras de col
  oLbxAlmacenes:lRecordSelector      := .f.  //poner o no, COL de la flechita de la izq
  oLbxAlmacenes:lFooter              := .t.  //Que tendrá footer 
  oLbxAlmacenes:nFooterLines         := 1    //Lineas del footer 
  oLbxAlmacenes:nFooterHeight        := 30   //Altura del  Footer


  //COLUMNAS DEL BROWSE
  oCol = oLbxAlmacenes:AddCol()
  oCol:bStrData = { || FTAlmacenes->FILIAL }
  oCol:cHeader = "FL" 
  oCol:nWidth = 40

  oCol = oLbxAlmacenes:AddCol()
  oCol:bStrData = { || FTAlmacenes->CODIGO }
  oCol:cHeader = "CO" 
  oCol:nWidth = 40

  oCol = oLbxAlmacenes:AddCol()
  oCol:bStrData = { || FTAlmacenes->ALMACEN }
  oCol:cHeader = "Almacen" 
  oCol:nWidth = 180

  oCol = oLbxAlmacenes:AddCol()
  oCol:bStrData = { || TRANSFORM(FTAlmacenes->CANTIDAD,"999,999,99") }
  oCol:cHeader = "Cantidad" 
  oCol:nWidth = 130


  oLbxAlmacenes:CreateFromResource(112) 
  oLbxAlmacenes:SetRDD() 


AEval( oLbxAlmacenes:aCols, { |o| o:nEditType := 0 ,; //No editables
o:nHeadStrAlign := 2 } ) //texto encab/col centrado

REDEFINE BTNBMP ID 312 OF oDlgTraslado NAME "BMP_ACEPTAR" ACTION (lAceptar:=.T.,oDlgTraslado:End())
REDEFINE BTNBMP ID 313 OF oDlgTraslado NAME "BMP_SALIR" ACTION (lAceptar:=.F.,oDlgTraslado:End())

ACTIVATE DIALOG oDlgTraslado CENTERED ON INIT (oLbxAlmacenes:SetFocus(.T.))

Select("FTAlmacenes")

IF lAceptar

* ACCIONES

ENDIF

FTAlmacenes->(DbCloseArea())

oFntArial:End()
oFntArial2:End()

RETURN Nil
 
Saludos.

PD: Disculpas por este error: aquí debe ser oLbxAlmacenes := TXBrowse():New( oDlgTraslado ) en vez de: oLbxAlmacenes := TXBrowse():New( oDlg )
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
LuisPonce
Posts: 190
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU
Contact:

Re: PROBLEMA CON TXBROWSE

Post by LuisPonce »

Muchas gracias FranciscoA

Hice los ajustes quedo asi; Y FUNCIONO !!!!!!


FUNCTION EDITAFILE2()
LOCAL oLbxAlmacenes,oFntArial,oFntArial2
LOCAL cFilCompra:=cImpLoc+"WI"+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)+".DBF"
LOCAL aStru:={ {"FILIAL","C",2,0},{"CODIGO","C",2,0},{"ALMACEN","C",30,0},{"CANTIDAD","N",12,2} }
local oDlg,oCol
local oDlgTraslado, lAceptar:=.f.

DbCreate(cFilCompra,aStru)

USE &cFilCompra NEW SHARED Alias FTAlmacenes

DEFINE FONT oFntArial NAME "Arial" SIZE 0, -14
DEFINE FONT oFntArial2 NAME "Arial" SIZE 0, -14 BOLD
DEFINE DIALOG oDlgTraslado RESOURCE "CONS_TABLA5" TITLE "Stock en Almacenes"

oLbxAlmacenes := TXBrowse():New( oDlgTraslado )
oLbxAlmacenes:cAlias:="FTAlmacenes"

oLbxAlmacenes:nMarqueeStyle := MARQSTYLE_HIGHLROW
oLbxAlmacenes:nColDividerStyle := LINESTYLE_INSET
oLbxAlmacenes:nRowDividerStyle := LINESTYLE_INSET
oLbxAlmacenes:lColDividerComplete := .t.

oLbxAlmacenes:nHeaderHeight := 30 //Altura cabeceras de col
oLbxAlmacenes:lRecordSelector := .f. //poner o no, COL de la flechita de la izq
oLbxAlmacenes:lFooter := .t. //Que tendrá footer
oLbxAlmacenes:nFooterLines := 1 //Lineas del footer
oLbxAlmacenes:nFooterHeight := 30 //Altura del Footer


//COLUMNAS DEL BROWSE
oCol = oLbxAlmacenes:AddCol()
oCol:bStrData = { || FTAlmacenes->FILIAL }
oCol:cHeader = "FL"
oCol:nWidth = 40

oCol = oLbxAlmacenes:AddCol()
oCol:bStrData = { || FTAlmacenes->CODIGO }
oCol:cHeader = "CO"
oCol:nWidth = 40

oCol = oLbxAlmacenes:AddCol()
oCol:bStrData = { || FTAlmacenes->ALMACEN }
oCol:cHeader = "Almacen"
oCol:nWidth = 180

oCol = oLbxAlmacenes:AddCol()
oCol:bStrData = { || TRANSFORM(FTAlmacenes->CANTIDAD,"999,999,99") }
oCol:cHeader = "Cantidad"
oCol:nWidth = 130

oLbxAlmacenes:CreateFromResource(4001)
oLbxAlmacenes:SetRDD()

AEval( oLbxAlmacenes:aCols, { |o| o:nEditType := 0 ,; //No editables
o:nHeadStrAlign := 2 } ) //texto encab/col centrado

REDEFINE BTNBMP ID 117 OF oDlgTraslado NAME "BMP_ACEPTAR" ACTION (lAceptar:=.T.,oDlgTraslado:End())
REDEFINE BTNBMP ID 118 OF oDlgTraslado NAME "BMP_SALIR" ACTION (lAceptar:=.F.,oDlgTraslado:End())

ACTIVATE DIALOG oDlgTraslado CENTERED //ON INIT (oLbxAlmacenes:SetFocus(.T.))

Select("FTAlmacenes")

IF lAceptar

* ACCIONES

ENDIF

FTAlmacenes->(DbCloseArea())

oFntArial:End()
oFntArial2:End()

RETURN Nil

Tantos dias con este quilombo y SALIO!!!!.... ahora como hago editables y/o validacion en las columnas, se puede ingresar/editar y/o eliminar informacion directamente presionando "enter" o dobleclick ??

buscare informacion de la clase, tendre cuidado con las versiones

Nuevamente Gracias franciscoA y a todos los colegas por la causa.
Luis Ponce
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: PROBLEMA CON TXBROWSE

Post by FranciscoA »

Hola Luis, mira este post, puede servirte de guia. Contiene lo que requieres.
http://fivetechsupport.com/forums/viewt ... ras+hechas
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: PROBLEMA CON TXBROWSE

Post by joseluisysturiz »

Saludos Luis, que bueno que ya te funcione, el uso de xBrowse es buenisimo, las versiones actuales tiene muchas cambios en relacion a la version que tienes, cualquier duda o ayuda estamos a la orden en esta gran familia del foro, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
Post Reply