Página 1 de 2
proglemas WORD com arquivos REDE
Enviado: 29 Out 2007 08:40
por tonyx
coloquei este topico pois e diferente do outro que poistei e questao de PESQUISA E LABORATORIO.
1- Objetivo do programa tenho protocolo apos incluir ele monta arquivo
em rtf e lmanda para o WORD,
a- finalidade imprimir em qualquer impressoara
b- enviar por email tal arquivo
c- talvez editar ( mas pode ficar fora do projeto)
2- Problemas - no clip 53 ta beleza tanto no C:\ ou F:\
passei usar o xharbour o mesmo arquivo DBF e mesmo CDX
funcionam perfeitamente no C:\ o word e arquivo movi OK
-> mas quando USO F:\ apos o word nao consigo mais incluir
a chave indexadora para ou trava no segundo registro
( e sem erro de rede)
3-- SO QUERIA SABER O DO PORQUE QUANDO TRABALHO ARQUIVO f:\ ELE PARA ---
==== RELAMENTE NAO FAZ LOGICA EXECUTAR OK CLIP 53 E NO XHB NAO ==
COMO E A ROTINA --
arq_mov:= ´f:\PROTOC\MOV.DBF´
arq-aux = ´C:\protoc\aux.dbf´
arq_prot:= ´c:\protoc\arq.doc´
abre_doc(arq_prot)
inclui(1)
inclui(2)
inclui(3)
*_________________ anotacoes ---
n1) no inclui(1) OK , mas no inclui(2) trava no repl,
n2) sem word seque ok, no clip53 seque ok, no xhb trava no 2 item
n3) consigo grava nos campos normais mas na chave ele trava
n4) teste de indexord e index key - trava
n5) isso so acontece no arq-mov do F:, ISSO AQUI E MINHA QUESTAO)
N6 )no arq_aux OK VARIAS VEZES
-----------------
T1) NAO SEI SE O WIN32PRN - MANDARIA POR EMAIL
SE UM DOS MESTRES PUDESE ME EXPLICAR O DO PORQUE DISTO
REALMENTE E UM QUEBRA CABECAS POR PARA PESQUISAR
:%
--- SOLUCOES
S1- NAO SEI SE DEVO FECHAR E ABRIR ARQUIVOS
( SAO MUITOS EM OUTROS SISTEMAS)
S2- estou tentando em laboratorio mas cliente esta fazendo um a um por vfez - entrandoe saido do sistema ( isto ta coisa imperdoavel)
agradeco ajuda
Enviado: 29 Out 2007 12:08
por rochinha
Amiguinho
Parece que vc traduziu algo usando a ferramenta de idiomas do google, hehehe, fiquei boiando pra tentar enteder algo.
PRIMEIRO: Para controlar protocolo eu uso um arquivo onde armazeno cada movimento com numero do protocolo(cada um tem um criterio para cria-lo, eu uso setor,data e sequencia: ADM-20070623-099), nome do emitente, nome do receptor e endereço fisico do arquivo em questão, seja, word, texto, planilha ou qualquer coisa que foi ligada a um registro em algum dos modulos de meu sistema ou arquivo enviado para o receptor.
SEGUNDO: Para voce montar o arquivo de saida em .RTF existem codigos exemplos existentes no forum e topicos que podem auxiliá-lo.
TERCEIRO: Para imprimir em qualquer impressora, caso use Clipper, tera de usar algum aplicativo externo com WAPI, PRWin, NODOSIMP, etc. Caso use xHarbour eu uso Fivewin e portanto uso suas classes, mas para o seu caso a Win32PRN lhe cai bem.
QUARTO: Para pode editar, se usa modo texto, edite via MemoEdit e envie o resultado para a função que cria o .RTF ou apenas execute o WordPAD ou Word com o arquivo via RUN, se quiser editar já visualmente.
QUINTO: Para o envio via email voce também deverá usar um aplicativo externo, na sessão código fonte voce obterá informações em meu tópico sobre enviar e receber email via Clipper, mas minha recomendação é o Blat, mais completo.
SEXTO: O motor xBase do Clipper é compativel com o do Harbour /xHarbour, mas não é o mesmo, tem diferenças, ja que não foi usando o mesmo código fonte para criá-lo e mesmo porque tem melhorias(até certo ponto). Voce pode muito bem usar Harbour e Clipper ao mesmo tempo, mas terá de passar um pente fino nas chaves que os dois usam e como usam para que um não interfira no outro. Verifique também os LOCKs, UNLOCKs e COMMITs pois tanto no Clipper como no harbour devem vir da mesma sequencia, exemplo: no Clipper voce da UNLOCK e apos o COMMIT, deve fazer o mesmo no Harbour, apesar que o correto ser COMMIT e após UNLOCK.
SETIMO: Crie os indices somente por um dos aplicativos, sempre pelo Clipper, pois se o Harbour é compatível ele deverá entender os .DBFs e CDXs do Clipper, pois se voce os faz pelo Harbour o Clipper poderá estranhar, modificar algo e travar o uso no Harbour.
OITAVO: Não use o arquivo em questão em conjunto direto com o Word pois ele tem a caracteristica de abrir qualquer arquivo em modo exclusivo e mesmo depois de fechado ele pode não liberá-lo.
Em suma vamos esperar mais informações de nossos colegas que possam ter passado pelo mesmo problema.
Enviado: 29 Out 2007 15:12
por sygecom
Bom tmb. não entendi quase nd...mas acho que vc quer gerar um RTF e abri no WORD isso ?
Outra cosia o que esta funcionando no clipper que no xharbour não esta ? post um exemplo para os colegas poder lhe ajudar !!!
RESP
Enviado: 31 Out 2007 14:01
por tonyx
o que e HRBRUN
Enviado: 31 Out 2007 16:30
por rochinha
Amiguinho
HRBRUN() é uma função que permite executar codigo Harbour compilado com parametro /gh, ou seja, o arquivo resultante tera a extensão .HRB.
Código: Selecionar todos
@echo off
harbour %1 /n /ic:\fivewin\fwh27\include /gh
dir %1.hrb
Esta caracteristica é muito importante se deseja acrescentar ao seu aplicativo o pode de rodar scripts, pequenos que executem uma rotina especifica, sem que seja necessário colocar a rotina dentro do aplicativo.
Voce pode criaum pequeno .PRG para executar a tarefa de apagar todos os indices ou fazer o backup para um determinado diretorio e executa-lo via aplicativo.
Depois de um tempo voce necessita fazer alguma alteração no mesmo script, bastara modifica-lo e compila-lo, sendo assim seu aplicativo continua inalterado, mas aquela rotina minuscula pode ser alterada quando quizer.
Em meu sistema eu tenho um cadastro de scripts, quando crio um novo script, util ao sistema, envio o cadastro contendo a chamada aos scripts e os scripts recompilados para o cliente e em uma opção do menu ele a executa.
Mas não va sair fazendo tudo em scripts pois o resultado não é lá estas coisas.
O script mal comportado detona o aplicativo principal.
O motor de execução de arquivos pré-objeto falha de vez em quando.
Os scripts precisam ser pequenos e só podem conter comandos puramente Harbour, como abrir arquivos, deletar, indexar e talvez uns ALERTs da vida.
winexec
Enviado: 01 Nov 2007 11:17
por tonyx
existe agum WINEXEC no XHARBOUR da what32.lib
--- coloquei o what32.lib e de desconhecido

vem de algum CH
Re: winexec
Enviado: 01 Nov 2007 11:25
por sygecom
tonyx escreveu:existe agum WINEXEC no XHARBOUR da what32.lib
--- coloquei o what32.lib e de desconhecido

vem de algum CH
Não tem que colocar nenhum CH . vc esta usando o hbmake para gerar sua app ? se sim posta o seu .BC
run
Enviado: 01 Nov 2007 11:27
por tonyx
quais os comandos em xharbour podem substituir o RUN START ARQ.DOC
JA OUVI FALAR DE
1- ABRE_WORD() -- MAS TEM TRANCA TAMBEM OS ARQUIVOS REDE
2- WINEXEC() - NAO ACHEI
3- MYRUN() -

FIVEWIN ??
resp
Enviado: 01 Nov 2007 11:43
por tonyx
pois bem ja vai o meu protoc.bc
a unica coisa que fiz e abrir pelo bloco de nota e adicionar la em baixo nas libs
---------------------------------------------
#BCC
VERSION=BCB.01
!ifndef CC_DIR
CC_DIR = $(MAKE_DIR)
!endif
!ifndef HB_DIR
HB_DIR = $(HARBOUR_DIR)
!endif
RECURSE= NO
SHELL =
COMPRESS = NO
EXTERNALLIB = NO
XFWH = NO
FILESTOADD = 5
WARNINGLEVEL = 0
USERDEFINE =
USERINCLUDE =
GUI = NO
MT = NO
PROJECT = protoc.exe $(PR)
OBJFILES = PROTOC2.obj\PROTOC2.obj\PROTOC2.obj\PROTOC2.obj $(OB)
PRGFILES = PROTOC2.PRG $(PS)
OBJCFILES = $(OBC)
CFILES = $(CF)
RESFILES =
RESDEPEN =
TOPMODULE = PROTOC2.PRG
LIBFILES = lang.lib vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib gtwin.lib codepage.lib ct.lib tip.lib pcrepos.lib hsx.lib hbsix.lib WHAT32.LIB
EXTLIBFILES = what32.lib
DEFFILE =
HARBOURFLAGS = -w0
CFLAG1 = -OS $(SHELL) $(CFLAGS) -d -c -L$(HB_DIR)\lib
CFLAG2 = -I$(HB_DIR)\include;$(CC_DIR)\include
RFLAGS =
LFLAGS = -L$(CC_DIR)\lib\obj;$(CC_DIR)\lib;$(HB_DIR)\lib -Gn -M -m -s -Tpe -x -ap
IFLAGS =
LINKER = ilink32
ALLOBJ = c0x32.obj $(OBJFILES) $(OBJCFILES)
ALLRES = $(RESDEPEN)
ALLLIB = $(LIBFILES) import32.lib cw32.lib
.autodepend
#DEPENDS
#COMMANDS
.cpp.obj:
$(CC_DIR)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**
.c.obj:
$(CC_DIR)\BIN\bcc32 -I$(HB_DIR)\include $(CFLAG1) $(CFLAG2) -o$* $**
.prg.obj:
$(HB_DIR)\bin\harbour -D__EXPORT__ -n -go -I$(HB_DIR)\include $(HARBOURFLAGS) -o$* $**
.rc.res:
$(CC_DIR)\BIN\brcc32 $(RFLAGS) $<
#BUILD
$(PROJECT): $(CFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE)
$(CC_DIR)\BIN\$(LINKER) @&&!
$(LFLAGS) +
$(ALLOBJ), +
$(PROJECT),, +
$(ALLLIB), +
$(DEFFILE), +
$(ALLRES)
!
------------------------------- fim do protoc.bc -----------
resp
Enviado: 01 Nov 2007 11:49
por tonyx
------ eis o make file ----
-LC:\BCC55\lib\obj;C:\BCC55\lib;C:\XHARBOUR\lib -Gn -M -m -s -Tpe -x -ap +
c0x32.obj obj\PROTOC2.obj, +
protoc2.exe,, +
lang.lib vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib gtwin.lib codepage.lib ct.lib tip.lib pcrepos.lib hsx.lib hbsix.lib import32.lib cw32.lib, +
, +
--------------------------
resp
Enviado: 01 Nov 2007 12:05
por tonyx
achei WINMISC.C dentro contrib\what\sourc la tem o tal winexec
devo transformalo em OBJ, colocar dentro do meu programa principal
Re: run
Enviado: 01 Nov 2007 17:27
por sygecom
tonyx escreveu:quais os comandos em xharbour podem substituir o RUN START ARQ.DOC
JA OUVI FALAR DE
1- ABRE_WORD() -- MAS TEM TRANCA TAMBEM OS ARQUIVOS REDE
Que ?
2- WINEXEC() - NAO ACHEI
Vc achou a What32.lib ? se não achou baixe do link abaixo a CONTRIB e compile a WHAT32.
http://sourceforge.net/project/download ... irror=ufpr
Obs:Se quiver ela compilada para 9970 ou 9971 me avisa que te mando, mas o ideal é vc mesmo compilar para não depender de ninguem compilar as contrib para vc.
3- MYRUN() -

FIVEWIN ??
Não é da Fivewin, segue abaixo a Função
MYRUN(), bas colocar em um PRG seu e compilar.
Como usar:
Código: Selecionar todos
*********************
FUNC MYRUN( cComando )
**********************
local oShell, RET
oShell := CreateObject( "WScript.Shell" )
RET := oShell:Run( "%comspec% /c " + cComando, 0, .T. )
oShell := NIL
return iif( RET = 0, .T., .F. )
Re: resp
Enviado: 01 Nov 2007 17:29
por sygecom
tonyx escreveu:pois bem ja vai o meu protoc.bc
a unica coisa que fiz e abrir pelo bloco de nota e adicionar la em baixo nas libs
---------------------------------------------
#BCC
VERSION=BCB.01
!ifndef CC_DIR
CC_DIR = $(MAKE_DIR)
!endif
!ifndef HB_DIR
HB_DIR = $(HARBOUR_DIR)
!endif
RECURSE= NO
SHELL =
COMPRESS = NO
EXTERNALLIB = NO
XFWH = NO
FILESTOADD = 5
WARNINGLEVEL = 0
USERDEFINE =
USERINCLUDE =
GUI = NO
MT = NO
PROJECT = protoc.exe $(PR)
OBJFILES = PROTOC2.obj\PROTOC2.obj\PROTOC2.obj\PROTOC2.obj $(OB)
PRGFILES = PROTOC2.PRG $(PS)
OBJCFILES = $(OBC)
CFILES = $(CF)
RESFILES =
RESDEPEN =
TOPMODULE = PROTOC2.PRG
LIBFILES = lang.lib vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib gtwin.lib codepage.lib ct.lib tip.lib pcrepos.lib hsx.lib hbsix.lib WHAT32.LIB
EXTLIBFILES = what32.lib
DEFFILE =
HARBOURFLAGS = -w0
CFLAG1 = -OS $(SHELL) $(CFLAGS) -d -c -L$(HB_DIR)\lib
CFLAG2 = -I$(HB_DIR)\include;$(CC_DIR)\include
RFLAGS =
LFLAGS = -L$(CC_DIR)\lib\obj;$(CC_DIR)\lib;$(HB_DIR)\lib -Gn -M -m -s -Tpe -x -ap
IFLAGS =
LINKER = ilink32
ALLOBJ = c0x32.obj $(OBJFILES) $(OBJCFILES)
ALLRES = $(RESDEPEN)
ALLLIB = $(LIBFILES) import32.lib cw32.lib
.autodepend
#DEPENDS
#COMMANDS
.cpp.obj:
$(CC_DIR)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**
.c.obj:
$(CC_DIR)\BIN\bcc32 -I$(HB_DIR)\include $(CFLAG1) $(CFLAG2) -o$* $**
.prg.obj:
$(HB_DIR)\bin\harbour -D__EXPORT__ -n -go -I$(HB_DIR)\include $(HARBOURFLAGS) -o$* $**
.rc.res:
$(CC_DIR)\BIN\brcc32 $(RFLAGS) $<
#BUILD
$(PROJECT): $(CFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE)
$(CC_DIR)\BIN\$(LINKER) @&&!
$(LFLAGS) +
$(ALLOBJ), +
$(PROJECT),, +
$(ALLLIB), +
$(DEFFILE), +
$(ALLRES)
!
------------------------------- fim do protoc.bc -----------
Mas vc verificou antes para saber se vc tem a LIB ai compilada ?
resp
Enviado: 05 Nov 2007 09:45
por tonyx
caro amigo SYSGECOM ja consigui compilar dentro do teste.bc o tal
what.lib so que a funcao WINEXEC parece nao foi achada
--- tenho o tal what do contrib e todos os souces gostaria dica
achei a funcao no mnual de funcoes do whalt --
_WINMISC.C e tambem _WINSHELL - pergunta de leigo
devo transformar isto em obj - ja tem bat´s fazem isto
---------- ou porque na que o whait ja esta dentro do teste.bc
ele nao atende o chado do winexec()
========== existi dica para o tal whait.lib
resp
Enviado: 05 Nov 2007 12:21
por tonyx
Error: Unresolved external '_hb_stack' referenced from C:\XHARBOUR\LIB\WHAT32.LIB|_winmisc
----------- realizei so um teste compilando WINEXEC