tDolphin ::Refresh() no funciona

Re: tDolphin ::Refresh() no funciona

Postby MarioG » Thu Nov 27, 2014 9:39 pm

goosfancito wrote:Asi es Mario,
Pero al momento de hacerle click a la columna 2, muuestra el triangulito pero no muestra ordenada la columna HASTA QUE sacas el mouse del mismo xbrowse o presionas tab y pasas el foco a otro control.
Con el solo hecho de sacar el mouse desde arriba del xbrowse ahi se entera que tiene que mostrar denuevo los datos y si! muestra esa columna 2 ordenada.

Gracias.

A ver si ayuda
Code: Select all  Expand view  RUN
  WITH OBJECT oCol1
      :cHeader:= "Código"
      :nWidth  := 60
      :oHeaderFont:= ::hFont["SysFontB"]

      :bStrData:= {|| StrZero( ::oQryIns:FieldGet( F_CodIns ),7 ) }

      :bLClickHeader:= {|| ::SetColOrden( col_CodIns ) }    // En cada columna que quiero cambiar el order, llamo a la funcion
   END
...

PROCEDURE SetColOrden( nCol, lLike, lOrden )   CLASS TMantenimiento

   DEFAULT lLike := FALSE, ;
           lOrden:= TRUE

   ::oQryIns:Open( "SELECT T1.CodInsumo, T1.DescIns, T2.StkActU, T3.Existencia, T4.Cantidad, T1.IDInsumo " + ;
                   "FROM " +::aTablas[_TBINSUMOS] +" AS T1, " +::aTablas[_TBSTOCK1] +" AS T2, " + ;
                   ::aTablas[_TBSTOCK2] +" AS T3, " +::aTablas[_TBSALI2S1]+" AS T4 " + ;
                   "WHERE T1.IDInsumo = T2.IDInsumo and T1.IDInsumo = T3.IDInsumo and T1.IDInsumo = T4.IDInsumo " + ;
                   if( lLike, if( !IsDigit(hS1:cLike), "and T1.DescIns REGEXP '"+hS1:cLike+"' ","and T1.CodInsumo LIKE '"+hS1:cLike+"%' "), "" ) + ;
                   if( lOrden, ;
                       " ORDER BY "+ if( nCol== 1, "T1.CodInsumo", ;                // Acá decide como ordena la consulta
                                     if( nCol== 2, "T1.DescIns", "T1.CodInsumo" )) + ;
                                     if( Empty( ::oBrwIns ), " ASC", ;
                                         if( ::oBrwIns:aCols[nCol]:cOrder == "A", " ASC", " DESC" ) ), "" ) )

   if !Empty( ::oBrwIns )
      aEval( ::oBrwIns:aCols, {|o,n| if( !n == nCol, o:cOrder:= "", ), if( n <= col_DescIns, o:oHeaderFont:= ::oBrwIns:oFont, ) })

      if lOrden                                                     // Con esto decimos como se mostrará el ícono ASC/DESC
         if ::oBrwIns:aCols[nCol]:cOrder == "A"
            ::oBrwIns:aCols[nCol]:cOrder:= "D"
         elseif ::oBrwIns:aCols[nCol]:cOrder == "D"
            ::oBrwIns:aCols[nCol]:cOrder:= "A"
         else
            ::oBrwIns:aCols[nCol]:cOrder:= "A"
         end
      end

      // Cosmética
      ::oBrwIns:aCols[nCol]:oHeaderFont:= ::hFont["SysFontB"]
      ::oBrwIns:bClrHeader := {|| if( Empty( ::oBrwIns:aCols[nCol]:cOrder ), { CLR_BLACK, GetSysColor( COLOR_BTNFACE ) }, ;
                                                                             { CLR_GREEN, GetSysColor( COLOR_BTNFACE ) } ) }

      ::oBrwIns:Refresh()
   end

// Fin
Importante, no te guies por el codigo MySQL porque no esta hecho con TDolphin (en definitiva lo importante es de xBrowse)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: tDolphin ::Refresh() no funciona

