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

» Delphi DBPivotGrid Вычисляемые поля

Автор: xxbesoxx
Дата сообщения: 22.08.2013 12:11
Здравствуйте ребята. Задача такой , надо делать Вычисляемые поля из DBPivotGrid .
//---------------------------------------------------------------------------------------------------------

это из учебное базе Northwind

SQL


Код:
select UnitPrice, Quantity , ProductID
from [Order Details]
Автор: xxbesoxx
Дата сообщения: 23.08.2013 02:23
Второе пример и так тоже не правильно работает , Ребята пожалуйста помогите читает

Код: procedure TForm1.cxDBPivotGrid1Field1CalculateCustomSummary(
Sender: TcxPivotGridField; ASummary: TcxPivotGridCrossCellSummary);
begin
ASummary.Custom := ASummary.Owner.GetSummaryByField(cxDBPivotGrid1Quantity, stSum) *
ASummary.Owner.GetSummaryByField(cxDBPivotGrid1UnitPrice, stSum) ;
end;
Автор: reenoip
Дата сообщения: 23.08.2013 07:24

Цитата:
Ребята что я делаю не правильно ?


По DE вопрошать лучше там - ибо там вероятность ответа выше.
Автор: MGAlex
Дата сообщения: 23.08.2013 12:11

Цитата:
http://img690.imageshack.us/img690/4216/m7ta.jpg Вот скриншот

По скриншоту сложно что-то понять. Отметьте на нем, какие числа вы складываете и что получается.
Автор: xxbesoxx
Дата сообщения: 23.08.2013 12:26
UnitPrice = money тип поля денежные (валютные)

Quantity = smallint Типы точных числовых данных, использующие целые значения.

А потом добавляю DBPivotGrid поля и из свойства OnCalculateCustomSumary пишу следующий код


Код: procedure TForm1.cxDBPivotGrid1Field1CalculateCustomSummary(
Sender: TcxPivotGridField; ASummary: TcxPivotGridCrossCellSummary);
var
a , b: Double;
begin
a := ASummary.Owner.GetSummaryByField(cxDBPivotGrid1UnitPrice, stSum);
b := ASummary.Owner.GetSummaryByField(cxDBPivotGrid1Quantity, stSum);
cxDBPivotGrid1Field1.DataBinding.ValueType := 'Float';
ASummary.Custom := a * b;
Автор: MGAlex
Дата сообщения: 23.08.2013 12:44
В отладчике посмотрите, чему равняется ASummary.Owner.GetSummaryByField(cxDBPivotGrid1UnitPrice, stSum) и ASummary.Owner.GetSummaryByField(cxDBPivotGrid1Quantity, stSum)
Правильные ли значения Вы получаете.

Я так понимаю, 24,8 (UnitPrice) должно умножаться на Quantity (14, 15, 16, 20, 24, 30)
И соответственно, в последней колонке должны быть такие значения:
347,2
372
369,8
496
595,2
744
Автор: xxbesoxx
Дата сообщения: 23.08.2013 13:09
Не понял что я делаю не правильно ! Да вы хорошо понимаите что я хочу делать, да так точно .

Я так понимаю, 24,8 (UnitPrice) должно умножаться на Quantity (14, 15, 16, 20, 24, 30)
И соответственно, в последней колонке должны быть такие значения:
347,2
372
369,8
496
595,2
744


Вот у меня как получается , Почему ? что я делаю не правильно ? Пожалуйста помогите

Добавлено:
Почему такой результат ? http://img716.imageshack.us/img716/5712/0m32.jpg

Добавлено:
Здесь тоже самое http://img844.imageshack.us/img844/3949/00uy.jpg
Автор: MGAlex
Дата сообщения: 23.08.2013 14:49
Что говорит отладчик? Какие значения передаются переменным a и b?
Автор: xxbesoxx
Дата сообщения: 23.08.2013 15:16
MGAlex Друг поменял переменное , Но тоже не правильный результат


Код: procedure TForm1.cxDBPivotGrid1Field1CalculateCustomSummary(
Sender: TcxPivotGridField; ASummary: TcxPivotGridCrossCellSummary);
var
a : real;
b: integer;
begin
a := ASummary.Owner.GetSummaryByField(cxDBPivotGrid1UnitPrice, stSum);
b := ASummary.Owner.GetSummaryByField(cxDBPivotGrid1Quantity, stSum);
cxDBPivotGrid1Field1.SummaryType := stCustom;
cxDBPivotGrid1Field1.DataBinding.ValueType := 'Float';
if a <> 0 then
ASummary.Custom := a * b
else
ASummary.Custom := 0
end;
Автор: MGAlex
Дата сообщения: 23.08.2013 15:33
Вы можете сказать, какое число присваивается переменной a и какое переменной b?
Поставьте Breakpoint и по F8 пройдитесь по процедуре.
Автор: xxbesoxx
Дата сообщения: 23.08.2013 15:57
а UnitPrice = money
---------------------------
24,80
5,50
2,30


b Quantity = smallint
----------------------------------
5
2
3
4
8

http://img843.imageshack.us/img843/5229/xa5c.jpg

В примере выбрал это

Добавлено:
Задача такой что именно из DBPivotGrid ..... Пожалуйста 2 день сижу и не как не магу получить правильни результат... Пожалуйста помогите как это делать ?
Автор: MGAlex
Дата сообщения: 23.08.2013 17:30
Значит, проблема в ASummary.Custom
Попробуйте использовать не Custom, а другое значение.
Автор: xxbesoxx
Дата сообщения: 23.08.2013 18:13
Все это перепробовал и не компилируется
----------------------------------------------------------
Average
Sum
Variance
VarianceP
Count
DataField
StdDev
GetValue


подходящий вот это . Но результат тоже самое
------------------------------------------------------------------
SummaryVariation


Да , такой дела. Что вы скажете ? Как можно реализовать вычисляемые поля из DBPivotGrid
Автор: MGAlex
Дата сообщения: 23.08.2013 19:15
Вот здесь есть тема подобная:
http://www.devexpress.com/Support/Center/Question/Details/Q137659


Код: procedure TRBPivotForm.OnCustomCalculation(Sender: TcxPivotGridField;
ASummary: TcxPivotGridCrossCellSummary);
....
tmpField:= FindField('Sum1');
ASummary.Custom:= ASummary.Owner.GetSummaryByField(tmpField, stCustom);
...
end;
Автор: xxbesoxx
Дата сообщения: 23.08.2013 23:47
Подобная тема есть да много. Но там нету осмысленный имя не одного {поля} и код не магу почитать. У меня нету опить работы DevExpress VCL если бы это задача был SQL , можно делать легко и просто.


Код: select UnitPrice, Quantity , ProductID , vichSumm= (UnitPrice * Quantity)
from [Order Details]
Автор: MGAlex
Дата сообщения: 24.08.2013 00:38
Дело в том, что у меня не установлены DevExpress VCL. Особой нужды в них у меня нет, поэтому особого опыта работы с "девками" у меня нет. Когда-то давно использовал ExpressBars.

Но тут главное принцип.

Для начала попробуйте сделать сложение, как в примере, который я привел выше. Будет ли правильно складывать.

Вполне возможно, что этот грид не умеет умножать.
Автор: xxbesoxx
Дата сообщения: 24.08.2013 01:16
MGAlex Я тоже не люблю , Но это задача понимайте ? ..... Вполне возможно, что этот грид не умеет умножать. Я понимаю, Но если скажу что не возможно и потом можно.... Это не красиво, Мне надо увидит реальный пример. если в общем можно .
MGAlex Я думал что вы знали и за это пишу...... Я Прошу прошения, Какой смысл ваши ответь здесь ? Я не понимаю ....
все равно спасибо за поддержку
-----------------------------------------------------------------------
РЕБЯТА ТЕМА ЕЩЕ АКТУАЛЬНО

Добавлено:
Сам не разбирали, не знайте и меня отвечайте еще здесь..... http://forum.ru-board.com/topic.cgi?forum=33&topic=10884&start=5160#lt Я не понимаю смысл ваши ответа..... Это все пустой разговор .....
Автор: MGAlex
Дата сообщения: 24.08.2013 10:58

Цитата:
Я Прошу прошения, Какой смысл ваши ответь здесь ? Я не понимаю ....

В программировании думать надо и пробовать, а не ждать готового ответа. Никто за Вас ничего делать не будет.
Автор: xxbesoxx
Дата сообщения: 24.08.2013 11:35
MGAlex Вы не рассказывайте меня пожалуйста сказка ...... Форуме для того что бы помогать друг-другу , если человек что то не понял показать простои пример ! Ваши разговор пустои и даже больше отвлекаете .....
Цитата:
думать надо и пробовать
= Да вы что рассказчик . Вам наверно скучно и делать нечего
Автор: MGAlex
Дата сообщения: 24.08.2013 12:11
xxbesoxx
Вы сначала научитесь мысли излагать корректно. Читать вас - ломать глаза. Такое ощущение, что текст переведен гуглом с арабского.
Как Вам помочь, если Вы даже думать не хотите?
Такое ощущение, что вы программировать только вчера начали, элементарно по отладчику посмотреть не можете, что к чему.
Автор: xxbesoxx
Дата сообщения: 24.08.2013 12:25
MGAlex Спасибо . Я вчера начинал да , А вы прошлом году.... Вы правильно заметили....

