Random header image... Refresh for more!

Dicas VFP

Para quem programa em VFP não pode deixar de visitar o blog do Alceu.

http://alceu11.blogspot.com/

Tem muitas dicas e apostilas legais. viagra

novembro 28, 2010   No Comments

Tratamento de erros com VFP

Olá pessoal,

veremos hoje como tratar os erros no VFP e como passar ao usuário uma mensagem em português para melhor entendimento.

Segue o script para buscar a descrição do erro e passar uma mensagem para o usuário.

Use o tratamento de erros do VFP como visto abaixo:

Coloque isto no formulário.

Begin transaction && Inicia transação, a partir daqui até o fim da transação todas as tabelas envolvidas serão bloqueadas para uso exclusivo aqui
Try && Inicio do tratamento de erro, se ocorrer um erro entre o try e o catch a execução continuará logo após o catch
Select Id, descricao From produto Order By id Into Cursor cProduto Nofilter
End transaction && Se tudo correr bem finaliza a transação e libera a tabela
Catch To oErr
Rollback && Se ocorrer algum erro, desfaz tudo, finaliza a transação e libera a tabela
Do TrataErro With oErr, Thisform.Caption && Chama o script que localiza na tabela de erros a mensagem correta e exibe para o usuário
Endtry && Finaliza o tratamento de erros

Script que localiza na tabela de erros a mensagem correta e exibe para o usuário

Este script deve estar em um prg de nome trataerro.prg

Lparameters oErr as Object && Parâmetro passado para o script
Do Case
Case oErr.ErrorNo = 1539 &&Trigger Failed
Messagebox(‘Não foi possível excluir o registro.’ + Chr(13);
+ ‘Existe pelo menos um relacionamento associado.’, 16, ‘Impossível excluir!’)
Return
Otherwise
Try
Select msg From erros Where nro = oErr.ErrorNo Into Cursor cErros
Messagebox(‘Código da Falha: ‘ + Alltrim(Str(oErr.ErrorNo));
+ Chr(13) + ‘Descrição: ‘ + Strtran(Alltrim(cErros.msg), ‘”nome”‘, ‘”‘ + Alltrim(oErr.Details) +  ‘”‘), 16, ‘Houve uma falha no procedimento!’)
Catch To oErrErr
Messagebox(‘Não foi possível localizar a origem do problema,’ + Chr(13);
+ ‘por favor entre em contato com o suporte.’)
Endtry
Endcase

Segue a tabela de erros em português.

http://www.cybersis.com.br/down/vfp/erros.prg

Segue também o script que localiza na tabela de erros a mensagem correta e exibe para o usuário

http://www.cybersis.com.br/down/vfp/trataerro.prg

Até +

outubro 24, 2010   No Comments

Arquivo magnético e cálculo de custo médio

Rapaz,
depois de 18 dias de ralação em Caxias do Sul-RS, de 9 a 14 horas por dia de trabalho para automatizar um shopping com 500 pontos estou de volta para atualizar o blog.
Segue manual para geração de arquivo magnético.
http://www.cybersis.com.br/down/vfp/ArquivoMagnetico.pdf

Segue também uma fórmula básica para cálculo de custo médio.

http://www.cybersis.com.br/down/vfp/CalculoCustoMedio.xls

Este foi um post de retorno às atividades depois de 19 dias sem novidades, contiaremos a postar numa média a cada 3 dias.

Até a próxima.

outubro 19, 2010   No Comments

Ler o número de série do disco rígido – VFP

Olá pessoal,
segue uma função em VFP para ler o número de série do disco rígido, lembrando que esta função lê o número de série do volume do disco e não o número físico do disco.

Public hdSerial
hdSerial = Createobject(“_hdSerial”)
?hdSerial.GetSerial(Sys(5) + “\”)

Define Class _hdSerial As Custom
Function Init
#Define MAX_FILENAME_LEN 256
Declare Integer GetVolumeInformation In Win32API;
string lpRootPathName,;
string lpVolumeNameBuffer,;
integer nVolumeNameSize,;
integer @lpVolumeSerialNumber,;
integer @lpMaximumComponentLength,;
integer @lpFileSystemFlags,;
string lpFileSystemNameBuffer ,;
integer nFileSystemNameSize
Endfunc
Function GetSerial(unit As String)
Local ser,i,j,s,s2
Store 0 To ser,i,j
Store Space(128) To s,s2
x = GetVolumeInformation(unit, s, MAX_FILENAME_LEN, @ser, @i, @j, s2, MAX_FILENAME_LEN)
ser = Alltrim(Str(ser, 25))
Return ser
Endfunc
Enddefine

Não esqueça de deixar seu comentário abaixo ! Ele é muito importante para todos nós !



setembro 30, 2010   No Comments

Nova sessão download no weblog Cybersis

