Как ускорить изменение большого количества записей?
Поставили задачу помечать с возможностью фильтрации таких контрагентов, по которым можно провести операцию сопоставления оплаты задолжености.
Сперва решили сделать дисплейный метод на таблицы:
контрагентов видно, но нельзя их отфильтровать.
Тогда добавили поле (типа NoYes) и в формах VendTable/CustTable сделали метод, который обновлял это поле средсвами Аксапты... ПРОБЛЕМА во времени работы.
Решили обмануть систему и переписали метод так:
void Sopostav()
{
Connection C = new Connection();
Statement stmt = c.createStatement();
str ss = " and DataAreaId = \'" + curExt() + "\'";
str SQL0 = "UPDATE VENDTABLE SET Na_Sopostav = 0 where Na_Sopostav = 1" + ss;
str SQL = "UPDATE VENDTABLE SET Na_Sopostav = 1 WHERE accountnum = ANY (" +
"SELECT accountnum FROM VENDTRANSOPEN WHERE amountmst > 0 AND accountnum = ANY (" +
"SELECT accountnum FROM VENDTRANSOPEN WHERE amountmst < 0" + ss + ")" + ss + ")" + ss;
;
stmt.executeUpdate(SQL0);
stmt.executeUpdate(SQL);
}
Но нехочется обманывать систему, что можете посоветовать.
|