Jump to content
Fivewin Brasil

dorneles

Membros
  • Posts

    712
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by dorneles

  1. alguem tem uma funcao para pegar os dados desse site? https://www.receitaws.com.br/v1/cnpj/1234567890123
  2. Olá, vc tem que utializar o method ConsultaNFDest() objNFeUtil:ConsultaNFDest(cEstadoEmitenteNFe,cCNPJ,"0","0",cUltNsu,,@cmsgResultado)
  3. http://www.spedbrasil.net/forum/topics/nf-e-a-quarta-geracao-nt-2016-002-versao-1-0
  4. o problema esta tanto com a FASTREPORT e com a TDOSPRN. e é somente com o R8, nos outros windows funcionar normal.
  5. Estou tento problema no WINDOWS SERVER R8, quando vai imprimir em uma matricial pelo TS, as fontes sai todas desconfigurada, nao da para ler nada. Alguem sabe como resolver? Obrigado
  6. Kapiaba, mas assim mudaria o valor total da VENDA para 169,66 Ana ate da certo, mas no final da venda eu tenho que calcular o valor do desconto por produto, e somar para dar o total da venda. mas o total da venda nao ficaria 169,65
  7. O problema esta no valor unitario que envia para o ECF, porque ele tem 2 CASA DECIMAL. Exemplo: Valor de Venda: 85,63 Quantidade : 2 Sub-Total :171,26 Desconto : 1,61 ----------------------------- Total da Venda: 169,65 Rateio: Vr.Unitario 84,825 COM 3 CASA DECIMAL mas para o ecf tenho que mandar com 2 casa decimal, se nao vai dar problema no sped.
  8. alguem tem um funcao para ratear o desconto? estou fazendo assim, ItemVenda->tvendaliq := ROUND(ItemVenda->tvenda-((ItemVenda->tvenda*(Venda->perdesc)/100),2) mas as vezes da diferenca 0.01 no valor unitario do item.
  9. atualizacao na funcao do acbr/boleto. -> CriaTmpTitulo(), vai cria o arquivo temporario ATITULOS para gera os titulo. ->Gerar Remessa cArquivo := "C:\ACBrMonitorPLUS\titulos.ini" cImprime := "" cCmd := ["]+cArquivo+[","]+cImprime ACBR_BOL_Comando( "BOLETO.IncluirTitulos",cCmd+["]) cCmd := "" ACBR_BOL_Comando( "BOLETO.GerarRemessa","c:\remessa\",nIDR,STRZERO(nIDR,6)+".rem" ) ->Ler o retorno cPasta := "c:\retorno\" cArquivo := cFile cCmd := cPasta+[","]+cArquivo ACBR_BOL_Comando( "BOLETO.LerRetorno", ["]+cCmd+["] ) Ele le o retorno no banco e gera um arquivo Retorno.ini. ->E-Mail só configurar o parametro cimprime como "E", ele o ACBR, envia o email ja com confirmacao de leitura do email. cArquivo := "C:\ACBrMonitorPLUS\titulos.ini" cImprime := "I" //IMPRIMIR cImprime := "E" //EMAIL cImprime := "P" //PDF cImprime := "" //PDF cCmd := ["]+cArquivo+[","]+cImprime ACBR_BOL_Comando( "BOLETO.IncluirTitulos",cCmd+["]) //////////////////////////////////////////////////////////////////////////////// FUNCTION CriaTmpTitulo() //////////////////////////////////////////////////////////////////////////////// LOCAL xxArq1 := {} IF SELECT("aTitulos") <> 0 CloseFile("aTitulos",.T.) ENDIF aadd( xxArq1, { 'ID_CLIENTE', 'N', 5, 0 } ) aadd( xxArq1, { 'CLIENTE ', 'C', 40, 0 } ) aadd( xxArq1, { 'FANTASIA ', 'C', 20, 0 } ) aadd( xxArq1, { 'LOGRADOR ', 'C', 3, 0 } ) aadd( xxArq1, { 'ENDERECO ', 'C', 40, 0 } ) aadd( xxArq1, { 'NRO ', 'N', 5, 0 } ) aadd( xxArq1, { 'CEP ', 'C', 9, 0 } ) aadd( xxArq1, { 'BAIRRO ', 'C', 15, 0 } ) aadd( xxArq1, { 'CIDADE ', 'C', 60, 0 } ) aadd( xxArq1, { 'ESTADO ', 'C', 2, 0 } ) aadd( xxArq1, { 'CNPJCPF ', 'C', 20, 0 } ) aadd( xxArq1, { 'PESSOA ', 'C', 1, 0 } ) //0 - Pessoa Física 1 - Pessoa Juridica aadd( xxArq1, { 'EMAIL ', 'C', 80, 0 } ) aadd( xxArq1, { 'NUMERODOC' , 'C', 20, 0 } ) aadd( xxArq1, { 'NOSSONUME' , 'C', 20, 0 } ) aadd( xxArq1, { 'CARTEIRA' , 'C', 03, 0 } ) aadd( xxArq1, { 'VALORDOC' , 'N', 16, 2 } ) aadd( xxArq1, { 'VALMULTA' , 'N', 16, 2 } ) aadd( xxArq1, { 'VALJUROS' , 'N', 16, 2 } ) aadd( xxArq1, { 'VALDESCT' , 'N', 16, 2 } ) aadd( xxArq1, { 'PERMULTA' , 'N', 16, 2 } ) aadd( xxArq1, { 'DTVCTO' , 'D', 08, 0 } ) aadd( xxArq1, { 'DTEMISSAO ', 'D', 08, 0 } ) aadd( xxArq1, { 'DTPROCESSA', 'D', 08, 0 } ) aadd( xxArq1, { 'DTABATIMEN', 'D', 08, 0 } ) aadd( xxArq1, { 'DTDESCONTO', 'D', 08, 0 } ) aadd( xxArq1, { 'DTPROTESTO', 'D', 08, 0 } ) aadd( xxArq1, { 'ESPECIE' , 'C', 3, 0 } ) aadd( xxArq1, { 'ACEITE' , 'C', 1, 0 } ) aadd( xxArq1, { 'MOEDA' , 'C', 2, 0 } ) aadd( xxArq1, { 'MENSAGEM' , 'C',300, 0 } ) HB_DBCreateTemp("aTitulos",xxArq1,"DBFCDX") RETURN(.T.) ////////////////////////////////////////////////////////////////////////////////
  10. Olá, A emissão de boleto com a acbrmonitor é bem simples. No acbrmonitor basta vc selecionar TCP/IP. Ele esta liberado para os seguinte bancos. 1 - Banco do Brasil 2 - Santander 3 - Caixa Econômica Federal (Convênio SIGCB) 4 - Caixa Econômica Federal (Convênio SICOB) 5 - Bradesco 6 - Itaú 7 - Banco Mercantil 8 - Sicred 9 - Bancoob 10 - Banrisul 11- HSBC 12- Banestes 13- Banco do Nordeste 14- Banco BRB */ **->impressao do boleto ACBR_GravaCedente() ACBR_GravaTitulo()// cria um arquivo titulos.ini com todos os titulos que vai ser impresso IF !ACBR_INIT("localhost:3434") MsgStop("Erro de comunicação com o ACBR","ATENÇÃO !!!") ENDIF cCmd := "" //LIMPAR LISTA ACBR_BOL_Comando( "BOLETO.LimparLista", ["]+cCmd+["] ) //CONFIGURAR CEDENTE cCmd := "C:\ACBrMonitorPLUS\cedente.ini" ACBR_BOL_Comando( "BOLETO.ConfigurarDados", ["]+cCmd+["] ) cArquivo := "C:\ACBrMonitorPLUS\titulos.ini" cImprime := "I" cCmd := ["]+cArquivo+[","]+cImprime ACBR_BOL_Comando( "BOLETO.IncluirTitulos",cCmd+["]) cCmd := "" //ACBR_NFE_Comando( "BOLETO.GerarPDF", cCmd ) ACBR_BOL_Comando( "BOLETO.Imprimir", cCmd ) //ACBR_NFE_Comando( "BOLETO.GerarHTML", cCmd ) ACBR_END() #include "fivewin.ch" #include "fileio.ch" #define ETX chr(3) #define CR chr(13) #define LF chr(10) Static sENDER := '' ,; SEM_ERRO := .F. ,; RET_IMP := '' Static sSOCKET //////////////////////////////////////////////////////////////////////////////// #IFDEF __PLATFORM__Linux #DEFINE PATH_DEL '/' #DEFINE DIR_DEL '' #DEFINE K_GO_TOP 409 #DEFINE K_GO_BOTTOM 417 #ELSE #DEFINE PATH_DEL '\' #DEFINE DIR_DEL ':' #DEFINE K_GO_TOP chr(31) #DEFINE K_GO_BOTTOM chr(30) #ENDIF * DEFAULT -> Caso a variavel seja nula substitui pelo valor passado. #command DEFAULT <p> TO <val> [,<pn> TO <valn>] ; => ; <p> = iif(<p> = NIL,<val>,<p>) ; [;<pn> = iif(<pn> = NIL,<valn>,<pn>)] * ADEL_VET -> Apaga um elemento do vetor e reajusta o seu tamanho #DEFINE ADEL_VET(VET,NUM) adel(VET,NUM) ; asize(VET,len(VET) - 1) * AINS_VET -> Insere in elemento em um vetor #define AINS_VET(vetor,n_elem,conteudo) ; iif(n_elem > len(vetor),aadd(vetor,conteudo),vetor[n_elem] := conteudo) * COMPILE -> Transforma uma varivel em um bloco de codigo #define COMPILE(c_expr) &("{||"+c_expr+"}") //////////////////////////////////////////////////////////////////////////////// Function ACBR_INIT(ENDERECO) // Abre a comunicação com o ACBrmonitor * ENDERECO -> Diretorio ( quando usando TXT) Ex: C:\ACBR\ //////////////////////////////////////////////////////////////////////////////// Local P, RET := .T., TFIM, IP, PORTA, RESP if ! empty(sENDER) // J est aberto... return .t. endif SEM_ERRO := .F. sENDER := alltrim(ENDERECO) IP := '' PORTA := 0 P := at(':',sENDER) if P = 0 P := len(sENDER)+1 endif IP := substr(sENDER,1,P-1) if empty(IP) RET := .F. else PORTA := val(substr(sENDER,P+1)) if PORTA = 0 PORTA := 3434 endif inetinit() RET := .F. TFIM := Seconds() + 5 /// Tenta conectar durante 5 segundos /// do while Seconds() < TFIM .and. ! RET sSOCKET := inetconnect(IP,PORTA) RET := (ineterrorcode(sSOCKET) = 0) SysWait(0.2) enddo endif if RET InetSetTimeout( sSOCKET, 300 ) // Timeout de Recepção 3 seg // RESP := InetRecvEndBlock( sSOCKET, ETX ) RET := ('Conectado' $ RESP ) // Recebeu as boas vindas ? endif if ! RET sENDER := '' endif return RET //////////////////////////////////////////////////////////////////////////////// function ACBR_BOL_Comando( cIndice, cDados ) //////////////////////////////////////////////////////////////////////////////// local ret_line := "chr(13)+chr(10)" LOCAL cTcpIp := "1" // Checar se a impressora está instalada... cPath := "C:\ACBrMonitorPLUS" IF ! lIsDir(cPath) MsgInfo("O ACBrMonitor não está instalado", "Aviso") RETURN(.F.) ENDIF cTcpIp := GetPvProfString( "ACBrMonitor", "Modo_TCP", " ", "C:\ACBrMonitorPLUS\ACBrMonitor.ini") cIsTxt := GetPvProfString( "ACBrMonitor", "Modo_TXT", " ", "C:\ACBrMonitorPLUS\ACBrMonitor.ini") c_Gate := GetPvProfString( "ACBrMonitor", "TCP_Porta", "3436", "C:\ACBrMonitorPLUS\ACBrMonitor.ini") c_Ende := "" IF cTcpIp = "1" ; c_Ende := "127.0.0.1:"+c_Gate ; ENDIF IF cIsTxt = "1" ; c_Ende := "C:\ACBrMonitorPLUS" ; ENDIF IF EMPTY(c_Ende) ; MSGINFO("Detectado erro de configuração no ACBrMonitor","Aviso"); RETURN .F. ; ENDIF cDirDoMonitor := cPath errfile := "ENT.CMD" cDados := iif(ValType(cDados)#"C","",cDados) cBuffer := cIndice + iif( len( cDados )=0,"()","(" + cDados + ")") IF cIsTxt = "1" errhandle := FCREATE(errfile) FWRITE(errhandle,cBuffer+&ret_line.) FCLOSE(errhandle) FERASE( cDirDoMonitor+"\ENT.TXT" ) FERASE( cDirDoMonitor+"\SAI.TXT" ) COPY FILE &(errfile) TO &(cDirDoMonitor+"\"+errfile) FRENAME( cDirDoMonitor+"\"+errfile, cDirDoMonitor+"\ENT.TXT" ) ELSEIF cTcpIp = "1" IF ! ACBR_INIT(c_Ende) SysRefresh() ACBR_END() SysRefresh() MsgAlert("Erro ao tentar abrir a porta de comunicação!","Aviso!") RETURN .F. ENDIF SysRefresh() IF ! ACBR_ABERTA() ; RETURN .F. ; ENDIF SysRefresh() ACBR_COMANDO( cBuffer ) SysRefresh() ENDIF RETURN(.T.) //////////////////////////////////////////////////////////////////////////////// Function ACBR_ABERTA() // Retorna .t. se a COM ja est aberta //////////////////////////////////////////////////////////////////////////////// return ! empty(sENDER) //////////////////////////////////////////////////////////////////////////////// Function ACBR_END() // Fecha a porta da Impressora * Encerra a comunicacao com a impressora, nao precisa de parametros //////////////////////////////////////////////////////////////////////////////// if ! empty(sENDER) inetsendall( sSocket, 'ACBR.bye' ) endif if sSOCKET <> NIL inetclose(sSOCKET) inetdestroy(sSOCKET) inetcleanup() SysWait(0.2) sSOCKET := NIL endif sENDER := '' return(.t.) //////////////////////////////////////////////////////////////////////////////// Function ACBR_COMANDO(CMD,VET_PARAM,ESPERA,TENTA) * Funcao de uso interno para enviar os comandos e * registrar os erros retornados. Exibe os erros se existirem //////////////////////////////////////////////////////////////////////////////// Local REQ, RESP, TEMPOR, TINI, TFIM, BLOCO, BYTES, I, TIPO_PARAM if empty(sENDER) if ! SEM_ERRO MsgAlert('ACBrMonitor n†o foi inicializado.',"Aviso") endif return '' endif DEFAULT VET_PARAM to {} ,; ESPERA to 900 ,; // 5 minutos TENTA to .t. RET_IMP := '' c_Cmmd := SUBSTR(CMD,1,AT("(",CMD)-1) SysRefresh() //////// Transmitindo o comando ///////// CMD := ALLTRIM(CMD)+CRLF+"."+CRLF // Requisitos do ACBR InetSetTimeout( sSOCKET, 300 ) // Timeout de Envio 3 seg // if inetsendall( sSOCKET, CMD ) <= 0 RET_IMP := 'ERRO: Nao foi possivel transmitir dados para o ACBrMonitor|'+; '('+AllTrim(Str(InetErrorCode( sSOCKET )))+') '+; InetErrorDesc( sSOCKET ) + ETX endif TINI := Seconds() do while (right(RET_IMP,1) <> ETX) SysRefresh() BLOCO := space(64) //////// Lendo a resposta //////// InetSetTimeout( sSOCKET, 300 ) BYTES := inetrecv(sSOCKET, @BLOCO, 64) RET_IMP += left(BLOCO,BYTES) if Seconds() > (TINI + ESPERA) if ! TENTA RET_IMP := 'ERRO: Sem resposta do ACBrMonitor em '+alltrim(str(ESPERA))+; ' segundos (TimeOut)' + ETX else if ALERT('O ACBrMonitor n†o est respondendo. '+; 'Deseja tentar novamente ?',{'SIM','NAO'}) # 1 RET_IMP := 'ERRO: Sem resposta do ACBrMonitor em '+alltrim(str(ESPERA))+; ' segundos (TimeOut)' + ETX else TINI := Seconds() endif endif endif enddo do while right(RET_IMP,1) $ CR+LF+ETX // Remove sinalizadores do final RET_IMP := left(RET_IMP,len(RET_IMP)-1) enddo return RET_IMP //////////////////////////////////////////////////////////////////////////////// FUNCTION ACBR_GravaCedente() //////////////////////////////////////////////////////////////////////////////// LOCAL cLinha := "" LOCAL cArquivo := "C:\ACBrMonitorPLUS\Cedente.ini" LOCAL lCloseEmp := .F. LOCAL lCloseCon := .F. IF FILE(cArquivo) FErase(cArquivo) ENDIF IF SELECT("Empresa") = 0 IF !AbreDbfNtx({"Empresa"}) RETURN(.F.) ENDIF lCloseEmp := .T. ENDIF IF SELECT("Convenio") = 0 IF !AbreDbfNtx({"Convenio"}) RETURN(.F.) ENDIF lCloseCon := .T. ENDIF SELECT Empresa SET ORDE TO 1 ClearMyFilter() SetMyFilter(cCod_Emp,cCod_Emp) SELECT Convenio SET ORDE TO 3 SetMyFilter("1") Convenio->(DbGoTop()) cLinha := "[Cedente]"+CRLF cLinha += "Nome="+Empresa->nm_empresa+CRLF cLinha += "CNPJCPF="+TRANSF(Empresa->cnpjcpf,"@R 99.999.999/9999-99")+CRLF cLinha += "Logradouro="+Empresa->endereco+CRLF cLinha += "Numero="+TRANSF(Empresa->nro,"99999")+CRLF cLinha += "Bairro="+Empresa->bairro+CRLF cLinha += "Cidade="+Empresa->cidade+CRLF cLinha += "CEP="+TRANSF(Empresa->cep,"@R 99.999-999")+CRLF cLinha += "Complemento="+CRLF cLinha += "UF="+Empresa->uf+CRLF cLinha += "RespEmis=0"+CRLF //[0] Cliente Emite [1] Banco Emite [2] Banco Reemite [3] Banco não Reemite cLinha += "TipoPessoa=1"+CRLF //[0] Pessoa Física [1] Pessoa Juridica [2] Outros cLinha += "CodigoCedente="+LTRIM(Convenio->codcedente)+CRLF cLinha += "LayoutBol=3"+CRLF //[0] Padrão [1] Carnê [2] - Fatura (Não implementado = Padrão) [3] Padrão Entrega cLinha += "Modalidade=3"+CRLF cLinha += "CaracTitulo=0"+CRLF //[0] Cobrança Simples [1] Cobrança Vinculada [2] Cobrança Caucionada [3] Cobrança Descontada [4] Cobrança Vendor cLinha += "Convenio="+LTRIM(Convenio->nroconveni)+CRLF cLinha += ""+CRLF cLinha += "[Conta]"+CRLF cLinha += "Conta="+LTRIM(TRANS(Convenio->nroconta,"@!"))+CRLF cLinha += "DigitoConta="+LTRIM(TRANS(Convenio->digconta,"9"))+CRLF cLinha += "Agencia="+LTRIM(TRANS(Convenio->nroage,"@!"))+CRLF cLinha += "DigitoAgencia="+LTRIM(TRANS(Convenio->digage,"@!"))+CRLF cLinha += ""+CRLF cLinha += "[Banco]"+CRLF cLinha += "Numero="+LEFT(TRANS(Convenio->nrobancodv,"@!"),3)+CRLF cLinha += "CNAB=0"+CRLF cLinha += "IndiceACBr="+LTRIM(TRANS(Convenio->idbanco,"99"))+CRLF /* INDICEACBR Este campo não é obrigatório, desde que o número do banco seja informado. Caso ambos sejam informados, o Número terá prioridade. 1 - Banco do Brasil 2 - Santander 3 - Caixa Econômica Federal (Convênio SIGCB) 4 - Caixa Econômica Federal (Convênio SICOB) 5 - Bradesco 6 - Itaú 7 - Banco Mercantil 8 - Sicred 9 - Bancoob 10 - Banrisul 11- HSBC 12- Banestes 13- Banco do Nordeste 14- Banco BRB */ FWriteLine(cArquivo , cLinha ) FClose(cArquivo) IF lCloseEmp CloseFile("Empresa") ENDIF IF lCloseCon CloseFile("Convenio") ENDIF RETURN(.T.) //////////////////////////////////////////////////////////////////////////////// FUNCTION ACBR_GravaTitulo() //////////////////////////////////////////////////////////////////////////////// LOCAL cLinha := "" LOCAL cArquivo := "C:\ACBrMonitorPLUS\titulos.ini" LOCAL nNroTitulo:=0 IF FILE(cArquivo) FErase(cArquivo) ENDIF DbSelectArea("aTitulos") aTitulos->(DbGoTop()) WHILE aTitulos->(!EOF()) nNroTitulo++ cLinha += "[titulo"+LTRIM(STR(nNroTitulo,2))+"]"+CRLF cLinha += "NumeroDocumento="+LTRIM(aTitulos->NUMERODOC)+CRLF cLinha += "NossoNumero="+LTRIM(aTitulos->NOSSONUME)+CRLF cLinha += "Carteira="+LTRIM(aTitulos->carteira)+CRLF cLinha += "ValorDocumento="+STRTRAN(LTRIM(TRANSF(aTitulos->VALORDOC,"999,999,999.99")),".",",")+CRLF cLinha += "Vencimento="+LTRIM(TRANSF(aTitulos->DTVCTO,"@D"))+CRLF cLinha += "DataDocumento="+LTRIM(TRANSF(aTitulos->DTEMISSAO,"@D"))+CRLF cLinha += "DataProcessamento="+LTRIM(TRANSF(aTitulos->DTPROCESSA,"@D"))+CRLF cLinha += "DataAbatimento="+LTRIM(TRANSF(aTitulos->DTABATIMEN,"@D"))+CRLF cLinha += "DataDesconto="+LTRIM(TRANSF(aTitulos->DTDESCONTO,"@D"))+CRLF cLinha += "DataProtesto="+LTRIM(TRANSF(aTitulos->DTPROTESTO,"@D"))+CRLF cLinha += "PercentualMulta="+LTRIM(TRANSF(aTitulos->PERMULTA,"99.99"))+CRLF cLinha += "LocalPagamento=Pagavel em qualquer agência bancaria mesmo após o vencimento"+CRLF cLinha += "EspecieDoc="+LTRIM(TRANSF(aTitulos->ESPECIE,"@!"))+CRLF cLinha += "EspecieMod="+LTRIM(TRANSF(aTitulos->MOEDA,"@!"))+CRLF cLinha += "Sacado.NomeSacado="+LTRIM(aTitulos->CLIENTE)+ " / "+TRANS(aTitulos->ID_CLIENTE,"99999")+CRLF cLinha += "Sacado.CNPJCPF="+LTRIM(aTitulos->CNPJCPF)+CRLF cLinha += "Sacado.Pessoa="+aTitulos->pessoa+CRLF cLinha += "Sacado.Logradouro="+LTRIM(aTitulos->ENDERECO)+CRLF cLinha += "Sacado.Numero="+LTRIM(TRANSF(aTitulos->NRO,"99999"))+CRLF cLinha += "Sacado.Bairro="+LTRIM(aTitulos->BAIRRO)+CRLF cLinha += "Sacado.Complemento="+CRLF cLinha += "Sacado.Cidade="+LTRIM(aTitulos->CIDADE)+CRLF cLinha += "Sacado.UF="+LTRIM(aTitulos->ESTADO)+CRLF cLinha += "Sacado.CEP="+LTRIM(TRANSF(aTitulos->CEP,"@r 99.999-999"))+CRLF cLinha += "Sacado.Email="+LTRIM(aTitulos->EMAIL)+CRLF cLinha += "Mensagem="+aTitulos->MENSAGEM+CRLF cLinha += "Aceite="+LTRIM(aTitulos->ACEITE)+CRLF cLinha += "OcorrenciaOriginal=0"+CRLF cLinha += "Parcela=1"+CRLF cLinha += "TotalParcelas=1"+CRLF cLinha += "SeuNumero="+LTRIM(aTitulos->NOSSONUME)+CRLF+CRLF aTitulos->(DbSkip()) END FWriteLine(cArquivo , cLinha ) FClose(cArquivo) RETURN(.T.) ////////////////////////////////////////////////////////////////////////////////
  11. Narlem, vc esta fazendo através de arquivo .TXT ou TCP/IP?
  12. Curso de linux on line Informação: http://www.grupogoldsys.com.br/downloads/curso-linux/ skype: https://join.skype.com/vpZoSmHSfiev
  13. Para trabalhar com o POSTGRESQL, EMS SQL Manager for PostgreSQL Tem um versao free,
  14. TB estou nessa mesma situacao, saindo fora do DBF, e pelo que eu vi, o PostgreSQL é a melhor opção. Estou fazendo um curso on line, via zoom, com o Nazareno. Ele é DBA da Secretaria de Saude do Estado de Goias. Ja estamos no modulo 2 sobre programacao de banco,Triggers,Procedures,Functions vale a pena. http://www.grupogoldsys.com.br/downloads/curso-de-postgresql-nazareno-nivel-1/ skype: jorge.daniel.barros
  15. Alguem trabalha com postgresql? preciso fazer uma importacao. Att. Dorneles
  16. Segue um exemplo do que vai ser alterado, conforme o amigo Cezar. http://api.ning.com/files/GSyCvPShxksa1R83siQ4lsBoaELFlXHUSkFVMt9RkHCHQ3rIsK*stX9YNFBPHG8AUUVq0FKIQVWTBygeAP0810xX4HpyC6Hz/exemplo.png
  17. é bem fácil, da uma olhada nesse video. faz esse procedimento e testa na rede local, se funcionar ai, é so liberar a porta 3389 e direcionar para o ip do servidor. o link do path para liberar o multi usuário no wndows, esta logo abaixo do video. http://www.4shared.com/file/8wbgN1eq/multi_usuario.html​
  18. Recebi sim. Obrigado Consegui no estacionamento do hotel. vou estar la amanha (19/09) a tarde, se tiver um tempo e quiser passar por la. ​o Sergio tb vai estar por la, ele conhece bastante de Windev. Hotel Hotel São Caetano Rua General Câmara, 735
  19. E ai Alessandro blz, estou precisando de um favor, preciso de um lugar para deixar o meu carro ai em Ribeirao Preto por uma semana. Quando poder me chama no skype. Obrigado Dorneles
  20. tem algum amigo de Bauru?
  21. Em Petrópolis eu vou. Temos que algo para WEB e Mobile.
×
×
  • Create New...