Гость
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Fastreport, как поделить значение колонки пополам / 13 сообщений из 13, страница 1 из 1
06.05.2016, 11:58
    #39230713
buzztekk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
Добрый день. Есть таблица pricecards в ней есть поле Price (цена)
и вот этот pricecards.price типа string.
Мне нужно вывести это поле разделенное пополам
Как это сделать?
Извините за глупый вопрос, я в этом еще совсем не разбираюсь
...
Рейтинг: 0 / 0
06.05.2016, 17:50
    #39231046
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
buzztekk,

по FastReport ещё можно здесь спросить http://www.sql.ru/forum/delphi
Там часто помогают.
...
Рейтинг: 0 / 0
08.05.2016, 15:59
    #39231531
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
buzztekk,

Данные в отчет обычно попадают из запроса => в запросе можно сделать cast к нужному типу и поделить.

Код: plsql
1.
Select price, cast(price as numeric(18,2))/2 as pricedivided from my_table
...
Рейтинг: 0 / 0
08.05.2016, 16:00
    #39231532
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
buzztekk,

... Или в скрипте.
...
Рейтинг: 0 / 0
11.05.2016, 15:25
    #39233478
buzztekk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
DarkMaster,
Спасибо за совет
Добавил в запрос следующее:

select t.PriceShort Price,
cast(t.PriceShort as numeric(18,2))/2 as Pricedivided,
from supermag.SVPriceCard t
order by 1

