Jump to content
Fivewin Brasil

Jmsilva

Membros
  • Posts

    718
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by Jmsilva

  1. Jmsilva

    Word

    Olá amigo, como prometi fiz uma rotina para o Word, porém não testei pq não tenho Word instalado, segue o site que usei para consulta. Espero que tenha ajudado, feliz 2012! a vc e todos os nossos amigos... /* Site para pesquisa: http://msdn.microsoft.com/en-us/library/aa211881%28v=office.11%29.aspx */ #Include "Fivewin.ch" **============================================================================== Function Main() **============================================================================== LOCAL cFile := CurDrive()+":\"+CurDir()+"\teste.doc" LOCAL oWord, oDocument, oText, cText TRY oWord := CreateObject( "Word.Application" ) CATCH MsgStop("ERRO! Word não instalado.","Alerta") RETURN Nil END oDocument := oWord:documents:open(cFile) //abre um arquivo doc/rtf // get -> seleciona o objeto oText := oWord:selection() // oculta o word oWord:visible := .F. cText := oText:Text oDocument:close() //fecha o doc oWord:quit() //finaliza MsgInfo(cText) Return Nil id=code>id=code>Agora vou para beira do Mar ver a queima fogos.....apesar da chuva.....
  2. Jmsilva

    Word

    A solução apresentada pelo Gibaf é plausível, tb a uso, porém gostaria perguntá-lo como faz para LER um arquivo do Word (.doc) obter o seu conteúdo para visualizar/editar o conteúdo com TRichEdit() sem que tenha instanciado ActiveX do Word. (É possível, sem que o usuário salve o arquivo como .RTF? parece que este é o problema do amigo). Quanto ao BROFFICE lembrando é gratuito basta instalar mesmo q o cliente não usa, em alguns casos adotaram na empresa o BROFFICE como padrão. Qto uma solução para Office Microsoft vou tentar cria um exemplo para postar, mas se eu conseguir vai precisar ter o pacote da Microsoft instalado, pelo menos por hora é a solução que posso sugerir.
  3. Jmsilva

    Word

    Olá, eu de novo! Se a ideia e visualizar o DOC na integra sem editar, a melhor opção seria está. /* ** autor: JOSÉ MARIA DA SILVA (JMSILVA) ** xHarbour 1.2.1 com FIVEWIN ** DATA: 29/12/2011 ** CIDADE: CARAGUATATUBA/SP ** OBS: PRECISA TER BROFFICE INSTALADO ** “writer_pdf_Export†=> Para salvar arquivos do Writer como PDF */ #INCLUDE "FIVEWIN.CH" Function Main () Local oService,oDesktop,oDocument,oZip,oTip,oBRUSH,oActiveX Local oDlg,oGet,cFile,aProp:={},cFilePDF,cSUrl cFile := cGetFile("Arquivo (doc,odt)|*.doc;*.odt|",; "Selecione o Arquivo (Doc/Odt)", 4 ) IF EMPTY(cFILE) ; RETURN nil ; ENDIF cFile := "file:///"+StrTran(cFile,"\","/") TRY oService := TOleAuto():New("com.sun.star.ServiceManager") CATCH MSGSTOP("Desculpe, precisa ter o BrOffice instalado.","Alerta") RETURN NIL END oDesktop := oService:createInstance("com.sun.star.frame.Desktop") AAdd(aProp,MakePropertyValue(oService,"Hidden",.T.)) //seta prop para ocultar oDocument := oDesktop:loadComponentFromURL(cFile, "_blank", 0, aProp) // {}) //abre o doc //exportar para pdf cFilePDF := "e:\xhbtest\test_PDF.pdf" cSUrl := "file:///"+StrTran(cFilePDF,"\","/") oZip := MakePropertyValue(oService, "CompressMode", 1) oTip := MakePropertyValue(oService, "FilterName", "writer_pdf_Export") oDocument:storeToURL(cSUrl, {oZip,oTip}) oDocument:Close(.T.) //fechao doumento DEFINE BRUSH oBrush STYLE "BORLAND" DEFINE DIALOG oDlg TITLE "Visualiza documentos doc/odt" size 640,480; BRUSH oBrush oActiveX := TActiveX():New(oDlg,"AcroPDF.PDF.1",3,2,; oDlg:nRight/2-5,oDlg:nBottom/2-5) ACTIVATE DIALOG oDlg CENTERED; ON INIT (oActiveX:Do("LoadFile",cFilePDF), oActiveX:Do("SetCurrentPage",1)) oDlg:End() //apaga pdf //Ferase(cFilePDF) Return Nil **============================================================================== STATIC FUNCTION MakePropertyValue(oService,cName,nValue) **============================================================================== LOCAL oStruct := oService:Bridge_GetStruct("com.sun.star.beans.PropertyValue") oStruct:Name := cName oStruct:Value := nValue RETURN(oStruct) id=code>id=code>Feliz 2012 a todos xHarbour (9376), Fivewin 10/11
  4. Jmsilva

    Word

    Olá Uso o brOffice desta forma, abro ".DOC" ou ".ODT" e exibo o texto em um Dialog. Veja o exemplo: /* ** autor: JOSÉ MARIA DA SILVA (JMSILVA) ** xHarbour 1.2.1 com FIVEWIN ** DATA: 29/12/2011 ** CIDADE: CARAGUATATUBA/SP ** OBS: PRECISA TER BROFFICE INSTALADO */ #INCLUDE "FIVEWIN.CH" #include "FGet.ch" Function Main () Local oService,oDesktop,oDocument,oTexto Local oDlg,oGet,cVarTxt,cFile,aProp:={} cFile := cGetFile("Arquivo (doc,odt)|*.doc;*.odt|",; "Selecione o Arquivo (Doc/Odt)", 4 ) IF EMPTY(cFILE) ; RETURN nil ; ENDIF cFile := "file:///"+StrTran(cFile,"\","/") TRY oService := TOleAuto():New("com.sun.star.ServiceManager") CATCH MSGSTOP("Desculpe, precisa ter o BrOffice instalado.","Alerta") RETURN NIL END oDesktop := oService:createInstance("com.sun.star.frame.Desktop") AAdd(aProp,MakePropertyValue(oService,"Hidden",.T.)) //seta prop para ocultar oDocument := oDesktop:loadComponentFromURL(cFile, "_blank", 0, aProp) // {}) //abre o doc //OBTÉM O TEXTO oTexto = oDocument:getText() cVarTxt := oTexto:getString() oDocument:Close(.T.) //fechao doumento DEFINE DIALOG oDlg TITLE "Visualiza documentos doc/odt" size 640,480 @ 0.5, 01 FORMAT GET oGet VAR cVarTXT OF oDlg SIZE 310,220 UPDATE ACTIVATE DIALOG oDlg CENTERED Return Nil **============================================================================== STATIC FUNCTION MakePropertyValue(oService,cName,nValue) **============================================================================== LOCAL oStruct := oService:Bridge_GetStruct("com.sun.star.beans.PropertyValue") oStruct:Name := cName oStruct:Value := nValue RETURN(oStruct) id=code>id=code>Feliz 2012 a todos xHarbour (9376), Fivewin 10/11
  5. Isso mesmo Kbelo, bordas nas linhas e colunas sem dados, as linhas que tem dados exibe normalmente as bordas... Editado por - jmsilva on 25/12/2011 13:44:17
  6. Grande Servulo, Faço das suas palavras os meus votos a todos os amigos programadores, que em 2012 poderemos compartilhar mais ainda o nosso conhecimento e nos ajudar mutuamente, permanecendo unidos pelo xHarbour. Abraços a todos, boas festas....
  7. Outra opção para conhecimento, uso da função FParse do xHarbour. FParse( , ) --> aTextArray
  8. Valeu mas não funcionou...
  9. Caro Crisvam, geralmente a lib SIXCDX.LIB vem com xHarbour, de uma olhada xHarbour\lib. As versões do xHarbour que é distribuído com Fivewin vem com ela. JMSILVA
  10. Crisvam, já que vc entrou neste post, deixa eu dar meu pitaco tb. Uso DBF com FPT, uso a lib SIXCDX.LIB, funciona muito bem, não tenho tido problema. As vezes que apresentou algum tipo de problema foi em virtude do mau uso, como falta de nobreak no pc e virus. No caso campo é MEMO com 10 posições. A RDDADS do amigo amigo nunca usei por não tenho o que falar. Att. JMSILVA
  11. Luiz Fernando, valeu a força! Mas não obtive êxito com a sua dica, apresenta um erro de runtime. Vou disponibilizar código fonte de um exemplo que apresenta o problema citado no escopo da mensagem inicial. Pode ser também em virtude da versão da Fivewin, uso a versão NOV/10 (11.10), pode ser que vc usa uma versão mais nova e não apresenta o problema. #include "FiveWin.ch" #include "FGet.ch" //----------------------------------------------------------------------------// function Main() local oDlg, oFld, oGet, oBrush, oBrush2, oFont local cHist:="" DEFINE BRUSH oBrush STYLE "BORLAND" DEFINE BRUSH oBrush2 STYLE "TABS" DEFINE DIALOG oDlg TITLE "Teste de Foldex"; SIZE 800, 400 BRUSH oBRUSH; STYLE nOR(WS_SYSMENU,WS_MINIMIZEBOX) oFont := TFont():New( "Arial",0,-12,.F.,.T.,0,0,0,.T.,.F.) @ 1, 1 FOLDEREX oFld SIZE 386, 160 OF oDlg; PROMPTS "Teste1","Teste2"; ANIMATE SPEED 50; ACTION ( ::HideTab( nOption ) ) oFld:oFont := oFont oFld:aDialogs[1]:SetBrush(oBrush2) oFld:aDialogs[2]:SetBrush(oBrush2) @ 06,06 FORMAT GET oGet VAR cHIST OF oFld:aDialogs[1] PIXEL; //[ MULTILINE, MEMO, TEXT ] ; SIZE 368,130 COLOR nRGB(0,0,0),nRGB(255,255,255); HSCROLL UPDATE @ 1,3 BUTTON "&Teste" size 70,50 font oFont OF oFld:aDialogs[2]; ACTION XBROWSE(oGET) ACTIVATE DIALOG oDlg oBrush:End() oBrush2:End() oDlg:End() return nil Att. JMSILVA Editado por - jmsilva on 16/12/2011 09:06:06
  12. Trata-se de problema apenas visual, mas esgotei as possibilidades, por isso peço ajuda. Estou trocando a classe TFolder para TFolderEx e a cor fundo do campo FGet (FORMAT GET) não fica branca, somente qdo vai incluindo linha. Trocando para classe TGet funciona, mas não atinge meu objetivo. Com a Classe Folder funciona bem, como pode ver na imagem... Editado por - jmsilva on 15/12/2011 14:46:11
  13. Trata-se de problema apenas visual, mas esgotei as possibilidades, por isso peço ajuda. Estou trocando a classe TFolder para TFolderEx e a cor fundo do campo FGet (FORMAT GET) não fica branca, somente qdo vai incluindo linha. Trocando para classe TGet funciona, mas não atinge meu objetivo. Com a Classe Folder funciona bem, como pode ver na imagem... Editado por - jmsilva on 15/12/2011 14:46:11
  14. Gostaria que exibisse grade de linhas e colunas, mesmo para as linhas que não tem dados. Só exibe para linhas que tem registro. Valeu!
  15. Gostaria que exibisse grade de linhas e colunas, mesmo para as linhas que não tem dados. Só exibe para linhas que tem registro. Valeu!
  16. Marsan, Crie um arquivo ou inclua se vc já o tem com nome da sua aplicação, com a extensão .RC EX: aplica.rc inclua a seguinte linha: aplication_ico ICON meuico.ico obs: pode incluir a path caso o arquivo de icone esteja em outra pasta. ex: pasta\meuico.ico e salva. Adicione este arquivo em seu Projeto e compila. id=red>
  17. Olá Gilmar! Minha sugestão, a qual uso no meu sistema é a seguinte: - Ao incluir a imagem do produto eu transformo em string, com a função abaixo e gravo em uma tabela dbf (campo memo) ou mysql: oImg:LoadImage(cResName, cFileImg ) //dois parametros 1º pd ser vazio cStrImg := BmpToStr(oImage:hBitmap) tabela->imagem := cStrImg //grava na tabela Para exibir a imagem uso: cStrImg := tabela->imagem oImg:LoadFromString(cStrImg) Para não ter problemas com tamanho da imagem, redefino o tamanho antes de transformar em string e gravar, conforme segue: oImg:hBitmap := ResizeBmp(oImage:hBitmap, nWidth, nHeight, .T.) //redimensiona Desta forma qdo vai inserir a imagem lê qq tipo de imagem (png,jpg,bmp,etc..), até momento não tive nenhum problema parecido com seu. Editado por - jmsilva on 07/12/2011 09:59:18
  18. Ficou vago seu problema se puder mostrar a rotina...ou citar detalhes dela...derepente da para ajudar... Se for uma pesquisa simples com dbseek, teria q ser rápido, agora se for selecionar registro depende como a rotina foi escrita.
  19. Ok, entrarei em contato. Uso pouco o MSN, saa50@bol.com.br
  20. blz, Estou falando do segundo produto que ele apresentou, que é para WEB... Obrigado.
  21. Alguém sabe o nome do produto que o palestrante Marcelo apresentou no congresso?
  22. Alguém sabe o nome do produto que o palestrante Marcelo apresentou no congresso?
  23. Valeu, Parabéns ao organizadores...., foi show! Quanto ao prejuizo dos organizadores, estou a disposição para contribuir com a taxa novamente sem problemas... JMSILVA Caraguatatuba-SP
×
×
  • Create New...