Ir para conteúdo
Fórum Script Brasil
  • 0

Pegar Valor De Coluna Em Datatable


maikel

Pergunta

Bom dia...

Seguinte... estou desenvolvendo um sistemas com Delphi 2005 .NET onde tenho uma página que tem um DataGrid, o qual é preenchido com a seguinte função:

function SelecionaFormatacoes(CodUsuario,Status:String):DataTable;

Var

Tabela:DataTable;

Linha:DataRow;

Begin

Try

Tabela:=DataTable.Create;

Tabela.Columns.Add('TITULO',TypeOf(&String));

Tabela.Columns.Add('DATA',TypeOf(&String));

Tabela.Columns.Add('PAGINAS',TypeOf(&String));

Tabela.Columns.Add('ORCAMENTO',TypeOf(&String));

Tabela.Columns.Add('STATUS',TypeOf(&String));

Tabela.Columns.Add('CODIGO',TypeOf(&String));

BdpCom:=BdpCommand.Create('SELECT FORMATAR.COD_FORMATACAO, FORMATAR.TITULO_TRABALHO, FORMATAR.DATA_CADASTRO, '+

'FORMATAR.NUMERO_PAGINAS, FORMATAR.ORCAMENTO, STATUS.DESCRICAO_STATUS '+

'FROM FORMATAR INNER JOIN STATUS ON (FORMATAR.COD_STATUS = STATUS.COD_STATUS) '+

'WHERE ((FORMATAR.COD_USUARIO = ?) and (FORMATAR.STATUS = ?)) '+

'ORDER BY FORMATAR.COD_FORMATACAO',dados.CONEXAO);

BdpCom.Parameters.Clear;

BdpCom.Parameters.Add('CodUsuario',BdpType.&String);

BdpCom.Parameters.Add('Status',BdpType.&String);

BdpCom.Parameters['CodUsuario'].Value := CodUsuario;

BdpCom.Parameters['Status'].Value := Status;

BdpRead:=BdpCom.ExecuteReader;

while BdpRead.Read do

Begin

Linha:=Tabela.NewRow;

Linha[0]:= BdpRead['TITULO_TRABALHO'].ToString;

Linha[1]:= BdpRead.GetDateTime(2).ToString('dd/MM/yyyy');

Linha[2]:= BdpRead['NUMERO_PAGINAS'].ToString;

Linha[3]:= BdpRead['ORCAMENTO'].ToString;

Linha[4]:= BdpRead['DESCRICAO_STATUS'].ToString;

Linha[5]:= BdpRead['COD_FORMATACAO'].ToString;

Tabela.Rows.add(Linha);

End;

Result:=Tabela;

//*****Passando Result para o Grid******

GridFormatacoes.DataSource:=SelecionaFormatacoes('1','1'):

GridFormatacoes.DataBind;

Até ai tudo certo... só que para mim poder selecionar um registro no grid depois... eu preciso estar mostrando a coluna código no grid(Linha[5]), onde pego o valor da linha clicada da seguinte forma:

e.item.cells[5].text;

Retorna o código do registro que selecionei... mas se eu não quisesse mostrar esse registro... não criar essa coluna no Grid e só criar ela na função... teria com eu acessar o valor dela...? Já tentei várias formas... mas não consegui....

Alguém pode me ajudar... ou tem alguma dica que possa resolver este problema...?

Agradeço a quem puder me ajudar.....

Att...

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Uma possível solução seria utilizar uma DataGridTableStyle para definir quais campos vão aparecer na grade, deixando todos na DataSource. Dessa forma o campo não apareceria na tela porém seria acessível via DataTable. Aqui no fórum você deve encontrar exemplos disso (em VB.NET, acredito eu), mas não deve ser difícil adaptar para o Delphi.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Bom dia...

Valeu pela dica... é mesmo isso que eu tenho que fazer... e estive procurando uns recursos no DataGrid e consegui fazer...

Lá no DataGrid... quando crio as colunas tem uma oção de Visible que vem marcada por Default... desmarquei a opção e a coluna desapareceu do DataGrid... e mesmo assim consigo acessar o valor dela por e.item.cells[0].Text;

At+

Maikel

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...