-
Posts
733 -
Joined
-
Last visited
-
Days Won
18
Reputation Activity
-
evertonlb reacted to oribeiro in Envio de SMS - Pronto
Me cadastrei e dei uma olhada no site. O serviço me interessa.
Você tem um exemplo de integração usando Fivewin + xHarbour?
-
evertonlb reacted to kapiaba in Acessar um site com o Chrome
Fácil: use o CHROME como Navegador DEFAULT.
//-> Programa Para acionar os Correios - by kapiabafwh@gmail.com #Include "FiveWin.Ch" Static oWnd Function Main() LOCAL cSiteCorreios cSiteCorreios := ( "http://www.buscacep.correios.com.br/sistemas/buscacep/BuscaCepEndereco.cfm" ) //-> Invisibilizo a Janela DEFINE WINDOW oWnd FROM -10, -10 TO -5, -5 ACTIVATE WINDOW oWnd ; ON INIT( ShellExecute(GetActiveWindow(),"open",'"'+cSiteCorreios+'"'), oWnd:End() ) // Google // ShellExecute(GetActiveWindow(),"open",'"'+cSite+'"') // Internet Explorer // ON INIT( ( MeuWinExec( "Start Iexplore.Exe http://www.buscacep.correios.com.br/sistemas/buscacep/resultadoBuscaCepEndereco.cfm?t", 0 ) ), oWnd:End() ) // ON INIT( ( MeuWinExec( "Start Iexplore.Exe http://www.correios.com.br/", 0 ) ), oWnd:End() ) Return Nil /* // IsWin2000() // IsWinXP() // IsNTPreWin2K() // IsNTWorkstation() // IsNTServer() // IsWin2000Prof() // IsWin2000Server() */ FUNCTION MeuWinExec( cParametro ) //LOCAL cExec := GetPvProfString("Editor","Pgm","notepad", cIniFile ) LOCAL cExecute := GetPvProfString( "" ) // NT, 2000 e XP IF IsWinNT() .OR. IsWin2000() cExecute := GetEnv( "COMSPEC" ) + " /C " ENDIF RETURN WinExec( cExecute + cParametro, 0 ) //-> Fim do programa
-
evertonlb got a reaction from rochinha in Acrescentar METODO em uma Classe - Resolvido
Ok... incluÃdo o bChange
Se alguém precisar, é só pedir!
-
evertonlb got a reaction from frkiko in Envio de SMS - Pronto
Ai povo.. a coisa qdo aperta a gente tem que se virar né?? Agora além de programar durante as noites e meia madrugada, estou trabalhando numa Telecom..
Temos uma solução bem legal pra envio de SMS, integra via API, e a ferramenta de envio conta com um CRM, qdo uma mensagem é enviada essa info vai pra uma time line, se quiser responder de dentro do "DisparoPro", pode ser feito com um box.. o lance vira um Chat praticamente. rsrsrsrsrsr Não há custo algum de integração, claro.. a única coisa que vendemos são os SMS mesmo...
se alguém tem algum interesse ou dúvida, (49)99984-3663 WhatsApp
-
-
evertonlb got a reaction from kapiaba in Preciso de Idéias por favor...
Eu só controlo o operador pelo código dele... para entrar no sistema cada um digita seu código e senha, assim no final do dia cara um faz o fechamento e o sistema só pega o movimento do operador atual...
-
evertonlb got a reaction from kapiaba in Problemas na Argox 214 Plus - RESOLVIDO
Kapiaba do céu... valeu mesmo cara. Eu mandava o "Chr(13) + Chr(10)" depois de cada linha... tirei.. deixei só o Chr(13) e funcionou!!
-
evertonlb reacted to kapiaba in Problemas na Argox 214 Plus - RESOLVIDO
http://www.pctoledo.com.br/forum/viewtopic.php?p=100508#p100508
-
evertonlb reacted to kapiaba in Problemas na Argox 214 Plus - RESOLVIDO
Veja se ajuda, ahi no Paranáuê do Moro(bleaaaarrrggghhh) kkkkkkkkkkkkkkk
[/code]
FUNCTION IMPETIQARGOX( lAppend, oDbfEstoque, xop, xgrupo, oDbfEnf )
FIELD COD, DESC, ULTTABA, ULTTAB, TIPO, CODFORN, PROD1, nome, GRUPO, NNF
LOCAL XCOPIASI, NHANDLE, XCOR, XTAMA, XPRECO, XARQC, XDESC, xpro, oPrn
MEMVAR XCOD, XNCOPIAS
PUBLIC XEMPDIR, XF, XDA
//-> Para Checar se a Impressora Existe ou Esta Ativa
EXTERNAL ISPRINTER
IF !ISPRINTER()
CHECA_IMP()
RETURN NIL
ENDIF
IF MsgYesNo( "Atenção Por Favor: " + CRLF + ;
"Posso Imprimir? " + CRLF + ;
"Impressora Já Está Ligada?" + CRLF + ;
+ CRLF + ;
"Por Favor, Verifique Se a " + CRLF + ;
"Impressora Já Está Pronta!", ;
"Por Favor, Confirme!!!" ) = .F.
RETURN NIL
ENDIF
IF xop = 9
// Cracha operadores * oDbfEstoque ‚ de proposito pois vem com odbfvendedor do operador.prg
SELECT( oDbfEstoque:cAlias )
XCOD = "1" + left( COD, 2 ) + DECRYPT( ALLTRIM( ( oDbfEstoque:cAlias )->PROD1 ), "*+-." )
XDESC = NOME
xNcopias := 1
ELSEIF xop = 6
// Etiqueta gondula grupo - APOS REAJUSTE DE PRECO
SELECT( oDbfEstoque:cAlias )
IF MsgNoYes( oemtoansi( "ATENۂO: ** ETIQUETAS DOS PRODUTOS EM PROMOۂO ** " ) + CRLF + ;
+ CRLF + ;
oemtoansi( "Para Imprimir Etiqueta de G“ndula Somente dos Produtos em " ) + CRLF + ;
oemtoansi( " Promo‡Æo, escolha a op‡Æo [SIM]" ) + CRLF + ;
+ CRLF + ;
oemtoansi( "Para Imprimir Etiqueta de G“ndula de Grupo ou Fam¡lia dos Produtos," ) + CRLF + ;
oemtoansi( " escolha a op‡Æo [NÇO]" ) + CRLF + ;
+ CRLF + ;
+ CRLF + ;
oemtoansi( "[SIM] -> Imprimir Etiqueta dos Produtos em Promo‡Æo" ) + CRLF + ;
oemtoansi( "[NÇO] -> Imprimir Etiqueta do Grupo ou Fam¡lia de Produtos" ), ;
"Informação Para o Usuário... " ) = .T.
Xpro := 2
ELSE
Xpro := 1
ENDIF
IF xPro = 1
SET ORDER TO 5
( oDbfEstoque:cAlias )->( OrdScope( 0, xGrupo ) ) // Inicio do SCOPE.
( oDbfEstoque:cAlias )->( OrdScope( 1, xGrupo ) ) // Fim do SCOPE.
GO TOP
ELSE
SET ORDER TO 1
( oDbfEstoque:cAlias )->( OrdScope( 0, nil ) ) // Inicio do SCOPE.
( oDbfEstoque:cAlias )->( OrdScope( 1, nil ) ) // Fim do SCOPE.
LOCATE FOR VAL( SUBSTR( TIPO, 65, 8 ) ) > 0 .AND. CTOD( SUBS( TIPO, 28, 8 ) ) >= XDA
ENDIF
XNCOPIAS := 1
ELSEIF xop = 7
// Etiqueta gondula reajuste de pre‡o
SELECT( oDbfEstoque:cAlias )
IF MsgNoYes( oemtoansi( "ATENۂO: ** ETIQUETAS DOS PRODUTOS EM PROMOۂO ** " ) + CRLF + ;
+ CRLF + ;
oemtoansi( "Para Imprimir Etiqueta de G“ndula Somente dos Produtos em " ) + CRLF + ;
oemtoansi( " Promo‡Æo, escolha a op‡Æo [SIM]" ) + CRLF + ;
+ CRLF + ;
oemtoansi( "Para Imprimir Etiqueta de G“ndula de Grupo ou Fam¡lia dos Produtos," ) + CRLF + ;
oemtoansi( " escolha a op‡Æo [NÇO]" ) + CRLF + ;
+ CRLF + ;
+ CRLF + ;
oemtoansi( "[SIM] -> Imprimir Etiqueta dos Produtos em Promo‡Æo" ) + CRLF + ;
oemtoansi( "[NÇO] -> Imprimir Etiqueta do Grupo ou Fam¡lia de Produtos" ), ;
"Informação Para o Usuário... " ) = .T.
Xpro := 2
ELSE
Xpro := 1
ENDIF
IF xPro = 1
SET ORDER TO 1
SELECT( oDbfEnf:cAlias )
SET ORDER TO 3
SET FILTER TO ( oDbfEnf:cAlias )->NNF = XGRUPO
GO TOP
ELSE
LOCATE FOR VAL( SUBSTR( TIPO, 65, 8 ) ) > 0 .AND. CTOD( SUBS( TIPO, 28, 8 ) ) >= XDA
ENDIF
XNCOPIAS := 1
ELSE
XCOD = COD
XDESC = DESC
XPRECO = ULTTABA
XCOR := LEFT( CODFORN, 8 )
XTAMA := SUBS( CODFORN, 9, 4 )
IF VAL( SUBSTR( TIPO, 65, 8 ) ) > 0 .AND. XDA <= CTOD( SUBS( TIPO, 28, 8 ) )
XPRECO := VAL( SUBSTR( TIPO, 65, 8 ) )
ENDIF
xNcopias := 1
ENDIF
XARQC = "BARRAS.TXT"
XCOPIASI = 0
WHILE ! EOF()
SYSREFRESH()
IF XOP = 6 .OR. XOP = 7
IF XOP = 7 .AND. XPRO = 1
XCOD := COD
SELECT( oDbfEstoque:cAlias )
SEEK xcod
ENDIF
XCOD = COD
XDESC = DESC
XPRECO = ULTTABA
IF VAL( SUBSTR( TIPO, 65, 8 ) ) > 0 .AND. XDA <= CTOD( SUBS( TIPO, 28, 8 ) )
XPRECO := VAL( SUBSTR( TIPO, 65, 8 ) )
ENDIF
IF XOP = 7 .AND. XPRO = 1
SELECT( oDbfEnf:cAlias )
ENDIF
ENDIF
XCOPIASI = 0
DO WHILE XCOPIASI < XNCOPIAS
SYSREFRESH()
XARQC = "BARRAS.TXT"
IF( NHANDLE := FCREATE( XARQC,0 ) ) == - 1
SINAL( "ARQUIVO DE TRABALHO BARRAS NAO CRIADO !!! !!!" )
ENDIF
FWRITE( NHANDLE, "L" + CHR( 13 ) )
FWRITE( NHANDLE, "m" + CHR( 13 ) )
FWRITE( NHANDLE, "e" + CHR( 13 ) )
FWRITE( NHANDLE, "PC" + CHR( 13 ) )
FWRITE( NHANDLE, "D11" + CHR( 13 ) )
FWRITE( NHANDLE, "H14" + CHR( 13 ) )
FWRITE( NHANDLE, "z" + CHR( 13 ) )
IF XOP = 3
// Promocional
FWRITE( NHANDLE, "161100002900050 P R O M O € A O" + CHR( 13 ) )
FWRITE( NHANDLE, "161100001700050" + LEFT( XDESC,23 ) + CHR( 13 ) )
FWRITE( NHANDLE, "161100000400500" + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100000050130" + ALLTRIM( XEMPDIR ) + CHR( 13 ) )
IF LEN( ALLTRIM( XCOD ) ) < 13
FWRITE( NHANDLE, "1G2207000300050" + LEFT( XCOD,7 ) + CHR( 13 ) )
ELSE
FWRITE( NHANDLE, "1F2207000300050" + LEFT( XCOD,12 ) + CHR( 13 ) )
ENDIF
ELSEIF XOP = 1
IF "COMBINACAO E ESTILO" $ XF
FWRITE( NHANDLE, "111100005550050" + LEFT( XEMPDIR,35 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100005550590" + LEFT( XEMPDIR,35 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100005250050" + LEFT( XDESC,35 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100005250590" + LEFT( XDESC,35 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100004950050" + "COR: " + TRIM( XCOR ) + " TAMANHO: " + TRIM( XTAMA ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100004950590" + "COR: " + TRIM( XCOR ) + " TAMAMHO: " + TRIM( XTAMA ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100004550050" + "DATA DA COMPRA: -----/-----/-----" + CHR( 13 ) )
FWRITE( NHANDLE, "111100004550590" + "DATA DA COMPRA: -----/-----/-----" + CHR( 13 ) )
IF LEN( ALLTRIM( XCOD ) ) < 13
FWRITE( NHANDLE, "1G2207003100120" + LEFT( XCOD,7 ) + CHR( 13 ) )
FWRITE( NHANDLE, "1G2207003100650" + LEFT( XCOD,7 ) + CHR( 13 ) )
ELSE
FWRITE( NHANDLE, "1F2207003100120" + LEFT( XCOD,12 ) + CHR( 13 ) )
FWRITE( NHANDLE, "1F2207003100650" + LEFT( XCOD,12 ) + CHR( 13 ) )
ENDIF
FWRITE( NHANDLE, "111100002400050" + LEFT( XEMPDIR,35 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100002400590" + LEFT( XEMPDIR,35 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100002100090" + LEFT( XDESC,35 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100002100590" + LEFT( XDESC,35 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100001800070" + "COR: " + TRIM( XCOR ) + " TAMANHO: " + TRIM( XTAMA ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100001800590" + "COR: " + TRIM( XCOR ) + " TAMANHO: " + TRIM( XTAMA ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100001550050" + SPACE( 10 ) + "PRECO: R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100001550590" + SPACE( 10 ) + "PRECO: R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) )
IF LEN( ALLTRIM( XCOD ) ) < 13
FWRITE( NHANDLE, "1G2207000350120" + LEFT( XCOD,7 ) + CHR( 13 ) )
FWRITE( NHANDLE, "1G2207000350650" + LEFT( XCOD,7 ) + CHR( 13 ) )
ELSE
FWRITE( NHANDLE, "1F2207000350120" + LEFT( XCOD,12 ) + CHR( 13 ) )
FWRITE( NHANDLE, "1F2207000350650" + LEFT( XCOD,12 ) + CHR( 13 ) )
ENDIF
ELSE
FWRITE( NHANDLE, "111100001950050" + LEFT( XDESC,28 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100001950401" + LEFT( XDESC,28 ) + CHR( 13 ) )
FWRITE( NHANDLE, "111100001950730" + LEFT( XDESC,28 ) + CHR( 13 ) )
FWRITE( NHANDLE, "131100001400110" + "R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) )
FWRITE( NHANDLE, "131100001400470" + "R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) )
FWRITE( NHANDLE, "131100001400800" + "R$ " + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) )
IF LEN( ALLTRIM( XCOD ) ) < 13
FWRITE( NHANDLE, "1G2207000300050" + LEFT( XCOD,7 ) + CHR( 13 ) )
FWRITE( NHANDLE, "1G2207000300401" + LEFT( XCOD,7 ) + CHR( 13 ) )
FWRITE( NHANDLE, "1G2207000300730" + LEFT( XCOD,7 ) + CHR( 13 ) )
ELSE
FWRITE( NHANDLE, "1F2207000300050" + LEFT( XCOD,12 ) + CHR( 13 ) )
FWRITE( NHANDLE, "1F2207000300401" + LEFT( XCOD,12 ) + CHR( 13 ) )
FWRITE( NHANDLE, "1F2207000300730" + LEFT( XCOD,12 ) + CHR( 13 ) )
ENDIF
ENDIF
ELSEIF XOP = 2 .OR. XOP = 6 .OR. xop = 7
// etiqueta DE GONDULA
// ok FWRITE(NHANDLE,"161100001700050"+LEFT(XDESC,23)+CHR(13))
// ok FWRITE(NHANDLE,"161100000400700"+LTRIM(TRANSFORM(XPRECO,"@E 999,999.99"))+CHR(13))
// OK 15=TAMANHO da letra
// 11=ALTURA da letra
FWRITE( NHANDLE, "151100001900050" + LEFT( XDESC,35 ) + CHR( 13 ) )
IF len( alltrim( xdesc ) ) > 16
FWRITE( NHANDLE, "161200000000700" + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) )
ELSE
FWRITE( NHANDLE, "161200000250700" + LTRIM( TRANSFORM(XPRECO,"@E 999,999.99" ) ) + CHR( 13 ) )
ENDIF
FWRITE( NHANDLE, "111100000050130" + ALLTRIM( XEMPDIR ) + CHR( 13 ) )
IF LEN( ALLTRIM( XCOD ) ) < 13
FWRITE( NHANDLE, "1G2207000300050" + LEFT( XCOD,7 ) + CHR( 13 ) )
ELSE
FWRITE( NHANDLE, "1F2207000300050" + LEFT( XCOD,12 ) + CHR( 13 ) )
ENDIF
ELSEIF XOP = 9
// etiqueta cracha
FWRITE( NHANDLE, "111100001950050" + "Nome: " + LEFT( XDESC,28 ) + CHR( 13 ) )
FWRITE( NHANDLE, "1F2207000300050" + LEFT( XCOD,12 ) + CHR( 13 ) )
// FWRITE(NHANDLE,"1H2207000300050"+LEFT(XCOD,12)+CHR(13))
ENDIF
FWRITE( NHANDLE, "Q0001" + CHR( 13 ) )
FWRITE( NHANDLE, "E" + CHR( 13 ) )
FCLOSE( NHANDLE )
IF "COMBINACAO E ESTILO" $ XF
XCOPIASI = XCOPIASI + 2
ELSE
IF XOP = 1
XCOPIASI = XCOPIASI + 3
ELSE
XCOPIASI = XCOPIASI + 1
ENDIF
ENDIF
COPY file( XARQC ) TO LPT1
SysRefresh()
ENDDO
IF XOP # 6 .AND. xop # 7
EXIT
ENDIF
IF XOP = 6 .AND. Xpro = 2
CONTINUE
ELSEIF XOP = 7 .AND. Xpro = 2
CONTINUE
ELSE
SKIP
ENDIF
ENDDO
MsgInfo( oemtoansi( "Etiqueta c¢digo de barras gerada Impressora Argox !" ), oemtoansi( "BalcÆo - Etiqueta de c¢digo de barras de operador" ) )
IF xop = 7 .AND. XPRO = 1
SET FILTER TO
ELSEIF xop = 6
SET ORDER TO 1
ENDIF
AEVAL( DIRECTORY( "BARRA*.TXT" ), { |aFILE| FERASE( aFILE[F_NAME] ) } )
RETURN NIL
[/code]
-
evertonlb reacted to emotta in Relatórios Lentos
Everton retire o COMMIT e o DBUNLOCK
São tabelas temporárias certo? Sendo temporarias vc nao precisa se preocupar com lock de registro e tb com descarregar em disco...
Mude todos os locais onde está SYSREFRESH e coloque a funcao MY_SYSREFRESH() e o fonte dela segue abaixo:
Static Function MY_SYSREFRESH() Static nCont := 100 nCont++ If nCont > 100 SysRefresh() nCont := 0 EndIf Return
Faça isso e ja vai melhorar muito, testa ai
-
evertonlb got a reaction from kapiaba in xBrowse de clientes
LEgal cara.. deu certinho... Obrigado Jhonny!
-
evertonlb got a reaction from kapiaba in Controle de mesas de Bares e Restaurantes
/* nTipo (Tipos de Gráficas lineales soportados) -------------------------------------------------- #define RMC_LINE 21 #define RMC_AREA 22 nEstilo (Estilo de Gráficas de Lineas soportados) -------------------------------------------------- #define RMC_LINE_FLAT 21 #define RMC_LINE_FLAT_DOT 19 #define RMC_LINE_FLAT_DASH 18 #define RMC_LINE_CABLE 22 #define RMC_LINE_3D 23 #define RMC_LINE_3D_GRADIENT 24 #define RMC_AREA_FLAT 25 #define RMC_AREA_FLAT_GRADIENT_V 26 #define RMC_AREA_3D 29 #define RMC_AREA_3D_GRADIENT_V 30 nTipo (Tipos de Gráficos de Barra soportados) -------------------------------------------------- #define RMC_BARSINGLE 1 #define RMC_BARGROUP 2 #define RMC_BARSTACKED 3 #define RMC_BARSTACKED100 4 #define RMC_FLOATINGBAR 5 #define RMC_FLOATINGBARGROUP 6 nEstilo (Estilo de Gráficos de Barra soportados) -------------------------------------------------- #define RMC_BAR_FLAT 1 #define RMC_BAR_FLAT_GRADIENT1 2 #define RMC_BAR_FLAT_GRADIENT2 3 #define RMC_BAR_HOVER 4 #define RMC_COLUMN_FLAT 5 #define RMC_BAR_3D 6 #define RMC_BAR_3D_GRADIENT 7 #define RMC_COLUMN_3D 8 #define RMC_COLUMN_3D_GRADIENT 9 #define RMC_COLUMN_FLUTED 10 nEstilo ( Estilo de Gráficos Pastel soportados ) #define RMC_PIE_FLAT 51 #define RMC_PIE_GRADIENT 52 #define RMC_PIE_3D 53 #define RMC_PIE_3D_GRADIENT 54 #define RMC_DONUT_FLAT 55 #define RMC_DONUT_GRADIENT 56 #define RMC_DONUT_3D 57 #define RMC_DONUT_3D_GRADIENT 58 #define RMC_PYRAMIDE 59 #define RMC_PYRAMIDE3 60 // Alineación Pastel /Donut #define RMC_FULL 1 #define RMC_HALF_TOP 2 #define RMC_HALF_RIGHT 3 #define RMC_HALF_BOTTOM 4 #define RMC_HALF_LEFT 5 */ //------------------- STATIC CntValSeries //------------------- #include "FiveWin.ch" //Para RMCHart #include "hbdll.ch" #include "Rmchart.ch" // Look at this file to see keywords for 174 colors and #include "DllxHb.ch" // other constants. #include "cstruct.ch" #include "wintypes.ch" #include "RMChart2.ch" #define True 1 #define False 0 #define HH_DISPLAY_INDEX 2 #define CLR_RMCBLUE nRGB(99,148,236) // = "AliceBlue" #define CLR_RMCGOLD nRGB(248,208,0) // = "Gold" #define CLR_RMCBRONZE nRGB(221,204,163) // = "Metallic Bronze" #define TAB CHR(9) #command QUIT => ( PostQuitMessage( 0 ), __Quit() ) // suggested by Enrico //Fin para RMChart /*-------------------------------------------------------------------------------------------------------- FUNCION PARA GRAFICOS DE LINEAS Y AREAS SINTAXIS DE LA FUNCION GLINEAL: glineal( oWnd, cTit, cTitY, TituloY, aVals, aXLabels, nTipo, nEstilo, aLegSeries ) ventana, titulo superior, Titulo Eje Y, Valores de las series, etiquetas eje X, tipo de grafica lineal, estilo de la gráfica, Leyendas ----------------------------------------------------------------------------------------------------------*/ FUNCTION gLineal( oWnd, cTit, cTitY, aVals, aXLabels, nTipo, nEstilo, aLegSeries, lEtiqVals ) LOCAL i := 0, j:=0 LOCAL nRetVal := 0, sLabels := "" LOCAL oData IS DataStructD300 //20 LOCAL aColores, YminV, YmaxV aColores := { ColorDeepYellow, ColorBlue, ColorDarkBrown, ColorDeepRose, ColorCoral } CntValSeries := If( Len( aXLabels )>20, 20, Len( aXLabels ) ) YminV := 0 YmaxV := AMaxElement( aVals ) + AMaxElement( aVals ) / 10 ID_RMC1 := 100 IF lEtiqVals EtiqVals:=RMC_VLABEL_DEFAULT ELSE EtiqVals:=RMC_VLABEL_NONE ENDIF //Paso a variables públicas P_nTipo := nTipo P_nEstilo := nEstilo //************** Creo la gráfica ********************** nRetVal = RMC_CreateChart( ; oWnd:hWnd , ; // nParentHandle ID_RMC1 , ; // nCtrlID 0 , ; // nTop 0 , ; // nLeft WndWidth(oWnd:hWnd) -22 , ; // nWidth WndHeight(oWnd:hWnd) -80 , ; // nHeight ColorAliceBlue , ; // nBackColor RMC_CTRLSTYLEFLAT , ; // nCtrlStyle False , ; // nExportOnly "paper.jpg" , ; // sBgImage "Tahoma" , ; // sFontName 0 , ; // nToolTipwidth 0 ; // nBitmapBKColor ) If nRetVal < 0 ; IsError(1) ; RETURN nil ; EndIf //************** Agrego Región ***************************** nRetVal = RMC_AddRegion( ; ID_RMC1 , ; // nCtrlID 5 , ; // nLeft 5 , ; // nTop -5 , ; // nWidth -6 , ; // nHeight "Logos - Avaliação do Desenvolvimento Escolar - V 0.90", ; // sFooter False ; // nShowBorder ) If nRetVal < 0 ; IsError(2) ; RETURN nil ; EndIf //************** Titulo de la Región ******************* nRetVal = RMC_AddCaption( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion cTit , ; // sCaption este es el titulo del gráfico. ColorAquamarine , ; // nBackColor ColorBlack , ; // nTextColor 10 , ; // nFontSize True ; // nIsBold ) If nRetVal < 0 ; IsError(3) ; RETURN nil ; EndIf //************** Grilla de la Región ***************************** nRetVal = RMC_AddGrid( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion ColorBabyBlue , ; // nGridBackColor ColorBlack ColorBeige False , ; // nAsGradient 0 , ; // nLeft 0 , ; // nTop 0 , ; // nWidth 0 , ; // nHeight RMC_BICOLOR_LABELAXIS ; // nBiColor ) If nRetVal < 0 ; IsError(4) ; RETURN nil ; EndIf //********** Rango de valores Y a Región (min max)****************** nRetVal = RMC_AddDataAxis( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion RMC_DATAAXISLEFT , ; // nAlignment 0.0 , ; // nMinValue -DOUBLE so MUST have decimal!! YmaxV , ; // nMaxValue -DOUBLE so MUST have decimal!! CntValSeries , ; // nTickCount 8 , ; // nFontsize ColorBlack , ; // nTextColor ColorBlack , ; // nLineColor RMC_LINESTYLESOLID , ; // nLinestyle 0 , ; // nDecimalDigits "" , ; // sUnit cTitY , ; // sText "" , ; // sLabels RMC_TEXTCENTER ; // nLabelAlignment ) If nRetVal < 0 ; IsError(5) ; RETURN nil ; EndIf //*********************** Leyendas de datos *************** sLegend:= "" FOR i = 1 to Len( aLegSeries ) sLegend += ( aLegSeries[i] + "*" ) NEXT nRetVal = RMC_AddLegend( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion sLegend , ; // sLegend RMC_LEGEND_CUSTOM_TOP, ; // nLegendAlign ColorAliceBlue , ; // nLegendBackColor RMC_LEGENDRECT , ; // nLegendStyle ColorCoral , ; // nLegendTextColor ColorDarkBlue 8 , ; // nLegendFoltSize False ; // nLegendIsBold ) If nRetVal < 0 ; IsError(6) ; RETURN nil ; EndIf //***********************Agrego etiquetas a eje X *************** sLabels := "" FOR i=1 to CntValSeries sLabels+= aXLabels[i] + "*" next nRetVal = RMC_AddLabelAxis( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion sLabels , ; // sLabels (separated by asterisk) 1 , ; // nCount CntValSeries , ; // ntickCount //cantidad de etiquetas ojo!! RMC_LABELAXISBOTTOM , ; // nAlignment 8 , ; // nFontSize ColorBlack , ; // ntextColor RMC_TEXTCENTER , ; // nTextAlignment ColorBlack , ; // nLineColor RMC_LINESTYLENONE , ; // nLineStyle "" ; // sText ) If nRetVal < 0 ; IsError(7) ; RETURN nil ; EndIf //************** Agrego Series a la Región ******************************* //****** Transfiero los datos a través de variables de gráfica************ FOR j=1 to Len( aVals ) FOR i=1 to CntValSeries //se fuerza un maximo de 20 valores por serie. oData:nDouble[i] := aVals[j,i] NEXT i nRetVal = RMC_AddLineSeries( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion oData[1] , ; // nFirstDataValue CntValSeries , ; // nDataValuesCount 0 , ; // nFirstPPCValue 0 , ; // nPPCValuesCount nTipo , ; // nType RMC_LINE_3D_GRADIENT , ; // nStyle nEstilo , ; // nLineStyle False , ; // nIsLucent aColores[j] , ; // nColor RMC_SYMBOL_POINT , ; // nSymbol 1 , ; // nWhichDataAxis EtiqVals , ; // nValueLabelOn RMC_HATCHBRUSH_OFF ; // nHatchMode ) NEXT j nRetVal = RMC_Draw( ID_RMC1 ) If nRetVal < 0 ; IsError(8) ; RETURN nil ; EndIf RETURN ID_RMC1 /* *------------------------------------------------------------------------------------------------- * * FUNCION PARA GRAFICOS DE BARRAS * SINTAXIS DE LA FUNCION GLINEAL: * * gBarras( oWnd, cTit, cTitY, TituloY, aVals, aXLabels, nTipo, nEstilo, aLegSeries, lh ) * ventana, titulo superior, Titulo Eje Y, Valores de las series, * etiquetas eje X, tipo de grafica lineal, estilo de la gráfica, Leyendas , orientación horizontal *------------------------------------------------------------------------------------------------- **/ FUNCTION gBarras( oWnd, cTit, cTitY, aVals, aXLabels, nTipo, nEstilo, aLegSeries, lEtiqVals, lh ) LOCAL i := 0, j:=0 LOCAL nRetVal := 0, sLabels := "" LOCAL oData IS DataStructD300 //20 LOCAL aColores, YminV, YmaxV DEFAULT lh := .f. aColores := { ColorBlue, ColorGreen, ColorRed, ColorDeepYellow, ColorDarkBrown, ColorDeepRose, ColorCoral, ColorBrown } CntValSeries := If( Len( aXLabels )>20, 20, Len( aXLabels ) ) YminV := 0 YmaxV := AMaxElement( aVals ) + AMaxElement( aVals ) / 10 ID_RMC1 := 100 IF lEtiqVals EtiqVals:=RMC_VLABEL_DEFAULT ELSE EtiqVals:=RMC_VLABEL_NONE ENDIF IF lh Alineac := RMC_DATAAXISBOTTOM LegAlineac := RMC_LEGEND_CUSTOM_RIGHT labAlineac := RMC_LABELAXISLEFT ELSE Alineac := RMC_DATAAXISLEFT LegAlineac := RMC_LEGEND_CUSTOM_TOP labAlineac := RMC_LABELAXISBOTTOM ENDIF //Paso a variables públicas P_nTipo := nTipo P_nEstilo := nEstilo //************** Creo la gráfica ********************** nRetVal = RMC_CreateChart( ; oWnd:hWnd , ; // nParentHandle ID_RMC1 , ; // nCtrlID 0 , ; // nTop 0 , ; // nLeft WndWidth(oWnd:hWnd) -22 , ; // nWidth WndHeight(oWnd:hWnd) -86 , ; // nHeight ColorAzure , ; // nBackColor RMC_CTRLSTYLEFLAT , ; // nCtrlStyle False , ; // nExportOnly "paper.jpg" , ; // sBgImage "" , ; // sFontName 20 , ; // nToolTipwidth 0 ; // nBitmapBKColor ) If nRetVal < 0 ; IsError(9) ; RETURN nil ; EndIf //************** Agregar Región ***************************** nRetVal = RMC_AddRegion( ; ID_RMC1 , ; // nCtrlID 5 , ; // nLeft 5 , ; // nTop -5 , ; // nWidth -6 , ; // nHeight "Veesor - Automação Comercial - V. 0.8.A", ; // sFooter False ; // nShowBorder ) If nRetVal < 0 ; IsError(10) ; RETURN nil ; EndIf //************** Agregar titulo Región ******************* nRetVal = RMC_AddCaption( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion cTit , ; // sCaption ColorAquamarine , ; // nBackColor ColorBlack , ; // nTextColor 10 , ; // nFontSize True ; // nIsBold ) If nRetVal < 0 ; IsError(11) ; RETURN nil ; EndIf //************** Grilla de la Región 1 ***************************** nRetVal = RMC_AddGrid( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion ColorBeige , ; // nGridBackColor False , ; // nAsGradient 0 , ; // nLeft 0 , ; // nTop 0 , ; // nWidth 0 , ; // nHeight RMC_BICOLOR_LABELAXIS ; // nBiColor ) If nRetVal < 0 ; IsError(12) ; RETURN nil ; EndIf //********** Rango de valores Y a Región (min max)****************** nRetVal = RMC_AddDataAxis( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion Alineac , ; // nAlignment 0.0 , ; // nMinValue -DOUBLE so MUST have decimal!! YmaxV , ; // nMaxValue -DOUBLE so MUST have decimal!! CntValSeries , ; // nTickCount 8 , ; // nFontsize ColorBlack , ; // nTextColor ColorBlack , ; // nLineColor RMC_LINESTYLESOLID , ; // nLinestyle 0 , ; // nDecimalDigits "" , ; // sUnit cTitY , ; // sText "" , ; // sLabels RMC_TEXTCENTER ; // nLabelAlignment ) If nRetVal < 0 ; IsError(13) ; RETURN nil ; EndIf //*********************** Leyenda de datos *************** sLegend:= "" FOR i = 1 to Len( aLegSeries ) sLegend += ( aLegSeries[i] + "*" ) NEXT nRetVal = RMC_AddLegend( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion sLegend , ; // sLegend LegAlineac , ; // nLegendAlign ColorAliceBlue , ; // nLegendBackColor RMC_LEGENDRECT , ; // nLegendStyle ColorDarkBlue , ; // nLegendTextColor 8 , ; // nLegendFoltSize False ; // nLegendIsBold ) If nRetVal < 0 ; IsError(14) ; RETURN nil ; EndIf /* // Establece Rojo para la tercer barra: nRetVal = RMC_SetSeriesColor( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion 1 , ; // nSeries ColorRed , ; // nColor 3 ; // nIndex - bar # to get color ) */ //************** Agregar etiquetas de eje X ***************************** sLabels = "" FOR i=1 to CntValSeries sLabels+= aXLabels[i] + "*" next nRetVal = RMC_AddLabelAxis( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion sLabels , ; // sLabels (separated by asterisk) 1 , ; // nCount CntValSeries , ; // ntickCount RMC_LABELAXISBOTTOM , ; // nAlignment 8 , ; // nFontSize ColorBlack , ; // ntextColor RMC_TEXTCENTER , ; // nTextAlignment ColorBlack , ; // nLineColor RMC_LINESTYLENONE , ; // nLineStyle "" ; // sText ) If nRetVal < 0 ; IsError(15) ; RETURN nil ; EndIf //************** Agregar Series a Región ******************************* //****** Transfiero los datos a través de variables de gráfica************ FOR j=1 to Len(aVals) FOR i=1 to CntValSeries oData:nDouble[i] := aVals[j,i] NEXT i nRetVal = RMC_AddBarSeries( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion oData[1] , ; // nFirstDataValue CntValSeries , ; // nDataValuesCount nTipo , ; // nType RMC_COLUMN_3D_GRADIENT , ; // nEstilo nStyle False , ; // nIsLucent aColores[j] , ; // nColor lh , ; // nIsHorizontal 1 , ; // nWhichAxis EtiqVals , ; // nValuelabelOn 1 , ; // nPointsPerColumn RMC_HATCHBRUSH_OFF ; // nHatchMode ) //RMC_VLABEL_DEFAULT pone etiquetas de valores RMC_VLABEL_NONE no. NEXT j nRetVal = RMC_Draw( ID_RMC1 ) If nRetVal < 0 IsError(16) RETURN nil EndIf RETURN ID_RMC1 FUNCTION IsError(nError) DEFAULT nError := 0 MsgAlert( "Ocorreu um erro em: "+LTRIM(STR(nError)) +CRLF+; "Por Favor, anote este código." ) // Each error number can be traced to a specific place in this prg. RETURN nil *---------------------------- FUNCTION AMaxElement( aArray ) LOCAL i, j, aProv:={}, nmax:=0.0, ntot:=0.0 IF gnTipo = RMC_BARSTACKED FOR i= 1 to CntValSeries FOR j= 1 to Len( aArray ) ntot+=aArray[j,i] NEXT j If nmax < ntot nmax:=ntot ENDIF ntot:=0.0 NEXT i ELSE FOR j= 1 to Len( aArray ) FOR i=1 to CntValSeries //limito a 20 por si pasan mas. If nmax < aArray[j,i] nmax:=aArray[j,i] ENDIF NEXT i NEXT j ENDIF RETURN nmax /* ------------------------------------------------------------------------------------------------------------- Generación de Gráficos Pastel FUNCION gPastel() ------------------------------------------------------------------------------------------------------------- */ FUNCTION gPastel( oWnd, cTit, nEstilo, nAlign, aVals, aLegend, nCor_Gr ) LOCAL nRetVal := 0 LOCAL sLegend := "" LOCAL oColor IS ColorStructL5 LOCAL oData IS DataStructD20 //************** Create the chart ********************** nRetVal = RMC_CreateChart( ; oWnd:hWnd , ; // nParentHandle ID_RMC1 , ; // nCtrlID 0 , ; // nTop 0 , ; // nLeft WndHeight(oWnd:hWnd) -86 , ; // nWidth WndHeight(oWnd:hWnd) -86 , ; // nHeight ColorTransparent , ; // nBackColor RMC_CTRLSTYLEIMAGETILED , ; // nCtrlStyle False , ; // nExportOnly "imagens\BaloesGde.JPG" , ; // sBgImage //"paper.jpg" "" , ; // sFontName 0 , ; // nToolTipwidth 0 ; // nBitmapBKColor ) If nRetVal < 0 ; IsError(1) ; RETURN nil ; EndIf //************** Add Region 1 ***************************** nRetVal = RMC_AddRegion( ; ID_RMC1 , ; // nCtrlID 5 , ; // nLeft 5 , ; // nTop -5 , ; // nWidth -6 , ; // nHeight "Veesor - Automação Comercial - V. 1.37D", ; // sFooter False ; // nShowBorder ) If nRetVal < 0 ; IsError(2) ; RETURN nil ; EndIf //************** Add legend to region 1 ******************************* sLegend = "" FOR i= 1 to Len( aLegend ) sLegend += ( aLegend[i] + "*" ) NEXT i nRetVal = RMC_AddLegend( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion sLegend , ; // sLegend RMC_LEGEND_ONVLABELS, ; // nLegendAlign ColorGainsboro , ; // nLegendBackColor RMC_LEGENDNORECT , ; // nLegendStyle ColorBlue , ; // nLegendTextColor 8 , ; // nLegendFoltSize False ; // nLegendIsBold ) If nRetVal < 0 ; IsError(3) ; RETURN nil ; EndIf //************** Add Series 1 to region 1 ******************************* //****** Read color values ****** if nCor_Gr == 2 // bom.. o que eu fiz foi o seguinte // Ao gerar os graficos do PsicoMotor ele acabava tendo as mesmas // cores do Socio Afetivo, ai ficava muito confuso. Entao eu coloquei um // outro parametro na chamada do GPastel2. coloquei um numero no final // ai consigo trocar as cores sem problema.. // oColor:nLong[1] := ColorMediumVioletRed oColor:nLong[2] := ColorOrange oColor:nLong[3] := ColorIndigo oColor:nLong[4] := ColorBlue // Your data goes colors into these 5 slots oColor:nLong[5] := ColorDeepRose else oColor:nLong[1] := ColorDeepYellow oColor:nLong[2] := ColorRed oColor:nLong[3] := ColorGreen oColor:nLong[4] := ColorBlue // Your data goes colors into these 5 slots oColor:nLong[5] := ColorDeepRose endif //****** Read data values ****** FOR i = 1 to Len( aVals) oData:nDouble[i] := aVals[i] NEXT i nRetVal = RMC_AddGridlessSeries( ; ID_RMC1 , ; // nCtrlID 1 , ; // nRegion oData[1] , ; // nFirstDataValue Len( aVals ) , ; // nDataValuesCount oColor[1] , ; // nFirstColorValue 5 , ; // ncolorValuesCount nEstilo , ; // nStyle RMC_PIE_GRADIENT RMC_DONUT_GRADIENT RMC_PYRAMIDE RMC_PYRAMIDE3 RMC_PIE_3D_GRADIENT RMC_PIE_3D nAlign , ; // nAlignment 0 , ; // nExplodemode False , ; // nIsLucent RMC_VLABEL_TWIN , ; // nValueLabelOn RMC_HATCHBRUSH_OFF , ; // nHatchMode 0 ; // nStartAngle ) If nRetVal < 0 ; IsError(4) ; RETURN nil ; EndIf nRetVal = RMC_COText( ; ID_RMC1 , ; // nCtrlID 1 , ; // nCOIndex cTit , ; // sText 70 , ; // nLeft 20 , ; // nTop 300 , ; // nWidth (optional, as are the following...) 250 , ; // nHeight RMC_BOX_NONE , ; // nStyle 0 , ; // nBGColor 0 , ; // nLineColor 0 , ; // nTransparency 0 , ; // nLineAlignment ColorBlack , ; // nTextColor "10C" ; // sTextProperties ) If nRetVal < 0 ; IsError(5) ; RETURN nil ; EndIf //-------------------------------------------------- nRetVal = RMC_Draw( ID_RMC1 ) If nRetVal < 0 ; IsError(6) ; RETURN nil ; EndIf RETURN ID_RMC1 //----------------------------
RMC4XHB.PRG
EjemLin.prg
EjemBar.prg
EjemPastel.prg
RMCHART.CH
RMCHART2.CH
rmchartx.ch
-
-
evertonlb got a reaction from KennethTymnLY in Instalação e Configuração Versão DEMO
Ola Marco Silva..
Uso as mesmas verões tuas.
Vamos tentar resolver a bronca.
Vou dar uma olhada no PDF.. Pera ai!
Att.
Everton
-
evertonlb got a reaction from Theotokos in Ajuda com barra de botões
Mais ou menos como duas ButtonBar? Uma a direita e outra a esquerda?
Eu acho que é melhor já colocar os botões na Dialog!
Att.
Everton
-
-
-
evertonlb reacted to microfly in AGRADECIMENTO
Agradeço a todos amigos que me ajudaram, Especialmente ao João Santos e ao Luiz Augusto Martins (Gunafe) que me deu a maior força dando referencias da minha pessoa.
Agradeço ao Leonardo da Sygecom pela força e pelos conselhos que me deu.
Agradeço especialmente ao Marcio (da empresa Informais ) que esta se dicando o seu tempo em me ensinar MYSQL uma pessoa de bom coração
e todos dia depois do expediente fica horas conectado comigo me ensinando o MYSQL até aos sabados. me aconselhando e me fazendo CRITICAS CONSTRUTIVAS
que esta me ajudando E MUITO.
Agradeco ao Eduardo Mota que me ajudou muito .
Agradeço tb ao Wanderson pela confiança no meu trabalho e na minha pessoa.
Enfim quero agradecer a todos que nao foram poucos nao, que DEUS de muita PAZ E SAÚDE a TODOS desse grupo e aos seu familiares MUITO OBRIGADO POR TUDO.
Luiz Carlos Nogueira
(19) 3844-8556 - Paulínia - João Aranha
zap (11) 9 6969-3667
Obs: aqueles que precisarem de ajuda profissional pode contar comigo, ajudarei com o maior prazer , inclusive aos iniciantes. trabalho com Fivewin desde 1999.
-
evertonlb reacted to rochinha in Imprimir via INTERNET
Amiguinhos,
Isto é muito fácil de resolver, e não tem que ficar configurando VPN, TCP-IP do servidor, DDNS ou NoIP.
Você precisará apenas criar um pequeno aplicativo que seja instalado nesta máquina do depósito e que leia o conteúdo de uma pasta e quando encontrar um arquivo especificado por você então processa a impressão.
No servidor seu sistema mandará o arquivo para uma pasta especifica, ou seja:
Crie a pasta c:\intranet\envios no servidor.
Crie a pasta c:\intranet\recebidos no cliente distante.
Crie uma conta no Mega Sync, Instale o [url=https://megasync.br.uptodown.com/windows]MegaSync Desktop[/url] nas duas máquinas e configure
no servidor para ler em c:\intranet\envios e no cliente distante para ler em c:\intranet\recebidos.
Deixe os serviços rodarem e jogue arquivos nas pasta para ver o que acontece.
Se gostou, dê um "LIKE" e ajude nosso canalforum.
-
evertonlb reacted to rochinha in Imprimir via INTERNET
Amiguinhos,
Outra dica mais fácil:
Supondo que tenha Windows Seven nas duas pontas e sabendo que o mesmo proporciona um acesso remoto free, configure a maquina servidora para permitir acesso remoto habilitando a Área de Trabalho Remota(Não é Assistência Remota) e na outra máquina, pelo prompt do DOS execute MSTSC.EXE coloque o IP público do servidor(não esqueça de desmilitarizar o ip caso o acesso a internet seja por meio de roteador) e configure o MS Terminal Services para reconhecer todos os periféricos da maquina remota como impressora e usá-la in loco.
-
evertonlb got a reaction from Jmsilva in Ajuda com Logica
Nesse caso não precisaria cartão, somente a senha já resolve!
-
evertonlb got a reaction from kapiaba in Problemas em relatório com fontes baleadas
Obrigado Kapiaba... já tinha achado um post com mesmo problema!
-
evertonlb reacted to Edu in xBrowse com vários bitmaps
Bom dia!
Evertonlb, acho que desse jeito não funciona porque ou você trabalha com DB ou array. Se você adicionar mais um elemento vai dar erro em tempo de execução pois o array interno do xbrowse : aCols, terá seu tamanho alterado.
rubensma, a princípio eu não queria fazer isso não pois não sei se vai dar tempo, mas em último caso...
Deixa eu tentar explicar:
São 4 bitmaps. Por exemplo: A, B, C, D.
Pode haver as situações A, A+B, A+C, A+D, B, B+C, B+D, C, C+D, D.
TOTAL = 10.
Em todo caso estou começando a considerar esta hipótese, pois tentei fazer com botões e ficou muito grande a qtde. de objs na tela e esteticamente ficou devendo um pouco. Estou dando preferência a xBrowse.
-
evertonlb got a reaction from Theotokos in BMP no xBrowse - RESOLVIDO
Foi só colocar no lugar de ADDResource o AddBmpFile.
Valeu mesmo Theotokos... Obrigado
Att.
Everton
-
evertonlb reacted to Theotokos in BMP no xBrowse - RESOLVIDO
Adiona na primeira Coluna do xBrowse, no meu caso do Lado Esquerdo do Nome do Cliente
oBrw:aCols[1]:AddResource("Bloqueado" ) // Adiciona Imagem Resource para Bloqueado
oBrw:aCols[1]:AddResource("DesBloqueado" ) // Adiciona Imagem Resource para Não Bloqueado
oBrw:aCols[1]:bBmpData := { || If( D_COND1 = 1, 1, 2 ) } // Verifica a Condição: se 1) Imagem 1 (Bloqueado), se 2) Imagem 2 (Não Bloqueado)
oBrw:aCols[1]:nDataBmpAlign := 0