Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress

Автор: CAV
Дата сообщения: 15.03.2006 14:03
powertodead

Код:
with chvSales.CreateImage(TMetafile) do
try
SaveToFile('Sales.emf');
finally
Free;
end;
Автор: IgorXI
Дата сообщения: 16.03.2006 05:00
Есть ли у DevExpress QuantumGrid метод для реализации SubStringFiltering,
т.е набираю где-нибудь текст и отображаются только те строки, где есть вхождение набранной подстроки.
Автор: clear2121
Дата сообщения: 16.03.2006 07:08
Работаю в BDS 2006 C++ Builder + UPD1
Работаю с TdxDBTreeView 1.3.7
Не получается отобразить 2 поля. ПОМОГИТЕ! СПАСИБО.

Добавлено:
Спасибо, разобрался

Добавлено:
Но теперь другая проблема. Два поля показываются, но между ними пустота, так как длина поля больше, чем значение в нем. Не красиво. "Вася Пупкин". Как убрать пробелы?
Автор: gpi
Дата сообщения: 16.03.2006 07:41
IgorXI
Установи фильтр на поле (Field LIKE %SubString%)
Автор: MKalavera
Дата сообщения: 16.03.2006 08:06
Может быть кто-то делал справку для конечных пользователей по использованию фич Квантум Грида, типа: Как работать с построителем фильтров и т.д. Поделитесь, пожалуйста, в долгу не останусь . Спасибо.
Автор: AlexPetrovich
Дата сообщения: 16.03.2006 09:18

Цитата:
Не красиво. "Вася Пупкин". Как убрать пробелы?


Trim(fld1.asString + fld2.asString)
Автор: clear2121
Дата сообщения: 16.03.2006 09:43

Цитата:
Trim(fld1.asString + fld2.asString)

Я дико извиняюсь, но куда это засунуть?
В ДБТревью я в свойстве DisplayField написал Field1;Field2 и получил этот результат.
Как стандартно (в самом дереве) это сделать?

Спасибо за ответ!
Автор: golkanavt
Дата сообщения: 16.03.2006 09:57

Цитата:
Я дико извиняюсь, но куда это засунуть?
В ДБТревью я в свойстве DisplayField написал Field1;Field2 и получил этот результат.
Как стандартно (в самом дереве) это сделать?

у FIBPlus к примеру есть свойство у DataSet'ов - обрезать строковые поля, попробуйте поковыряться со своими датасетами
Автор: AlexPetrovich
Дата сообщения: 16.03.2006 15:47
clear2121
Встречный вопрос - какая СУБД?; какой тип поля у Field1;Field2 ? (char "добивает" значение поля до полной длины пробелами, varchar этого не делает).

Как данные попадают в Field1;Field2 ? Если через Query, то можно в select-запросе написать типа :

select trim(blabla) as Field1, trim(blablabla) as Field2
from table

Само "дерево" тебе ничего обрезать не будет: если у тебя в поле Field1 значение "ВАСЯ ", то так оно и будет выводится везде. Сделай чтобы в поле было уже нормализованное значение...
Автор: ThunderES
Дата сообщения: 17.03.2006 08:54
После установки последник DevExpress возникла следующая проблема:
в Gride всегда показывается Preview, независимо от того, есть ли данные.
На devexpress.public.vcl.quantumgrid5 я нашел сообщение об этом:
This issue has been fixed. Please contact our Support Team to obtain a hot
fix for the issue with ID: DB3467.
Может кто знает, что внутри этой DB3467?
Автор: SergBSI
Дата сообщения: 17.03.2006 11:05
Vitus_Bering
gpi

Cпасибо!
Автор: NeoKray
Дата сообщения: 17.03.2006 12:48
Кто нито кинте примеры по использованию cxVerticalGrid. А то чего то у меня в папке VerticalGrid нет папки Demos.
Автор: kii
Дата сообщения: 17.03.2006 13:27
Народ!!!
А в мартовский девках с PrintSystem 3.5.5 QGrid и далее не печатается, а?
Автор: waik
Дата сообщения: 17.03.2006 13:38
NeoKray

Держи _http://rapidshare.de/files/15716634/Demos.zip.html
Автор: Alex47
Дата сообщения: 17.03.2006 23:32
ThunderES

Цитата:
После установки последник DevExpress возникла следующая проблема:
в Gride всегда показывается Preview, независимо от того, есть ли данные.
На devexpress.public.vcl.quantumgrid5 я нашел сообщение об этом:
This issue has been fixed. Please contact our Support Team to obtain a hot
fix for the issue with ID: DB3467.
Может кто знает, что внутри этой DB3467?


