Fórum Problema em grid pra ver campos concatenados #279503
29/04/2005
0
Meu problema eh o seguinte. Tenho varios edits em um form, e quando vou salvar, pego esses edits, concateno e salvo tudo em um campo vachar.
ex: qry_testeCAMPO.value:=edit01.text+#13+edit02.text+13´+edit03.text;
Bom, eu estou usando FB, com drive ODBC, e ADO. No banco, (IBExpert q uso), o campo aparece de forma correta, vejo cada text dos edits em uma linha.
O prob eh, qdo vou fazer uma consulta e recebo este campo em um DBGrid, ele aparece assim: Text 01 bla,bla,bla//Texto 02 ble,ble,ble//texto03 bli,bli,bli
Detalhe, as barras sao aquelas reta e naum essas ai, eh pq naum tem no meu teclado.
O que devo fazer??? Espero ter sido claro.
Desde ja agradeco
Bruno Augusto
Brunobaco
Curtir tópico
+ 0Posts
29/04/2005
Brunobaco
Fulano (ai dou enter)
Beltrano (enter de novo)
Ciclano
Entaum eu salvo, e qdo vou ver isso em um dbgrid aparece Fulano/Beltrano/Ciclano (obs.: As barras sao verticais, eh pq naum tenho elas no meu teclado)
Que e tah acontecendo?
Por favor, me ajudem
Desde ja gradeco
Bruno Augusto
Gostei + 0
29/04/2005
Technos
É melhor.
Qualquer bronca avisa.
Gostei + 0
29/04/2005
Massuda
A única solução é você mesmo fazer o desenho da célula que contem esse texto usando o evento OnDrawColumnCell do DBGrid.
Gostei + 0
29/04/2005
Raserafim
Mas vc disse que está usando o VarChar, então eu deduzo que vc está querendo que fique tudo na mesma linha. se for isso mesmo vc pode substituir o seu código por:
ex: qry_testeCAMPO.value:=edit01.text+´ ´+edit02.text+´ ´+edit03.text;
Gostei + 0
29/04/2005
Brunobaco
Technos, o que seriam esses campos calculados? Naum sei do que se trata. Se quiser, me mande por e-mail, ou por aki mesmo (bacoliv@yahoo.com.br)
Massuda, a unica coisa que sei fazer com o OnDrawColumnCell eh ficar listrado meu grid. Como eu faria isso, e o que eh isso que vc escreveu?
raserafim, eu acabei ficando em duvida agora se meu campo eh varchar ou blob. Estou no trabalho e naum possuo meu banco aki.
Se puderem me explicar minhas duvidas acima, eu agradeceria. Vou tentar descobrir ainda hj sobre o campo. Se for blob, tem algum problema?
Desde ja agradeco.
Gostei + 0
29/04/2005
Massuda
procedure TForm1.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var R: TRect; S: string; begin // NomeDoCampo é o campo com o texto em linhas separadas por #13 if Column.FieldName = ´NomeDoCampo´ then begin with DBGrid.Canvas do begin FillRect(Rect); S := Column.Field.AsString; R := Rect; DrawText(Handle, PChar(S), Length(S), R, DT_CENTER or DT_VCENTER or DT_WORDBREAK); end; end else begin DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end;
Provavelmente você terá que aumentar a altura das linhas do DBGrid para poder ver todo o texto; para fazer isso, use algo assim
// inclua isto na seção implementation type TCrackedDBGrid = class (TDBGrid) public property RowHeights; end; ... // faça isto no OnCreate do form // sempre altere todas as linhas do dbgrid var I: Integer; ... for I := 0 to DBGrid.RowCount - 1 do TCrackedDBGrid (DBGrid).RowHeights [I] := ...altura desejada...;
Gostei + 0
29/04/2005
Massuda
Gostei + 0
29/04/2005
Brunobaco
Estou aberto a novas ideias.
Desde ja agradeço
Bruno Augusto
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)