dorneles
Membros-
Posts
712 -
Joined
-
Last visited
-
Days Won
7
Everything posted by dorneles
-
alguem tem uma funcao para pegar os dados desse site? https://www.receitaws.com.br/v1/cnpj/1234567890123
-
Olá, vc tem que utializar o method ConsultaNFDest() objNFeUtil:ConsultaNFDest(cEstadoEmitenteNFe,cCNPJ,"0","0",cUltNsu,,@cmsgResultado)
-
http://www.spedbrasil.net/forum/topics/nf-e-a-quarta-geracao-nt-2016-002-versao-1-0
-
o problema esta tanto com a FASTREPORT e com a TDOSPRN. e é somente com o R8, nos outros windows funcionar normal.
-
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
-
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
-
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.
-
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.
-
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.) ////////////////////////////////////////////////////////////////////////////////
-
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.) ////////////////////////////////////////////////////////////////////////////////
-
Narlem, vc esta fazendo através de arquivo .TXT ou TCP/IP?
-
http://www.hostinger.com.br/hospedagem-vps
-
FrPrn:PrintOptions:SetCopies(3)
-
Curso de linux on line Informação: http://www.grupogoldsys.com.br/downloads/curso-linux/ skype: https://join.skype.com/vpZoSmHSfiev
-
Para trabalhar com o POSTGRESQL, EMS SQL Manager for PostgreSQL Tem um versao free,
-
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
-
Alguem trabalha com postgresql? preciso fazer uma importacao. Att. Dorneles
-
Segue um exemplo do que vai ser alterado, conforme o amigo Cezar. http://api.ning.com/files/GSyCvPShxksa1R83siQ4lsBoaELFlXHUSkFVMt9RkHCHQ3rIsK*stX9YNFBPHG8AUUVq0FKIQVWTBygeAP0810xX4HpyC6Hz/exemplo.png
-
é 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
-
Qual windows é o servidor?
-
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
-
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
-
tem alquem que mora em Ribeirão Preto?
-
Em Petrópolis eu vou. Temos que algo para WEB e Mobile.