NOVA LINGUAGEM

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

NOVA LINGUAGEM

Mensagem por tonyx »

alem do xharbour em 32bits , aguem conche ou trabalha em outra que aproveita o clipper.. como flagship, recital ??

----- estou com probleminha em abrir o word,
---- ele trava o arquivo que esta aberto em outro diretorio no proprio diretorio nao trava , ja tentei varias coisas

abre_word(arq_doc)
---- aqui ele trava os aquivos que estao no F:\ - ja no C: liberados
????


--- entao estou tentando ve se tem outro linguagem ou compilador p/ 32 bits

nao sei se o apollo ou flagship gostaria horientacao ---i
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Como assim ele trava o WORD ? pode explicar melhor quem sabe aparece alguem com alguma solução.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

resp

Mensagem por tonyx »

aquele topico anterior de abrir com o WORD realmente nao consegui
resolver
o que eu tenho
mov1:= ´F:\sistema\mov_1.dbf´
mov2:= ´C:\sistema\mov_2.dbf´
arq_rtf:= ´c:\sistema\arq.rtf´
vchave = ´teste 1´
sele 1
use &mov1
sele 2
use &mov2
*------
abre_word(arq_rtf) && essa aqui e a sua ´sysgecom´
*-----
sele 1
appe blank
repl chave withvchave
*____________________ e aqui que trava na chave
dbcommit()
*-----------------
1- quando executo word ele trava o mov1
2- mas se o mov1:= ´C:\sistema\mov_1.dbf´
passa do replace e isso que nao entendo

so trava nos arquivos de outro diretorio nao tem nada com a historia
e porque travaria no diretorio F:
--- o que ja tentei
winexec(),
localrealooc()
set exclusive on
run wordpad.exe arq_rtf
========== realmente laboratorio aqui chegou limite ====
ja no clipper 53c tudo ok -- sera que porque e de 16bits
e o xharbour de 32 bits (estamos na desistencia)

passamos o sistema todo para xharbour so falta este 1%
dar certo

agradeceria ao cientistas deste forum
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

tonyx, se eu entendi bem, vc quer apenas abrir um WORD certo ? bom deixe para abrir o WORD no final da sua função...ou post sua função inteira para nos poder analisar melhor, mas se caso for postar a função, please coloque dentro de[ CODE ]
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

RESP

Mensagem por tonyx »

e que dentro da funcao o usuario apos incluir o registro,
o sistema cria um arquivo rtf e dentro um logotipo ja em rtf
e com os campos incluidos -- seria uma ficha de cadastro do funcionario
com o logotipo da empresa em cima --
---------- a questao e que eu tenho o mesmo sitema e aquivos
tanto no C:\ e no F:\
quando executo ficha_c -- ele gera no C; mostra o word e segue normalmente e adiciona mais fichas
ja no ficha_F -- ele roda no F: mostra a ficha pelo word -- mas
trava no proxima inclusao - tenho que incluir hum a hum

a questao e porque segue normal no C:\ e no F:\ para ambos arquivos
sao iqual so muda a chamada de C:\movi1 para f:\mofi1

ja no clip53 e ok -- poderia ser o que no xharbour ?????

ja tentaram colocar em laboratorio ???
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Entendi seu problema, esse "F:\" esta mapeado ? amiguinho...faça um exemplo pequeno que eu possa compilar aqui e realizar o teste, fica mais facil de lhe ajudar...eu toh abrindo aqui word na rede normalmente....
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Se vc disse que ele trava remotamente.

Ao executar o comando de chamada para o Word, faça uma copia do arquivo que esta remoto para o diretorio onde voce esta, chame o word, imprima e delete o arquivo-copia.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

resp

Mensagem por tonyx »

em questao das tentativa do laboratorio
arquivo:= ´f:\protoc\movi.dbf´
arq_rtf:= ´c:\protoc\arq.rtf´
sele 1
use &arquivo share
inclui()
sele 1
use
le_word(arq_rtf)
sele 1
use &arquivo exclusivo
teste_inc(1)
teste_inc(2)
teste_inc(3)
*---------- deste jeito ele inclui varias vezes apos o word

***mas set for colocado share so realiza o teste 1 vez e o no
*** 2 teste ele para ???
le_word(arq_rtf)
sele 1
use &arquivo share
teste_inc(1)
teste_inc(2)
teste_inc(3)