А это не помогает(взято из той же thread):
"If I am remembering correctly I believe that you can change the preview
field properties to a Memo edit and the problem will go away."
Там две проблемы обсуждаются, и это, похоже, относится только ко второй.
Автор: xokc
Дата сообщения: 18.03.2006 10:49
NeoKray
PM читать надо. Неделю назад еще кидал.
Автор: vcrank
Дата сообщения: 18.03.2006 14:30
Наивный вопрос:
А есть ли хелпы на русском?
Можно, конечно, примеры, но только в исходниках - exe много весит
Автор: inner
Дата сообщения: 18.03.2006 16:20
Народ, как убрать у TcxImage popup-меню при клике правой кнопкой мыши?

Добавлено:
Извините за флуд. Невнимательный я.
Автор: clear2121
Дата сообщения: 20.03.2006 08:50

Цитата:
Встречный вопрос - какая СУБД?

MS SQL 2000

Цитата:
; какой тип поля у Field1;Field2 ? (char "добивает" значение поля до полной длины пробелами, varchar этого не делает).

Попробовал varchar - что то не получилось

Цитата:
Как данные попадают в Field1;Field2 ?

Загружаю таблицу, не SELECTом. Отсюда и вся бодяга

Цитата:
Само "дерево" тебе ничего обрезать не будет: если у тебя в поле Field1 значение "ВАСЯ ", то так оно и будет выводится везде. Сделай чтобы в поле было уже нормализованное значение...

С этим сейчас и борюсь
СПАСИБО!
Автор: ThunderES
Дата сообщения: 20.03.2006 11:10
Alex47


Цитата:
А это не помогает(взято из той же thread):
"If I am remembering correctly I believe that you can change the preview
field properties to a Memo edit and the problem will go away."
Там две проблемы обсуждаются, и это, похоже, относится только ко второй.


Что-то не помогло
Автор: Dennica
Дата сообщения: 22.03.2006 12:44
Подскажите как найти ноду в TcxTreeList по колонке содержащей цифири? Нашол метод FindNodeByText, но он ищет по подстроке с начала строки. Т.е. может запросто отыскать ноду с номером в колонке 1234 вместо требуемого 123.
Еще видел метод Find, там в нем можно свою функцию фильтрации определить, только я не понял что за параметр там AData: Pointer. В хэлпе про него нислова.
Приведу синтаксис из хэлпа для Find, может кто растолкует:
type
TcxTreeListFindFunc = function(ANode: TcxTreeListNode; AData: Pointer): Boolean;
function Find(AData: Pointer; AStart: TcxTreeListNode; AExpandedOnly, AForward: Boolean; AFilter: TcxTreeListFindFunc): TcxTreeListNode;
Автор: korobovmax
Дата сообщения: 22.03.2006 15:42
Dennica, а что надо сделать с нодой? Для чего поиск?
Автор: Alex1978
Дата сообщения: 22.03.2006 17:06
Dennica
AData: Pointer
указатель на что-либо.

Интересно как ты ноды заносишь в cxTreeList?

Add и AddChild - используют эти параметры.

Ладно, в твоем случае если ты не используешь Data, то можно сделать так:

После заполнения TreeList (текст-название нода храниться в первой колонке TreeList), для поиска нода по значению в этой колонке используешь функцию типа этой:

function GetNodeFromNodeText(Text: String): TcxTreeListNode;
var
Node: TcxTreeListNode;
begin
Result := nil;
with TreeList do
begin
if Count = 0 then
Exit;
Node := Items[0];
while Assigned(Node) do
begin
if Node.Texts[0] = Text then
begin
Result := Node;
Break;
end;
Node := Node.GetNext;
end;
end;
end;

