Jump to content
Fivewin Brasil

CIACPD

Membros
  • Posts

    377
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by CIACPD

  1. O servidor fica no local ou na web Qual SO Linux ou Windows Quando trava, o serviço MySQL continua ativo ou para Voce ja reinstalou o mysql neste servidor Daniel Segura
  2. Geraldo Voce trocou as DLLs do mysql recentemente ? Pergunto porque tive este problema com a atualização das dlls, eu usava as da versão 5.0.24a e quando passei para 5.1 começou este problema, e a solução foi trocar os inserts com select para o velho while !eof. Daniel Segura
  3. Olá Amigo, A tributação deve ser NORMAL sim, quando a contadora no seu caso for apurar os impostos ele só irá usar o total das vendas tributadas e não os percentuais em separado. ex: R$ 10,00 a 18% + R$ 20,00 a 12% = R$ 30,00 que é o total das vendas tributadas podendo ainda ter os totais de vendas ISENTO (I1) , Vendas com Substituição (F1) e Não incidencia (N1) que serão calculados a parte. No simples apenas uma partinha do imposto corresponde ao ICMS, sendo assim esta parte que será descontada quando for calcular as vendas de produtos não tributados. Daniel Segura
  4. CIACPD

    FiveWeb

    Evaldo Eu comprei em dezembro a ferramenta e já era bem funcional. A dificuldade que encontrei foi em localizar algum servidor para deixar online. A saída foi deixa num servidor na própria empresa e dar acesso apenas a funcionários. Usei como base para iniciar uma cópia do trabalho que o José Carlos apresentou no encontro de FiveWin e ele gentilmente me enviou. Na compilação em linux deu muito trabalho mas o Lailton passou via email o que tinha que ser feito e rodou de boa. Daniel Segura
  5. Seria isto? http://bielsys.blogspot.com.br/search?updated-max=2008-02-18T16:52:00%2B01:00&max-results=7 Daniel Segura
  6. MarcioE, É fácil, nas funções que voce grava dados nas tres tabelas voce cria um log e a cada X tempo voce dispara uma rotina que atualiza suas bases. Replicação automatica em mysql é muito sofrivel, e com trigger não da muito certo, pois qualquer alteração nos registros antes de efetivar a replicação ocorrem falhas. Eu replico a base de varias lojas usando o log de comandos enviados para o servidor. veja abaixo a tabela onde eu salvo o log de comandos. Function var_string_replica() return "(`CODEMP` char(3) default '000', "+; "`DATAHORA` char(16) default NULL, "+; "`DTMOV` date default NULL, "+; "`LOCALREAL` char(3) default NULL, "+; "`ATUALIZADO` char(1) default NULL, "+; "`COMANDO` blob, "+; "`DIAHORALOCAL` char(20) default NULL, "+; "`sql_rowid` bigint(10) NOT NULL auto_increment, "+; "`sql_deleted` enum('F','T') NOT NULL, "+; "PRIMARY KEY (`sql_rowid`), "+; "KEY `ATUALIZADO` (`ATUALIZADO`), "+; "KEY `DTMOV` (`DTMOV`), "+; "KEY `LOCALREAL` (`LOCALREAL`) "+; ") ENGINE=InnoDB DEFAULT CHARSET=latin1;" id=code>id=code>Daniel Segura daniel_segura@ig.com.br
  7. Olá sdinfo, eu uso somente os comandos da SQLLIB abaixo alguns exemplos: No inicio do programa main() RDDSETDEFAULT('MySQL') SQL EXECUTE "SET SESSION AUTOCOMMIT=1" uso uma funcao genérica para gravar pré-venda / orçamento / Venda Function f_inc_lanven(ntipo) TRY SqlExec("Start Transaction") INCLUI_SIMPLES( nome_file, nome_file, {; { "CODPVEN" , nCODPVEN } ,; { "NRCOMANDO" , nNRCOMANDO } ,; { "CODCLI" , if(nCODCLI=space(6),'000000',nCODCLI) } ,; { "RUAENT" , cRUAENT } , { "NUMENT" , cNUMENT } ,; { "BAIENT" , cBAIENT } , { "CIDENT" , cCIDENT } , ; { "CEPENT" , cCEPENT } , { "ESTENT" , cESTENT } ,; { "RUACLI" , cRUACLI } , { "NUMCLI" , cNUMCLI } ,; { "BAICLI" , cBAICLI } , { "CIDCLI" , cCIDCLI } ,; { "CEPCLI" , cCEPCLI } , { "ESTCLI" , cESTCLI } ,; { "VLTOVE" , nVLTOVE } , { "VLICMS" , nVLICMS } ,; { "CODOPE" , if(nCODOPE=space(3),'000',nCODOPE) } , { "PORDES" , nPORDES } ,; { "DTMOV" , dDTMOV } , { "CODFUN" , if(nCODFUN=space(6),'000000',nCODFUN) } ,; { "CONT" , nCONT } , { "PLACA" , cPLACA } ,; { "MAMO" , cMAMO } , { "OBS1" , cOBS1 } ,; { "OBS2" , cOBS2 } , { "PONTREF1" , cPONTREF1 } ,; { "PONTREF2" , cPONTREF2 } , { "NUMLOSANG" , cNUMLOSANG } ,; { "NOMCLI" , cNOMCLI } , { "ENT" , cENT } ,; { "NOTA" , nNOTA } , { "NFE" , nNFE } , { "TPNOTA" , cTPNOTA } ,; { "SERIENOTA" , cSERIENOTA } , { "TIPPAG" , nTIPPAG } , { "IMPRESSO" , cIMPRESSO } ,; { "VLSUBTOT" , nVLSUBTOT } , { "VLFRETE" , nVLFRETE } ,; { "VLDESFIN" , nVLDESFIN } , { "VLPERDES" , nVLPERDES } ,; { "VLREADES" , nVLREADES } , { "VLENT" , nVLENT } ,; { "VLAVISTA" , cVLAVISTA } , { "VLBOL" , cVLBOL } ,; { "VLCOMPRA" , nVLCOMPRA } , { "NUMPAR" , nNUMPAR } ,; { "VLPAR" , nVLPAR } , { "CTUS" , cCTUS } ,; { "VL_AVISTA" , cVL_AVISTA } , { "CHEQUE" , cCHEQUE } ,; { "NUMPEC" , nNUMPEC } , { "ENTREGA" , cENTREGA } ,; { "STATUS" , if( nSTATUS > 5 , 1 , nSTATUS ) } , { "DTENT" , dDTENT } ,{ "DTENTREGA" , dDTENTREGA } ,; { "INF1" , cINF1 } , { "INF2" , cINF2 } ,{ "CAIXA" , xcaixa } ,; { "BX_STOQ" , if(lBX_STOQ,1,0) } , { "NUMFORM" , nNUMFORM } ,; { "NUMFORM2" , nNUMFORM2 } , { "CCONSTRU" , cCCONSTRU } ,; { "NCONSTRU" , cNCONSTRU } , { "FONCLI" , cFONCLI } ,; { "OBRA" , cOBRA } , { "FONCLIEX" , cFONCLIEX } ,; { "HORA" , cHORA } , { "EMPLOJ" , cEMPLOJ } ,; { "PERPRE" , nPERPRE } , { "PARCELADO" , if(lPARCELADO,1,0) } ,; { "NUMTABELA" , NTABELA } , { "DTPRIVEN" , DDATA1 } , { "NUMDIA" , NNUMDIA }, { "DATAHORA" , dataehora() } ,; { "PLACAAST" , CPLACAAST } , { "MARCAAST" , CMARCAAST } ,; { "MODELAST" , CMODELAST } , { "ANOAST" , CANOAST } ,; { "KILOMAST" , NKILOMAST } , { "CORAST" , CCORAST } ,; { "POLENT" , cPOLENT } , { "LARRUA" , cLARRUA } ,; { "POSESC" , cPOSESC } , { "QUEAUT" , cQUEAUT } ,; { "DATATU" , data_trabalho } , { "CODEMP" , if(ncodemp=space(3),'000',ncodemp) } ; } ) SqlExec("Commit") CATCH msginfo("Erro ao incluir "+if( ntipo=1 , 'pré-vendas' , if( ntipo=2 , 'orçamento' , 'venda' )) ,"Atenção.") SqlExec("RollBack") END ocodpven:refresh() Return .T. //-------------------------------------------------------------------------// PROCEDURE INCLUI_SIMPLES ( TABELA, ALIAS, PARES ) LOCAL cmdSQL, I1, FIELDS, VALUES cmdSQL := "insert into " cmdSQL += TABELA FIELDS := "(" VALUES := "(" cmdSQL2 := "insert into " cmdSQL2 += TABELA FIELDS2 := "(" VALUES2 := "(" FOR I1 := 1 TO LEN(PARES) If I1 > 1 FIELDS += ", " VALUES += ", " FIELDS2 += ", " VALUES2 += ", " EndIf FIELDS += PARES[i1][1] VALUES += STR_SQL (PARES[i1][2]) if PARES[i1][1]#"ORIGEM" FIELDS2 += PARES[i1][1] VALUES2 += STR_SQL (PARES[i1][2]) else FIELDS2 += PARES[i1][1] VALUES2 += STR_SQL ("X") endif NEXT pcDIAHORALOCAL:= dtos(date())+time() pcDIAHORALOCAL:= STRTRAN( pcDIAHORALOCAL , "/","") pcDIAHORALOCAL:= STRTRAN( pcDIAHORALOCAL , ":","") if At( "DIAHORALOCAL" , FIELDS ) = 0 FIELDS += ", " + "DIAHORALOCAL" VALUES += ", " + STR_SQL ( dtos(date())+time() ) endif FIELDS += ")" VALUES += ")" cmdSQL += " " + FIELDS + " VALUES " + VALUES sysrefresh() SqlExec(cmdSQL) If lower(TABELA)="preven" .or. lower(TABELA)="orcamento" .or. lower(TABELA)="venda" .or. lower(TABELA)="nfeven" .or. lower(TABELA)="cupom" cmdSQL_x := "SELECT "+TABELA+".sql_rowid as regfile, "+TABELA+".CODPVEN " + " FROM "+ TABELA +" where "+TABELA+".sql_rowid = LAST_INSERT_ID() " use SQL cmdSQL_x alias TMPSQL via [mysql] NEW ncodpven:=TMPSQL->CODPVEN // ATUALIZA O NUMERO DA VENDA SELECT tmpsql use else cmdSQL_x := "SELECT "+TABELA+".sql_rowid as regfile, "+TABELA+".CODPCOM " + " FROM "+ TABELA +" where "+TABELA+".sql_rowid = LAST_INSERT_ID() " use SQL cmdSQL_x alias TMPSQL via [mysql] NEW ncodpcom:=TMPSQL->CODPCOM // ATUALIZA O NUMERO DA COMPRA SELECT tmpsql use endif FOR I1 := 1 TO LEN(PARES) If I1 > 1 FIELDS2 += ", " VALUES2 += ", " EndIf if PARES[i1][1]="ORIGEM" FIELDS2 += PARES[i1][1] VALUES2 += STR_SQL ("X") elseif PARES[i1][1]="CODPVEN" FIELDS2 += PARES[i1][1] VALUES2 += STR_SQL (ncodpven) elseif PARES[i1][1]="CODPCOM" FIELDS2 += PARES[i1][1] VALUES2 += STR_SQL (ncodpcom) else FIELDS2 += PARES[i1][1] VALUES2 += STR_SQL (PARES[i1][2]) endif NEXT FIELDS2 += ")" VALUES2 += ")" cmdSQL2 += " " + FIELDS2 + " VALUES " + VALUES2 f_sql_replica( cmdSQL2 ) sysrefresh() SELECT (ALIAS) Return //----------------------------------------------------------------------------// id=code>id=code>Boa sorte, qualquer coisa manda e-mail. Daniel Segura daniel_segura@ig.com.br ciacpd@hotmail.com
  8. Olá sdinfo, abaixo está como eu uso, além de buscar o numero da venda ele pega a data de servidor, para que não ocorra problema com usuário que altera a data e esquece de voltar. Na precedure spnovavenda voce poderá ver que ele localiza o ultimo numero de venda que está na tabela paramet e também "filtra" o código da empresa, caso sua base fique num servidor web e seja uma rede de lojas cada filial tem sua sequencia de pedido. Hoje com internet a 4mega, otimizando os selects fica igual rede local. TRY SQLLIB_ExecSql(nil,"Start Transaction") SQLLIB_ExecSql(nil,"CREATE TRIGGER `venda_before_ins_tr` BEFORE INSERT ON `venda` "+; " FOR EACH ROW "+; "BEGIN "+; " If new.ORIGEM = 'V' then "+; " BEGIN "+; " CALL spnovavenda(@novavenda,new.CODEMP); "+; " set new.CODPVEN = @novavenda+1; "+; " set new.DTMOV = curdate(); "+; " UPDATE paramet SET paramet.NUMEROVENDA = new.CODPVEN where paramet.CODEMP = new.CODEMP; "+; " END; "+; " end IF; "+; "END;") SQLLIB_ExecSql(nil,"Commit") CATCH SQLLIB_ExecSql(nil,"RollBack") END // abaixo a procedure que localiza a ultima venda TRY SqlExecute("Start Transaction") SqlExecute("CREATE PROCEDURE `spnovavenda`(OUT novavenda DECIMAL(8,0), IN XCODEMP CHAR(3)) "+; " NOT DETERMINISTIC "+; " SQL SECURITY DEFINER "+; " COMMENT '' "+; "BEGIN "+; " SELECT paramet.NUMEROVENDA INTO novavenda FROM paramet where paramet.CODEMP=XCODEMP; "+; "END;") SqlExecute("Commit") CATCH SqlExecute("RollBack") END id=code>id=code>Daniel Segura
  9. Olá, Para isto não acontecer, voce deve criar trigger e trabalhar com uma tabela de parâmetros, assim a cada inclusão de pedido o trigger adiciona +1 no campo da tabela automaticamente e voce fica tranquilo pois não duplica nunca. Ja coloquei uma vez aqui no forum o trigger que uso. Daniel Segura
  10. Olá Cristiano, Ja tentou abrir a mesma tabela com Alias diferente? Daniel Segura
  11. Olá Cleiton Caso nao resolveu ainda o problema da etiqueta segue o conteudo do arquivo. D0 R0,0 R10,0 Q400,320 X020,000,4,395,050 X420,000,4,795,050 X020,050,4,395,160 X420,050,4,795,160 X020,160,4,395,320 X420,160,4,795,320 N A460,20,1,2,2,1,N,"Preco" A460,190,1,2,2,1,N," R$ 14,11" A790,20,1,2,2,1,N,"Preco" A790,190,1,2,2,1,N," R$ 24,15" A410,60,1,2,2,1,N,"ACAB.REGISTRO " A730,60,1,2,2,1,N,"ACAB.REGISTRO " A380,60,1,2,2,1,N,"C50 CR ABS " A700,60,1,2,2,1,N,"C52 3/4 " A350,60,1,2,2,1,N,"09020121 BLUKI" A670,60,1,2,2,1,N,"C/CANOPLA PIM " B310,80,1,1,2,2,90,B,"7897210401177" B630,80,1,1,2,2,90,B,"7898023243428" P FE ---- abaixo um HardCod ou POG para resolver quando as impressoras ZEBRA vira literalmente uma... If file("c:\cialoja\copyetiq.txt") SysRefresh() SysWait( .4 ) cArqBkp = FCreate( ('Etiqueta.bat' ), 0 ) cComando:='copy PPLB.txt ' + ximp_etiqueta + CRLF Fwrite( cArqBkp, cComando ) Fclose( cArqBkp ) SysRefresh() WaitRun( 'Etiqueta.bat',.F. ) // winexec( 'Etiqueta.bat',.F. ) else SysRefresh() SysWait( .4 ) PrintFileRaw( ximp_etiqueta , "PPLB.txt" , "Impressao de Etiqueta" ) SysRefresh() SysWait( .5 ) endif //ximp_etiqueta = nome da impressora ex: \\micro\impressora id=code>id=code>Daniel Segura
  12. Olá Cleiton Abaixo um exemplo funcional onde voce usa a funcao PrintFileRaw() para imprimir. Voce deve passar como parametro o nome da impressora, o arquivo a ser impresso e o nome do relatório. Antes de usar esta impressora ela deve ser compartilhada. FErase("PPLB.txt") SysRefresh() etiq_txt := "" etiq_txt := etiq_txt + [D]+alltrim(str(argox->comand_d,2)) + enter etiq_txt := etiq_txt + [R]+alltrim(str(argox->comand_rx,2))+[,]+alltrim(str(argox->comand_ry,2)) + enter etiq_txt := etiq_txt + [R10,0] + enter etiq_txt := etiq_txt + [Q400,320] + enter etiq_txt := etiq_txt + [X020,000,4,395,050] + enter etiq_txt := etiq_txt + [X420,000,4,795,050] + enter etiq_txt := etiq_txt + [X020,050,4,395,160] + enter etiq_txt := etiq_txt + [X420,050,4,795,160] + enter etiq_txt := etiq_txt + [X020,160,4,395,320] + enter etiq_txt := etiq_txt + [X420,160,4,795,320] + enter etiq_txt := etiq_txt + [N] + enter etiq_txt := etiq_txt + [A35,20,0,2,1,1,N,"Preço"] + enter etiq_txt := etiq_txt + [A210,20,0,2,1,1,N,"]+c_et1_l1c2+["] + enter If c_et2_l1c2 # [X] etiq_txt := etiq_txt + [A435,20,0,2,1,1,N,"Preço"] + enter EndIf If c_et2_l1c2 # [X] etiq_txt := etiq_txt + [A610,30,0,2,1,1,N,"]+c_et2_l1c2+["] + enter EndIf etiq_txt := etiq_txt + [A30,80,0,2,2,1,N,"]+c_et1_l3c1+["] + enter If c_et2_l3c1 # [X] etiq_txt := etiq_txt + [A430,80,0,2,2,1,N,"]+c_et2_l3c1+["] + enter EndIf etiq_txt := etiq_txt + [A30,100,0,2,2,1,N,"]+c_et1_l4c1+["] + enter If c_et2_l4c1 # [X] etiq_txt := etiq_txt + [A430,100,0,2,2,1,N,"]+c_et2_l4c1+["] + enter EndIf etiq_txt := etiq_txt + [A30,120,0,2,2,1,N,"]+c_et1_l5c1+["] + enter If c_et2_l5c1 # [X] etiq_txt := etiq_txt + [A430,120,0,2,2,1,N,"]+c_et2_l5c1+["] + enter EndIf etiq_txt := etiq_txt + [A35,170,0,2,1,1,N, xNome_Empre ] + enter If c_et2_l1c2 # [X] etiq_txt := etiq_txt + [A435,170,0,2,1,1,N, xNome_Empre ] + enter EndIf etiq_txt := etiq_txt + [b35,195,0,1,2,2,90,B,"]+c_et1_l6c1+["] + enter If c_et2_l6c1 # [X] etiq_txt := etiq_txt + [b435,195,0,1,2,2,90,B,"]+c_et2_l6c1+["] + enter EndIf etiq_txt := etiq_txt + [P] + enter etiq_txt := etiq_txt + [FE] + enter SysRefresh() SysWait( .3 ) memowrit("PPLB.txt", etiq_txt ) SysWait( .4 ) SysRefresh() SysWait( .4 ) PrintFileRaw( \\meumicro\minhaimpressora , "PPLB.txt" , "Impressao de Etiqueta" ) SysRefresh() SysWait( .5 ) id=code>id=code>Daniel Segura
  13. Olá Nelson, Baixe este arquivo de exemplo do Leonardo da sygecom e descompacta ele http://www.pctoledo.com.br/forum/filebase.php?d=1&id=156&c_old=0&what=c&page=1 depois compile todos os exemplos procure por WVT com HWGUI, no forum internacional tem um exemplo do FiveWin com WVT. Daniel Segura
  14. Olá Pessoal, Para resolver a atualização de sistemas via web é só usar o exemplo do blog bielsys.blogspot.com, eu uso desde o inicio de 2010 e funciona muito bem. Daniel Segura
  15. Vamos lá, Tenho na aplicação uma tabela de parametros que possui todos os últimos códigos de cadastros, ultimo numero do lote contabil, e assim por diante. no trigger e procedure que enviei ele trata isto, quando um usuario inserir uma compra no banco, ele, o próprio banco antes de gravar o registro dispara o trigger que executa a procedure (@novacompra,new.CODEMP) para verificar a ultima compra e assim somar +1 (set new.CODPCOM = @novacompra+1) desta forma também faço com os ítens dos produtos para controle de estoque. Inclui um ítem baixa estoque exclui um ítem devolve para o estoque tudo no banco a aplicação só faz a inclusão do registro. abaixo um trigger que é executado quando inclui um registro de item de compra, ele atualiza o estoque geral do produto e a grade do mesmo conforme o codigo de barras. TRY SQLLIB_ExecSql(nil,"Start Transaction") SQLLIB_ExecSql(nil,"CREATE TRIGGER `comit_after_ins_tr` AFTER INSERT ON `comit`"+; " FOR EACH ROW "+; "BEGIN "+; " update cadpro set QTDATU = cadpro.QTDATU + new.QTDCOM WHERE cadpro.codpro = new.CODPRO;"+; " update cadpro set CONMEN = cadpro.CONMEN - new.QTDCOM WHERE cadpro.codpro = new.CODPRO;"+; " update cadpro set ULTENT = new.DTMOV WHERE cadpro.codpro = new.CODPRO;"+; " update gradepro set QTDATU = gradepro.QTDATU + new.QTDCOM WHERE gradepro.codbar = new.GRAPRO; END; ") SQLLIB_ExecSql(nil,"Commit") CATCH SQLLIB_ExecSql(nil,"RollBack") END id=code>id=code>Mesmo que voce use outras aplicações com o mesmo banco tudo funciona da mesma forma. Daniel Segura Editado por - ciacpd on 23/11/2011 18:56:38
  16. Luiz Fernando, Quando vc tiver tempo pesquise sobre trigger e procedure deixe o banco trabalhar para voce criando codigos e outras funções. TRY SQLLIB_ExecSql(nil,"Start Transaction") SQLLIB_ExecSql(nil,"CREATE TRIGGER `compra_before_ins_tr` BEFORE INSERT ON `compra`"+; " FOR EACH ROW "+; "BEGIN"+; " If new.ORIGEM = 'C' then"+; " BEGIN"+; " CALL spnovacompra(@novacompra,new.CODEMP);"+; " set new.CODPCOM = @novacompra+1;"+; " set new.DTMOV = curdate();"+; " UPDATE paramet SET paramet.NUMEROCOMPRA = new.CODPCOM where codemp = new.CODEMP;"+; " END;"+; " end IF; END;") SQLLIB_ExecSql(nil,"Commit") CATCH SQLLIB_ExecSql(nil,"RollBack") END TRY SqlExecute("Start Transaction") SqlExecute("CREATE PROCEDURE `spnovacompra`(OUT novacompra DECIMAL(8,0), IN XCODEMP CHAR(3)) "+; " NOT DETERMINISTIC "+; " SQL SECURITY DEFINER "+; " COMMENT '' "+; "BEGIN "+; " SELECT paramet.NUMEROCOMPRA INTO novacompra FROM paramet where paramet.`CODEMP`=XCODEMP; "+; "END;") SqlExecute("Commit") CATCH SqlExecute("RollBack") END id=code>id=code>Daniel Segura
  17. http://www.otc.pl/index.asp?s=84&l=2 Daniel Segura ciacpd
  18. Olá JMSilva, Tu poderia mostrar para nós como fazer para trabalhar com telas texto junto com FW, pois a empresa que trabalho atualmente não compra o FW por este motivo. Aqui o sistema de contabilidade é enorme e para fazer um paralelo da muito trabalho. Daniel Segura
  19. CIACPD

    Dll ecfs

    Olá Pessoal, Estou tendando declarar a funcao BEMATECH_FI_GERAREGISTROSSPEDMFD da bemafi32.dll e não estou conseguindo, por acaso alguem teria ela para disponibilizar? Outra coisa existe algum programa melhor que o Dependency Walker para visualizar funções das DLLs e mostrar seus parametros. Daniel
  20. CIACPD

    Dll ecfs

    Olá Pessoal, Estou tendando declarar a funcao BEMATECH_FI_GERAREGISTROSSPEDMFD da bemafi32.dll e não estou conseguindo, por acaso alguem teria ela para disponibilizar? Outra coisa existe algum programa melhor que o Dependency Walker para visualizar funções das DLLs e mostrar seus parametros. Daniel
  21. 39 anos, 1989 a 1991 -> Cobol e Dialog 1992 a 1999 -> Clipper Summer a 5.2 2000 a inicio de 2011 -> FiveWin Atualmente estudando .Net Daniel Segura
  22. Ola Amigo, Visite http://angeiras.blogspot.com/ deve ser util para voce. Daniel
  23. Olá, visitem o link para ver como é feito por uma grande empresa http://www.youtube.com/watch?v=eggumOexTQc&feature=related Daniel
  24. Marcelo, No meu Explorer também dava este problema, reinstalei agora o windows e agora aparece os campos, com o navegador chrome aparecia normal. a reinstalação do internet explorer apenas, não resolveu o problema. Daniel
  25. Olá Ricardo, Parabéns pelo seu trabalho esta muito bom Só um detalhe, se os além de trabalhar com dbf vc permitir inserir um select com sqllib no twbrowse. Daniel
×
×
  • Create New...