Jump to content
Fivewin Brasil

mkyx

Membros
  • Posts

    892
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by mkyx

  1. na compilação, eu uso as libs: xhbcomm.lib e xhbcommdll.lib
  2. Uma ideia, tendo dois ou mais computadores em diferentes locais, numa cidade ou pais um computador de um local, faz uma venda e gera um arquivo texto ou pdf daquela venda, e faz o upload desse arquivo (txt, ou pdf) para um servidor de arquivos nas nuvens. um outro computador do outro lado, fica lendo uma pasta nas nuvens, localizando determinado nome de arquivo, ao encontra-lo, baixa-o e o imprime simples assim, fiz isso dentro de uma firma, mas funciona em qualquer lugar. Espera ter ajudado.
  3. já corrigi troquei o arquivo bemasat64.dll pelo arquivo bemasat.dll daí deu certo.
  4. Boa noite, Fivewinners Alguém sabe dizer porque o comando abaixo, nao funciona? o sistema operacional é windows 7 64 bits, a dll está dentro da pasta e dentro da pasta windows, juntamente com o xml de configuração da bematech hdllSAT:=LoadLibrary( "BemaSAT64.DLL" ) tentei, o comando abaixo, mas tb não deu certo hdllSAT:=LoadLib32( "BemaSAT64.DLL" ) ? hdllSAT resposta 0 a dll não carrega. Obrigado a todos.
  5. Você faz assim? Vp:=round(10.5678,2) : ou em forma de variável, assim: vp1:=10.5678 vp2:=round(vp1,2) ?????? para calcular os impostos, faço assim: vpis:=valor*0.065 vpis:=round(vpis,2) outros exemplos, de como faço: v3:=nvalor*2/100 v3:=round(v3,2) :vFCPUFDest :=v3 para calcular o valor do pis, na nfe: :CST_Pis := '01' :vBC_Pis := nVALOR // Valor da Base de Cálculo do PIS :pPIS := ARQ_LPN->POR_PIS // Alíquota do PIS (percentual) vp:=nVALOR*ARQ_LPN->POR_PIS/100 vp:=ROUND(VP,2) :vPIS := vp t_pis:=t_pis+vp t_pis:=round(t_pis,2)
  6. nunca tive esse problemas, mas acho que você deverá mudar a forma como você processa os cálculos.
  7. Você pode também, reservar um espaço dentro do dialog/window, ao lado do xbrowse, pra exibir o jpg ou bmp, usando btnbmp ou o comando @ l,c image e a medida que for navegando no xbrowse, a foto vai sendo exibida ao lado.
  8. mkyx

    Ler e-mails

    Pessoal , tem como define segurança TLS, no camando abaixo, pois o servidor pop de e-mail que uso, exigir nível de segurança. cUser:="mkyx&at;bol.com.br" Pass:="SuaSenhaAqui" Serv:=pop.bol.com.br" cUrl:="pop://"+cUser+":"+Pass+"@"+Serv oUrl := tUrl():New( cUrl ) oUrl:cUserid := Strtran( cUser, "&at;", "@" ) oPop := TIpClientPop():new(oUrl) oPop:nDefaultPort := 995 // porta para o servidor pop de e-mail do bol.com.br oPop:nConnTimeout := 12000 IF .NOT. oPop:open() ? "Connection error:", oPop:lastErrorMessage() QUIT ELSE aEMails := oPop:retrieveAll(.F.) oPop:close() ENDIF Neste exemplo, o sistema demora, e depois emite erro de conexão.
  9. Como faço pra criar a tabela no xbrowse: SELECT ARQ_TAB1 ARQ_TAB1->(dbsetorder(1)) ARQ_TAB1->(ORDSCOPE(0,STRZERO(CODFIR,3)+STRZERO(C_ANO,4))) ARQ_TAB1->(ORDSCOPE(1,STRZERO(CODFIR,3)+STRZERO(C_ANO,4))) ARQ_TAB1->(DBGOTOP()) oBrw0_1 := TXBrowse():New( OWND ) oBrw0_1:nTop:=70 oBrw0_1:nLeft:=05 oBrw0_1:nBottom:=640 oBrw0_1:nRight:=1240 oBrw0_1:nMarqueeStyle := MARQSTYLE_HIGHLCELL oBrw0_1:nColDividerStyle := 1 oBrw0_1:nRowDividerStyle := 1 oBrw0_1:cAlias := "ARQ_TAB1" oBrw0_1:lColDividerComplete := .t. oBrw0_1:nHeaderLines := 5 //--> Cabecalho em 2 Linhas. oBrw0_1:nDataLines := 3 // Aumenta o espaco da linha oBrw0_1:lAllowColSwapping :=.T. // Trocar Colunas oBrw0_1:lAllowRowSizing := .T. //--> Nao move as Linhas oBrw0_1:nRowHeight := 30 //--> Altura das Linhas do ListBox. oBrw0_1:lHScroll := .T. oBrw0_1:lVScroll := .T. oBrw0_1:lHeader := .T. oBrw0_1:lFooter := .F. oBrw0_1:nFreeze := 1 oBrw0_1:lRecordSelector := .T. oBrw0_1:l2007:=.T. oBrw0_1:bClrStd := {||iif(ARQ_TAB1->NOMEMES="SOMA ANUAL",{CLR_BLACK,nRGB(56,176,222)},IIF("TRIMESTRE"$ARQ_TAB1->NOMEMES,{CLR_BLACK,nRGB(254,187,137)},{CLR_BLUE,nRGB(255,255,255)}))} oBrw0_1:lFooter := .F. oBrw0_1:oFont := OFONT oCol:= oBrw0_1:AddCol() oCol:bStrData := { || ARQ_TAB1->NOMEMES} oCol:cHeader := "MÊS" oCol:oDataFont := OFONT oCol:nHeadStrAlign := AL_CENTER oCol:oHeaderFont := OFNT1 oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->VENDAS>0,TRANSFORM(ARQ_TAB1->VENDAS,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "VENDAS" oCol:oHeaderFont := OFNT1 oCol:oDataFont := OFONT oCol:cEditPicture := "@E 999,999,999.99" oCol:bEditvalue := { || ARQ_TAB1->VENDAS } oCol:nEditType := iif(left(arq_tab1->tipo,1)#"T",EDIT_GET,EDIT_NONE) oCol:bOnPostEdit := { | oCol, uVal, nKey | iif(left(arq_tab1->tipo,1)#"T",(ARQ_TAB1->(dbrlock()),(QT_Ant:=ARQ_TAB1->VENDAS),ARQ_TAB1->( FieldPut(oCol:nCreationOrder, uVal)),ARQ_TAB1->(dbcommit()),ARQ_TAB1->(dbunlock()),oBrw0_1:refresh(),tecla(NKEY,ARQ_TAB1->(recno()))),) } oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->FATURA>0,TRANSFORM(ARQ_TAB1->FATURA,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "SERVIÇOS" oCol:oDataFont := OFONT oCol:oHeaderFont := OFNT1 oCol:cEditPicture := "@E 999,999,999.99" oCol:bEditvalue := { || ARQ_TAB1->FATURA } oCol:nEditType := iif(left(arq_tab1->tipo,1)#"T",EDIT_GET,EDIT_NONE) oCol:bOnPostEdit := { | oCol, uVal, nKey | iif(left(arq_tab1->tipo,1)#"T",(ARQ_TAB1->(dbrlock()),(QT_Ant:=ARQ_TAB1->FATURA),ARQ_TAB1->( FieldPut(oCol:nCreationOrder, uVal)),ARQ_TAB1->(dbcommit()),ARQ_TAB1->(dbunlock()),oBrw0_1:refresh(),tecla(NKEY,ARQ_TAB1->(recno()))),) } oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->GANHOS>0,TRANSFORM(ARQ_TAB1->GANHOS,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "GANHOS CAP" oCol:oDataFont := OFONT oCol:oHeaderFont := OFNT1 oCol:cEditPicture := "@E 999,999,999.99" oCol:bEditvalue := { || ARQ_TAB1->GANHOS } oCol:nEditType := iif(left(arq_tab1->tipo,1)#"T",EDIT_GET,EDIT_NONE) oCol:bOnPostEdit := { | oCol, uVal, nKey | iif(left(arq_tab1->tipo,1)#"T",(ARQ_TAB1->(dbrlock()),(QT_Ant:=ARQ_TAB1->GANHOS),ARQ_TAB1->( FieldPut(oCol:nCreationOrder, uVal)),ARQ_TAB1->(dbcommit()),ARQ_TAB1->(dbunlock()),oBrw0_1:refresh(),tecla(NKEY,ARQ_TAB1->(recno()))),) } oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->RENDIMENTO>0,TRANSFORM(ARQ_TAB1->RENDIMENTO,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "REND APLIC" oCol:oDataFont := OFONT oCol:oHeaderFont := OFNT1 oCol:cEditPicture := "@E 999,999,999.99" oCol:bEditvalue := { || ARQ_TAB1->RENDIMENTO } oCol:nEditType := iif(left(arq_tab1->tipo,1)#"T",EDIT_GET,EDIT_NONE) oCol:bOnPostEdit := { | oCol, uVal, nKey | iif(left(arq_tab1->tipo,1)#"T",(ARQ_TAB1->(dbrlock()),(QT_Ant:=ARQ_TAB1->RENDIMENTO),ARQ_TAB1->( FieldPut(oCol:nCreationOrder, uVal)),ARQ_TAB1->(dbcommit()),ARQ_TAB1->(dbunlock()),oBrw0_1:refresh(),tecla(NKEY,ARQ_TAB1->(recno()))),) } oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() // a linha abaixo não funciona, colocar tudo na mesma linha oCol:bStrData := {||if(arq_tab1->pis>0,DTOC(ARQ_TAB1->APURACAO)+CRLF+TRANSFORM(ARQ_TAB1->PIS,"@E 999,999,999.99"),space(10))} // já o cabeçalho abaixo, funciona oCol:cHeader := "PIS"+CRLF+"8109"+CRLF+"DATA APURAÇÃO"+CRLF+"VALOR"+CRLF+"VENCIMENTO" oCol:oDataFont := OFONT oCol:oHeaderFont := OFNT1 oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->COFINS>0,TRANSFORM(ARQ_TAB1->COFINS,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "COFINS" oCol:oHeaderFont := OFNT1 oCol:oDataFont := OFONT oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->CSOCIAL>0,TRANSFORM(ARQ_TAB1->CSOCIAL,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "CSLL" oCol:oHeaderFont := OFNT1 oCol:oDataFont := OFONT oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->IRPJ>0,TRANSFORM(ARQ_TAB1->IRPJ,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "IRPJ" oCol:oHeaderFont := OFNT1 oCol:oDataFont := OFONT oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->ADICIONAL>0,TRANSFORM(ARQ_TAB1->ADICIONAL,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "ADICIONAL" oCol:oHeaderFont := OFNT1 oCol:oDataFont := OFONT oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->SERVICOS>0,TRANSFORM(ARQ_TAB1->SERVICOS,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "SERVIÇOS T" oCol:oDataFont := OFONT oCol:oHeaderFont := OFNT1 oCol:cEditPicture := "@E 999,999,999.99" oCol:bEditvalue := { || ARQ_TAB1->SERVICOS } oCol:nEditType := iif(left(arq_tab1->tipo,1)#"T",EDIT_GET,EDIT_NONE) oCol:bOnPostEdit := { | oCol, uVal, nKey | iif(left(arq_tab1->tipo,1)#"T",(ARQ_TAB1->(dbrlock()),(QT_Ant:=ARQ_TAB1->SERVICOS),ARQ_TAB1->( FieldPut(oCol:nCreationOrder, uVal)),ARQ_TAB1->(dbcommit()),ARQ_TAB1->(dbunlock()),oBrw0_1:refresh(),tecla(NKEY,ARQ_TAB1->(recno()))),) } oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->VALOR_ISS>0,TRANSFORM(ARQ_TAB1->VALOR_ISS,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "ISS" oCol:oDataFont := OFONT oCol:oHeaderFont := OFNT1 oCol:cEditPicture := "@E 999,999,999.99" oCol:bEditvalue := { || ARQ_TAB1->VALOR_ISS } oCol:nEditType := iif(left(arq_tab1->tipo,1)#"T",EDIT_GET,EDIT_NONE) oCol:bOnPostEdit := { | oCol, uVal, nKey | iif(left(arq_tab1->tipo,1)#"T",(ARQ_TAB1->(dbrlock()),(QT_Ant:=ARQ_TAB1->VALOR_ISS),ARQ_TAB1->( FieldPut(oCol:nCreationOrder, uVal)),ARQ_TAB1->(dbcommit()),ARQ_TAB1->(dbunlock()),oBrw0_1:refresh(),tecla(NKEY,ARQ_TAB1->(recno()))),) } oCol:nHeadStrAlign := AL_CENTER oCol:= oBrw0_1:AddCol() oCol:bStrData := { || IIF(ARQ_TAB1->VALOR_INSS>0,TRANSFORM(ARQ_TAB1->VALOR_INSS,"@E 999,999,999.99"),SPACE(10)) } oCol:cHeader := "INSS" oCol:oDataFont := OFONT oCol:oHeaderFont := OFNT1 oCol:cEditPicture := "@E 999,999,999.99" oCol:bEditvalue := { || ARQ_TAB1->VALOR_INSS } oCol:nEditType := iif(left(arq_tab1->tipo,1)#"T",EDIT_GET,EDIT_NONE) oCol:bOnPostEdit := { | oCol, uVal, nKey | iif(left(arq_tab1->tipo,1)#"T",(ARQ_TAB1->(dbrlock()),(QT_Ant:=ARQ_TAB1->VALOR_INSS),ARQ_TAB1->( FieldPut(oCol:nCreationOrder, uVal)),ARQ_TAB1->(dbcommit()),ARQ_TAB1->(dbunlock()),oBrw0_1:refresh(),tecla(NKEY,ARQ_TAB1->(recno()))),) } oCol:nHeadStrAlign := AL_CENTER oBrw0_1:bKeydown:={|nkey|_obrww_(oBrw0_1:ColAtPos(oBrw0_1:nColsel):nCreationOrder,nkey,ARQ_TAB1->(RECNO()))} oBrw0_1:SetRDD() oBrw0_1:CreateFromCode() O problema é que a exibição do cabeçalho, funciona, dividindo em 5 linhas, mas a parte dos registros, dos dados, não divide em 3 linhas, como está no comando acima. Onde será que estou pecando?
  10. Já tinha feito como você passou, e voltei a tentar de novo, mas não separa, deixando apenas tudo numa linha.
  11. Boa dia a todos. para colocar mais de uma linha no cabeçalho, fiz assim e deu certo: oBrw:nHeaderLines := 5 //--> Cabecalho em 5 Linhas. no cabeçalho das colunas, fiz assim e deu certo: oCol:= oBrw:AddCol() oCol:cHeader := "PIS"+CHR(13)+"8109"+CHR(13)+"DATA APURAÇÃO"+CHR(13)+"VALOR"+CHR(13)+"VENCIMENTO" Mas, na área de dados (datalines), fiz de maneira semelhante, mas não funcionou: oBrw:nDataLines := 3 // área de dados com 3 linhas na área de dados das colunas, fiz assim e não funcionou: oCol:bStrData := { || DTOC(ARQ_IMP->APURACAO)+CHR(13)+TRANSFORM(ARQ_IMP->PIS,"@E 999,999,999.99")+CHR(13)+DTOC(ARQ_IMP->VENCIMENTO) } Alguém tem alguma idéia??? Pompeo Guaratingueta SP
  12. Achei algo util nesse link, quem me passou disse que funciona até hoje, para os feras deste forum, vai ai, se puderem decifrar. https://github.com/mgp25/Chat-API
  13. Boa tarde, Fivewinners, Duas peguntas: 1 - Tem como a partir do sistema fivewin, enviar mensagens de textos, figuras para o whatsapp? 2 - Como adicionar uma coluna no xbrowse, em tempo de execução? Obrigado antecidamente a nós mais que vencedores. Pompeo Guaratinguetá - SP
  14. kapiaba, então, pra usar o png, só atualizando o fivewin?
  15. Boa tarde, grandes empreendedores, Eu uso o fivewin 8.02, tem como usar figura .PNG no comando BTNBMP? senão, será que alterando na classe, isso é possível, ou tenho que adquirir uma versão mais recente do FIVEWIN? Muito grato Pompeo Guaratinguetá - SP
  16. Ocorreu esse erro num cliente, ao fazer carta de correção, perdi uma hora tentando corrigir, achando que era pau no programa, ou na sefaz, mas ao acompanhar o cliente, observei que o mesmo usava espaço duplo entre as palavras. Solução: eliminei os espaços duplo, e bimba, funcionou.
  17. Uma ideia seria pegar todas as tarefas em execução pelo Windows, jogar num vetor, e depois analisar esse vetor. Parece-me que já vi algo a respeito, aqui no fórum, mas não me recordo onde.
  18. eu criei um função, que separa as palavras de uma frase, e depois faz uma separação silábica de cada palavra, agora estou inserindo uma analise que cada silaba, para ver se tem ou faz algum sentido em português. A partir daí, pode-se definir se o texto digitado, tem sentido ou não. Se é isto que você precisa, depois vou postar aqui no grupo, o fonte dessa função.
  19. Vou testar e já posto os resultados. Muito agradecido.
  20. Não sei se estou fazendo correto, mas abaixo, listo a minha rotina: cSqlQ:="SELECT BOLETO.N_BOLETO,BOLETO.CLIENTE,ADE_CLI.RAZAO_SOCIAL,BOLETO.EMISSAO,BOLETO.VENCIMENTO,BOLETO.VALOR,BOLETO.PAGAMENTO,BOLETO.VALOR_PAGO FROM BOLETO INNER JOIN ADE_CLI ON BOLETO.CLIENTE=ADE_CLI.CODIGO;" dbUseArea(, "SQLRDD", cSqlQ, 'ARQ_BOLETO') ARQ_BOLETO->(DBGOTOP()) DO WHILE !ARQ_BOLETO->(EOF()) OPRN:SAY(LINHA,COLUNA*4.5,ALLTRIM(STR(ARQ_BOLETO->N_BOLETO)),FONTE01) OPRN:SAY(LINHA,COLUNA*9,ALLTRIM(STR(ARQ_BOLETO->CLIENTE))+" - "+ARQ_ADECLI->RAZAO_SOCIAL,FONTE01) OPRN:SAY(LINHA,COLUNA*39.5,DTOC(ARQ_BOLETO->EMISSAO),FONTE01) OPRN:SAY(LINHA,COLUNA*46.5,DTOC(ARQ_BOLETO->VENCIMENTO),FONTE01) OPRN:SAY(LINHA,COLUNA*54,TRANSFORM(ARQ_BOLETO->VALOR, "@E 999,999,999.99"),FONTE01) OPRN:SAY(LINHA,COLUNA*62.5,DTOC(ARQ_BOLETO->PAGAMENTO),FONTE01) OPRN:SAY(LINHA,COLUNA*70,TRANSFORM(ARQ_BOLETO->VALOR_PAGO, "@E 999,999,999.99"),FONTE01) OPRN:LINE(LINHA,COLUNA*2,LINHA,COLUNA*78,OPEN1) LINHA=LINHA+AVANCA ARQ_BOLETO->(DBSKIP()) ENDDO está rotina, imprime todos os boletos, mas a razão social, só pega do primeiro registro do arquivo ADE_CLI. O que será que está errado???
  21. Bom dia, fivewinners, Tenho dois arquivos, em MYSQL, boletos e clientes. No arquivo boletos tem o campo cliente, onde é armazenado o código do cliente, que ao gerar o relatório deverá ser localizado o nome do cliente, no arquivo clientes, através deste campo. Já tentei várias opções de comando. Alguém, poderia postar algum comando para que eu possa fazer o relatório de boletos preenchendo com o nome do cliente? layout do relatório de boletos: nº boleto | código cliente-razão social | data emissão | data vencimento| valor | onde tem a razão social, deverá ser extraído do arquivo clientes. Att. Pompeo Desenvolvedor/Contador/Auditor Guaratinguetá - SP FWH 8.02 - xharbour build 2008
  22. usar a função de enviar e-mails, da flexdocs, não precisa da licença de uso. É simples, fácil e rápido. Att. Pompeo
  23. Onde encontro a função hb_jsondecode???
  24. Registro pra que? Você vendeu os fontes para seu cliente, nesse caso o cliente pode exigir registro, para se assegurar, ou os fontes vão continuar com você e o cliente vai comprar ou alugar o executável? Nesse caso, não é necessário nenhum registro. Mas, se você desenvolveu um software específico para esse cliente com a experiência e o conhecimento desse cliente, os quais ele foi te passando como desenvolver as rotinas de trabalho, nesse caso ele pode exigir registro, a não ser, que você já tivesse combinado com esse cliente como funcionaria o seu contrato com ele.
  25. passa aqui os comandos de como usar o fast, favor.
×
×
  • Create New...