Página 1 de 1

RESOLVIDO-- Recuperar Constante Reiniciar a Aplicação

Enviado: 14 Jul 2008 17:31
por Manuel Luis Modernel
Boa tarde amigos,

Tenho uma aplicação onde defino uma Constante conforme o tipo de Boleto Bancário (são varios) que quero Imprimir (o tipo e suas configurações numéricas de pocicionamento de cada campo estão guardadas num BD).
São aqueles boletos pré impressos que são preenchidos parcialmente pelo programa e possuem pequenas diferenças de Banco para Banco.
Necessito que ao iniciar a aplicação o programa reconheça a última configuração (Codigo dáquela configuração) usada antes de sair do programa para assim localiza-la no BD automáticamente.

Isto seria guardado onde? : arquivo.ini ? ou na memoria RAM? e se for como crio e chamo ela no inicio da aplicação para pegar esta constante guardada?

Obrigado !

Enviado: 14 Jul 2008 17:53
por Maligno
Lembrar a configuração previamente utilizada sugere o uso de arquivos MEM. Veja no NG a descrição e exemplos dos comandos SAVE e RESTORE. Acho que cai como uma luva pra você.
Várias outras formas poderiam ser utilizadas, mas estas implicam no uso de um volume maior de código. Você poderia usar DBF ou mesmo um arquivo texto qualquer. É bem mais trabalhoso. Mas a vantagem é que se pode salvar as características de vários bancos e, na aplicação, ao selecionar o banco desejado, as configurações são recuperadas e nada mais precisaria ser alterado.

Re: Recuperar uma Constante ao reiniciar a Aplicação

Enviado: 14 Jul 2008 20:12
por Manuel Luis Modernel
Mestre Maligno Obrigado,

Talvez eu não tenha conseguido formular corretamente o problema,
Vejamos: Já tenho um Banco de Dados onde estão todas as pocisões (x, y) de cada campo. Cada configuração ocupa um registro no BD e tem seu código único, pelo qual posso chamar a qualquer momento os valores de cada configuração registrada.

Via programa já posso pedir ao usuário escolher a configuração que ele necessitar ENQUANTO O PROGRAMA ESTA EM FUNCIONAMENTO, é so digitar o código correspondente e recuperar ela do BD.

Mas eu necessito que: Supondo fosse a configuração de número "3" a ÙLTIMA a ser usada ANTES DE FECHAR O PROGRAMA, eu queria que fosse esta a escolhida (automaticamente) para INICIAR o programa na próxima ABERTURA sem intervenção do usuario. Dai eu teria que "guardar e não perder" este número "3" mesmo que FECHE o programa (recupera-lo ao iniciar).

Re: Recuperar uma Constante ao reiniciar a Aplicação

Enviado: 14 Jul 2008 20:44
por Pablo César
Hola Manuel,

Se eu entendí: Você quer que ao finalizar uma impressão guarde o ultimo registro que foi impresso.