Но в таком случае есть возможность найти не искомый нод, а нод имеющий тот же текст. Поэтому для определенных случаев можно использовать другой метод поиска. Но это уже выходит за рамки вопроса. Сразу скажу что если дерево заполняется данными из базы данных то лучше использовать другой метод, аналогичный этому но использующий ID записи и AData.
Автор: Dennica
Дата сообщения: 23.03.2006 06:32
to korobovmax
Нужно проверить есть нода с определенным числом в определенной колонке или нет, если есть то вернуть ее.
to Alex1978
>Интересно как ты ноды заносишь в cxTreeList?
Заношу так:
with qrySubdivisionAvailable, framSubdivision do begin
ParamByName('id_agent').Value := dmDataAG.qryAgent.FieldValues['id'];
if Active then
Refresh
else
Open;
tlAvailable.Clear;
First;
while not Eof do begin
with tlAvailable.Add do begin
Values[0] := FieldValues['id'];
Values[1] := FieldValues['name'];
end;
Next;
end;
end;
В общем раз стандартных средств поиска нет то наваял следующее, может кому пригодится
function FindNodeInTcxTreeList(const AValue: Variant; ATreeList: TcxTreeList; AColumn: TcxTreeListColumn): TcxTreeListNode;
var
i: Integer;
ANode: TcxTreeListNode;
begin
for i := 0 to ATreeList.Nodes.Count - 1 do begin
ANode := ATreeList.Nodes[i];
if AValue = ANode.Values[AColumn.ItemIndex] then begin
Result := ANode;
Exit;
end;
end;
Result := nil;
end;

Автор: Alex1978
Дата сообщения: 23.03.2006 08:13
Dennica
Можно и так. Только нужно проверку поставить на пустой ATreeList. И нужно все таки понять для чего Data.

И вообще я не пойму на кой тебе при такой теме TreeList ?

while not Eof do begin
with tlAvailable.Add do begin
Values[0] := FieldValues['id'];
Values[1] := FieldValues['name'];
end;
Next;
end;

Add, Add ... - где построение дерева, где родитель, где дочерние узлы? Используй грид и не морочь голову.

Дерево строится где-то таким образом

function GetNodeFromData(Data: Integer): TcxTreeListNode;
var
Node: TcxTreeListNode;
begin
Result := nil;
with TreeList do
begin
if Count = 0 then
Exit;
Node := Items[0];
while Assigned(Node) do
begin
if Integer(Node.Data) = Data then
begin
Result := Node;
Break;
end;
Node := Node.GetNext;
end;
end;
end;

procedure LoadTree;
var
Node: TcxTreeListNode;
begin
with MainDM, TreeList do
begin
Node := Add(nil,Pointer(0));
Node.Texts[0] := 'Содержание';
with TpFIBDataSet.Create(nil) do
try
Database := dbBase;
Transaction := trRd;
SQLs.SelectSQL.Add('SELECT * FROM Таблица ORDER BY ID');
Active := True;
while not Eof do
begin
Node := AddChild(GetNodeFromData(FieldByName('Родительский ID').AsInteger),
Pointer(FieldByName('ID').AsInteger));
Node.Texts[0] := FieldByName('Текст Нода').AsString;
Next;
end;
Active := False;
GotoBOF;
FocusedNode.Expand(False);
finally
Free;
end;
end;
end;

Да вот еще что, по ходу твоих названий виддимо ты пытаешься построить дерево корреспондентов, сгрупированных по разным папкам. На мой взгляд правильно и удобно. Но исходя из своего опыта могу сказать - папки храни в одной таблице, корреспондентов в другой.
Автор: JackOff
Дата сообщения: 23.03.2006 11:56
Господа, а кто ни будь, пытался “собирать” статьи из Knowledge Base сайта devexpress скажем в формате chm?
Автор: korobovmax
Дата сообщения: 23.03.2006 15:40

Цитата:
to korobovmax
Нужно проверить есть нода с определенным числом в определенной колонке или нет, если есть то вернуть ее.


Dennica, я обычно делаю так:
1. Вызов BeginUpdate;
2. Пробежаться по записям таблицы, найти и сделать всё, что надо;
3. EndUpdate;

---------------------------------------------------------------------

JackOff, а неплохо бы и собрать материалы как KB, так и нашей темы. Я готов этим заняться.
Автор: oly
Дата сообщения: 23.03.2006 16:50
Подскажите как можно с помощью DevExpress сделать многострочную шапку грида
--------------------------------------
|Наименование | Кол-во |
| |-----------------|
|товара |план | факт |
------------------------------------
При этом сохранить функциональность column-ов - сортировка, группировка, фильтр, customisation, ограничить перемещения колонок "План", "Факт" только внутри "Кол-во"
Автор: vshersh
Дата сообщения: 23.03.2006 16:57
oly
Используй TcxGridDBBandedTableView.
там есть соответствующие настройки (TcxGridBandOptions)
Автор: gpi
Дата сообщения: 23.03.2006 16:58
oly
Попробуй использовать cxGridDBBandedTableView

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Kylix


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.