_ArrayView_Header_Run (Generic List Setup)

came across the Genric List cicode example (below) which uses the arrays functions to populate the generic lists which part of the sa_controls library. is anyone able to provide more info on where the _ArrayView functions are located? doesn't seem to appear in any of the include functions etc.

FUNCTION Test_GenericListFill(INT hAn)
   INT nRow = 0;
   INT nRows = 10;
   INT nColumn = 0;
   INT nColumns = 5;
   INT nOffset = 0;
   INT nOffset_Previous = 0;
   INT nDataColumns = 0;
   INT nDataRows = 0;
   INT hDataArray = -1;
   STRING sMapName = "";
   STRING sValue = "";

   IF (ArrayExistsByAn(hAn)) THEN
      _ArrayView_Header_Run(hAn);
      _ArrayView_VScroll_Run(hAn);
      _ArrayView_HScroll_Run(hAn);

      sMapName = ArrayGetMapNameByAn(hAn);
      hDataArray = MapValueGet(sMapName, "DataArray");
      nOffset_Previous = MapValueGet(sMapName, "Offset");
      nOffset = ArrayGetIntByAn(hAn, ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_YOFF);

      hDataArray = MapValueGet(sMapName, "DataArray");
      IF ((ArrayIsDirty(hDataArray)) OR (nOffset <> nOffset_Previous)) THEN
         nDataColumns = MapValueGet(sMapName, "DataColumns");
         nDataRows = MapValueGet(sMapName, "DataRows");

         FOR nRow = 1 TO nRows DO
            FOR nColumn = 1 TO nColumns DO
               sValue = ArrayGetString(hDataArray, nColumn - 1, (nOffset + nRow) - 1, 0);
               ArraySetStringByAn(hAn, sValue, nColumn, nRow, ARRAY_ZINDEX_CELL_VALUE);
            END
         END

         MapValueSet(sMapName, "Offset", nOffset);
         ArraySetIsDirty(hDataArray, FALSE);
      END
   END
END
Parents
  • Hmm, I think we have an oversight on our behalf here. the list_row_x genies were meant to work with alarm lists or generic lists. The hardcode of the alarm func, I don't believe was intentional.

    I'll have to get the team to look at this and correct. 

    Anyway, hopefully it your scenario having the list_row_x10 genies calling the alarmlist_row_leftclick will be harmless.

    I did up a quick example project,and this is my handler:

    FUNCTION SimpleList_OnLeftClick(INT hArrayAn)
     INT iSelectedRow = StrToInt(_ArrayView_Selected_RecID(hArrayAn));
     Message("Citect", "You clicked on Row: " + iSelectedRow:# + ", 0);
    END
Reply
  • Hmm, I think we have an oversight on our behalf here. the list_row_x genies were meant to work with alarm lists or generic lists. The hardcode of the alarm func, I don't believe was intentional.

    I'll have to get the team to look at this and correct. 

    Anyway, hopefully it your scenario having the list_row_x10 genies calling the alarmlist_row_leftclick will be harmless.

    I did up a quick example project,and this is my handler:

    FUNCTION SimpleList_OnLeftClick(INT hArrayAn)
     INT iSelectedRow = StrToInt(_ArrayView_Selected_RecID(hArrayAn));
     Message("Citect", "You clicked on Row: " + iSelectedRow:# + ", 0);
    END
Children
No Data