Появилось новое поле pricedivided типа decimal
но при вызове отчета возникает какая то ошибка(


----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции. См. описание исключения в InnerException."
исключение: System.Reflection.TargetInvocationException
источник: System
метод: Void RaiseExceptionIfNecessary()
в System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
в Sm.Core.RunWorkerCompletedEventArgs`1.get_Result()
в Sm.FastReports.Domain.FastReportDomainPanel.<>c__DisplayClass2.<RunSingleReport>b__0(Object sender, RunWorkerCompletedEventArgs`1 e)
----- Причина исключения, уровень вложения 1 -----
сообщение: "ORA-01722: неверное число"
исключение: System.Data.OracleClient.OracleException
источник: Sm.BusinessServer
данные: соединено с: База даных=TESTDB; Пользователь=adm
текст команды: select t.Article, t.Name, t.Country, t.PriceShort Price,
cast(t.PriceShort as numeric(18,2))/2 as Pricedivided,
t.RubName,
t.UnitName, t.QtyPrint, t.BarCode,
decode(t.PLU,null,'','Весы: '||t.PLU) PLU
from supermag.SVPriceCard t
order by 1
тип команды: Text
метод: Boolean ReadBuffer(System.Collections.ObjectModel.ReadOnlyCollection`1[TRecord] ByRef)
в Sm.BusinessServer.BackgroundReaderBase`1.ReadBuffer(ReadOnlyCollection`1& result)
в Sm.FastReports.Server.FastReportBO.Sm.FastReports.Link.IFastReportBO.FillTableDataNext(BusinessOperation businessOperation, ReadOnlyCollection`1& dataTable)
в Sm.FastReports.SupermagFastReportConnection.<>c__DisplayClass8.<FillTableData>b__5(IFastReportBO bo)
в Sm.BusinessServer.LocalServer.LocalClient`1.Do(Action`1 action)
в Sm.FastReports.SupermagFastReportConnection.TransactedBusinessObject.Do(Action`1 action)
в Sm.FastReports.SupermagFastReportConnection.FillTableData(DataTable table, String selectCommand, CommandParameterCollection parameters)
в FastReport.Data.DataConnectionBase.FillTable(TableDataSource source)
в FastReport.Data.TableDataSource.LoadData(ArrayList rows)
в FastReport.Data.DataSourceBase.Init(Relation relation, String filter, SortCollection sort, Boolean useAllParentRows)
в FastReport.Data.DataSourceBase.Init(DataSourceBase parentData, String filter, SortCollection sort, Boolean useAllParentRows)
в FastReport.DataBand.InitDataSource()
в FastReport.Engine.ReportEngine.RunDataBand(DataBand dataBand)
в FastReport.Engine.ReportEngine.RunBands(BandCollection bands)
в FastReport.Engine.ReportEngine.RunReportPage(ReportPage page)
в FastReport.Engine.ReportEngine.RunReportPages()
в FastReport.Engine.ReportEngine.RunReportPages(ReportPage page)
в FastReport.Engine.ReportEngine.Run(Boolean runDialogs, Boolean append, ReportPage page)
в FastReport.Report.Prepare(Boolean append)
в Sm.FastReports.Domain.FastReportDomainModel.ExecuteReport(Report report, String reportFile, List`1 commonParameters, List`1 objectParameters, Int32 moduleRole, Int32 functionRole)
в Sm.FastReports.Domain.FastReportDomainPanel.Report_DoWork(Object sender, TaskWorkEventArgs`3 e)
в Sm.Core.TaskWorker`3.OnDoWork(DoWorkEventArgs e)
в Sm.Core.TaskWorkerBase.InternalBackgroundWorker.OnDoWork(DoWorkEventArgs e)
в System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
...
Рейтинг: 0 / 0
11.05.2016, 15:41
    #39233497
СТУДЕНТ123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
buzztekkДобрый день. Есть таблица pricecards в ней есть поле Price (цена)
и вот этот pricecards.price типа string.
Мне нужно вывести это поле разделенное пополам
Как это сделать?
Извините за глупый вопрос, я в этом еще совсем не разбираюсь

"...Есть таблица pricecards .... pricecards.price типа string..." гарантируете что там только числа? произвольного текста нет? разделитель дробной части точка (если у Вас MSSQL)

---- ближе к делу:
выполните запрос
Код: sql
1.
Select Count(*) from supermag.SVPriceCard where isnumeric(PriceShort) = 0

если вернет NULL то все хорошо, ищите ошибку в формулах самого отчета, иначе показывайте результат запроса.
...
Рейтинг: 0 / 0
11.05.2016, 17:23
    #39233596
buzztekk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
СТУДЕНТ123,

Спасибо за подсказку, натолкнул меня на мысль.
Короче я понял почему, у меня в стоковом поле Priceshort строки вида "120.00"
То есть все через точку, поэтому и cast(t.PriceShort as numeric(18,2))/2 не помогает, ему видимо запятая нужна
...
Рейтинг: 0 / 0
11.05.2016, 17:32
    #39233608
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
buzztekk, кто вас вообще надоумил так цифири хранить?
...
Рейтинг: 0 / 0
11.05.2016, 17:40
    #39233620
СТУДЕНТ123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
Если ПО самописное, то меняйте типы данных в строгом соответствии самим данным, кучу проблем решите.
...
Рейтинг: 0 / 0
12.05.2016, 09:45
    #39233985
buzztekk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
buser, Студент123
Я только начал осваивать все эти премудрости, отчеты, поэтому продираюсь через терни)
В итоге решил вообще посмотреть какие есть поля в таблице и обнаружил
что есть нормальный Price типа Decimal!! Аллилуя
Но возник новый вопрос
Как сделать так, чтобы он выводил 00 копеек, так просто он их не выводит,
только если цена 60,50 он выведет их, а если 60 то будет просто 60
...
Рейтинг: 0 / 0
12.05.2016, 09:57
    #39233997
СТУДЕНТ123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
Я не знаком с самим Fastreport, но Вам нужно копать в сторону форматирования ячейки в самом отчете, посмотрите в свойствах там наверняка должно быть.

картинку выдрал из гугла, наверное это что Вам нужно
...
Рейтинг: 0 / 0
12.05.2016, 10:01
    #39234004
СТУДЕНТ123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
...
Рейтинг: 0 / 0
12.05.2016, 10:24
    #39234029
buzztekk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport, как поделить значение колонки пополам
СТУДЕНТ123,
Спасибо больше, нашел)
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Fastreport, как поделить значение колонки пополам / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]