xbrowse+ADO NO REFRESCA EL BROWSE

xbrowse+ADO NO REFRESCA EL BROWSE

Postby Miguel Salas » Wed May 29, 2013 4:12 am

Hola Amigos

Tengo lo siguiente en un xbrowse con recordset de detalle si ya tiene registros y le agrego mas, lo muestra sin problema... peroooooo mi problema es al ingresar un maestro(cabecera) nuevo obviamente muestra el browse vacío y al irle agregando nuevos en el detalle no los muestra no refresca, mas si los graba

Ya intente de todo hasta asignarle otro recordset y nada.
Code: Select all  Expand view

     ACTION ( GrabaDatos(cAccion), ;
                      CapturaDet("A",cClave,oDlg,@oGet),;
                      oRsDetOrdSrv:close(),;
                      scopeorden(cClave), ;
                      oBrwDet:ReFresh(.t.),;
                      oDlg:update(),;
                      oSay[2]:refresh(),;
 

Code: Select all  Expand view

STAT FUNC scopeOrden(cClave2)

          cSQL := "SELECT * FROM  detordsrv  WHERE  ORDENSRV = '" + cClave2 +"'"

          oRsDetOrdSrv := TOleAuto():New( "ADODB.Recordset" )
          oRsDetOrdSrv:CursorType := 1 // opendkeyset
          oRsDetOrdSrv:CursorLocation := 3 // local cache
          oRsDetOrdSrv:LockType := 3 // lockoportunistic

          TRY
           oRsDetOrdSrv:Open(cSQL,oApp:oCon )
          CATCH oErr
           MsgInfo( "Error al abrir la detOrdSrv " )
           ShowError(oErr)
           RETURN(.F.)
          END TRY

       /*   do while !oRsDetOrdSrv:eof()
             ? oRsDetOrdSrv:fields("CONTENEDOR"):value
             oRsDetOrdSrv:movenext()
          enddo
*/

       //     oRsDetOrdSrv:moveFIRST()


return nil

 
Miguel Salas
 
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby Pedro » Wed May 29, 2013 6:58 pm

Hola Miguel

Discúlpame si no lo entiendo, ya que no lo veo, añades registros ¿dónde? ¿en el Xbrowse, o en un diálogo y luego quieres ver el registro en el Xbrowse?
Si lo añades en el Xbrowse, deberías de poner como lo haces, para que veamos, si podemos, por qué no se muestra. Y si lo haces en un diálogo lo más lógico es que refresques el xBrowse. Tampoco nos dices si las columnas del xbrowse es el recordset o un array.
En fin, danos algo más de información.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby Miguel Salas » Thu May 30, 2013 1:32 am

Gracias por tu interés Pedro y tienes razon debì ilustrarlos con mas codigo lo que se me vino a la mente es el que como funciona cuando ya existen registros del detalle solo les puse lo que hago cuando añado un maestro (cabecera) nuevo.
Code: Select all  Expand view


oBrwDet := TxBrowse():New( oDlg )
oBrwDet:nHeaderLines := 1
oBrwDet:lAllowColSwapping :=.F.
oBrwDet:nColSel := 1
oBrwDet:nRowHeight := 18
oBrwDet:nMarqueeStyle := MARQSTYLE_HIGHLROW
//oBrwDet:nMarqueeStyle    := MARQSTYLE_HIGHLCELL
oBrwDet:nColDividerStyle := LINESTYLE_BLACK
oBrwDet:lColDividerComplete := .t.
oBrwDet:lHScroll := .f.
oBrwDet:lFooter := .t.


oCol := oBrwDet:AddCol()
oCol:cHeader := "CONTENEDOR"
oCol:bStrData := { || If( oBrwDet:oRs:Eof, Space( 10 ),oBrwDet:oRs:fields("CONTENEDOR"):value)}
oCol:nWidth := 150
oCol:nDataStrAlign:= AL_LEFT
oCol:nHeadStrAlign:= AL_LEFT
oCol:lAllowSizing :=.F.


oCol := oBrwDet:AddCol()
oCol:cHeader := "TIPO"
oCol:bStrData := { || If( oBrwDet:oRs:Eof, Space( 10 ),oBrwDet:oRs:fields("TIPO"):value )}
oCol:nWidth := 50
oCol:nDataStrAlign:= AL_RIGHT
oCol:nHeadStrAlign:= AL_RIGHT
oCol:lAllowSizing :=.F.


oCol := oBrwDet:AddCol()
oCol:cHeader := "CONCEPTO"
oCol:bStrData := { || If( oBrwDet:oRs:Eof, Space( 10 ),oBrwDet:oRs:fields("CONCEPTO"):value) }
oCol:nWidth := 200
oCol:nDataStrAlign:= AL_LEFT
oCol:nHeadStrAlign:= AL_LEFT
oCol:lAllowSizing :=.F.

oCol := oBrwDet:AddCol()
oCol:cHeader := "IMPORTE"
oCol:bStrData := { || If( oBrwDet:oRs:Eof, Space( 10 ),TRANS(oBrwDet:oRs:fields("PRECIOUNI"):value ,"@ 999,999,999.99")) }
oCol:nWidth := 120
oCol:nDataStrAlign:= AL_LEFT
oCol:nHeadStrAlign:= AL_LEFT
oCol:lAllowSizing :=.F.

oCol := oBrwDet:AddCol()
oCol:cHeader := "FOLIO FACTURA"
oCol:bStrData := { || If( oBrwDet:oRs:Eof, Space( 10 ),oBrwDet:oRs:fields("FACTURA"):value) }
oCol:nWidth := 120
oCol:nDataStrAlign:= AL_LEFT
oCol:nHeadStrAlign:= AL_LEFT
oCol:lAllowSizing :=.F.

   oBrwDet:aCols[01]:AddResource( 'UNCHECK' )
   oBrwDet:aCols[01]:AddResource( 'CHECK' )
   oBrwDet:aCols[01]:bBmpData:={ || iif( oBrwDet:oRs:fields("marcar"):value = 1, 2, 1 ) }
   oBrwDet:aCols[01]:cHeader       := 'Facturar'
   oBrwDet:aCols[01]:nHeadBmpAlign := AL_CENTER
   oBrwDet:aCols[01]:bLDClickData:={ ||(IIF( empty(oBrwDet:oRs:fields("factura"):value),CambiaStatusDetOrd(@nSuma),.t.),oBrwDet:refresh())}

oBrwDet:SetADO(oRsDetOrdSrv)

oBrwDet:CreateFromResource (117)

 


te comento que inserto directamente en la tabla , sin problemas, el detalle esta en el pintado del xbrowse.
en otras palabras cuando es un nuevo maestro lo muestra vacío, le añado registros y lo sigue mostrando vacío así le añada 3,4,5 , si me salgo al dialogo maestro y regreso al detalle ya me aparecen todos los que agregué y si agrego otro lo muestra sin problema
Code: Select all  Expand view

     cCmdSql := armaCadenaInsert("DetOrdSrv",aCampos,aValores)
            TRY
                oApp:oCon:Execute(cCmdSql)
              CATCH oError
                  MsgInfo("No se pudo INSERTAR la tabla DetordSrv ",oApp:cAplicacion)

              ShowError(oError)
              return nil
             END
 
Miguel Salas
 
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby Pedro » Thu May 30, 2013 8:23 am

Hola Miguel

No veo por ningún lado el fastedit ni el bpasteof(), tampoco en las columnas el bOnpostEdit.
La verdad es que nunca he intentado grabar directamente sobre la tabla, ya que soy muy mal pensado y creo que el usuario es tan ¿==(=)/(%%$% que cuando está terminando el albarán o la factura, va y dice que quiere cancelar lo que ha hecho, de esa manera tengo que borrar los registros y empaquetar la tabla, un fastidio cuando estas en ambiente multiusuario, así que prefiero hacerlo en un array o en una tabla temporal. Como es lógico tanto el array como la tabla temporal están vacíos cuando es una nueva factura o albarán.
Aqui te pongo como lo hago yo y no tengo ningún problema.

Para una tabla temporal.
Code: Select all  Expand view
  oBrw = TXBrowse():New( oDlgAlb )
   
   oBrw:nColDividerStyle    := LINESTYLE_BLACK
   oBrw:nRowDividerStyle    := LINESTYLE_BLACK
   oBrw:lRecordSelector     := .t.
   oBrw:nHeaderLines        := 1
   oBrw:nDataLines          := 1
     oBrw:nRowSel             := 1
     oBrw:nMarqueeStyle       := 3 //Highlight row //MARQSTYLE_HIGHLCELL
     oBrw:bClrSelFocus        := {||{CLR_WHITE,RGB(176,196,222 )}}
   oBrw:cAlias := cAlias1
   oBrw:bClrStd := {|| { nRGB( 0, 0, 0), nRGB(255,248,220) } } // colores para lineas normales
   oBrw:bClrSel := {|| { nRGB(0,0,0), nRGB(241,222,088) } } // para barra de linea selecc cuando el control no tiene el foco
   oBrw:bClrSelFocus := {|| { nRGB( 0, 0, 0), nRGB(248,195, 34) } } // para barra de linea selecc cuando el control tiene el foco

   oBrw:lFastEdit  := .T.
   oBrw:bPastEof = {|| (cAlias1)->(Dbappend()), oBrw:GoLeftMost(),oBrw:Refresh(),;
                                            oBrw:aCols[ 1 ]:Edit() }
                                            //agrega registro y "oprime" enter

                       
   oCol = oBrw:AddCol()
   oCol:bStrData      := { ||(cAlias1)->codigo }
   oCol:nEditType     := EDIT_GET
   oCol:cHEADER       := "CODIGO"
   oCol:bOnPostEdit   := { | oCol, xVal, nKey | If( RecCount() == 0,( DbAppend(), oBrw:Refresh() ),) ,;
   If( nKey == VK_RETURN, If(BArticulo(oBrw,xVal,"CODIGO"),((cAlias1)->importe := Importe(oBrw,1),;
                           (cAlias1)->(dbAppend()),oBrw:Refresh(),oBrw:aCols[1]:Edit()  ),),),;
   If( nKey == VK_ESCAPE .and. Empty((cAlias1)->codigo),( (cAlias1)->(dbDelete()),;
               (cAlias1)->(__dbPack()),(cAlias1)->(dbGoBottom()),oBrw:Refresh() ), ) }
   
         
     oCol = oBrw:AddCol()
   oCol:bStrData      := { ||(cAlias1)->CONCEPTO}   
   oCol:nEditType     := EDIT_GET
   oCol:cHEADER       := "CONCEPTO"
   oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, DbAppend(),),;
     If( nKey == VK_RETURN, (cAlias1)->CONCEPTO := xVal ,)}
   
                 
     oCol = oBrw:AddCol()
   oCol:bStrData      := { ||Transform( (cAlias1)->CANTIDAD,"999,999.99" ) }     
   oCol:nDataStrAlign := 1 //alineado a la derecha
   oCol:nEditType     := EDIT_GET
   oCol:cHEADER       := "CANTIDAD"
   oCol:bOnPostEdit = { | oCol, xVal, nKey | If( RecCount() == 0, DbAppend(),),;
     If( nKey == VK_RETURN, ( (cAlias1)->CANTIDAD := Val(xVal),;
   If ( Val(xVal) <> 0, ((cAlias1)->importe := Importe(oBrw,2) ),)) ,) }
