:: Не фоксом единым
Передача ссылки на массив в С#
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Собственно давно про это думал
В фоксе для быстрой передачи данных из курсора
мы sql запросом переносим их в массив.
В ексел отдаем сразу область данных с помощью
передачи ссылки на массив.
У меня написана к этому методу на фоксе целый класс,
который делает оптовое форматирование в ексел,
( выравнивание влево-вправо), перенос строки при переполнении,
задание шрифта итд
Все это оптом на целые области ячеек.
Очень хочу сделать такой же класс на Си
2 Вопроса
1 как результаты датасет перенести в массив
2 как отдать диапазону ячеек ексела ссылку на этот
массив.
Ratings: 0 negative/0 positive
Re: Передача ссылки на массив в С#
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> В ексел отдаем сразу область данных с помощью передачи ссылки на массив. У меня написана к этому методу на фоксе целый класс, который делает оптовое форматирование в ексел, ( выравнивание влево-вправо), перенос строки при переполнении, задание шрифта итд

Как вы это делаете в процессе "передачи ссылки на массив"?

Если этим способом:
m.loSheet.Range("A1:J10").Value = ArrayPointer("MASS") && forum.foxclub.ru
* где
Function ArrayPointer && возвращает УКАЗАТЕЛЬ на массив с именем (1C).
* Попробовал передавать массив как (@1) - не работает вызывающая строка (мол, нет массива tcArrayName).
LPARAMETERS tcArrayName
RETURN @&tcArrayName
Сформатировать можно выравнивание на нужной длине элементов в фоксовом массиве, а "задание шрифта" - как это выглядит?



Исправлено 2 раз(а). Последнее : of63, 25.03.19 20:32
Ratings: 0 negative/0 positive
Re: Передача ссылки на массив в С#
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Ссылкой на массив переносятся данные, все остальное стандартными способами. Володя просто неточно выразился.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Передача ссылки на массив в С#
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
ssa, А что Володя хотел? В Си-шарпе проделать подобное?
Ratings: 0 negative/0 positive
Re: Передача ссылки на массив в С#
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Вроде сделал.
В примерах на С шарп
везде пишут get_range
На деле это на многих компах не работает.
Нужно просто range
Причем, при первичной сборке проекта никакой ошибки в строке
с get_range не дает, только при запуске валится на ней на необработанное исключение.
Еще кучу хрени огреб.
При чтении области из Ексел таким способом
при присвоении двух мерному строковому массиву
Range("A1:J10").Value
не понимает, считая это не массивом, а объектами.
Неявное преобразование тоже не работает.
И передача ссылки на это через функцию -тоже нет.
Нашел на Инет примеры.
Пришлось писать еще кучу кода.
Просил коллегу посмотреть,
у него вообще только Range("A1:J10").formula
срабатывает.
При этом до написания кода скачал штук 20 готовых примеров с Инет,
на деле ни один чисто не работал.
Пока делал, сломал работу там с Оракл.
Перестало понимать сборку oracle.dataaccess.client
Сижу, разбираюсь, как переписать эту часть на factory
На Фоксе уже бы неделю назад все написал.
Если выберусь из ошибок, всю работу с Ексел
помещу как в Фоксе в отдельный класс.
Ratings: 0 negative/0 positive
Re: Передача ссылки на массив в С#
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Интеропы то штатные к экселю используются, или генеришь заново?
А вообще "работать с эксель" - тупиковый путь. Либо какой генератор создающий файлы нужного формата (к сожалению обычно они не бесплатны), либо вообще xml с данными формировать и в эксель затягивать.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Передача ссылки на массив в С#
boba
Автор

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
interopt штатный
На деле можно все сделать,
и работает.
Просто мне сначала казалось, что фоксовый код
пойдет практически 1=1
Это оказалось не верно.
Почему, не совсем понимаю.
Объектная модель Ексел ведь одна и та же.
Сейчас это пытаюсь приладить в простую задачу.
Есть фоксовая форма , которая умеет вызывать 26
Оракловых процедур с refcursor
Результата показывается в Грид и может быть
выведен в Excel
Число колонок курсора и поля для процедур разные.
Вот все это и пытаюсь переделать в Студио.
На деле результирующий Ексел шаблон содержит
более 100 страниц, иногда его слегка меняют молча
сверху.
На Фоксе есть анализатор отловли таких изменений и
настройка на них так, чтобы особо процедуры Оракл не переписывать.
Или переписывать по минимум.
Это тоже все придется на Студио переделать.
Поэтому нужно не только заполнять Ексел,
но и читать его, держать текущую структуру в таблице.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2000-2024 Fox Club 
Яндекс.Метрика