AYUDA CON XBROWSE
AYUDA CON XBROWSE
Saludos amigos.....
Estoy trabajando con un xbrowse pero tengo el siguiente problema al momento de editar y validar cada columna, ya que yo armo mis columnas de la siguiente manera:
@ 6,2 XBROWSE Brw1 ;
FIELDS "" ;
ALIAS (CALIAS) ;
OF oWndChild ;
LINES CELL
FOR i := 1 TO xCols
ADD COLUMN TO Brw1 DATA bro_campo TITLE bro_subtit
NEXT
Brw1:SetRDD()
Brw1:nColDividerStyle := LINESTYLE_INSET
Brw1:nRowDividerStyle := LINESTYLE_INSET
Brw1:lHScroll = .T.
Brw1:lVScroll = .T.
// aqui es donde tengo el problema...
FOR nFor:=1 TO xCols
oCol:=Brw1:aCols[nFor]
oCol:nEditType := 1
oCol:bOnPostEdit := {|o, v, n| iif( n != VK_ESCAPE, FieldPut( o:nCreationOrder, v ), ) }
NEXT
// aqui necesito validar cada una de las columnas pero si coloco el beditValid aqui no me funciona........
Estoy trabajando con un xbrowse pero tengo el siguiente problema al momento de editar y validar cada columna, ya que yo armo mis columnas de la siguiente manera:
@ 6,2 XBROWSE Brw1 ;
FIELDS "" ;
ALIAS (CALIAS) ;
OF oWndChild ;
LINES CELL
FOR i := 1 TO xCols
ADD COLUMN TO Brw1 DATA bro_campo TITLE bro_subtit
NEXT
Brw1:SetRDD()
Brw1:nColDividerStyle := LINESTYLE_INSET
Brw1:nRowDividerStyle := LINESTYLE_INSET
Brw1:lHScroll = .T.
Brw1:lVScroll = .T.
// aqui es donde tengo el problema...
FOR nFor:=1 TO xCols
oCol:=Brw1:aCols[nFor]
oCol:nEditType := 1
oCol:bOnPostEdit := {|o, v, n| iif( n != VK_ESCAPE, FieldPut( o:nCreationOrder, v ), ) }
NEXT
// aqui necesito validar cada una de las columnas pero si coloco el beditValid aqui no me funciona........
Angel Stincone... Saludos...
FWH 8.08
XHARBOUR 1.1.0
VERCE 5.3
ADS 9.0
FWH 8.08
XHARBOUR 1.1.0
VERCE 5.3
ADS 9.0
Tambien tengo el siguiente problema, yo debo desde un get hacer el focus al xbrowse y entrar en modo de edicion de una vez aqui les muestro el codigo:
REDEFINE GET oGet[2] VAR xNombre ID 102 OF oDlg PICTURE "@!" UPDATE
oGet[2]:bKeyDown := {|nKey| IIF(nKey==K_ENTER.and.empty(sw),Clickx(Brw1),)}
la funcion Clickx() :
FUNCTION Clickx(Brw1)
Brw1:bPastEof = {|| Dbappend(), Brw1:refresh(), Brw1:aCols[ 1 ]:Edit() }
Brw1:SetFocus()
RETURN
pero tampoco me entra en modo de edicion de una vez.....
Anexo imagen del xbrowse:
REDEFINE GET oGet[2] VAR xNombre ID 102 OF oDlg PICTURE "@!" UPDATE
oGet[2]:bKeyDown := {|nKey| IIF(nKey==K_ENTER.and.empty(sw),Clickx(Brw1),)}
la funcion Clickx() :
FUNCTION Clickx(Brw1)
Brw1:bPastEof = {|| Dbappend(), Brw1:refresh(), Brw1:aCols[ 1 ]:Edit() }
Brw1:SetFocus()
RETURN
pero tampoco me entra en modo de edicion de una vez.....
Anexo imagen del xbrowse:
Angel Stincone... Saludos...
FWH 8.08
XHARBOUR 1.1.0
VERCE 5.3
ADS 9.0
FWH 8.08
XHARBOUR 1.1.0
VERCE 5.3
ADS 9.0
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Saludos antonio....
lo que necesito es poder editar y y validar cada columna pero si coloco el beditvalid en el FOR no me funciona yo necesito que se quede en la primera columna hasta que el valor introducido sea valido y luego pase a la siguiente columna donde la la validacion que uso verifica si el codigo que ingreso pertenece a una compañia y sino abro otra ventana donde selecciono la compañia y debo traerme ese valor para la columna en edicion.... lo intente hacer con twbrowse pero ahi mientras tengo la columna en edicion y llamo a la otra ventana mdichild no me le da el foco.....
Gracias.......
lo que necesito es poder editar y y validar cada columna pero si coloco el beditvalid en el FOR no me funciona yo necesito que se quede en la primera columna hasta que el valor introducido sea valido y luego pase a la siguiente columna donde la la validacion que uso verifica si el codigo que ingreso pertenece a una compañia y sino abro otra ventana donde selecciono la compañia y debo traerme ese valor para la columna en edicion.... lo intente hacer con twbrowse pero ahi mientras tengo la columna en edicion y llamo a la otra ventana mdichild no me le da el foco.....
Gracias.......
Angel Stincone... Saludos...
FWH 8.08
XHARBOUR 1.1.0
VERCE 5.3
ADS 9.0
FWH 8.08
XHARBOUR 1.1.0
VERCE 5.3
ADS 9.0
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Ok con gusto Antonio....
Resolvi una parte te explico...
Yo estoy trabajando de la siguiente manera todo en MDI-MDICHILD
Tengo mi ventana MDICHILD, Tengo dos Gets y Varios Botones desde mi Dialogo de Recurso, y le estoy incrustando un xBrowse desde codigo,
Asi defino mi ventana MDICHILD:
DEFINE WINDOW oWndChild COLOR 0, GETSYSCOLOR( 15 );
TITLE tit+" "+titulo ;
ICON "BC" MDICHILD OF bc:oWnd;
NOMAXIMIZE FROM crd_f2bal, crd_c2bal TO 0,0 pixel
asi mi Dialogo de Recurso:
DEFINE DIALOG oDlg RESOURCE "BCEDCBAL" OF bc:oWnd
oDlg:bGotFocus = { || oWndchild:SetFocus(),oget[nget]:setfocus(),.T.}
asi mi xBrowse:
@ 3,2 XBROWSE Brw1 ;
FIELDS "" ;
ALIAS (CALIAS) ;
OF oWndChild ;
LINES CELL
Brw1:aCols:= {}
FOR i := 1 TO xCols
ADD COLUMN TO XBROWSE Brw1 DATA bro_campo TITLE bro_subtit
NEXT
Brw1:SetRDD()
Brw1:nColDividerStyle := LINESTYLE_BLACK
Brw1:nRowDividerStyle := LINESTYLE_BLACK
Brw1:nMarqueeStyle := MARQSTYLE_HIGHLCELL
Brw1:lRecordSelector := .F.
Brw1:lColDividerComplete := .F.
Brw1:l2007 := .F.
Brw1:lFastEdit := .T.
brw&apl() // llamo a esta funcion para la parte de edicion del xbrowse
Brw1:CreateFromCode()
ahora Activo mi dialogo y la ventana:
ACTIVATE DIALOG oDlg NOWAIT;
ON INIT (SetParent( Brw1:hWnd,oDlg:hWnd ),SetParent( oDlg:hWnd,oWndChild:hWnd ),oGet[1]:SetFocus(), oDlg:Move( 46, 0 )) ;
VALID (oWndChild:End(),.T. )
oWndChild:bmoved = { | nRow, nCol, nFlags | savecrd1(oWndChild,"BAL") }
ACTIVATE WINDOW oWndChild ;
ON INIT (oWndChild:SetSize( oDlg:nWidth, oDlg:nHeight+61+12, .T. ),Brw1:SetSize(oDlg:nWidth-30, oDlg:nHeight-100),oGet[1]:SetFocus());
VALID (IF(oWnd#nil,(CALIAS)->(dbunlock()),[]),habbot(bot),CERRAR(CALIAS),CALIAS:=cal,odlg:=nil,.T.)
El problema que tenia aqui lo resolvi con el SetParent ya que el brow lo incrusto en el Window y no lo hago desde el dialo de recurso:
SetParent( Brw1:hWnd,oDlg:hWnd )
SetParent( oDlg:hWnd,oWndChild:hWnd )
Ok. todo hasta aqui me funciona bien...
esta es la funcion que llamo para la edicion del xbrowse
FUNCTION brwbal()
LOCAL oCol, lRetorno,xVal2
// Columna 1
oCol:=Brw1:aCols[1]
oCol:nEditType := 1
oCol:cEditPicture := "@k 9"
oCol:bClrEdit := Brw1:bClrStd
oCol:bEditValid := {| oGet, oCol | Validar1( oGet, oCol ) }
oCol:bOnPostEdit := { | oCol, xVal, nKey | DBSELECTAREA(CALIAS), IF( RecCount() == 0, ( DbAppend(), Brw1:Refresh() ),) , ;
IF( nKey == VK_RETURN, ( (CALIAS)->nivel := xVal ), ) }
//Columna 2
oCol:=Brw1:aCols[2]
oCol:nEditType := 1
oCol:cEditPicture := "XX"
oCol:bClrEdit := Brw1:bClrStd
oCol:bEditValid := {| oGet | (MsgInfo(SELECEMPRE( oGet, @xVal2 )),MsgInfo(xVal2)),.f. }
oCol:bOnPostEdit := { | oCol, xVal, nKey | IF( RecCount() == 0, ( DbAppend(), Brw1:Refresh() ),) , ;
IF( nKey == VK_RETURN, (CALIAS)->id_com := xVal , ) }
RETURN .T.
Aqui es donde tengo problema Antonio en el bEditValid de la Columna 2, yo aqui cuando entro en modo de edicion llamo a una funcion que me crea otra ventana mdichild que contiene otro browse yo aqui debo seleccionar un registro y devolverme con ese valor a la columna que tengo en edicion..
Lo que no se es como hacer para que se me mantenga esa ventana hasta que seleccione y luego devolverme a la ventana anterior donde tengo la edicion.....
Resolvi una parte te explico...
Yo estoy trabajando de la siguiente manera todo en MDI-MDICHILD
Tengo mi ventana MDICHILD, Tengo dos Gets y Varios Botones desde mi Dialogo de Recurso, y le estoy incrustando un xBrowse desde codigo,
Asi defino mi ventana MDICHILD:
DEFINE WINDOW oWndChild COLOR 0, GETSYSCOLOR( 15 );
TITLE tit+" "+titulo ;
ICON "BC" MDICHILD OF bc:oWnd;
NOMAXIMIZE FROM crd_f2bal, crd_c2bal TO 0,0 pixel
asi mi Dialogo de Recurso:
DEFINE DIALOG oDlg RESOURCE "BCEDCBAL" OF bc:oWnd
oDlg:bGotFocus = { || oWndchild:SetFocus(),oget[nget]:setfocus(),.T.}
asi mi xBrowse:
@ 3,2 XBROWSE Brw1 ;
FIELDS "" ;
ALIAS (CALIAS) ;
OF oWndChild ;
LINES CELL
Brw1:aCols:= {}
FOR i := 1 TO xCols
ADD COLUMN TO XBROWSE Brw1 DATA bro_campo TITLE bro_subtit
NEXT
Brw1:SetRDD()
Brw1:nColDividerStyle := LINESTYLE_BLACK
Brw1:nRowDividerStyle := LINESTYLE_BLACK
Brw1:nMarqueeStyle := MARQSTYLE_HIGHLCELL
Brw1:lRecordSelector := .F.
Brw1:lColDividerComplete := .F.
Brw1:l2007 := .F.
Brw1:lFastEdit := .T.
brw&apl() // llamo a esta funcion para la parte de edicion del xbrowse
Brw1:CreateFromCode()
ahora Activo mi dialogo y la ventana:
ACTIVATE DIALOG oDlg NOWAIT;
ON INIT (SetParent( Brw1:hWnd,oDlg:hWnd ),SetParent( oDlg:hWnd,oWndChild:hWnd ),oGet[1]:SetFocus(), oDlg:Move( 46, 0 )) ;
VALID (oWndChild:End(),.T. )
oWndChild:bmoved = { | nRow, nCol, nFlags | savecrd1(oWndChild,"BAL") }
ACTIVATE WINDOW oWndChild ;
ON INIT (oWndChild:SetSize( oDlg:nWidth, oDlg:nHeight+61+12, .T. ),Brw1:SetSize(oDlg:nWidth-30, oDlg:nHeight-100),oGet[1]:SetFocus());
VALID (IF(oWnd#nil,(CALIAS)->(dbunlock()),[]),habbot(bot),CERRAR(CALIAS),CALIAS:=cal,odlg:=nil,.T.)
El problema que tenia aqui lo resolvi con el SetParent ya que el brow lo incrusto en el Window y no lo hago desde el dialo de recurso:
SetParent( Brw1:hWnd,oDlg:hWnd )
SetParent( oDlg:hWnd,oWndChild:hWnd )
Ok. todo hasta aqui me funciona bien...
esta es la funcion que llamo para la edicion del xbrowse
FUNCTION brwbal()
LOCAL oCol, lRetorno,xVal2
// Columna 1
oCol:=Brw1:aCols[1]
oCol:nEditType := 1
oCol:cEditPicture := "@k 9"
oCol:bClrEdit := Brw1:bClrStd
oCol:bEditValid := {| oGet, oCol | Validar1( oGet, oCol ) }
oCol:bOnPostEdit := { | oCol, xVal, nKey | DBSELECTAREA(CALIAS), IF( RecCount() == 0, ( DbAppend(), Brw1:Refresh() ),) , ;
IF( nKey == VK_RETURN, ( (CALIAS)->nivel := xVal ), ) }
//Columna 2
oCol:=Brw1:aCols[2]
oCol:nEditType := 1
oCol:cEditPicture := "XX"
oCol:bClrEdit := Brw1:bClrStd
oCol:bEditValid := {| oGet | (MsgInfo(SELECEMPRE( oGet, @xVal2 )),MsgInfo(xVal2)),.f. }
oCol:bOnPostEdit := { | oCol, xVal, nKey | IF( RecCount() == 0, ( DbAppend(), Brw1:Refresh() ),) , ;
IF( nKey == VK_RETURN, (CALIAS)->id_com := xVal , ) }
RETURN .T.
Aqui es donde tengo problema Antonio en el bEditValid de la Columna 2, yo aqui cuando entro en modo de edicion llamo a una funcion que me crea otra ventana mdichild que contiene otro browse yo aqui debo seleccionar un registro y devolverme con ese valor a la columna que tengo en edicion..
Lo que no se es como hacer para que se me mantenga esa ventana hasta que seleccione y luego devolverme a la ventana anterior donde tengo la edicion.....
Angel Stincone... Saludos...
FWH 8.08
XHARBOUR 1.1.0
VERCE 5.3
ADS 9.0
FWH 8.08
XHARBOUR 1.1.0
VERCE 5.3
ADS 9.0