Доброго дня. У меня такой вопрос. Есть cxGrid1DBTableView1 с данными. Мне нужно передать результат после фильтрации данных в другой cxGrid1DBTableView2. Эта вьюха без колонок, пустая. Думал сделать просто cxGrid1DBTableView1:=cxGrid1DBTableView2. Но на экране пусто. Делаю проверку cxGrid1DBTableView2.DatController.FilteredRecordCount показывает что есть записи. Что я делаю не так? Или так делать вообще нельзя? Просто мне нужно в одну вьюху передавать резултаты фильтрации разных по содержанию вьюшек
» Использование DevExpress (часть 4)
Цитата:
Доброго дня. У меня такой вопрос. Есть cxGrid1DBTableView1 с данными. Мне нужно передать результат после фильтрации данных в другой cxGrid1DBTableView2. Эта вьюха без колонок, пустая. Думал сделать просто cxGrid1DBTableView1:=cxGrid1DBTableView2. Но на экране пусто. Делаю проверку cxGrid1DBTableView2.DatController.FilteredRecordCount показывает что есть записи. Что я делаю не так? Или так делать вообще нельзя? Просто мне нужно в одну вьюху передавать резултаты фильтрации разных по содержанию вьюшек
cxGrid1DBTableView1:=cxGrid1DBTableView2 - так точно нельзя))) Думаю стоит пробежаться по FilteredRecordCount в cxGrid1DBTableView2 и построчно добавить их в cxGrid1DBTableView1. А скопировать настройки грида cxGrid1DBTableView1.Assign(cxGrid1DBTableView2) - естественно перед добавлением записей.
подскажите плз..есть грид с группировкой..как получить все записи которые относятся к группировке?
то есть нажал усер на любую запись в данной группировке а получаем все
то есть нажал усер на любую запись в данной группировке а получаем все
linker_2009
Цитата:
Спасибо, работает.
Цитата:
<TcxGridDBTableView>.DataController.Refresh;
Спасибо, работает.
crazypiggy
Есть такой вариант:
1. копируете данные в TdxMemData при помощи класса TcxGridToMemTable из uCxGridToMemTable.pas;
2. второму гриду цепляете этот TdxMemData.
uCxGridToMemTable.pas делал один из участников ветки, кто не помню(ему респект), искать не буду, привожу текст здесь.
[more=uCxGridToMemTable.pas]
unit uCxGridToMemTable;
interface
uses
cxGridDBTableView, cxGridCustomTableView, dxmdaset, DB, Classes, dxCore;
Type
TcxGridToMemTable = class(TObject)
private
fGrid: TcxCustomGridTableView;
fMemData: TdxMemData;
function GetValidName(AOwner: TComponent; AName: string): string;
procedure LoadAllRecords();
procedure LoadSelectedRecords();
protected
public
constructor Create(grid1: TcxCustomGridTableView; memdata1: TdxMemData = nil);
destructor Destroy; override;
procedure CreateFields();
procedure LoadData(bOnlySelected: boolean);
end;
implementation
uses
SysUtils, Dialogs, cxGridDBBandedTableView, cxCustomData;
{ TcxGridToMemTable }
constructor TcxGridToMemTable.Create(grid1: TcxCustomGridTableView; memdata1: TdxMemData = nil);
begin
//если не передаём в класс memdata1, то создаём его сами
if memdata1 = nil then
fMemData := TdxMemData.Create(nil)
else
fMemData := memdata1;
fGrid := grid1;
end;
destructor TcxGridToMemTable.Destroy;
begin
if fMemData <> nil then FreeAndNil(fMemData);
inherited;
end;
function TcxGridToMemTable.GetValidName(AOwner: TComponent;
AName: string): string;
var
I: Integer;
begin
//фунцию выдрал из модуля dxmdaset.pas
for I := 1 to Length(AName) do
if not (dxCharInSet(AName[I], ['A'..'z']) or dxCharInSet(AName[I], ['0'..'9'])) then
AName[I] := '_';
if dxCharInSet(AName[1], ['0'..'9']) then
AName := '_' + AName;
Result := AName;
I := 0;
while AOwner.FindComponent(Result) <> nil do
begin
Result := AName + IntToStr(I);
Inc(I);
end
end;
procedure TcxGridToMemTable.LoadAllRecords;
Var
i, f: integer;
FieldVal: Variant;
begin
//загружаем только видимые записи, т.к. пользователь может отфильтровать некоторые записи
fMemData.open;
if fGrid is TcxGridDBBandedTableView then
with TcxGridDBBandedTableView(fGrid) do
for I := 0 to fGrid.DataController.FilteredRecordCount - 1 do
begin
fMemData.Append;
for f := 0 to ColumnCount - 1 do
if fMemData.FindField(columns[f].DataBinding.Field.FieldName) <> nil then
begin
FieldVal := DataController.Values[DataController.FilteredRecordIndex[i], columns[f].Index];
fMemData.FieldByName(columns[f].DataBinding.Field.FieldName).Value := FieldVal;
end;//for f := 0 to ColumnCount - 1 do
fMemData.post;
end;//for I := 0 to fGrid.DataController.FilteredRecordCount - 1 do
if fGrid is TcxGridDBTableView then
with TcxGridDBTableView(fGrid) do
for I := 0 to fGrid.DataController.FilteredRecordCount - 1 do
begin
fMemData.Append;
for f := 0 to ColumnCount - 1 do
if fMemData.FindField(columns[f].DataBinding.Field.FieldName) <> nil then
begin
FieldVal := DataController.Values[DataController.FilteredRecordIndex[i], columns[f].Index];
fMemData.FieldByName(columns[f].DataBinding.Field.FieldName).Value := FieldVal;
end;//for f := 0 to ColumnCount - 1 do
fMemData.post;
end;//for I := 0 to fGrid.DataController.FilteredRecordCount - 1 do
end;
procedure TcxGridToMemTable.LoadData(bOnlySelected: boolean);
begin
fMemData.Open;
case bOnlySelected of
True : LoadSelectedRecords;
False: LoadAllRecords;
end;
end;
procedure TcxGridToMemTable.LoadSelectedRecords;
Var
i, f: integer;
FieldVal: Variant;
ARowIndex: Integer;
ARowInfo: TcxRowInfo;
begin
//загружаем только видимые записи, т.к. пользователь может отфильтровать некоторые записи
fMemData.open;
if fGrid is TcxGridDBBandedTableView then
with TcxGridDBBandedTableView(fGrid), TcxGridDBBandedTableView(fGrid).DataController do
begin
beginupdate;
try
for I := 0 to GetSelectedCount - 1 do
begin
ARowIndex := GetSelectedRowIndex(I);
ARowInfo := GetRowInfo(ARowIndex);
if ARowInfo.Level < Groups.GroupingItemCount then
Continue
else
begin
fMemData.Append;
for f := 0 to ColumnCount - 1 do
if fMemData.FindField(columns[f].DataBinding.Field.FieldName) <> nil then
begin
FieldVal := Values[ARowInfo.RecordIndex, columns[f].Index];
fMemData.FieldByName(columns[f].DataBinding.Field.FieldName).Value := FieldVal;
end;//for f := 0 to ColumnCount - 1 do
fMemData.post;
end;
end;//for I := 0 to GetSelectedCount - 1 do
finally
endupdate;
end;
end;//with
if fGrid is TcxGridDBTableView then
with TcxGridDBTableView(fGrid), TcxGridDBTableView(fGrid).DataController do
begin
beginupdate;
try
for I := 0 to GetSelectedCount - 1 do
begin
ARowIndex := GetSelectedRowIndex(I);
ARowInfo := GetRowInfo(ARowIndex);
if ARowInfo.Level < Groups.GroupingItemCount then
Continue
else
begin
fMemData.Append;
for f := 0 to ColumnCount - 1 do
if fMemData.FindField(columns[f].DataBinding.Field.FieldName) <> nil then
begin
FieldVal := Values[ARowInfo.RecordIndex, columns[f].Index];
fMemData.FieldByName(columns[f].DataBinding.Field.FieldName).Value := FieldVal;
end;//for f := 0 to ColumnCount - 1 do
fMemData.post;
end;
end;//for I := 0 to GetSelectedCount - 1 do
finally
endupdate;
end;
end;//with
end;
procedure TcxGridToMemTable.CreateFields();
Var
i: integer;
AField: TField;
begin
fMemData.close;
//удаляем все поля, чтобы создать их заново
with fMemData do
while FieldCount > 1 do
Fields[FieldCount - 1].Free;
if fGrid is TcxGridDBBandedTableView then
with TcxGridDBBandedTableView(fGrid) do
begin
for i := 0 to ColumnCount - 1 do
if Columns[i].Visible then
with TField.Create(fMemData) do
begin
AField := DefaultFieldClasses[Columns[i].DataBinding.Field.DataType].Create(fMemData);
AField.Name := GetValidName(fMemData, Name + Columns[i].DataBinding.Field.FieldName);
AField.DisplayLabel := Columns[i].DataBinding.Field.DisplayLabel;
AField.DisplayWidth := Columns[i].DataBinding.Field.DisplayWidth;
AField.EditMask := Columns[i].DataBinding.Field.EditMask;
AField.FieldName := Columns[i].DataBinding.Field.FieldName;
AField.Visible := Columns[i].DataBinding.Field.Visible;
AField.FieldKind := Columns[i].DataBinding.Field.FieldKind;
AField.DataSet := fMemData;
end;//with TField.Create(fMemData) do
fMemData.FieldDefs.Update;
end;//with TcxGridDBTableView(fGrid) do
if fGrid is TcxGridDBTableView then
with TcxGridDBTableView(fGrid) do
begin
for i := 0 to ColumnCount - 1 do
if Columns[i].Visible then
with TField.Create(fMemData) do
begin
AField := DefaultFieldClasses[Columns[i].DataBinding.Field.DataType].Create(fMemData);
AField.Name := GetValidName(fMemData, Name + Columns[i].DataBinding.Field.FieldName);
AField.DisplayLabel := Columns[i].DataBinding.Field.DisplayLabel;
AField.DisplayWidth := Columns[i].DataBinding.Field.DisplayWidth;
AField.EditMask := Columns[i].DataBinding.Field.EditMask;
AField.FieldName := Columns[i].DataBinding.Field.FieldName;
AField.Visible := Columns[i].DataBinding.Field.Visible;
AField.FieldKind := Columns[i].DataBinding.Field.FieldKind;
AField.DataSet := fMemData;
end;//with TField.Create(fMemData) do
fMemData.FieldDefs.Update;
end;//with TcxGridDBTableView(fGrid) do
end;
end.
[/more]
upd Нашел, автор X11
Есть такой вариант:
1. копируете данные в TdxMemData при помощи класса TcxGridToMemTable из uCxGridToMemTable.pas;
2. второму гриду цепляете этот TdxMemData.
uCxGridToMemTable.pas делал один из участников ветки, кто не помню(ему респект), искать не буду, привожу текст здесь.
[more=uCxGridToMemTable.pas]
unit uCxGridToMemTable;
interface
uses
cxGridDBTableView, cxGridCustomTableView, dxmdaset, DB, Classes, dxCore;
Type
TcxGridToMemTable = class(TObject)
private
fGrid: TcxCustomGridTableView;
fMemData: TdxMemData;
function GetValidName(AOwner: TComponent; AName: string): string;
procedure LoadAllRecords();
procedure LoadSelectedRecords();
protected
public
constructor Create(grid1: TcxCustomGridTableView; memdata1: TdxMemData = nil);
destructor Destroy; override;
procedure CreateFields();
procedure LoadData(bOnlySelected: boolean);
end;
implementation
uses
SysUtils, Dialogs, cxGridDBBandedTableView, cxCustomData;
{ TcxGridToMemTable }
constructor TcxGridToMemTable.Create(grid1: TcxCustomGridTableView; memdata1: TdxMemData = nil);
begin
//если не передаём в класс memdata1, то создаём его сами
if memdata1 = nil then
fMemData := TdxMemData.Create(nil)
else
fMemData := memdata1;
fGrid := grid1;
end;
destructor TcxGridToMemTable.Destroy;
begin
if fMemData <> nil then FreeAndNil(fMemData);
inherited;
end;
function TcxGridToMemTable.GetValidName(AOwner: TComponent;
AName: string): string;
var
I: Integer;
begin
//фунцию выдрал из модуля dxmdaset.pas
for I := 1 to Length(AName) do
if not (dxCharInSet(AName[I], ['A'..'z']) or dxCharInSet(AName[I], ['0'..'9'])) then
AName[I] := '_';
if dxCharInSet(AName[1], ['0'..'9']) then
AName := '_' + AName;
Result := AName;
I := 0;
while AOwner.FindComponent(Result) <> nil do
begin
Result := AName + IntToStr(I);
Inc(I);
end
end;
procedure TcxGridToMemTable.LoadAllRecords;
Var
i, f: integer;
FieldVal: Variant;
begin
//загружаем только видимые записи, т.к. пользователь может отфильтровать некоторые записи
fMemData.open;
if fGrid is TcxGridDBBandedTableView then
with TcxGridDBBandedTableView(fGrid) do
for I := 0 to fGrid.DataController.FilteredRecordCount - 1 do
begin
fMemData.Append;
for f := 0 to ColumnCount - 1 do
if fMemData.FindField(columns[f].DataBinding.Field.FieldName) <> nil then
begin
FieldVal := DataController.Values[DataController.FilteredRecordIndex[i], columns[f].Index];
fMemData.FieldByName(columns[f].DataBinding.Field.FieldName).Value := FieldVal;
end;//for f := 0 to ColumnCount - 1 do
fMemData.post;
end;//for I := 0 to fGrid.DataController.FilteredRecordCount - 1 do
if fGrid is TcxGridDBTableView then
with TcxGridDBTableView(fGrid) do
for I := 0 to fGrid.DataController.FilteredRecordCount - 1 do
begin
fMemData.Append;
for f := 0 to ColumnCount - 1 do
if fMemData.FindField(columns[f].DataBinding.Field.FieldName) <> nil then
begin
FieldVal := DataController.Values[DataController.FilteredRecordIndex[i], columns[f].Index];
fMemData.FieldByName(columns[f].DataBinding.Field.FieldName).Value := FieldVal;
end;//for f := 0 to ColumnCount - 1 do
fMemData.post;
end;//for I := 0 to fGrid.DataController.FilteredRecordCount - 1 do
end;
procedure TcxGridToMemTable.LoadData(bOnlySelected: boolean);
begin
fMemData.Open;
case bOnlySelected of
True : LoadSelectedRecords;
False: LoadAllRecords;
end;
end;
procedure TcxGridToMemTable.LoadSelectedRecords;
Var
i, f: integer;
FieldVal: Variant;
ARowIndex: Integer;
ARowInfo: TcxRowInfo;
begin
//загружаем только видимые записи, т.к. пользователь может отфильтровать некоторые записи
fMemData.open;
if fGrid is TcxGridDBBandedTableView then
with TcxGridDBBandedTableView(fGrid), TcxGridDBBandedTableView(fGrid).DataController do
begin
beginupdate;
try
for I := 0 to GetSelectedCount - 1 do
begin
ARowIndex := GetSelectedRowIndex(I);
ARowInfo := GetRowInfo(ARowIndex);
if ARowInfo.Level < Groups.GroupingItemCount then
Continue
else
begin
fMemData.Append;
for f := 0 to ColumnCount - 1 do
if fMemData.FindField(columns[f].DataBinding.Field.FieldName) <> nil then
begin
FieldVal := Values[ARowInfo.RecordIndex, columns[f].Index];
fMemData.FieldByName(columns[f].DataBinding.Field.FieldName).Value := FieldVal;
end;//for f := 0 to ColumnCount - 1 do
fMemData.post;
end;
end;//for I := 0 to GetSelectedCount - 1 do
finally
endupdate;
end;
end;//with
if fGrid is TcxGridDBTableView then
with TcxGridDBTableView(fGrid), TcxGridDBTableView(fGrid).DataController do
begin
beginupdate;
try
for I := 0 to GetSelectedCount - 1 do
begin
ARowIndex := GetSelectedRowIndex(I);
ARowInfo := GetRowInfo(ARowIndex);
if ARowInfo.Level < Groups.GroupingItemCount then
Continue
else
begin
fMemData.Append;
for f := 0 to ColumnCount - 1 do
if fMemData.FindField(columns[f].DataBinding.Field.FieldName) <> nil then
begin
FieldVal := Values[ARowInfo.RecordIndex, columns[f].Index];
fMemData.FieldByName(columns[f].DataBinding.Field.FieldName).Value := FieldVal;
end;//for f := 0 to ColumnCount - 1 do
fMemData.post;
end;
end;//for I := 0 to GetSelectedCount - 1 do
finally
endupdate;
end;
end;//with
end;
procedure TcxGridToMemTable.CreateFields();
Var
i: integer;
AField: TField;
begin
fMemData.close;
//удаляем все поля, чтобы создать их заново
with fMemData do
while FieldCount > 1 do
Fields[FieldCount - 1].Free;
if fGrid is TcxGridDBBandedTableView then
with TcxGridDBBandedTableView(fGrid) do
begin
for i := 0 to ColumnCount - 1 do
if Columns[i].Visible then
with TField.Create(fMemData) do
begin
AField := DefaultFieldClasses[Columns[i].DataBinding.Field.DataType].Create(fMemData);
AField.Name := GetValidName(fMemData, Name + Columns[i].DataBinding.Field.FieldName);
AField.DisplayLabel := Columns[i].DataBinding.Field.DisplayLabel;
AField.DisplayWidth := Columns[i].DataBinding.Field.DisplayWidth;
AField.EditMask := Columns[i].DataBinding.Field.EditMask;
AField.FieldName := Columns[i].DataBinding.Field.FieldName;
AField.Visible := Columns[i].DataBinding.Field.Visible;
AField.FieldKind := Columns[i].DataBinding.Field.FieldKind;
AField.DataSet := fMemData;
end;//with TField.Create(fMemData) do
fMemData.FieldDefs.Update;
end;//with TcxGridDBTableView(fGrid) do
if fGrid is TcxGridDBTableView then
with TcxGridDBTableView(fGrid) do
begin
for i := 0 to ColumnCount - 1 do
if Columns[i].Visible then
with TField.Create(fMemData) do
begin
AField := DefaultFieldClasses[Columns[i].DataBinding.Field.DataType].Create(fMemData);
AField.Name := GetValidName(fMemData, Name + Columns[i].DataBinding.Field.FieldName);
AField.DisplayLabel := Columns[i].DataBinding.Field.DisplayLabel;
AField.DisplayWidth := Columns[i].DataBinding.Field.DisplayWidth;
AField.EditMask := Columns[i].DataBinding.Field.EditMask;
AField.FieldName := Columns[i].DataBinding.Field.FieldName;
AField.Visible := Columns[i].DataBinding.Field.Visible;
AField.FieldKind := Columns[i].DataBinding.Field.FieldKind;
AField.DataSet := fMemData;
end;//with TField.Create(fMemData) do
fMemData.FieldDefs.Update;
end;//with TcxGridDBTableView(fGrid) do
end;
end.
[/more]
upd Нашел, автор X11
crazypiggy а ещё можно в тырнете почитать про клонирование объектов в Delphi.
В процедуру передаётся ссылка на TcxGridDBTableView.
А как узнать cxGrid, которому принадлежит find этот cxGridDBTableView?
Find TcxGrid by TcxGridDBTableView.
Добавлено:
Нашёл <TcxGridDBTableView>.GetParentComponent
А как узнать cxGrid, которому принадлежит find этот cxGridDBTableView?
Find TcxGrid by TcxGridDBTableView.
Добавлено:
Нашёл <TcxGridDBTableView>.GetParentComponent
cxGrid1DBTableView1.Level.GetParentComponent
X11
function cxGrid_FromTableView(TableView: TcxCustomGridTableView): TcxGrid;
begin
if Assigned(TableView) and (TableView.Control is TcxGrid) then
Result := TcxGrid(TableView.Control)
else
Result := nil;
end;
function cxGrid_FromTableView(TableView: TcxCustomGridTableView): TcxGrid;
begin
if Assigned(TableView) and (TableView.Control is TcxGrid) then
Result := TcxGrid(TableView.Control)
else
Result := nil;
end;
Прошу помощи по компоненту cxDBCheckComboBox.
То, что его следует заполнят вручную - уже разобрался.
Проблема в другом. В общем, датасет возвращает sys_refcursor с полем из таблицы. Далее, на клиенте в компоненте создаю Items:
<cxDBCheckComboBox>.Properties.Items.AddCheckItem(<Query>.FieldByName('NAME').Value)
В итоге получаю комбобокс со списком, НО чекбоксы в нем находятся в режиме false (то есть без галочки). Мне нужно, чтобы весь список был отмечен и пользователь мог сам ставить/снимать галочки.
В какую сторону копать?
То, что его следует заполнят вручную - уже разобрался.
Проблема в другом. В общем, датасет возвращает sys_refcursor с полем из таблицы. Далее, на клиенте в компоненте создаю Items:
<cxDBCheckComboBox>.Properties.Items.AddCheckItem(<Query>.FieldByName('NAME').Value)
В итоге получаю комбобокс со списком, НО чекбоксы в нем находятся в режиме false (то есть без галочки). Мне нужно, чтобы весь список был отмечен и пользователь мог сам ставить/снимать галочки.
В какую сторону копать?
Здравствуйте, помогите пожалуйста - cxDBPivotGrid, не могу править значения. Пробую обычный cxGrid, привязанный к тому-же DataSource - проблем нет (запрос сгенерирован в дизайн-тайме на апдейт, компонент UniDac, но думаю дело не в этом). Может какие свойства компонента надо подправить , ковырял, ковырял так и не получилось. Если необходимы дополнительные сведения, приведу, без проблем, а может и сходу подскажите. Спасибо.
Здоровеньки
В RUN TIME установка Имени Скина приводит вобще к сбросу Скина (прости меня русский язык)
dxSkinController1.SkinName:='Coffe';
В RUN TIME установка Имени Скина приводит вобще к сбросу Скина (прости меня русский язык)
dxSkinController1.SkinName:='Coffe';
xyebiz
В зависимости от того что стойт в <TcxDBCheckComboBox>.Properties.EditValueFormat нужно вставить значение в <TcxDBCheckComboBox>.EditValue;
Например для cvfInteger и для двух добавленых полей нужно выставить 3;
IronMan182
Скина с названием "Coffe" нет, есть "Coffee".
В зависимости от того что стойт в <TcxDBCheckComboBox>.Properties.EditValueFormat нужно вставить значение в <TcxDBCheckComboBox>.EditValue;
Например для cvfInteger и для двух добавленых полей нужно выставить 3;
IronMan182
Скина с названием "Coffe" нет, есть "Coffee".
linker_2009
Ох якорь мне в жоппу !! А ведь точно !!!!
Ох якорь мне в жоппу !! А ведь точно !!!!
Будьте добры, подскажите, каким образом можно удалить конкретный критерий в фильтре грида?
Предположим, установлено множество критериев (NUMBER <> 1) И (NUMBER <> 2) И (NUMBER <> 3) ...
И нужно программно удалить второй критерий. Как это проще всего сделать?
Спасибо.
Предположим, установлено множество критериев (NUMBER <> 1) И (NUMBER <> 2) И (NUMBER <> 3) ...
И нужно программно удалить второй критерий. Как это проще всего сделать?
Спасибо.
xyebiz
cxGrid1TableView1.DataController.Filter.Root.Items[1].Free;
cxGrid1TableView1.DataController.Filter.Root.Items[1].Free;
Всем доброго времени суток!
Подскажите, как в cxScheduler выделить интервал времени, ресурс которого берётся из комбо-бокса?
Я хочу использовать cxScheduler1.SelectTime, но последний параметр не знаю, какой указать. Просто указать cxLookupCombobox.EditValue не могу, т.к. там тип Variant, а нужен 'TcxSchedulerStorageResourceItem'
Ресурс cxScheduler и cxLookupCombobox.ListSource ссылаются на один и тот же датасет.
Подскажите, как в cxScheduler выделить интервал времени, ресурс которого берётся из комбо-бокса?
Я хочу использовать cxScheduler1.SelectTime, но последний параметр не знаю, какой указать. Просто указать cxLookupCombobox.EditValue не могу, т.к. там тип Variant, а нужен 'TcxSchedulerStorageResourceItem'
Ресурс cxScheduler и cxLookupCombobox.ListSource ссылаются на один и тот же датасет.
Цитата:
cxGrid1TableView1.DataController.Filter.Root.Items[1].Free;
Да, в этом я разобрался. Но мне, прежде чем обратиться к item по индексу, нужно знать этот индекс, т.к. порядок критериев в списке заведомо неизвестен.
Требуется перед установкой критерия пробегаться по списку Items и проверять, если ли уже такой. Если есть, то удалять его, если нет, то добавить.
Но как это проверять - вот это вопрос.
xyebiz
for I := 0 to cxGrid1TableView1.DataController.Filter.Root.Count - 1 do
if TcxFilterCriteriaItem(cxGrid1TableView1.DataController.Filter.Root.Items[I]).??? = ??? then
У TcxFilterCriteriaItem(cxGrid1TableView1.DataController.Filter.Root.Items[I]) есть свойства
DisplayValue, ItemLink(Колонка), OperatorKind и т.д.
Добавлено:
xyebiz
Имейте ввиду, что Items[I] может быть как TcxFilterCriteriaItem, так и TcxFilterCriteriaItemList
for I := 0 to cxGrid1TableView1.DataController.Filter.Root.Count - 1 do
if TcxFilterCriteriaItem(cxGrid1TableView1.DataController.Filter.Root.Items[I]).??? = ??? then
У TcxFilterCriteriaItem(cxGrid1TableView1.DataController.Filter.Root.Items[I]) есть свойства
DisplayValue, ItemLink(Колонка), OperatorKind и т.д.
Добавлено:
xyebiz
Имейте ввиду, что Items[I] может быть как TcxFilterCriteriaItem, так и TcxFilterCriteriaItemList
marser, большое спасибо!
проблемы с cxDateEdit в XE2, devex 11.1.6
AV и кривой какой-то
вот так выглядит :
в ХЕ всё нормально
это у меня что-то съехало или где ?
может кто сталкивался ?
AV и кривой какой-то
вот так выглядит :
в ХЕ всё нормально
это у меня что-то съехало или где ?
может кто сталкивался ?
Может кто-то хотя бы просто пользовался функцией SelectTime ?
maxz
Покажи лучше стек. Из него легче будет понять причину ...
Покажи лучше стек. Из него легче будет понять причину ...
maxz, http://forum.ru-board.com/topic.cgi?forum=33&topic=10884&start=3100#17
Кстати, так же выглядит и калькулятор. И куча проблем с записями содержащими русские буквы в гридах.
Но, вроде, скоро увидим 1.7. В копилке уже появились хелпы и демы.
Кстати, так же выглядит и калькулятор. И куча проблем с записями содержащими русские буквы в гридах.
Но, вроде, скоро увидим 1.7. В копилке уже появились хелпы и демы.
Знатоки DevExpress подскажите:
При печати задаю кол-во копий - но всё равно выходит только одна (FinePrint). Где копать?
При печати задаю кол-во копий - но всё равно выходит только одна (FinePrint). Где копать?
А пробовали вывод на печать на другой принтер? (не на FinePrint) Может причина именно в FinePrint?
Corsairs
Пробовал. На реальный принтер работает. Но FastReport, EhLib и т.д. работает нормально и на виртуалку (FinePrint). Значит проблема в девках. или я не прав?
Пробовал. На реальный принтер работает. Но FastReport, EhLib и т.д. работает нормально и на виртуалку (FinePrint). Значит проблема в девках. или я не прав?
Странная картина...
Только что проверил (Delphi 7, Developer Express 57, FinePrint 6.25) - запустил на печать через FinePrint 5 страниц... Вышли все 5... (правда, запускал из дизайнера)
Я не являюсь знатоком DevExpress, так что более конкретный совет дать не могу... Может, проблема в используемой версии?
Только что проверил (Delphi 7, Developer Express 57, FinePrint 6.25) - запустил на печать через FinePrint 5 страниц... Вышли все 5... (правда, запускал из дизайнера)
Я не являюсь знатоком DevExpress, так что более конкретный совет дать не могу... Может, проблема в используемой версии?
Привет всем
В есть простенький проект по загрузке платежек. В качестве ДБ юзается sqlmemtable (http://aidaim.com/products/delphi.php#sqlmemtable). На версии 4.5 все работало как часы но после обновления начались бока: на sqlmemtable5 cxGrid напрочь отказывается показывать лукап-поля причем если установить фокус на лукап поле содержимое показывается правильно. Помогает также перевод грида в GridMode но это "неайс" т.к. нужно заботиться о пересчете футера и фильтрации по значениям в колонках
в хистори новой версии sqlmemtable есть это:
- New memory table SQL engine from Accuracer v.6 - 100% Unicode, more fast and powerful.
позможно проблема из-за этих изменений. но почему обычный грид работает ?
не подскажете в чес может быть дело?
если к датасорсу подключить обычный дбгрид он показывает все нормально. вот для примера 2грида (обычный и cx) смотрящие на один сорс
В есть простенький проект по загрузке платежек. В качестве ДБ юзается sqlmemtable (http://aidaim.com/products/delphi.php#sqlmemtable). На версии 4.5 все работало как часы но после обновления начались бока: на sqlmemtable5 cxGrid напрочь отказывается показывать лукап-поля причем если установить фокус на лукап поле содержимое показывается правильно. Помогает также перевод грида в GridMode но это "неайс" т.к. нужно заботиться о пересчете футера и фильтрации по значениям в колонках
в хистори новой версии sqlmemtable есть это:
- New memory table SQL engine from Accuracer v.6 - 100% Unicode, more fast and powerful.
позможно проблема из-за этих изменений. но почему обычный грид работает ?
не подскажете в чес может быть дело?
если к датасорсу подключить обычный дбгрид он показывает все нормально. вот для примера 2грида (обычный и cx) смотрящие на один сорс
apnss, версии студии и дев?
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.