Atualizando

Posted in webCash. Tags: , . Nenhum Comentário »

Utilizando

Posted in webCash. Tags: , . Nenhum Comentário »

Instalando

Posted in webCash. Tags: , . Nenhum Comentário »

webCash – v2.04a

  • Correção na gravação do usuário
  • Permitir filtros por planos, terceiros e datas nas telas de despesas e receitas
  • Melhorar listagem de planejamentos da tela inicial para que itens analíticos possam listar faturas que o compõem

webCash v2.04a [zip]

Posted in webCash. Tags: . Nenhum Comentário »

webCash – v2.03c

  • Primeiro release oficial liberado.
  • Criada a rotina de atualização automatizada para base de dados

webCash v2.03c [msi]

Posted in webCash. Tags: . Nenhum Comentário »

The Controls Collection Cannot be Modified Because the Control Contains Code Blocks

Texto extraído do pélessê.

Usando MasterPages no AspNet voce pode cair nesse problema ao usar CodeBlocks no Header. Vejamos o seguinte cenário:

<head runat=”server” >
<title>webCash</title>
<link rel=”stylesheet” type=”text/css” href=”/App_Themes/Default/Master.css” />
<link rel=”shortcut icon” href=”/favicon.ico”/>
</head>

Ficamos limitados quanto ao local onde se encontrará o favicon dependendo de como a aplicação fora hospedada. O que queremos é que o ícone seja lido da raiz da aplicação indiferente de como foi feita a hospedagem. Normalmente resolveríamos isso com Code Blocks, como abaixo:

<head runat=”server” >
<title>webCash</title>
<link rel=”stylesheet” type=”text/css” href=”/App_Themes/Default/Master.css” />
<link rel=”shortcut icon” href=”<%= ResolveUrl(“~/favicon.ico”)%> “/>
</head>

Porém essa sintaxe causa o erro citado no título desse post. O que podemos fazer ? Utilizar DataBind no lugar dos Code Blocks. No Head, a sintaxe é quase igual, mudando apenas o sinal = para #, como abaixo:

<head runat=”server” >
<title>webCash</title>
<link rel=”stylesheet” type=”text/css” href=”/App_Themes/Default/Master.css” />
<link rel=”shortcut icon” href=”<%# ResolveUrl(“~/favicon.ico”)%> “/>
</head>

E, no Page_Load do MasterPage, dispararemos o devido bind:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Not Me.IsPostBack Then
Page.Header.DataBind()
End If
End Sub

Em linhas gerais, é isso.
Agarceço ao seguinte post por essa ideia:

Posted in Artigos. Tags: . Nenhum Comentário »

Async em AspNet com AJAX

Texto extraído do pélessê.

Hoje duelei por um tempo com as chamadas assíncronas numa página ASP e por isso, vou postar aqui a solução para poder me lembrar caso precise.

Quadro muito comum: Criei uma classe que era instanciada e tinha um método chamado. Após isso, internamente, os processos eram executados em diversas threads para agilizar e, ao concluir tudo, um evento disparado. Se fosse windows application seria “mamão com açucar”, mas numa web aplication… temos o fator timeout da mesma.

A primeira coisa a se fazer é acrescentar na declaração da página a propriedade Async, isso definirá que a mesma pode tratar as chamadas assíncronas. Quanto ao timeout, o default é 90 segundos… se voce, como eu, tiver um processo realmente demorado e precisar aumentar isso, fazemos através da propriedade AsyncTimeout, lembrando que a unidade é segundos.

<%@ Page Async=”true” AsyncTimeout=”300″ %>

Mas isso não basta, se sua aplicação usar AJAX… Nesse caso entra o fator ScriptManager que também possui uma propriedade para indicar o timeout.

<asp:ScriptManager runat=”server” AsyncPostBackTimeout=”300″ />

E agora vai que é uma beleza.

Posted in Artigos. Tags: , . Nenhum Comentário »

AutoCompleteExtender não dispara eventos, não responde

