14 de mar. de 2011

54º Dia

Boa Noite!
Hoje continuei ajustando algumas coisas que estavam um pouco erradas.
Depois comecei a montar a sql dos filtros, depois de muito pesquisar, mas estou torcendo para que ela funcione... No final do expediente começou a dar um erro, mas esse eu vou resolver amanhã. Abaixo segue o print de uma parte das sql dos filtros.

11 de mar. de 2011

53º Dia

Boa Noite!
Hoje passei o dia em busca de soluções para fazer o SQL Dinâmico, pois não tenho nenhum idéia de como fazer o mesmo.. Depois de muita busca cheguei ao seguinte resultado (com ajuda de alguns amigos do DevBrasil):

1) Crie os controles:
  • Crie um DropDownList para as tabelas (AutoPostBack=true OnSelectedIndexChanged="xxx" DataValueField="xxx" DataTextField="xxx"). 
  • Crie um DropDownList para os campos (AutoPostBack=true OnSelectedIndexChanged="xxx" DataValueField="xxx" DataTextField="xxx")
  • Crie um DropDownList para os operadores (AutoPostBack=true OnSelectedIndexChanged="xxx" DataValueField="xxx" DataTextField="xxx")
  • Crie um TextBox para valor a ser digitado pelo usuário
  • Crie um CustomValidator para validar o valor digitado
  • Crie um CheckBoxList para os campos a serem exibidos no relatório
  • Crie um CustomValidator para validar se algum campo foi escolhido para ser exibido no relatório
  • Crie um botão para pesquisar
  • Crie um GridView para exibir os dados

2)  utilizar a consulta "SELECT Name as Tabela FROM SysObjects WHERE XType = 'U' AND Name <> 'dtproperties' AND Name <> 'sysdiagrams'" para preencher seu DropDown de tabelas

3) Ao selecionar a Tabela, utilizar a consulta abaixo para preencher o DropDownList e o CheckBoxList com os campos além de configurar os CustomValidatores de acordo com o tamanho e tipo de dados.
"SELECT C.Name AS Nome,        
CASE WHEN C.Status = 128 THEN 1 ELSE 0 END AS AutoNumeracao,        
C.IsNullable AS Obrigatorio,        
C.Length AS Tamanho,
TYPE_NAME(C.xtype) AS Tipo  
 FROM SysObjects O  
INNER JOIN SysColumns C ON O.id = C.id  
WHERE O.xtype = 'U'    
AND O.name = @NomeTabela  
ORDER BY C.AutoVal DESC, C.IsNullable ASC, O.Name ASC"

4) Ao selecionar o campo,preencher o DropDownList com uma coleção de objetos seu (Operadores)  de acordo com o tipo do campo.

5) ao digitar o valor e clicar no botão, criar uma consulta próxima da que eu colocarei abaixo, executa-la e preencher o grid:
"select + (foreach no CheckBoxList pegando os valores selecionados) +
" from " + ddlTabela.SelectedValue
"where " + ddlCampo.SelectedValue + " " + ddlOperado.SelectedValue + " " + txtValor.Text

E já comecei a por isso em prática...
Agora falta continuar a fazer isso. Hoje também peguei um Backup mais recente do banco, porém nele não tem as tabelas das quais eu estou utilizando (será que isso será um futuro problema? :S), e dei uma modificada na parte dos filtros, segue o print abaixo:


10 de mar. de 2011

52º Dia

Boa Noite Pessoal!
Hoje eu arrumei a "manha" do DropDownList que tinha citado em um post anteriormente, ontem tinha me esquecido dele. Ele não funcionava porque estava dentro de uma update panel, dai eu tive que excluir esta update e montar toda a parte dos filtros novamente, só que desta vez dentro de uma DIV.
Pessoal nesse link: http://www.fryan0911.com/2009/08/convert-c-to-vb-and-vice-versa.html encontrei um conversor de C# para VB e vice-versa muito bom.. Agora terminou a minha frustração de só achar código em VB e não saber converter para C#.

Segue abaixo a imagem de como a parte do filtros está agora:

9 de mar. de 2011

51º Dia

Boa Noite!
Que coisa boa.. teve um feriado para poder colocar tudo em dia. (contando o final de semana junto deu para descansar do dia 5/03 a 8/03, retornando as atividades normais hoje dia 9/03.)
Hoje pela parte da manhã teve reunião onde foi planejado a data de início do desenvolvimento do educar 2.0. Algumas pessoas já começaram a desenvolver ele.
Continuei no meu gerador de relatório, mas hoje comecei a fazer as SQL para os filtros, que depois de adicionados realiza a busca dinâmica.
De tarde até as 14:40 estava lá na Abase, conversando com a Leila e também recebendo o restante do meu salário. Depois de volta a SETREM continuei nas SQL e comecei a desenvolver o capítulo 1 do relatório de estágio que é para entregar até o final de março. Capítulo 1 é o modo de dizer, porque eu sempre quando começo já faço o desenvolvimento de todo o relatório completo.
Abraços e  até amanhã!

4 de mar. de 2011

50º Dia

Boa Noite!
Hoje estava pegando os dados selecionados na opção de filtro do usuário e mostrando eles em uma ListBox para que o usuário também possua a opção de excluir algum filtro ou todos eles.
Só ocorreu um problema: a dropdownlist do operador lógico estava "de manha" porque eu a exclui e fiz novamente e mesmo assim ela não trazia o operador selecionado, trazia sempre o mesmo item...
Abaixo segue um print da opção de filtros:

3 de mar. de 2011

49º Dia

Boa Noite!
Hoje fiz alguns ajustes na questão de algumas coisas que estavam faltando e comecei a tentar fazer os filtros, pegar os dados selecionados na DropDown e TextBox e salva-los em um array. Pesquisei mas achei pouco conteúdo que desse para aproveitar.
Amanhã vou continuar nisso.
Abraço!

2 de mar. de 2011

48º Dia

Boa Noite!
Hoje estava pesquisando uma maneira de gerar os filtros, e depois passei ajustando o layout que a meu ver estava muito "desformatado". Gastei uma meia hora quando fui na Abase para receber uma quantia "parcial" do meu salário, que ainda não havia recebido nada desde o início do estágio e também tirei a foto para o meu crachá.
Abraço e até!

1 de mar. de 2011

47º Dia

Boa Noite a todos!
Hoje estive presente na primeira reunião do ano, onde foram avaliados tudo o que o pessoal fez durante o período de férias escolares da instituição.
E consegui resolver aquele problema de pegar o nome da tabela do banco.
Abraço e até amanhã!!

28 de fev. de 2011

46º Dia

Boa Noite!
Hoje eu passei o dia mal, mas trabalhando.
Meu trabalho não rendeu muito, mas passei o dia quebrando a cabeça naquele for para pegar o nome do banco do banco por meio do código da tabela e do nomecampovisual.
Seguem abaixo os prints:


25 de fev. de 2011

45º Dia

Boa Noite!
Hoje fiz um for bem complicado..
Tinha que quebrar strings, pegar o valor quebrado e converter onde aparece o NomeCampoVisual para por Baixo ele trazer o  NomeCampoBanco.
Quebrei a cabeça para fazer isso.
Semana que vem eu posto os prints para vocês.
Abraço e Bom Final de Semana!