![]() |
|
v7: Табличное поле. ПоставщикДанных. | ☑ | ||
---|---|---|---|---|
0
Eeakie
17.12.14
✎
15:37
|
Добрый вечер.
Разбираюсь уже который день, но до сих пор не доходит: как сделать поставщиком данных ТП прямой запрос? Дайте, пожалуйста, простейший пример. Например, надо тупо вывести в ТП одну колонку "Номер", где будут номера из: |select | ltrim(rtrim(Журнал.docno)) as Номер |from | $Документ.Заявка as Заявка with (nolock) |left join | _1sjourn as Журнал with (nolock) on Журнал.iddoc = Заявка.iddoc |where | Журнал.date_time_iddoc between :НачДата and :КонДата~"; Как, блин, сделать этот простейший пример. Заранее благодарю. |
|||
1
Eeakie
17.12.14
✎
15:52
|
В сегодня какой-то праздник? Где все? :)
|
|||
2
Ёпрст
гуру
17.12.14
✎
15:53
|
это очень сильное шаманство
|
|||
3
Eeakie
17.12.14
✎
15:54
|
(2) Подколы ожидал изначально. Просто с ТП раньше вплотную не сталкивался.
|
|||
4
antoneus
17.12.14
✎
15:54
|
ТП.ПоставщикДанных = СоздатьОбъект("ПоставщикДанныхODBC.SQL");
Читать тут: http://www.1cpp.ru/docum/html/TableField.html#odbc-odbcdataprovider |
|||
5
akaBrr
17.12.14
✎
15:56
|
а почему left join?
|
|||
6
antoneus
17.12.14
✎
15:57
|
|select
| ltrim(rtrim(Журнал.docno)) as Номер |from | _1sjourn as Журнал with (nolock) |where | Журнал.date_time_iddoc between :НачДата and :КонДата~ and Журнал.iddocdef= $ВидДокумента.Заявка |
|||
7
Eeakie
17.12.14
✎
15:59
|
(5, 6) В скорости есть ощутимая разница? Или типа "просто так не надо ничего джойнить"?
|
|||
8
antoneus
17.12.14
✎
15:59
|
(7) да, попадание в индекс по iddocdef
|
|||
9
Eeakie
17.12.14
✎
16:00
|
(8) Понял. Спасибо.
|
|||
10
Ёпрст
гуру
17.12.14
✎
16:09
|
(0)
ну на вот, занимайся ТекстЗапроса =" |Select Жур.date_time_iddoc as date_time_iddoc |,convert(datetime,substring(Жур.date_time_iddoc,1,8)) as [ДатаДок $Дата] |,Жур.DOCNO as [НомерДок $Строка] |,Жур.IDDOC as [Док $Документ] |, Жур.IDDOCDEF as [Док_вид] |from _1sjourn as Жур (nolock) |"; Источник=СоздатьОбъект("ODBCDataProvider.MSSQL"); База=СоздатьОбъект("ODBCDatabase"); МенятьРазмер=1; Источник.SetQueryText (ТекстЗапроса); Источник.УстКлючПорядка("date_time_iddoc"); Источник.БазаДанных=База; Источник.Поля.Добавить("Док").Автоудаление=0; Источник.Поля.Добавить("Док_вид").Автоудаление=0; _Форма = СоздатьОбъект("Форма"); ТабличноеПоле = _Форма.СоздатьЭлементУправленияНаФорме(Форма, "ТабличноеПоле", "РеквизитНаФормеПодТабличноеПоле"); ТабличноеПоле.СтильЗаголовков=0; ТабличноеПоле.ТаймаутОбновления=10; ТабличноеПоле.ВертикальныеЛинии=1; ТабличноеПоле.ГоризонтальныеЛинии=1; ТабличноеПоле.ТаймаутБыстрогоПоиска=1; ТабличноеПоле.РежимВыделенияСтроки = 0; Колонки=ТабличноеПоле.Колонки; Колонка=Колонки.Добавить("НомерДок"); Колонка.Заголовок="НомерДок"; Колонка.Ширина = 18; Колонка.Данные="НомерДок"; Колонка.ГоризонтальноеВыравнивание=1; Колонка.ИзменениеРазмера =МенятьРазмер; Колонка.ЗнакУпорядочивания=1; Колонки=ТабличноеПоле.Колонки; Колонка=Колонки.Добавить("ДатаДок"); Колонка.Заголовок="Дата"; Колонка.Ширина = 15; Колонка.Данные="ДатаДок"; Колонка.ГоризонтальноеВыравнивание=1; Колонка.ИзменениеРазмера =МенятьРазмер; Колонка.ЗнакУпорядочивания=1; Колонки=ТабличноеПоле.Колонки; Колонка=Колонки.Добавить("Док_вид"); Колонка.Заголовок="Док_вид"; Колонка.Ширина = 0; Колонка.Данные="Док_вид"; Колонка.ГоризонтальноеВыравнивание=1; Колонка.ИзменениеРазмера =МенятьРазмер; Колонка.ЗнакУпорядочивания=1; Колонка.Видимость=0; Колонки=ТабличноеПоле.Колонки; Колонка=Колонки.Добавить("Док"); Колонка.Заголовок="Док"; Колонка.Ширина = 0; Колонка.Данные="Док"; Колонка.ГоризонтальноеВыравнивание=1; Колонка.ИзменениеРазмера =МенятьРазмер; Колонка.ЗнакУпорядочивания=1; Колонка.Видимость=0; ТабличноеПоле.ПоставщикДанных=Источник; ТабличноеПоле.ОбновитьСтроки(); |
|||
11
Eeakie
17.12.14
✎
16:12
|
(1) УстТекстЗапроса() не работает чтоль.. ?
|
|||
12
Eeakie
17.12.14
✎
16:12
|
(11) > (10)
|
|||
13
Eeakie
17.12.14
✎
16:12
|
(10) Спасибо. Это то, что было нужно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |