» Использование DevExpress (часть 4)
Andryshok
ну вообще то лучше это сделать через базовую форму, в которой прописать нужный функционал, а все остальные формы наследовать от этой базовой формы.
ну вообще то лучше это сделать через базовую форму, в которой прописать нужный функционал, а все остальные формы наследовать от этой базовой формы.
Добрый день. Помогите разобраться с 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
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
crazypiggy
Цитата:
Я бы плясал бы от выделенной ячейки в PivotGrid. Почему именно строка ? Или ты берешь значение, которое для всей строки постоянно ?
Цитата:
Как мне пройтись именно по фильтрованной строке и получить её параметр?
Я бы плясал бы от выделенной ячейки в PivotGrid. Почему именно строка ? Или ты берешь значение, которое для всей строки постоянно ?
Устанавливаю фильтр по номерам. А когда пытаюсь пройти по строкам
Код: 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
Код: 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
crazypiggy
конкретно по картинке тебе чего надо передать в FastReport ?
конкретно по картинке тебе чего надо передать в FastReport ?
linker_2009
поставил OptionsData.Editing:=false все заработало.
Спасибо.
ЗЫ в гриде превью фото
поставил OptionsData.Editing:=false все заработало.
Спасибо.
ЗЫ в гриде превью фото
jonikDk
Мне надо передать № (номер) . 1-й столбец
Вроде сам разобрался.
Мне надо передать № (номер) . 1-й столбец
Вроде сам разобрался.
Пожалуйста подскажите как узнать когда ячейка перестает быть в режиме редактирования.
Т.Е. вбил значение в ячейку(cxGrid) нажал ентер и в это время должна произойти операция, но я не могу выловить момент когда ячейка перестает быть редактируемой... перепробовал кучу вариантов.
Т.Е. вбил значение в ячейку(cxGrid) нажал ентер и в это время должна произойти операция, но я не могу выловить момент когда ячейка перестает быть редактируемой... перепробовал кучу вариантов.
Zaragossa
onValidate?
onValidate?
mdid
Спасибо. Помогло!
Добавлено:
И сразу второй вопрос, как увидеть число в ячейки если оно еще редактируется(в режиме редактирования). что то такого типа table1.datacontroller.getvalue(0,1) не проходит, получаю пустое значение.
Спасибо. Помогло!
Добавлено:
И сразу второй вопрос, как увидеть число в ячейки если оно еще редактируется(в режиме редактирования). что то такого типа table1.datacontroller.getvalue(0,1) не проходит, получаю пустое значение.
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;
Цитата:
как увидеть число в ячейки если оно еще редактируется(в режиме редактирования)
Код: 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
Цитата:
Отвечаю сам себе.
В настройках принтера нужно найти поле похожеена режим (оптимизация) печати, которое имеет два варианта установки растр и вектор. Нужно установить в растр.
Цитата:
Подскажите чегото после обновление с 47 на 49 версию Printing System перестал печатать. Предварительный просмотр все в норме, но с принтера пустые листы лезут. Если сохранять (средвствами Printing System) в pdf, то все в норме. Коды еще не смотрел, но может кто уже знает где собака порылась?
Отвечаю сам себе.
В настройках принтера нужно найти поле похожеена режим (оптимизация) печати, которое имеет два варианта установки растр и вектор. Нужно установить в растр.
Всем доброго дня.
Хочу выложить на панель инструментов ButtonEdit. Использую либо связку TcxButtonEdit с TdxBarControlContainerItem, либо TcxBarEditItem c Properties = ButtonEdit.
Так вот вопрос: как расположить их по всей длине панели? Align = iaClient не помогает. В случае с TdxBarControlContainerItem выставлял Anchors у TcxButtonEdit - в дизайнтайме при изменении формы длина TcxButtonEdit увеличивается. В рантайме же длина фиксирована. Сейчас обхожусь изменением TcxBarEditItem.Width в FormResize, но мне это не нравится
Хочу выложить на панель инструментов ButtonEdit. Использую либо связку TcxButtonEdit с TdxBarControlContainerItem, либо TcxBarEditItem c Properties = ButtonEdit.
Так вот вопрос: как расположить их по всей длине панели? Align = iaClient не помогает. В случае с TdxBarControlContainerItem выставлял Anchors у TcxButtonEdit - в дизайнтайме при изменении формы длина TcxButtonEdit увеличивается. В рантайме же длина фиксирована. Сейчас обхожусь изменением TcxBarEditItem.Width в FormResize, но мне это не нравится
marser
Помог второй способ! Спасибо!!!!
Помог второй способ! Спасибо!!!!
Создаю свой popup для CxGrid.
Как узнать где именно было вызванно меню (Header,Footer,Cell,GroupFooter,GroupRow)?
Как узнать где именно было вызванно меню (Header,Footer,Cell,GroupFooter,GroupRow)?
Приветствую коллеги.
Уже 4 тома написали по этим компонентам. Пора издавать отдельной книгой DevExpres Q&A
Вопрос наверняка подымался, но я что-то не нашел ответа.
Итак есть TcxGrid и есть необходимость заполнить его фотками из файлов. Но для грида датасоурса нет, поэтому грузить фотки надо видимо сразу в DataController. Колонку с полем типа TcxImage в гриде я сделал. Добавить строки не проблема, но как загрузить фотки?
Уже 4 тома написали по этим компонентам. Пора издавать отдельной книгой DevExpres Q&A
Вопрос наверняка подымался, но я что-то не нашел ответа.
Итак есть TcxGrid и есть необходимость заполнить его фотками из файлов. Но для грида датасоурса нет, поэтому грузить фотки надо видимо сразу в DataController. Колонку с полем типа TcxImage в гриде я сделал. Добавить строки не проблема, но как загрузить фотки?
[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
расматривался пример на 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
linker_2009. Огромное спасибо.
Если не затруднит еще сказать как при событии понять на какой колонке произошло событие.
Думал использовать FocusedColumn:=TcxGridDBColumn(tv.Controller.FocusedColumn);
Но это отработает только для htCell, а вот для htFooter,htFooterCell,htColumnHeader не будет работать, как узнать для этих типов где было OnPopup.
Также как узнать типы данных используемые в колонке если она не DBColumn(в это случае смотрю на DataSource.FieldByName и определяю какого он типа, но это только для DBView). Привяжу это к футеру и группировке.
Если не затруднит еще сказать как при событии понять на какой колонке произошло событие.
Думал использовать FocusedColumn:=TcxGridDBColumn(tv.Controller.FocusedColumn);
Но это отработает только для htCell, а вот для htFooter,htFooterCell,htColumnHeader не будет работать, как узнать для этих типов где было OnPopup.
Также как узнать типы данных используемые в колонке если она не DBColumn(в это случае смотрю на DataSource.FieldByName и определяю какого он типа, но это только для DBView). Привяжу это к футеру и группировке.
[b]tanaseduard[/b]
все что нужно вам есть в демки
ExpressQuantumGrid 6\Demos\Delphi\GridMenuViewsDemo\
Если нет демок скинте мне в личку ваш ящик, я вам скину эту демку
все что нужно вам есть в демки
ExpressQuantumGrid 6\Demos\Delphi\GridMenuViewsDemo\
Если нет демок скинте мне в личку ваш ящик, я вам скину эту демку
korstin
Автоматически - никак. Только изменять ширину контрола в ран-тайм.
Автоматически - никак. Только изменять ширину контрола в ран-тайм.
afiget, это такой баг? Align в Properties же присутствует
indapublic
Если вас устроит поведение контрола при Align=iaClient для dxBar.UseRestSpace=true, то используйте на здоровье. Но работать оно будет только для крайнего контрола на тулбаре.
Если вас устроит поведение контрола при Align=iaClient для dxBar.UseRestSpace=true, то используйте на здоровье. Но работать оно будет только для крайнего контрола на тулбаре.
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;
Вот пробую так:
Код:
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;
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;
там ключевой момент был в том, что бы использовать 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;
linker_2009
Что-то я ничего на почту не получил
Не, TStringStream мне не подойдет для загрузки файла, у меня каждый файл по 500Мб, мне его грузить нафик не нужно весь, только кусочками. Но у вас после выполнения:
Код: cxGrid1TableView1.DataController.Values[0,0]:=ss.DataString;
Что-то я ничего на почту не получил
Не, TStringStream мне не подойдет для загрузки файла, у меня каждый файл по 500Мб, мне его грузить нафик не нужно весь, только кусочками. Но у вас после выполнения:
Код: cxGrid1TableView1.DataController.Values[0,0]:=ss.DataString;
[b]Sufferer[/b]
а так бы и сказали что по кускам,через stream тоже можно.
[q]Надо посмотреть чем отличаются тогда мой буфер и тот что TStringStream создает.[/q]
сори на первый взгляд,думал что ошибка, сейчас посмотрел, вроде все правильно.
вы не забыли в properties указать Image?
а там еще формат
выставить TJPEGImage.
У меня с яндекса почемуто не ушло, отправлял повторно с Gmail.
а так бы и сказали что по кускам,через stream тоже можно.
[q]Надо посмотреть чем отличаются тогда мой буфер и тот что TStringStream создает.[/q]
сори на первый взгляд,думал что ошибка, сейчас посмотрел, вроде все правильно.
вы не забыли в properties указать Image?
а там еще формат
выставить TJPEGImage.
У меня с яндекса почемуто не ушло, отправлял повторно с Gmail.
Так, кое-что начинает прояснятся. Это как-то D2009 с его поддержкой Ansi похоже мне гадит. После изменения типа на PAnsiChar строки стали несколько похожи, но еще не то. Понятно в общем направление мысли. Спасибо - буду искать.
используя обработчик BeforePost для DataSet Если я делаю DataSet.Cancel то вылазит ошибка что невозможно вставить явное значение столбца идентификаторов таблицы main когда параметр identity_insert имеет значение off, если же жму кнопку отмены на навигаторе у GridDBTableView то все нормально отменяется в чем может быть проблема?
SIgor33
Для отмены операции Post в обработчике события BeforePost попробуйте написать Abort
Для отмены операции Post в обработчике события BeforePost попробуйте написать Abort
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.