................................etc      
 


Para un Array. ( En realidad es el mismo programa la única diferencia es que el código de más arriba es para dbfs y el de abajo es con ado y acces)
Code: Select all  Expand view
  oBrw = TXBrowse():New( oDlgAlb )
   oBrw:SetArray(aLinVentas,.T.,0,.F.)
   
   oBrw:nColDividerStyle    := LINESTYLE_BLACK
   oBrw:nRowDividerStyle    := LINESTYLE_BLACK
   oBrw:lRecordSelector     := .t.
   oBrw:nHeaderLines        := 1
   oBrw:nDataLines          := 1
     oBrw:nRowSel             := 1
     oBrw:nMarqueeStyle       := 3 //Highlight row //MARQSTYLE_HIGHLCELL
     oBrw:bClrSelFocus        := {||{CLR_WHITE,RGB(176,196,222 )}}
   oBrw:bClrStd             := {|| { nRGB( 0, 0, 0), nRGB(255,248,220) } } // colores para lineas normales
   oBrw:bClrSel             := {|| { nRGB(0,0,0), nRGB(241,222,088) } } // para barra de linea selecc cuando el control no tiene el foco
   oBrw:bClrSelFocus        := {|| { nRGB( 0, 0, 0), nRGB(248,195, 34) } } // para barra de linea selecc cuando el control tiene el foco

   oBrw:lFastEdit  := .T.
   oBrw:bPastEof = {||  InsertRow(oBrw) ,oBrw:GoLeftMost(),oBrw:Refresh(),;
                                                oBrw:aCols[ 1 ]:Edit() }
                                               //agrega registro y "oprime" enter

   oCol = oBrw:AddCol()
   oCol:bStrData      := { || aLinVentas[oBrw:nArrayAt,1] }  
   oCol:nEditType     := EDIT_GET
   oCol:cHEADER       := "ARTICULO"
   oCol:bOnPostEdit   := { | oCol, xVal, nKey | If( Empty(aLinVentas),( InsertRow(oBrw), oBrw:Refresh() ),) ,;
   If( nKey == VK_RETURN, If(BArticulo(oBrw,xVal,"CODIGO"),(aLinVentas[oBrw:nArrayAt,9] := Importe(oBrw,1),;
                           InsertRow(oBrw),oBrw:Refresh() ),),),;
   If( nKey == VK_ESCAPE .and. Empty(aLinVentas[oBrw:nArrayAt,1]), (DeleteRow(oBrw),;
                                    oBrw:Refresh() ), ) }
                               
   oCol:nArrayCol := 1
*-------------------------------------------------------------------------------          
     oCol = oBrw:AddCol()
   oCol:bStrData      := { || aLinVentas[oBrw:nArrayAt,2] }
   oCol:nEditType     := EDIT_GET
   oCol:cHEADER       := "DESCRIPCIÓN"
   oCol:bOnPostEdit = { | oCol, xVal, nKey | If( Empty(aLinVentas), (InsertRow(),oBrw:Refresh() ),),;
     If( nKey == VK_RETURN, aLinVentas[oBrw:nArrayAt,2] := xVal ,) }
   oCol:nArrayCol := 2    
*-------------------------------------------------------------------------------                 
     oCol = oBrw:AddCol()
   oCol:bStrData      := { ||Transform( aLinVentas[oBrw:nArrayAt,3],"999,999.99" ) }     
   oCol:nDataStrAlign := 1 //alineado a la derecha
   oCol:nEditType     := EDIT_GET
   oCol:cHEADER       := "CANTIDAD"
   oCol:bOnPostEdit = { | oCol, xVal, nKey | If( Empty(aLinVentas), (InsertRow(),oBrw:Refresh() ),),;
     If( nKey == VK_RETURN, ( aLinVentas[oBrw:nArrayAt,3] := xVal,;
   If ( xVal <> 0, (aLinVentas[oBrw:nArrayAt,9] := Importe(oBrw,2) ),)) ,) }
   oCol:nArrayCol := 3
