Jump to content
Fivewin Brasil

jfaguiar

Membros
  • Posts

    1,287
  • Joined

  • Last visited

  • Days Won

    21

Posts posted by jfaguiar

  1. olá meus amigos.

    Alguém me sugere uma classe paga ou de gratis para impressão de CF-e, tipo a Nfe_Util do glorioso dr. Gilmer para NF-e?

    Eu utilizava a classe do próprio fabricante de impressora, no caso a Darumafrawork, fornecida pela fabricante Daruma que já jaz no cemitério dos hardwares. Essa marca fornecia uma dll com exemplos para xharbour que funcionava bem, mas me obrigava a recomendar somente as impressora deles!

    Eu não tenho muita pressa pra isso não, mas tem aguns clientes que estão querendo me matar e eu ainda tenhos uns filhos novinhos pra criar, entendem.

    Obrigado

     

     

  2. Em 28/03/2014 at 14:14, aferra disse:

    kra, isso não é coisa do Deus, toca de madrugada dizendo que o sistema caiu, que o micro não entra na rede, que precisa largar o que estou fazendo para ajudar..kkkkkkkkkkkkkk ai eu perdi e não tenho mais desde então. kkkkkkkkkkkkkkkkk

    Verifica se o computador não está desligando a HD nas configurações de economia de energia. Se tiver, desliga essa bagaça.

  3. Boa tarde meu caro.

    Eu utilizo a gloriosa classe NFe_Util do dr. Gilmer e por lá existe um parâmetro que eu creio que vale pra todos (Vide Manual da NF-e) que quando trata-se de combustíveis, geralmente a cfop  5662 ou 5656, você tem que preencher a tag :cProdANP com um código específico.

    IF "5662" $ cCFop .OR. "5656" $ cCFop
       :cProdANP := 620101008
    ENDIF
     

    Abraço, espero tê-lo ajudado.

  4. Caríssimo, o Gilmer tem essa solução. Uma vez precisei de uma rotina para enviar e buscar dados no Web service da Semasa aqui em Snto André e ele me deu todo a assessoria por um valor bem interessante. 

    Segue aí um pedaço da rotina só a título de informação...

    cHost:="servicos.semasa.sp.gov.br"

    oServerWS := CreateObject( _MSXML2_ServerXMLHTTP )
    oServerWS:open('GET', cURL, .f.)
    oServerWS:setRequestHeader('host',cHost)
    Try
       oServerWS:send()
    CATCH e

       MsgStop("Problemas ao realizar solicitação com o Web Service.")

       RETURN .F.
    END
     

     

  5. Eu prefiro salvar no padrãozão do FW mesmo, assim...

    cNOMARQ :="Espelho da NFS-e "+ STR(TBFATURA->NUMNFE,6)

    PRINT oPrn NAME "Imprime Espelho da NFS-e " PREVIEW // MODAL FROM USER
       PAGE
          
          oPrn:CmSay(nPROW,01,"blá blá blá,oFont)
          oPrn:CmSay(nPROW,20.10,TRANSF(nVALOR,"@E 99,999,999.99"),oFont,,,,PAD_RIGHT )

       ENDPAGE
       oPrn:lMeta = .F.
    ENDPRINT
    FWSavePreviewToPDF( oPrn,"H:\SUAPASTA\"+cNOMARQ,.T. ) // .T. exibe o pdf, .F. não exibe
    ...

    Quanto ao harupdf eu utilizo para imprimir boletos bancários a partir do meu sistema com a gloriosa MRBoletos adaptada.

    Abço

  6. Você precisa analisar o array gerado por ftpdirectory e verificar se a linha é de fato o arquivo que você que baixar, porque nesse array armazena coisas que fazem parte da estrutura das pastas que não os arquivos que deseja baixar.

  7. Eu preferi fazer o meu próprio gerador de relatórios que o denominei como MsFlexReport. Com Flexreport eu consigo várias proezas como imprimir em modo retrato ou paisagem, totalização por grupos, imprimir o logo no cabeçalho, personalizar o título do relatório conforme as necessidades, etc, tudo gerado a partir de uma ferramenta visual onde posso gerar uma tabela temporária indexada da forma que eu bem quoser para armazenar os dados ou ler uma tabela específica que poderá ser relacionada com várias outras, tudo sem escrever uma linha sequer de código fonte.  Todavia, em casos de relatórios mais complexos, eu posso criar uma rotina escrita que irá acumular os dados nessa tabela temporária. Outra coisa importante é a praticidade dessa minha ferramenta visual que me permite testar e visualizar o relatório no momento da sua contrução, facilitando assim o trabalho. Dentre outras coisas, eu consigo gerar uma quantidade de relatórios infinita de uma mesma tabela, uma vez que essas informações ficam armazenadas num dicionário de relatórios os quais são distinguido por seu codinome Como eu executo os relatórios criados à partir dessa minha ferramenta a partir dos menus? Simples, basta informar através do seu gerador de menus ou através do seu código fonte da seguinte forma:

    No meu gerador de menus chamo assim: &Contas a Receber                                 ;InicioSubMenu()                              ;Inicio do submenudo financeiro                                   
    Manutenção de Contas a Receber                    ;CADGER("ARQCREC")                            ;Manutenção e baixa de contas a receber                           
    &Borderô de Desconto                              ;Finr002()                                    ;Borderô de Desconto                                              
    Manutenção de Cobrança                            ;CADGER("TBCOBR")                             ;Manutenção de Cobrança                                           
    Baixa de Cobrança P/Arq. Retorno                  ;BAIXRETCB()                                  ;Baixa e atualização da cobrança pelo arquivo de retorno do banco 
    &Relatórios de Diversos da Cobrança               ;FINR110()                                    ;Relatórios de títulos emitidos/a receber/recebidos no período    
    &Extrato do Cliente                               ;Finr130()                                    ;Extrato financeiro do cliente                                    
    Tipos de Cobrança                                 ;CADGER("ARQTCOB")                            ;Tipos de Cobrança                                                
    Formas de Pagamento                               ;CADGER("ARQFPAG")                            ;Formas de Pagamento                                              
    Fim do submenu de contas a receber                ;FimSubMenu()                                 ;Fim do submenu de contas a receber                               
    Contas a &Pagar                                   ;InicioSubMenu()                              ;Inicio do submenu de contas a pagar                              
    Manutenção de Contas à Pagar                      ;CADGER("ARQCPAG","VerificaSaldos()")         ;Manutenção de contas a pagar                                     
    Contas a Pagar Múltiplas Parcelas                 ;CADGER("TBENTCPM")                           ;Contas a Pagar Múltiplas Parcelas                                
    &Relatórios de Títulos Pagos                      ;FlexReport("ARQCPAG","CTAPAG")               ;Relatórios de títulos pagos                                      
    &Relatórios de Títulos Emitidos                   ;FlexReport("ARQCPAG","CTAPEMIT")             ;Relatórios de títulos emitidos                                   
    &Relatórios de Títulos a Pagar                    ;FlexReport("ARQCPAG","CTAAPAG")              ;Relatórios de títulos a pagar...

    A partir do código fonte chamo assim:

    ...

    MENUITEM "&Relatório de Contas a Pagar";

       ACTION FlexReport("ARQCPAG","CTAAPAG");

       MESSAGE "Relatórios de títulos a pagar"...

    Aproveitando pra vender o peixe, eu também tenho um gerador de tabelas, indices das tabelas, pesquisas, um gerador de cadastros e subcadastro, gerador de pesquisas, gerador de menus, dentre outras coisinhas que me poupam muitas linhas de códigos fontes.

    Quando quiserem uma demonstração será um prazer mostrar pra galera.

    Abraços,

    Feliz ano novo.

                                  
     

  8. Em 15/07/2022 at 17:37, gilmer disse:

    Boa Tarde,


    Você pode mandar com mais casas decimais, acredito que a classe não ira fazer distinção. 

    Olá Gilmer. Então o problema está se dando aqui no método StruProduto() nessa linha.

    Tive que criar uma variável na minha aplicação e alterar a classe. O problema é que nesse caso terei que criar essa variável em todos os meu aplicativos:

    Estava assim: aadd( axArray, {"vUnCom"  , TVoNFeItem():New("C", 01, 16,,4,,oItem:vUnCom ) }  )

    Mudei para assim: aadd( axArray, {"vUnCom"  , TVoNFeItem():New("C", 01, 16,,nQTDDECPU,,oItem:vUnCom ) }  )  

    Obrigado

  9. Boa tarde pessoal.

    Como faço para enviar via parâmetros uma variável para uma classe como a TVoNFe2g():New() do senhor Gilmer?

    Por exemplo: eu quero que essa classe entenda quantas casas decimais deverão ser utilizadas no preço unitário. Lá na classe, no METHOD StruProduto( oItem ) eu tenho como determinar quantas casas decimais deverei utilizar para o preço unitário, mas como mando esse valor para lá sem ter do meu projeto, pois na maioria das situações são 2 casas decimais, porém noutras são 3 ou 4 e até mais casas decimais.

    Obrigado

  10. Olá amigos.

    Criei uma aplicação que interage com uma tabela de preços / comissão em Excel e gostaria de saber se na  TExcelScript() tem método para excluir uma linha.

    Verifiquei  que existe método para inserir linha:  InsertRow(), duplicar: Duplicate(), porém o de exclusão, eu não encontrei.

    Obrigado.

     

  11. Olá de novo galera !!!

    Utilizando o estilo de programação abaixo, como faço para definir a cor e o fonte do header ?

    Obrigadoo.

    DEFINE FONT oFontScr NAME "Ms Sans Serif" SIZE 10,10
    DEFINE FONT oBold NAME "ARIAL" SIZE 0,-16 BOLD
    DEFINE DIALOG oDlg FROM 01,01 TO 43,154 TITLE "Planilha de Preços de Vendas / Comissões" FONT oFONTSCR
       nWidthLb  := oDlg:nWidth()  * IF(oDlg:nWidth() < 411, 0.480009,0.489900)
       nHeightLb := HeightLb( oDlg:nHeight() ) -15 //  para 1 fileira de botoes -40 2 fileiras
       oBrw := TxBrowse():New(oDlg)   // xBrowse copiado de CadItinerarios()
       oBrw:nTop  := 8
       oBrw:nLeft := 4
       oBrw:nbottom := nHeightLb + 41
       oBrw:nRight:= nWidthLb + 3 // 6 em pixel


       oBrw:nColDividerStyle := LINESTYLE_LIGHTGRAY // LINESTYLE_BLACK por array
       oBrw:nRowDividerStyle := LINESTYLE_LIGHTGRAY // LINESTYLE_BLACK
       oBrw:nMarqueeStyle    := MARQSTYLE_HIGHLCELL
       oBrw:cAlias := Alias()
       oBrw:lAllowColSwapping   := .f.
       oBrw:lColDividerComplete := .t.
       oBrw:lHScroll            := .f.
       oBrw:lFastEdit           := .t.
       oBRW:nRowHeight:= 20
       oBRW:Font := oBold

       //
       aCols := oBrw:AddCol()
       oBrw:aCols[1]:bStrData     := { || TBTABPRECO->PRODUTO}
       oBrw:aCols[1]:cHeader      := "Produto"
       oBrw:aCols[1]:bClrEdit     := oBrw:bClrStd
       oBrw:aCols[1]:nWidth       := 430
       oBrw:aCols[1]:bClrStd      := { || { CLR_BLACK, CLR_YELLOW }}
       oBrw:aCols[1]:oDataFont    := oBold
       //
       aCols := oBrw:AddCol()
       oBrw:aCols[2]:bStrData     := { || TRANSF(TBTABPRECO->CUSTOPLUS-TBTABPRECO->CUSTO,"@E 999.99")}
       oBrw:aCols[2]:cHeader      := "Grd"
       oBrw:aCols[2]:nWidth       := 60
       oBrw:aCols[2]:bClrStd      := { || { CLR_CYAN,CLR_WHITE }}
       oBrw:aCols[2]:oDataFont    := oBold 
       //
       aCols := oBrw:AddCol()
       oBrw:aCols[3]:bStrData     := { || TBTABPRECO->CUSTO}
       oBrw:aCols[3]:cHeader      := "Custo"
       oBrw:aCols[3]:bClrEdit     := oBrw:bClrStd
       oBrw:aCols[3]:bOnPostEdit  := { | oCol, xVal, nKey | IF( nKey == VK_RETURN .OR. nKey == VK_TAB, (TBTABPRECO->CUSTO:= xVal,oBrw:Refresh()),) }
       oBrw:aCols[3]:nEditType    := EDIT_GET
       oBrw:aCols[3]:nWidth       := 70
       oBrw:aCols[3]:bClrStd      := { || { CLR_CYAN,CLR_WHITE }}
       oBrw:aCols[3]:cEditPicture := "999.99"
       oBrw:aCols[3]:oDataFont    := oBold
     

  12. Boa tarde amigos.

    Estou com um problema de conexão com o Sat Dimep, utilizando a dll daruma Framework. No meu caso, a impressora é conectada, porem o modem do Sat não conecta de jeito nenhum. alguém está  passando pelo mesmo problema?

    Sem alguém tem uma solução para se conectar com a impressora Daruma, Sweda ou outram em xharbour que funciona bem, por favor, me indiquem.

    Muito Obrigado.

  13. Atualmente utilizo bastante a classe nativa de FTP do Fivewin utilizando a porta 21 conforme exemplo abaixo:

    hftp:=InternetConnect(onet,cFTPServer,21,cFTPUser,cFTPPwd,1,2,0).

    Porém tenho cliente que não utiliza FTP e sim FTPS.

    Alguém sebe me explicar qual parâmetro devo mudar, para a classe entender que é FTPS ?

    Obrigado

     

     

     

  14. Olá amigos.

    Sei que não é o lugar adequado, mais estou precisando muito de uma planilha ou arquivo csv com os CNPJ's de São Bernardo do Campo ou de todos os endereços do Brasil.

    Alguém teria esse arquivo ou poderia me informar onde posso conseguir?

    Obriagado

     

     

  15. Olá galera.

    Como faço para capturar o número da coluna em que estou focado em xbrowse? Em WBrowse é a funcionalidade nAtCol, exemplo:

    ******************************************************************************
    STATIC FUNCTION EditListBox(oLbx, nRow, nCol, nKEY)
    IF nCol > 0
       nCOL := oLbx:nAtCol( ncol )
       IF nCol = 1 // campo Imprime n 1
          IF STATUS = 2
             IF !MsgNoYes("Cancela a seleção deste título ?",'Confirmação')
                RETURN Nil
             ENDIF
             REPLACE STATUS WITH 1
          ELSE
             REPLACE STATUS WITH 2
          ENDIF
       ENDIF
       oLbx:Refresh()
    ENDIF
    RETURN Nil
    *****************************************************************************
     

    Obrigado

  16. 2 horas atrás, kapiaba disse:

     

    
    	 
    	oBrw:aCols[3]:bClrStd := { || If( mitabla->micampo > 3, ;
                             { CLR_WHITE, RGB(255,55,55) },;
                             If( mitabla->micampo < 3, ;
                             { CLR_BLACK, RGB(55,255,55) }, { CLR_BLACK, CLR_YELLOW }  )) }
    	

     

     

    Regards, saludos.

    Kapiaba, você é monstro! Obrigado.

×
×
  • Create New...