Clipper On Line • Ver Tópico - Lentidao ao imprimir na ecf (delphi)
Mudar para estilo Clássico
Discussão sobre outras linguagens de programação.
Postar uma resposta

Lentidao ao imprimir na ecf (delphi)

01 Mar 2010 09:03

Mocada , alguem tem alguma dica de como posso agilizar a venda com cupom de forma a ficar + rapido.
Hj faco da seguinte maneira:

append
insiro dados na tabela (que ira mostrar no dbgrid)
post

mando pra ecf

So que no mercado to achando lento,dependendo do caixa, perco itens na impressao, pq é passado muito rapido.
Eu acho que isso se da apenas no abrir cupom, que o povo fica passando venda, pq apos aberto o cupom vai normal.

Obrigado por qqer dica.

Re: Lentidao ao imprimir na ecf (delphi)

01 Mar 2010 11:16

Amiguinho,

Quando desenvolvi meu primeiro programa para supermercado, lembro de usar Clipper, FGLib e comunicação via Bemafi.exe também tive este problema.

Geralmente estava na lentidão entre passar o item e imprimir no cupom, concomitancia, se não me engano fiz alguma alteração, na época o termo TypeAhead tinha alguma coisa a ver.

Acho até que voce poderá melhorar a recepção dos dados pela impressora através de algum comando dela que permita recebe-los com maior velocidade.

Talvez o ideal fosse:

- ao passar os itens, jogá-los num arquivo temporário e no final descarregar na impressora e juntá-los ao database.
- ou, usar um arquivo temporário, sempre esvaziado, para cada novo cupom.
- desligar rotinas de movimentação do estoque durante a passagem do item.
- ou, usar matrizes para o armazenamento e depois descarregue tudo movimentando o estoque.
- ou deixar aberto um novo cupom sempre após finalizar o ultimo, ultimo recurso(Eleven Hour).

A lentidão pode ser causada pelo simples fato de voce estar usando o arquivo de itens diretamente e a filtragem inicial esteja causando a demora de abertura.

Lembro me também que na época passei a usar a SUBNTX para filtrar e deixei de usar o arquivo temporário externo, mas no seu caso voce deve reduzir as verificaçõesde abertura e impressão deixando-os mais clean(limpo) possivel..

Re: Lentidao ao imprimir na ecf (delphi)

01 Mar 2010 12:23

Obrigado pelas dica Rochinha, vou comecar a desabilitar o esquema de baixa Estoque apos passar o item.

valeu

Re: Lentidao ao imprimir na ecf (delphi)

01 Mar 2010 13:46

Mas o que vc acha + rapido , usar tabela temporatia(clientdataset) ou matriz ?

Hj uso tabela tmp.

Re: Lentidao ao imprimir na ecf (delphi)

01 Mar 2010 13:51

Caso use Matriz, como se declara uma matriz para armazena
posicao,qtde,codproduto ?

Re: Lentidao ao imprimir na ecf (delphi)

01 Mar 2010 21:57

Amiguinho,

Faça assim:
Código:
...
FUNCAO PDV()
   LOCAL aCupomItens
   ...
   do while .not. eof()
        // Verifica o leitor de codigo de barras
        ...
        // Seleciona estoque e pega dados do item
        ...
        // Adiciona itens na matriz
        AADD( aCupomItens, { nCodigo, cDescricao, nQuantidade, nValor, nSubTotal }
        ...
        // Imprime item no cupom
   enddo
   // Repassa os itens no estoque
   for i = 1 to len( aCupomItens )
             // Adiciona no arquivo de itens principal
             dbSelectArea( itens )
             dbAppend()
             replace itens->CODIGO with aCupomItens[ i ][ 1 ] // nCodigo
             replace itens->DESCRICAO with aCupomItens[ i ][ 2 ] // cDescricao
             replace itens->QUANTIDADE with aCupomItens[ i ][ 3 ] // nQuantidade
             replace itens->VALOR with aCupomItens[ i ][ 4 ] // nValor
             replace itens->SUBTOTAL with aCupomItens[ i ][ 5 ] // nSubTotal
             // Repassa o estoque
             dbSelectArea( estoque )
             dbSeek( aCupomItens[ i ][ 1 ] )
             if found()
                dbRLock()
                replace estoque->QUANTIDADE with estoque->QUANTIDADE - aCupomItens[ i ][ 3 ]
             endif
   next

Re: Lentidao ao imprimir na ecf (delphi)

01 Mar 2010 22:15

obrigado pela atencao rochina, mas é em Delphi.

valeu
Postar uma resposta