× Ссылка на скачивание архива: www.bot4sale.ru/download-categories/2012...6/item/amisharp.html (архив под паролем)

Работа с таблицами AmiSharp

Подробнее
10 года 4 дн. назад #21 от AlexLan
Михаил, подскажите пожалуйста,
1. Как организовать цикл и перебрать все строки в таблице.
2. С помощью фильтра amisharp.ApplyFilterName("LK-GZ,"Код бумаги","GZU2","Filter"); создаем таблицу Filter.-все замечательно. Но когда скрипт проходит еще раз, обновляя таблицу, она пропадает в списке таблиц есть но не вызывается.
Но если удаляешь таблицу, то при новом проходе скрипта все возобновляется. Можно ли без удаления, а просто обновление значение таблицы.
С уважением, Александр.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
10 года 4 дн. назад - 10 года 3 дн. назад #22 от admin
Я не совсем понял вопрос.

Если нужно перебрать все строки в таблице, то это делается так (для именованной)
heght = strtonum(amisharp. GetHeight (......))
for (i=1 ; i <= height ; i++)
чего-то там со строкой номер i

Для неименованной цикл начинаем с 0 - заголовка-то в нулевой строке нет.

Если Вы хотите найти в таблице строку, где в определенном столбце находятся нужные Вам данные, то можно сделать это перебором строк и GetCell / GetCellName для каждой строки, а можно воспользоваться фильтром Applyfilter или ApplyFiltername. Обе эти функции из исходной таблицы сделают другую, новую, с именем, которое Вы зададите. В результирующей таблице будут помещены все (и только те) строки из исходной, где в требуемом столбце стоит нужное значение. Эта новая таблица ничем по функционалу не отличается от иных. С ней можно работать точно также, как и с остальными. После того как вы сделали с ней требуемые действия, ее следует удалить, чтобы не копить мусор в памяти. В случае, если используете ApplyFilterName, в результирующую таблицу будет скопирован заголовок из исходной.
Обычное применение - это поиск сделки в таблице сделок по ее известному номеру. Или поиск строки, отвечающей за нужный инструмент в таблице всех сделок.

Вот пример использования
Последнее редактирование: 10 года 3 дн. назад пользователем admin.
Спасибо сказали: AlexLan

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
10 года 4 дн. назад - 10 года 3 дн. назад #23 от AlexLan
Спасибо за ответ.
У Вас в примерах было хорошо все показано и описано. И пример хороший.
Уточню вопрос. Формируем amisharp.ApplyFilterName("LK-GZ,"Код бумаги","GZU2","Filter");
новая таблица Filter содержит 4 строчки
heght = strtonum(amisharp. GetHeight (......))
for (i=1 ; i <= height ; i++) //и тут все понятно
{
a=Filter.имя_колонки; // таким образом можно прочитать данные?
}
По поводу создание новой таблицы, потом удаление, и так на каждом проходе скрипта. На сколько сильно эти операции влияют на производительность?
А в целом amisharp.ApplyFilterName - удобная вещь ))
Спасибо, Александр.
Последнее редактирование: 10 года 3 дн. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
10 года 4 дн. назад - 10 года 1 день назад #24 от admin

AlexLan пишет: Спасибо за ответ.

Уточню вопрос. Формируем amisharp.ApplyFilterName("LK-GZ,"Код бумаги","GZU2","Filter");
новая таблица Filter содержит 4 строчки
heght = strtonum(amisharp.GetHeight(......))
for (i=1 ; i <= height ; i++) //и тут все понятно
{
a=Filter.имя_колонки; // таким образом можно прочитать данные?
}


Конечно нет.

a=amisharp. GetCell ("Filter",номер столбца, номер строки);

Или

a=amisharp. GetCellName ("Filter",имя столбца, номер строки);

AlexLan пишет: По поводу создание новой таблицы, потом удаление, и так на каждом проходе скрипта. На сколько сильно эти операции влияют на производительность?


Александр, удаление таблицы - элементарнейшая операция. Нисколько не влияет.
Фильтрация таблиц занимает несколько больше процесорного времени, но в любом случае внутри Амишарпа это происходит очень быстро, можно по этому поводу не задумываться.
Последнее редактирование: 10 года 1 день назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
10 года 4 дн. назад #25 от AlexLan
По поводу задержки во времени, при удаление таблицы - это быстро в этом я не сомневался. А вот каждый проход скрипта, фильтрация и создание таблицы это все время.((
Спасибо за пример))
Спасибо за оперативность.
Пишу функцию, перестановка (подтягивание ) стоп-лимитной заявки. Все хочется по проще, а код получается большой. Не привычный язык, но поддается.
С уважением, Александр.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Модераторы: admin