Форум: "Начинающим";
Текущий архив: 2011.09.11;
Скачать: [xml.tar.bz2];
ВнизСделать нормальной ширину колонки в DBGRID Найти похожие ветки
← →
Очень злой (2011-05-28 12:14) [0]при использовании запросов типа
select field1, sum(field2) ...
поля, где используются агрегатные функции неприятно выглядят в дбгриде (т.е. растягиваются на огромную ширину.)
как этого избежать попроще?
Заранее установить какие поля отображать и ширину каждого из них непододит ибо используется много разных селектов с различным набором полей...
Нет ли какого-нить простого способа сделать так, чтобы ДБгрид устанавливал ширину колонок такой, какая требуется для отображения данных независимо от того какую выборку ему придется отображать?
← →
Очень злой (2011-05-28 12:22) [1]проблема, как я понял заключается в том, что у датасета в таких полях DisplayWidth=256
← →
sniknik © (2011-05-28 12:28) [2]ну так поменяй его после запроса (афтеропен).
← →
Очень злой (2011-05-28 13:16) [3]Поменять, поменял...
...
with Dataset do
begin
Close;
CommandText:=SqlText;
Parameters.ParamByName("bd").DataType:=ftDateTime;
Parameters.ParamByName("ed").DataType:=ftDateTime;
Parameters.ParamByName("bd").Value:=trunc(DTPbegin.DateTime);
Parameters.ParamByName("ed").Value:=trunc(DTPEnd.DateTime);
Open;
for i:=0 to FieldCount-1 do if Fields[i].DisplayWidth=256 then fields[i].DisplayWidth:=15;
end;
...
И естественно оно работает. Но...
Может я неправильный человек или хз... Но довольно часто, как и в данном случае, я не могу избавиться от ощущения ректальности моего кода...
← →
sniknik © (2011-05-28 14:03) [4]поменяй провайдера данных тогда... этот у тебя неадекватный, на числа такие размеры дает... понимаю когда jet на вычисляемые строки (там реально можно не знать что за размер будет у следующего вычисления, поэтому дается максимум), но числа это черезчур.
← →
Очень злой (2011-05-28 16:35) [5]Provider=OraOLEDB.Oracle.1 (родной оракловый от 9і)
и на что его поменять?
на Provider=MSDAORA.1 разве что... Не уверен, что это что-то даст? Хотя честно говоря не пробовал...
← →
KSergey © (2011-05-28 17:06) [6]У меня есть какое-то смутное воспоминание, что если у грида изначально задать колонки и установить ширину их отличную от дефолтной - то ширина столбцов уже остается постоянной.
Может в эту сторону посмотреть?
← →
Игорь Шевченко © (2011-05-28 20:15) [7]CAST (expr AS VARCHAR2(нужная ширина)) в запросе ?
← →
sniknik © (2011-05-28 20:21) [8]> CAST (expr AS VARCHAR2(нужная ширина)) в запросе ?
он говорит у него число - "sum(field2)", а не строка.
← →
sniknik © (2011-05-28 20:23) [9]понимаю, можно и число привести к строке, но разве у чисел бывает такая размерность?
← →
Игорь Шевченко © (2011-05-28 21:02) [10]sniknik © (28.05.11 20:21) [8]
Не могу поверить, чтобы числовые поля имели по умолчанию ширину 256.
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i16209
Или автор не договаривает или одно из двух.
← →
sniknik © (2011-05-28 21:36) [11]в том то и дело. в аксесс есть варианты, привел ([4]) когда бывает увеличенный размер строк, ну там все понятно, а если подобное у чисел... где то проблема/кривизна.
← →
Игорь Шевченко © (2011-05-28 21:49) [12]
> в аксесс есть варианты, привел ([4])
и в oracle точно так же есть
← →
Очень злой (2011-05-29 23:15) [13]
> sniknik © (28.05.11 21:36) [11]
>
> в том то и дело. в аксесс есть варианты, привел ([4]) когда
> бывает увеличенный размер строк, ну там все понятно, а если
> подобное у чисел... где то проблема/кривизна.
Да я не претендую на отсутствие кривизны... Но дело в том что код там простейший, и я его привел.
Из того что не привел, так это то, что dataset:TADODataSet
Но это и так вроде как ясно.
> KSergey © (28.05.11 17:06) [6]
>
> У меня есть какое-то смутное воспоминание, что если у грида
> изначально задать колонки и установить ширину их отличную
> от дефолтной - то ширина столбцов уже остается постоянной.
>
> Может в эту сторону посмотреть?
Есть такое... Но в гриде не хочется явно задавать колонки, ибо в одном гриде отображаются разные выборки, с разным числом полей и разными типами полей... Т.е. придется для каждого запроса задавать свои наборы колонок для грида...
> Игорь Шевченко © (28.05.11 20:15) [7]
>
> CAST (expr AS VARCHAR2(нужная ширина)) в запросе ?
Завтра попробую так... Вернее подобным образом...
← →
sniknik © (2011-05-30 00:05) [14]> Да я не претендую на отсутствие кривизны...
тогда почему не исправишь? зачем "залечки"?
> Но дело в том что код там простейший, и я его привел.
приведенное
select field1, sum(field2) ...
не дает широких строк... вернее, я знаю, в аксесс не дает (в mssql и вычисления строк не дают, правильней там длинны считаются), Игорь говорит и оракл тоже...
хотя я бы на пробу поменял провайдера, посмотреть. мало ли, может в нем дело, а Игорь пользуется другим.
← →
KSergey © (2011-05-30 14:08) [15]> Очень злой (29.05.11 23:15) [13]
> Есть такое... Но в гриде не хочется явно задавать колонки,
> ибо в одном гриде отображаются разные выборки, с разным
> числом полей и разными типами полей... Т.е. придется для
> каждого запроса задавать свои наборы колонок для грида..
Я не знаю что за приложение, но сильно подозреваю, что завтра пользователь захочет настраивать ширины колонок "под себя как удобно" и чтобы они сохранялись между сеансами работы программы.
Есть смысл заранее это уже сделать и радоваться :)
← →
Игорь Шевченко © (2011-05-30 17:36) [16]sniknik © (30.05.11 00:05) [14]
Игорь вообще провайдером не пользуется. За ненадобностью.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.09.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c