

| com exemplos em VB |
| Componente para deixar forms em Vb semelhantes às telas do winnamp |
| Componente para colocar sua aplicação VB no Systray |
| Componente para transformar sua aplicação VB em serviço |
| Ferramentas úteis para quem usa Olap Server |
| |

![]() |
||||||||
|
|
||||||||
Há alguns dias disponibilizamos um WebService em nosso site para permitir a republicação de nossos artigos, mas não fornecemos nenhum exemplo de uso.
Pois eis aqui um exemplo de utilização deste nosso WebService. Como não podia deixar de ser, construido em ASP.NET .
Nosso WebService classifica os artigos por Assunto e SubAssunto. Assim sendo precisaremos ter na página duas combos e uma grid. Uma combo para mostrar os assuntos, outra combo para mostrar os sub-assuntos e a grid para mostrar a lista de artigos.
Teremos que adicionar na aplicação um WebReference para o arquivo WSDL do serviço de artigos. Este arquivo descreve o que o serviço possui. O caminho é http://www.bufaloinfo.com.br/servicosweb/artigos/artigos.asmx?WSDL
As duas combos estarão interligadas por código. Quando a primeira mudar, a 2a terá que mudar, quando a 2a mudar, o grid deverá ser alterado. Por isso deveremos configurar o autoPostBack para true em ambas as combos.
Quando vincularmos a primeira combo com a origem de dados precisaremos provocar o preenchimento da 2a combo. Isso porque a combo já será exibida com um item selecionado, portanto precisaremos já exibir a 2a combo com base neste item. O mesmo acontecerá com a 2a combo, que já será exibida com um item selecionado e por isso, ao vincular os dados com a combo precisaremos já exibir os Artigos relativos a estes itens.
Em relação ao WebService teremos que fazer uso de 3 métodos : ListarAssuntos, ListarSubAssuntos e ListarArtigos.
No page_load teremos que carregar a primeira combo, utilizando o método ListarAssuntos. Veja :
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
'Put user code to initialize the page here
If Not Page.IsPostBack Then
Dim ws As New Artigos.Artigos()
DDLAssuntos.DataSource = ws.ListarAssuntos().Tables("assuntos")
DDLAssuntos.DataTextField = "Assunto"
DDLAssuntos.DataValueField = "CodAssunto"
DDLAssuntos.DataBind()
DDLAssuntos.SelectedIndex = 0
CarregarSubAssuntos()
End If
End Sub
O método listarAssuntos devolve um dataSet. Deste DataSet obtemos a tabela assuntos e a vinculamos com a 1a combo. Em seguida indicamos o item selecionado (0) e chamamos a CarregarSubAssuntos, que irá carregar os sub-assuntos ligados a este item selecionado.
Veja como fica a CarregarSubAssuntos :
Private Sub CarregarSubAssuntos()
Dim ws As New Artigos.Artigos()
DDLSubAssuntos.DataSource = ws.ListarSubAssuntos(DDLAssuntos.SelectedItem.Value).Tables("SubAssuntos")
DDLSubAssuntos.DataTextField = "SubAssunto"
DDLSubAssuntos.DataValueField = "CodSubAssunto"
DDLSubAssuntos.DataBind()
DDLSubAssuntos.SelectedIndex = 0
CarregarArtigos()
End Sub
O método ListarSubAssuntos recebe como parâmetro o código do assunto. Os subAssuntos listados serão aqueles relacionados ao assunto em questão (selecionado na combo). Mais uma vez vinculamos a tabela com a combo, definimos o item selecionado e chamamos a próxima sub, CarregarArtigos.
Veja como fica o CarregarArtigos :
Private Sub CarregarArtigos()
Dim ws As New Artigos.Artigos()
Dim Codassunto, codsubassunto As Integer
Codassunto = DDLAssuntos.SelectedItem.Value
codsubassunto = DDLSubAssuntos.SelectedItem.Value
DGArtigos.DataSource = ws.ListarArtigos(Codassunto, codsubassunto)
DGArtigos.DataBind()
End Sub
O método ListarArtigos recebe 2 parâmetros, código do assunto
e código do subassunto. Os artigos que serão devolvidos são
aqueles que pertencerem a esses respectivos assunto e sub-assunto.
Desta vez para exibirmos os artigos criamos o vinculo com uma grid ao invés de usarmos uma combo. O que falta agora é tratarmos os eventos das combos, essa é a parte fácil :
Private Sub DDLAssuntos_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles DDLAssuntos.SelectedIndexChanged
CarregarSubAssuntos()
End Sub
Private Sub DDLSubAssuntos_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles DDLSubAssuntos.SelectedIndexChanged
CarregarArtigos()
End Sub
As duas combos chamam as subs para CarregarSubAssuntos e CarregarArtigos respectivamente.
Com isso teremos duas combos e uma grid, podendo selecionar o assunto, sub-assunto
e ver os artigos ligados a esse assunto e sub-assunto. Demonstramos assim a
utilização de mais um WebService, que você poderá
utilizar no seu próprio site para acessar nossa lista de artigos.
Veja um exemplo desta aplicação pronta em http://www.bufaloinfo.com.br/artigos/servico/webform1.aspx
Correção : O WebService foi movido para novo endereço, encontra-se em http://www.bufaloinfo.com.br/servicosweb/artigosdva/artigos.asmx . O exemplo citado acima ainda não foi corrigido para apontar para o novo endereço. Vocês podem ver um exemplo funcional do uso deste serviço em http://www.devaspnet.com.br/artigos2/novosartigos.aspx
Dennes Torres
MCSD,MCSE,MCDBA
© Búfalo Informática,
Treinamento e Consultoria -
Rua Álvaro Alvim, 37 Sala 920 • Cinelândia • Rio de Janeiro • RJ
Tel.: (21)2262-1368 • e-Mail: contato@bufaloinfo.com.br