08.02.2007, 13:54 | #1 |
Участник
|
Сделал один отчётец с выгрузкой в Excel. На одних и тех же входных данных он иногда отрабатывает нормально, иногда недовыгрузившись клиент навижен (3.6) совершает ошибку и вырубается причём каждый в совершенно разных строках, но всегда в одном и том же столбце.
Вот кусок кода по формированию значения ячейки и выгрузки его в Excel <div class='CALtop'>C/AL</div><div class='CAL'> IF VPG.GET("Purch. Inv. Header"."Vendor Posting Group") THEN BEGIN _acc := VPG."Payables Account"; Sheet.Range('F'+FORMAT(StrNum)).NumberFormat := '@'; Sheet.Range('F'+FORMAT(StrNum)).Value := _acc; END ELSE _acc := ''; Sheet.Range('G'+FORMAT(StrNum)).WrapText := TRUE; </div> Формат ячейки устанавливался в текстовый, но вот значение не заносилось. Для экспериментов встаивл через строчку коды для облегчения поиска ошибочного момента <div class='CALtop'>C/AL</div><div class='CAL'> Sheet.Range('F'+FORMAT(StrNum)).Value := '1'; IF VPG.GET("Purch. Inv. Header"."Vendor Posting Group") THEN BEGIN Sheet.Range('F'+FORMAT(StrNum)).Value := '2'; _acc := VPG."Payables Account"; Sheet.Range('F'+FORMAT(StrNum)).Value := '3'; Sheet.Range('F'+FORMAT(StrNum)).NumberFormat := '@'; Sheet.Range('F'+FORMAT(StrNum)).Value := '4'; Sheet.Range('F'+FORMAT(StrNum)).Value := _acc; END ELSE _acc := ''; Sheet.Range('G'+FORMAT(StrNum)).WrapText := TRUE; </div> Когда вылетал навижен в Excel было записано всего 4, т.е. вылетает на Sheet.Range('F'+FORMAT(StrNum)).Value := _acc; Типы следующие: <div class='CALtop'>C/AL</div><div class='CAL'> _acc CODE 20 VPG RECORD Vendor Posting Group </div> В чём может быть проблема? |
|
08.02.2007, 14:11 | #2 |
Участник
|
Кстати щас разок вылетела SQLная шибка, но в другом месте
Произошла следующая ошибка(и) при обращении к таблице Покупка Счет Строка: 701,"42000",[Microsoft][ODBC SQL Server Driver][SQL Server]There is insufficient system memory to run this query. Хотя наверное это не по теме. Поиск по тексту ошиьки показал что вероятно это глюк SQL Server`а |
|
08.02.2007, 14:13 | #3 |
Участник
|
Если процесс выгрузки длительный и в этот момент открывать и работать в excel то подобный глюк вполне может произойти...
похоже память на серваке кончилась
__________________
Want to believe... |
|
08.02.2007, 14:18 | #4 |
Участник
|
Цитата:
ну это скорее не имеет к делу отношения - просто 1 раз было и клиент не вылетел - просто совпало |
|
08.02.2007, 14:47 | #5 |
Участник
|
Черт его знает что это, но я бы попробовал: 1) поставить
Код: SLEEP(1000); 2) Поставил бы Код: Sheet.Range('F'+FORMAT(StrNum)).Value := FORMAT(_acc); |
|
08.02.2007, 15:09 | #6 |
Участник
|
Sheet.Range('F'+FORMAT(StrNum)).Value := FORMAT(_acc);
Думал об этом тоже. Попробовал - пока вроде не глючит. Спасибо |
|