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

» Использование DevExpress (часть 4)

Автор: X11
Дата сообщения: 24.05.2010 15:51
Лови
http://forum.sql.ru/forum/actualthread.aspx?tid=746340&hl=bar1+itemlinks+count#8547402
Автор: jonikDk
Дата сообщения: 24.05.2010 20:39
Andryshok
ну вообще то лучше это сделать через базовую форму, в которой прописать нужный функционал, а все остальные формы наследовать от этой базовой формы.
Автор: crazypiggy
Дата сообщения: 25.05.2010 08:20
Добрый день. Помогите разобраться с cxDBPivotGrod. По примеру cxGrid пытаюсь пройтись по выбранным записям cxDBPivotGrid
cxGrid1DBTableView1.DataController.FilteredRecordCount


Код:
for i:=0 to cxDBPivotGrid1.DataController.FilteredRecordCount-1 do
begin
base.frxReport.LoadFromFile('.\Отчеты\'+'Извещение.fr3');
Base.frxReport.Script.Variables['num']:=cxDBPivotGrid1.DataController.GetValue (cxDBPivotGrid1.DataController.FilteredRecordIndex[i],0);
end
Автор: jonikDk
Дата сообщения: 25.05.2010 09:59
crazypiggy

Цитата:
Как мне пройтись именно по фильтрованной строке и получить её параметр?

Я бы плясал бы от выделенной ячейки в PivotGrid. Почему именно строка ? Или ты берешь значение, которое для всей строки постоянно ?
Автор: crazypiggy
Дата сообщения: 25.05.2010 10:09
Устанавливаю фильтр по номерам. А когда пытаюсь пройти по строкам

Код: for i:=0 to cxDBPivotGrid1.DataController.FilteredRecordCount-1 do
begin
base.frxReport.LoadFromFile('.\Отчеты\'+'Извещение.fr3');
Base.frxReport.Script.Variables['num']:=cxDBPivotGrid1.DataController.GetValue (cxDBPivotGrid1.DataController.FilteredRecordIndex[i],0);
end
Автор: jonikDk
Дата сообщения: 25.05.2010 21:23
crazypiggy
конкретно по картинке тебе чего надо передать в FastReport ?
Автор: neznayka3
Дата сообщения: 26.05.2010 06:28
linker_2009
поставил OptionsData.Editing:=false все заработало.
Спасибо.

ЗЫ в гриде превью фото
Автор: crazypiggy
Дата сообщения: 26.05.2010 09:51
jonikDk
Мне надо передать № (номер) . 1-й столбец
Вроде сам разобрался.
Автор: Zaragossa
Дата сообщения: 27.05.2010 16:08
Пожалуйста подскажите как узнать когда ячейка перестает быть в режиме редактирования.
Т.Е. вбил значение в ячейку(cxGrid) нажал ентер и в это время должна произойти операция, но я не могу выловить момент когда ячейка перестает быть редактируемой... перепробовал кучу вариантов.
Автор: mdid
Дата сообщения: 27.05.2010 16:18
Zaragossa
onValidate?
Автор: Zaragossa
Дата сообщения: 27.05.2010 16:36
mdid
Спасибо. Помогло!


Добавлено:
И сразу второй вопрос, как увидеть число в ячейки если оно еще редактируется(в режиме редактирования). что то такого типа table1.datacontroller.getvalue(0,1) не проходит, получаю пустое значение.
Автор: marser
Дата сообщения: 27.05.2010 20:29
Zaragossa

Цитата:
как увидеть число в ячейки если оно еще редактируется(в режиме редактирования)


Код: procedure TForm1.cxGrid1TableView1Column1PropertiesChange(Sender: TObject);
begin
if TcxCustomEdit(Sender).ModifiedAfterEnter then
ShowMessage(VarToStr(TcxCustomEdit(Sender).EditingValue));
end;

procedure TForm1.cxGrid1TableView1Column1PropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
begin
ShowMessage(VarToStr(DisplayValue));
end;
Автор: V1s1ter
Дата сообщения: 27.05.2010 22:35
V1s1ter

Цитата:
Подскажите чегото после обновление с 47 на 49 версию Printing System перестал печатать. Предварительный просмотр все в норме, но с принтера пустые листы лезут. Если сохранять (средвствами Printing System) в pdf, то все в норме. Коды еще не смотрел, но может кто уже знает где собака порылась?

Отвечаю сам себе.
В настройках принтера нужно найти поле похожеена режим (оптимизация) печати, которое имеет два варианта установки растр и вектор. Нужно установить в растр.
Автор: korstin
Дата сообщения: 28.05.2010 03:14
Всем доброго дня.

Хочу выложить на панель инструментов ButtonEdit. Использую либо связку TcxButtonEdit с TdxBarControlContainerItem, либо TcxBarEditItem c Properties = ButtonEdit.
Так вот вопрос: как расположить их по всей длине панели? Align = iaClient не помогает. В случае с TdxBarControlContainerItem выставлял Anchors у TcxButtonEdit - в дизайнтайме при изменении формы длина TcxButtonEdit увеличивается. В рантайме же длина фиксирована. Сейчас обхожусь изменением TcxBarEditItem.Width в FormResize, но мне это не нравится
Автор: Zaragossa
Дата сообщения: 28.05.2010 08:39
marser

Помог второй способ! Спасибо!!!!
Автор: tanaseduard
Дата сообщения: 28.05.2010 10:19
Создаю свой popup для CxGrid.
Как узнать где именно было вызванно меню (Header,Footer,Cell,GroupFooter,GroupRow)?
Автор: Sufferer
Дата сообщения: 28.05.2010 10:20
Приветствую коллеги.
Уже 4 тома написали по этим компонентам. Пора издавать отдельной книгой DevExpres Q&A
Вопрос наверняка подымался, но я что-то не нашел ответа.
Итак есть TcxGrid и есть необходимость заполнить его фотками из файлов. Но для грида датасоурса нет, поэтому грузить фотки надо видимо сразу в DataController. Колонку с полем типа TcxImage в гриде я сделал. Добавить строки не проблема, но как загрузить фотки?
Автор: linker_2009
Дата сообщения: 28.05.2010 10:43
[b]Sufferer[/b]
расматривался пример на TIcon
http://forum.ru-board.com/topic.cgi?forum=33&topic=10884&start=440#18
Если будет не понятно, спрашивайте.

[b][s]Добавлено:[/s][/b]
[b]tanaseduard[/b]
на Onpopap
[code]
var
p : TPoint;
begin
p.X:=mouse.CursorPos.X;
p.Y:=mouse.CursorPos.Y;
p:=<view>.ViewInfo.Site.ScreenToClient(p);

if (<view>.ViewInfo.GetHitTest(p.X,p.Y).HitTestCode=htCell) then
[/code]
htCell - это ячейка
все остальные константы ищите в справке по слову HitTests
Автор: tanaseduard
Дата сообщения: 28.05.2010 11:21
linker_2009. Огромное спасибо.

Если не затруднит еще сказать как при событии понять на какой колонке произошло событие.
Думал использовать FocusedColumn:=TcxGridDBColumn(tv.Controller.FocusedColumn);
Но это отработает только для htCell, а вот для htFooter,htFooterCell,htColumnHeader не будет работать, как узнать для этих типов где было OnPopup.
Также как узнать типы данных используемые в колонке если она не DBColumn(в это случае смотрю на DataSource.FieldByName и определяю какого он типа, но это только для DBView). Привяжу это к футеру и группировке.
Автор: linker_2009
Дата сообщения: 28.05.2010 12:29
[b]tanaseduard[/b]
все что нужно вам есть в демки
ExpressQuantumGrid 6\Demos\Delphi\GridMenuViewsDemo\
Если нет демок скинте мне в личку ваш ящик, я вам скину эту демку
Автор: afiget
Дата сообщения: 28.05.2010 12:59
korstin
Автоматически - никак. Только изменять ширину контрола в ран-тайм.
Автор: indapublic
Дата сообщения: 28.05.2010 15:22
afiget, это такой баг? Align в Properties же присутствует
Автор: afiget
Дата сообщения: 28.05.2010 17:01
indapublic
Если вас устроит поведение контрола при Align=iaClient для dxBar.UseRestSpace=true, то используйте на здоровье. Но работать оно будет только для крайнего контрола на тулбаре.
Автор: Sufferer
Дата сообщения: 29.05.2010 14:34
linker_2009 - спасибо за ссылочку, но там несколько не то. Как внести данные в TcxImage я знаю, я не пойму как мне внести эти данные в cxGrid?
Вот пробую так:

Код:
Var
         JpgData: PChar;
...        
    JpgData := PChar(AllocMem(qPhoto.FieldByName('Размер').AsInteger));
FS := TFileStream.Create(DBPath+'OB_PHOTO.h'+IntToHex(qPhoto.FieldByName('N файла').AsInteger,2), fmOpenRead);
FS.Seek(qPhoto.FieldByName('Нач.Данных').AsInteger+16, soFromBeginning);
FS.ReadBuffer(JpgData^, qPhoto.FieldByName('Размер').AsInteger);
// Тут я для теста сохраняю в JPEG-файлы
FS1 := TFileStream.Create(Format('c:\5\%d.jpg',[qPhoto.RecNo]), fmCreate);
FS1.WriteBuffer(JpgData^, qPhoto.FieldByName('Размер').AsInteger);
FS1.Free;
// Все нормально создается. Файл содержит JPEG-изображение
frmMain.cxGrid2TableView1.DataController.Values[qPhoto.RecNo-1,1] := JpgData^;
FS.Free;
Автор: linker_2009
Дата сообщения: 29.05.2010 16:28
Sufferer
там ключевой момент был в том, что бы использовать TStringStream

Код:
var
filename:string;
ss:tstringstream;
begin
filename:='C:\002.jpg';
ss:=tstringstream.Create;
ss.LoadFromFile(filename);
cxGrid1TableView1.DataController.Values[0,0]:=ss.DataString;
ss.Free;
end;
Автор: Sufferer
Дата сообщения: 29.05.2010 16:52
linker_2009
Что-то я ничего на почту не получил
Не, TStringStream мне не подойдет для загрузки файла, у меня каждый файл по 500Мб, мне его грузить нафик не нужно весь, только кусочками. Но у вас после выполнения:

Код: cxGrid1TableView1.DataController.Values[0,0]:=ss.DataString;
Автор: linker_2009
Дата сообщения: 29.05.2010 17:18
[b]Sufferer[/b]
а так бы и сказали что по кускам,через stream тоже можно.
[q]Надо посмотреть чем отличаются тогда мой буфер и тот что TStringStream создает.[/q]
сори на первый взгляд,думал что ошибка, сейчас посмотрел, вроде все правильно.
вы не забыли в properties указать Image?
а там еще формат
выставить TJPEGImage.
У меня с яндекса почемуто не ушло, отправлял повторно с Gmail.
Автор: Sufferer
Дата сообщения: 29.05.2010 17:20
Так, кое-что начинает прояснятся. Это как-то D2009 с его поддержкой Ansi похоже мне гадит. После изменения типа на PAnsiChar строки стали несколько похожи, но еще не то. Понятно в общем направление мысли. Спасибо - буду искать.
Автор: SIgor33
Дата сообщения: 31.05.2010 15:51
используя обработчик BeforePost для DataSet Если я делаю DataSet.Cancel то вылазит ошибка что невозможно вставить явное значение столбца идентификаторов таблицы main когда параметр identity_insert имеет значение off, если же жму кнопку отмены на навигаторе у GridDBTableView то все нормально отменяется в чем может быть проблема?
Автор: marser
Дата сообщения: 31.05.2010 16:24
SIgor33
Для отмены операции Post в обработчике события BeforePost попробуйте написать Abort

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


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