Pela segunda vez ao começar um novo projeto AspNet usando o extender AutoCompleteExtender para auto-sugerir valores num dropdown conforme se digita num textbox, eu tenho dificuldades em fazer o recurso funcionar.

Faço todas as chamadas, crio o webService, testo o webService, tudo OK mas,.. simplesmente na página ao digitar nada é sugerido.

Após apanhar muiiiiito, comparando minhas outras aplicações (onde o recurso está funcionando) com a nova, identifiquei sutis diferenças nas declarações dos webMethods e dos webServices e… sim eram esses os problemas. Para que eu não volte a esquecer, vou documentar aqui

Declaração do webService:

<WebService(Namespace:=“http://tempuri.org/”)> _ <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ <Script.Services.ScriptService()> _
Public Class
AutoComplete
Inherits
System.Web.Services.WebService

Declaração do webMethod (declaração é totalmente case-sensitive):

<WebMethod()> _
<Script.Services.ScriptMethod()> _

Public Function
GetTerceiros( _
ByVal
prefixText As String, _
ByVal
count As Integer) As String()

Chamada no AspX:

<ajaxToolkit:AutoCompleteExtender
ID
=”TerceiroAutoComplete”
runat
=”server”
TargetControlID
=”TerceiroTextbox”
ServicePath
=”~/Common/AutoComplete.asmx”
ServiceMethod
=”GetTerceiros”
MinimumPrefixLength
=”1″
CompletionInterval
=”1000″
CompletionSetCount
=”20″
EnableCaching
=”true”
Enabled
=”true”
/>

Ah sim, mais uma coisa, no AspX os objetos devem estar dentro de um UpdatePanel, naturalmente.

Posted in Artigos. Tags: , . Nenhum Comentário »

Como provocar um erro SQL Server

“Como provocar um erro SQL Server ?” Essa foi a pergunta do meu amigo. Achei válido catalogar aqui pois além de não precisar me lembrar, pode ser uma dúvida de outros. Eis a resposta:

– DENTRO DE UMA TRIGGER POR EXEMPLO
if AlgumCoisa = SeiLaQue begin
raiserror 30005 ‘Faz direito que funciona.’
end

– OU ALGO ASSIM NUMA PROCEDURE
if AlgumCoisa = SeiLaQue begin
RAISERROR (‘Faz direito que funciona.’, 16, 1)
end

Posted in Artigos. Tags: . Nenhum Comentário »

Definindo nova localização para os diretórios de Sistema

Se voce, como eu, cotuma particionar seu HD em pelo menos dois volumes deixando os programas instalados num drive C: com o mínimo possível de espaço e o resto num drive D: para os dados, voce já teve a necessidade de a pasta ‘Meus Documentos’ ser localizada no drive D: também para facilitar as coisas.
Bem, para alguma dessas pastas isso é bastante intuitivo, basta clicar com o botão direito na pasta e escolher a localização desejada. Porém eu vou além, eu tenho a necessidade de ter plena certeza de que meu drive C: possa ser formatado a qualquer momento sem me preocupar com dado algum que possa nele existir. E isso significa não apenas a pasta Meus Documentos, mas também Meus Favoritos por exemplo, entre outras. Fora Minhas Músicas, Vídeos, Imagens que no Windows Vista não mais ficam dentro de Meus Documentos.

Bom, no WindowsXP a chave de registro que possui essas configurações é essa logo abaixo, bastando apenas preencher seus valores com as localizações desejadas.
HKCU\ Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\ User Shell Folders\ Favorites

Já no WindowsVista, a chave é essa abaixo. Reparem que no Vista podemos também definir a localização das pasta Public muito útil para compartilhamentos pois o próprio sistema operacional disponibiliza atalhos para ela de dentro dos diversos programas.
HKLM\ Software\ Microsoft\ Windows NT\ CurrentVersion\ ProfileList

Posted in Artigos. Tags: . Nenhum Comentário »