***** pode o word interverir no modulo share
pensei colocar
set exclusive off
set autoshare to 1
---------- mas certo seria saber onde e com o word afeta
no share do sistema e como
--------- mas questao e que ]
se o arquivo= ´c:\protoc\movimento.dbf´ o share nao e afetado

:{
tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

Mensagem por tonyx »

******************* EIS AQUI O TAL TESTE DE LABORATORIO ****


FUNCTION MAIN()

SET ECHO OFF
SET ALTERNATE OFF
*SET BELL OFF
*SET CARRY OFF
SET CENTURY ON
SET CONFIRM OFF
SET CONSOLE ON
SET DATE FRENCH
SET DECIMALS TO 2
SET DELETE ON
SET DELIMITERS OFF
SET DEVICE TO SCREE
SET ESCAPE ON
SET EXACT ON
SET FIXED OFF
SET HEADING ON
SET INTENSITY ON
SET MENU ON
SET PRINT OFF
SET SAFETY ON
SET SCOREBOARD OFF
SET STATUS OFF
SET TALK OFF
SET UNIQUE OFF
SET WRAP ON
SET CURSOR ON
*
*======================== para o xharbour
set dbflockscheme to 2 // PARA USO JUNTO COM O CLIPPER
*****====
REQUEST HB_NOMOUSE
REQUEST HB_LANG_PT
HB_LANGSELECT("PT")
REQUEST HB_CODEPAGE_PT850
HB_SETCODEPAGE("PT850")
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")
*------
COR0:= 'W/W,N/W,W/W' && FUNDO
COR1:= 'N/BG' && QUADROS
COR2:= 'B/BG' && APOS GET'S OU SAY'S
COR3:= 'B/W' && SELECAO
COR4:= 'R/BG' && ATENCAO OU CHAMATIVO
OK_TESTE:= .T.
*-----------------------------
dir_c:= 'c:\Brotoc'
dir_MAE:= 'g:\Brotoc'
arq_prot:= DIR_C+'\ARQ_PROT.RTF'
arq:= dir_MAE+'\mov_2007.dbf'

*---------------
ABRE_WORD(ARQ_PROT)
sele 1
use &arq SHARE
******* SE USAR EXCLUSIVE PASSA NOS 3 (TRES) TESTES
*** NO MODE SHARE NAO PASSA DO 2. (SEGUNDO TESTE) ????
teste(1)
teste(2)
teste(3)
close

QUIT
RETURN(NIL)

*================================= FIM DO TESTE =========
function Abre_word
*************************
LOCAL oWord,oText
PRIVATE oDlgHabla:=NIL
parameters carq

*MsgRun("Aguarde Gerando Documento de Word...")

*RenameFile( cARQ, "TEMP.DOC" )
*cARQ="TEMP.DOC"

TRY
oWord := GetActiveObject( "Word.Application" )
CATCH
TRY
oWord := CreateObject( "Word.Application" )
CATCH
* MsgStop("Não foi Possivel Achar o Word Instalado","Aviso do Sistema")
MOSTRA(LIN+QUANT,COL+1,"Não foi Possivel Achar o Word Instalado ")

IF oDlgHabla#NIL
oDlgHabla:CLOSE()
ENDIF
RETURN
END
END

IF !FILE(cARQ)
* MsgStop("Não Foi Localizar e Abrir o Documento de Word")
MOSTRA(LIN+QUANT,COL+1,"Não Foi Localizar e Abrir o Documento de Word")
IF oDlgHabla#NIL
oDlgHabla:CLOSE()
ENDIF
RETURN
ENDIF
oWord:Documents:Open(cARQ) //ABRE O WORD

oWord:Visible := .T. //PARA VISUALIZAR OU NÃO ANTES
oWord:WindowState := 1
** oWord:PrintOut() //PARA IMPRIMIR DIRETO
IF oDlgHabla#NIL
oDlgHabla:CLOSE()
ENDIF
RETURN(nil)
*------------------

FUNCTION TESTE
PARAMETERS N_TESTE
OK_TESTE:= IF(N_TESTE = 1,.T., OK_TESTE)
* if dir_mae != dir_c .AND. OK_TESTE
*** so quando chama o word acontese isto, no xharbour
*** confronto na gravacao do 2. registro, quando e de dir_mae,
*** perde-se o indexkey(), chave indexadora ou arquivo, motivo ???
* setcolor(cor1)
clear
? 'TESTE NUM '+STR(N_TESTE,5)
? 'DIR_MAE = '+DIR_MAE
? dbf()
? 'antes do frlock()'
? indexkey()
vprot:= 'teste '+STR(N_TESTE,2)+' '+TIME()
if frlock('I',0)
? 'antes do repl'
? indexkey()
repl protocolo with vprot
? 'apos repl'
funlock()
? 'APOS FUNLOCK()'
* endif
WAIT '-- OK ---'
endif
RETURN(NIL)
*------------------
FUNCTION MOSTRA(LIN_M,COL_M,MSG_M,ok_m)
PRIVATE TELA_M,COR_ANTES,COR4B,POS_M
TELA_M = SAVESCREEN(LIN_M - 1, COL_M - 1, LIN_M + 1, COL_M + LEN(MSG_M) )
ok_m:= if(ok_m = nil, .f., ok_m)
if ok_m
setcolor(cor1)
@ lin_m-1,col_m-1 CLEAR TO lin_m+1,col_m+len(msg_m)
@ lin_m-1,col_m-1 TO lin_m+1,col_m+len(msg_m)
endif
SETCOLOR(COR4+'*')
@ LIN_M,COL_M SAY MSG_M
SET CONSOLE OFF
WAIT ''
SET CONSOLE ON
RESTSCREEN(LIN_M - 1, COL_M - 1, LIN_M + 1, COL_M + LEN(MSG_M), TELA_M )
SETCOLOR(COR2)
RETURN(NIL)
*-------------------------------------
FUNCTION FRLOCK(OPCAO,REG_ALT)
PRIVATE FLAG,TEMPO
FLAG = .F.
TEMPO = 0
OPCAO:= UPPER(OPCAO)
IF OPCAO = 'I' && PARA INCLUSAO
DO WHILE TEMPO <= 10
APPEND BLANK
IF (! NETERR())
if RLOCK()
FLAG = .T.
TEMPO = 100
endif
endif
if ! flag
INKEY(0.5)
TEMPO = TEMPO + 0.5
endif
ENDDO
IF ! FLAG
MOSTRA(23,1,'APPE Blank ao Arquivo '+dbf()+' Nao Disponivel')
FUNLOCK()
ENDIF
ELSE && PARA ALTERACOES E EXCLUSOES
IF RECNO() != REG_ALT
GOTO REG_ALT
ENDIF
DO WHILE TEMPO <= 10
IF (!NETERR())
if RLOCK()
FLAG = .T.
TEMPO = 100
endif
endif
if ! flag
INKEY(0.5)
TEMPO = TEMPO + 0.5
ENDIF
ENDDO
IF ! FLAG
MOSTRA(23,1,'ACESSO ao Registro '+STR(REG_ALT, 5)+' do Arquivo '+DBF()+' NAO Disponivel')
FUNLOCK()
ENDIF
ENDIF
RETURN(FLAG)
*-----------------------------------
FUNCTION FUNLOCK()
COMMIT
UNLOCK
RETURN(NIL)
*-----------------------------------
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Vc esta usando esse codigo em MODO CONSOLE ?
Tente trocar a Seguinte linha abaixo:
de:
use &arq SHARE
para:
use (arq) new shar VIA "DBFCDX"

Outra coisa, se o diretorio 'g:\Brotoc' não existir vai dar problema, aconselho vc deixar o usuario escolher onde salvar o tal arquivo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

RESP

Mensagem por tonyx »

NA FUNCAO

FUNCTION FRLOCK(OPCAO,REG_ALT)

FUNCTION FUNLOCK()

VOCE ACHA ESTA LEGAL ----
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Eu usaria assim:
FUNCTION FUNLOCK()
DBCOMMIT()
DBUNLOCK()
RETURN(NIL)
No Clipper o COMMIT chamava o DBCOMMITALL() que faz descarregar geral o buffer, agora no xharbour eu não sei se isso acontece tmb.

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

RESP

Mensagem por tonyx »

CARO AMIGO SYGECOM sei que nao tem logica para isto mas ???
o arquivo testado foi g:\TESTE\MOV_2007.DBF
COPIEI PARA G:\TESTE\TST_2007.DBF
E ESTE NOVO ARQUIVO (TST_2007) PASSA TRANQUILO NOS 4 TESTES

JA O MOV-2007 TRAVA NO 3 (TESTE)

COISA DE DOIDO OU ESTOU ESQUECENDO ALGUM CONHECIMENTO ???

:%
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Bom, não sei o que poder ser, mas concerteza o problema esta ai com vc...tem mudar para outros nomes de DBF.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder