Saturday, April 29, 2006

Datagrid dentro Datagrid


Este projecto ainda é do tempo das datagrid e framework 1.0 e tinha como base o desenvolvimento em ASP.NET.

Está situação aconteceu quando estava a chamar documentos relacionados com outros tipo de documentos ....... :P e assim por adiante, utilizei neste exemplo a Base de dados Northwind, ja conhecida por muita gente.

O segredo esta na alteração da nossa datagrid na parte do html.

Criem uma coluna e ponham em ultima posição, depois adicionem uma placeholder tendo visible=false;

Fechem um TR e um TD da datagrid logo a seguir ao placeholder;

criar uma novo TR e TD dentro da TD criar a nova datagrid;

depois de criada e defenida a datagrid fechar o TR e o TD;

fechar o placeholder e pronto esta feito a parte de o html;


CodeBehind:

Tambem é simples porque basta jogar com o placeholder selecionado e activar para true.

Select Case e.CommandName

Case "expand"

Dim Expanded As PlaceHolder = e.Item.FindControl("Expanded")
Dim btnExpand As ImageButton = e.Item.FindControl("imgexpand")
If btnExpand.ImageUrl.Equals("~/image/low.gif") Then
btnExpand.ImageUrl = "~/image/high.gif"
Expanded.Visible = False
Else
btnExpand.ImageUrl = "~/image/low.gif"
Expanded.Visible = True
End If
End Select

e como podem ver.... bastante simple e pratico......

Conexão Excel

A algum tempo atrás precisei de exportar dados de um excel e como o google e nosso amigo, fiz a pesquisa nele, após inumeras horas... exagero 1 ou 2 horitas, encontrei uma conexao que dava perfeitamente para o que pretendia, aqui vai....

Dim conexao_Excel As String = "Provider=Microsoft.Jet.OleDb.4.0;" _
& "data source=c:\Email1.xls;" _
& "Extended Properties=Excel 8.0;"

Para realizar uma select realizei:

da = New OleDbDataAdapter("SELECT * FROM [Email$]", conexao_Excel)

' o "Email$" é o sheet da folha, este select obriga a que a pagina de excel esteja previamente preparada para se poder trabalhar correctamente.

Friday, April 28, 2006

Matar Processos

em vez de fazer crt+ALT+DEL vamos complicar um pouco mais, ora toca a matar processos atraves de codigo para isso utilizei as seguintes linha de codigo....

Dim process As Process
process = System.Diagnostics.Process.GetProcessesByName("processo")(0)
process.Kill()

Win32

Aqui esta um pequeno exemplo de como o win32 nos pode ajudar a visualizar conteudo do nosso PC.

Dim ObjQuery As New Management.SelectQuery("Win32_Process")

' O Array abaixo é para definir quais são as propriedades que queremos obter.
' Mas caso queira pode passar no SelectQuery.
Dim Propriedades() As String = New String() {"Name", "Handle", "ProcessID"}

' Instanciando o objeto de procura para a query
Dim searcher As New Management.ManagementObjectSearcher(ObjQuery)
Dim ObjColecao As Management.ManagementBaseObject
ListBox2.Items.Add("Informações sobre o Processos")
ListBox2.Items.Add("**********************************")
For Each ObjColecao In searcher.Get()
For x As Integer = 0 To Propriedades.Length - 1
ListBox2.Items.Add("- " & Propriedades(x) & " - " & ObjColecao(Propriedades(x)))
Next
ListBox2.Items.Add("**********************************")
Next

Grupos e Utilizadores associados a um ficheiro ou Pasta

Existe maneiras para visualizar os grupos e utilizadores associados a uma pasta ou ficheiro, para isso este codigo ajuda na sua visualização.


Imports System.Management
Imports System.Security.AccessControl
Imports System.Security.Principal

Dim path As String = "caminho da pasta ou ficheiro"

Dim sd As FileSecurity = File.GetAccessControl(path)
For Each ace As FileSystemAccessRule In sd.GetAccessRules(True, True, GetType(NTAccount))
Dim name As NTAccount = CType(ace.IdentityReference, NTAccount)
' onde ira guardar os nomes
ListBox2.Items.Add(name)
Next

Criar shortcuts em .net

Num pensei que uma coisa tão simples que se faz quase todos os dias fosse tão dificil de fazer a nivel de programação, para criar um simples shortcut tive que chamar o control IWshRuntimeLibrary.
O codigo a seguir ira demostrar como se realiza um shortcut

Imports IWshRuntimeLibrary
Dim teste As WshShell = New WshShell
'caminho do desktop
Dim DesktopDir As String = _
CType(teste.SpecialFolders.Item("Desktop"), String)
Dim shortCut As IWshRuntimeLibrary.IWshShortcut
'nome do shortcut
shortCut = CType(teste.CreateShortcut(DesktopDir & _
"\novo.lnk"), _
IWshRuntimeLibrary.IWshShortcut)
With shortCut
.TargetPath = "caminho do shortcut vai ter"
.WindowStyle = 1
.Description = "descrição"
.WorkingDirectory = DesktopDir
.IconLocation = "caminho do ico"
.Save()
End With

Adicionar controls, DLL, OCX etc....

ja tive perguntas que podem parecer idiotas para quem trabalha a algum tempo com .net, uma delas é, "como se adiciona um DLL", bom para responder a essa questão é bastante simples, para isso diriga-se ao quadro da direita do seu visual studio e na opção "solution Explorer" irá ter a opção "References" com o botão direito do rato selecione "add reference" e adicione o .dll pretendido, para adicionar um control no quadro da esquerda "toolbox" e com o botao direito selecione a opção "Choose Items..." adicionando o control que pretende, podera ser em .dll, .ocx etc.....

Autenticação Active directory LDAP

Boas este vai ser o meu primeiro artigo, bom nao sera mesmo artigo é apenas um link mas que irá ajudar muita gente que está a começar a trabalhar com Active directory e LDAP.
Existe um metodo simples facultado pelo msdn2 para validar o utilizador de um servidor através do LDAP, Autenticação pela Active Directory, para isso temos a ajuda né ;).
Nos proximos artigos irei expor outras campos que podem ser visualizados e pelo active directory, fiquem bem.....

.NET

Site com Codigo em .NET para ajudar a resolver aqueles problemas que toda a gente tem.....