Dicas VFP
Para quem programa em VFP não pode deixar de visitar o blog do Alceu.
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.
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
