RMChart

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

RMChart

Mensagem por asimoes »

Quintas,

No meu último post, eu tentei reproduzir o gráfico, mas dá erro no AddDataAxis

Código: Selecionar todos

     nIdChart:=2
      oGrafico:CreateChart( hb_gtInfo( HB_GTI_WINHANDLE ), nIdChart, 0, 0, 600, 450, Transparent, RMC_CTRLSTYLEIMAGE, .F., "SEASKY.JPG", "Tahoma", 0, 0 )
      oGrafico:AddRegion( nIdChart, 0, 0, 590, 400, "", .F. )
      oGrafico:AddGrid( nIdChart, 1, Transparent, .F., 20, 20, 575, 330, RMC_BICOLOR_LABELAXIS )
      oGrafico:AddDataAxis(nIdChart,1,RMC_DATAAXISLEFT,0,100,11,8,Chalk,Chalk,RMC_LINESTYLEDOT,0,"","","",RMC_TEXTCENTER) 
      sTemp = "Label 1*Label 2*Label 3*Label 4*Label 5"
      oGrafico:AddLabelAxis( nIdChart, 1, sTemp, 1, 11, RMC_LABELAXISBOTTOM, 5, Yellow, RMC_TEXTCENTER, Chalk, RMC_LINESTYLENONE, "")
      aData:={{50, 70, 40, 60, 30}}
      FOR nCont = 1 TO Len( aData )
         oGrafico:AddBarSeries(nIdChart, 1, aData[nCont], 5, RMC_BARSINGLE, RMC_BAR_FLAT_GRADIENT2, .T., Transparent, .F., 1, RMC_VLABEL_NONE, 1, RMC_HATCHBRUSH_OFF)
      NEXT
      oGrafico:Draw( nIdChart )
      Inkey( 0 )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

RMChart

Mensagem por asimoes »

Descobri o problema:


oGrafico:AddDataAxis(nIdChart,1,RMC_DATAAXISLEFT,0.0,100.0,11,8,Chalk,Chalk,RMC_LINESTYLEDOT,0,"","","",RMC_TEXTCENTER)
aData:={{50.0, 70.0, 40.0, 60.0, 30.0}}
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Eu também... rs... Só falta resolver uma linha.
Veja o novo método "tapa-buraco", pra deixar o valor no Harbour com decimais.

Código: Selecionar todos

   METHOD AddDataAxis(a,b,c,d,e, ... )   INLINE ::CallDllStd( "RMC_ADDDATAAXIS", a, b, c, ::ToDecimal(d), ::ToDecimal(e), ... )
   METHOD ToDecimal( c )                 INLINE c + 1.01 - 1.01
Só não funcionou pra essa linha mais escura.
Anexos
grafico.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Parece até mentira, mas sem isso dá GPF, porque o tipo de variável não bate com a necessária.


Correção: falta resolver essa linha, e também o gráfico de linha que não aparece no 4.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Um detalhe curioso no gráfico de linhas, mesmo passando com double, os números aparecem em inteiro.
Ele só aparece se eu omitir o restante do gráfico.
grafico.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Tive uma idéia, não sei se vai ajudar:

Código: Selecionar todos

   METHOD WriteRMCFile( ... )            INLINE ::CallDllStd( "RMC_WRITERMCFILE", ... )
Gravar o gráfico atual, abrir no RMCDesigner, gerar o fonte VB6, e comparar com o fonte anterior VB6.
Talvez ajude a identificar algum parâmetro diferente.

Isso pode ser útil pra outras situações, por isso repassando.

Nota: ficou prática a classe desse jeito... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

O ideal é não ter que se preocupar com decimais no fonte, por isso é interessante deixar o tratamento disso na classe.
Segue o fonte atual funcionando.
O gráfico em IF .F. é o primeiro, seguido do 5 em 1 no IF .T.

Código: Selecionar todos

