Det vi håller på med är att skriva en ICollection-wrapper för rader så som ADK_OOI_HEAD_ROWS.
Det som önskas är att kunna hämta ut hela vektorn ur radpekaren för ADK_OOI_HEAD_ROWS utan att behöva ange index.
Som det är nu så verkar det som att om man ska lägga till en rad till ADK_OOI_HEAD_ROWS så måste man måste göra följande:
int pNewOrderRow = // pekare till en ADK_DB_ORDER_ROW som innehåller information.
int pOrder = // pekare till en order
// hämta ut antal rader för den nuvarande radvektorn:
double nRows = 0;
AdkGetDouble(pOrder, ADK_OOI_HEAD_NROWS, ref nRows);
// skapa en ny radvektor med nRows+1
var pDataRow = AdkCreateDataRow(ADK_DB_ORDER_ROW, nRows + 1);
// gå igenom den nuvarande radpekaren i pOrder:
for (int i = 0; i < nRows; i++) {
int pOrderRow = 0;
AdkGetData(pOrder, ADK_OOI_HEAD_ROWS, i, ref pOrderRow);
var pTempData = AdkGetDataRow(pDataRow, i);
// överför alla värden ifrån pOrderRow till pTempData
}
// sätt in den nya raden:
var pNewTempData = AdkGetDataRow(pDataRow, nRows);
// överför all information som finns i pNewOrderRow till pNewTempData
// uppdatera radpekaren i pOrder:
AdkSetData(pOrder, ADK_OOI_HEAD_ROWS, pDataRow);
// uppdatera antal rader
AdkSetDouble(pOrder, ADK_OOI_HEAD_NROWS, nRows + 1);
// uppdatera pOrder
AdkUpdate(pOrder);
Det som hade varit trevligt är att kunna hämta hem hela radvektorn. Kunna för varje index kunna sätta in en egen radpekare utan att behöva hämta hem en pTempData pekare och uppdatera den.
Typ: AdkSetDataRow(pDataRow, index, pNewOrderRow);
Eller för den delen kunna hämta hem en radpekare ur en radvektor och kunna ändra den pekaren.
Copyright 2025 Visma Spcs. All rights reserved.