Criamos uma nova sessão para downloads que será atualizada com frequência, sempre disponibilizando conteúdo relevante para você.

Nossa idéia com essa sessão é reunir todo o material possível que seja relacionado ao tema do site, tudo vem da própria internet, o que faremos para você é juntar tudo aqui.

Começamos disponibilizando um excelente eBook do Jeferson Campano com diversas informações e dicas sobre negócios online.

Acesse aqui.

setembro 23, 2010   No Comments

Organiza forms em cascata – VFP

************************************************************
*! Organiza os forms em cascata
************************************************************
Function Cascata
Local lnHorizOff, lnVertOff, lnNewWidth, lnNewHeight
Local lnNewLeft, lnNewTop, lnFmIdx

lnHorizOff = Sysmetric(9) && horizontal offset
lnVertOff = Sysmetric(9) && vertical offset

lnNewWidth = 0.75 * _Screen.Width && new form width
lnNewHeight = 0.75 * _Screen.Height && new form height

lnNewLeft = 0
lnNewTop = 0

For lnFmIdx = _Screen.FormCount To 1 Step -1
With _Screen.Forms(lnFmIdx)
If Type(“.BorderStyle”)<>”U” AND .BorderStyle = 3
* Form tem borda redimensionável, ajusta a dimensão
* subject to its min/max height and width
.Width = IIF(.MinWidth = -1,lnNewWidth,Max(lnNewWidth,.MinWidth))
.Width = IIF(.MaxWidth = -1,lnNewWidth,Min(lnNewWidth,.MaxWidth))
.Height = IIF(.MinHeight = -1,lnNewHeight,Max(lnNewHeight,.MinHeight))
.Height = IIF(.MaxHeight = -1,lnNewHeight,Min(lnnewHeight,.MaxHeight))
EndIf

* move o form para sua nova posição
If (lnNewTop + .Height < _Screen.Height) AND (lnNewLeft + .Width < _Screen.Width)
* o form não saíra dos limites da janela principal,
* so go ahead and move it
.Move(lnNewLeft,lnNewTop)
* calculate the position of the next form
lnNewLeft = lnNewLeft + lnHorizOff
lnNewTop = lnNewTop + lnVertOff
Else
* form does overflow, so go back to
* top left corner
.Move(0,0)
lnNewLeft = lnHorizOff
lnNewTop = lnVertOff + 40
EndIf
EndWith
EndFor
EndFunc

Clique aqui para baixar arquivo



setembro 19, 2010   No Comments

14 dicas para quem tem um negócio em casa

Segue o link para 14 dicas da revista PEGN para quem tem ou quer ter um negócio a partir de casa.

As dicas são direcionadas para um negócio físico, mas podem ser aplicadas também para quem quer ter um negócio online.

Se você está pensando em ter um negócio a partir de casa, online ou não, é muito importante que tenha informação relevante ao seu negócio, disciplina e dedicação.

Segue o link:  http://revistapegn.globo.com

A mesma matéria foi publicada no Sebrae: http://www.boletimdoempreendedor.com.br

Não esqueça de deixar seu comentário abaixo ! Ele é muito importante para todos nós !

setembro 14, 2010   No Comments

Script de conexão VFP x MySQL

Segue um script muito bom para conexão de VFP com MySQL, você pode conectar em qualquer lugar que tenha um ip como é a característica do MySQL.

Para executar o script use a seguinte linha de comando no VFP:

Do mysql With “Hostname”, “Database”, “Username”, “Password”, “Table”

Segue o link para download do script.

http://www.cybersis.com.br/down/vfp/mysql.prg

Você precisa instalar o MyODBC para conectar-se com o MySQL.

http://www.cybersis.com.br/tofu/MyODBC-3.51.11-2-win.zip



setembro 13, 2010   No Comments

Fecha todos os forms abertos em VFP

Pessoal, segue uma pequena função para fechar todos os formulários abertos na screen do Fox.
Muito simples.

************************************************************
*! Fecha todos os forms abertos
************************************************************
Function CloseForms
Local nForm As Integer
For nForm = _Screen.FormCount To 1 Step -1
_Screen.Forms(nForm).Release
Endfor
Endfunc viagra

setembro 6, 2010   No Comments

Banda Extra Larga – BEL da Copel

A Copel Telecom, companhia de telecomunicações de sociedade anônima cujo capital pertence 100% à Copel – Companhia Paranaense de Energia, lançará em 2011 um serviço de acesso a internet de alta velocidade chegando a 100Mbps.

A princípio este serviço será disponibilizado para alguns bairros de Curitiba e somente para empresas, se estendendo posteriormente para pessoas físicas e empresas de todo o estado.

A companhia não divulgou valores deste serviço, uma tabela de preços será divulgada numa data próxima ao lançamento.

Leia a notícia na íntegra clicando aqui.



setembro 2, 2010   No Comments