..............................etc
          


A ver si te sirve de algo
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby nageswaragunupudi » Thu May 30, 2013 1:16 pm

Mr Miguel Salas

After opening new recordset, you should assign it to oBrwDet:oRs := <newrecordset> and then call oBrwDet:Refresh()
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10643
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby nageswaragunupudi » Thu May 30, 2013 2:19 pm

Hints for browsing Parent and Child tables with XBrowse using ADO.
It is not necessary to close and reopen record set every time the row in parent table changes. It is easier to open full child table and keep changing oRsChild:Filter.
Instead of using SQL INSERT statements, it is better to use RecordSet's AddNew() method. AddNew() method automatically updates the recordset. If we use SQL INSERT statement, we need to use ReQuery() method to read the data again into the record set.

Here I give a very simple self contained example of Parent Child browse using ADO recordsets.

Important part of the sample is the oBrwParent:bChange codeblock
Code: Select all  Expand view
     :bChange    := { || oRsChild:Filter := "PARID=" + LTrim( Str( oRsParent:Fields( "ID" ):Value ) ), ;
                          oBrwChild:GoTop(), oBrwChild:Refresh() }
 

This sample program is fully self contained and you can just compile and run. The program creates a sample MDB ( MsAccess database ), creates parent and child tables and shows the browse. You can add parents and childs and see how it works.

