Можно, конечно, попробовать модальный режим, но для пользователей это будет неудобно. Собственно код - это раскрытие суммы из оборотно-сальдовой ведомости. Иногда они открывают несколько выписок из одной оборотки.
Пример кода уже в студии.
Переменная GLCorrEntry2 в коде - та самая временная таблица, в которую помещаются результаты.
<div class='CALtop'>C/AL</div><div class='CAL'>AnalysisViewEntry.SETFILTER("Analysis View Code",GETFILTER("Analysis View Filter"));
AnalysisViewEntry.SETFILTER("G/L Account No.",GETFILTER("G/L Account Filter"));
AnalysisViewEntry.SETFILTER("Business Unit Code",GETFILTER("Business Unit Filter"));
AnalysisViewEntry.SETFILTER("Posting Date",GETFILTER("Date Filter"));
IF GETFILTER("Dimension 1 Filter") <> '' THEN
AnalysisViewEntry.SETFILTER("Dimension 1 Value Code",GETFILTER("Dimension 1 Filter"));
IF GETFILTER("Dimension 2 Filter") <> '' THEN
AnalysisViewEntry.SETFILTER("Dimension 2 Value Code",GETFILTER("Dimension 2 Filter"));
IF GETFILTER("Dimension 3 Filter") <> '' THEN
AnalysisViewEntry.SETFILTER("Dimension 3 Value Code",GETFILTER("Dimension 3 Filter"));
IF GETFILTER("Dimension 4 Filter") <> '' THEN
AnalysisViewEntry.SETFILTER("Dimension 4 Value Code",GETFILTER("Dimension 4 Filter"));
AnalysisViewEntry.SETFILTER("Credit Amount", '<>%1', 0);
CLEAR(Dim1Filter);
CLEAR(Dim2Filter);
CLEAR(Dim1);
CLEAR(Dim2);
IF IdentFilter <> '' THEN BEGIN
Dim1:=TRUE;
IdentFilterCopy:=IdentFilter;
Dim1Filter:=COPYSTR(IdentFilterCopy, 1, STRPOS(IdentFilterCopy, '@') - 1);
IdentFilterCopy:=DELCHR(IdentFilterCopy, '<', ' ');
IdentFilterCopy:=DELSTR(IdentFilterCopy, 1, STRLEN(Dim1Filter) + 1);
IF IdentFilterCopy <> '' THEN BEGIN
Dim2:=TRUE;
Dim2Filter:=COPYSTR(IdentFilterCopy, 1, STRPOS(IdentFilterCopy, '@') - 1);
IdentFilterCopy:=DELCHR(IdentFilterCopy, '<', ' ');
IdentFilterCopy:=DELSTR(IdentFilterCopy, 1, STRLEN(Dim2Filter) + 1);
END;
END;
IF Dim1 THEN
AnalysisViewEntry.SETRANGE("Dimension 1 Value Code", Dim1Filter);
IF Dim2 THEN
AnalysisViewEntry.SETRANGE("Dimension 2 Value Code", Dim2Filter);
IF AnalysisViewEntry.FIND('-') THEN
REPEAT
AnalysisViewEntryToGLEntries.GetGLEntries(AnalysisViewEntry, TempGLEntry);
UNTIL AnalysisViewEntry.NEXT = 0;
IF TempGLEntry.FIND('-') THEN
REPEAT
GLCorrEntry.RESET;
GLCorrEntry.SETCURRENTKEY("Debit Entry No.");
GLCorrEntry.SETFILTER("Debit Entry No.", FORMAT(TempGLEntry."Entry No."));
IF GLCorrEntry.FIND('-') THEN BEGIN
GLCorrEntry2.TRANSFERFIELDS(GLCorrEntry);
IF NOT GLCorrEntry2.INSERT THEN;
END
ELSE BEGIN
GLCorrEntry.RESET;
GLCorrEntry.SETCURRENTKEY("Credit Entry No.");
GLCorrEntry.SETFILTER("Credit Entry No.", FORMAT(TempGLEntry."Entry No."));
IF GLCorrEntry.FIND('-') THEN BEGIN
GLCorrEntry2.TRANSFERFIELDS(GLCorrEntry);
IF NOT GLCorrEntry2.INSERT THEN;
END;
END;
UNTIL TempGLEntry.NEXT = 0;
FORM.RUN(FORM::"G/L Correspondence Entries", GLCorrEntry2);</div>
|