#include "hbclass.ch"
#include "rmchart.ch"
#include "hbgtinfo.ch"
#include "hbdyn.ch"
#define RMC_USERWM         ""               // Your watermark
#define RMC_USERWMCOLOR    Black            // Color for the watermark
#define RMC_USERWMLUCENT   30               // Lucent factor between 1(=not visible) and 255(=opaque)
#define RMC_USERWMALIGN    RMC_TEXTCENTER   // Alignment for the watermark
#define RMC_USERFONTSIZE   0                // Fontsize; if 0: maximal size is used

FUNCTION Main

   LOCAL oCrt, cLegenda, cLabels, cTitulo, aDados, cImagem, cUnidade, cTextoVert, nMax, nIdChart
   LOCAL oGrafico := RMChart():New(), nCont, oElement
   LOCAL sTemp1, aData1, sTemp2, aData2, aData3, aData4, aData5, aData6, aData7, aData8, sTemp3 := "", ID_RMC1 := 1

   oCrt           := WvgCrt():New( , , { -1, -1 }, { 35, 90 }, , .T. )
   oCrt:lModal    := .T.
   oCrt:icon      := "demo.ico"
   oCrt:resizable := .T.
   oCrt:create()
   hb_gtInfo( HB_GTI_WINTITLE, "Grafico com RmChart - Dll" )
   IF .F.
      cLegenda   := "Entradas*Saidas*Mais Um"
      cLabels    := "Janeiro*Fevereiro*Março*Abril*Maio*Junho*Julho*Agosto*Setembro*Outubro*Novembro*Dezembro"
      cTitulo    := "Gráfico de Teste"
      aDados     := { ;
                    { 225.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 }, ;
                    { 220.00, 100.00, 125.00, 300.00, 150.00, 125.00, 85.00, 50.00, 285.00, 275.00, 295.00, 280.00 }, ;
                    { 125.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 } }
      cImagem    := ""
      cUnidade   := "R$ "
      cTextoVert := ""
      nMax       := 0
      nIdChart   := 1

      FOR EACH oElement IN aDados
         nMax := Max( nMax, aMax( oElement ) )
      NEXT

      nMax := Round( ( Int( nMax / 10 ) * 10 ) + 10, 2 )

      oGrafico:CreateChart( hb_gtInfo( HB_GTI_WINHANDLE ), nIdChart, 0, 0, 770, 400, Azure, RMC_CTRLSTYLE3DLIGHT, .F., cImagem, "", 0, 0 )
      oGrafico:AddRegion( nIdChart, 0, 0, 760, 400, "RmChart", .F. )
      oGrafico:AddCaption( nIdChart, 1, cTitulo, Transparent, Red, 9, .T. )
      oGrafico:AddGrid( nIdChart, 1, LightBlue, .F., 20, 20, 685, 330, RMC_BICOLOR_LABELAXIS )
      oGrafico:AddLabelAxis( nIdChart, 1, cLabels, 1, Len( aDados[ 1 ] ), RMC_LABELAXISBOTTOM, 8, Black, RMC_TEXTCENTER, Black, RMC_LINESTYLENONE, "" )
      oGrafico:AddDataAxis( nIdChart, 1, RMC_DATAAXISRIGHT, 0.0, nMax, Len( aDados[ 1 ] ), 8, Black, Black, RMC_LINESTYLESOLID, 1, cUnidade, cTextoVert, "", RMC_TEXTCENTER )
      oGrafico:AddLegend( nIdChart, 1, cLegenda, RMC_LEGEND_BOTTOM, Transparent, RMC_LEGENDNORECT, Red, 8, .T. )

      FOR nCont = 1 TO Len( aDados )
         oGrafico:AddBarSeries( nIdChart, 1, aDados[ nCont ], 12, RMC_BARGROUP, RMC_BAR_FLAT_GRADIENT2, .F., 0, .F., 1, RMC_VLABEL_NONE, nCont, RMC_HATCHBRUSH_ONPRINTING )
      NEXT

      oGrafico:Draw( nIdChart )

   ENDIF
   IF .T.
      sTemp1 := "Label 1*Label 2*Label 3*Label 4*Label 5"
      aData1 := { 30,40,70,60,20 }
      sTemp2 := "Label 1*Label 2*Label 3*Label 4*Label 5"
      aData2 := { 20, 10, 15, 25, 30 }
      aData3 := { 25, 30, 10, 20, 15 }
      aData4 := { 10, 20, 40, 20, 30 }
      aData5 := { 40, 30, 20, 30, 20 }
      aData6 := { 30, 50, 20, 40, 60 }
      aData7 := { 240, 230, 220, 180, 170, 160, 145, 130, 125, 115 }
      aData8 := { 8.1, 6.2, 4.3, 2.2, 1.2, 3.1, 5.2, 11.4, 7.3, 4.2 }
      DO CASE
      CASE oGrafico:CreateChart( hb_gtInfo( HB_GTI_WINHANDLE ),ID_RMC1,0,0,800,600,AliceBlue,RMC_CTRLSTYLEFLATSHADOW,.F.,"","", 0, 0 ) < 0
      CASE oGrafico:AddRegion( ID_RMC1, 1, 2, 348, 208, "", .F. )  < 0
      CASE oGrafico:AddGrid( ID_RMC1, 1, Beige, .F., 0, 0, 0, 0, RMC_BICOLOR_NONE ) < 0
      CASE oGrafico:AddDataAxis( ID_RMC1, 1, RMC_DATAAXISLEFT, 0, 100, 11, 8, Black, Black, RMC_LINESTYLESOLID, 0, "", "", "", RMC_TEXTCENTER )  < 0
      CASE oGrafico:AddLabelAxis( ID_RMC1, 1, sTemp1, 1, 5, RMC_LABELAXISBOTTOM, 8, Black, RMC_TEXTCENTER, Black, RMC_LINESTYLESOLID, "" ) < 0
      CASE oGrafico:AddBarSeries( ID_RMC1, 1, aData1, 5,RMC_BARSINGLE, RMC_BAR_3D, .F., Default, .F., 1, RMC_VLABEL_NONE, 1, RMC_HATCHBRUSH_OFF )  < 0
      CASE oGrafico:AddRegion( ID_RMC1, 352, 2, -2, 248, "", .F. ) < 0
      CASE oGrafico:AddGrid( ID_RMC1, 2, Beige, .F., 0, 0, 0, 0, RMC_BICOLOR_NONE ) < 0
      CASE oGrafico:AddDataAxis( ID_RMC1, 2, RMC_DATAAXISBOTTOM, 0, 100, 10, 8, Black, Black, RMC_LINESTYLESOLID, 0, "", "", "", RMC_TEXTCENTER ) < 0
      CASE oGrafico:AddLabelAxis( ID_RMC1, 2, sTemp2, 1, 5, RMC_LABELAXISLEFT,8, Black, RMC_TEXTCENTER, Black, RMC_LINESTYLESOLID, "" ) < 0
      CASE oGrafico:AddBarSeries( ID_RMC1, 2, aData2, 5, RMC_BARSTACKED, RMC_COLUMN_FLAT, .F., Default, .T., 1, RMC_VLABEL_NONE, 1, RMC_HATCHBRUSH_OFF ) < 0
      CASE oGrafico:AddBarSeries( ID_RMC1, 2, aData3, 5, RMC_BARSTACKED, RMC_COLUMN_FLAT, .F., Default, .T., 1, RMC_VLABEL_NONE, 1, RMC_HATCHBRUSH_OFF ) < 0
      CASE oGrafico:AddBarSeries( ID_RMC1, 2, aData4, 5, RMC_BARSTACKED, RMC_COLUMN_FLAT, .F., Default, .T., 1, RMC_VLABEL_NONE, 1, RMC_HATCHBRUSH_OFF ) < 0
      CASE oGrafico:AddBarSeries( ID_RMC1, 2, aData5, 5, RMC_BARSTACKED, RMC_COLUMN_FLAT, .F., Default, .T., 1, RMC_VLABEL_NONE, 1, RMC_HATCHBRUSH_OFF )  < 0
      CASE oGrafico:AddRegion( ID_RMC1, 2, 252, 348, -2, "", .F. ) < 0
      CASE oGrafico:AddGridlessSeries( ID_RMC1, 3, aData6, 5, 0, 0, RMC_PIE_3D_GRADIENT, RMC_FULL, 2, .F., RMC_VLABEL_DEFAULT, RMC_HATCHBRUSH_OFF, 0 ) < 0
      CASE oGrafico:AddRegion( ID_RMC1, 352, 252, -2, -2, "", .F.) < 0
      CASE oGrafico:AddGrid( ID_RMC1, 4, AliceBlue, .T., 0, 0, 0, 0, RMC_BICOLOR_NONE ) < 0
      CASE oGrafico:AddDataAxis( ID_RMC1, 4, RMC_DATAAXISLEFT, 100, 250, 11, 8, Blue, Black, RMC_LINESTYLESOLID, 0, "$ ", "", "", RMC_TEXTCENTER )  < 0
      //CASE oGrafico:AddDataAxis( ID_RMC1, 4, RMC_DATAAXISRIGHT, 0, 0, 0, 0, 0, 0, 0, 2, " %", "" ) < 0
      CASE oGrafico:AddLabelAxis( ID_RMC1, 4, sTemp3, 1, 10, RMC_LABELAXISBOTTOM, 8, Black, RMC_TEXTCENTER, Black, RMC_LINESTYLESOLID, "" ) < 0
      CASE oGrafico:AddBarSeries( ID_RMC1, 4, aData7, 10, RMC_BARSINGLE, RMC_BAR_FLAT_GRADIENT2, .F., Gold, .F., 1, RMC_VLABEL_NONE, 1, RMC_HATCHBRUSH_OFF )  < 0
      CASE oGrafico:AddLineSeries( ID_RMC1, 4, aData8, 10, 0, 0, RMC_LINE, RMC_LINE_CABLE, RMC_LSTYLE_LINE, .F., Green, RMC_SYMBOL_NONE, 2, RMC_VLABEL_DEFAULT, RMC_HATCHBRUSH_OFF ) < 0
      CASE oGrafico:SetWatermark( RMC_USERWM, RMC_USERWMCOLOR, RMC_USERWMLUCENT, RMC_USERWMALIGN, RMC_USERFONTSIZE ) < 0
      CASE oGrafico:Draw( ID_RMC1 ) < 0
      ENDCASE
   ENDIF
   Inkey( 0 )
   oCrt:destroy()
   oGrafico:Destroy()
   HB_SYMBOL_UNUSED( sTemp1 + aData1 + sTemp2 + sTemp3 + aData2 + aData3 + aData4 + aData5 + aData6 + aData7 + aData8 )

   RETURN NIL

