terça-feira, 29 de junho de 2010

DACTE EM VB.NET e CRYSTAL REPORTS

Salve, salve, turma dos bytes!!

Bem, pessoal, para os que desejam curtir algumas fotos de meu
passeio em Fortaleza, ai vai o link do meu orkut:

http://www.orkut.com.br/Main#Profile?rl=mp&uid=12247594032911620490

E sim, eu sou moreno!

No mais, vamos tratar de desenvolvimento!!

Estou cumprindo o prometido e postando as informações referentes ao DACTE para salvar talvez a vida de alguns desenvoldores em empresas de transporte.

Vamos ao que interessa:



Nesse meu pequeno exemplo - que está funcional, acreditem! - simplesmente criei o DACTE em Crystal Reports e um table Adapter para associar ao mesmo.










O Table Adapter contêm todos os campos informado no Manual do CT-e, versão 1.03.

Separei os campos em tags criando uma notação com o uso do " _ " como separador.
Assim, os campos da tag toma04 são identificados desse modo:

toma04_toma
toma04_CNPJ

...

O importante de se ter todos os campos presentes é a possível necessidade de codificação
extra caso ocorra no futuro a criação de um CTe com campos a mais a informar, e
conforme minhas experiências com a DANFE isso com certeza sempre irá acontecer:



Note na figura ao lado como estes dados foram dispostos de modo coerente. O tableAdapter deve fazer parte de seu projeto a fim de que o relatório em Crystal Reports do DACTE possa ser linkado com sucesso.








Para desenvolver o Dacte em VB.NET 2008 você precisará criar um Table Adapter para que o Crystal Reportes possa ler os dados do CT-e que será fornecido para a impressão do DACTe.

Os dados do arquivo XML do CT-e fornecidos deverão ser lidos e repassados para o Table
Adapter, que será associado via código ao relatório em Crystal Reports - e isso você
deverá criar arrastando e soltando conforme mostrado na figura abaixo.




Veja que os campos do TableAdapater criado se encontram no painel à esquerda. Basta clicar sobre o campo que se deseja e arrastar até o relatório em Crystal para a posição deseja, associando assim cada campo criado com o seu respectivo local de impressão no DACTE.





Eis aqui os quitutes do post de hoje:

http://www.4shared.com/file/GGE9Zpf4/Dacte_free.html


Aproveitem, pois o link estará disponível por poucos dias.

No pacote a baixar vocês encontram o Dacte.rpt e um dsXML1, que na verdade é um Table Adapter com todos os dados do CT-e para uso em conjunto com o relatório em Crystal Reports.


Vejam que este é o mesmo caminho que seguimos para o desenvolvimento da DANFE em VB.NET 2008.

Este fontes também estarão à disposição para aquisição, nos mesmos termos da DANFE a todos os interessados.



Boa sorte e bom projeto a todos!!

quarta-feira, 9 de junho de 2010

DESCANSO DE TELA EM VB.NET

Vamos criar um descanso de tela em Vb.NEt com somente um formulário!

1. Inicie um novo projeto no VB.NET e dê o nome a ele de Descanso

2. No Form1 (se não houver um, insira um Add New Form ao projeto), abra o Solution Explorer clique no View Designer.

3. Defina as seguintes propriedades no Form1:

StartPosition: Center

Size - Width: 1230; Height : 647

WindowState: Maximized

FormBorderStyle: None

KeyPreview: True


4. Acrescente ao formulário um componente Label e um componente Timer, e defina as propriedades do mesmo
como segue:

Componente Label

TextAlign : MiddleCenter

Size - Width: 898 ; Height: 578

Font: Tahoma; Size: 45; Bold: True; Italic: True


Componente Timer
Interval: 1500
Enabled: True

5. Agora, vamos definir as propriedades de execução de nosso descanso de tela. No Solution Explorer, clique no botão View Code.

No início do Formulário, declare os seguintes imports:

Imports System.Random
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Drawing.Text

A seguir, declare estas variáveis dentro da classe Form1:

Public Class Form1

Public Numero As Integer
Public Valor As Random = New Random
Public ultimaPosicaoDoMouse As New Point(-1, -1)

6. Defina as propriedades abaixo, como seguem:

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress


'Qualquer tecla pressionada encerra o aplicativo
If Asc(e.KeyChar) Then

Windows.Forms.Cursor.Show()

End

End If

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


Windows.Forms.Cursor.Hide()

''LbTexto2.Font = New Font("Tahoma", 50, FontStyle.Bold)

'LbTexto2.Text = "Esperei com paciência no SENHOR. Salmo 40:1"
'LbTexto2.ForeColor = Color.Black

EscolheVersiculo()

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

EscolheVersiculo()


End Sub


