FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error con TFOLDEREX y xBrowse
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM

Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 02:54 AM
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.




"Los errores en programaci贸n, siempre est谩n entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 03:37 AM

Jos茅,

Puedes mostrar el c贸digo ?

gracias

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM

Re: Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 12:35 PM
Master Antonio, aqu铆 el c贸digo:
	///////////////  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()
"Los errores en programaci贸n, siempre est谩n entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

Re: Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 12:54 PM
Jose, como primer paso comprueba que el array no est谩 vacio
// Despues de:
	aResumen:=oQry:FillArray()
	XBrowse( aResumen )
y dime si el xbrowse se muestra correctamente
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM

Re: Error con TFOLDEREX y xBrowse

Posted: Wed May 14, 2025 01:08 PM

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.

"Los errores en programaci贸n, siempre est谩n entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.

Continue the discussion