FUNCTION AMax( x )

   LOCAL nVal, oElement

   nVal := x[ 1 ]
   FOR EACH oElement IN x
      IF oElement > nVal
         nVal := oElement
      ENDIF
   NEXT

   RETURN nVal

CREATE CLASS RmChart

   VAR    nHandle

   METHOD New()                          INLINE ::nHandle := hb_libLoad( "RMChart.dll" ), SELF
   METHOD Destroy()                      INLINE hb_libFree( ::nHandle )
   METHOD CallDllStd( cName, ... )       INLINE hb_DynCall( { cName, ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
   METHOD CreateChart( ... )             INLINE ::CallDllStd( "RMC_CREATECHART", ... )
   METHOD AddRegion( ... )               INLINE ::CallDllStd( "RMC_ADDREGION", ... )
   METHOD AddCaption( ... )              INLINE ::CallDllStd( "RMC_ADDCAPTION", ... )
   METHOD AddGrid( ... )                 INLINE ::CallDllStd( "RMC_ADDGRID", ... )
   METHOD AddLabelAxis( ... )            INLINE ::CallDllStd( "RMC_ADDLABELAXIS", ... )
   METHOD AddDataAxis(a,b,c,d,e, ... )   INLINE ::CallDllStd( "RMC_ADDDATAAXIS", a, b, c, ::ToDecimal(d), ::ToDecimal(e), ... )
   METHOD AddLegend( ... )               INLINE ::CallDllStd( "RMC_ADDLEGEND", ... )
   METHOD AddBarSeries(a,b,c, ... )      INLINE ::CallDllStd( "RMC_ADDBARSERIES", a, b, ::ToDouble(c), ... )
   METHOD Draw( ... )                    INLINE ::CallDllStd( "RMC_DRAW", ... )
   METHOD Draw2Clipboard( ... )          INLINE ::CallDllStd( "RMC_DRAW2CLIPBOARD", ... )
   METHOD Draw2Printer( ... )            INLINE ::CallDllStd( "RMC_DRAW2PRINTER", ... )
   METHOD Draw2File( ... )               INLINE ::CallDllStd( "RMC_DRAW2FILE", ... )

   METHOD AddGridLessSeries(a,b,c, ... ) INLINE ::CallDllStd( "RMC_ADDGRIDLESSSERIES", a, b, ::ToDouble(c), ... )
   METHOD AddLineSeries( a,b,c, ... )    INLINE ::CallDllStd( "RMC_ADDLINESERIES", a, b, ::ToDouble(c), ... )
   METHOD SetWaterMark( ... )            INLINE ::CallDllStd( "RMC_SETWATERMARK", ... )
   METHOD WriteRMCFile( ... )            INLINE ::CallDllStd( "RMC_WRITERMCFILE", ... )
   METHOD ToDouble( c )
   METHOD ToDecimal( c )                 INLINE c + 1.01 - 1.01

ENDCLASS

METHOD RMChart:ToDouble( c )

   LOCAL cDouble := "", oElement

   FOR EACH oElement IN c
      cDouble += FToC( oElement )
   NEXT

   RETURN cDouble
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Usei DO CASE no segundo, porque estava testando uma parte de cada vez.
No final se tiver que dar GPF, dá com ou sem DO CASE... rs
Mas permitia eu selecionar até onde executar: coloquei um CASE .T. pra sair fora, e ia movendo isso uma linha de cada vez, pra poder enxergar qual linha causava GPF.

Código: Selecionar todos

DO CASE
CASE .....
CASE .T. // deste jeito, executava só até aqui
CASE ...
ENDCASE
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Como eu pensava, o RMChart não é compatível com ele mesmo kkkkkk
Ele gera exemplos errados.
Tá aí, gerado pela classe.
grafico.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

RMChart

Mensagem por asimoes »

Quintas,

Você tentou (?) fazer uma impressão usando :

oGrafico:Draw2Printer( nIdChart, RMC_LANDSCAPE, 10, 10, 250, 150, RMC_BMP )

Eu tenho uma impressora hp laserjet pro mfp 125 não imprime , mas para uma impressora pdf cutepdf writer gerou o pdf
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

HP Laserjet CP1215, precisando de 4 toners novos.... rs
Impresso assim

Código: Selecionar todos

      oGrafico:Draw2Printer( ID_RMC1, 0, 0, 0, 0, 0, RMC_BMP )
IMG_20160519_154707654_HDR.jpg
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

RMChart

Mensagem por JoséQuintas »

Quando apareceu esta pergunta:
O que foi usado pra fazer o gráfico?
relacionei com uma pergunta sua anterior:
Será que ninguém vai ajudar?
Ainda estou rindo.
Apesar de não ser pra rir...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

RMChart

Mensagem por asimoes »

Quintas,

A tua impressora é jato de tinta?
A minha é uma hp laserjet pro mpf 125, não imprime nada de win_printfileraw e descobri que também imprime arquivos tipo de dados EMF que é o caso da função
RMC_DRAW2PRINTER
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

RMChart

Mensagem por asimoes »

Quintas,

Muita gente que ajudou no tópico vai se beneficiar com as nossas descobertas. rs
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

RMChart

Mensagem por asimoes »

Consegui imprimir, com oGrafico:Draw2Printer( nIdChart, 0, 0, 0, 0, 0, RMC_BMP ), RMC_EMF , não.

Mas a qualidade da impressão é fraca
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder