|
Как бы вывести все в один макет.... | ☑ | ||
---|---|---|---|---|
0
ponaroshku
17.01.12
✎
12:25
|
Привет всем:)
Вообщем подключаюсь я через com к двум базам, получилось:) база1 в этой же функции подключения делаю запрос к базе, вывожу нужную информацию в макет база2 аналогично в функции подключения идет запрос к базе и вывод информации в макет Как бы мне объединить это дело и выводить в один и тот же макет? Сейчас создается 2 одинаковых, но с разными данными Или неправильна логика работы? Заранее спасибо |
|||
1
Wobland
17.01.12
✎
12:26
|
а как сейчас создаётся?
|
|||
2
Wobland
17.01.12
✎
12:27
|
и хочешь данные из 2й базы "дописывать" в макет, в котором уже данные из 1й? макеты/данные одинаковые, я так понимаю?
|
|||
3
Рэйв
17.01.12
✎
12:27
|
Не создавай еще один Новый ТабличныйДокумент. Продолжай в старом объекте выводить строки.
|
|||
4
Пришел в тапках
17.01.12
✎
12:28
|
(3) Опередил чертяка )
|
|||
5
Рэйв
17.01.12
✎
12:28
|
(4):-)
|
|||
6
Пришел в тапках
17.01.12
✎
12:28
|
Табдок создавай вначале и выводи в него инфо с двух макетов.
|
|||
7
Wobland
17.01.12
✎
12:29
|
(3) честно говоря, я даже не подумал об этом, считая очевидным ;)
|
|||
8
ponaroshku
17.01.12
✎
12:29
|
тааак, сейчас:))
|
|||
9
Cube
17.01.12
✎
12:29
|
(6) Тебя (3) опередил, если ты не заметил))
|
|||
10
ponaroshku
17.01.12
✎
12:31
|
(7) я если честно по аналогии сделала, даже не подумала:) сейчас поправлю
|
|||
11
Wobland
17.01.12
✎
12:32
|
(10) заходи, когда в следующий раз решишь не подумать ;)
|
|||
12
Пришел в тапках
17.01.12
✎
12:38
|
(9) Да высказаться решил, ато не усну с мыслями что мог сказать и не сказал )))
|
|||
13
ponaroshku
17.01.12
✎
12:39
|
Так стоп:) я от счастья, что вопрос оказался таким быстроразрешающимся, переволновалась:))
убрала из функции и первой, и второй В модуле прописала Перем ТабДокумент экспорт; В форме Процедура ПриОткрытии() ТабДокумент = Новый ТабличныйДокумент; КонецПроцедуры; В итоге выводит данные только одной базы, вторую не смотрит |
|||
14
ponaroshku
17.01.12
✎
12:39
|
(9) я дам вам шанс:))))
|
|||
15
ponaroshku
17.01.12
✎
12:40
|
(9) не 9, (12) :))
все, говорю переволновалась:))) |
|||
16
Wobland
17.01.12
✎
12:41
|
(13) это где всё?
|
|||
17
ptiz
17.01.12
✎
12:42
|
Сохранить оба макета в разные mxl, потом создать новый табдок из этих двух mxl.
|
|||
18
ponaroshku
17.01.12
✎
12:42
|
(16) Перем ТабДокумент экспорт;
в модуле объекта Где и функции подключения Процедура ПриОткрытии() ТабДокумент = Новый ТабличныйДокумент; КонецПроцедуры; в модуле формы |
|||
19
ponaroshku
17.01.12
✎
12:42
|
(17) ого-го
|
|||
20
Wobland
17.01.12
✎
12:44
|
(18) почему решила, что вторую не смотрит? ТабДок.Очистить() бы ещё...
|
|||
21
Wobland
17.01.12
✎
12:46
|
достаточно было убрать ТабДокумент = Новый ТабличныйДокумент из второй процедуры. ну или ТабДокумент вынести в Перем
|
|||
22
Пришел в тапках
17.01.12
✎
12:47
|
Или передавать между процедурами ТабДок на крайняк.
|
|||
23
Cube
17.01.12
✎
12:48
|
Подозреваю, что строка ТабДок.Показать() идет сразу после запроса к первой базе...
|
|||
24
Пришел в тапках
17.01.12
✎
12:48
|
хм, думаю (23) прав
|
|||
25
Пришел в тапках
17.01.12
✎
12:48
|
или лев )))
|
|||
26
Пришел в тапках
17.01.12
✎
12:49
|
ТабДок.Показать() убери после вывода первой базы
|
|||
27
hhhh
17.01.12
✎
12:50
|
(19) сложи их просто
ТабДокобщий = Новый ТабличныйДокумент; ТабДОкОбщий.Вывести(ТабДок1); ТабДОкОбщий.Вывести(ТабДОк2); ТабДокОбщий.Показать(); |
|||
28
Cube
17.01.12
✎
12:50
|
(25) Главное, чтобы не сред!))
|
|||
29
ponaroshku
17.01.12
✎
12:54
|
Так:) вообщем попробовала:
(20) тогда пропадает результат первой базы, выводит только вторую (23) (26) тогда выводит результат первой базы, второго результат нет |
|||
30
Wobland
17.01.12
✎
12:57
|
(29) так.
Перем ТабДок; Процедура1() ТабДок.Очистить(); ТабДок.Вывести(ОбластиВсякие); Конец Процедура2() ТабДок.Вывести(ОбластиВсякие); ТабДок.Показать(); Конец |
|||
31
TeddySlaf
17.01.12
✎
12:58
|
(15), (29) сходи на обед, развейся, успокойся от переволнения - и всё получится.
|
|||
32
ptiz
17.01.12
✎
13:15
|
Объясни по-человечески, в объект (таб.документ) какой базы ты выводишь COM-объекты (таб.документы), полученные из других баз?
|
|||
33
ponaroshku
18.01.12
✎
06:04
|
(30) есть очистить
не корректно выводится : вначале выводит данные первой базы, затем второй, ниже макет дублируется, но там уже данные второй базы (31) я даже поспала:) успокоилась, но не догадалась еще) |
|||
34
Wobland
18.01.12
✎
06:25
|
(33) давай уже свою обработку
|
|||
35
ponaroshku
18.01.12
✎
06:50
|
(34) искренне надеялась сама найти ошибку когда сокращала куски кода. Увы
Функция ПодключитьсяКИнформационнойБазеИсточнику(СтруктураПодключения, СтрокаСообщенияОбОшибке = "") ...подключаемся ТекCOMОбъект = ТекCOMПодключение.Connect(СтрокаПодключения); ... Макет = ПолучитьМакет("СводнаяТаблицаПоСчетамБУ"); ЗапросИсточника = ТекCOMОбъект.NewObject("Запрос"); ЗапросИсточника.Текст = ... РезультатЗапросаКИсточнику = ЗапросИсточника.Выполнить(); Выборка = РезультатЗапросаКИсточнику.Выбрать(); ...Получаем области Пока Выборка.Следующий() Цикл ...заполняем области КонецЦикла; ТабДокумент.Очистить(); ...выводим области КонецФункции =================Вторая Функция =========== Функция ПодключитьсяКИнформационнойБазеПриемнику(СтруктураПодключения, СтрокаСообщенияОбОшибке = "") ...подключаемся ТекCOMОбъектПриемник = ТекCOMПодключениеПриемник.Connect(СтрокаПодключения); ... Макет = ПолучитьМакет("СводнаяТаблицаПоСчетамБУ"); ЗапросПриемника = ТекCOMОбъектПриемник.NewObject("Запрос"); ЗапросПриемника.Текст = ... РезультатЗапросаКПриемника = ЗапросПриемника.Выполнить(); ВыборкаПриемника = РезультатЗапросаКПриемника.Выбрать(); ...Получаем области Пока Выборка.Следующий() Цикл ...заполняем области КонецЦикла; ...выводим области ТабДокумент.Показать(); КонецФункции |
|||
36
Wobland
18.01.12
✎
06:53
|
(35) схематично уже не получается, я имел в виду готовую живую обработку. ну вот смотри, что нашёл:
==== 1 ==== Пока Выборка.Следующий() Цикл ...заполняем области КонецЦикла; ТабДокумент.Очистить(); усердно заполняем, потом это очищаем? ==== 2 ==== Пока Выборка.Следующий() Цикл ...заполняем области КонецЦикла; ...выводим области заполнять заполняем, но выводим только последнюю? не понятно |
|||
37
ponaroshku
18.01.12
✎
07:13
|
(36) по пункту 1 - это реализация (30) :)
по пункту 2 - не поняла, почему выводим последнюю? |
|||
38
Рэйв
18.01.12
✎
07:15
|
(37)Потому что оператор вывода за циклом.И срабатывает когда цикл кончился,т.е. когда заполнена последняя область
|
|||
39
ponaroshku
18.01.12
✎
07:17
|
(38) поняла суть вопроса
в моем случае можно как в цикле, так и вне цикла делать заполнение, т.к. там 1 строка, 1 параметр не несколько строк |
|||
40
Wobland
18.01.12
✎
07:19
|
(37) в (30) сначала Очистить(), потом Вывести()
потому что вывод после цикла |
|||
41
Wobland
18.01.12
✎
07:21
|
прекрати стесняться, дай обработку посмотреть. текущими методами можно долго делать. обещаю сильно не ругаться ;)
|
|||
42
ponaroshku
18.01.12
✎
07:22
|
(41) а скайпа нет?:))) я тут если код выложу меня закидают помидорами:)))
|
|||
43
Wobland
18.01.12
✎
07:23
|
(42) у меня почта есть. а скайп дома только
|
|||
44
Рэйв
18.01.12
✎
07:29
|
(42)Да брось:-) Фотка есть, все в порядке:-)...Все будут милыми и покладистыми.
|
|||
45
ponaroshku
18.01.12
✎
07:30
|
(43) Отправила
(44) с моим кодом начнут требовать фотку топлесс или закидают помидорами :P |
|||
46
Wobland
18.01.12
✎
07:36
|
хочется взять и переписать ;)
даже не знаю, что с тобой делать... процедура ВыполнитьПодключениеКИБИсточнику(), как следует из названия, должна подключаться и всё... щас попробую всё это вслепую переделать |
|||
47
Wobland
18.01.12
✎
07:37
|
и знаешь, сколько усилий потратил на нажатие кнопки Выполнить? ;) размеры формы не меняются, кнопка уехала вниз
|
|||
48
ponaroshku
18.01.12
✎
07:41
|
(46) не не не
ВыполнитьПодключениеКИБИсточнику вызывает процедуру подключения из общего модуля, где и есть запрос (47) :))) я всегда изначально гигантское все делаю |
|||
49
Wobland
18.01.12
✎
07:53
|
гигантское тебя и путает. смотри, как понятней стало:
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка) КОМ1=ВыполнитьПодключениеКИБИсточнику(); КОМ2=ВыполнитьПодключениеКИБПриемнику(); Если КОМ1=Неопределено ИЛИ КОМ2=Неопределено Тогда Возврат; КонецЕсли; ТабДокумент.Очистить(); Печать1(КОМ1); Печать2(КОМ2); ТабДокумент.Показать(); КонецПроцедуры а на почте больше ;) |
|||
50
Wobland
18.01.12
✎
07:55
|
несколько поспешил. надо КОМ1=ВыполнитьПодключениеКИБИсточнику() вызывать. поправишь же сама?
|
|||
51
Wobland
18.01.12
✎
07:55
|
тфу, я так и делаю ;)
|
|||
52
ponaroshku
18.01.12
✎
08:14
|
(50) я поняла, спасибо
поблагородней стало внутри, код сразу стал симпотичным:) но в макет же все равно выводится в низ данные, вначале первая, потом вторая база |
|||
53
Wobland
18.01.12
✎
08:15
|
(52) попробуй сказать последнее предложение другими словами
|
|||
54
ponaroshku
18.01.12
✎
08:21
|
(53) ууу, куда смотрела, то и написала
в макете выводятся вначале данные первой базы в столбец 2, затем ниже данные второй базы в столбец4 получается макет дважды выводится, но не объединяется? |
|||
55
Wobland
18.01.12
✎
08:31
|
(54) я ещё в (2) пытался что-то этакое выяснить...
предлагаю выгрузить запрос1 в ТЗ, потом прикрутить к этой ТЗ запрос2 и выводить в ТабДок уже ТЗ. было б всё в одной базе, это бы называлось соединением ;) |
|||
56
Wobland
18.01.12
✎
08:46
|
возможные мелкие недописки/ошибки, надеюсь, простишь. лови почту
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |