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

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

Автор: G1zm0
Дата сообщения: 01.06.2011 07:36
эм...
наверное, я, конечно криво делаю, но я делаю так :
есть Контрагенты, у них есть отсрочка, и вот когда я в одной дате(типа Дата когда пришел документ) тыкаю, следом смотрится в базе сколько дней отсрочки у сего контрагента и в СрокеОплаты выставляется нужное число, можно конечно автоматом, но с ЕдитамиКакТо сподручней, как-то так
Автор: marser
Дата сообщения: 01.06.2011 07:59
G1zm0
А cxEditRepository тут причем? Есть cxDateEdit.EditValue, есть DataSet.FieldByName и т.д.
Автор: G1zm0
Дата сообщения: 01.06.2011 08:04
marser
там я ткнул DateEdit. и присвоих в cxGrid колонке сейс DateEdit.и жаждил им манипулировать по не получилось
Автор: marser
Дата сообщения: 01.06.2011 08:29
G1zm0

Цитата:
там я ткнул DateEdit. и присвоих в cxGrid колонке сейс DateEdit.и жаждил им манипулировать по не получилось

Про cxGrid упоминания не было. Научитесь понятно задавать вопросы. Например, в сфокусированной записи присвоить ячейке текущую дату, можно так

Код: if not (DataSet.State in dsEditModes) then DataSet.Edit;
cxGrid1DBTableView1Column1.EditValue := Date;
Автор: G1zm0
Дата сообщения: 01.06.2011 09:08
marser
мммм.. уже в сто раз лучше это помогло, понять хоть одну тему.


Код: if not (DM.CDS.DAtaset.State in dsEditModes) Then DM.CDS.DAtaset.Edit;
View0S_O.EditValue:=IncDay(Now,DM.Cont.Fields.FieldByName('SO').asInteger);
Автор: marser
Дата сообщения: 01.06.2011 09:43
G1zm0

Цитата:
Научитесь понятно задавать вопросы

DateEdit - зто что?
Автор: G1zm0
Дата сообщения: 01.06.2011 09:50
marser
Я буду стараться обещаю, а DateEdit есть ни что иное как:
cxEditRepository1DateItem1
про репозиторий же изначально было)
в свойствах TcxGridDBColumn есть RepositoryItem туда я и вставляю сей cxEditRepository1DateItem1 ака DateEdit
Автор: marser
Дата сообщения: 01.06.2011 10:05
G1zm0
Да оставте Вы cxEditRepository1DateItem1 в покое. Нет там не каких значений дат, и быть не может.

Цитата:
я в одной дате(типа Дата когда пришел документ) тыкаю,

Если я правильно Вас понял, то нужно брать дату из той ячейки, в которую тыкаю.

Код: View0S_O.EditValue:=IncDay(VarToDateTime(<Колонка, в которую тыкаю>.EditValue), DM.Cont.Fields.FieldByName('SO').asInteger);
Автор: G1zm0
Дата сообщения: 01.06.2011 10:21
marser
что-то я попробовал сей VarToDateTime, а он по какой-то причине матерится "E2003 Undeclared indentifier" а модули вроде все подключены, оч странно, и в инете пишут, должно работать, но нет
Автор: marser
Дата сообщения: 01.06.2011 10:26
G1zm0
Модуль Variants.
cxEditRepositoryDateItem нужен для того, чтобы в нескольких колонках с датами, не заполнять во всех колонках <Колонка>.Properties, а задать свойства один раз в cxEditRepositoryDateItem и "подцепить" его в <Колонка>.Repository. Надеюсь понятно?
Автор: G1zm0
Дата сообщения: 01.06.2011 10:35
marser
О, Спасибо мега мудрый человек - все работает, теперь полноценный продукт, можно отдавать экономистам


Код: if not (DM.CDS.DAtaset.State in dsEditModes) Then DM.CDS.DAtaset.Edit;
View0S_O.EditValue:=IncDay(VarToDateTime(View0D_D.EditVaLue),DM.Cont.Fields.FieldByName('SO').asInteger);
Автор: vcrank
Дата сообщения: 02.06.2011 12:07
Что-то фигня какая-то творится с cxGrid
У cxGridDBTableMain в событии onCellDblClick прописываю код (допустим, что это ShowMessssage('text')) и это событие наступает если сделать даблклик только по границе колонки (+/- 1-2 пикселя)
Колонка, по которой делаю даблклик запрещена для редактирования.
Раньше точно помню, что писал нечто подобное и событие onCellDblClick наступало при двойном щелчке даже по центру ячейки


И ещё вопрос вспомнил. На днях добавил в свой проект TcxRichEdit и обычный RichEdit . Поэксперементировал и понял, что они мне не нужны. Удалил компоненты, удалил связанные с ними юниты, а размер EXE увеличился на 10 Мб. И не пойму из-за чего
Автор: Man_Without_Face
Дата сообщения: 02.06.2011 14:14
vcrank

Цитата:
На днях добавил в свой проект TcxRichEdit

Возможно дело в скинах? Посмотри в Uses.
Автор: vcrank
Дата сообщения: 02.06.2011 19:57

Цитата:
Возможно дело в скинах? Посмотри в Uses.

Не, скины отсутствуют и пока что отключены
Есть какой-нибудь способ узнать какая форма сколько весу добавляет? Или Отдельно взятый юнит...
Автор: V1s1ter
Дата сообщения: 02.06.2011 21:31
vcrank

Цитата:
Есть какой-нибудь способ узнать какая форма сколько весу добавляет? Или Отдельно взятый юнит...

Есть - посмотреть размер файла dcu.
Автор: fm7450
Дата сообщения: 03.06.2011 00:20
Подскажите, плиз. Использую cxGridChartView , DiagramBar. По оси Х -целочисленные значения. По оси У - некие строковые значения. Как добавить подписи к столбцам диаграммы такого типа: "значение по Х" + "значение по У"?
Автор: vcrank
Дата сообщения: 03.06.2011 13:53

Цитата:
Есть - посмотреть размер файла dcu

Размер всех DCU всего 3 Мб
Автор: X11
Дата сообщения: 03.06.2011 14:08
Кто работал с несколькими языками и TcxLocalizer, дайте подсказку.

Нужно наполнить Combobox доступными языками, показать активный, который был при загрузке программы и дать пользователю выбрать другой из списка.




Код: for i := 0 to cxLocalizer1.Languages.Count - 1 do
cboxLang.Properties.Items.AddObject(cxLocalizer1.Languages[i].Name, Pointer(cxLocalizer1.Languages[i].LocaleID));

cboxLang.Text := cxLocalizer1.Language;
Автор: V1s1ter
Дата сообщения: 03.06.2011 16:10
vcrank

Цитата:
Размер всех DCU всего 3 Мб

Тогдв и размер программы ~3 Мб, но видимо вы схитрили со словом "все". Потому как Вы не учли файлы пакетов (bpl), которые тоже "состоят" из dcu, которые не вошли в ваше "все".
Если здать для линковщика создавать map-файл, то можно посмотреть какие файлы ресурсов еще подсоединяются.
Еще что у вас стоит в настройках компилятора по поводу использования runtime пакетов.
Автор: vcrank
Дата сообщения: 06.06.2011 07:53

Цитата:
но видимо вы схитрили со словом "все"

Я не специально
Да и размер стандартных компонентов, используемых в проекте достаточно мал (меню, кнопки, панели). Обычно, если использовать только их, то размер программы около 1 Мб

Цитата:
Если здать для линковщика создавать map-файл, то можно посмотреть какие файлы ресурсов еще подсоединяются.

Ну после присоединения FastReport объём EXE вырос ещё на 3 Мб, но это не существенно по сравнению с теми 10 Мб за "ничто"
В map-файле очень много всего. Попробую поковырять на днях

Цитата:
Еще что у вас стоит в настройках компилятора по поводу использования runtime пакетов.

Всё стоит по дефолту для Delphi XE
Автор: X11
Дата сообщения: 06.06.2011 09:04
Кому интересно, вот мой украинский перевод DevExpress, основанный на переводе из инсталла feandy: http://rghost.ru/9566861
Автор: vcrank
Дата сообщения: 06.06.2011 11:20
Тяжело начинается неделя...
Напомните, что надо поменять в dxBarManager, чтобы отображалась Иконка и Текст
Автор: zaroman
Дата сообщения: 06.06.2011 12:53
Помогите, пожалуйста!
Нужно было сделать в cxGrid-е summary не просто Count, а distinct count. Нашел у Dev-а на сайте:

