Select todos los registros en xBrowse (SOLUCIONADO)

Select todos los registros en xBrowse (SOLUCIONADO)

Postby Armando » Fri Nov 20, 2020 3:11 pm

Hola Amigos:

Nuevamente aquí peleándome con un xBrowse.

EL browse esta definido para multiselect y necesito que al momento de
ir llenándolo con registros estos queden automáticamente seleccionados
con objeto de obtener el total de la columna.

Algún ejemplo?

Saludos
Last edited by Armando on Tue Nov 24, 2020 7:41 pm, edited 1 time in total.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3231
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Select todos los registros en xBrowse

Postby FranciscoA » Fri Nov 20, 2020 8:07 pm

Prueba el siguiente codigo y nos dices.
Code: Select all  Expand view  RUN
//-----------------------------------------------//
// AGREGAR REGISTROS QUEDANDO AUTOMATICAMENTE SELECCIONADOS
//-----------------------------------------------//
Function MultiSeleTodo()
local oDlg, oBrw, oFont
local aGradBarSel := { { 1, RGB(252,232,171), RGB(248,195, 34) } }
local aGradRowSel := { { 1, RGB(118,145,164), RGB(241,222,088) } }

    XbrNumFormat( 'A', .t. )

   USE CUSTOMER NEW ALIAS "CUST" SHARED

   COPY STRUCT TO ".\CUST2"
   USE CUST2 NEW ALIAS "CUST2" EXCLUSIVE

   CUST->(DBGOTO(5))

   DBSELECTAREA("CUST2")

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
   DEFINE DIALOG oDlg SIZE 700,400 PIXEL FONT oFont TITLE "AGREGAR ITEM Y SELECCIONARLO AUTOMATICAMENTE"

   @ 20,10 XBROWSE oBrw SIZE -10,-40 PIXEL OF oDlg ;
           DATASOURCE "CUST2" ;
           COLUMNS "FIRST", "LAST", "CITY", "ZIP" ;
           CELL LINES NOBORDER AUTOSORT

   WITH OBJECT oBrw
      :nMarqueeStyle   := MARQSTYLE_HIGHLROWMS //Multiselect
      :bClrSel         := {|| { nRGB(  0,  0,  0), aGradRowSel } }  // para barra de linea selecc cuando el control no tiene el foco
      :bClrSelFocus    := { || { CLR_BLACK, aGradBarSel } }     // para barra de linea selecc cuando el control tiene el foco
      :CreateFromCode()
   END

   @ 170, 10 BUTTON "Agregar Item" SIZE 60,20 PIXEL OF oDlg ;
             ACTION ( AgregItem("CUST","CUST2") ,;
                      oBrw:SetFocus(), oBrw:Refresh() ,;  
                      oBrw:Select(1),;  
                      CUST->(DbSkip()) )

   @ 170, 80 BUTTON "Salir" SIZE 60,20 PIXEL OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
      RELEASE FONT oFont
      Cust->(dbclosearea())
      Cust2->(dbclosearea())
      Ferase(".\Cust2.dbf")
return nil

//-----------------------------------------------//
Function AgregItem(cAliasFuente,cAliasDest)
local n

  (cAliasDest)->(dbappend())
  For n := 1 to (cAliasFuente)->(Fcount())
    (cAliasDest)->( FieldPut( n,(cAliasFuente)->(FieldGet(n)) ) )
  Next

Return nil

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Select todos los registros en xBrowse

Postby FranciscoA » Fri Nov 20, 2020 8:10 pm

Armando wrote:Hola Amigos:

Nuevamente aquí peleándome con un xBrowse.

EL browse esta definido para multiselect y necesito que al momento de
ir llenándolo con registros estos queden automáticamente seleccionados
con objeto de obtener el total de la columna.

Algún ejemplo?

Saludos

Una pregunta:
El total de la columna no lo obtienes con oBrw:MakeTotals() ?
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Select todos los registros en xBrowse

Postby Armando » Sat Nov 21, 2020 2:30 am

Francisco:

Como siempre, sacando las papas del horno.

El :MakeTotals no me sirve porque debo permitir al usuario
que también pueda elegir renglones a quitar. En otras palabras
necesito ambas posibilidades, MakeTotals y Select.

