grafico usando o excell

Fórum sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

grafico usando o excell

Mensagem por paiva_dbdc »

Boa tarde.

Peguei essa função não sei de onde.

gero um dbf e chamo a função

estou tentando ver se funciona + da pau

auguem usa algo parecido ?


*** Grafico EXCELL

Código: Selecionar todos

FUNCTION gpizza_excell( excell_programa, excell_nprograma )
     LOCAL oExcel, oSheet, oPlan
     LOCAL nCounter

*select axxabc
*msgstop(strzero(recno(),6))

     cTempDir := "c:\dbdc\excell"

     TRY
        oExcel := GetActiveObject( "Excel.Application" )
     CATCH
        TRY
           oExcel := CreateObject( "Excel.Application" )
        CATCH
           pmsg= "ERRO! Excel nÆo Instalado. [" + Ole2TxtError()+ "]"
           ftempo()
           RETURN
        END
     END

   msgstop("gpizza_exell 01")
     oExcel:WorkBooks:Add()          && da pau aqui
   msgstop("gpizza_exell 02")
     oSheet = oExcel:ActiveSheet()
     msgstop("gpizza_exell 03")

    *if File(cTempDir+[\]+alltrim(pusuario)+".xls")
    *    fErase(cTempDir+[\]+alltrim(pusuario)+".xls")
    *    oSheet:SaveAs(cTempDir+[\]+alltrim(pusuario)+".xls")
    *else
    *    oSheet:SaveAs(cTempDir+[\]+alltrim(pusuario)+".xls")
    *endif

     oSheet:Cells:Font:Name = "Courier New"
     oSheet:Cells:Font:Size = 17
     oSheet:cells:Font:ColorIndex := 11
     oSheet:Cells( 1, 1 ):Value := trim(pnomeapl)
     msgstop("gpizza_exell 04")

     oSheet:Cells:Font:Name = "Courier New"
     oSheet:Cells:Font:Size = 12
     oSheet:Cells( 3, 1 ):Value := hb_oemtoansi("Descri‡Æo")
     oSheet:Cells( 3, 2 ):Value := "Valor"
     msgstop("gpizza_exell 05")

     oSheet:cells:Font:ColorIndex := 00   &&  qual a cor BLACK ?

    *oSheet:Columns( 1 ):Font:Bold := .T.

     oSheet:Columns( 1 ):AutoFit()
     oSheet:Columns( 2 ):AutoFit()
     msgstop("gpizza_exell 06")

     nCounter := 5
     cMEMO:=""
     C:=1
     B:=len(MATA)

     msgstop("gpizza_exell 02")
     DO WHILE C <= B
        //         1                2             3           4         5               6              7              8
        //{        DESCRICAO,        VALOR, CUSTO->ICMS, CUSTO->IPI,    CUSTO->UNIDADE, CUSTO->TAXADF, STR(RECNO(),6), CUSTO->PRECUSTO } )
        cMEMO += MATA[C,1]                                        // 1- DESCRICAO
        cMEMO += CHR(9)+TRANSF(MATA[C,2]  , "@E 99,999,999.9999") // 2- Valor
        cMEMO += CHR(10)

       *Mudar a cor das linhas sob condicoes
       *if testtemp->qtd <= 0
       *   oExcel:Rows(nCounter):Font:ColorIndex := 3
       *else
       *   oExcel:Rows(nCounter):Font:ColorIndex := 11
       *endif

        if  C = (B-1)   && Ultima linha
            oSheet:Columns( 1 ):Font:Bold := .T.
        endif

*112009 GTSetClipboard( cMemo ) xhb NOVO

        oSheet:Cells( nCounter, 1 ):Select()
        oSheet:paste()
        cMemo := ''

       C++
       nCounter++

     ENDDO
    *oSheet:Columns( 1 ):Font:Bold := .T.

  msgstop("gpizza_exell 03")

     nCounter = nCounter - 1
     oSheet:Columns( "A:B" ):AutoFit()
    *oSheet:Cells( 4,nCounter ):Select()  &&   NAO Seleciona as linhas

     oExcel:Visible = .T.

RETURN( nil )
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Editado pela última vez por Toledo em 02 Nov 2019 18:22, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

grafico usando o excell

Mensagem por Toledo »

Paiva, tente assim:

Código: Selecionar todos

oWorkBook := oExcel:WorkBooks:Add()
Abraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

grafico usando o excell

Mensagem por paiva_dbdc »

Error description: Error BASE/1003 Variável não existe: WORKBOOK

*oExcel:WorkBooks:Add() && da pau aqui
WorkBook:WorkBooks:Add() && da pau aqui


opa fiz isso e da esse erro
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

grafico usando o excell

Mensagem por Toledo »

Paiva, faz exatamente como está na minha mensagem anterior.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

grafico usando o excell

Mensagem por paiva_dbdc »

boa noite


oWorkBook := oExcel:WorkBooks:Add()

o seletor.exe parou de funcionar ..... ai tenho que derrubar o exe

deve estar faltando alguma coisa


Paiva
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

grafico usando o excell

Mensagem por Toledo »

Paiva, dê uma olhada neste tópico, que tem um exemplo de como fazer um gráfico no Excel.

https://pctoledo.org/forum/viewto ... Add#p52730

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

grafico usando o excell

Mensagem por paiva_dbdc »

MUITO obrigado

