25.10.2005, 13:55 | #1 |
Участник
|
проблемы с Excel
Печатаю форму Т-13 (табель) в Excel. Не могу понять, какой метод отвечает за фокусирование в excel, т.е. хочу чтобы пользователь видел на экране те данные, которые в данный момент вставляются в отчет. Сейчас же получается, что Excel отображает первые строки, а когда пытаешься опуститься вниз для просмотра, отчет автоматически перескакивает снова на начало. Подскажите в чем проблема!
|
|
25.10.2005, 14:00 | #2 |
NavAx
|
если я правильно понял, то в начале вывода данных вам нужно поставить
excellDocument.visible(true); |
|
25.10.2005, 14:08 | #3 |
Участник
|
Этого делать не советую, так как если пользователь кликнет по заполняемому листу во время заполнения отчета - операция завершится ошибкой. Здесь насколько я понял вопрос не по аксапте а по сом экселя.
|
|
25.10.2005, 17:39 | #4 |
Участник
|
2 mit
Не все так запущено. X++: static void ShowExcel(Args _args) { ComExcelDocument_Ru excel = new ComExcelDocument_Ru(); COM Doc; COM App; COM Sheet; COM r; LedgerTable LedgerTable; int row = 1; ; excel.newFile(); excel.Visible(True); Doc = excel.getComDocument(); App = Doc.Application(); Sheet = App.ActiveSheet(); App.Interactive(ComVariant::createFromBoolean(False)); while select LedgerTable { r = Sheet.Range(ComExcelDocument_Ru::numToNameCell(1, row)); r.Value2(ComVariant::createFromStr(LedgerTable.AccountNum)); r.Select(); r = Sheet.Range(ComExcelDocument_Ru::numToNameCell(2, row)); r.Value2(ComVariant::createFromStr(LedgerTable.AccountName)); row++; } r = Sheet.Range(ComExcelDocument_Ru::numToNameCell(1, 1), ComExcelDocument_Ru::numToNameCell(2, 1)); r = r.EntireColumn(); r.AutoFit(); App.Interactive(ComVariant::createFromBoolean(True)); }
__________________
Axapta v.3.0 sp5 kr2 |
|
26.10.2005, 07:27 | #5 |
Участник
|
Я как раз и вставила в код строку excelDocument.visible(true); чтобы пользователь видел как формируется отчет, на какой он стадии. Отчет получается большой, на несколько станиц. Так вот когда идет вставка данных, то отображается верх отчета, и пользователь не видит те данные которые втсавляются в данный момент.
|
|
27.10.2005, 11:21 | #6 |
Участник
|
Я бы посоветовал вставлять excel.Visible(True); только с самом конце - когда весь отчёт сформирован и выведен. Скорость вывода у Вас значительно вырастет. (тем более, что выводится информации на несколько листов)
А для того, чтоб пользователь знал о стадии вывода - используйте прогрессбар. |
|
27.10.2005, 12:10 | #7 |
Участник
|
savel, спасибо за совет, но проблему уже решила другим путем
Все дело было в методе insertRows класса COMExcelDocument_RU |
|