FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour PROBLEMAS XBROWSE DE PINTADO
Posts: 336
Joined: Wed May 16, 2007 09:40 PM
PROBLEMAS XBROWSE DE PINTADO
Posted: Thu Feb 23, 2012 01:06 PM
TENGO UN XBROWSE QUE DEPENDIENDO DE LA CONDICION QUE TENGA CADA LINEA ADQUIERE SU COLOR ROJO,AMARILLO VERDE, ETC....
EL PROBLEMA ES EL SIGUIENTE QUE CUANDO TIENE SOLO DOS LINEAS EL ARRAY NO FUNCIONA LA CONDICION DE PINTADO, SIMPLEMENTE NO HACE NADA HE INTENTADO DE VARIAS FORMA Y NINGUNO PINTA, CASO CONTRARIO CUANDO EL ARRAY TIENE 1, 3 O MAS LINEAS SI FUNCIONA, UNA AYUDA YA QUE HE ESTADO VARIAS HORAS BUSCANDO LA SOLUCION Y NADA

Code (fw): Select all Collapse
#include "Fivewin.ch"
#include "Folder.ch"
#include "Xbrowse.ch"
#include "Xml.ch"
#include "hbxml.ch"
#include "ribbon.ch"
#include "image.ch"
#include "FastReph.ch"
#include "codebar.ch"

FUNCTION prg_202()
 LOCAL oDlg,oDbf1,oLbx
 LOCAL acAnexo2:={}
 PRIVATE r_orden:=1,r_clifac:='',r_docfac:=''

 CGreen:={ { 0.50,65280,16777215 },{ 0.50,16777215,65280 } }
 CYellow:= { { 0.50,65535,16777215 },{ 0.50,16777215,65535 }}
 CRed:= { { 0.50,255,16777215 },{ 0.50,16777215,255 }} 
 COrange:= { { 0.50,33023,16777215 },{0.50,16777215,33023 }}

 IF NetUse("NOTAVNTA", .T. )
  DATABASE oDbf1
  oDbf1:Load()
 ELSE
  MsgStop( "Fichero NOTA DE VENTAS Bloqueado" )
  RETURN NIL
 ENDIF
 
 dbSelectArea(oDbf1:cAlias)
 set order to 2

//LLENAR ARRAY
 go top
 do while .not. eof().and.val((odbf1:calias)->restado)<4
  aadd(acAnexo2,{ (odbf1:calias)->rfolio,dtoc((oDbf1:cAlias)->rfecha),;
                  (oDbf1:cAlias)->rtipod,(oDbf1:cAlias)->rnombre,;
                  (oDbf1:cAlias)->rtotalnv1,(odbf1:calias)->rorden,;
                  (odbf1:calias)->rselect,(odbf1:calias)->ratencion,;
                  (odbf1:calias)->rprovisor} )
  skip
 enddo
 if empty(acAnexo2)
  aadd(acAnexo2,{"","","","",0,0,"","",""})
 endif

 DEFINE DIALOG oDlg RESOURCE "SVE202"

 



  REDEFINE XBROWSE oLbx ID 101 OF Odlg;
           COLUMNS 1,2,3,4,5,6,7,8,9;
          HEADERS "Folio","Fecha","T/D","Nombre Factura","Valor Total",;
                   "Orden","Estado","Nro.Atencion","Nro.Provisorio"; 
           COLSIZES 70,65,30,200,70,55,90,90,75;
           PICTURE ,,,,'999,999,999.99';
           ARRAY acAnexo2 AUTOSORT UPDATE FOOTERS LINES AUTOCOLS CELL;
           ON RIGHT CLICK (prgres2(olbx:aArraydata[olbx:narrayat][7],;
                            val(olbx:aArraydata[olbx:narrayat][1])))


   olbx:bClrStd := {|| {CLR_BLACK, IF( olbx:aArrayData[olbx:nArrayAt][7]='SELECCIONADO',cYellow,;
                                   IF( olbx:aArrayData[olbx:nArrayAt][7]='PENDIENTE',cOrange,;
                                   IF( olbx:aArrayData[olbx:nArrayAt][7]='VISADO',cGreen,;
                                   IF( olbx:aArrayData[olbx:nArrayAt][7]='ERROR XML',cRed,;
                                   IF( olbx:aArrayData[olbx:nArrayAt][7]='RECHAZADO',cRed,CLR_WHITE ))))) } }

//    olbx:nstretchcol:=STRETCHCOL_WIDEST

//   olbx:acols[9]:='TOTALES:'
//  olbx:bClrStd := { || { CLR_WHITE, IIF( olbx:acols[1]="", nRgb(255, 255, 128), nRgb( 255, 255, 200 ) ) } }
 // olbx:acols[1]:SetCheck( , .t. )
//  olbx:acols[1]:bStrdata={|| seldoc(odbf1,olbx)}
//  olbx:aCols[1]:bClrStd := {|| {CLR_WHITE, IF( olbx:aArrayData[olbx][1] = .t., nRgb(255, 000, 000), nRgb( 000, 000, 128 ) ) } }
//  olbx:aCols[1]:bClrStd := {|| {CLR_WHITE, IF( olbx:aArrayData[olbx][1] = .t., cSelect, sSelect ) } }
//  olbx:bClrStd := { || { CLR_BLACK, IF(( o:nArrayAt )%2==0, nRgb(255, 255, 128), nRgb( 255, 255, 200 ) ) } }
//  olbx:bClrSel := { || { CLR_BLACK, nRgb( 255, 000, 000 ) } } 
//  oLbx:bClrSelFocus := { || { CLR_BLACK, CLR_WHITE } }

 ACTIVATE DIALOG oDlg CENTERED ON INIT (olbx:maketotals(),olbx:gotop(),olbx:refresh())

 NETCLOSEALL()
RETURN .T.


ARRAY CON UNA SOLA LINEA FUNCIONA BIEN



ARRAY DOS LINEAS NO FUNCIONA



ARRAY TRES O MAS LINEAS SI FUNCIONA

Fivewin-Xharbour 24.09, Iquique, Chile
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: PROBLEMAS XBROWSE DE PINTADO
Posted: Fri Feb 24, 2012 05:35 AM

Pruebas asi...

IIF( cVar = "A" ,;
( "amarillo" ) ,;
( IIF( cVar = "B" ,;
( "naranja" ) ,;
( IIF( cVar = "C" ,;
( "verde"),;
( IF( cVar = "D" ) ,;
( "rojo" ) ,;
( "blanco" ) ) ) ) ) ) )

sino, entonce te recomendaria mejor que validaras el color llamando a una funcion donde uses un DO CASE, asi lo hago en los browse cuando hay muchos datos variantes como lo que intentas hacer... espero te sirva, saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Re: PROBLEMAS XBROWSE DE PINTADO
Posted: Fri Feb 24, 2012 03:00 PM

Hola
Gracias por la respuesta, tienes algun pequeño ejemplo funcional porque no me funciona la opciones que tu me das...

Al parecer el XBROWSE tiene un problema

Fivewin-Xharbour 24.09, Iquique, Chile
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: PROBLEMAS XBROWSE DE PINTADO
Posted: Sat Feb 25, 2012 05:04 AM
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
Re: PROBLEMAS XBROWSE DE PINTADO
Posted: Sun Feb 26, 2012 02:16 AM
Hola

Yo tuve un problema parecido, y se presentaba cuando el arreglo venia con valores antes de
declarar el xbowse

prueba declarar el xbrowse con el arreglo vacio y luego llenas el arreglo y lo insettas al xbrowse con
Code (fw): Select all Collapse
oLbx:SetArray( aArray )
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Re: PROBLEMAS XBROWSE DE PINTADO
Posted: Mon Feb 27, 2012 01:51 AM

Patricio,,,

Funciono a la perfeccion

Gracias

Fivewin-Xharbour 24.09, Iquique, Chile

Continue the discussion