Code: Select all  Expand view
#include "fivewin.ch"
#include "xbrowse.ch"

static cMdb := "parchild.mdb"
static oCn

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

function Main()

   if ! CreateMDB( cMdb )
      MsgStop( "Can not create MDB database" )
      return nil
   endif
   oCn      := FW_OpenAdoConnection( ;
               "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ;
               cFilePath( ExeName() ) + cMdb + ";User ID=Admin;Password=;" )

   if oCn != nil
      CreateTables()
      BrowseTables()
      oCn:Close()
   else
      MsgAlert( "Can not open MDB" )
   endif

return nil

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

static function BrowseTables()

   local oRsParent, oRsChild
   local oBrwParent, oBrwChild
   local oDlg, oFont

   oRsParent   := FW_OpenRecordSet( oCn, "PARENT" )
   oRsChild    := FW_OpenRecordSet( oCn, "CHILD"  )

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   DEFINE DIALOG oDlg SIZE 600,300 PIXEL ;
      TITLE "ADO: PARENT CHILD BROWSE" FONT oFont

   @ 30,10 XBROWSE oBrwParent SIZE 135,-10 PIXEL OF oDlg ;
      DATASOURCE oRsParent AUTOCOLS HEADERS "ID", "Parent" ;
      COLSIZES 40 CELL LINES NOBORDER FASTEDIT

   WITH OBJECT oBrwParent
      :lHScroll                  := .f.
      :aCols[ 2 ]:nEditType      := EDIT_GET
      :nStretchCol               := 2
      :bChange    := { || oRsChild:Filter := "PARID=" + LTrim( Str( oRsParent:Fields( "ID" ):Value ) ), ;
                          oBrwChild:GoTop(), oBrwChild:Refresh() }
      :CreateFromCode()
   END

   @ 30,146 XBROWSE oBrwChild SIZE -10,-10 PIXEL OF oDlg ;
      DATASOURCE oRsChild AUTOCOLS HEADERS "ID", "ParID", "Child" ;
      COLSIZES 40, 40 CELL LINES NOBORDER FASTEDIT

   WITH OBJECT oBrwChild
      :lHScroll                  := .f.
      :aCols[ 3 ]:nEditType      := EDIT_GET
      :nStretchCol               := 3
      :CreateFromCode()
   END

   @ 10,10 BUTTON "AddParent" SIZE 60,12 PIXEL OF oDlg ACTION AddParent( oBrwParent )
   @ 10,oBrwChild:nLeft BUTTON "AddChild" SIZE 60,12 PIXEL OF oDlg ;
      ACTION AddChild( oBrwChild, oBrwParent )

   Eval( oBrwParent:bChange )

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

   oRsParent:Close()
   oRsChild:Close()