Postby goosfancito » Fri Nov 28, 2014 1:01 am

gracias a ambos.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: tDolphin ::Refresh() no funciona

Postby goosfancito » Fri Nov 28, 2014 1:01 pm

no estoy entendiendo la idea... a ver. esto me sigue sin funcionar

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

CLASS TCaja

   DATA oCnx

METHOD new (oCnx) CONSTRUCTOR
METHOD browser()
METHOD cargarBrowser(vGets)
METHOD query(cQuery)

END CLASS

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

METHOD new(oCnx)

   ::oCnx:= oCnx

   RETURN (Self)

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

METHOD browser()
   LOCAL oDlg,;
         oGets := Array(2),;
         vGets := Array(2),;
         oBrw,;
         oQry,;
         oFont, OFont1

   DEFINE FONT oFont NAME "" bold SIZE 0, -11
   DEFINE FONT oFont1 NAME "Ebrima" SIZE 0, -11

   vGets[1]:= CToD("21/11/2014")

   oQry:= ::cargarBrowser(vGets)

   DEFINE DIALOG oDlg resource "DLGCAJA"

      REDEFINE DTPICKER oGets[1] VAR vGets[1] ID 100 OF oDlg
      REDEFINE COMBOBOX oGets[2] VAR vGets[2] ID 101;
         ITEMS {"Todo", "Efectivo", "Cta Cte" };
         OF oDlg

      //----------( )----------

      oBrw:= TXBROWSE():new(oDlg)

      oBrw:setdolphin(oQry,.T., .T., {"c1", "c2", "c3", "c4"} )

      WITH OBJECT oBrw
         WITH object :aCols[1]
            :odatafont     := oFont
            :cHeader       := "Id"
            :nHeadStrAlign := AL_CENTER
            :oheaderfont   := oFont
            :oheaderfont   := oFont
         END with

         WITH object :aCols[2]
            :cHeader       := "Apellido y Nombres"
            :nHeadStrAlign := AL_CENTER
            :nWidth        := 250
            :oheaderfont   := oFont
            :odatafont     := oFont1
         END with

         WITH object :aCols[3]
            :cHeader       := "Domicilio"
            :nWidth        := 220
            :nHeadStrAlign := AL_CENTER
            :oheaderfont   := oFont
            :odatafont     := oFont1
         END with

         WITH object :aCols[4]
            :cHeader       := "Teléfono"
            :nHeadStrAlign := AL_CENTER
            :oheaderfont   := oFont
            :odatafont     := oFont1
         END with

      END WITH

      oBrw:aCols[1]:setorder()

      AEval(oBrw:aCols,{|o| o:bRClickHeader := {|| NIL } })

      oBrw:createfromresource(102)

      //----------( )----------

      oGets[1]:bchange:= {|| oQry:= ::cargarBrowser(vGets), oBrw:refresh() }


   ACTIVATE DIALOG oDlg CENTERED

   RETURN (NIL)

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

METHOD cargarBrowser(vGets)
   LOCAL cDatos, eDatos

   cDatos := "select " +;
      "tbfacturas.fecha as c1, " +;
      "tbfacturados.descripcion as c2, " +;
      "tbfacturados.cantidad as c3, " +;
      "tbfacturados.precio as c4, " +;
      "tbfacturados.idfactura c5 "+;
      "from " +;
      "tbfacturas " +;
      "left join tbfacturados " +;
      "on tbfacturas.id = tbfacturados.idfactura " +;
      "where tbfacturas.fecha = " + ClipValue2SQL(vGets[1])+;
      " order by tbfacturados.descripcion"

   eDatos:= { | query | query:= ::query(cDatos) }

   RETURN (Eval(eDatos))

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

METHOD query(cQuery)
   LOCAL oQry

   DEFINE query oQry cQuery

   RETURN (oQry)

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

 


Asi tal cual el xbrowse me sigue mostrando la primer consulta, o sea, hago el cambio de fecha va trae los datos de la consulta (y los trae, porque los verifique) pero
el xbrowse sigue sin enterarse de que tiene que mostrarlos.

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 10 guests