Duvida Indice NTX
Enviado: 14 Nov 2015 17:37
Boa tarde,
A muito tempo uso um sistema feito em clipper e tem atendido muito bem minhas necessidades, tem um relatório que preciso que seja impresso em ordem alfabética.
Tabela Clientes tenho os campos ( Conta | Nome | )
Tabela Movim tenho os campos ( Conta | CT | Doc |Data | Dat_Lanc | Valor )
O problema que quando indexo pelo campo NOME, tem uma instrução
Select 1
SEEK MOVIM->Conta // que retorna erro.
Pelo que puder ver ele abre a tabela clientes que esta indexada pelo campo conta e varre a tabela movim para ver se a conta existe, então se indexo a tabela clientes pelo nome o seek retorna erro pois não acha as contas. Seria isto ?
Então tenho :
CLIENTES indexando campo CONTA
MOVIM indexando ( str(year(dat_lan)4) + str (month(dat_lan),2) + str(day(dat_lanc),2) + doc
Acrescentei 3 linhas para gerar o arquivo em TXT, enquanto tento alterar a forma de impressão.
Neste caso tem como eu criar pegar SELECT 2 que chama a tabela MOVIM e juntar o indice para ficar NOME+( str(year(dat_lan)4) + str (month(dat_lan),2) + str(day(dat_lanc),2) + doc ?
Lembrando que o campo NOME esta na tela CLIENTES. :%
A muito tempo uso um sistema feito em clipper e tem atendido muito bem minhas necessidades, tem um relatório que preciso que seja impresso em ordem alfabética.
Tabela Clientes tenho os campos ( Conta | Nome | )
Tabela Movim tenho os campos ( Conta | CT | Doc |Data | Dat_Lanc | Valor )
O problema que quando indexo pelo campo NOME, tem uma instrução
Select 1
SEEK MOVIM->Conta // que retorna erro.
Pelo que puder ver ele abre a tabela clientes que esta indexada pelo campo conta e varre a tabela movim para ver se a conta existe, então se indexo a tabela clientes pelo nome o seek retorna erro pois não acha as contas. Seria isto ?
Então tenho :
CLIENTES indexando campo CONTA
MOVIM indexando ( str(year(dat_lan)4) + str (month(dat_lan),2) + str(day(dat_lanc),2) + doc
Acrescentei 3 linhas para gerar o arquivo em TXT, enquanto tento alterar a forma de impressão.
Neste caso tem como eu criar pegar SELECT 2 que chama a tabela MOVIM e juntar o indice para ficar NOME+( str(year(dat_lan)4) + str (month(dat_lan),2) + str(day(dat_lanc),2) + doc ?
Lembrando que o campo NOME esta na tela CLIENTES. :%
Código: Selecionar todos
CLEAR
mlinha = 66
mfolha = 1
mtotcre = 0.00
mtotdeb = 0.00
mtotvap = 0.00
mtotvales = 0.00
mtotodeb = 0.00
mtotrest = 0.00
mdata = CTOD(' / / ')
mtotven = 0.00
USE CLIENTES INDEX CLIENTE
SELECT 2
USE MOVIM INDEX IMOVDOC
SELECT 3
USE HISTOR INDEX IHISTOR
SET PRINTER TO TESTE.TXT
SET DEVICE TO PRINT
?? CHR(27) + CHR(15)
SET CONSOLE OFF
SET PRINT ON
?? CHR(27) + CHR(15)
SET PRINT OFF
SET CONSOLE ON
DO WHILE .T.
@10,10 SAY 'INFORME DATA DO MOVIMENTO'
@10,36 GET mdata PICTURE ' / / '
READ
IF mdata = CTOD(' / / ')
@20,1 SAY 'DATA EM BRANCO'
WAIT ', ENTER'
LOOP
ELSE
EXIT
ENDIF
ENDDO
SELECT 2
SEEK STR(YEAR(mdata),4) + STR(MONTH(mdata),2) + STR(DAY(mdata),2)
SET DEVICE TO PRINT
DO WHILE .NOT. EOF()
IF DAT_LANC < mdata
SKIP
LOOP
ENDIF
IF DAT_LANC > mdata
EXIT
ENDIF
SELECT 1
SEEK MOVIM->CONTA
IF EOF()
SET DEVICE TO SCREEN
@22,1 SAY 'CONTA NAO CADASTRADA,'
@22,22 SAY MOVIM->CONTA
WAIT ', ENTER'
SET DEVICE TO PRINT
SELECT 2
SKIP
LOOP
ENDIF
IF mlinha > 58
DO CCCABP20 WITH mfolha, mdata, mlinha
ENDIF
@mlinha,4 SAY CONTA
@mlinha,10 SAY NOME
@mlinha,44 SAY TIPO
SELECT 3
SEEK MOVIM->CT
IF EOF()
@mlinha,66 SAY '*******'
ELSE
@mlinha,66 SAY HISTORICO
ENDIF
SELECT 2
@mlinha,78 SAY DOC
IF CT < 10
mtotdeb = mtotdeb + VALOR
DO CASE
CASE CT = 01
mtotvap = mtotvap + VALOR
CASE CT = 02
mtotvales = mtotvales + VALOR
CASE CT = 06
mtotrest = mtotrest + VALOR
OTHERWISE
mtotodeb = mtotodeb + VALOR
ENDCASE
@mlinha,94 SAY VALOR PICTURE '9,999,999,999.99'
ELSE
mtotcre = mtotcre + VALOR
@mlinha,111 SAY VALOR PICTURE '9,999,999,999.99'
ENDIF
mlinha = mlinha + 1
SKIP
ENDDO
IF mlinha > 55
DO CCCABP20 WITH mfolha, mdata, mlinha
ENDIF
mlinha = mlinha + 1
@mlinha,10 SAY 'TOTAL DE VENDAS A PRAZO = >'
@mlinha,94 SAY mtotvap PICTURE '9,999,999,999.99'
mlinha = mlinha + 1
@mlinha,10 SAY 'TOTAL DE VALES ....... = >'
@mlinha,94 SAY mtotvales PICTURE '9,999,999,999.99'
mlinha = mlinha + 1
@mlinha,10 SAY 'TOTAL DE RESTAURANTE = >'
@mlinha,94 SAY mtotrest PICTURE '9,999,999,999.99'
mlinha = mlinha + 1
@mlinha,10 SAY 'TOTAL DE OUTROS DEBITOS = >'
@mlinha,94 SAY mtotodeb PICTURE '9,999,999,999.99'
mlinha = mlinha + 1
@mlinha,35 SAY 'T O T A L = >'
@mlinha,94 SAY mtotdeb PICTURE '9,999,999,999.99'
@mlinha,111 SAY mtotcre PICTURE '9,999,999,999.99'
EJECT
?? CHR(27) + CHR(15)
SET DEVICE TO SCREEN
SET PRINTER TO
EJECT
SET CONSOLE OFF
SET PRINT ON
?? CHR(27) + '@'
SET PRINT OFF
SET CONSOLE ON
SET DEVICE TO SCREEN
CLOSE ALL
EJECT
CLEAR
RETURN