Hello,
I am attempting to use the genericlist genie on a screen, I have setup the fonts I'd like to use for both the header and the rows in the Standards. I'm looking for a way to center justify the text in both the header and the rows. I also really need to have some sort of column and row separators. I'm also having issues with scroll bar not showing up. Below it the list at runtime and the code.
STRING sColumnNames[10] = "","Start Date/Time","End Date/Time","AS Type","Instruction Type","Cleard MW","Award MW","Self Schedule MW","DOT","AGC"; //Names array
INT nColumnWidths[10] = 0,200,200,240,245,110,110,185,75,70; //Widths array
FUNCTION ADS_StoredInstructionsListCreate(INT hAn)
INT bDrawHeader = 1; // Draw the header row
INT hFontRow = DspFontHnd("FntADSData");
INT hFontHeader = DspFontHnd("FntADSHeader");
INT nColumn = 1;
INT nColumns = 9;
INT nRows = 40;
INT nRowHeight = 20; // pixels
INT nHeight = 620;//(nRows + 1) * nRowheight;
INT nWidth = 1435; // pixels
INT nWidthTotal = 0; // Pixels, sum of column widths
INT nDataColumns = 10; // Maximum possible number of data columns
INT nDataRows = 40; // Maximum possible number of data rows
INT hArray = ArrayCreateByAn(hAn , nColumns + 1, nRows + 1, ARRAY_ZINDEX_MAX);
// +1 for Column0 (hidden), +1 for Row0 (hidden)
STRING sMapName = ArrayGetMapNameByAn(hAn);
STRING sCluster = PageInfo(26); //Get the Cluster name of the page
// Set up array attributes
ArraySetIntByAn(hAn, nWidth, ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_XMAX);
ArraySetIntByAn(hAn, nHeight, ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_YMAX);
ArraySetIntByAn(hAn, nRowHeight, ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_ROWHEIGHT);
ArraySetIntByAn(hAn, bDrawHeader, ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_DRAWHEADER);
ArraySetIntByAn(hAn, hFontRow, ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_FONTROW);
ArraySetIntByAn(hAn, hFontHeader, ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_FONTHDR);
// Set up column headers
FOR nColumn = 1 TO nColumns DO
ArraySetStringByAn(hAn, sColumnNames[nColumn], nColumn, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_COLUMN_VALUE);
ArraySetIntByAn(hAn, nColumnWidths[nColumn], nColumn, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_COLUMN_WIDTH);
ArraySetIntByAn(hAn, ARRAY_COLUMN_TYPE_STRING, nColumn, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_COLUMN_TYPE);
nWidthTotal = nWidthTotal + nColumnWidths[nColumn];
END
ArraySetIntByAn(hAn, nWidthTotal, ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_XTOTAL);
ArraySetIntByAn(hAn, (nRows + 1), ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_YTOTAL);
INT hDataArray = ArrayCreate("DataArray", nDataColumns, nDataRows, 1);
// Data Array; 9 fields x 40 rows
MapValueSet(sMapName, "DataArray", hDataArray);
MapValueSet(sMapName, "DataColumns", nDataColumns);
MapValueSet(sMapName, "DataRows", nDataRows);
MapValueSet(sMapName, "Offset", -1);
TaskNew("ADS_Task_GetData", hAn:#, 1 + 8, sCluster);
END
STRING sASDTagNameArray[10] = "","ADSStoredInstructionStartTime_","ADSStoredInstructionEndTime_","ADSStoredInstructionAsType_","ADSStoredInstructionInstructionType_","ADSStoredInstructionClearedMW_","ADSStoredInstructionAwardMW_","ADSStoredInstructionSelfSchedMW_","ADSStoredInstructionDot_","ADSStoredInstructionAGCFlag_";
FUNCTION ADS_Task_GetData(STRING sArg);
INT hAn = StrToInt(sArg);
INT nDataColumn = 0;
INT nDataRow = 0;
INT nDataColumns = 0;
INT nDataRows = 0;
INT hDataArray = -1;
STRING sMapName = "";
STRING nRandom = 0;
STRING sValue = "";
WHILE (TRUE) DO
IF (ArrayExistsByAn(hAn)) THEN
sMapName = ArrayGetMapNameByAn(hAn);
hDataArray = MapValueGet(sMapName, "DataArray");
nDataColumns = MapValueGet(sMapName, "DataColumns");
nDataRows = MapValueGet(sMapName, "DataRows");
ArraySetIntByAn(hAn, nDataRows, ARRAY_INFORMATION_COLUMN, ARRAY_INFORMATION_ROW, ARRAY_ZINDEX_ARRAY_YTOTAL);
FOR nDataRow = 1 TO nDataRows DO
FOR nDataColumn = 1 TO nDataColumns DO
nRandom = Rand(99);
sValue = "C" + nDataColumn:# + "R" + nDataRow:# + ">" + nRandom:#;
ArraySetString(hDataArray, sValue, nDataColumn - 1, nDataRow -1, 0);
END
END
END
SleepMS(30000);
END
END
FUNCTION ADS_StoredInstructionsListFill(INT hAn)
INT nRow = 0;
INT nRows = 40;
INT nColumn = 0;
INT nColumns = 9;
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
FUNCTION ADS_StoredInstructionsListDestroy(INT hAn)
INT hDataArray = -1;
STRING sMapName = "";
IF (ArrayExistsByAn(hAn)) THEN
sMapName = ArrayGetMapNameByAn(hAn);
hDataArray = MapValueGet(sMapName, "DataArray");
ArrayDestroy(hDataArray);
GenericListDestroy(hAn);
END
END