|
заполнение ТЧ макета из запроса к БД | ☑ | ||
---|---|---|---|---|
0
spapin87
09.08.13
✎
10:14
|
Здравствуйте. Запросом получаю значение и бегу циклом пока не конец файла, но не пойму как заполнить ОбластьСтрока.Параметры.... по каждой новой строке. Пытался добавлять каждый раз новую строку в макете (НоваяСтрока = ТабДок.Добавить();) и заполнять каждым значением ...
Макет = Справочники.ПрайсЛисты.ПолучитьМакет("ЗагруженнаяИнформация"); ОбластьЗаголовок=Макет.ПолучитьОбласть("Заголовок"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТаблицы"); ТабДок=Новый ТабличныйДокумент; ТабДок.Очистить(); ОбластьЗаголовок.Параметры.Поставщик=Наименование; Дата = ЭлементыФормы.ИсторияИзмененияЦен.ТекущаяСтрока.ДатаПрайса; Дата = Дата(Дата); ДатаПрайса = Формат(Дата,"ДФ=dd.MM.yyyy; ДЛФ=D"); ОбластьЗаголовок.Параметры.ДатаПрайса = ДатаПрайса; qs_ord = "SELECT | I.item_number, | I.item_name, | P.qty, | P.price, | S.sup_name |FROM deon_items AS I |INNER JOIN prices AS P ON P.id_item = I.id_item |INNER JOIN suppliers AS S ON S.id_sup = P.id_sup |WHERE S.sup_name = '"+Контрагент.КодНаименование+"' AND FROM_UNIXTIME(P.prc_date, '%d.%m.%Y') = '"+ДатаПрайса+"'"; rs_ord.Open(qs_ord, Con); Пока не rs_ord.EOF цикл печАртикул = 0; печНаименование = 0; печАртикул = TrimAll(rs_ord.fields("item_number").value); печНаименование = TrimAll(rs_ord.fields("item_name").value); печКоличество = TrimAll(rs_ord.fields("qty").value); печЦена = TrimAll(rs_ord.fields("price").value); печПоставщик = TrimAll(rs_ord.fields("sup_name").value); ОбластьСтрока.Параметры.Заполнить(qs_ord); rs_ord.MoveNext(); КонецЦикла; Попытка Con.Close(); Исключение КонецПопытки; ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапка); ТабДок.Вывести(ОбластьСтрока); ТабДок.Показать( ); |
|||
1
Godofsin
09.08.13
✎
10:21
|
Имена полей должны совпадать с именами переменных в макете
|
|||
2
spapin87
09.08.13
✎
10:30
|
Все совпадает. Ошибка: {Справочник.ПрайсЛисты.Форма.ФормаЭлемента(311)}: Ошибка при вызове метода контекста (Заполнить)
ОбластьСтрока.Параметры.Заполнить(qs_ord); по причине: Несоответствие типов (параметр номер '1') |
|||
3
Defender aka LINN
09.08.13
✎
10:31
|
(2) Ручками устанавливай
|
|||
4
spapin87
09.08.13
✎
10:37
|
Выводится последняя строка запроса таким образом ...
Пока не rs_ord.EOF цикл печАртикул = TrimAll(rs_ord.fields("number").value); печНаименование = TrimAll(rs_ord.fields("name").value); печКоличество = TrimAll(rs_ord.fields("qty").value); печЦена = TrimAll(rs_ord.fields("price").value); печПоставщик = TrimAll(rs_ord.fields("sup_name").value); //ОбластьСтрока.Параметры.Заполнить(qs_ord); ОбластьСтрока.Параметры.number = печАртикул; ОбластьСтрока.Параметры.name = печНаименование; ОбластьСтрока.Параметры.qty = печКоличество; ОбластьСтрока.Параметры.price = печЦена; ОбластьСтрока.Параметры.sup_name = печПоставщик; rs_ord.MoveNext(); КонецЦикла; |
|||
5
Defender aka LINN
09.08.13
✎
10:39
|
(4) Врешь ты все, в этом коде ничего не выводится
|
|||
6
spapin87
09.08.13
✎
10:41
|
Я просто дал часть кода
вот полный: Макет = Справочники.ПрайсЛисты.ПолучитьМакет("ЗагруженнаяИнформация"); ОбластьЗаголовок=Макет.ПолучитьОбласть("Заголовок"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТаблицы"); ТабДок=Новый ТабличныйДокумент; ТабДок.Очистить(); ОбластьЗаголовок.Параметры.Поставщик=Наименование; Дата = ЭлементыФормы.ИсторияИзмененияЦен.ТекущаяСтрока.ДатаПрайса; Дата = Дата(Дата); ДатаПрайса = Формат(Дата,"ДФ=dd.MM.yyyy; ДЛФ=D"); ОбластьЗаголовок.Параметры.ДатаПрайса = ДатаПрайса; qs_ord = "SELECT | I.item_number AS number, | I.item_name AS name, | P.qty AS qty, | P.price AS price, | S.sup_name AS sup_name |FROM deon_items AS I |INNER JOIN prices AS P ON P.id_item = I.id_item |INNER JOIN suppliers AS S ON S.id_sup = P.id_sup |WHERE S.sup_name = '"+Контрагент.КодНаименование+"' AND FROM_UNIXTIME(P.prc_date, '%d.%m.%Y') = '"+ДатаПрайса+"'"; rs_ord.Open(qs_ord, Con); Пока не rs_ord.EOF цикл печАртикул = TrimAll(rs_ord.fields("number").value); печНаименование = TrimAll(rs_ord.fields("name").value); печКоличество = TrimAll(rs_ord.fields("qty").value); печЦена = TrimAll(rs_ord.fields("price").value); печПоставщик = TrimAll(rs_ord.fields("sup_name").value); //ОбластьСтрока.Параметры.Заполнить(qs_ord); ОбластьСтрока.Параметры.number = печАртикул; ОбластьСтрока.Параметры.name = печНаименование; ОбластьСтрока.Параметры.qty = печКоличество; ОбластьСтрока.Параметры.price = печЦена; ОбластьСтрока.Параметры.sup_name = печПоставщик; rs_ord.MoveNext(); КонецЦикла; Попытка Con.Close(); Исключение КонецПопытки; |
|||
7
Defender aka LINN
09.08.13
✎
10:49
|
(6) Тут тоже ничего не выводится
|
|||
8
spapin87
09.08.13
✎
11:05
|
а как быть?
|
|||
9
John D
09.08.13
✎
11:10
|
Вывести заполненную область в отчет:
Типа ТабДок.Вывести(ОбластьСтрока); |
|||
10
spapin87
09.08.13
✎
11:15
|
Выводится последняя строка ...
Макет = Справочники.ПрайсЛисты.ПолучитьМакет("ЗагруженнаяИнформация"); ОбластьЗаголовок=Макет.ПолучитьОбласть("Заголовок"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТаблицы"); ТабДок=Новый ТабличныйДокумент; ТабДок.Очистить(); ОбластьЗаголовок.Параметры.Поставщик=Наименование; Дата = ЭлементыФормы.ИсторияИзмененияЦен.ТекущаяСтрока.ДатаПрайса; Дата = Дата(Дата); ДатаПрайса = Формат(Дата,"ДФ=dd.MM.yyyy; ДЛФ=D"); ОбластьЗаголовок.Параметры.ДатаПрайса = ДатаПрайса; qs_ord = "SELECT | I.item_number AS number, | I.item_name AS name, | P.qty AS qty, | P.price AS price, | S.sup_name AS sup_name |FROM deon_items AS I |INNER JOIN prices AS P ON P.id_item = I.id_item |INNER JOIN suppliers AS S ON S.id_sup = P.id_sup |WHERE S.sup_name = '"+Контрагент.КодНаименование+"' AND FROM_UNIXTIME(P.prc_date, '%d.%m.%Y') = '"+ДатаПрайса+"'"; rs_ord.Open(qs_ord, Con); Пока не rs_ord.EOF цикл печАртикул = TrimAll(rs_ord.fields("number").value); печНаименование = TrimAll(rs_ord.fields("name").value); печКоличество = TrimAll(rs_ord.fields("qty").value); печЦена = TrimAll(rs_ord.fields("price").value); печПоставщик = TrimAll(rs_ord.fields("sup_name").value); //ОбластьСтрока.Параметры.Заполнить(qs_ord); ОбластьСтрока.Параметры.number = печАртикул; ОбластьСтрока.Параметры.name = печНаименование; ОбластьСтрока.Параметры.qty = печКоличество; ОбластьСтрока.Параметры.price = печЦена; ОбластьСтрока.Параметры.sup_name = печПоставщик; rs_ord.MoveNext(); КонецЦикла; Попытка Con.Close(); Исключение КонецПопытки; ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапка); ТабДок.Вывести(ОбластьСтрока); ТабДок.Показать( ); |
|||
11
Godofsin
09.08.13
✎
11:44
|
ну так вывод в цикл наверное запихать надо, не?
|
|||
12
spapin87
09.08.13
✎
11:59
|
как построить цикл по rs_ord это COMОбъект? пишет: Итератор для значения не определен
|
|||
13
Godofsin
09.08.13
✎
12:08
|
млять...
ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапка); Пока не rs_ord.EOF цикл печАртикул = TrimAll(rs_ord.fields("number").value); печНаименование = TrimAll(rs_ord.fields("name").value); печКоличество = TrimAll(rs_ord.fields("qty").value); печЦена = TrimAll(rs_ord.fields("price").value); печПоставщик = TrimAll(rs_ord.fields("sup_name").value); //ОбластьСтрока.Параметры.Заполнить(qs_ord); ОбластьСтрока.Параметры.number = печАртикул; ОбластьСтрока.Параметры.name = печНаименование; ОбластьСтрока.Параметры.qty = печКоличество; ОбластьСтрока.Параметры.price = печЦена; ОбластьСтрока.Параметры.sup_name = печПоставщик; ТабДок.Вывести(ОбластьСтрока); rs_ord.MoveNext(); КонецЦикла; Попытка Con.Close(); Исключение КонецПопытки; ТабДок.Показать( ); |
|||
14
spapin87
09.08.13
✎
12:23
|
Godofsin, Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |