On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 129
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 10.03.08 23:53. Заголовок: ANN: Вышел релиз FastReport for [x]Harbour (продолжение)


Здравствуйте.

Рад сообщить, что вышел релиз FastReport for [x]Harbour. Как всегда, информацию можно посмотреть:

http://www.paritetsoft.ru/frh.htm

Возможным русскоязычных покупателей лучше контактировать со мной напрямую по email. Цена для оплаты в рублях банковским переводом по выставленному счету- 9999 рублей.

--
Спирин Сергей.
Компания "Паритет Софт".
FRH sales: http://www.paritetsoft.ru/frh.htm
FRAX sales: http://www.hotsoft.ru/ALASKA/frax_eng.htm



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 268 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]


постоянный участник


Пост N: 424
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 31.08.10 17:00. Заголовок: PSP пишет: Можно ли..


PSP пишет:

 цитата:
Можно ли объединить два (или более) отчета в ран-тайме в Харборе?



Можно:

FrPrn:LoadFromFile(RepDir + "1.fr3")
FrPrn:PrepareReport()
FrPrn:LoadFromFile(RepDir + "4.fr3")
FrPrn:PrepareReport(FR_NOTCLEARLASTREPORT)
FrPrn:ShowPreparedReport()


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 85
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 31.08.10 17:12. Заголовок: Перекрёстная таблица - больная тема


А теперь вопрос на больную тему перекрёстных таблиц DBCrossTab.

Нужно, чтобы по строке выводился минимум, а по столбцу - сумма. Как это сделать? Если я ставлю одну аггрегирующую функцию - минимум, то и по строкам и по столбцам выходит только минимум. А если дополнительно добавляю сумму, то число столбцов удваивается, что недопустимо.

ФИРМА1 ФИРМА2 ФИРМА3 МИНИМУМ
001 Задание1 120,00 240,00 300,00 120,00
002 Задание2 100,00 200,00 250,00 100,00
==================================
ИТОГО 220,00 440,00 550,00 220,00

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 440
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.08.10 20:52. Заголовок: Sergey Spirin, огром..


Sergey Spirin, огромное мерси! :)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 441
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.08.10 21:01. Заголовок: Dr. Oldwarez, я бы п..


Dr. Oldwarez, я бы поиск минимума сделал до формирования отчета, а отчете использовал бы уже готовые значения.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 86
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 31.08.10 21:09. Заголовок: PSP пишет: я бы пои..


PSP пишет:

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



А где хранить эти минимумы?

Извините, но я ещё новичок в перекрёстных таблицах. Как-то до этой задачи не приходилось с ними работать...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 442
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.08.10 21:39. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
А где хранить эти минимумы?


Либо в dbf, либо в переменных (массиве). А в отчете можно легко их достать либо из dbf, либо из переменной(ых)/массива.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 87
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 31.08.10 21:46. Заголовок: Дык, элемент DBCross..


Дык, элемент DBCrosstab не позволяет вставлять в перекрёстную таблицу сторонние данные. Только одна таблица с горизонтальной группировкой.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 425
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 31.08.10 23:17. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Дык, элемент DBCrosstab не позволяет вставлять в перекрёстную таблицу сторонние данные. Только одна таблица с горизонтальной группировкой.



Честно говоря, так получилось, что никогда не использовал КроссТабы, поэтому имено про них ничего не подскажу.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 88
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 31.08.10 23:31. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

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



Блин, я тоже не использовал. А теперь на-а-а-а-до!!! Ну просто позарез надо!!!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 443
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 01.09.10 09:08. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Дык, элемент DBCrosstab не позволяет


Извините, не вник сразу.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 426
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 01.09.10 13:28. Заголовок: PSP пишет: Блин, я ..


PSP пишет:

 цитата:
Блин, я тоже не использовал. А теперь на-а-а-а-до!!! Ну просто позарез надо!!!



Ну чтож, пришлось мне почитать за вас доку, ту самую, на отсутствие которой Андрей наш так сетовал. <\/u><\/a>

А это скрипт:
var 
MyMin: Variant;

procedure Cross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);
begin
if not Cross1.IsGrandTotalColumn(ColumnIndex) then
begin
if (ColumnIndex = 0) then
MyMin := Memo.Value
else
if (MyMin = 0) or ((Memo.Value < MyMin) and (Memo.Value > 0)) then
MyMin := Memo.Value;
end
else
Memo.Text := Format('%m', [MyMin]);
end;







Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1540
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.09.10 15:20. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
ту самую, на отсутствие которой Андрей наш так сетовал.



Я сетовал на отсутствие доки по моему примеру. Не надо передергивать !
А по своему примеру, пришлось методом тыка делать !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 427
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 01.09.10 16:43. Заголовок: Andrey пишет: Я сет..


Andrey пишет:

 цитата:
Я сетовал на отсутствие доки по моему примеру.



Это как? Под ваши примеры уже дока должна быть готова? Заранее?

Использование же колонок документировано, о них идет речь и в разделе 1.6 Параметры страницы, и более подробно в разделе 2.19 Печать этикеток.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1542
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.09.10 21:07. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Использование же колонок документировано, о них идет речь и в разделе 1.6 Параметры страницы, и более подробно в разделе 2.19 Печать этикеток.


Эта информация уже не нужна (устарела). Так как пример уже сделан ! Ну на будущее, может и пригодится.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 428
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 02.09.10 09:25. Заголовок: Andrey пишет: Эта и..


Andrey пишет:

 цитата:
Эта информация уже не нужна (устарела)



Это информация о том, что вам надо сесть и просто прочитать "Руководство пользователя" полностью, с 1-ой по 246-ю страницу. Иначе, в будущем помощь может и не прийти...

Так как вопросы по синтаксису, уточнению понятий, прояснению концепций - это одно. А вопрос - "А чего это оно куда то не туды", это совсем, совсем другое.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 90
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 03.09.10 14:32. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
А это скрипт:

var MyMin: Variant;

procedure Cross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);

begin
if not Cross1.IsGrandTotalColumn(ColumnIndex) then begin if (ColumnIndex = 0) then MyMin := Memo.Value else if (MyMin = 0) or ((Memo.Value < MyMin) and (Memo.Value > 0)) then MyMin := Memo.Value; end else Memo.Text := Format('%m', [MyMin]); end;



Огромное спасибо за скрипт! Я попробовал - получилось! Но шеф усложнил задачу и теперь нужно дополнительно выводить столбец количества позиций (не участвующий в группировке, а принадлежащий к той же группе, что и номер позиции) и дополнительно в простых клетках выводить цену, а в сумме внизу - сумму общих цен (цена*количество)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 429
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 08.09.10 08:49. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Я попробовал - получилось! Но шеф усложнил задачу и теперь нужно дополнительно выводить столбец количества позиций (не участвующий в группировке, а принадлежащий к той же группе, что и номер позиции) и дополнительно в простых клетках выводить цену, а в сумме внизу - сумму общих цен (цена*количество)



Привет. Ну что сказать. Как выводить все что угодно "клетках" кросстаба я показал.

Конечно, если все устраивать на скрипте, то это уже не так красиво... Все-таки, вы определились с количеством столбцов? Если оно статично или варируется в разумных известных пределах, то может удобней сделать без кросстабов? Еще есть варианты соединять кросстабы по горизонтально, если это подойдет... Короче, задачу надо лучше понимать, чтобы что-то посоветовать.








Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1752
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.05.11 09:10. Заголовок: Что за остатки полей..


Что за остатки полей на форме ?

Взял старую форму, MasterData был BookAbon. Подключил к другой базе, поменял нужные мне поля.
И все равно остались "остатки" предыдущей БД в этой новой форме !!!
Как их удалить ?
И как вообще правильно использовать мои готовые формы для других случаев ? Т.е. порядок подключения формы к другим MasterData ?
Заранее спасибо за ответ.

Увеличить<\/u><\/a>


И еще один вопрос.
Делаю вывод (в качестве примера) на форму "Сумму прописью".
CallHbFunc('SUMMAPROPIS',[<ABONENT."DOLG_2008">,True]) - работает нормально.
Усложнил пример для показа другим...
SummaPropis( <ABONENT."DOLG_2008"> ,True) ] - не работает. Что-то неправильно делаю. Где ? Подскажите пожалуйста.

Сама форма и пример:
http://files.mail.ru/NJ3CJ0


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1753
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.05.11 09:16. Заголовок: Как бы убрать эти ..




Как бы убрать эти кракозябы ?
Вставить в коде FastReport ПРОВЕРКУ на OEM-кодировку и перевести в WIN-кодировку.
И еще добавить строку вызываемой функции, а то приходиться догадки строить, где и что не работает, виноват ли Фаст или своя функция !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 492
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 18.05.11 21:01. Заголовок: Andrey пишет: Что з..


Andrey пишет:

 цитата:
Что за остатки полей на форме ?

Взял старую форму, MasterData был BookAbon. Подключил к другой базе, поменял нужные мне поля.
И все равно остались "остатки" предыдущей БД в этой новой форме !!!



Это ж с какого интересно бодуна вы решили, что то на что указывают стрелки - это поля БД (!!!) Это объекты отчета типа TfrxMemoView и от того, что изменился набор данных для отчета, с какого лешего это они должны исчезать?

Andrey пишет:

 цитата:
Как их удалить ?



Выделить и нажать Delete.

Andrey пишет:

 цитата:
И как вообще правильно использовать мои готовые формы для других случаев ? Т.е. порядок подключения формы к другим MasterData ?
Заранее спасибо за ответ.



Если бы можно было бы понять вопрос, то можно было бы дать и ответ. Попробуйте, напрягитесь наконец с понятийным рядом, и попытайтесь сформулировать.

Andrey пишет:

 цитата:
И еще один вопрос.
Делаю вывод (в качестве примера) на форму "Сумму прописью".
CallHbFunc('SUMMAPROPIS',[<ABONENT."DOLG_2008">,True]) - работает нормально.
Усложнил пример для показа другим...
SummaPropis( <ABONENT."DOLG_2008"> ,True) ] - не работает. Что-то неправильно делаю. Где ? Подскажите пожалуйста.



Андрей, вы не пьяны были когда это писали?
   ELSEIF ( FName == "SUMMAPROPIS" ) 
RES := Str( FParams[ 1 ], FParams[ 2 ] )

Какая была логика? И, кстати, как можно не получить вывих мозга от следующего за этим комментария?
   // --------------- без этой строчки работать не будет ---// 
// Так как SUMMAPROPIS() вызывает STR() то необходимо подключить
// стандартную Harbour функцию !!!
// --------------- без этой строчки работать не будет ---//


Andrey пишет:

 цитата:
Как бы убрать эти кракозябы ?
Вставить в коде FastReport ПРОВЕРКУ на OEM-кодировку и перевести в WIN-кодировку.
И еще добавить строку вызываемой функции, а то приходиться догадки строить, где и что не работает



Гм... Вы хотите сказать, что у вас тексты харборных ошибок по-русски и в OEM-кодировке? Гм... У меня эта выглядит так как и должна:

BASE/1099 Argument error: STR

Но все в ваших руках. METHOD FrNotifyError(oError) class frReportManager - напишите лучше, и ЕСЛИ Петр, Паша, Григорий одобрят ваш вариант, то заменю и у себя, это не проблема.



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 268 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 234
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет