[ОТВЕТИТЬ]
Опции темы
12.05.2016 15:46  
Aligator
Всем доброго дня.

Есть заведенная метка (тестирую на одной метке, в дальнейшем их будет две - одна с типом дата, вторая с названием и номером) документа для расходных накладных "доверенность" (см. картинку), необходимо выводить её значение в подвал печатной формы (см картинку), сейчас в печатной форме есть только линия для дальнейшего написания от руки, клиенту необходимо заполнять это из документа.

Для вывода метки формулу я написал:
SQL код:
(select z.PARAMVALUE 
         from supermag
.SMDOCPROPS z
        where z
.DOCTYPE 'P_DOC_TYPE'
        
and z.docID =  'P_DOC_ID'
        
and z.ParamName 'CustomLabels.Doverennost'Doverennost
Но как вывести её именно в ReportSummary, ведь там выводятся только тексты и значения типа GetTotalValue ...?

Печатная форма тоже во вложении
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1863.png
Просмотров: 57
Размер:	21.3 Кб
ID:	7394   Нажмите на изображение для увеличения
Название: Image 1864.png
Просмотров: 49
Размер:	23.4 Кб
ID:	7395  
Вложения
Тип файла: rar nacl_inout.rar (14.6 Кб, 24 просмотров)
 
12.05.2016 15:52  
Aligator
Сам SQL запрос рабочий - проверял в жабе, при вводе тип документа WO и номера выводит значения верно, результат в скрине.
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1865.png
Просмотров: 47
Размер:	15.3 Кб
ID:	7397  
 
12.05.2016 16:26  
Aligator
Если пытаюсь в форме прописать запрос в виде:
SQL код:
              // вывод метки документа
      
sSQL SqlFormat("SELECT "+
        
"z.PARAMVALUE"+
        
" 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("DocSMDOCPROPS"sSQL); 
Получаю ошибку:
Код:
2016.05.12 (Thursday) 16:25: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 -----
сообщение: "Ссылка на объект не указывает на экземпляр объекта."
исключение: System.NullReferenceException
источник: Sm.FastReports
метод: Void TableDataSourcePreInit(System.String, System.String)
   в Sm.FastReports.RepHost.TableDataSourcePreInit(String sourceName, String sourceSQL)
   в FastReport.ReportScript._StartReport(Object sender, EventArgs e)

...подскажите пожалуйста где я мог затупить?
 
12.05.2016 17:25  
vdm
Ну а сам запрос в Data Sources - Connection - DocSMDOCPROPS создан?

Вообще одно поле проще добавить в DocHead.
Там в запрос добавь поле doverka
Код:
...
        cl.ID CheckClient,
        d.commentary doverka
        from supermag.SMDocuments d, 
...
И в скрипт где dochead формируется свой подзапрос вставь.
Код:
...
          ",to_number(null) CheckClient"+
          ",'blablabla' doverka"+
          " FROM supermag.SVDocumentsRep d"+
...
На форме в любом месте в текстовом поле пиши [DocHead.doverka].
Работает.
 
"Спасибо" vdm от:
13.05.2016 10:38  
Aligator
Цитата:
Сообщение от vdm
Ну а сам запрос в Data Sources - Connection - DocSMDOCPROPS создан?
Итого, получилось вот так в запросах:
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); 
при этом в Data sourses создан DocSpecMetki с описанием:

SQL код:
SELECT ''PARAMVALUE,
'' Doverennost_date
FROM dual 
Всё хорошо, всё выводится, но никак не могу добиться чтобы Doverennost_date было в форме в формате 'DD.MM.YY' - подскажите плиз.

Последний раз редактировалось Aligator; 13.05.2016 в 10:48.
 
13.05.2016 10:57  
Alexei
to_char(Doverennost_date, 'dd.mm.yy')
 
13.05.2016 11:04  
Aligator
Цитата:
Сообщение от Alexei
to_char(Doverennost_date, 'dd.mm.yy')
в Data sourses добавлять DocSpecMetki с описанием?:
SQL код:
SELECT ''PARAMVALUE,
to_char(Doverennost_date'dd.mm.yy')
FROM dual 
если да - то ругается на ошибку (см картинку)
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1867.png
Просмотров: 45
Размер:	17.2 Кб
ID:	7398  
 
13.05.2016 11:37  
vdm
Покажи описание поля где выводится дата и результат, в каком виде сейчас дату выдает.
 
13.05.2016 11:59  
Aligator
Цитата:
Сообщение от vdm
Покажи описание поля где выводится дата и результат, в каком виде сейчас дату выдает.
В картинках
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1868.png
Просмотров: 65
Размер:	57.2 Кб
ID:	7399   Нажмите на изображение для увеличения
Название: Image 1869.png
Просмотров: 57
Размер:	35.7 Кб
ID:	7400  
 
13.05.2016 12:13  
denxz
SQL код:
// вывод метки документа
      
sSQL SqlFormat("SELECT "+
        [
B]"to_char(z.PARAMVALUE,'DD.MM.YYYY'),"+[/B]
        
"(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); 
вот так
 
"Спасибо" denxz от:
 


Опции темы



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

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