7. A função EscolheVersiculo é dada abaixo. A mesma define um número entre 0 e 7 e adiciona o texto a tela. A função escolheCor define uma cor de fundo e do texto de modo aleatório.

Private Sub EscolheVersiculo()

Dim Stexto As String = ""

'Pegar próximo número aleatório sendo gerado entre 0 e 21
Numero = Valor.Next(7)

EscolherCor()

'Numero = 10

If Numero = 0 Then


LbTexto2.Text = ""
LbTexto2.Text = " Bem-aventurados os que têm fome e sede de justiça, porque eles serão fartos" + vbCrLf + vbCrLf + " Mateus 5:6"

End If

If Numero = 1 Then

LbTexto2.Text = ""
LbTexto2.Text = "Alegrei-em quando me disseram: Vamos à casa do SENHOR" + vbCrLf + vbCrLf + " Salmo 122:1"

End If

If Numero = 3 Then

LbTexto2.Text = ""
LbTexto2.Text = "Ponha sua esperança no SENHOR, ó Israel, desde agora e para sempre " + vbCrLf + vbCrLf + "Salmo 131:3"

End If

If Numero = 4 Then

LbTexto2.Text = ""
LbTexto2.Text = "A tua palavra é lâmpada que ilumina meus passos e luz que clareia o meu caminho " + vbCrLf + vbCrLf + " Salmo 119:105"

End If

If Numero = 5 Then

LbTexto2.Text = ""
LbTexto2.Text = "Chega até os céus, até as nuvens, a Tua fidelidade " + vbCrLf + vbCrLf + " Salmo 36:5"


End If

If Numero = 6 Then

LbTexto2.Text = ""
LbTexto2.Text = "Jamais retirarei dele a Minha bondade, nem desmentirei a Minha fidelidade " + vbCrLf + vbCrLf + "Salmo 89:33"

End If

If Numero = 7 Then

LbTexto2.Text = ""
LbTexto2.Text = "Grande é a Tua fidelidade " + vbCrLf + vbCrLf + "Lamentações 2:23"

End If

End Sub

8. A função EscolheCor também trabalha de modo aleatório. Abaixo, inclui três opções de cores possíveis, mas você pode aumentar o número de cores e incrementar esta função

Private Sub EscolherCor()

'Pegar próximo número aleatório sendo gerado entre 0 e 21
Numero = Valor.Next(3)

If Numero = 0 Then
Me.BackColor = Color.Black
LbTexto2.ForeColor = Color.White
End If

If Numero = 1 Then
Me.BackColor = Color.Black
LbTexto2.ForeColor = Color.White
End If

If Numero = 2 Then
Me.BackColor = Color.White
LbTexto2.ForeColor = Color.Black
End If

If Numero = 3 Then
Me.BackColor = Color.Blue
LbTexto2.ForeColor = Color.White
End If

End Sub




9. Finalmente, as funções abaixo realizam o controle do teclado, em conjunto com a função KeyPreview. Se uma tecla for pressionada, o mouse movido em qualquer sentido, o descanso de tela é encerrado automaticamente, retornando para a tela anterior.



Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick

Windows.Forms.Cursor.Show()
End

End Sub

Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
' ----- ao clicar pára o programa.
Windows.Forms.Cursor.Show()
End

End Sub

Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove

' ----- Ao mover o mouse -> para o programa
If (ultimaPosicaoDoMouse <> New Point(-1, -1)) Then
' ----- Verifica se o mouse moveu-se
If (ultimaPosicaoDoMouse <> New Point(e.X, e.Y)) Then
Windows.Forms.Cursor.Show()
End
End If
End If

'----- Grava a posicao atual
ultimaPosicaoDoMouse = New Point(e.X, e.Y)

End Sub



Finalmente, Você pode compilar este pequeno projeto e gerar o executável do mesmo. Basta clicar na opção Build no menu do Visual Studio 2008 e em seguida em Build Descanso. Após a compilação, vá até a pasta do projeto. Dentro da pasta Bin haverá a pasta Release e o executável da aplicação estará dentro desta última pasta.

Se você Renomear este executável gerado para Descanso.scr poderá usar o mesmo como um descanso de tela do Windows!

Basta copiar o arquivo renomeado para a pasta C:\Windows\System32. Em seguida volte para a área do Desktop, clique no botão direito do mouse e Selecione Propriedades no menu que Surge. A tela de Propriedades do Desktop será aberta. Vá até a aba ScreenSaver.

O descanso.scr estará na lista de screensavers válidos do sistema operacional.


Bom divertimento a todos e até a próxima!!

UM APLICATIVO PARA LEITURA DEVOCIONAL ANUAL DA BIBLIA EM ANDROID

Olá, pessoal!  Este novo projeto foi criado em Visual Studio 2019 em C#.Net com o Xamarin. Já está disponível no Google Play para vocês baix...