|
OBJECT Codeunit 50003 ShareTable/RecordArray Test |
|
{ |
|
OBJECT-PROPERTIES |
|
{ |
|
Date=02-06-17; |
|
Time=12:11:19; |
|
Modified=Yes; |
|
Version List=; |
|
} |
|
PROPERTIES |
|
{ |
|
OnRun=BEGIN |
|
CASE STRMENU('ShareTable,RecordArray') OF |
|
1: ShareTable(); |
|
2: RecordArray(); |
|
END; |
|
END; |
|
|
|
} |
|
CODE |
|
{ |
|
|
|
LOCAL PROCEDURE ShareTable@11152001(); |
|
VAR |
|
CustomerBufferA@11152001 : TEMPORARY Record 18; |
|
CustomerBufferB@11152000 : TEMPORARY Record 18; |
|
BEGIN |
|
CustomerBufferA."No." := 'ABC'; |
|
CustomerBufferA.INSERT; |
|
|
|
CustomerBufferA."No." := 'DEF'; |
|
CustomerBufferA.INSERT; |
|
|
|
// Both buffers now point to the same dataset |
|
CustomerBufferB.COPY(CustomerBufferA, TRUE); |
|
MESSAGE('%1\%2', CustomerBufferA.COUNT, CustomerBufferB.COUNT); |
|
|
|
// Current record pointer applies to each buffer separately |
|
CustomerBufferB.FINDFIRST(); |
|
MESSAGE('%1\%2', CustomerBufferA."No.", CustomerBufferB."No."); |
|
|
|
// Filtering applies to each buffer separately |
|
CustomerBufferB.SETFILTER("No.", '*E*'); |
|
MESSAGE('%1\%2', CustomerBufferA.GETFILTERS, CustomerBufferB.GETFILTERS); |
|
MESSAGE('%1\%2', CustomerBufferA.COUNT, CustomerBufferB.COUNT); |
|
|
|
// Sort order applies to each buffer separately |
|
CustomerBufferB.SETCURRENTKEY(Name); |
|
MESSAGE('%1\%2', CustomerBufferA.CURRENTKEY, CustomerBufferB.CURRENTKEY); |
|
|
|
// Resetting one buffer does not affect the other one |
|
CustomerBufferA.RESET; |
|
MESSAGE('%1\%2', CustomerBufferA.GETFILTERS, CustomerBufferB.GETFILTERS); |
|
END; |
|
|
|
LOCAL PROCEDURE RecordArray@11152005(); |
|
VAR |
|
CustomerBuffer@11152000 : ARRAY [2] OF TEMPORARY Record 18; |
|
BEGIN |
|
CustomerBuffer[1]."No." := 'ABC'; |
|
CustomerBuffer[1].INSERT; |
|
|
|
CustomerBuffer[1]."No." := 'DEF'; |
|
CustomerBuffer[1].INSERT; |
|
|
|
CustomerBuffer[2]."No." := 'XYZ'; |
|
CustomerBuffer[2].INSERT; |
|
|
|
// Both buffers point to the same dataset |
|
MESSAGE('%1\%2', CustomerBuffer[1].COUNT, CustomerBuffer[2].COUNT); |
|
|
|
// Current record pointer applies to each buffer separately |
|
CustomerBuffer[2].FINDFIRST(); |
|
MESSAGE('%1\%2', CustomerBuffer[1]."No.", CustomerBuffer[2]."No."); |
|
|
|
// Filtering applies to each buffer separately |
|
CustomerBuffer[2].SETFILTER("No.", '*E*'); |
|
MESSAGE('%1\%2', CustomerBuffer[1].GETFILTERS, CustomerBuffer[2].GETFILTERS); |
|
MESSAGE('%1\%2', CustomerBuffer[1].COUNT, CustomerBuffer[2].COUNT); |
|
|
|
// Sort order applies to each buffer separately |
|
CustomerBuffer[2].SETCURRENTKEY(Name); |
|
MESSAGE('%1\%2', CustomerBuffer[1].CURRENTKEY, CustomerBuffer[2].CURRENTKEY); |
|
|
|
// Resetting one buffer does not affect the other one |
|
CustomerBuffer[1].RESET; |
|
MESSAGE('%1\%2', CustomerBuffer[1].GETFILTERS, CustomerBuffer[2].GETFILTERS); |
|
END; |
|
|
|
BEGIN |
|
{ |
|
Tested in NAV2017, build 15052 |
|
} |
|
END. |
|
} |
|
} |
|
|