Академический Документы
Профессиональный Документы
Культура Документы
{
OBJECT-PROPERTIES
{
Date=07/09/12;
Time=12:00:00 PM;
Version List=NAVW17.00;
}
PROPERTIES
{
Permissions=TableData 80=imd,
TableData 232=imd,
TableData 355=imd;
OnRun=BEGIN
END;
}
CODE
{
VAR
Text000@1000 : TextConst 'ENU=Dimensions %1 and %2 can''t be used concurre
ntly.;ENA=Dimensions %1 and %2 can''t be used concurrently.';
Text001@1001 : TextConst 'ENU=Dimension combinations %1 - %2 and %3 - %4 c
an''t be used concurrently.;ENA=Dimension combinations %1 - %2 and %3 - %4 can''
t be used concurrently.';
Text002@1002 : TextConst 'ENU=This Shortcut Dimension is not defined in th
e %1.;ENA=This Shortcut Dimension is not defined in the %1.';
Text003@1003 : TextConst 'ENU=%1 is not an available %2 for that dimension
.;ENA=%1 is not an available %2 for that dimension.';
Text004@1004 : TextConst 'ENU=Select a %1 for the %2 %3.;ENA=Select a %1 f
or the %2 %3.';
Text005@1005 : TextConst 'ENU=Select a %1 for the %2 %3 for %4 %5.;ENA=Sel
ect a %1 for the %2 %3 for %4 %5.';
Text006@1006 : TextConst 'ENU=Select %1 %2 for the %3 %4.;ENA=Select %1 %2
for the %3 %4.';
Text007@1007 : TextConst 'ENU=Select %1 %2 for the %3 %4 for %5 %6.;ENA=Se
lect %1 %2 for the %3 %4 for %5 %6.';
Text008@1008 : TextConst 'ENU=%1 %2 must be blank.;ENA=%1 %2 must be blank
.';
Text009@1009 : TextConst 'ENU=%1 %2 must be blank for %3 %4.;ENA=%1 %2 mus
t be blank for %3 %4.';
Text010@1010 : TextConst 'ENU=%1 %2 must not be mentioned.;ENA=%1 %2 must
not be mentioned.';
Text011@1011 : TextConst 'ENU=%1 %2 must not be mentioned for %3 %4.;ENA=%
1 %2 must not be mentioned for %3 %4.';
Text012@1012 : TextConst 'ENU=A %1 used in %2 has not been used in %3.;ENA
=A %1 used in %2 has not been used in %3.';
Text013@1013 : TextConst 'ENU=%1 for %2 %3 is not the same in %4 and %5.;E
NA=%1 for %2 %3 is not the same in %4 and %5.';
Text014@1014 : TextConst 'ENU=%1 %2 is blocked.;ENA=%1 %2 is blocked.';
Text015@1015 : TextConst 'ENU=%1 %2 can''t be found.;ENA=%1 %2 can''t be f
ound.';
Text016@1016 : TextConst 'ENU=%1 %2 - %3 is blocked.;ENA=%1 %2 - %3 is blo
cked.';
Text017@1017 : TextConst 'ENU=%1 for %2 %3 - %4 must not be %5.;ENA=%1 for
%2 %3 - %4 must not be %5.';
Text018@1018 : TextConst 'ENU=%1 for %2 is missing.;ENA=%1 for %2 is missi
ng.';
Text019@1028 : TextConst 'ENU=You have changed a dimension.\\Do you want t
o update the lines?;ENA=You have changed a dimension.\\Do you want to update the
lines?';
TempDimBuf1@1019 : TEMPORARY Record 360;
TempDimBuf2@1020 : TEMPORARY Record 360;
ObjTransl@1027 : Record 377;
DimValComb@1032 : Record 351;
JobTaskDimTemp@1033 : TEMPORARY Record 1002;
DefaultDim@1035 : Record 352;
DimSetEntry@1034 : Record 480;
TempDimSetEntry2@1029 : TEMPORARY Record 480;
TempDimCombInitialized@1031 : Boolean;
TempDimCombEmpty@1030 : Boolean;
DimCombErr@1021 : Text[250];
DimValuePostingErr@1022 : Text[250];
DimErr@1023 : Text[250];
DocDimConsistencyErr@1024 : Text[250];
HasGotGLSetup@1025 : Boolean;
GLSetupShortcutDimCode@1026 : ARRAY [8] OF Code[20];
DimSetFilterCtr@1036 : Integer;
LastDimSetIDInFilter@1037 : Integer;
PROCEDURE GetDimensionSetID@123(VAR DimSetEntry2@1000 : Record 480) : Intege
r;
BEGIN
EXIT(DimSetEntry.GetDimensionSetID(DimSetEntry2));
END;
PROCEDURE GetDimensionSet@124(VAR TempDimSetEntry@1000 : TEMPORARY Record 48
0;DimSetID@1001 : Integer);
VAR
DimSetEntry2@1002 : Record 480;
BEGIN
TempDimSetEntry.DELETEALL;
WITH DimSetEntry2 DO BEGIN
SETRANGE("Dimension Set ID",DimSetID);
IF FINDSET THEN
REPEAT
TempDimSetEntry := DimSetEntry2;
TempDimSetEntry.INSERT;
UNTIL NEXT = 0;
END;
END;
PROCEDURE ShowDimensionSet@125(DimSetID@1000 : Integer;NewCaption@1003 : Tex
t[250]);
VAR
DimSetEntries@1002 : Page 479;
BEGIN
DimSetEntry.RESET;
DimSetEntry.FILTERGROUP(2);
DimSetEntry.SETRANGE("Dimension Set ID",DimSetID);
DimSetEntry.FILTERGROUP(0);
DimSetEntries.SETTABLEVIEW(DimSetEntry);
DimSetEntries.SetFormCaption(NewCaption);
DimSetEntry.RESET;
DimSetEntries.RUNMODAL;
END;
PROCEDURE EditDimensionSet@128(DimSetID@1000 : Integer;NewCaption@1003 : Tex
t[250]) : Integer;
VAR
UpdateGlobalDimFromDimSetID(NewDimSetID,NewGlobalDimVal1,NewGlobalDimVal2)
;
END;
PROCEDURE UpdateGlobalDimFromDimSetID@130(DimSetID@1000 : Integer;VAR Global
DimVal1@1001 : Code[20];VAR GlobalDimVal2@1002 : Code[20]);
BEGIN
GetGLSetup;
GlobalDimVal1 := '';
GlobalDimVal2 := '';
IF GLSetupShortcutDimCode[1] <> '' THEN
IF DimSetEntry.GET(DimSetID,GLSetupShortcutDimCode[1]) THEN
GlobalDimVal1 := DimSetEntry."Dimension Value Code";
IF GLSetupShortcutDimCode[2] <> '' THEN
IF DimSetEntry.GET(DimSetID,GLSetupShortcutDimCode[2]) THEN
GlobalDimVal2 := DimSetEntry."Dimension Value Code";
END;
PROCEDURE GetCombinedDimensionSetID@132(DimensionSetIDArr@1000 : ARRAY [10]
OF Integer;VAR GlobalDimVal1@1004 : Code[20];VAR GlobalDimVal2@1005 : Code[20])
: Integer;
VAR
TempDimSetEntry@1003 : TEMPORARY Record 480;
i@1001 : Integer;
BEGIN
GetGLSetup;
GlobalDimVal1 := '';
GlobalDimVal2 := '';
DimSetEntry.RESET;
FOR i := 1 TO 10 DO
IF DimensionSetIDArr[i] <> 0 THEN BEGIN
DimSetEntry.SETRANGE("Dimension Set ID",DimensionSetIDArr[i]);
IF DimSetEntry.FINDSET THEN
REPEAT
IF TempDimSetEntry.GET(0,DimSetEntry."Dimension Code") THEN
TempDimSetEntry.DELETE;
TempDimSetEntry := DimSetEntry;
TempDimSetEntry."Dimension Set ID" := 0;
TempDimSetEntry.INSERT;
IF GLSetupShortcutDimCode[1] = TempDimSetEntry."Dimension Code" TH
EN
GlobalDimVal1 := TempDimSetEntry."Dimension Value Code";
IF GLSetupShortcutDimCode[2] = TempDimSetEntry."Dimension Code" TH
EN
GlobalDimVal2 := TempDimSetEntry."Dimension Value Code";
UNTIL DimSetEntry.NEXT = 0;
END;
EXIT(GetDimensionSetID(TempDimSetEntry));
END;
PROCEDURE GetDeltaDimSetID@137(DimSetID@1005 : Integer;NewParentDimSetID@100
0 : Integer;OldParentDimSetID@1001 : Integer) : Integer;
VAR
TempDimSetEntry@1004 : TEMPORARY Record 480;
TempDimSetEntryNew@1003 : TEMPORARY Record 480;
TempDimSetEntryDeleted@1002 : TEMPORARY Record 480;
BEGIN
// Returns an updated DimSetID based on parent's old and new DimSetID
IF NewParentDimSetID = OldParentDimSetID THEN
EXIT(DimSetID);
GetDimensionSet(TempDimSetEntry,DimSetID);
GetDimensionSet(TempDimSetEntryNew,NewParentDimSetID);
GetDimensionSet(TempDimSetEntryDeleted,OldParentDimSetID);
IF TempDimSetEntryDeleted.FINDSET THEN
REPEAT
IF TempDimSetEntryNew.GET(NewParentDimSetID,TempDimSetEntryDeleted."Di
mension Code") THEN BEGIN
IF TempDimSetEntryNew."Dimension Value Code" = TempDimSetEntryDelete
d."Dimension Value Code" THEN
TempDimSetEntryNew.DELETE;
TempDimSetEntryDeleted.DELETE;
END;
UNTIL TempDimSetEntryDeleted.NEXT = 0;
IF TempDimSetEntryDeleted.FINDSET THEN
REPEAT
IF TempDimSetEntry.GET(DimSetID,TempDimSetEntryDeleted."Dimension Code
") THEN
TempDimSetEntry.DELETE;
UNTIL TempDimSetEntryDeleted.NEXT = 0;
IF TempDimSetEntryNew.FINDSET THEN
REPEAT
IF TempDimSetEntry.GET(DimSetID,TempDimSetEntryNew."Dimension Code") T
HEN BEGIN
IF TempDimSetEntry."Dimension Value Code" <> TempDimSetEntryNew."Dim
ension Value Code" THEN BEGIN
TempDimSetEntry."Dimension Value Code" := TempDimSetEntryNew."Dime
nsion Value Code";
TempDimSetEntry."Dimension Value ID" := TempDimSetEntryNew."Dimens
ion Value ID";
TempDimSetEntry.MODIFY;
END;
END ELSE BEGIN
TempDimSetEntry := TempDimSetEntryNew;
TempDimSetEntry."Dimension Set ID" := DimSetID;
TempDimSetEntry.INSERT;
END;
UNTIL TempDimSetEntryNew.NEXT = 0;
EXIT(GetDimensionSetID(TempDimSetEntry));
END;
LOCAL PROCEDURE GetGLSetup@52();
VAR
GLSetup@1000 : Record 98;
BEGIN
IF NOT HasGotGLSetup THEN BEGIN
GLSetup.GET;
GLSetupShortcutDimCode[1] := GLSetup."Shortcut
GLSetupShortcutDimCode[2] := GLSetup."Shortcut
GLSetupShortcutDimCode[3] := GLSetup."Shortcut
GLSetupShortcutDimCode[4] := GLSetup."Shortcut
GLSetupShortcutDimCode[5] := GLSetup."Shortcut
GLSetupShortcutDimCode[6] := GLSetup."Shortcut
GLSetupShortcutDimCode[7] := GLSetup."Shortcut
GLSetupShortcutDimCode[8] := GLSetup."Shortcut
HasGotGLSetup := TRUE;
END;
END;
Dimension
Dimension
Dimension
Dimension
Dimension
Dimension
Dimension
Dimension
1
2
3
4
5
6
7
8
Code";
Code";
Code";
Code";
Code";
Code";
Code";
Code";
STRSUBSTNO(
Text005,
DefaultDim.FIELDCAPTION("Dimension Value Code"),
DefaultDim.FIELDCAPTION("Dimension Code"),
DefaultDim."Dimension Code",
ObjTransl.TranslateObject(ObjTransl."Object Type":
:Table,DefaultDim."Table ID"),
DefaultDim."No.");
EXIT(FALSE);
END;
END;
DefaultDim."Value Posting"::"Same Code":
BEGIN
IF DefaultDim."Dimension Value Code" <> '' THEN BEGIN
IF NOT DimSetEntry.FINDFIRST OR
(DefaultDim."Dimension Value Code" <> DimSetEntry."Di
mension Value Code")
THEN BEGIN
IF DefaultDim."No." = '' THEN
DimValuePostingErr :=
STRSUBSTNO(
Text006,
DefaultDim.FIELDCAPTION("Dimension Value Code"),
DefaultDim."Dimension Value Code",
DefaultDim.FIELDCAPTION("Dimension Code"),Defaul
tDim."Dimension Code")
ELSE
DimValuePostingErr :=
STRSUBSTNO(
Text007,
DefaultDim.FIELDCAPTION("Dimension Value Code"),
DefaultDim."Dimension Value Code",
DefaultDim.FIELDCAPTION("Dimension Code"),
DefaultDim."Dimension Code",
ObjTransl.TranslateObject(ObjTransl."Object Type
"::Table,DefaultDim."Table ID"),
DefaultDim."No.");
EXIT(FALSE);
END;
END ELSE BEGIN
IF DimSetEntry.FINDFIRST THEN BEGIN
IF DefaultDim."No." = '' THEN
DimValuePostingErr :=
STRSUBSTNO(
Text008,
DimSetEntry.FIELDCAPTION("Dimension Code"),DimSe
tEntry."Dimension Code")
ELSE
DimValuePostingErr :=
STRSUBSTNO(
Text009,
DimSetEntry.FIELDCAPTION("Dimension Code"),
DimSetEntry."Dimension Code",
ObjTransl.TranslateObject(ObjTransl."Object Type
"::Table,DefaultDim."Table ID"),
DefaultDim."No.");
EXIT(FALSE);
END;
END;
END;
DefaultDim.SETRANGE("No.",NoFilter[j]);
IF DefaultDim.FINDSET THEN
REPEAT
IF DefaultDim."Dimension Value Code" <> '' THEN BEGIN
TempDimBuf2.SETRANGE("Dimension Code",DefaultDim."Dimension Co
de");
IF NOT TempDimBuf2.FINDFIRST THEN BEGIN
TempDimBuf2.INIT;
TempDimBuf2."Table ID" := DefaultDim."Table ID";
TempDimBuf2."Entry No." := 0;
TempDimBuf2."Dimension Code" := DefaultDim."Dimension Code";
TempDimBuf2."Dimension Value Code" := DefaultDim."Dimension
Value Code";
TempDimBuf2.INSERT;
END ELSE BEGIN
IF DefaultDimPriority1.GET(SourceCode,DefaultDim."Table ID")
THEN BEGIN
IF DefaultDimPriority2.GET(SourceCode,TempDimBuf2."Table I
D") THEN BEGIN
IF DefaultDimPriority1.Priority < DefaultDimPriority2.Pr
iority THEN BEGIN
TempDimBuf2.DELETE;
TempDimBuf2."Table ID" := DefaultDim."Table ID";
TempDimBuf2."Entry No." := 0;
TempDimBuf2."Dimension Value Code" := DefaultDim."Dime
nsion Value Code";
TempDimBuf2.INSERT;
END;
END ELSE BEGIN
TempDimBuf2.DELETE;
TempDimBuf2."Table ID" := DefaultDim."Table ID";
TempDimBuf2."Entry No." := 0;
TempDimBuf2."Dimension Value Code" := DefaultDim."Dimens
ion Value Code";
TempDimBuf2.INSERT;
END;
END;
END;
IF GLSetupShortcutDimCode[1] = TempDimBuf2."Dimension Code" TH
EN
GlobalDim1Code := TempDimBuf2."Dimension Value Code";
IF GLSetupShortcutDimCode[2] = TempDimBuf2."Dimension Code" TH
EN
GlobalDim2Code := TempDimBuf2."Dimension Value Code";
END;
UNTIL DefaultDim.NEXT = 0;
END;
END;
END;
TempDimBuf2.RESET;
IF TempDimBuf2.FINDSET THEN BEGIN
REPEAT
DimVal.GET(TempDimBuf2."Dimension Code",TempDimBuf2."Dimension Value C
ode");
TempDimSetEntry."Dimension Code" := TempDimBuf2."Dimension Code";
TempDimSetEntry."Dimension Value Code" := TempDimBuf2."Dimension Value
Code";
TempDimSetEntry."Dimension Value ID" := DimVal."Dimension Value ID";
TempDimSetEntry.INSERT;
UNTIL TempDimBuf2.NEXT = 0;
NewDimSetID := GetDimensionSetID(TempDimSetEntry);
END;
EXIT(NewDimSetID);
END;
PROCEDURE TypeToTableID1@11(Type@1000 : 'G/L Account,Customer,Vendor,Bank Ac
count,Fixed Asset,IC Partner') : Integer;
BEGIN
CASE Type OF
Type::"G/L Account":
EXIT(DATABASE::"G/L Account");
Type::Customer:
EXIT(DATABASE::Customer);
Type::Vendor:
EXIT(DATABASE::Vendor);
Type::"Bank Account":
EXIT(DATABASE::"Bank Account");
Type::"Fixed Asset":
EXIT(DATABASE::"Fixed Asset");
Type::"IC Partner":
EXIT(DATABASE::"IC Partner");
END;
END;
PROCEDURE TypeToTableID2@13(Type@1000 : 'Resource,Item,G/L Account') : Integ
er;
BEGIN
CASE Type OF
Type::Resource:
EXIT(DATABASE::Resource);
Type::Item:
EXIT(DATABASE::Item);
Type::"G/L Account":
EXIT(DATABASE::"G/L Account");
END;
END;
PROCEDURE TypeToTableID3@16(Type@1000 : ' ,G/L Account,Item,Resource,Fixed A
sset,Charge (Item)') : Integer;
BEGIN
CASE Type OF
Type::" ":
EXIT(0);
Type::"G/L Account":
EXIT(DATABASE::"G/L Account");
Type::Item:
EXIT(DATABASE::Item);
Type::Resource:
EXIT(DATABASE::Resource);
Type::"Fixed Asset":
EXIT(DATABASE::"Fixed Asset");
Type::"Charge (Item)":
EXIT(DATABASE::"Item Charge");
END;
END;
PROCEDURE TypeToTableID4@1(Type@1000 : ' ,Item,Resource,Cost') : Integer;
BEGIN
CASE Type OF
Type::" ":
EXIT(0);
Type::Item:
EXIT(DATABASE::Item);
Type::Resource:
EXIT(DATABASE::Resource);
Type::Cost:
EXIT(DATABASE::"Service Cost");
END;
END;
PROCEDURE TypeToTableID5@119(Type@1000 : ' ,Item,Resource,Cost,G/L Account')
: Integer;
BEGIN
CASE Type OF
Type::" ":
EXIT(0);
Type::Item:
EXIT(DATABASE::Item);
Type::Resource:
EXIT(DATABASE::Resource);
Type::Cost:
EXIT(DATABASE::"Service Cost");
Type::"G/L Account":
EXIT(DATABASE::"G/L Account");
END;
END;
PROCEDURE DeleteDefaultDim@58(TableID@1000 : Integer;No@1001 : Code[20]);
VAR
DefaultDim@1002 : Record 352;
BEGIN
DefaultDim.SETRANGE("Table ID",TableID);
DefaultDim.SETRANGE("No.",No);
IF NOT DefaultDim.ISEMPTY THEN
DefaultDim.DELETEALL;
END;
PROCEDURE LookupDimValueCode@21(FieldNumber@1000 : Integer;VAR ShortcutDimCo
de@1001 : Code[20]);
VAR
DimVal@1002 : Record 349;
GLSetup@1003 : Record 98;
BEGIN
GetGLSetup;
IF GLSetupShortcutDimCode[FieldNumber] = '' THEN
ERROR(Text002,GLSetup.TABLECAPTION);
DimVal.SETRANGE("Dimension Code",GLSetupShortcutDimCode[FieldNumber]);
DimVal."Dimension Code" := GLSetupShortcutDimCode[FieldNumber];
DimVal.Code := ShortcutDimCode;
IF PAGE.RUNMODAL(0,DimVal) = ACTION::LookupOK THEN BEGIN
CheckDim(DimVal."Dimension Code");
CheckDimValue(DimVal."Dimension Code",DimVal.Code);
ShortcutDimCode := DimVal.Code;
END;
END;
PROCEDURE ValidateDimValueCode@22(FieldNumber@1000 : Integer;VAR ShortcutDim
Code@1001 : Code[20]);
VAR
DimVal@1002 : Record 349;
DefaultDim.VALIDATE("Dimension Code",GLSetupShortcutDimCode[FieldNumbe
r]);
DefaultDim.VALIDATE("Dimension Value Code",ShortcutDimCode);
DefaultDim.INSERT;
END;
END ELSE
IF DefaultDim.GET(TableID,No,GLSetupShortcutDimCode[FieldNumber]) THEN
DefaultDim.DELETE;
END;
PROCEDURE GetShortcutDimensions@129(DimSetID@1000 : Integer;VAR ShortcutDimC
ode@1004 : ARRAY [8] OF Code[20]);
VAR
i@1006 : Integer;
BEGIN
GetGLSetup;
FOR i := 3 TO 8 DO BEGIN
ShortcutDimCode[i] := '';
IF GLSetupShortcutDimCode[i] <> '' THEN
IF DimSetEntry.GET(DimSetID,GLSetupShortcutDimCode[i]) THEN
ShortcutDimCode[i] := DimSetEntry."Dimension Value Code";
END;
END;
PROCEDURE CheckDimBufferValuePosting@68(VAR DimBuffer@1000 : Record 360;Tabl
eID@1001 : ARRAY [10] OF Integer;No@1002 : ARRAY [10] OF Code[20]) : Boolean;
VAR
i@1005 : Integer;
BEGIN
TempDimBuf2.RESET;
TempDimBuf2.DELETEALL;
IF DimBuffer.FINDSET THEN BEGIN
i := 1;
REPEAT
IF (NOT CheckDimValue(
DimBuffer."Dimension Code",DimBuffer."Dimension Value Code")) OR
(NOT CheckDim(DimBuffer."Dimension Code"))
THEN BEGIN
DimValuePostingErr := DimErr;
EXIT(FALSE);
END;
TempDimBuf2.INIT;
TempDimBuf2."Entry No." := i;
TempDimBuf2."Dimension Code" := DimBuffer."Dimension Code";
TempDimBuf2."Dimension Value Code" := DimBuffer."Dimension Value Code"
;
TempDimBuf2.INSERT;
i := i + 1;
UNTIL DimBuffer.NEXT = 0;
END;
EXIT(CheckValuePosting(TableID,No));
END;
LOCAL PROCEDURE CheckValuePosting@36(TableID@1000 : ARRAY [10] OF Integer;No
@1001 : ARRAY [10] OF Code[20]) : Boolean;
VAR
DefaultDim@1002 : Record 352;
i@1004 : Integer;
j@1005 : Integer;
NoFilter@1006 : ARRAY [2] OF Text[250];
BEGIN
DefaultDim.SETFILTER("Value Posting",'<>%1',DefaultDim."Value Posting"::"
");
NoFilter[2] := '';
FOR i := 1 TO ARRAYLEN(TableID) DO BEGIN
IF (TableID[i] <> 0) AND (No[i] <> '') THEN BEGIN
DefaultDim.SETRANGE("Table ID",TableID[i]);
NoFilter[1] := No[i];
FOR j := 1 TO 2 DO BEGIN
DefaultDim.SETRANGE("No.",NoFilter[j]);
IF DefaultDim.FINDSET THEN BEGIN
REPEAT
TempDimBuf2.SETRANGE("Dimension Code",DefaultDim."Dimension Code
");
CASE DefaultDim."Value Posting" OF
DefaultDim."Value Posting"::"Code Mandatory":
BEGIN
IF (NOT TempDimBuf2.FINDFIRST) OR
(TempDimBuf2."Dimension Value Code" = '')
THEN BEGIN
IF DefaultDim."No." = '' THEN
DimValuePostingErr :=
STRSUBSTNO(
Text004,
DefaultDim.FIELDCAPTION("Dimension Value Code"),
DefaultDim.FIELDCAPTION("Dimension Code"),DefaultD
im."Dimension Code")
ELSE
DimValuePostingErr :=
STRSUBSTNO(
Text005,
DefaultDim.FIELDCAPTION("Dimension Value Code"),
DefaultDim.FIELDCAPTION("Dimension Code"),
DefaultDim."Dimension Code",
ObjTransl.TranslateObject(ObjTransl."Object Type":
:Table,DefaultDim."Table ID"),
DefaultDim."No.");
EXIT(FALSE);
END;
END;
DefaultDim."Value Posting"::"Same Code":
BEGIN
IF DefaultDim."Dimension Value Code" <> '' THEN BEGIN
IF (NOT TempDimBuf2.FINDFIRST) OR
(DefaultDim."Dimension Value Code" <> TempDimBuf2."Di
mension Value Code")
THEN BEGIN
IF DefaultDim."No." = '' THEN
DimValuePostingErr :=
STRSUBSTNO(
Text006,
DefaultDim.FIELDCAPTION("Dimension Value Code"),
DefaultDim."Dimension Value Code",
DefaultDim.FIELDCAPTION("Dimension Code"),Defaul
tDim."Dimension Code")
ELSE
DimValuePostingErr :=
STRSUBSTNO(
Text007,
DefaultDim.FIELDCAPTION("Dimension Value Code"),
DimErr :=
STRSUBSTNO(Text014,Dim.TABLECAPTION,DimCode);
EXIT(FALSE);
END;
END ELSE BEGIN
DimErr :=
STRSUBSTNO(Text015,Dim.TABLECAPTION,DimCode);
EXIT(FALSE);
END;
EXIT(TRUE);
END;
PROCEDURE CheckDimValue@61(DimCode@1000 : Code[20];DimValCode@1001 : Code[20
]) : Boolean;
VAR
DimVal@1002 : Record 349;
BEGIN
IF (DimCode <> '') AND (DimValCode <> '') THEN BEGIN
IF DimVal.GET(DimCode,DimValCode) THEN BEGIN
IF DimVal.Blocked THEN BEGIN
DimErr :=
STRSUBSTNO(
Text016,DimVal.TABLECAPTION,DimCode,DimValCode);
EXIT(FALSE);
END;
IF NOT (DimVal."Dimension Value Type" IN
[DimVal."Dimension Value Type"::Standard,
DimVal."Dimension Value Type"::"Begin-Total"])
THEN BEGIN
DimErr :=
STRSUBSTNO(Text017,DimVal.FIELDCAPTION("Dimension Value Type"),
DimVal.TABLECAPTION,DimCode,DimValCode,FORMAT(DimVal."Dimension
Value Type"));
EXIT(FALSE);
END;
END ELSE BEGIN
DimErr :=
STRSUBSTNO(
Text018,DimVal.TABLECAPTION,DimCode);
EXIT(FALSE);
END;
END;
EXIT(TRUE);
END;
PROCEDURE CheckBlockedDimAndValues@6(DimSetID@1000 : Integer) : Boolean;
VAR
DimSetEntry@1001 : Record 480;
BEGIN
IF DimSetID = 0 THEN
EXIT(TRUE);
DimSetEntry.RESET;
DimSetEntry.SETRANGE("Dimension Set ID",DimSetID);
IF DimSetEntry.FINDSET THEN
REPEAT
IF NOT CheckDim(DimSetEntry."Dimension Code") OR
NOT CheckDimValue(DimSetEntry."Dimension Code",DimSetEntry."Dimensi
on Value Code")
THEN BEGIN
DimValuePostingErr := DimErr;
EXIT(FALSE);
END;
UNTIL DimSetEntry.NEXT = 0;
EXIT(TRUE);
END;
PROCEDURE GetDimErr@71() : Text[250];
BEGIN
EXIT(DimErr);
END;
PROCEDURE LookupDimValueCodeNoUpdate@20(FieldNumber@1000 : Integer);
VAR
DimVal@1001 : Record 349;
GLSetup@1002 : Record 98;
BEGIN
GetGLSetup;
IF GLSetupShortcutDimCode[FieldNumber] = '' THEN
ERROR(Text002,GLSetup.TABLECAPTION);
DimVal.SETRANGE("Dimension Code",GLSetupShortcutDimCode[FieldNumber]);
IF PAGE.RUNMODAL(0,DimVal) = ACTION::LookupOK THEN;
END;
PROCEDURE GlobalDimNo@2(DimensionCode@1001 : Code[20]) : Integer;
VAR
Index@1000 : Integer;
BEGIN
GetGLSetup;
FOR Index := 1 TO ARRAYLEN(GLSetupShortcutDimCode) DO
IF GLSetupShortcutDimCode[Index] = DimensionCode THEN
EXIT(Index);
EXIT(0);
END;
PROCEDURE CopyJnlLineDimToICJnlDim@93(TableID@1000 : Integer;TransactionNo@1
001 : Integer;PartnerCode@1002 : Code[20];TransactionSource@1008 : 'Rejected,Cre
ated';LineNo@1003 : Integer;DimSetID@1004 : Integer);
VAR
InOutBoxJnlLineDim@1005 : Record 423;
DimSetEntry@1009 : Record 480;
ICDim@1006 : Code[20];
ICDimValue@1007 : Code[20];
BEGIN
DimSetEntry.SETRANGE("Dimension Set ID",DimSetID);
IF DimSetEntry.FINDSET THEN
REPEAT
ICDim := ConvertDimtoICDim(DimSetEntry."Dimension Code");
ICDimValue := ConvertDimValuetoICDimVal(DimSetEntry."Dimension Code",D
imSetEntry."Dimension Value Code");
IF (ICDim <> '') AND (ICDimValue <> '') THEN BEGIN
InOutBoxJnlLineDim."Table ID" := TableID;
InOutBoxJnlLineDim."IC Partner Code" := PartnerCode;
InOutBoxJnlLineDim."Transaction No." := TransactionNo;
InOutBoxJnlLineDim."Transaction Source" := TransactionSource;
InOutBoxJnlLineDim."Line No." := LineNo;
InOutBoxJnlLineDim."Dimension Code" := ICDim;
InOutBoxJnlLineDim."Dimension Value Code" := ICDimValue;
InOutBoxJnlLineDim.INSERT;
END;
UNTIL DimSetEntry.NEXT = 0;
END;
PROCEDURE DefaultDimOnInsert@17(DefaultDimension@1000 : Record 352);
VAR
CallingTrigger@1001 : 'OnInsert,OnModify,OnDelete';
BEGIN
IF DefaultDimension."Table ID" = DATABASE::Job THEN
UpdateJobTaskDim(DefaultDimension,FALSE);
UpdateCostType(DefaultDimension,CallingTrigger::OnInsert);
END;
PROCEDURE DefaultDimOnModify@18(DefaultDimension@1000 : Record 352);
VAR
CallingTrigger@1001 : 'OnInsert,OnModify,OnDelete';
BEGIN
IF DefaultDimension."Table ID" = DATABASE::Job THEN
UpdateJobTaskDim(DefaultDimension,FALSE);
UpdateCostType(DefaultDimension,CallingTrigger::OnModify);
END;
PROCEDURE DefaultDimOnDelete@19(DefaultDimension@1000 : Record 352);
VAR
CallingTrigger@1001 : 'OnInsert,OnModify,OnDelete';
BEGIN
IF DefaultDimension."Table ID" = DATABASE::Job THEN
UpdateJobTaskDim(DefaultDimension,TRUE);
UpdateCostType(DefaultDimension,CallingTrigger::OnDelete);
END;
PROCEDURE CopyICJnlDimToICJnlDim@97(VAR FromInOutBoxLineDim@1001 : Record 42
3;VAR ToInOutBoxlineDim@1000 : Record 423);
BEGIN
IF FromInOutBoxLineDim.FINDSET THEN
REPEAT
ToInOutBoxlineDim := FromInOutBoxLineDim;
ToInOutBoxlineDim.INSERT;
UNTIL FromInOutBoxLineDim.NEXT = 0;
END;
PROCEDURE CopyDocDimtoICDocDim@107(TableID@1005 : Integer;TransactionNo@1004
: Integer;PartnerCode@1003 : Code[20];TransactionSource@1002 : 'Rejected,Create
d';LineNo@1001 : Integer;DimSetEntryID@1000 : Integer);
VAR
InOutBoxDocDim@1008 : Record 442;
DimSetEntry@1009 : Record 480;
ICDim@1007 : Code[20];
ICDimValue@1006 : Code[20];
BEGIN
DimSetEntry.SETRANGE("Dimension Set ID",DimSetEntryID);
IF DimSetEntry.FINDSET THEN
REPEAT
ICDim := ConvertDimtoICDim(DimSetEntry."Dimension Code");
ICDimValue := ConvertDimValuetoICDimVal(DimSetEntry."Dimension Code",D
imSetEntry."Dimension Value Code");
IF (ICDim <> '') AND (ICDimValue <> '') THEN BEGIN
END;
PROCEDURE CheckICDimValue@113(ICDimCode@1001 : Code[20];ICDimValCode@1000 :
Code[20]) : Boolean;
VAR
ICDimVal@1002 : Record 412;
BEGIN
IF (ICDimCode <> '') AND (ICDimValCode <> '') THEN BEGIN
IF ICDimVal.GET(ICDimCode,ICDimValCode) THEN BEGIN
IF ICDimVal.Blocked THEN BEGIN
DimErr :=
STRSUBSTNO(
Text016,ICDimVal.TABLECAPTION,ICDimCode,ICDimValCode);
EXIT(FALSE);
END;
IF NOT (ICDimVal."Dimension Value Type" IN
[ICDimVal."Dimension Value Type"::Standard,
ICDimVal."Dimension Value Type"::"Begin-Total"])
THEN BEGIN
DimErr :=
STRSUBSTNO(Text017,ICDimVal.FIELDCAPTION("Dimension Value Type"),
ICDimVal.TABLECAPTION,ICDimCode,ICDimValCode,FORMAT(ICDimVal."Di
mension Value Type"));
EXIT(FALSE);
END;
END ELSE BEGIN
DimErr :=
STRSUBSTNO(
Text018,ICDimVal.TABLECAPTION,ICDimCode);
EXIT(FALSE);
END;
END;
EXIT(TRUE);
END;
PROCEDURE CheckICDim@114(ICDimCode@1000 : Code[20]) : Boolean;
VAR
ICDim@1001 : Record 411;
BEGIN
IF ICDim.GET(ICDimCode) THEN BEGIN
IF ICDim.Blocked THEN BEGIN
DimErr :=
STRSUBSTNO(Text014,ICDim.TABLECAPTION,ICDimCode);
EXIT(FALSE);
END;
END ELSE BEGIN
DimErr :=
STRSUBSTNO(Text015,ICDim.TABLECAPTION,ICDimCode);
EXIT(FALSE);
END;
EXIT(TRUE);
END;
PROCEDURE SaveJobTaskDim@39("Job No."@1000 : Code[20];"Job Task No."@1001 :
Code[20];FieldNumber@1003 : Integer;ShortcutDimCode@1002 : Code[20]);
VAR
JobTaskDim@1004 : Record 1002;
BEGIN
GetGLSetup;
IF ShortcutDimCode <> '' THEN BEGIN
JobTaskDim.INSERT;
IF JobTaskDim."Dimension Code" = GLSetupShortcutDimCode[1] THEN
GlobalDim1Code := JobTaskDim."Dimension Value Code";
IF JobTaskDim."Dimension Code" = GLSetupShortcutDimCode[2] THEN
GlobalDim2Code := JobTaskDim."Dimension Value Code";
END;
UNTIL DefaultDim.NEXT = 0;
JobTaskDimTemp.RESET;
IF JobTaskDimTemp.FINDSET THEN
REPEAT
IF NOT JobTaskDim.GET("Job No.","Job Task No.",JobTaskDimTemp."Dimensi
on Code") THEN BEGIN
JobTaskDim.INIT;
JobTaskDim."Job No." := "Job No.";
JobTaskDim."Job Task No." := "Job Task No.";
JobTaskDim."Dimension Code" := JobTaskDimTemp."Dimension Code";
JobTaskDim."Dimension Value Code" := JobTaskDimTemp."Dimension Value
Code";
JobTaskDim.INSERT;
IF JobTaskDim."Dimension Code" = GLSetupShortcutDimCode[1] THEN
GlobalDim1Code := JobTaskDim."Dimension Value Code";
IF JobTaskDim."Dimension Code" = GLSetupShortcutDimCode[2] THEN
GlobalDim2Code := JobTaskDim."Dimension Value Code";
END;
UNTIL JobTaskDimTemp.NEXT = 0;
JobTaskDimTemp.DELETEALL;
END;
PROCEDURE UpdateJobTaskDim@15(DefaultDimension@1000 : Record 352;FromOnDelet
e@1003 : Boolean);
VAR
JobTaskDimension@1001 : Record 1002;
JobTask@1002 : Record 1001;
BEGIN
IF DefaultDimension."Table ID" <> DATABASE::Job THEN
EXIT;
JobTask.SETRANGE("Job No.",DefaultDimension."No.");
IF JobTask.ISEMPTY THEN
EXIT;
IF NOT CONFIRM(Text019,TRUE) THEN
EXIT;
JobTaskDimension.SETRANGE("Job No.",DefaultDimension."No.");
JobTaskDimension.SETRANGE("Dimension Code",DefaultDimension."Dimension Cod
e");
JobTaskDimension.DELETEALL(TRUE);
IF FromOnDelete OR
(DefaultDimension."Value Posting" = DefaultDimension."Value Posting"::"
No Code") OR
(DefaultDimension."Dimension Value Code" = '')
THEN
EXIT;
IF JobTask.FINDSET THEN
REPEAT
CLEAR(JobTaskDimension);
END;
DimSetEntry."Dimension Code" < PostedDimSetEntry."Dimension Code":
BEGIN
DocDimConsistencyErr :=
STRSUBSTNO(
Text012,
PostedDimSetEntry.FIELDCAPTION("Dimension Code"),
ObjTransl.TranslateObject(ObjTransl."Object Type"::Table,Poste
dDocTableID),
ObjTransl.TranslateObject(ObjTransl."Object Type"::Table,DocTa
bleID));
EXIT(FALSE);
END;
DimSetEntry."Dimension Code" = PostedDimSetEntry."Dimension Code":
BEGIN
IF DimSetEntry."Dimension Value Code" <> PostedDimSetEntry."Dimens
ion Value Code" THEN BEGIN
DocDimConsistencyErr :=
STRSUBSTNO(
Text013,
DimSetEntry.FIELDCAPTION("Dimension Value Code"),
DimSetEntry.FIELDCAPTION("Dimension Code"),
DimSetEntry."Dimension Code",
ObjTransl.TranslateObject(ObjTransl."Object Type"::Table,Doc
TableID),
ObjTransl.TranslateObject(ObjTransl."Object Type"::Table,Pos
tedDocTableID));
EXIT(FALSE);
END;
END;
END;
UNTIL (DimSetEntry.NEXT = 0) AND (PostedDimSetEntry.NEXT = 0);
EXIT(TRUE);
END;
LOCAL PROCEDURE CreateDimSetEntryFromDimValue@4(DimValue@1000 : Record 349;V
AR TempDimSetEntry@1001 : TEMPORARY Record 480);
BEGIN
TempDimSetEntry."Dimension Code" := DimValue."Dimension Code";
TempDimSetEntry."Dimension Value Code" := DimValue.Code;
TempDimSetEntry."Dimension Value ID" := DimValue."Dimension Value ID";
TempDimSetEntry.INSERT;
END;
PROCEDURE CreateDimSetIDFromICDocDim@5(VAR ICDocDim@1000 : Record 442) : Int
eger;
VAR
DimValue@1004 : Record 349;
TempDimSetEntry@1003 : TEMPORARY Record 480;
BEGIN
IF ICDocDim.FIND('-') THEN
REPEAT
DimValue.GET(
ConvertICDimtoDim(ICDocDim."Dimension Code"),
ConvertICDimValuetoDimValue(ICDocDim."Dimension Code",ICDocDim."Dime
nsion Value Code"));
CreateDimSetEntryFromDimValue(DimValue,TempDimSetEntry);
UNTIL ICDocDim.NEXT = 0;
EXIT(GetDimensionSetID(TempDimSetEntry));
END;
UNTIL DimSetEntry2.NEXT = 0;
IF FilterIncludesBlank(DimCode,DimValueFilter) THEN
GetDimSetIDsForBlank(DimCode);
DimSetFilterCtr += 1;
END;
LOCAL PROCEDURE GetDimSetIDsForBlank@27(DimCode@1000 : Code[20]);
VAR
TempDimSetEntry@1001 : TEMPORARY Record 480;
DimSetEntry2@1002 : Record 480;
PrevDimSetID@1004 : Integer;
i@1003 : Integer;
BEGIN
AddDimSetIDtoTempEntry(TempDimSetEntry,0);
FOR i := 1 TO 2 DO BEGIN
IF i = 2 THEN
DimSetEntry2.SETFILTER("Dimension Code",'%1',DimCode);
IF DimSetEntry2.FINDSET THEN BEGIN
PrevDimSetID := 0;
REPEAT
IF DimSetEntry2."Dimension Set ID" <> PrevDimSetID THEN BEGIN
AddDimSetIDtoTempEntry(TempDimSetEntry,DimSetEntry2."Dimension Set
ID");
PrevDimSetID := DimSetEntry2."Dimension Set ID";
END;
UNTIL DimSetEntry2.NEXT = 0;
END;
END;
TempDimSetEntry.SETFILTER("Dimension Value ID",'%1',1);
IF TempDimSetEntry.FINDSET THEN
REPEAT
AddDimSetIDtoTempEntry(TempDimSetEntry2,TempDimSetEntry."Dimension Set
ID");
UNTIL TempDimSetEntry.NEXT = 0;
END;
PROCEDURE GetNextDimSetFilterChunk@24(Length@1000 : Integer) DimSetFilterChu
nk : Text[1024];
VAR
EndLoop@1002 : Boolean;
BEGIN
IF Length > MAXSTRLEN(DimSetFilterChunk) THEN
Length := MAXSTRLEN(DimSetFilterChunk);
TempDimSetEntry2.SETFILTER("Dimension Value ID",'%1',DimSetFilterCtr);
TempDimSetEntry2.SETFILTER("Dimension Set ID",'>%1',LastDimSetIDInFilter);
IF TempDimSetEntry2.FINDSET THEN BEGIN
DimSetFilterChunk := FORMAT(TempDimSetEntry2."Dimension Set ID");
LastDimSetIDInFilter := TempDimSetEntry2."Dimension Set ID";
WHILE (STRLEN(DimSetFilterChunk) < Length) AND (NOT EndLoop) DO BEGIN
IF TempDimSetEntry2.NEXT <> 0 THEN BEGIN
IF STRLEN(DimSetFilterChunk + '|' + FORMAT(TempDimSetEntry2."Dimensi
on Set ID")) <= Length THEN BEGIN
DimSetFilterChunk += '|' + FORMAT(TempDimSetEntry2."Dimension Set
ID");
LastDimSetIDInFilter := TempDimSetEntry2."Dimension Set ID";
END ELSE
EndLoop := TRUE;
END ELSE
EndLoop := TRUE;
END;
END;
END;
LOCAL PROCEDURE FilterIncludesBlank@25(DimCode@1001 : Code[20];DimValueFilte
r@1000 : Text[250]) : Boolean;
VAR
TempDimSetEntry@1002 : TEMPORARY Record 480;
BEGIN
TempDimSetEntry."Dimension Code" := DimCode;
TempDimSetEntry.INSERT;
TempDimSetEntry.SETFILTER("Dimension Value Code",DimValueFilter);
EXIT(NOT TempDimSetEntry.ISEMPTY);
END;
LOCAL PROCEDURE AddDimSetIDtoTempEntry@30(VAR TempDimSetEntry@1001 : TEMPORA
RY Record 480;DimSetID@1000 : Integer);
BEGIN
IF TempDimSetEntry.GET(DimSetID,'') THEN BEGIN
TempDimSetEntry."Dimension Value ID" += 1;
TempDimSetEntry.MODIFY;
END ELSE BEGIN
TempDimSetEntry."Dimension Set ID" := DimSetID;
TempDimSetEntry."Dimension Value ID" := 1;
TempDimSetEntry.INSERT
END;
END;
PROCEDURE ClearDimSetFilter@26();
BEGIN
TempDimSetEntry2.DELETEALL;
DimSetFilterCtr := 0;
LastDimSetIDInFilter := 0;
END;
PROCEDURE GetTempDimSetEntry@31(VAR TempDimSetEntry@1000 : TEMPORARY Record
480);
BEGIN
TempDimSetEntry.COPY(TempDimSetEntry2,TRUE);
END;
PROCEDURE UpdateCostType@28(DefaultDimension@1000 : Record 352;CallingTrigge
r@1004 : 'OnInsert,OnModify,OnDelete');
VAR
GLAcc@1003 : Record 15;
CostAccSetup@1002 : Record 1108;
CostAccMgt@1001 : Codeunit 1100;
BEGIN
IF CostAccSetup.GET AND (DefaultDimension."Table ID" = DATABASE::"G/L Acco
unt") THEN
IF GLAcc.GET(DefaultDimension."No.") THEN
CostAccMgt.UpdateCostTypeFromDefaultDimension(DefaultDimension,GLAcc,C
allingTrigger);
END;
BEGIN
END.
}
}