dbf muito grande
Moderador: Moderadores
Se vc só usa esse DBF em um sistema, verifique se vc sempre abre todos os NTX´s quando abre o DBF.
Se vc abre em outros sistemas, verifique se esta abrindo todos os NTX´s nos outros sistemas.
O básico é que se vc altera os dados dentro do DBF (incluir/alterar/excluir), todos os NTX desse DBF devem estar abertos.
Se vc só consulta, não é necessário abrir todos os NTX. Alias, dependendo do caso, nenhum NTX.
Vc já verificou se existem muitos registro marcados como apagados no inicio do DBF?
Seu sistema tem muita inclusão/exclusão?
Boa sorte. Espero ter ajudado.
Se vc abre em outros sistemas, verifique se esta abrindo todos os NTX´s nos outros sistemas.
O básico é que se vc altera os dados dentro do DBF (incluir/alterar/excluir), todos os NTX desse DBF devem estar abertos.
Se vc só consulta, não é necessário abrir todos os NTX. Alias, dependendo do caso, nenhum NTX.
Vc já verificou se existem muitos registro marcados como apagados no inicio do DBF?
Seu sistema tem muita inclusão/exclusão?
Boa sorte. Espero ter ajudado.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Pergunto eu: para versão 5.3 o SIX há alguma õbservação a respeito ? Funciona bem ? E em xHarbour o SIX, funciona bem ?TerraSoftware escreveu:clipper 5.2e, sixnsx ...//... Na minha opnião não existe combinação melhor
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Há quem utilize a SIX no Clipper 5.3. É uma biblioteca como outra qualquer. Vai funcionar como funciona na versão 5.2x. Agora, quanto ao XHarbour, não sei ao certo, mas me parece que já existe uma série de recursos da SIX implementados para XHarbour.Pablo César escreveu:para versão 5.3 o SIX há alguma õbservação a respeito ? Funciona bem ? E em xHarbour o SIX, funciona bem ?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Obrigado pela sua opinião Maligno. Vou baixar do seu site e começar a fazer alguns testes. Tks.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Rode o demo dela. Acho que você vai gostar. 
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Note que estes comandos tem usos distintos.Caros colegas, alterei os "index on ..." por "set index ..." Resolvido o problema.
Index on ... serve para construir os índices
Set Index ... serve para abrí-los
Moral da história: Se vc já tem uma outra rotina de indexação, tudo ok.
Se não tem, precisaria implementar, pois um hora vai precisar, e se vc emitir um Set Index ..... e o índice não existir ou estiver desatualizado, vai dar problema.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Acho que o ideal seria construir uma função específica para abertura de índice, que tenha a capacidade de "sentir" a falta do arquivo e, assim, criar. Não é uma tarefa trivial, já que cada arquivo tem suas próprias chaves. Especificidades desse tipo têm de ser consideradas por uma função que será de uso global. Mas solução tem.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Luciano Bonfim
- Usuário Nível 3

- Mensagens: 414
- Registrado em: 23 Ago 2007 09:34
- Localização: Rio de Janeiro / São Paulo
- Contato:
Vou dar uma pequena contribuiçäo:
1) cria uma funçäo que retorne todos os DBFs que vc usa, assim:
2) depois cria outra que retorne seus índices, assim:
3) depois cria outra que diga pro seu sistema quais arquivos abrir qando vc entrar em deerminada rotina ou módulo de seu sistema, assim:
4) no incio do seu sistema e na entrada de cada módulo ou rotina vc faz assim:
assim sempre que vc mexer em algum índice ou arquivo basta mexer nas funçöes que os definam
1) cria uma funçäo que retorne todos os DBFs que vc usa, assim:
Código: Selecionar todos
vdbf:={}
dbfs()
Procedure dbfs
AAdd(vdbf,{'ABREVIA.DBF'})
AAdd(vdbf,{'ADITIVO.DBF'})
AAdd(vdbf,{'AF.DBF'})
AAdd(vdbf,{'AP.DBF'})
AAdd(vdbf,{'AUTSER.DBF'})
AAdd(vdbf,{'CDM.DBF'})
AAdd(vdbf,{'CLIENTES.DBF'})
AAdd(vdbf,{'COPIAD.DBF'})
AAdd(vdbf,{'CPU.DBF'})
AAdd(vdbf,{'CPUINS.DBF'})
AAdd(vdbf,{'CQP.DBF'})
AAdd(vdbf,{'CQPCPU.DBF'})
AAdd(vdbf,{'DESC_EPG.DBF'})
AAdd(vdbf,{'DESC_PER.DBF'})
AAdd(vdbf,{'DESEMB.DBF'})
AAdd(vdbf,{'DEST_LD.DBF'})
AAdd(vdbf,{'DET_IAP.DBF'})
AAdd(vdbf,{'DET_INS.DBF'})
AAdd(vdbf,{'DETMAP.DBF'})
AAdd(vdbf,{'DEVOLVE.DBF'})
AAdd(vdbf,{'DF.DBF'})
AAdd(vdbf,{'DF_AP.DBF'})
AAdd(vdbf,{'DIARIAS.DBF'})
AAdd(vdbf,{'DIGITADA.DBF'})
AAdd(vdbf,{'DOCEMP.DBF'})
AAdd(vdbf,{'DOCSOL.DBF'})
AAdd(vdbf,{'DOCUMENT.DBF'})
AAdd(vdbf,{'EMPRESA.DBF'})
AAdd(vdbf,{'EMPREST.DBF'})
AAdd(vdbf,{'ENTIDADE.DBF'})
AAdd(vdbf,{'EPG_AF.DBF'})
AAdd(vdbf,{'ETA_DOC.DBF'})
AAdd(vdbf,{'ETAPAS.DBF'})
AAdd(vdbf,{'EVENTOAF.DBF'})
AAdd(vdbf,{'EVENTOAP.DBF'})
AAdd(vdbf,{'FAM_CPU.DBF'})
AAdd(vdbf,{'FAMILIAS.DBF'})
AAdd(vdbf,{'FATORK.DBF'})
AAdd(vdbf,{'FON_CPU.DBF'})
AAdd(vdbf,{'FON_INS.DBF'})
AAdd(vdbf,{'FON_PRE.DBF'})
AAdd(vdbf,{'FORMAP.DBF'})
AAdd(vdbf,{'FORNECED.DBF'})
AAdd(vdbf,{'GER_OBR.DBF'})
AAdd(vdbf,{'IMP_AF.DBF'})
AAdd(vdbf,{'IMP_AP.DBF'})
AAdd(vdbf,{'IMP_DF.DBF'})
AAdd(vdbf,{'IMPI_AF.DBF'})
AAdd(vdbf,{'IMPI_AP.DBF'})
AAdd(vdbf,{'IMPOSTOS.DBF'})
AAdd(vdbf,{'INDICES.DBF'})
AAdd(vdbf,{'INS_AF.DBF'})
AAdd(vdbf,{'INS_AP.DBF'})
AAdd(vdbf,{'INS_PER.DBF'})
AAdd(vdbf,{'INSFOR.DBF'})
AAdd(vdbf,{'INSUMOS.DBF'})
AAdd(vdbf,{'ITE_CONT.DBF'})
AAdd(vdbf,{'ITE_ENDE.DBF'})
AAdd(vdbf,{'ITE_PRJ.DBF'})
AAdd(vdbf,{'ITEM_AF.DBF'})
AAdd(vdbf,{'ITEM_EPG.DBF'})
AAdd(vdbf,{'LD.DBF'})
AAdd(vdbf,{'MAPA.DBF'})
AAdd(vdbf,{'MED_EPG.DBF'})
AAdd(vdbf,{'MENSAIS.DBF'})
AAdd(vdbf,{'MUD_ORC.DBF'})
AAdd(vdbf,{'NFSR.DBF'})
AAdd(vdbf,{'OBRAS.DBF'})
AAdd(vdbf,{'OBSERV.DBF'})
AAdd(vdbf,{'OBSPLA.DBF'})
AAdd(vdbf,{'ORCAMENT.DBF'})
AAdd(vdbf,{'PASSWORD.DBF'})
AAdd(vdbf,{'PERMIS.DBF'})
AAdd(vdbf,{'PLADOC.DBF'})
AAdd(vdbf,{'PLANEJA.DBF'})
AAdd(vdbf,{'PREC_CPU.DBF'})
AAdd(vdbf,{'PREC_INS.DBF'})
AAdd(vdbf,{'PRECED.DBF'})
AAdd(vdbf,{'PROJETOS.DBF'})
AAdd(vdbf,{'REA_AF.DBF'})
AAdd(vdbf,{'RESPONSA.DBF'})
AAdd(vdbf,{'SOLICIT.DBF'})
AAdd(vdbf,{'TAREFAS.DBF'})
AAdd(vdbf,{'TEMA_DOC.DBF'})
AAdd(vdbf,{'TIPO_DOC.DBF'})
AAdd(vdbf,{'TIPOSDOC.DBF'})
AAdd(vdbf,{'UNIDADE.DBF'})
AAdd(vdbf,{'VAL_AF.DBF'})
Return
Código: Selecionar todos
Function cdxs
Parameters marq
Do Case
Case marq=='ABREVIA'
aadd(v_cdx,{"cod_abr"})
aadd(v_cdx,{"desc"})
Case marq=='ADITIVO'
aadd(v_cdx,{"cod_obra+num_adt"})
Case marq=='AF'
aadd(v_cdx,{"cod_obra+cod_af"})
aadd(v_cdx,{"cod_obra+dtos(data)"}) // customizado
aadd(v_cdx,{"cod_obra+item+dtos(data)"}) // customizado
aadd(v_cdx,{"cod_obra+cod_for+dtos(data)"}) // customizado
aadd(v_cdx,{"cod_obra+num_ped"})
aadd(v_cdx,{"num_ped"})
Case marq=='AP'
aadd(v_cdx,{"cod_obra+cod_af+cod_ap"})
aadd(v_cdx,{"cod_obra+dtos(data)"}) // customizado
aadd(v_cdx,{"grap"})
Case marq=='AUTSER'
aadd(v_cdx,{"cod_obra+item"})
aadd(v_cdx,{"cod_obra+cod_as+item"})
Case marq=='CDM'
aadd(v_cdx,{"cdm"})
aadd(v_cdx,{"desc1"})
Case marq=='CLIENTES'
aadd(v_cdx,{"cod_cli"})
aadd(v_cdx,{"nome"})
Case marq=='COPIAD'
aadd(v_cdx,{"dtos(data)"}) // customizado
Case marq=='CPU'
aadd(v_cdx,{"cod_cpu"})
aadd(v_cdx,{"desc1+desc2"})
//aadd(v_cdx,{"desc1i+desc2i"}) saiu em 16/03/2008 pois nao tava sendo usado por nenhum programa
//aadd(v_cdx,{"cod_fam+cod_cpu"}) saiu em 16/03/2008 pois nao tava sendo usado por nenhum programa
Case marq=='CPUINS'
aadd(v_cdx,{"cod_cpu+cod_ins+qual_fon"})
aadd(v_cdx,{"cod_ins+qual_fon"})
aadd(v_cdx,{"cod_cpu+qual_fon+cod_ins"})
Case marq=='CQP'
aadd(v_cdx,{"cqp"})
aadd(v_cdx,{"desc1"})
Case marq=='CQPCPU'
aadd(v_cdx,{"cod_cpu+cqp"})
Case marq=='DESC_EPG'
aadd(v_cdx,{"cod_obra+cod_af+periodo"})
Case marq=='DESC_PER'
aadd(v_cdx,{"cod_obra+periodo"})
Case marq=='DESEMB'
aadd(v_cdx,{"cod_obra+versao+cod_ins+item"})
Case marq=='DEST_LD'
aadd(v_cdx,{"cod_lis+st_dest+codigo"})
Case marq=='DET_IAP'
aadd(v_cdx,{"cod_obra+cod_af+cod_ap+tipo+numero+cod_ins1+cod_ins2"})
aadd(v_cdx,{"cod_obra+cod_af+cod_ins1+cod_ins2"})
Case marq=='DET_INS'
aadd(v_cdx,{"cod_obra+cod_af+cod_ins1+cod_ins2"})
aadd(v_cdx,{"cod_obra+cod_ins1+cod_ins2"})
Case marq=='DEVOLVE'
aadd(v_cdx,{"cod_grd+cod_doc+nr_rev+dtos(data)"}) // customizado
aadd(v_cdx,{"cod_doc+nr_rev+cod_grd"})
Case marq=='DF'
aadd(v_cdx,{"tipo"})
Case marq=='DF_AP'
aadd(v_cdx,{"cod_obra+cod_af+cod_ap+tipo+numero"})
aadd(v_cdx,{"cod_obra+tipo+numero+cod_af+cod_ap"})
aadd(v_cdx,{"cod_obra+cod_af+cod_for+tipo+numero"})
Case marq=='DIARIAS'
aadd(v_cdx,{"cod_ind+dtos(data)"}) // customizado
Case marq=='DIGITADA'
aadd(v_cdx,{"cod_obra+dtos(data)+hora"}) // customizado
aadd(v_cdx,{"cod_obra+item"})
Case marq=='DOCEMP'
aadd(v_cdx,{"cod_grd+cod_doc+nr_rev"})
aadd(v_cdx,{"cod_doc+nr_rev+cod_grd"})
Case marq=='DOCSOL'
aadd(v_cdx,{"cod_sol+cod_doc+nr_rev"})
aadd(v_cdx,{"grc+num_seq"})
aadd(v_cdx,{"cod_doc+nr_rev"})
aadd(v_cdx,{"doc_ret+rev_ret"})
Case marq=='DOCUMENT'
aadd(v_cdx,{"cod_doc+nr_rev"})
aadd(v_cdx,{"doc_origem+rev_doc"})
aadd(v_cdx,{"cod_end+cod_doc+nr_rev"})
aadd(v_cdx,{"cod_end2+cod_doc+nr_rev"})
aadd(v_cdx,{"cod_end3+cod_doc+nr_rev"})
aadd(v_cdx,{"cod_doc+myind(nr_rev)"}) // customizado
Case marq=='EMPRESA'
Case marq=='EMPREST'
aadd(v_cdx,{"cod_grd"})
aadd(v_cdx,{"responsave"})
aadd(v_cdx,{"dtos(data)+cod_grd"}) // customizado
Case marq=='ENTIDADE'
aadd(v_cdx,{"cod_ent"})
Case marq=='EPG_AF'
aadd(v_cdx,{"cod_obra+cod_af+cod_epg"})
Case marq=='ETAPAS'
aadd(v_cdx,{"cod_eta"})
Case marq=='ETA_DOC'
aadd(v_cdx,{"cod_doc+nr_rev+cod_eta"})
aadd(v_cdx,{"cod_eta+cod_doc+nr_rev"})
Case marq=='EVENTOAF'
aadd(v_cdx,{"cod_obra+cod_af+dtos(data)"}) // customizado
aadd(v_cdx,{"cod_obra+dtos(data)+cod_af"}) // customizado
Case marq=='EVENTOAP'
aadd(v_cdx,{"cod_obra+cod_af+cod_ap+dtos(data)"}) // customizado
aadd(v_cdx,{"cod_obra+dtos(data)+cod_af"}) // customizado
aadd(v_cdx,{"cod_obra+cod_af+dtos(data_af)"}) // customizado
Case marq=='FAMILIAS'
aadd(v_cdx,{"cod_fam"})
aadd(v_cdx,{"desc"})
Case marq=='FAM_CPU'
aadd(v_cdx,{"cod_fam"})
aadd(v_cdx,{"desc"})
Case marq=='FATORK'
aadd(v_cdx,{"cod_obra+versao+cod_ins"})
Case marq=='FON_CPU'
aadd(v_cdx,{"cod_cpu+qual_fon+cod_fon"})
aadd(v_cdx,{"qual_fon+cod_fon"})
Case marq=='FON_INS'
aadd(v_cdx,{"cod_ins+qual_fon+cod_fon"})
aadd(v_cdx,{"qual_fon+cod_fon"})
Case marq=='FON_PRE'
aadd(v_cdx,{"cod_fon"})
Case marq=='FORNECED'
aadd(v_cdx,{"cod_for"})
aadd(v_cdx,{"nome"})
Case marq=='GER_OBR'
aadd(v_cdx,{"obrao"})
Case marq=='IMPI_AF'
aadd(v_cdx,{"cod_obra+cod_af+sigla1+sigla2"})
Case marq=='IMPI_AP'
aadd(v_cdx,{"cod_obra+cod_af+cod_ap+sigla1+sigla2"})
Case marq=='IMPOSTOS'
aadd(v_cdx,{"sigla"})
Case marq=='IMP_AF'
aadd(v_cdx,{"cod_obra+cod_af+sigla"})
Case marq=='IMP_AP'
aadd(v_cdx,{"cod_obra+cod_af+cod_ap+sigla"})
Case marq=='IMP_DF'
aadd(v_cdx,{"cod_obra+cod_af+cod_ap+tipo+numero+sigla"})
Case marq=='INDICES'
aadd(v_cdx,{"cod_ind"})
Case marq=='INSUMOS'
aadd(v_cdx,{"cod_ins"})
aadd(v_cdx,{"cod_reut"})
aadd(v_cdx,{"cod_fam+cod_ins"})
aadd(v_cdx,{"desc1+desc2"})
//aadd(v_cdx,{"desc1i+desc2i"}) saiu em 16/03/2008 pois nao tava sendo usado por nenhum programa
Case marq=='INS_AF'
aadd(v_cdx,{"cod_obra+cod_af+cod_ins+item"})
aadd(v_cdx,{"cod_obra+cod_ins+item"})
aadd(v_cdx,{"cod_obra+cod_af+item"})
aadd(v_cdx,{"cod_obra+item"})
aadd(v_cdx,{"cod_ins"})
Case marq=='INS_AP'
aadd(v_cdx,{"cod_obra+cod_af+cod_ap+tipo+numero+cod_ins+item"}) // entrou item em 13/03/2008
aadd(v_cdx,{"cod_obra+cod_af+cod_ins+item"})
aadd(v_cdx,{"cod_obra+cod_af+cod_ap+tipo+numero+item"})
aadd(v_cdx,{"cod_obra+cod_af+item"})
aadd(v_cdx,{"cod_obra+item"})
Case marq=='INS_PER'
aadd(v_cdx,{"cod_cpu+cod_ins+cod_inc+qual_fon"})
aadd(v_cdx,{"cod_inc"})
aadd(v_cdx,{"cod_cpu+cod_ins+qual_fon+cod_inc"})
Case marq=='ITE_CONT'
aadd(v_cdx,{"cod_prj+nivel+item_nivel"})
Case marq=='ITE_ENDE'
aadd(v_cdx,{"nivel+item_nivel"})
Case marq=='ITE_PRJ'
aadd(v_cdx,{"cod_prj+nivel+item_nivel"})
Case marq=='ITEM_AF'
aadd(v_cdx,{"cod_obra+cod_af+item"})
aadd(v_cdx,{"cod_obra+item"})
Case marq=='ITEM_EPG'
aadd(v_cdx,{"cod_obra+cod_af+cod_epg+item"})
aadd(v_cdx,{"cod_obra+item"})
Case marq=='LD'
aadd(v_cdx,{"cod_lis"})
Case marq=='MED_EPG'
aadd(v_cdx,{"cod_obra+cod_af+cod_epg+periodo"})
Case marq=='MENSAIS'
aadd(v_cdx,{"cod_ind+ano+mes"})
Case marq=='MUD_ORC'
aadd(v_cdx,{"cod_obra+periodo+item"})
aadd(v_cdx,{"cod_obra+item+periodo"})
Case marq=='NFSR'
aadd(v_cdx,{"cod_obra+cod_af+cod_ap+tipo+numero+tiposr+numerosr"})
Case marq=='OBRAS'
aadd(v_cdx,{"cod_obra+versao"})
aadd(v_cdx,{"num_doc"})
aadd(v_cdx,{"cod_prj+cod_obra+versao"})
Case marq=='OBSERV'
aadd(v_cdx,{"cod_cpu"})
aadd(v_cdx,{"cod_ins"})
aadd(v_cdx,{"cod_obra+versao+item"})
Case marq=='OBSPLA'
aadd(v_cdx,{"cod_obra+item"})
Case marq=='ORCAMENT'
aadd(v_cdx,{"cod_obra+versao+item"})
aadd(v_cdx,{"cod_cpu+cod_obra+versao+item"})
aadd(v_cdx,{"cod_obra+versao+cod_cpu"})
//aadd(v_cdx,{"cod_cpu"}) saiu em 16/03/2008 para usar a TAG 2 (so orc130.prg usava)
Case marq=='PASSWORD'
aadd(v_cdx,{"usuario"})
Case marq=='PERMIS'
aadd(v_cdx,{"usuario+modulo"})
Case marq=='PLADOC'
aadd(v_cdx,{"cod_doc+nr_rev"})
aadd(v_cdx,{"st_origem+cod_origem"})
Case marq=='PLANEJA'
aadd(v_cdx,{"cod_obra+versao+item"})
Case marq=='PRECED'
aadd(v_cdx,{"cod_obra+versao+cod_ins+item"})
Case marq=='PREC_CPU'
aadd(v_cdx,{"cod_cpu+ano_mes+qual_fon"})
aadd(v_cdx,{"ano_mes"})
Case marq=='PREC_INS'
aadd(v_cdx,{"cod_ins+ano_mes+qual_fon"})
aadd(v_cdx,{"ano_mes"})
Case marq=='PROJETOS'
aadd(v_cdx,{"cod_prj"})
aadd(v_cdx,{"cod_cli+substr(cod_prj,3)+substr(cod_prj,1,2)"}) // customizado
aadd(v_cdx,{"substr(cod_prj,3)+substr(cod_prj,1,2)"}) // customizado
Case marq=='REA_AF'
aadd(v_cdx,{"cod_obra+cod_af+dtos(data)"}) // customizado
Case marq=='VAL_AF'
aadd(v_cdx,{"cod_obra+cod_af+item+dtos(data)"}) // customizado
aadd(v_cdx,{"cod_obra+item"})
aadd(v_cdx,{"cod_obra+cod_af+item+cod_ins+dtos(data)"}) // customizado
Case marq=='RESPONSA'
aadd(v_cdx,{"num_doc"})
aadd(v_cdx,{"nome"})
Case marq=='SOLICIT'
aadd(v_cdx,{"cod_sol"})
aadd(v_cdx,{"st_dest+codigo"})
Case marq=='TAREFAS'
aadd(v_cdx,{"cod_doc+nr_rev+dtos(inicio)"}) // customizado
Case marq=='TEMA_DOC'
aadd(v_cdx,{"cod_tema"})
Case marq=='TIPOSDOC'
aadd(v_cdx,{"cod_doc+nr_rev+dtos(data)"}) // customizado
Case marq=='TIPO_DOC'
aadd(v_cdx,{"cod_tipo"})
Case marq=='UNIDADE'
aadd(v_cdx,{"unidade"})
Case marq=='MAPA'
aadd(v_cdx,{"cod_map"})
Case marq=='FORMAP'
aadd(v_cdx,{"cod_map+cod_for"})
Case marq=='DETMAP'
aadd(v_cdx,{"cod_map+cod_ins+item"})
Case marq=='INSFOR'
aadd(v_cdx,{"cod_map+cod_ins+cod_for"})
EndCase
Return
Código: Selecionar todos
function AbrirDbfs
para mprograma
local x,y,va:={}
mprograma=alltrim(lower(mprograma))
do case
case mprograma="orc010()"
aadd(va,{"AF"})
aadd(va,{"CLIENTES"})
aadd(va,{"FON_PRE"})
aadd(va,{"FORNECED"})
aadd(va,{"INDICES"})
aadd(va,{"OBRAS"})
aadd(va,{"ORCAMENT"})
aadd(va,{"PLANEJA"})
aadd(va,{"PROJETOS"})
aadd(va,{"RESPONSA"})
case mprograma="orc020()"
aadd(va,{"ABREVIA"})
aadd(va,{"AF"})
...
bla .. bla.. bla..
...
endcase
return(va)
Código: Selecionar todos
function abrir
para mexclusivo,mindexar,mlimpar,va
local nomeDBF,nomeCDX,x,y
private v_cdx:={}
// para poder indexar corretamente campos acentuados
REQUEST HB_CODEPAGE_PT850
HB_SETCODEPAGE( "PT850" )
if !mindexar
preencheSB("Abrindo Arquivos ...")
endif
for x=1 to len(va)
nomeDBF=strtran(va[x,1],".DBF","")
SELECT 0
if netuse(nomeDBF,mexclusivo,20)
v_cdx:={}
cdxs(nomeDBF)
if len(v_cdx)#0
if mindexar
pack
for y=1 to len(v_cdx)
nomeCDX=nomeDBF+strzero(y,2)
GTprocessmessages()
OrdCreate( nomeDBF, nomeCDX, v_cdx[y,1])
next
use
else
OrdListAdd( nomeDBF )
endif
else
if mindexar .or. mlimpar
use
endif
endif
else
close databases
return(.f.)
endif
next
if !mindexar
restauraSB()
endif
return(.t.)
Muito Obrigado,
Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Taí uma idéia. Só será preciso adaptar a última função pro Clipper. 
Aliás, uma sugestão: na função 3, onde se define quais arquivos abrir, seria interessante incluir um filtro para que sejam ignorados os DBFs que não forem necessários para determinada situação da rotina chamadora. Exemplo: se for contas a pagar, não será necessário abrir o cadastro de clientes.
Aliás, uma sugestão: na função 3, onde se define quais arquivos abrir, seria interessante incluir um filtro para que sejam ignorados os DBFs que não forem necessários para determinada situação da rotina chamadora. Exemplo: se for contas a pagar, não será necessário abrir o cadastro de clientes.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Luciano Bonfim
- Usuário Nível 3

- Mensagens: 414
- Registrado em: 23 Ago 2007 09:34
- Localização: Rio de Janeiro / São Paulo
- Contato:
Caro Maligno,
é isso mesmo que a funçäo abrir_dbfs faz, eu passo como parâmetro o programa que vou abrir e ela me retorna apenas os DBFs necessários....
quanto as funçöes do xharbour/hwgui foi mal é que eu copiei e colei e esqueci que tava no forum do clipper, mas a única coisa que elas fazem é mostrar uma mensagem de abrindo arquivos na barra de status...
é isso mesmo que a funçäo abrir_dbfs faz, eu passo como parâmetro o programa que vou abrir e ela me retorna apenas os DBFs necessários....
quanto as funçöes do xharbour/hwgui foi mal é que eu copiei e colei e esqueci que tava no forum do clipper, mas a única coisa que elas fazem é mostrar uma mensagem de abrindo arquivos na barra de status...
Muito Obrigado,
Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim

