Page 1 of 1

Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 2:54 am
by JoseAlvarez
Saludos amigos.

Hice un folderex con 2 pestañas, en cada una necesito mostrar un xBrowse que su datasource son arreglos.

El problema es que en el primero no se muestran los datos, pero en el segundo sí.
Ya todo esta bien revisado, la asignacion de los arreglos al browse, se verfica que tienen datos, se asigna el dialog correcto, pero nada,
el primer browse no muestra nada. dejo las imagenes por si alguien sabe que me puede estar pasando.

Image


Image

Re: Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 3:37 am
by Antonio Linares
José,

Puedes mostrar el código ?

gracias

Re: Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 12:35 pm
by JoseAlvarez
Master Antonio, aquí el código:

Code: Select all | Expand

	///////////////  CALL  TO RESUMEN DE FACTURAS //////////////////////////////////////////////////////////////////////////////////
	cQuery := "CALL obtener_saldos_clientes('"+_cPrefijo+"');"

	TRY
           oQry := _oSqlConex:Query( cQuery )
	  _oSqlConex:NextResult()
       CATCH
	  Fnct_MsgErrorBD("NoMySql"  , .f. , "No hay conexión a La Base de Datos" , "Sin Acceso a La Red","Error en servicio de Datos",)
	  _Close()
	  return .f.
       END TRY

	aResumen    :={}
	aResumenBack:= {}

	aResumen:=oQry:FillArray()
	aResumenBack:=aClone(aResumen)

///////////////  CALL  TO DETALLES DE FACTURAS //////////////////////////////////////////////////////////////////////////////////

	cQuery := "CALL ObtenerEstadoFacturas('"+_cPrefijo+"');"
           
	TRY
	    oFacturas := _oSqlConex:Query( cQuery )
	   _oSqlConex:NextResult()
        CATCH
	   Fnct_MsgErrorBD("NoMySql"  , .f. , "No hay conexión a La Base de Datos" , "Sin Acceso a La Red","Error en servicio de Datos",)
	   _Close()
	  return .f.
	END TRY

	aFacturas := {}
	aFacturas := oFacturas:FillArray()
	aFacturasBackup:=aClone(aFacturas)

	Fnct_CuadreToExcel()

	_Close()

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  Define cursor oCursorBar       resource 'manito'
  Define cursor oCursorIndicador resource 'Indicador'
  Define Font   oFHeadBrw Name "Segoe UI SemiBold" Size 0, -14

  Define Dialog oDlg_Facturas resource "oDlg_Facturas" title 'Gestión de Documentos Por Cobrar'
      oDlg_Facturas:lHelpIcon:=.f.

      Redefine Folderex oFolder Id 500 of oDlg_Facturas prompt 'Resumen', 'Detalles' BITMAPS ;
                                                                                   'open2'  , 'close'    DIALOGS ;
                                                                                   'oDlg_FactResumen' ,;
                                                                                   'oDlg_FactDetalle'  ;
																																   TAB HEIGHT 28 ROUND 5on change (Fnct_oFolderBitmaps())
      oFolder:aDialogs[ 1 ]:SetBrush( oBrush )
      oFolder:aDialogs[ 2 ]:SetBrush( oBrush )
       
        
 ////////////////////  XBROWSE   RESUMEN   ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            
           
      Redefine get oGetSeek2 Var cSeek2 Id 4061  of oFolder:aDialogs[ 1 ] on change (cSeek2:=oGetSeek2:GetText()), Fnct_Seek(@aResumen), 
      Fnct_PonTotales() ) WHEN len(aResumen)>0
      oGetSeek2:SetFont(_oFontGets)
      oGetSeek2:SetColorFocus( CLR_YELLOW )

      Redefine xBrowse oBrwVer Id 4060  DATASOURCE aResumen AUTOCOLS ;
                                                            COLUMNS     cRif, cNombre, nVencido, nNoVencido, nVenceHoy, nTotalGeneral, nCodigoCliente ;
                                                            HEADERS     "R.I.F", "Nombre", "Vencido", "No Vencido", "Vence Hoy", "Total","" ;
                                                            FIELDSIZES  90, 250, 100, 100, 100, 100, 30 ;
                                                            PICTURE     nil, nil, '@E 9,999,999,999.99', '@E 9,999,999,999.99' '@E 
                                                                        '9,999,999,999.99', '@E 9,999,999,999.99', nil ;
                                                           JUSTIFY     AL_LEFT, AL_LEFT, AL_RIGHT, AL_RIGHT, AL_RIGHT, AL_RIGHT, AL_RIGHT ;
                                                           CELL LINES  ;
                                                           FASTEDIT    ;
                                                           FOOTERS of oFolder:aDialogs[ 1 ] //on dblclick (cVarClien:=alltrim(oBrwVer:aCols[cNombre]:Value))
                                                           
      oBrwVer:aArrayData:=aResumen
      
       WITH object oBrwVer
          nCiclo:= 1
          do while nCiclo<=7
              oBrwVer:aCols[nCiclo] :nHeadStrAlign     := AL_CENTER
              oBrwVer:aCols[nCiclo] :oHeaderFont       := oFHeadBrw
              oBrwVer:aCols[nCiclo] :lAllowSizing      :=.t.
              nCiclo++ 
          enddo
                                            
          oBrwVer:aCols[7]:Hide()
          oBrwVer:lAllowColSwapping  :=.F.
          oBrwVer:nMarqueeStyle  := MARQSTYLE_HIGHLROW
          oBrwVer:l2007          := .f.
          oBrwVer:lFooter        := .t.
          oBrwVer:lRecordSelector:= .f.
          oBrwVer:bClrHeader     := { || { CLR_WHITE, CLR_BLUE, CLR_HGRAY } }
         :bClrFooter            := { || { CLR_WHITE, CLR_BLUE, CLR_HGRAY } }
         :aCols[1] :bFooter := { || 'Total -> '+transform(len(aResumen),"@E 99,999") }
         :aCols[3]:nFooterType := AGGR_SUM
         :bchange := { || Fnct_PonTotales(@aResumen) }
         :aCols[4]:nFooterType := AGGR_SUM
         :bchange := { || Fnct_PonTotales(@aResumen) }
       	 :aCols[5]:nFooterType := AGGR_SUM
         :bchange := { || Fnct_PonTotales(@aResumen) }
         :aCols[6]:nFooterType := AGGR_SUM
         :bchange := { || Fnct_PonTotales(@aResumen) }
                                     
         :MakeTotals()
	 oBrwVer:MakeTotals()
                                    
       END
                                                             
      oBrwVer:gotop()
      oBrwVer:Refresh()
            
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                                 
      Redefine get oGetSeek Var cSeek Id 11  of oFolder:aDialogs[ 2 ] on change (cSeek:=oGetSeek:GetText(), Fnct_SeekArray(), Fnct_PonTotales() ) WHEN len(aFacturas)>0
      oGetSeek:SetFont(_oFontGets)
      oGetSeek:SetColorFocus( CLR_YELLOW )

      Redefine Radio oRSeek Var nSeek Id 4002,4003 of oFolder:aDialogs[ 2 ] on change (oGetSeek:SetFocus()) WHEN len(aFacturas)>0

      Redefine xBrowse oBrwFac Id 4007  DATASOURCE aFacturas AUTOCOLS ;
                                                             AUTOSORT;
                                                             COLUMNS  cRifCliente, cCliente , cNumeroDoc, dEmision, dVcto, nDiasVcto, FacMonto, ;
		                                                          nFacPagos , nFacSaldo, cConcepto, nCodigoCli, nFacCodigoCli, nEmail, nLimite, cTolera ;
                                                             HEADERS  _cIdEmpresa, "Cliente", "N# Doc. ","Emisión", "Vencto.", "Dias Vcdo.", "Monto "+_cSignoMoneda ,;
                                                                            "Pagos", "Saldo", "Concepto", "", "", "", "", "" ;
                                                             FIELDSIZES   90, 250, 70, 75, 90, 85, 100, 100, 100, 160,20,20,50, 100, 0   ;
                                                             PICTURE      nil, nil, nil, nil, nil, nil, '@E 9,999,999,999.99', '@E 9,999,999,999.99','@E 9,999,999,999.99', ;
                                                                                nil, nil,nil, nil, '@E 9,999,999,999.99', nil ;
                                                             JUSTIFY      AL_LEFT, AL_LEFT, AL_CENTER, AL_CENTER, AL_CENTER, AL_CENTER,;
                                                                          AL_RIGHT, AL_RIGHT, AL_RIGHT, AL_LEFT, AL_LEFT, AL_CENTER, AL_LEFT, AL_LEFT, AL_CENTER  ;
                                                             CELL LINES   FASTEDIT FOOTERS of oFolder:aDialogs[ 2 ] on Dblclick (Fnct_FiltrarCliente(alltrim(oBrwFac:aCols[cCliente]:Value)))//(Fnct_FiltrarCliente(alltrim(oBrwFac:aCols[cCliente]:Value)))


      oBrwFac:aArrayData:=aFacturas

      WITH object oBrwFac
          nCiclo:= 1
          do while nCiclo<=nObrwColsToShow
             oBrwFac:aCols[nCiclo] :nHeadStrAlign     := AL_CENTER
             oBrwFac:aCols[nCiclo] :oHeaderFont       := oFHeadBrw
             oBrwFac:aCols[nCiclo] :lAllowSizing      :=.T.
             nCiclo++
          enddo
                                                                                                           
          oBrwFac:aCols[nCodigoCli]   :Hide()
          oBrwFac:aCols[nFacCodigoCli]:Hide()
          oBrwFac:aCols[11]:Hide()
          oBrwFac:aCols[12]:Hide()
          oBrwFac:aCols[13]:Hide()
          oBrwFac:aCols[14]:Hide()
          oBrwFac:aCols[15]:Hide()
          oBrwFac:lAllowColSwapping   :=.F.
          oBrwFac:nMarqueeStyle  := MARQSTYLE_HIGHLROW
          oBrwFac:l2007          := .f.
          oBrwFac:lFooter        := .t.
          oBrwFac:lRecordSelector:= .f.
          oBrwFac:bOnSort:={|b,oCol| oBrwFac:Gotop() }
          *:aCols[cConcepto]:bLDClickData:= {|| Fnct_VerConcepto()}        //oBrwCiudades:SetFilter( (oBrwCiudades:aCols[2]:value) = 
