[ОТВЕТИТЬ]
Опции темы
13.05.2016 13:00  
vdm
Дата из smdocprops все равно как текст приходит, поэтому ее или в нормальную дату конвертить или вручную разбирать строку и переставлять поля.
Проще получить как дату. В текстовом поле фастрепорт ее наверно автоматом напечатает в нормальном формате.
SQL код:
SELECT '' PARAMVALUE,
       
SYSDATE Doverennost_date
  FROM dual 
Код:
      // вывод метки документа
      sSQL = SqlFormat("SELECT "+
        "z.PARAMVALUE,"+
        "(select TO_DATE(z.PARAMVALUE, 'YYYYMMDD HH24:MI')"+
        "  from supermag.SMDOCPROPS z "+
        " where z.DocType = {0:S}"+
        " and z.DocID = {1:S}"+
        "and z.ParamName='CustomLabels.Doverennost_date') Doverennost_date "+
        " from supermag.SMDOCPROPS z"+
        " where z.DocType = {0:S}"+
        " and z.DocID = {1:S}"+
        " and z.ParamName = 'CustomLabels.Doverennost'",
        Report.GetParameterValue("P_DOC_TYPE"),
        Report.GetParameterValue("P_DOC_ID")
        );
      host.TableDataSourcePreInit("DocSpecMetki", sSQL);
 
"Спасибо" vdm от:
13.05.2016 13:55  
Aligator
Цитата:
Сообщение от denxz
// вывод метки документа
вот так
В вашем варианте выдаёт во такие ошибки:
Код:
2016.05.13 (Friday) 13:54:49 1.33.0.0 sp4  Sm.Main ( NDOCWO )
----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции.  См. описание исключения в 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 -----
сообщение: "(201,9): Error CS1525: Invalid expression term '['
   (201,10): Error CS1026: ) expected
   (201,11): Error CS1002: ; expected
   (201,11): Error CS1525: Invalid expression term ']'
   (201,12): Error CS1002: ; expected
   (201,50): Error CS1525: Invalid expression term '['
   (201,53): Error CS1002: ; expected
   (201,53): Error CS1525: Invalid expression term ']'
   (201,54): Error CS1002: ; expected
   (210,54): Error CS1002: ; expected
   (210,54): Error CS1525: Invalid expression term ','
   (210,55): Error CS1002: ; expected
   (211,45): Error CS1002: ; expected
   (211,45): Error CS1525: Invalid expression term ','
   (211,46): Error CS1002: ; expected
   (212,43): Error CS1002: ; expected
   (213,7): Error CS1525: Invalid expression term ')'"
исключение: FastReport.Utils.CompilerException
источник: FastReport.Engine
метод: Void InternalCompile()
   в FastReport.Code.AssemblyDescriptor.InternalCompile()
   в FastReport.Report.Compile()
   в 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)
 
13.05.2016 14:03  
Aligator
Цитата:
Сообщение от vdm
Дата из smdocprops все равно как текст приходит, поэтому ее или в нормальную дату конвертить или вручную разбирать строку и переставлять поля.
Проще получить как дату. В текстовом поле фастрепорт ее наверно автоматом напечатает в нормальном формате.
Ваш вариант приводит к такой ошибке:
Код:
2016.05.13 (Friday) 14:02:56 1.33.0.0 sp4  Sm.Main ( NDOCWO )
----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции.  См. описание исключения в 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 -----
сообщение: "Text89: Error in expression: DocSpecMetki.DOVERENNOST_DATE"
исключение: System.Exception
источник: FastReport.Engine
метод: System.String CalcAndFormatExpression(System.String, Int32)
   в FastReport.TextObjectBase.CalcAndFormatExpression(String expression, Int32 expressionIndex)
   в FastReport.TextObject.GetData()
   в FastReport.BandBase.GetData()
   в FastReport.Engine.ReportEngine.PrepareBand(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.ShowBandToPreparedPages(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.ShowBand(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.EndLastPage()
   в 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)
 
13.05.2016 14:23  
Aligator
А если я оставляю запрос как есть:

SQL код:
      // вывод метки документа
      
sSQL SqlFormat("SELECT "+
        
"z.PARAMVALUE,"+
        
"(select z.PARAMVALUE"+
        
"  from supermag.SMDOCPROPS z "+
        
" where z.DocType = {0:S}"+
        
" and z.DocID = {1:S}"+
        
"and z.ParamName='CustomLabels.Doverennost_date') Doverennost_date "+
        
" from supermag.SMDOCPROPS z"+
        
" where z.DocType = {0:S}"+
        
" and z.DocID = {1:S}"+
        
" and z.ParamName = 'CustomLabels.Doverennost'",
        
Report.GetParameterValue("P_DOC_TYPE"),
        
Report.GetParameterValue("P_DOC_ID")
        );
      
host.TableDataSourcePreInit("DocSpecMetki"sSQL); 

И делаю вот такой вывод в DocSpecMetki:
SQL код:
SELECT ''PARAMVALUE,
SYSDATE Doverennost_date
FROM dual 
ругается на такую ошибку (пишет что не понимает поле как дату):

Код:
2016.05.13 (Friday) 14:23:34 1.33.0.0 sp4  Sm.Main ( NDOCWO )
----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции.  См. описание исключения в 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 -----
сообщение: "Text89: Error in expression: DocSpecMetki.DOVERENNOST_DATE"
исключение: System.Exception
источник: FastReport.Engine
метод: System.String CalcAndFormatExpression(System.String, Int32)
   в FastReport.TextObjectBase.CalcAndFormatExpression(String expression, Int32 expressionIndex)
   в FastReport.TextObject.GetData()
   в FastReport.BandBase.GetData()
   в FastReport.Engine.ReportEngine.PrepareBand(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.ShowBandToPreparedPages(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.ShowBand(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.EndLastPage()
   в 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)
----- Причина исключения, уровень вложения 2 -----
сообщение: "Строка не распознана как действительное значение DateTime."
исключение: System.FormatException
источник: mscorlib
метод: System.DateTime Parse(System.String, System.Globalization.DateTimeFormatInfo, System.Globalization.DateTimeStyles)
   в System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
   в System.Convert.ToDateTime(String value, IFormatProvider provider)
   в System.String.System.IConvertible.ToDateTime(IFormatProvider provider)
   в System.Data.Common.DateTimeStorage.Set(Int32 record, Object value)
   в System.Data.DataColumn.set_Item(Int32 record, Object value)
 
13.05.2016 15:13  
vdm
Ладно, верни дату в текст
SQL код:
SELECT '' PARAMVALUE,
'' Doverennost_date
FROM dual 
и в запросе
Код:
        "(select TO_CHAR(TO_DATE(z.PARAMVALUE, 'YYYYMMDD HH24:MI'), 'DD.MM.YY')"+
 
"Спасибо" vdm от:
13.05.2016 15:17  
Aligator
Цитата:
Сообщение от vdm
Ладно, верни дату в текст
SQL код:
SELECT '' PARAMVALUE,
'' Doverennost_date
FROM dual 
и в запросе
Код:
        "(select TO_CHAR(TO_DATE(z.PARAMVALUE, 'YYYYMMDD HH24:MI'), 'DD.MM.YY')"+

Всё равно вываливается в ошибку:
Код:
2016.05.13 (Friday) 15:16:44 1.33.0.0 sp4  Sm.Main ( NDOCWO )
----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции.  См. описание исключения в 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 -----
сообщение: "Text89: Error in expression: DocSpecMetki.DOVERENNOST_DATE"
исключение: System.Exception
источник: FastReport.Engine
метод: System.String CalcAndFormatExpression(System.String, Int32)
   в FastReport.TextObjectBase.CalcAndFormatExpression(String expression, Int32 expressionIndex)
   в FastReport.TextObject.GetData()
   в FastReport.BandBase.GetData()
   в FastReport.Engine.ReportEngine.PrepareBand(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.ShowBandToPreparedPages(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.ShowBand(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.EndLastPage()
   в 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)
 
13.05.2016 15:50  
Aligator
Может можно это значение даты скопировать в некую переменную потом и преобразовать?
 
13.05.2016 16:44  
vdm
Х/з, у меня на тесте без ошибок.
Дай текущую .frx
 
13.05.2016 16:53  
Aligator
Цитата:
Сообщение от vdm
Дай текущую .frx
Во вложении
Вложения
Тип файла: rar nacl_inout.rar (14.8 Кб, 24 просмотров)
 
13.05.2016 17:45  
vdm
Ошибка в формате даты в sql была, секунды нужны еще.
Код:
      "(select TO_CHAR(TO_DATE(z.PARAMVALUE, 'YYYYMMDD HH24:MI:SS'), 'DD.MM.YY')"+
Вложения
Тип файла: 7z nacl_inout.frx.7z (13.8 Кб, 15 просмотров)
 
"Спасибо" vdm от:
 


Опции темы



Часовой пояс GMT +3, время: 13:33.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.