Problema em grid pra ver campos concatenados
Bom dia pessoal, me desculpem se o topico esta repetido, mas eu naum encontrei nada na pesquisa.
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
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
Curtidas 0
Respostas
Brunobaco
29/04/2005
Pessoal, isso tambem ta acontecendo qdo eu vou digitar dentro do memo o seguinte:
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
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
Technos
29/04/2005
Já penssou em usar Campos Calculados ?
É melhor.
Qualquer bronca avisa.
É melhor.
Qualquer bronca avisa.
GOSTEI 0
Massuda
29/04/2005
...qdo vou fazer uma consulta e recebo este campo em um DBGrid, ele aparece assim ... Detalhe, as barras sao aquelas reta e naum essas ai...
Pelo que me lembro, o DBGrid não sabe como tratar o #13... ele tenta mostrar o 13 na tela, o que resulta nas ´barras´.A única solução é você mesmo fazer o desenho da célula que contem esse texto usando o evento OnDrawColumnCell do DBGrid.
GOSTEI 0
Raserafim
29/04/2005
bruno, o problema deve ser por causa do #13 (e pode estar sendo mal interpretado como disse o Massuda), isso significa a tecla Enter, neste caso passar para uma outra linha.
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:
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
Brunobaco
29/04/2005
Bom pessoal, vamos la.
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.
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
Massuda
29/04/2005
Como eu faria isso, e o que eh isso que vc escreveu?
Use algo assim: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
Massuda
29/04/2005
Uma pequena correção...
// faça isto no OnCreate do form
// sempre altere todas as linhas do dbgrid
....
Na verdade, mude a altura das linhas depois que o dataset associado ao DBGrid estiver ativo/aberto.GOSTEI 0
Brunobaco
29/04/2005
Vlw Massuda. Vou tentar isso qdo estiver com o banco.
Estou aberto a novas ideias.
Desde ja agradeço
Bruno Augusto
Estou aberto a novas ideias.
Desde ja agradeço
Bruno Augusto
GOSTEI 0