return nil

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

static function AddParent( oBrwParent )

   local cName := Space( 20 )

   if MsgGet( "Enter Parent Name", "ADD PARENT", @cName ) .and. ;
      ! Empty( cName )

      WITH OBJECT oBrwParent:oRs
         :AddNew()
         :Fields( "NAME" ):Value   := AllTrim( cName )
         :Update()
      END
      oBrwParent:Refresh()
      Eval( oBrwParent:bChange )
   endif
   oBrwParent:SetFocus()

return nil

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

static function AddChild( oBrwChild, oBrwParent )

   local cName := Space( 20 )

   if MsgGet( "Enter Chld Name", "ADD CHILD", @cName ) .and. ;
      ! Empty( cName )

      WITH OBJECT oBrwChild:oRs
         :AddNew()
         :Fields( "NAME" ):Value    := AllTrim( cName )
         :Fields( "PARID" ):Value   := oBrwParent:oRs:Fields( "ID" ):Value
         :Update()
      END
      oBrwChild:Refresh()
   endif
   oBrwParent:SetFocus()

return nil

//----------------------------------------------------------------------------//
// INITIAL CREATION OF TABLES
//----------------------------------------------------------------------------//

static function CreateMDB( cMdbName )

   local cFile := cFilePath( ExeName() ) + cMdbName
   local cStr  := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cFile
   local lCreated := .f.
   local oCat

   FErase( cFile )
   oCat  := TOleAuto():New( "ADOX.Catalog" )
   TRY
      oCat:Create( cStr )
      lCreated    := .t.
   CATCH
   END

return lCreated

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

static function CreateTables()

   local cName

   oCn:Execute( "CREATE TABLE PARENT ( ID AUTOINCREMENT PRIMARY KEY, NAME VARCHAR( 20 ) )" )
   oCn:Execute( "CREATE TABLE CHILD ( ID AUTOINCREMENT PRIMARY KEY, PARID INT, NAME VARCHAR( 20 ) )" )

   for each cName in { "Albert", "James", "Edward", "John" }
      oCn:Execute( "INSERT INTO PARENT ( NAME ) VALUES ( '" + cName + "' )" )
   next
   oCn:Execute( "INSERT INTO CHILD ( PARID, NAME ) VALUES ( 1, 'David' )" )

return nil

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


Image

I suggest first compile and run the program as it is.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10643
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby Antonio Linares » Thu May 30, 2013 3:25 pm

Aqui tienes una versión actualizada de FiveDBU (incluye todo el código fuente) que añade registros correctamente en un recordset de ADO:

https://code.google.com/p/fivewin-contributions/downloads/detail?name=fivedbu_20130530.zip

Como puedes comprobar, añade registros y el browse se muestra correctamente :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby Miguel Salas » Thu May 30, 2013 4:07 pm

Muchas gracias por sus respuestas , voy a revisar y les cuento, saludos
Miguel Salas
 
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby Antonio Linares » Thu May 30, 2013 5:46 pm

Revisa el código de la funcion RSAppendBlank( oRS ) en fivedbu.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby Miguel Salas » Fri May 31, 2013 1:01 am

checando sus recomendaciones detecté lo siguiente:

no es solo en el browse detalle, limpiando la tabla padre, tampoco muestra el primer registro agregado,(lo hace cuando cierro el dialogo y entro de nuevo) entonces concluyo que es al crear un browse:setado(oRs) con un recordset vacío cuando no se refresca.

estamos cercando el problema.
saludos y gracias
Miguel Salas
 
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: xbrowse+ADO NO REFRESCA EL BROWSE

Postby Pedro » Fri May 31, 2013 10:31 am

Miguel, por qué no pruebas a crear un registro vacío en el recordset y lo modificas? Era lo que yo hacía cuando usaba el recordset a pelo y no me daba problemas.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 39 guests