Код:

procedure TForm1.viewCountryCustomDrawFooterCell(Sender: TcxGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo;
var ADone: Boolean);
var
I, DataGroupIndex: Integer;
GridRecord: TcxCustomGridRow;
Column: TcxGridDBColumn;
vi: TcxGridRowFooterCellViewInfo;

RecordIndexes: TList;
DisctinctList: TStringList;
begin
if AViewInfo is TcxGridRowFooterCellViewInfo then // Row footer
begin
vi := AViewInfo as TcxGridRowFooterCellViewInfo;
Column := TcxGridDBTableSummaryItem(vi.SummaryItem).Column as TcxGridDBColumn;

if Column.DataBinding.FieldName = 'Area' then // Area column
begin
GridRecord := vi.GridRecord;
DataGroupIndex := Sender.DataController.Groups.DataGroupIndexByRowIndex[GridRecord.Index];
if DataGroupIndex <> -1 then
begin
RecordIndexes := TList.Create;
DisctinctList := TStringList.Create;
DisctinctList.Sorted := True;
DisctinctList.Duplicates := dupIgnore;

try
Sender.DataController.Groups.LoadRecordIndexes(RecordIndexes, DataGroupIndex);

for I := 0 to RecordIndexes.Count - 1 do
DisctinctList.Add(Sender.DataController.Values[Integer(RecordIndexes[I]), Column.Index]);

AViewInfo.Text := 'Disctinct count: ' + IntToStr(DisctinctList.Count);
finally
RecordIndexes.Free;
DisctinctList.Free;
end;
end;
end;
end;
end;

Автор: skinash
Дата сообщения: 07.06.2011 08:21
Научите, как в TcxGridDBTableView сделать, чтобы после добавления новой записи (Append) курсор ввода данных помещался в первое поле, чтобы не приходилось кликать туда мышкой, а можно было бы сразу начинать печатать текст?
Автор: marser
Дата сообщения: 07.06.2011 08:26
skinash
cxGridDBTableView.OptionsBehavior.FocusFirstCellOnNewRecord := True
Автор: skinash
Дата сообщения: 07.06.2011 08:36
marser, так и стоит. Но всё равно не работает, приходится мышкой кликать. А если сделать какой-нибудь SetFocus, то Append сбрасывается.

Добавлено:
marser, спасибо, победил. Ошибка в ДНК
Автор: mdid
Дата сообщения: 07.06.2011 10:24
хелп плиз..
создаем новый проект..кидаем barmanager..в нем создаем новую панель которую лепим вниз..
кидаем на форму cxpagecontrol делаем ему align=alBottomю.... в итоге page ниже панели...как его побороть что бы панель была ниже?
ПС
сделал через anchors
Автор: zaroman
Дата сообщения: 07.06.2011 15:24
К вопросу экспорта в Excel.

Нашел возможность устанавливать значения вручную

Код: <View>.DataController.Summary.FooterSummaryValues[0] := 10;
Автор: G1zm0
Дата сообщения: 08.06.2011 07:00
подскажите пожалуйста или направьте на пусть истинный
дилемма звучит так:
работает только с GridMode:=True;
но при включенном грид моде не работает сортинг

Код: With View0.DataController do
begin
for I := 0 to GetSelectedCount - 1 do
Begin
DataSet.BookMark:=GetSelectedBookMark(I);
C:=C+DataSet.FieldValues['SUM'];
C1:=C1+DataSet.FieldValues['Nalog'];
End;
end;
ShowMessage('Сумма : '+FloatToStrF(C,ffCurrency,10,2)+'р.'+#13+'Налог : '+
FloatToStrF(C1,ffCurrency,10,2)');
Автор: marser
Дата сообщения: 08.06.2011 08:48
G1zm0
Зачем Вам DataSet? Берите значения из грида (DataController.Values[]). А цикл по выделенным записям уже многократно обсуждался. Версия для печати, Ctrl + F и ищите, например, по ключевому слову "цикл".

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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