Então eu diria que a indicação do Maligno está correta. Ele sugeriui você guardar essa informação em arquivo .MEM que serve para gravar variáveis de memória em um arquivo. Esse valores assemelham-se com as variáveis do tipo CONSTANTES, isto é, guarda apena sum valor (claro que neste caso pode ser re-atribuido o valor a cada impressão e GRAVAR no arquivo .MEM. Lembrando que o MEM (pelo comando RESTORE FROM e SAVE TO X ALL LIKE) à diferença de um DBF que grava N quantidade de registros o MEM grava apenas UM. Imagine a estrutura de um DBF como um CUBO e o MEM como um tabuleiro de XADREZ.

Também teria outra solução, para que na linha de comando você possa passar um ou mais parâmetros, nos quais serviriam para designar apartir de N posição que comece a imprimir. Também é válido.

Re: Recuperar uma Constante ao reiniciar a Aplicação

Enviado: 14 Jul 2008 21:05
por Manuel Luis Modernel
Pablo, para tentar simplificar imagenemos os seguinte:

Estou com o programa aberto e funcionando, agora digito "um numero qualquer e atribuo ele a uma Constante via codigo" ai fecho o programa SEM SALVA-LO num Banco de Dados.

Abro o programa novamente e quero saber qual foi esse número digitado antes de fechar o programa ou seja qual o valor dessa Constante (e não se trata de mágica, não hihihi).

Re: Recuperar uma Constante ao reiniciar a Aplicação

Enviado: 14 Jul 2008 21:12
por alaminojunior
Você quer guardar apenas o código da ultima configuração de boleto. Por exemplo, o ultimo boleto impresso foi do Banco do Brasil. Sendo assim, poderia ser até num arquivo texto mesmo, ou como foi sugerido pelos colegas, arquivos de memória.
Veja um exemplo que uso:

Código: Selecionar todos

if file("Licenca.dat") // Arquivo de Memória
   restore from Licenca.dat additive
   usuario:= crypt(usuario,"kjhgr879afkjwbbjk")
else
   usuario = space(25)
   usuddd = space(3)
   usutel = space(9)
   usu_cgc = space(14)
   usu_ins = space(15)
   usu_end = space(50)
   usu_raz = space(50)
   usu_key = date()+30
   usu_val = space(6)
endif
set colo to "w+/b"
@ 12,2 say "Fantasia.: "get usuario pict "@!"
@ 13,2 say "Telefone.: "get usuddd pict "@ 999"
@ 13,18 get usutel pict "@ 9999-9999"
@ 14,2 say "CGC......: "get usu_cgc
@ 15,2 say "Insc.Est.: "get usu_ins
@ 16,2 say "Endere‡o.: "get usu_end
@ 17,2 say "Razao....: "get usu_raz
@ 18,2 say "Expira em: "get usu_key
@ 19,2 say "Mensal...: "get usu_val pict "999,99"
set curs on
read
set curs off
usuario:= crypt(usuario,"kjhgr879afkjwbbjk")
save to Licenca.dat all like usu????

Re: Recuperar uma Constante ao reiniciar a Aplicação

Enviado: 14 Jul 2008 21:24
por Manuel Luis Modernel
Amigo Alamino (grande Aluminio hihi),

Acho que é isto mesmo, pergunto agora como crio esse arquivo.dat

Recuperar uma Constante ao reiniciar a Aplicação

Enviado: 14 Jul 2008 21:47
por Pablo César
Manuel, ao final de contas o quê foi que o Maligno e eu tentamos te dizer ? Por acaso não seria o mesmo que o colega Alaminio "traduziu" exemplificando-o em código ? Com a única diferença que está gravado com a extensão .DAT mas a estrutura refere-se a um arquivo .MEM (o mesmo que nós tentamos te dizer) e não é mágica não... hihihi

Mas enfim, ao menos espero que tenha resolvido seu problema. desculpe por não ter respondido, eu cheguei tarde... senão iria exemplificar assim como o fez o nobre colega.

Re: Recuperar uma Constante ao reiniciar a Aplicação

Enviado: 14 Jul 2008 22:15
por rochinha
Amiguinho

Use:

Código: Selecionar todos

SAVE TO arquivo.dat
ou

Código: Selecionar todos

SAVE TO arquivo.mlm
A extensão não influira no conteudo do arquivo visto que o mesmo é um arquivo .MEM.

Eu uso em meus sistemas gravação em arquivos .INI e Arrays.

Uso os arrays para salvar conjunto de palavras que são usadas em meus COMBOS ao invés de criar tabelas/DBF com um unico campo.

No caso de arquivos .INI fica facil a manutenção por fora do sistema, mas inseguro.

A cada alteração da configuração no sistema o arquivo .INI é alterado, desta forma reflete a qualquer momento a ultima alteração.

Faço uso disto também no controle de boletos onde salvo o numero do ultimo boleto, qual tipo usado e banco.

Eu ainda uso arquivos .MEM em meu sistema onde guardo variaveis com comandos de impressora para cada impressora e no momento do uso apenas defino RESTORE FROM EPSONLX.DRV ou RESTORE FROM HPLASER.DRV.

O arquivo final em que voce ira salvar informações de configuração apenas depende do quão complexa a mesma será.

Arquivos .MEM:
variável = valor

Arquivos .DBF:
registro = campo1,...,campoN = valor1,...,valorN

Re: Recuperar uma Constante ao reiniciar a Aplicação

Enviado: 14 Jul 2008 22:18
por Manuel Luis Modernel
Amigos muitissimo obrigado, esta saida agora sim entendi e ela e vai dar certo no que eu desejo.

Como coloco no topico "Problema Resolvido" ?

Recuperar uma Constante ao reiniciar a Aplicação

Enviado: 14 Jul 2008 23:08
por Pablo César
Ok, Manuel ainda bem que entendeu e espero que consiga adaptar caso contrário estaremos aqui para auxiliar. Mas lembre poste parte do código para podermos exemplificar-mos melhor.
Manuel escreveu:Como coloco no topico "Problema Resolvido" ?
É só você edita a primeira mensagem e ir no campo "Assunto". Para isso, você precisa estar logado.

Enviado: 15 Jul 2008 00:43
por Maligno
Modernel escreveu:Abro o programa novamente e quero saber qual foi esse número digitado antes de fechar o programa ou seja qual o valor dessa Constante
Me desculpe. Realmente me confundi com sua mensagem. Mas no final das contas a minha dica não estava errada. :)

Re: RESOLVIDO-- Recuperar Constante Reiniciar a Aplicação

Enviado: 17 Jul 2008 12:57
por Manuel Luis Modernel
Bom dia Paulo Cesar e demais companheiros,

Olha neste caso não postei código algum pois o problema era na outra linguagem que eu também uso (VB6).

Dai como entendo quase tudo o que é postado em códigos do Clipper, consigo aproveitar 100% as dicas que VC´s tão gentilmente passam para todos nós, vira uma simples adaptação a linguagem (trabalho braçal).

Então porque não vai num Forum dessa Linguagem? Simples, não encontrei um grupo tão dedicado como o deste forum! hihihihi