usando o exemplo abaixo fez um gráfico de BARRAS

para fazer tipo Pizza , ou outra forma
existe um comando que SETE o tipo de gráfico ?

function ___grafico()

Local oExcel, oHoja, oChart
*cfile = [\sergio\sfa32\pre\exc_paiva]

// Abrimos Excel
oExcel:= CreateObject( "Excel.Application" )

// Verificamos si hay error
if Ole2TxtError() != 'S_OK'
MsgInfo('Excel no esta disponible','Advertencia')
Return
endif

oExcel:Visible := .T. // Hacemos visibles los ca,bios

oExcel:Workbooks:Open(cFILE) // Abrimos el BDF

oExcel:Set("DisplayAlerts",.F.) // Deshabilitamos mensajes de Error

oHoja:=oExcel:Get( "ActiveSheet" ) // Activamos la hoja

*oHoja:Range("A1:D4"):Select() // Definimos Rango
*oHoja:Range("B1:C8"):Select() // Definimos Rango
oHoja:Range(Prange):Select() // Definimos Rango

oChart:=oExcel:Charts:Add() // Creamos una grafico de barras

oChart:Hastitle:=.T. // Definimos el titulo
oChart:ChartTitle:Text:="Titulo dos Grafico"
oExcel:Visible := .t.

RETURN
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

grafico usando o excell

Mensagem por Toledo »

Paiva, faz um teste, antes do comando oExcel:Visible := .t. coloque:

Código: Selecionar todos

oChart:ChartType:=xlPie
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

grafico usando o excell

Mensagem por paiva_dbdc »

deu erro

Error description: Error BASE/1003 Variável não existe: XLPIE

PAiva
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

grafico usando o excell

Mensagem por rochinha »

Amiguinhos,

paiva_dbc
Os valores de xlPie podem ser

xlPie := 0,5 // Pizza.
xlPieExploded := 69 // Pizza destacada.
xlPieOfPie := 68 // Pizza de pizza.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

grafico usando o excell

Mensagem por paiva_dbdc »

BOM dia

Error description: Error BASE/1005 Class: 'NIL' has no property: CHARTTYPE
estou fazendo assim:


function ___grafico()
Local oExcel, oHoja, oChart
// Abrimos Excel
oExcel:= CreateObject( "Excel.Application" )
// Verificamos si hay error
if Ole2TxtError() != 'S_OK'
MsgInfo('Excel no esta disponible','Advertencia')
Return
endif

xlPie := 0.5 &&// Pizza.
xlPieExploded := 69 // Pizza destacada.
xlPieOfPie := 68 // Pizza de pizza.

oChart:ChartType:=xlPie && ************** onde ocorre o erro **********************

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cFILE) // Abrimos el BDF
oExcel:Set("DisplayAlerts",.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( "ActiveSheet" ) // Activamos la hoja
oHoja:Range(Prange):Select() // Definimos Rango
oChart:=oExcel:Charts:Add() // Creamos una grafico de barras
oChart:Hastitle:=.T. // Definimos el titulo
oChart:ChartTitle:Text:="Titulo dos Grafico"
oExcel:Visible := .t.

RETURN


se enibo a linha oChart:ChartType:=xlPie

gera um gráfico em Barra

queria ver como fica um em PIZZA

Obrigado
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

grafico usando o excell

Mensagem por rochinha »

Amiguinhos,

paiva_dbdc
É a primeira vez que você tem contacto com codificação de objetos?

Perceba que se um objeto não for instanciado ou se seus métodos não forem anunciados antes não haverá meios de usá-los obtendo erros de indefinição.

Código: Selecionar todos


xlPie := 0.5 &&// Pizza.
xlPieExploded := 69 // Pizza destacada.
xlPieOfPie := 68 // Pizza de pizza.

oChart:ChartType:=xlPie && ************** onde ocorre o erro **********************

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cFILE) // Abrimos el BDF
oExcel:Set("DisplayAlerts",.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( "ActiveSheet" ) // Activamos la hoja
oHoja:Range(Prange):Select() // Definimos Rango
oChart:=oExcel:Charts:Add() // Creamos una grafico de barras
oChart:Hastitle:=.T. // Definimos el titulo
oChart:ChartTitle:Text:="Titulo dos Grafico"
oExcel:Visible := .t.

RETURN
Aqui um erro clássico é acionar um método ou propriedade de um objeto que ainda não está criado. Você tentou sair dirigindo antes de entrar no automóvel.

Código: Selecionar todos


xlPie := 0.5 &&// Pizza.
xlPieExploded := 69 // Pizza destacada.
xlPieOfPie := 68 // Pizza de pizza.

oExcel:Visible := .T. // Hacemos visibles los ca,bios
oExcel:Workbooks:Open(cFILE) // Abrimos el BDF
oExcel:Set("DisplayAlerts",.F.) // Deshabilitamos mensajes de Error
oHoja:=oExcel:Get( "ActiveSheet" ) // Activamos la hoja
oHoja:Range(Prange):Select() // Definimos Rango
oChart:=oExcel:Charts:Add() // Creamos una grafico de barras **************** OI, aqui fui criado ***************
oChart:Hastitle:=.T. // Definimos el titulo
oChart:ChartTitle:Text:="Titulo dos Grafico"
oExcel:Visible := .t.

oChart:ChartType:=xlPie && ************** onde OCORRIA o erro **********************

RETURN
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder