Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress

Модерирует : ShIvADeSt

ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DevExpress

Обмен опытом, обсуждение нюансов и решение проблем возникающих при использовании библиотеки компонент Developer Express




 
Сами прирученные компоненты частенько приходят на водопой сюда

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:42 08-10-2003 | Исправлено: golkanavt, 15:41 08-09-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PocoBOR

Цитата:
в самой FB+ DataSet? научите как в ней это создавать...  

 
Излагаю на примере TQuery (у меня  нет FB).
У Вас вместо TQuery будет соответствующий ему в FB.  
1. Выделить мышью на форме TQuery, для которого создаем lookupfield.  
После этого открыть редактор полей для него - FieldsEditor, правой кнопкой мыши или
двойной клик по TQuery.
2. В появившемся окне редактора полей по правой кнопке мыши выбрать  
NewField.
3. В появившемся окне NewField поставить тип поля Lookup и заполнить все
остальные поля.
4. Нажать OK, после этого будет создано требуемое lookupfield.

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 11:13 13-01-2006 | Исправлено: Alex47, 11:15 13-01-2006
PocoBOR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сделал (вспомнил что такое уже делал как то
но вместо требуемого результата только пустые поля
 
 
KeyFields = часть IP адреса;порт  
LookupKeyFields = часть IP адреса;порт  
LookupDataSet = вторая таблица  
LookupResultField = направление
 
lookupcache=false
 
если делаю
 
KeyFields = порт  
LookupKeyFields = порт  
 
то результат выводится но не совсем коректный (берется первое значение соответсвуюшее запросу)

Всего записей: 41 | Зарегистр. 30-09-2003 | Отправлено: 12:19 13-01-2006
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Стандартная высота одной записи в Гриде - 16 пикселей.
Если добавить столбец с Properties ImageComboBox с картинками 16x16, то высота увеличивается до 18 пикселей.
 
Как возможно оставить высоту нетронутой?  
<GridTableView>.OptionsView.CellAutoHeight := False не выполняет задачу.

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 12:25 13-01-2006
PocoBOR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 Alex47
 
спасибо разобрался
 
Добавлено:
а еще вопрос: можно ли просуммировать несколько полей типа STRING и вывести в одном поле?

Всего записей: 41 | Зарегистр. 30-09-2003 | Отправлено: 12:32 13-01-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korobovmax
1. Можно попробовать использовать обработчик  
 
View.OnGetCellHeight
 
2. Посмотрите в http://www.devexpress.com/Support/KnowledgeBase
статью с индексом 334 (dxEQG4_CustomViewRowHeightDelphi.zip)

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 13:59 13-01-2006 | Исправлено: Alex47, 14:00 13-01-2006
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а еще вопрос: можно ли просуммировать несколько полей типа STRING и вывести в одном поле?

Можно через calculated поля TpFIBDataSet, но я обычно такие вещи делаю в запросе типа:
 
  select
     t1.field1||' '||t2.field2
  from
     TABLE1 t1

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 14:06 13-01-2006
PocoBOR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA
 
у меня нет такой возможности потому что в базе хранятся численные значения, а в гриде преобразуются в удобопонимаемое значение. так что нужно именно это удобопонимаемые значения обединить в один столбец

Всего записей: 41 | Зарегистр. 30-09-2003 | Отправлено: 14:09 13-01-2006 | Исправлено: PocoBOR, 14:10 13-01-2006
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PocoBOR
Тогда создай вычисляемое поле, делается это аналогично созданию LookUp полей, только Field Type ставишь calculated, а в обработчике OnCalcFields пишешь что надо делать.
 
procedure TdmUsers.itShablonParamsCalcFields(DataSet: TDataSet);
begin
  DataSet.FieldByName('MyCalcField').asString := 'Вася купил ' +  
    DataSet. FieldByName('FIELD1').asString + ' ящиков пива';
end;
 
 
 
Добавлено:
 Стоп, я не совсем понял что значит

Цитата:
 а в гриде преобразуются в удобопонимаемое значение
?
Если ты имеешь ввиду справочники, которые ты визуализируешь через LookUp и тебе необходимо соединять значения LookupResultField, то все решается обычным join'ом в запросе, если что-то другое, тогда поясни.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 14:22 13-01-2006
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alex47, благодарю.

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 16:41 13-01-2006
minkus



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть связка Master/Detail в cxGrid-e в Detail-e есть Summary, нужнл при изменение итога по Detail изменить соответственно и запись в Mastere. Как правилно ето сделать оставаясь в Detail-e  
 
Спасибо!

Всего записей: 31 | Зарегистр. 29-03-2003 | Отправлено: 15:08 14-01-2006
xokc

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PocoBOR

Цитата:
у меня нет такой возможности потому что в базе хранятся численные значения, а в гриде преобразуются в удобопонимаемое значение. так что нужно именно это удобопонимаемые значения обединить в один столбец

Если речь идет о значениях не полей БД, а столбцов грида, то лучше объединять их в обработчике события OnGetDisplayText или OnGetDataText для соответсвтвующей колонки грида:
 
procedure TMainForm.ResColGetDisplayText(Sender: TcxCustomGridTableItem;
  ARecord: TcxCustomGridRecord; var AText: string);
begin
  AText := VarToStrDef(ARecord.Values[Col1.Index], '') + VarToStrDef(ARecord.Values[Col2.Index], '');
end;

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 11:09 15-01-2006
programmist27

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите кто может!
 
У меня сразу несколько вопросов если можно.
 
1. Как сделать разным цветом строчки в cxListBoxe?  
2. Как это же сделать в cxGridDBTableView ?  
 
Допустим я хочу некоторые строчки сделать зеленые а другие синие.
 
И еще я не могу разобраться с ImageComboBox в cxGridDBTableView.
У меня есть cxGridDBTableView в котором один из columns я выбрал  
Properties->ImageComboBox.
В Properties->Images я засунул ImageList1 а как в коде выставить для определённой строчки какой image из ImageList я хочу?
 
Извините что так много - давно копаюсь накипело...

Всего записей: 2 | Зарегистр. 15-01-2006 | Отправлено: 19:51 15-01-2006
xokc

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Допустим я хочу некоторые строчки сделать зеленые а другие синие

Читай хелп:
 
procedure TForm1.cxListBox1DrawItem(AControl: TcxListBox;
  ACanvas: TcxCanvas; AIndex: Integer; ARect: TRect;
  AState: TOwnerDrawState);
var
  AText: string;
  ABkGColor, ATextColor: TColor;
  ATextRect: TRect;
begin
  if odSelected in AState then
  begin
    ABkGColor := $008DEFF1;
    ATextColor := $005079BE;
  end
  else
    if Odd(AIndex) then
    begin
 
      ABkGColor := $00E8C5A8;
      ATextColor := clBlue;
    end
    else
      begin
        ABkGColor := $00F19F3A;
        ATextColor := clWhite;
      end;
 
  ACanvas.Brush.Color := ABkGColor;
  ACanvas.Font.Color := ATextColor;
 
  ACanvas.FillRect(ARect);
  AText := AControl.Items[AIndex];
  ATextRect := ARect;
  ATextRect.Left := ATextRect.Left + 3;
  ACanvas.DrawTexT(AText, ATextRect, 0);
end;
 
 
 
Добавлено:

Цитата:
И еще я не могу разобраться с ImageComboBox в cxGridDBTableView

Так оно само должно выставиться в зависимости от значения поля в БД

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 23:28 15-01-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
programmist27

Цитата:
В Properties->Images я засунул ImageList1 а как в коде выставить для определённой строчки какой image из ImageList я хочу?  

Заполни Properties->Items  

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 23:43 15-01-2006
vadson6666



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, помогите со следующей проблемой: имеется ДевЭкс Грид, ДББандедТаблеВиев, необходимо по двойному клику определить где же конкретно нажали-на данных или нет, в зависимости от результата либо вызывать обработку, либо нет. Пробовал через датавью смотреть имя класса, все время пишет 'TcxGridDataRow' не важно на чем было нажатие на заголовке колонки или Банде, грид имеет свойство Мультиселект в Фалсе. Как добиться нормальной обработки?

Всего записей: 267 | Зарегистр. 08-07-2004 | Отправлено: 06:26 16-01-2006
golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vadson6666

Код:
 
procedure TfmYourForm.YourViewDblClick(Sender: TObject);
var
  P: TPoint;
  AHitTest: TcxCustomGridHitTest;
begin
  GetCursorPos(P);
  with TcxGridSite(Sender) do
  begin
    P := ScreenToClient(P);
    AHitTest := tvbOrders.ViewInfo.GetHitTest(P);
    AHitTest := TcxGridSite(Sender).GridView.ViewInfo.GetHitTest(P);
    if (AHitTest.HitTestCode in [htCell, htRecord]) then DoSomethingHere
      else
        if (AHitTest.HitTestCode in [htFilter]) then YourView.Filtering.RunCustomizeDialog;
  end;
end;
 

 
а вообще, RTFM

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 11:19 16-01-2006 | Исправлено: golkanavt, 11:27 16-01-2006
DeepTown

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плиз имеется ли возможность cxDateEdit убрать кнопку с календарем?
 
Или как заставить cxMaskEdit (MaskKind=emkRegExpr; EditMask=Date (([012]?[1-9] | [123]0 |31) / (0?[1-9] | 1[012]) / ([123][0-9])? [0-9][0-9]);) в случае ввода двух цифирь года, отобразить все четыре как это происходит в cxDateEdit, да и при использовании стандартного MaskEdit (EditMask="!99/99/0000;1;_")

Всего записей: 78 | Зарегистр. 30-05-2002 | Отправлено: 12:30 16-01-2006
vadson6666



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
golkanavt
   
Биг санкс, извините, втупил... Все работает!

Всего записей: 267 | Зарегистр. 08-07-2004 | Отправлено: 12:35 16-01-2006
alex242



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alex47, благодарю.

Всего записей: 72 | Зарегистр. 11-11-2002 | Отправлено: 14:58 16-01-2006
programmist27

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Properties->Items заполнен , но я не знаю как в runtime выбрать объект из items для показа!

Всего записей: 2 | Зарегистр. 15-01-2006 | Отправлено: 15:33 16-01-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress
ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru