DBF/venda
Moderador: Moderadores
DBF/venda
Programa de venda
Terminal 01 cria um TEMP.dbf na pasta dbf do servidor
Terminal 02 cria um TEMP.dbf na pasta dbf do servidor
ou seja não pode ter 02 DBF´s com mesmo nome na pasta de DBF
-:]
Terminal 01 cria um TEMP.dbf na pasta dbf do servidor
Terminal 02 cria um TEMP.dbf na pasta dbf do servidor
ou seja não pode ter 02 DBF´s com mesmo nome na pasta de DBF
-:]
C:\Xharbour\Xdev\Fw\VSX
Re: DBF/venda
Cria dbf temporario ammarando no nome do terminal e a hora de acesso
e sua um alias padrao no executavel
e sua um alias padrao no executavel
Eduardo Mendes
eduardo@conesnet.com.br
xharbour 1.0.0 + gtwvw + dbfcdx + xdev + sqlib + hwgui (printdos e msgs)
clipper 5.2e + exospace
eduardo@conesnet.com.br
xharbour 1.0.0 + gtwvw + dbfcdx + xdev + sqlib + hwgui (printdos e msgs)
clipper 5.2e + exospace
- acelconsultoria
- Usuário Nível 3

- Mensagens: 231
- Registrado em: 10 Jan 2006 17:05
- Localização: Itápolis-SP
Re: DBF/venda
Eder...
Pelo que entendi, você precisa criar um DBF temporário para cada terminal na rede. Se está usando apenas um único nome, os terminais não poderão funcionar simultaneamente.
Vou postar um exemplo simples aqui, veja se funciona contigo:
Pelo que entendi, você precisa criar um DBF temporário para cada terminal na rede. Se está usando apenas um único nome, os terminais não poderão funcionar simultaneamente.
Vou postar um exemplo simples aqui, veja se funciona contigo:
Código: Selecionar todos
Function Main()
PRIVATE ARQTMP := SPACE(8)
CriaTMP() // chama a função de criação do arquivo temporário
USE &ARQTMP
... // restante da sua rotina
Return NIL
Function CriaTMP()
Local hora := TIME()
ARQTMP := ("__" + SUBS(HORA,1,2) + SUBS(HORA,4,2) + SUBS(HORA,7,2))
@ 23,05 SAY "Msg: Gerando Temporário " + ARQTMP + ".DBF"
DECLARE ESTRU_DBF := {}
AADD( ESTRU_DBF, {"CODIGO", "N", 5, 0} )
AADD( ESTRU_DBF, {"QUANT", "N", 10, 3} )
AADD( ESTRU_DBF, {"VLR_UNIT", "N", 12, 2} )
DBCREATE( "&ARQTMP", ESTRU_DBF )
RETURN .T.
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Consultoria e Projetos
-------------------------------------------------------
Re: DBF/venda
É assim da pra fungar , acho que seria impossivel alguem criar DBF´s no mesmo segundo , mas isso tbm pode ser tratado 
vlw té++ ({) (X) :-[ (L)
vlw té++ ({) (X) :-[ (L)
C:\Xharbour\Xdev\Fw\VSX
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: DBF/venda
Para arquivos temporario eu uso a propria pasta TEMP de cada micro, abaixo exemplo:
Código: Selecionar todos
GERAFILE()
SELE ENTRADA
COPY TO (cFILE) FOR DTOS(DATA) >= DTOS(xDATA) .AND. DTOS(DATA) <= DTOS(xDATA1) VIA "DBFCDX"
USE (cFILE) alias RELATOR1 EXCL VIA "DBFCDX"
index on RELATOR1->codpro to (cFILE)
SET index to (cFILE)
SELE RELATOR1
...
...
..
OU
GERAFILE()
SET DEVICE TO PRINT
set print to (cFILE)
....
...
...
SET PRINTER TO
set device to screen
CHAMAIMP("S",cFILE+".PRN")
Function GERAFILE()
vSIS1 := GETENV("temp")
public cFILE := vSIS1+"\TEMP"+ ALLTRIM( STR( HB_RandomInt(9999) ))
RETURN cFILE
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: DBF/venda
Amiguinho
Acho até que não seria necessário criar o temporário a cada venda, ja que o mesmo residirá em uma pasta no terminal, basta entrar no arquivo e limpa-lo com um ZAP, ja que o mesmo não é compartilhado, podendo ser aberto exclusivamente e ZAPeado.
Após a colocação dos itens e caso a venda seja confirmada, faça o APPEND FROM para o arquivo de vendas oficial e coloque o numero de pedido sequencial.
Geralmente uma estrutura de vendas obedece a uma hierarquia de 1 para N, ou seja, 1 pedido para N itens, então voce terá na pasta temporária do terminal 2 .DBFs o de pedido e o de itens.
Ao confirmar a venda, repasse o campo Codigo do Pedido com um numero sequencial de controle para o arquivo de pedidos e para cada um dos itens do pedido e adicione os registros aos arquivos de pedido e itens oficiais via DO..While, variaveis, locks e replaces.
Acho até que não seria necessário criar o temporário a cada venda, ja que o mesmo residirá em uma pasta no terminal, basta entrar no arquivo e limpa-lo com um ZAP, ja que o mesmo não é compartilhado, podendo ser aberto exclusivamente e ZAPeado.
Após a colocação dos itens e caso a venda seja confirmada, faça o APPEND FROM para o arquivo de vendas oficial e coloque o numero de pedido sequencial.
Geralmente uma estrutura de vendas obedece a uma hierarquia de 1 para N, ou seja, 1 pedido para N itens, então voce terá na pasta temporária do terminal 2 .DBFs o de pedido e o de itens.
Ao confirmar a venda, repasse o campo Codigo do Pedido com um numero sequencial de controle para o arquivo de pedidos e para cada um dos itens do pedido e adicione os registros aos arquivos de pedido e itens oficiais via DO..While, variaveis, locks e replaces.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Re: DBF/venda
Eu uso assim:
Para cada terminal eu crio um dbf novinho na pasta temporaria (somente o arquivo de itens) no final da venda eu gravo o pedido com os dados do fechamento, logo apos eu leio o arq. e gravo os itens, assim eu nunca tive nenhum problema. Agora sobre a impossibilidade de usuarios abrir uma venda no mesmo segunto vc pode contar com isso amigo, eu tb achava q n poderia acontecer mas acontece.
Marcos Roberto
Para cada terminal eu crio um dbf novinho na pasta temporaria (somente o arquivo de itens) no final da venda eu gravo o pedido com os dados do fechamento, logo apos eu leio o arq. e gravo os itens, assim eu nunca tive nenhum problema. Agora sobre a impossibilidade de usuarios abrir uma venda no mesmo segunto vc pode contar com isso amigo, eu tb achava q n poderia acontecer mas acontece.
Marcos Roberto
Marcos Roberto
NetService Software
NetService Software
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: DBF/venda
Amiguinho Gurupi
Isto também ja aconteceu comigo e hoje não acontece mais pelo fato de usar uma função de autonumeração, a qual postei na sessão codigo fonte neste link.
Ela usa um .DBF de controle e grava variaveis e seus contadores que podem chegar até 999999. Cada variavel é gravada em um registro com seu contador de sequencia.
Este arquivo é aberto em um momento oportuno para pegar o codigo da sequencia, travando o registro, e liberando apos atualiza-lo.
Pode ser criado N variaveis, sem ter de programa-las no sistema, exemplo: ORCAMENTOS, PEDIDOS, CLIENTES, NOTAFISCAL, etc.
Quando precisar saber qual o proximo numero de uma sequencia basta buscar na tabela a variavel que necessita e trazer seu numero, a função se encarrega do travamento e atualização, portanto livrando da existencia de duplicidade de codigo.
Isto também ja aconteceu comigo e hoje não acontece mais pelo fato de usar uma função de autonumeração, a qual postei na sessão codigo fonte neste link.
Ela usa um .DBF de controle e grava variaveis e seus contadores que podem chegar até 999999. Cada variavel é gravada em um registro com seu contador de sequencia.
Este arquivo é aberto em um momento oportuno para pegar o codigo da sequencia, travando o registro, e liberando apos atualiza-lo.
Pode ser criado N variaveis, sem ter de programa-las no sistema, exemplo: ORCAMENTOS, PEDIDOS, CLIENTES, NOTAFISCAL, etc.
Quando precisar saber qual o proximo numero de uma sequencia basta buscar na tabela a variavel que necessita e trazer seu numero, a função se encarrega do travamento e atualização, portanto livrando da existencia de duplicidade de codigo.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
