Error con TFOLDEREX y xBrowse

Post Reply
User avatar
JoseAlvarez
Posts: 826
Joined: Sun Nov 09, 2014 5:01 pm
Been thanked: 7 times

Error con TFOLDEREX y xBrowse

Post 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
"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.
User avatar
Antonio Linares
Site Admin
Posts: 42863
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 198 times
Been thanked: 124 times
Contact:

Re: Error con TFOLDEREX y xBrowse

Post by Antonio Linares »

José,

Puedes mostrar el código ?

gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
JoseAlvarez
Posts: 826
Joined: Sun Nov 09, 2014 5:01 pm
Been thanked: 7 times

Re: Error con TFOLDEREX y xBrowse

Post 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()
"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.
User avatar
cnavarro
Posts: 6675
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Has thanked: 12 times
Been thanked: 13 times

Re: Error con TFOLDEREX y xBrowse

Post 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
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
User avatar
JoseAlvarez
Posts: 826
Joined: Sun Nov 09, 2014 5:01 pm
Been thanked: 7 times

Re: Error con TFOLDEREX y xBrowse

Post 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.
"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.
Post Reply