Добавлено:
Да, да, да
Автор: MGAlex
Дата сообщения: 24.08.2013 15:33
xxbesoxx
Вам бы русский язык подучить для начала, а потом уже начинать программировать, а то, боюсь, пользователи не поймут, что Вы им донести хотите. Янеестьзнаюпониматьчтовыестьговоритеспасибопожалуйстадосвидания.
Автор: xxbesoxx
Дата сообщения: 24.08.2013 16:30
MGAlex Что вы не поняли из моего вопрос ? ВЫ ПРОСТО ПЕРЕКРЫВАЙТЕ ВАШИ БЕЗ СМЫШЛЕНЫЙ РАЗГОВОР ... Я УЧУСЬ ДА РУССКИЙ ЯЗЫК , А ВЫ НАУЧИТЕСЬ ОБЩАТЬСЯ С ЛЮДЬМИ ПОЖАЛУЙСТА....
ФОРУМЕ ЗАХОДИТ И РАЗГОВАРИВАЕТ НЕ ТОЛЬКО ,,РУССКИЙ " НА ДАННЫХ ИМЕЕТ НЕ ИМЕЕТ ЗНАЧЕНИЯ ЭТО....
ВЫ ПРОСТО РАССКАЗЧИК ... Я САМ РАЗБЕРУСЬ БЕЗ ВАШЕГО { СКАЗКУ }
Автор: MGAlex
Дата сообщения: 24.08.2013 16:49
xxbesoxx
Прежде чем писать свои каракули, почитайте правила:

Цитата:

1.Официальный язык форума — русский.
2.В исключительных случаях допускается создание тем и сообщений на английском языке, но только если иное не оговорено в Правилах раздела.


Читать Ваш набор букв - себя не уважать. Это никак нельзя назвать русским языком.

Мало того, что в русском языке Вы полный ноль, Вы и в программировании, я вижу, не далеко ушли.
Автор: xxbesoxx
Дата сообщения: 24.08.2013 17:24
Да, да Спасибо.... Я тоже вижу кто вы ..... Вам делать нечего да ? Великий программист спасибо за оценки

Добавлено:
MGAlex Не одного форуме не встретил такого, как вы ! Вы отвлекаете людей и потом говорите = Дело в том, что у меня не установлены DevExpress VCL. Особой нужды в них у меня нет, поэтому особого опыта работы с "девками" у меня нет. Когда-то давно использовал ExpressBars. и после это вы нормальны ????
Вам лечить надо ....... Пожалуйста не отвлекаете
Автор: MGAlex
Дата сообщения: 24.08.2013 17:58
xxbesoxx
Это тбея леичть ндао. Пргораиммрование не заключеатся в ондом компноенте. Елси ты не пониамешь стуи, то нитко тбее не поомжет. Сам виидшь, что на товю каркаули нкито, крмое мнея не реагриует. Я напсиал тбее, кдуа смортеть, но елси ты не пониамешь русксий и стуи программиорвания, то ккаой смсыл с тообй обащться?

Идиучиматчастьумник.

Что, гугл не помог? И не поможет. Вот так и тебя с твоей никчемной писаниной никто не понимает.
Автор: xxbesoxx
Дата сообщения: 24.08.2013 18:14
MGAlex Успокойтесь пожалуйста ! Вот вы уже ошибка допустили на родном языке

то ккаой смсыл = Что это ?

тбее не поомжет = это не каракули ????

---------------------------------------------------------------------------------------------
Вы очень сильно переживайте. Но так и есть !!! Ваши разговор бессмысленно !!! каракул

Добавлено:
MGAlex Может закончим . А то вы очень переживайте, и я не хочу что вы так переживались ..... Все будет хорошо . не надо

Добавлено:
Пргораиммрование не заключеатся в ондом компноенте = Да я знаю . Но мне интересно можно или нет из это компонента ..... Ладно MGAlex пожалуйста не надо....


Я не знаю нечего . Но за то вы знайте да, так и ест
Автор: MGAlex
Дата сообщения: 24.08.2013 18:24

Цитата:
Вот вы уже ошибка допустили на родном языке

Правда? А я и не знал.
Я Вам привел наглядный пример того, как пишите Вы, только еще хуже. Вас читать просто не реально. Это просто набор фраз с миллиардом ошибок, не говоря уже о знаках препинания.
Не надейтесь, что Вам здесь кто-то поможет.
Автор: xxbesoxx
Дата сообщения: 24.08.2013 18:41
MGAlex Пожалуйста не надо...... давай помиримся , не надо спорить и тратить время за это... У меня много Русский друзья , и они меня поправляет что я говорил и писал правильно .......
Так что я очень хорошо отношусь Русский людьми, и вы меня не обижаетесь если я не Русский и чуть ошибка допустил
Автор: MGAlex
Дата сообщения: 24.08.2013 19:11
Посмотрите эту тему http://www.devexpress.com/Support/Center/Question/Details/Q137659
Может, поможет.

Попробуйте не средствами PivotGrid умножать, а в коде и просто выводить готовое значение.

Страницы: 12

Предыдущая тема: Раскидать файлы по папкам


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