(oBrwEstados:aCols[1]:Value) )
          *:aCols[nFacPagos]:bLDClickData:= {|| Fnct_VerPagos()}
	  oBrwFac:bClrHeader     := { || iif(lBW, ( { CLR_WHITE, CLR_GRAY, CLR_GRAY }), ({ CLR_WHITE, CLR_BLUE, CLR_HGRAY })) }
          :bClrFooter            := { || iif(lBW, ( { CLR_WHITE, CLR_GRAY, CLR_GRAY }), ({ CLR_WHITE, CLR_BLUE, CLR_HGRAY })) }
          AEval( oBrwFac:aCols, { |oCol| ;
          oCol:bClrSelFocus  := { || { CLR_BLACK, RGB( 255, 224, 126) } }, ;
          oCol:bPaintText := { |oCol, hDC, cData, aRect, aColors| ;
          PaintCol( oCol, hDC, cData, aRect, aColors ) } } ) 
          :nStretchCol      := STRETCHCOL_WIDEST
          :aCols[nFacMonto]:nFooterType := AGGR_SUM  // TOTAL
	  :aCols[nFacPagos]:nFooterType := AGGR_SUM //TOTAL
	  :aCols[nFacSaldo]:nFooterType := AGGR_SUM //TOTAL

	  :bRClicked :={ || Fnct_EditarFactura() }
	  :bchange := { || Fnct_PonTotales() }
	  :aCols[2]:cFooter := { || "  Total Documentos -> "+transform( len(aFacturas), "@E 9,999,999.99") }
	  :MakeTotals()
	  oBrwFac:MakeTotals()
       END
              
       WITH OBJECT oBrwFac:aCols[nDiasVcto]
	   oBrwFac:aCols[nDiasVcto]:bClrStd := ChangeColor()
       END
         
	WITH OBJECT oBrwFac:aCols[nFacPagos]
	      oCol:=oBrwFac:aCols[nFacPagos]
	      oBrwFac:aCols[nFacPagos]:nEditType := EDIT_BUTTON
              oBrwFac:aCols[nFacPagos]:bEditBlock := { |nRow,nCol,oCol,nKey| Fnct_VerPagos( nRow, nCol, oCol, nKey, oBrwFac:aCols[nFacMonto] :Value ,;
             oBrwFac:aCols[dEmision]  :Value ),oBrwFac:Refresh() }
 	   END
                        
           WITH OBJECT oBrwFac:aCols[cConcepto]
	    	 oCol:=oBrwFac:aCols[cConcepto]
	    	 oBrwFac:aCols[cConcepto]:nEditType := EDIT_BUTTON
                oBrwFac:aCols[cConcepto]:bEditBlock := { |nRow,nCol,oCol,nKey| Fnct_VerConcepto( nRow, nCol, oCol, nKey  ) }
 	   END

	  WITH OBJECT oBrwFac:aCols[dVcto]
		 oCol:=oBrwFac:aCols[dVcto]
		 oBrwFac:aCols[dVcto]:nEditType := EDIT_BUTTON
               oBrwFac:aCols[dVcto]:bEditBlock := { |nRow,nCol,oCol,nKey| Fnct_VerDiasCredito( nRow, nCol, oCol, nKey )  }
 	 END

	oBrwFac:gotop()
	oBrwFac:Refresh()

Re: Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 12:54 pm
by cnavarro
Jose, como primer paso comprueba que el array no está vacio

Code: Select all | Expand

// Despues de:
	aResumen:=oQry:FillArray()
	XBrowse( aResumen )

y dime si el xbrowse se muestra correctamente

Re: Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 1:08 pm
by JoseAlvarez
Gracias Master Antonio y Master Navarro. Muchas gracias por la ayuda,

Ya esta resuelto, como siempre, el error estaba entre la silla y el teclado.

No habia Asigando valores a las variables de las columnas del xBrowse... error de novato, pero suele suceder.

un abrazo.