Voy a probar tu sugerencia.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3231
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Select todos los registros en xBrowse

Postby cmsoft » Sat Nov 21, 2020 1:11 pm

Armando, siguendo el ejemplo de Francisco, tambien podrias hacer una suma condicional, y usar en la tabla que editas un campo condicional con SetCheck
Code: Select all  Expand view  RUN

#include "FiveWin.ch"
#include "xbrowse.ch"
//-----------------------------------------------//
// AGREGAR REGISTROS QUEDANDO AUTOMATICAMENTE SELECCIONADOS
//-----------------------------------------------//
Function MultiSeleTodo()
local oDlg, oBrw, oFont, aTabla := {}
local aGradBarSel := { { 1, RGB(252,232,171), RGB(248,195, 34) } }
local aGradRowSel := { { 1, RGB(118,145,164), RGB(241,222,088) } }

    XbrNumFormat( 'A', .t. )

   //USE CUSTOMER NEW ALIAS "CUST" SHARED

   //COPY STRUCT TO ".\CUST2"
   AADD(aTabla,{"selecc","L",1,0})
   AADD(aTabla,{"codigo","N",03,0})
   AADD(aTabla,{"nombre","C",30,0})
   AADD(aTabla,{"import","N",10,2})
   DBCREATE("CUST2",atabla)
   USE CUST2 NEW ALIAS "CUST2" EXCLUSIVE

   //CUST->(DBGOTO(5))

   DBSELECTAREA("CUST2")

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
   DEFINE DIALOG oDlg SIZE 700,400 PIXEL FONT oFont TITLE "AGREGAR ITEM Y SELECCIONARLO AUTOMATICAMENTE"

   @ 20,10 XBROWSE oBrw SIZE -10,-40 PIXEL OF oDlg ;
           DATASOURCE "CUST2" ;
           COLUMNS "SELECC", "CODIGO", "NOMBRE", "IMPORT" FOOTERS;
           CELL LINES NOBORDER AUTOSORT ON CHANGE oBrw:MakeTotals()

   WITH OBJECT oBrw
      //:nMarqueeStyle   := MARQSTYLE_HIGHLROWMS //Multiselect
      :bClrSel         := {|| { nRGB(  0,  0,  0), aGradRowSel } }  // para barra de linea selecc cuando el control no tiene el foco
      :bClrSelFocus    := { || { CLR_BLACK, aGradBarSel } }     // para barra de linea selecc cuando el control tiene el foco      
      :aCols[ 1 ]:nEditType := EDIT_GET
      :aCols[ 1 ]:SetCheck()
      :aCols[ 4 ]:nFooterType := AGGR_SUM
      :aCols[ 4 ]:bSumCondition := {|| cust2->selecc = .T.}
      :MakeTotals()
      :CreateFromCode()
   END

   @ 170, 10 BUTTON "Agregar Item" SIZE 60,20 PIXEL OF oDlg ;
             ACTION ( AgregItem("CUST2") ,;
                      oBrw:SetFocus(), oBrw:Refresh(),oBrw:MakeTotals())
                      //oBrw:Select(1),;  
                      //CUST->(DbSkip()) )

   @ 170, 80 BUTTON "Salir" SIZE 60,20 PIXEL OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
      RELEASE FONT oFont
      Cust2->(dbclosearea())
      Ferase(".\Cust2.dbf")
return nil

//-----------------------------------------------//
Function AgregItem(cAliasDest)
  (cAliasDest)->(dbappend())
  (cAliasDest)->( FieldPut( 1,.t. ) )
  (cAliasDest)->( FieldPut( 2,(cAliasDest)->(reccount()) ) )
  (cAliasDest)->( FieldPut( 3,"Nombre"+STR((cAliasDest)->(reccount())) ) )
  (cAliasDest)->( FieldPut( 4,100*(cAliasDest)->(reccount())) )

Return nil
 

Espero te tire una pista
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Select todos los registros en xBrowse

Postby Armando » Tue Nov 24, 2020 7:41 pm

Amigos:

Deje el maketotals del select y el total global lo estoy haciendo "a pie".

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3231
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

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