GeneralLedgerEntry.VALIDATE("G/L AccountNo", '100');
// This corresponds to:
GeneralLedgerEntry."G/L AccountNo" := '100';
GeneralLedgerEntry.VALIDATE("G/L AccountNo");
Record.FIELDERROR(Field, [Text])
Name := Record.FIELDNAME(Field)
//loop numbering
WITH SquashJnlLine DO BEGIN
IF EmptyLine THEN
EXIT;
SquashJnlCheckLine.RunCheck(SquashJnlLine,TempJnlLineDim);
IF NextEntryNo = 0 THEN BEGIN
SquashLedgEntry.LOCKTABLE;
IF SquashLedgEntry.FIND('+') THEN
NextEntryNo := SquashLedgEntry."Entry No.";
NextEntryNo := NextEntryNo + 1;
END;
IF SquashReg."No." = 0 THEN BEGIN
SquashReg.LOCKTABLE;
IF (NOT SquashReg.FIND('+')) OR ... THEN BEGIN
SquashReg.INIT;
SquashReg."No." := SquashReg."No." + 1;
...
SquashReg.INSERT;
END;
END;
SquashReg."To Entry No." := NextEntryNo;
SquashReg.MODIFY;
Monday, 31 August 2015
How To create a report which is based on a temporary table?
How To create a report which is based on a
temporary table?
Author: Luc Van Dyck
When you normally create a report, it is based on
one or more tables.
Sometimes you need to create a temporary table
(eg. to combine or sort data) and you want that data to appear in a report. The
problem is that you can't use a temporary table directly in the
DataItem-property of the report. It only accepts "real" tables.
The solution for this is to use the virtual table
Integer instead, and write code to simulate the OnAfterGetRecord-trigger.
OnPreDataItem()
FOR i := 1 TO 80 DO BEGIN
tmpItem.INIT;
tmpItem."No." := FORMAT(i);
tmpItem.Description := 'Item description ' + FORMAT(i);
tmpItem."Unit Price" := i * 1000;
tmpItem.INSERT;
END;
tmpItem.RESET;
SETRANGE(Number,1,tmpItem.COUNT);
OnAfterGetRecord()
IF Number = 1 THEN
tmpItem.FIND('-')
ELSE
tmpItem.NEXT;
When defining the layout of your report, you use
this Integer-dataitem to place your headers and body's.
You can't use the Field Menu to place fields on
your report: you have to type the name of your tmp-variable together with the
fieldname (eg. tmpItem.Description).
The result is a normally looking report:
Export Budget
OBJECT Report 82 Export Budget to Excel
{
OBJECT-PROPERTIES
{
Date=09/07/12;
Time=12:00:00 PM;
Version List=NAVW17.00;
}
PROPERTIES
{
CaptionML=[ENU=Export Budget to Excel;
FRA=Exporter budget vers Excel;
ESM=Exportar ppto. a Excel;
ENC=Export Budget to Excel];
ProcessingOnly=Yes;
OnPreReport=BEGIN
DimSelectionBuf.CompareDimText(
3,REPORT::"Export Budget to Excel",'',ColumnDim,Text000);
END;
}
DATASET
{
{ 3459; ;DataItem; ;
DataItemTable=Table96;
DataItemTableView=SORTING(Budget Name,G/L Account No.,Business Unit Code,Global Dimension 1 Code,Global Dimension 2 Code,Budget Dimension 1 Code,Budget Dimension 2 Code,Budget Dimension 3 Code,Budget Dimension 4 Code,Date);
OnPreDataItem=VAR
BusUnit@1000 : Record 220;
BEGIN
IF GETRANGEMIN("Budget Name") <> GETRANGEMAX("Budget Name") THEN
ERROR(Text001);
IF (StartDate = 0D) OR
(NoOfPeriods = 0) OR
(FORMAT(PeriodLength) = '')
THEN
ERROR(Text002);
SelectedDim.RESET;
SelectedDim.SETRANGE("User ID",USERID);
SelectedDim.SETRANGE("Object Type",3);
SelectedDim.SETRANGE("Object ID",REPORT::"Export Budget to Excel");
i := 0;
IF BusUnit.FINDFIRST THEN BEGIN
i := i + 1;
BusUnitDimIndex := i;
BusUnitDimCode := COPYSTR(UPPERCASE(BusUnit.TABLECAPTION),1,MAXSTRLEN(ColumnDimCode[1]));
ColumnDimCode[BusUnitDimIndex] := BusUnitDimCode;
END;
IF SelectedDim.FIND('-') THEN
REPEAT
i := i + 1;
IF i > ARRAYLEN(ColumnDimCode) THEN
ERROR(Text003,ARRAYLEN(ColumnDimCode));
ColumnDimCode[i] := SelectedDim."Dimension Code";
UNTIL (SelectedDim.NEXT = 0) OR (i = 8);
NoOfDimensions := i;
FOR i := 1 TO NoOfPeriods DO BEGIN
IF i = 1 THEN
TempPeriod."Period Start" := StartDate
ELSE
TempPeriod."Period Start" := CALCDATE(PeriodLength,TempPeriod."Period Start");
TempPeriod."Period End" := CALCDATE(PeriodLength,TempPeriod."Period Start");
TempPeriod."Period End" := CALCDATE('<-1D>',TempPeriod."Period End");
TempPeriod."Period No." := i;
TempPeriod.INSERT;
END;
SETRANGE(Date,StartDate,TempPeriod."Period End");
TempBudgetBuf2.DELETEALL;
ExcelBuf.DELETEALL;
END;
OnAfterGetRecord=BEGIN
CLEAR(TempBudgetBuf1);
TempBudgetBuf1."G/L Account No." := "G/L Account No.";
TempBudgetBuf1."Dimension Value Code 1" := GetDimValueCode(ColumnDimCode[1]);
TempBudgetBuf1."Dimension Value Code 2" := GetDimValueCode(ColumnDimCode[2]);
TempBudgetBuf1."Dimension Value Code 3" := GetDimValueCode(ColumnDimCode[3]);
TempBudgetBuf1."Dimension Value Code 4" := GetDimValueCode(ColumnDimCode[4]);
TempBudgetBuf1."Dimension Value Code 5" := GetDimValueCode(ColumnDimCode[5]);
TempBudgetBuf1."Dimension Value Code 6" := GetDimValueCode(ColumnDimCode[6]);
TempBudgetBuf1."Dimension Value Code 7" := GetDimValueCode(ColumnDimCode[7]);
TempBudgetBuf1."Dimension Value Code 8" := GetDimValueCode(ColumnDimCode[8]);
TempBudgetBuf1.Date := CalcPeriodStart(Date);
TempBudgetBuf1.Amount := Amount;
TempBudgetBuf2 := TempBudgetBuf1;
IF TempBudgetBuf2.FIND THEN BEGIN
TempBudgetBuf2.Amount :=
TempBudgetBuf2.Amount + TempBudgetBuf1.Amount;
TempBudgetBuf2.MODIFY;
END ELSE
TempBudgetBuf2.INSERT;
END;
OnPostDataItem=VAR
DimValue@1004 : Record 349;
BusUnit@1007 : Record 220;
Window@1000 : Dialog;
RecNo@1001 : Integer;
TotalRecNo@1002 : Integer;
Continue@1003 : Boolean;
LastBudgetRowNo@1005 : Integer;
DimensionRange@1006 : ARRAY [2,8] OF Integer;
BEGIN
Window.OPEN(
Text005 +
'@1@@@@@@@@@@@@@@@@@@@@@@@@@\');
Window.UPDATE(1,0);
TotalRecNo := GLAcc.COUNT;
RecNo := 0;
RowNo := 1;
EnterCell(RowNo,1,Text006,FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
EnterCell(RowNo,2,'',FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
EnterFilterInCell(GETFILTER("Budget Name"),FIELDCAPTION("Budget Name"));
GLSetup.GET;
EnterFilterInCell(GETFILTER("Business Unit Code"),FIELDCAPTION("Business Unit Code"));
IF GLSetup."Global Dimension 1 Code" <> '' THEN BEGIN
Dim.GET(GLSetup."Global Dimension 1 Code");
EnterFilterInCell(GETFILTER("Global Dimension 1 Code"),Dim."Code Caption");
END;
IF GLSetup."Global Dimension 2 Code" <> '' THEN BEGIN
Dim.GET(GLSetup."Global Dimension 2 Code");
EnterFilterInCell(GETFILTER("Global Dimension 2 Code"),Dim."Code Caption");
END;
GLBudgetName.GET(GETFILTER("Budget Name"));
IF GLBudgetName."Budget Dimension 1 Code" <> '' THEN BEGIN
Dim.GET(GLBudgetName."Budget Dimension 1 Code");
EnterFilterInCell(GETFILTER("Budget Dimension 1 Code"),Dim."Code Caption");
END;
IF GLBudgetName."Budget Dimension 2 Code" <> '' THEN BEGIN
Dim.GET(GLBudgetName."Budget Dimension 2 Code");
EnterFilterInCell(GETFILTER("Budget Dimension 2 Code"),Dim."Code Caption");
END;
IF GLBudgetName."Budget Dimension 3 Code" <> '' THEN BEGIN
Dim.GET(GLBudgetName."Budget Dimension 3 Code");
EnterFilterInCell(GETFILTER("Budget Dimension 3 Code"),Dim."Code Caption");
END;
IF GLBudgetName."Budget Dimension 4 Code" <> '' THEN BEGIN
Dim.GET(GLBudgetName."Budget Dimension 4 Code");
EnterFilterInCell(GETFILTER("Budget Dimension 4 Code"),Dim."Code Caption");
END;
RowNo := RowNo + 2;
HeaderRowNo := RowNo;
EnterCell(HeaderRowNo,1,FIELDCAPTION("G/L Account No."),FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
EnterCell(HeaderRowNo,2,GLAcc.FIELDCAPTION(Name),FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
i := 0;
ColNo := 2;
Continue := TRUE;
WHILE Continue DO BEGIN
i := i + 1;
IF i > 8 THEN
Continue := FALSE
ELSE
IF ColumnDimCode[i] = '' THEN
Continue := FALSE;
IF Continue THEN BEGIN
ColNo := ColNo + 1;
IF i = BusUnitDimIndex THEN
EnterCell(HeaderRowNo,ColNo,BusUnit.TABLECAPTION,FALSE,TRUE,'',ExcelBuf."Cell Type"::Text)
ELSE BEGIN
Dim.GET(ColumnDimCode[i]);
EnterCell(HeaderRowNo,ColNo,Dim."Code Caption",FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
END;
END;
END;
IF TempPeriod.FIND('-') THEN
REPEAT
ColNo := ColNo + 1;
EnterCell(HeaderRowNo,ColNo,FORMAT(TempPeriod."Period Start"),FALSE,TRUE,'',ExcelBuf."Cell Type"::Date);
UNTIL TempPeriod.NEXT = 0;
COPYFILTER("G/L Account No.",GLAcc."No.");
IF GLAcc.FIND('-') THEN
REPEAT
RecNo := RecNo + 1;
Window.UPDATE(1,ROUND(RecNo / TotalRecNo * 10000,1));
RowNo := RowNo + 1;
EnterCell(
RowNo,2,COPYSTR(COPYSTR(PADSTR(' ',100),1,2 * GLAcc.Indentation + 1) + GLAcc.Name,2),
GLAcc."Account Type" <> GLAcc."Account Type"::Posting,FALSE,'',ExcelBuf."Cell Type"::Text);
EnterCell(
RowNo,1,GLAcc."No.",GLAcc."Account Type" <> GLAcc."Account Type"::Posting,FALSE,'',ExcelBuf."Cell Type"::Text);
IF (GLAcc.Totaling = '') OR (NOT IncludeTotalingFormulas) THEN BEGIN
TempBudgetBuf2.SETRANGE("G/L Account No.",GLAcc."No.");
IF TempBudgetBuf2.FIND('-') THEN BEGIN
TempBudgetBuf1 := TempBudgetBuf2;
EnterDimValues;
IF TempPeriod.FIND('-') THEN;
REPEAT
IF (TempBudgetBuf1."Dimension Value Code 1" <>
TempBudgetBuf2."Dimension Value Code 1") OR
(TempBudgetBuf1."Dimension Value Code 2" <>
TempBudgetBuf2."Dimension Value Code 2") OR
(TempBudgetBuf1."Dimension Value Code 3" <>
TempBudgetBuf2."Dimension Value Code 3") OR
(TempBudgetBuf1."Dimension Value Code 4" <>
TempBudgetBuf2."Dimension Value Code 4") OR
(TempBudgetBuf1."Dimension Value Code 5" <>
TempBudgetBuf2."Dimension Value Code 5") OR
(TempBudgetBuf1."Dimension Value Code 6" <>
TempBudgetBuf2."Dimension Value Code 6") OR
(TempBudgetBuf1."Dimension Value Code 7" <>
TempBudgetBuf2."Dimension Value Code 7") OR
(TempBudgetBuf1."Dimension Value Code 8" <>
TempBudgetBuf2."Dimension Value Code 8")
THEN BEGIN
RowNo := RowNo + 1;
EnterCell(
RowNo,1,GLAcc."No.",GLAcc."Account Type" <> GLAcc."Account Type"::Posting,FALSE,'',ExcelBuf."Cell Type"::Text);
EnterDimValues;
TempBudgetBuf1 := TempBudgetBuf2;
END;
TempPeriod.GET(0,TempBudgetBuf2.Date);
EnterCell(
RowNo,NoOfDimensions + 2 + TempPeriod."Period No.",
FORMAT(TempBudgetBuf2.Amount,0,1),GLAcc."Account Type" <> GLAcc."Account Type"::Posting,
FALSE,'#,##0.00',ExcelBuf."Cell Type"::Number);
TempPeriod.NEXT;
UNTIL TempBudgetBuf2.NEXT = 0;
END ELSE BEGIN
CLEAR(TempBudgetBuf2);
EnterDimValues;
END;
END ELSE
IF TempPeriod.FIND('-') THEN BEGIN
REPEAT
EnterFormula(
RowNo,
NoOfDimensions + 2 + TempPeriod."Period No.",
GLAcc.Totaling,
GLAcc."Account Type" <> GLAcc."Account Type"::Posting,
FALSE,
'#,##0.00');
UNTIL TempPeriod.NEXT = 0;
END;
UNTIL GLAcc.NEXT = 0;
IF IncludeTotalingFormulas THEN
HasFormulaError := ExcelBuf.ExportBudgetFilterToFormula(ExcelBuf);
Window.CLOSE;
LastBudgetRowNo := RowNo;
RowNo := RowNo + 200; // Move way below the budget
FOR i := 1 TO NoOfDimensions DO
IF i = BusUnitDimIndex THEN BEGIN
IF BusUnit.FINDSET THEN BEGIN
DimensionRange[1,i] := RowNo;
REPEAT
EnterCell(RowNo,1,BusUnit.Code,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
RowNo := RowNo + 1;
UNTIL BusUnit.NEXT = 0;
DimensionRange[2,i] := RowNo - 1;
END;
END ELSE BEGIN
DimValue.SETRANGE("Dimension Code",ColumnDimCode[i]);
DimValue.SETFILTER("Dimension Value Type",'%1|%2',
DimValue."Dimension Value Type"::Standard,DimValue."Dimension Value Type"::"Begin-Total");
IF DimValue.FINDSET(FALSE,FALSE) THEN BEGIN
DimensionRange[1,i] := RowNo;
REPEAT
EnterCell(RowNo,1,DimValue.Code,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
RowNo := RowNo + 1;
UNTIL DimValue.NEXT = 0;
DimensionRange[2,i] := RowNo - 1;
END;
END;
IF HasFormulaError THEN
IF NOT CONFIRM(STRSUBSTNO(Text007,ExcelBuf.GetExcelReference(7))) THEN
CurrReport.BREAK;
ExcelBuf.CreateBook(ExcelBuf.GetExcelReference(10));
ExcelBuf.SetCurrent(HeaderRowNo + 1,1);
ExcelBuf.StartRange;
ExcelBuf.SetCurrent(LastBudgetRowNo,1);
ExcelBuf.EndRange;
ExcelBuf.CreateRange(ExcelBuf.GetExcelReference(8));
IF TempPeriod.FIND('-') THEN BEGIN
REPEAT
ExcelBuf.SetCurrent(HeaderRowNo + 1,NoOfDimensions + 2 + TempPeriod."Period No.");
ExcelBuf.StartRange;
ExcelBuf.SetCurrent(LastBudgetRowNo,NoOfDimensions + 2 + TempPeriod."Period No.");
ExcelBuf.EndRange;
ExcelBuf.CreateRange(ExcelBuf.GetExcelReference(9) + FORMAT(TempPeriod."Period No."));
UNTIL TempPeriod.NEXT = 0;
END;
FOR i := 1 TO NoOfDimensions DO BEGIN
ExcelBuf.SetCurrent(HeaderRowNo + 1,i + 2);
ExcelBuf.StartRange;
ExcelBuf.SetCurrent(LastBudgetRowNo,i + 2);
ExcelBuf.EndRange;
ExcelBuf.CreateRange('NAV_DIM' + FORMAT(i));
ExcelBuf.SetCurrent(DimensionRange[1,i],1);
ExcelBuf.StartRange;
ExcelBuf.SetCurrent(DimensionRange[2,i],1);
ExcelBuf.EndRange;
ExcelBuf.CreateValidationRule('NAV_DIM' + FORMAT(i));
END;
ExcelBuf.WriteSheet(
PADSTR(STRSUBSTNO('%1 %2',GLBudgetName.Name,GLBudgetName.Description),30),
COMPANYNAME,
USERID);
ExcelBuf.CloseBook;
ExcelBuf.OpenExcel;
ExcelBuf.GiveUserControl;
END;
ReqFilterFields=Budget Name,Business Unit Code,G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Budget Dimension 1 Code,Budget Dimension 2 Code,Budget Dimension 3 Code,Budget Dimension 4 Code }
}
REQUESTPAGE
{
PROPERTIES
{
SaveValues=Yes;
OnOpenPage=BEGIN
ColumnDim := DimSelectionBuf.GetDimSelectionText(3,REPORT::"Export Budget to Excel",'');
END;
}
CONTROLS
{
{ 1900000001;0;Container;
ContainerType=ContentArea }
{ 1900000002;1;Group ;
CaptionML=[ENU=Options;
FRA=Options;
ESM=Opciones;
ENC=Options] }
{ 1 ;2 ;Field ;
CaptionML=[ENU=Start Date;
FRA=Date d‚but;
ESM=Fecha inicio;
ENC=Start Date];
SourceExpr=StartDate }
{ 5 ;2 ;Field ;
CaptionML=[ENU=No. of Periods;
FRA=Nombre de p‚riodes;
ESM=N§ de periodos;
ENC=No. of Periods];
SourceExpr=NoOfPeriods }
{ 3 ;2 ;Field ;
CaptionML=[ENU=Period Length;
FRA=Base p‚riode;
ESM=Longitud periodo;
ENC=Period Length];
SourceExpr=PeriodLength }
{ 7 ;2 ;Field ;
CaptionML=[ENU=Column Dimensions;
FRA=Axes colonne;
ESM=Dimensiones columna;
ENC=Column Dimensions];
SourceExpr=ColumnDim;
Editable=FALSE;
OnAssistEdit=BEGIN
DimSelectionBuf.SetDimSelectionMultiple(3,REPORT::"Export Budget to Excel",ColumnDim);
END;
}
{ 10 ;2 ;Field ;
CaptionML=[ENU=Include Totaling Formulas;
FRA=Inclure formules de calcul;
ESM=Incluir total f¢rmulas;
ENC=Include Totalling Formulas];
SourceExpr=IncludeTotalingFormulas }
}
}
LABELS
{
}
CODE
{
VAR
Text000@1000 : TextConst 'ENU=Column Dimensions;FRA=Axes colonne;ESM=Dimensiones columna;ENC=Column Dimensions';
Text001@1001 : TextConst 'ENU=You can only export one budget at a time.;FRA=Vous ne pouvez exporter qu''un budget … la fois.;ESM=S¢lo puede exportar un ppto. de una vez.;ENC=You can only export one budget at a time.';
Text002@1002 : TextConst 'ENU=You must specify a Start Date, a No of Periods and a Period Length.;FRA=Vous devez sp‚cifier une date de d‚but, une base p‚riode et un nombre de p‚riodes.;ESM=Debe especificar fecha inicio, n§ de periodos y longitud periodo.;ENC=You must specify a Start Date, a No of Periods and a Period Length.';
Text003@1003 : TextConst 'ENU=You can only select a maximum of %1 column dimensions.;FRA=Vous pouvez seulement s‚lectionner un maximum de %1 axe(s) colonne.;ESM=S¢lo puede seleccionar un m ximo de %1 dim. columnas.;ENC=You can only select a maximum of %1 column dimensions.';
Text005@1004 : TextConst 'ENU=Analyzing Data...\\;FRA=Analyse des donn‚es...\\;ESM=Analizar Datos...\\;ENC=Analysing Data...\\';
Text006@1005 : TextConst 'ENU=Export Filters;FRA=Exporter filtres;ESM=Exportar filtros;ENC=Export Filters';
Text007@1006 : TextConst 'ENU=Some filters cannot be converted into Excel formulas. You will have to check %1 errors in the Excel worksheet. Do you want to create the Excel worksheet ?;FRA=Certains filtres ne peuvent pas ˆtre convertis en formules Excel. Vous devez rem‚dier aux erreurs rencontr‚es (%1) dans la feuille Excel. Souhaitez-vous cr‚er une feuille Excel ?;ESM=Algunos filtros no pueden convertirse en f¢rmulas de Excel. Tendr que comprobar los errores %1 en la hoja de Excel. ¨Quiere crear la hoja de Excel?;ENC=Some filters cannot be converted into Excel formulas. You will have to check %1 errors in the Excel worksheet. Do you want to create the Excel worksheet ?';
TempPeriod@1007 : TEMPORARY Record 2000000007;
SelectedDim@1009 : Record 369;
TempBudgetBuf1@1010 : TEMPORARY Record 371;
TempBudgetBuf2@1011 : TEMPORARY Record 371;
DimSetEntry@1012 : Record 480;
GLSetup@1013 : Record 98;
Dim@1014 : Record 348;
GLBudgetName@1015 : Record 95;
ExcelBuf@1016 : TEMPORARY Record 370;
GLAcc@1017 : Record 15;
DimSelectionBuf@1018 : Record 368;
StartDate@1019 : Date;
PeriodLength@1020 : DateFormula;
NoOfPeriods@1021 : Integer;
NoOfDimensions@1022 : Integer;
i@1023 : Integer;
RowNo@1024 : Integer;
ColNo@1025 : Integer;
ColumnDim@1026 : Text[250];
ColumnDimCode@1027 : ARRAY [8] OF Code[20];
HasFormulaError@1028 : Boolean;
IncludeTotalingFormulas@1029 : Boolean;
HeaderRowNo@1030 : Integer;
BusUnitDimIndex@1008 : Integer;
BusUnitDimCode@1031 : Code[20];
LOCAL PROCEDURE CalcPeriodStart@1(EntryDate@1000 : Date) : Date;
BEGIN
TempPeriod."Period Start" := EntryDate;
TempPeriod.FIND('=<');
EXIT(TempPeriod."Period Start");
END;
LOCAL PROCEDURE GetDimValueCode@2(DimCode@1000 : Code[20]) : Code[20];
BEGIN
IF DimCode = '' THEN
EXIT('');
IF DimCode = BusUnitDimCode THEN
EXIT("G/L Budget Entry"."Business Unit Code");
DimSetEntry.SETRANGE("Dimension Set ID","G/L Budget Entry"."Dimension Set ID");
DimSetEntry.SETRANGE("Dimension Code",DimCode);
IF DimSetEntry.FINDFIRST THEN
EXIT(DimSetEntry."Dimension Value Code");
EXIT('');
END;
LOCAL PROCEDURE EnterCell@3(RowNo@1000 : Integer;ColumnNo@1001 : Integer;CellValue@1002 : Text[250];Bold@1003 : Boolean;UnderLine@1004 : Boolean;NumberFormat@1005 : Text[30];CellType@1006 : Option);
BEGIN
ExcelBuf.INIT;
ExcelBuf.VALIDATE("Row No.",RowNo);
ExcelBuf.VALIDATE("Column No.",ColumnNo);
ExcelBuf."Cell Value as Text" := CellValue;
ExcelBuf.Formula := '';
ExcelBuf.Bold := Bold;
ExcelBuf.Underline := UnderLine;
ExcelBuf.NumberFormat := NumberFormat;
ExcelBuf."Cell Type" := CellType;
ExcelBuf.INSERT;
END;
LOCAL PROCEDURE EnterFilterInCell@5(Filter@1000 : Text[250];FieldName@1001 : Text[100]);
BEGIN
IF Filter <> '' THEN BEGIN
RowNo := RowNo + 1;
EnterCell(RowNo,1,FieldName,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
EnterCell(RowNo,2,Filter,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
END;
END;
LOCAL PROCEDURE EnterDimValue@7(ColDimIndex@1000 : Integer;DimValueCode@1001 : Code[20]);
BEGIN
IF ColumnDimCode[ColDimIndex] <> '' THEN BEGIN
ColNo := ColNo + 1;
EnterCell(RowNo,ColNo,DimValueCode,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
END;
END;
LOCAL PROCEDURE EnterDimValues@6();
BEGIN
ColNo := 2;
EnterDimValue(1,TempBudgetBuf2."Dimension Value Code 1");
EnterDimValue(2,TempBudgetBuf2."Dimension Value Code 2");
EnterDimValue(3,TempBudgetBuf2."Dimension Value Code 3");
EnterDimValue(4,TempBudgetBuf2."Dimension Value Code 4");
EnterDimValue(5,TempBudgetBuf2."Dimension Value Code 5");
EnterDimValue(6,TempBudgetBuf2."Dimension Value Code 6");
EnterDimValue(7,TempBudgetBuf2."Dimension Value Code 7");
EnterDimValue(8,TempBudgetBuf2."Dimension Value Code 8");
END;
LOCAL PROCEDURE EnterFormula@8(RowNo@1000 : Integer;ColumnNo@1001 : Integer;CellValue@1002 : Text[250];Bold@1005 : Boolean;UnderLine@1006 : Boolean;NumberFormat@1003 : Text[30]);
BEGIN
ExcelBuf.INIT;
ExcelBuf.VALIDATE("Row No.",RowNo);
ExcelBuf.VALIDATE("Column No.",ColumnNo);
ExcelBuf."Cell Value as Text" := '';
ExcelBuf.Formula := CellValue; // is converted to formula later.
ExcelBuf.Bold := Bold;
ExcelBuf.Underline := UnderLine;
ExcelBuf.NumberFormat := NumberFormat;
ExcelBuf.INSERT;
END;
BEGIN
END.
}
RDLDATA
{
}
}
{
OBJECT-PROPERTIES
{
Date=09/07/12;
Time=12:00:00 PM;
Version List=NAVW17.00;
}
PROPERTIES
{
CaptionML=[ENU=Export Budget to Excel;
FRA=Exporter budget vers Excel;
ESM=Exportar ppto. a Excel;
ENC=Export Budget to Excel];
ProcessingOnly=Yes;
OnPreReport=BEGIN
DimSelectionBuf.CompareDimText(
3,REPORT::"Export Budget to Excel",'',ColumnDim,Text000);
END;
}
DATASET
{
{ 3459; ;DataItem; ;
DataItemTable=Table96;
DataItemTableView=SORTING(Budget Name,G/L Account No.,Business Unit Code,Global Dimension 1 Code,Global Dimension 2 Code,Budget Dimension 1 Code,Budget Dimension 2 Code,Budget Dimension 3 Code,Budget Dimension 4 Code,Date);
OnPreDataItem=VAR
BusUnit@1000 : Record 220;
BEGIN
IF GETRANGEMIN("Budget Name") <> GETRANGEMAX("Budget Name") THEN
ERROR(Text001);
IF (StartDate = 0D) OR
(NoOfPeriods = 0) OR
(FORMAT(PeriodLength) = '')
THEN
ERROR(Text002);
SelectedDim.RESET;
SelectedDim.SETRANGE("User ID",USERID);
SelectedDim.SETRANGE("Object Type",3);
SelectedDim.SETRANGE("Object ID",REPORT::"Export Budget to Excel");
i := 0;
IF BusUnit.FINDFIRST THEN BEGIN
i := i + 1;
BusUnitDimIndex := i;
BusUnitDimCode := COPYSTR(UPPERCASE(BusUnit.TABLECAPTION),1,MAXSTRLEN(ColumnDimCode[1]));
ColumnDimCode[BusUnitDimIndex] := BusUnitDimCode;
END;
IF SelectedDim.FIND('-') THEN
REPEAT
i := i + 1;
IF i > ARRAYLEN(ColumnDimCode) THEN
ERROR(Text003,ARRAYLEN(ColumnDimCode));
ColumnDimCode[i] := SelectedDim."Dimension Code";
UNTIL (SelectedDim.NEXT = 0) OR (i = 8);
NoOfDimensions := i;
FOR i := 1 TO NoOfPeriods DO BEGIN
IF i = 1 THEN
TempPeriod."Period Start" := StartDate
ELSE
TempPeriod."Period Start" := CALCDATE(PeriodLength,TempPeriod."Period Start");
TempPeriod."Period End" := CALCDATE(PeriodLength,TempPeriod."Period Start");
TempPeriod."Period End" := CALCDATE('<-1D>',TempPeriod."Period End");
TempPeriod."Period No." := i;
TempPeriod.INSERT;
END;
SETRANGE(Date,StartDate,TempPeriod."Period End");
TempBudgetBuf2.DELETEALL;
ExcelBuf.DELETEALL;
END;
OnAfterGetRecord=BEGIN
CLEAR(TempBudgetBuf1);
TempBudgetBuf1."G/L Account No." := "G/L Account No.";
TempBudgetBuf1."Dimension Value Code 1" := GetDimValueCode(ColumnDimCode[1]);
TempBudgetBuf1."Dimension Value Code 2" := GetDimValueCode(ColumnDimCode[2]);
TempBudgetBuf1."Dimension Value Code 3" := GetDimValueCode(ColumnDimCode[3]);
TempBudgetBuf1."Dimension Value Code 4" := GetDimValueCode(ColumnDimCode[4]);
TempBudgetBuf1."Dimension Value Code 5" := GetDimValueCode(ColumnDimCode[5]);
TempBudgetBuf1."Dimension Value Code 6" := GetDimValueCode(ColumnDimCode[6]);
TempBudgetBuf1."Dimension Value Code 7" := GetDimValueCode(ColumnDimCode[7]);
TempBudgetBuf1."Dimension Value Code 8" := GetDimValueCode(ColumnDimCode[8]);
TempBudgetBuf1.Date := CalcPeriodStart(Date);
TempBudgetBuf1.Amount := Amount;
TempBudgetBuf2 := TempBudgetBuf1;
IF TempBudgetBuf2.FIND THEN BEGIN
TempBudgetBuf2.Amount :=
TempBudgetBuf2.Amount + TempBudgetBuf1.Amount;
TempBudgetBuf2.MODIFY;
END ELSE
TempBudgetBuf2.INSERT;
END;
OnPostDataItem=VAR
DimValue@1004 : Record 349;
BusUnit@1007 : Record 220;
Window@1000 : Dialog;
RecNo@1001 : Integer;
TotalRecNo@1002 : Integer;
Continue@1003 : Boolean;
LastBudgetRowNo@1005 : Integer;
DimensionRange@1006 : ARRAY [2,8] OF Integer;
BEGIN
Window.OPEN(
Text005 +
'@1@@@@@@@@@@@@@@@@@@@@@@@@@\');
Window.UPDATE(1,0);
TotalRecNo := GLAcc.COUNT;
RecNo := 0;
RowNo := 1;
EnterCell(RowNo,1,Text006,FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
EnterCell(RowNo,2,'',FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
EnterFilterInCell(GETFILTER("Budget Name"),FIELDCAPTION("Budget Name"));
GLSetup.GET;
EnterFilterInCell(GETFILTER("Business Unit Code"),FIELDCAPTION("Business Unit Code"));
IF GLSetup."Global Dimension 1 Code" <> '' THEN BEGIN
Dim.GET(GLSetup."Global Dimension 1 Code");
EnterFilterInCell(GETFILTER("Global Dimension 1 Code"),Dim."Code Caption");
END;
IF GLSetup."Global Dimension 2 Code" <> '' THEN BEGIN
Dim.GET(GLSetup."Global Dimension 2 Code");
EnterFilterInCell(GETFILTER("Global Dimension 2 Code"),Dim."Code Caption");
END;
GLBudgetName.GET(GETFILTER("Budget Name"));
IF GLBudgetName."Budget Dimension 1 Code" <> '' THEN BEGIN
Dim.GET(GLBudgetName."Budget Dimension 1 Code");
EnterFilterInCell(GETFILTER("Budget Dimension 1 Code"),Dim."Code Caption");
END;
IF GLBudgetName."Budget Dimension 2 Code" <> '' THEN BEGIN
Dim.GET(GLBudgetName."Budget Dimension 2 Code");
EnterFilterInCell(GETFILTER("Budget Dimension 2 Code"),Dim."Code Caption");
END;
IF GLBudgetName."Budget Dimension 3 Code" <> '' THEN BEGIN
Dim.GET(GLBudgetName."Budget Dimension 3 Code");
EnterFilterInCell(GETFILTER("Budget Dimension 3 Code"),Dim."Code Caption");
END;
IF GLBudgetName."Budget Dimension 4 Code" <> '' THEN BEGIN
Dim.GET(GLBudgetName."Budget Dimension 4 Code");
EnterFilterInCell(GETFILTER("Budget Dimension 4 Code"),Dim."Code Caption");
END;
RowNo := RowNo + 2;
HeaderRowNo := RowNo;
EnterCell(HeaderRowNo,1,FIELDCAPTION("G/L Account No."),FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
EnterCell(HeaderRowNo,2,GLAcc.FIELDCAPTION(Name),FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
i := 0;
ColNo := 2;
Continue := TRUE;
WHILE Continue DO BEGIN
i := i + 1;
IF i > 8 THEN
Continue := FALSE
ELSE
IF ColumnDimCode[i] = '' THEN
Continue := FALSE;
IF Continue THEN BEGIN
ColNo := ColNo + 1;
IF i = BusUnitDimIndex THEN
EnterCell(HeaderRowNo,ColNo,BusUnit.TABLECAPTION,FALSE,TRUE,'',ExcelBuf."Cell Type"::Text)
ELSE BEGIN
Dim.GET(ColumnDimCode[i]);
EnterCell(HeaderRowNo,ColNo,Dim."Code Caption",FALSE,TRUE,'',ExcelBuf."Cell Type"::Text);
END;
END;
END;
IF TempPeriod.FIND('-') THEN
REPEAT
ColNo := ColNo + 1;
EnterCell(HeaderRowNo,ColNo,FORMAT(TempPeriod."Period Start"),FALSE,TRUE,'',ExcelBuf."Cell Type"::Date);
UNTIL TempPeriod.NEXT = 0;
COPYFILTER("G/L Account No.",GLAcc."No.");
IF GLAcc.FIND('-') THEN
REPEAT
RecNo := RecNo + 1;
Window.UPDATE(1,ROUND(RecNo / TotalRecNo * 10000,1));
RowNo := RowNo + 1;
EnterCell(
RowNo,2,COPYSTR(COPYSTR(PADSTR(' ',100),1,2 * GLAcc.Indentation + 1) + GLAcc.Name,2),
GLAcc."Account Type" <> GLAcc."Account Type"::Posting,FALSE,'',ExcelBuf."Cell Type"::Text);
EnterCell(
RowNo,1,GLAcc."No.",GLAcc."Account Type" <> GLAcc."Account Type"::Posting,FALSE,'',ExcelBuf."Cell Type"::Text);
IF (GLAcc.Totaling = '') OR (NOT IncludeTotalingFormulas) THEN BEGIN
TempBudgetBuf2.SETRANGE("G/L Account No.",GLAcc."No.");
IF TempBudgetBuf2.FIND('-') THEN BEGIN
TempBudgetBuf1 := TempBudgetBuf2;
EnterDimValues;
IF TempPeriod.FIND('-') THEN;
REPEAT
IF (TempBudgetBuf1."Dimension Value Code 1" <>
TempBudgetBuf2."Dimension Value Code 1") OR
(TempBudgetBuf1."Dimension Value Code 2" <>
TempBudgetBuf2."Dimension Value Code 2") OR
(TempBudgetBuf1."Dimension Value Code 3" <>
TempBudgetBuf2."Dimension Value Code 3") OR
(TempBudgetBuf1."Dimension Value Code 4" <>
TempBudgetBuf2."Dimension Value Code 4") OR
(TempBudgetBuf1."Dimension Value Code 5" <>
TempBudgetBuf2."Dimension Value Code 5") OR
(TempBudgetBuf1."Dimension Value Code 6" <>
TempBudgetBuf2."Dimension Value Code 6") OR
(TempBudgetBuf1."Dimension Value Code 7" <>
TempBudgetBuf2."Dimension Value Code 7") OR
(TempBudgetBuf1."Dimension Value Code 8" <>
TempBudgetBuf2."Dimension Value Code 8")
THEN BEGIN
RowNo := RowNo + 1;
EnterCell(
RowNo,1,GLAcc."No.",GLAcc."Account Type" <> GLAcc."Account Type"::Posting,FALSE,'',ExcelBuf."Cell Type"::Text);
EnterDimValues;
TempBudgetBuf1 := TempBudgetBuf2;
END;
TempPeriod.GET(0,TempBudgetBuf2.Date);
EnterCell(
RowNo,NoOfDimensions + 2 + TempPeriod."Period No.",
FORMAT(TempBudgetBuf2.Amount,0,1),GLAcc."Account Type" <> GLAcc."Account Type"::Posting,
FALSE,'#,##0.00',ExcelBuf."Cell Type"::Number);
TempPeriod.NEXT;
UNTIL TempBudgetBuf2.NEXT = 0;
END ELSE BEGIN
CLEAR(TempBudgetBuf2);
EnterDimValues;
END;
END ELSE
IF TempPeriod.FIND('-') THEN BEGIN
REPEAT
EnterFormula(
RowNo,
NoOfDimensions + 2 + TempPeriod."Period No.",
GLAcc.Totaling,
GLAcc."Account Type" <> GLAcc."Account Type"::Posting,
FALSE,
'#,##0.00');
UNTIL TempPeriod.NEXT = 0;
END;
UNTIL GLAcc.NEXT = 0;
IF IncludeTotalingFormulas THEN
HasFormulaError := ExcelBuf.ExportBudgetFilterToFormula(ExcelBuf);
Window.CLOSE;
LastBudgetRowNo := RowNo;
RowNo := RowNo + 200; // Move way below the budget
FOR i := 1 TO NoOfDimensions DO
IF i = BusUnitDimIndex THEN BEGIN
IF BusUnit.FINDSET THEN BEGIN
DimensionRange[1,i] := RowNo;
REPEAT
EnterCell(RowNo,1,BusUnit.Code,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
RowNo := RowNo + 1;
UNTIL BusUnit.NEXT = 0;
DimensionRange[2,i] := RowNo - 1;
END;
END ELSE BEGIN
DimValue.SETRANGE("Dimension Code",ColumnDimCode[i]);
DimValue.SETFILTER("Dimension Value Type",'%1|%2',
DimValue."Dimension Value Type"::Standard,DimValue."Dimension Value Type"::"Begin-Total");
IF DimValue.FINDSET(FALSE,FALSE) THEN BEGIN
DimensionRange[1,i] := RowNo;
REPEAT
EnterCell(RowNo,1,DimValue.Code,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
RowNo := RowNo + 1;
UNTIL DimValue.NEXT = 0;
DimensionRange[2,i] := RowNo - 1;
END;
END;
IF HasFormulaError THEN
IF NOT CONFIRM(STRSUBSTNO(Text007,ExcelBuf.GetExcelReference(7))) THEN
CurrReport.BREAK;
ExcelBuf.CreateBook(ExcelBuf.GetExcelReference(10));
ExcelBuf.SetCurrent(HeaderRowNo + 1,1);
ExcelBuf.StartRange;
ExcelBuf.SetCurrent(LastBudgetRowNo,1);
ExcelBuf.EndRange;
ExcelBuf.CreateRange(ExcelBuf.GetExcelReference(8));
IF TempPeriod.FIND('-') THEN BEGIN
REPEAT
ExcelBuf.SetCurrent(HeaderRowNo + 1,NoOfDimensions + 2 + TempPeriod."Period No.");
ExcelBuf.StartRange;
ExcelBuf.SetCurrent(LastBudgetRowNo,NoOfDimensions + 2 + TempPeriod."Period No.");
ExcelBuf.EndRange;
ExcelBuf.CreateRange(ExcelBuf.GetExcelReference(9) + FORMAT(TempPeriod."Period No."));
UNTIL TempPeriod.NEXT = 0;
END;
FOR i := 1 TO NoOfDimensions DO BEGIN
ExcelBuf.SetCurrent(HeaderRowNo + 1,i + 2);
ExcelBuf.StartRange;
ExcelBuf.SetCurrent(LastBudgetRowNo,i + 2);
ExcelBuf.EndRange;
ExcelBuf.CreateRange('NAV_DIM' + FORMAT(i));
ExcelBuf.SetCurrent(DimensionRange[1,i],1);
ExcelBuf.StartRange;
ExcelBuf.SetCurrent(DimensionRange[2,i],1);
ExcelBuf.EndRange;
ExcelBuf.CreateValidationRule('NAV_DIM' + FORMAT(i));
END;
ExcelBuf.WriteSheet(
PADSTR(STRSUBSTNO('%1 %2',GLBudgetName.Name,GLBudgetName.Description),30),
COMPANYNAME,
USERID);
ExcelBuf.CloseBook;
ExcelBuf.OpenExcel;
ExcelBuf.GiveUserControl;
END;
ReqFilterFields=Budget Name,Business Unit Code,G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Budget Dimension 1 Code,Budget Dimension 2 Code,Budget Dimension 3 Code,Budget Dimension 4 Code }
}
REQUESTPAGE
{
PROPERTIES
{
SaveValues=Yes;
OnOpenPage=BEGIN
ColumnDim := DimSelectionBuf.GetDimSelectionText(3,REPORT::"Export Budget to Excel",'');
END;
}
CONTROLS
{
{ 1900000001;0;Container;
ContainerType=ContentArea }
{ 1900000002;1;Group ;
CaptionML=[ENU=Options;
FRA=Options;
ESM=Opciones;
ENC=Options] }
{ 1 ;2 ;Field ;
CaptionML=[ENU=Start Date;
FRA=Date d‚but;
ESM=Fecha inicio;
ENC=Start Date];
SourceExpr=StartDate }
{ 5 ;2 ;Field ;
CaptionML=[ENU=No. of Periods;
FRA=Nombre de p‚riodes;
ESM=N§ de periodos;
ENC=No. of Periods];
SourceExpr=NoOfPeriods }
{ 3 ;2 ;Field ;
CaptionML=[ENU=Period Length;
FRA=Base p‚riode;
ESM=Longitud periodo;
ENC=Period Length];
SourceExpr=PeriodLength }
{ 7 ;2 ;Field ;
CaptionML=[ENU=Column Dimensions;
FRA=Axes colonne;
ESM=Dimensiones columna;
ENC=Column Dimensions];
SourceExpr=ColumnDim;
Editable=FALSE;
OnAssistEdit=BEGIN
DimSelectionBuf.SetDimSelectionMultiple(3,REPORT::"Export Budget to Excel",ColumnDim);
END;
}
{ 10 ;2 ;Field ;
CaptionML=[ENU=Include Totaling Formulas;
FRA=Inclure formules de calcul;
ESM=Incluir total f¢rmulas;
ENC=Include Totalling Formulas];
SourceExpr=IncludeTotalingFormulas }
}
}
LABELS
{
}
CODE
{
VAR
Text000@1000 : TextConst 'ENU=Column Dimensions;FRA=Axes colonne;ESM=Dimensiones columna;ENC=Column Dimensions';
Text001@1001 : TextConst 'ENU=You can only export one budget at a time.;FRA=Vous ne pouvez exporter qu''un budget … la fois.;ESM=S¢lo puede exportar un ppto. de una vez.;ENC=You can only export one budget at a time.';
Text002@1002 : TextConst 'ENU=You must specify a Start Date, a No of Periods and a Period Length.;FRA=Vous devez sp‚cifier une date de d‚but, une base p‚riode et un nombre de p‚riodes.;ESM=Debe especificar fecha inicio, n§ de periodos y longitud periodo.;ENC=You must specify a Start Date, a No of Periods and a Period Length.';
Text003@1003 : TextConst 'ENU=You can only select a maximum of %1 column dimensions.;FRA=Vous pouvez seulement s‚lectionner un maximum de %1 axe(s) colonne.;ESM=S¢lo puede seleccionar un m ximo de %1 dim. columnas.;ENC=You can only select a maximum of %1 column dimensions.';
Text005@1004 : TextConst 'ENU=Analyzing Data...\\;FRA=Analyse des donn‚es...\\;ESM=Analizar Datos...\\;ENC=Analysing Data...\\';
Text006@1005 : TextConst 'ENU=Export Filters;FRA=Exporter filtres;ESM=Exportar filtros;ENC=Export Filters';
Text007@1006 : TextConst 'ENU=Some filters cannot be converted into Excel formulas. You will have to check %1 errors in the Excel worksheet. Do you want to create the Excel worksheet ?;FRA=Certains filtres ne peuvent pas ˆtre convertis en formules Excel. Vous devez rem‚dier aux erreurs rencontr‚es (%1) dans la feuille Excel. Souhaitez-vous cr‚er une feuille Excel ?;ESM=Algunos filtros no pueden convertirse en f¢rmulas de Excel. Tendr que comprobar los errores %1 en la hoja de Excel. ¨Quiere crear la hoja de Excel?;ENC=Some filters cannot be converted into Excel formulas. You will have to check %1 errors in the Excel worksheet. Do you want to create the Excel worksheet ?';
TempPeriod@1007 : TEMPORARY Record 2000000007;
SelectedDim@1009 : Record 369;
TempBudgetBuf1@1010 : TEMPORARY Record 371;
TempBudgetBuf2@1011 : TEMPORARY Record 371;
DimSetEntry@1012 : Record 480;
GLSetup@1013 : Record 98;
Dim@1014 : Record 348;
GLBudgetName@1015 : Record 95;
ExcelBuf@1016 : TEMPORARY Record 370;
GLAcc@1017 : Record 15;
DimSelectionBuf@1018 : Record 368;
StartDate@1019 : Date;
PeriodLength@1020 : DateFormula;
NoOfPeriods@1021 : Integer;
NoOfDimensions@1022 : Integer;
i@1023 : Integer;
RowNo@1024 : Integer;
ColNo@1025 : Integer;
ColumnDim@1026 : Text[250];
ColumnDimCode@1027 : ARRAY [8] OF Code[20];
HasFormulaError@1028 : Boolean;
IncludeTotalingFormulas@1029 : Boolean;
HeaderRowNo@1030 : Integer;
BusUnitDimIndex@1008 : Integer;
BusUnitDimCode@1031 : Code[20];
LOCAL PROCEDURE CalcPeriodStart@1(EntryDate@1000 : Date) : Date;
BEGIN
TempPeriod."Period Start" := EntryDate;
TempPeriod.FIND('=<');
EXIT(TempPeriod."Period Start");
END;
LOCAL PROCEDURE GetDimValueCode@2(DimCode@1000 : Code[20]) : Code[20];
BEGIN
IF DimCode = '' THEN
EXIT('');
IF DimCode = BusUnitDimCode THEN
EXIT("G/L Budget Entry"."Business Unit Code");
DimSetEntry.SETRANGE("Dimension Set ID","G/L Budget Entry"."Dimension Set ID");
DimSetEntry.SETRANGE("Dimension Code",DimCode);
IF DimSetEntry.FINDFIRST THEN
EXIT(DimSetEntry."Dimension Value Code");
EXIT('');
END;
LOCAL PROCEDURE EnterCell@3(RowNo@1000 : Integer;ColumnNo@1001 : Integer;CellValue@1002 : Text[250];Bold@1003 : Boolean;UnderLine@1004 : Boolean;NumberFormat@1005 : Text[30];CellType@1006 : Option);
BEGIN
ExcelBuf.INIT;
ExcelBuf.VALIDATE("Row No.",RowNo);
ExcelBuf.VALIDATE("Column No.",ColumnNo);
ExcelBuf."Cell Value as Text" := CellValue;
ExcelBuf.Formula := '';
ExcelBuf.Bold := Bold;
ExcelBuf.Underline := UnderLine;
ExcelBuf.NumberFormat := NumberFormat;
ExcelBuf."Cell Type" := CellType;
ExcelBuf.INSERT;
END;
LOCAL PROCEDURE EnterFilterInCell@5(Filter@1000 : Text[250];FieldName@1001 : Text[100]);
BEGIN
IF Filter <> '' THEN BEGIN
RowNo := RowNo + 1;
EnterCell(RowNo,1,FieldName,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
EnterCell(RowNo,2,Filter,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
END;
END;
LOCAL PROCEDURE EnterDimValue@7(ColDimIndex@1000 : Integer;DimValueCode@1001 : Code[20]);
BEGIN
IF ColumnDimCode[ColDimIndex] <> '' THEN BEGIN
ColNo := ColNo + 1;
EnterCell(RowNo,ColNo,DimValueCode,FALSE,FALSE,'',ExcelBuf."Cell Type"::Text);
END;
END;
LOCAL PROCEDURE EnterDimValues@6();
BEGIN
ColNo := 2;
EnterDimValue(1,TempBudgetBuf2."Dimension Value Code 1");
EnterDimValue(2,TempBudgetBuf2."Dimension Value Code 2");
EnterDimValue(3,TempBudgetBuf2."Dimension Value Code 3");
EnterDimValue(4,TempBudgetBuf2."Dimension Value Code 4");
EnterDimValue(5,TempBudgetBuf2."Dimension Value Code 5");
EnterDimValue(6,TempBudgetBuf2."Dimension Value Code 6");
EnterDimValue(7,TempBudgetBuf2."Dimension Value Code 7");
EnterDimValue(8,TempBudgetBuf2."Dimension Value Code 8");
END;
LOCAL PROCEDURE EnterFormula@8(RowNo@1000 : Integer;ColumnNo@1001 : Integer;CellValue@1002 : Text[250];Bold@1005 : Boolean;UnderLine@1006 : Boolean;NumberFormat@1003 : Text[30]);
BEGIN
ExcelBuf.INIT;
ExcelBuf.VALIDATE("Row No.",RowNo);
ExcelBuf.VALIDATE("Column No.",ColumnNo);
ExcelBuf."Cell Value as Text" := '';
ExcelBuf.Formula := CellValue; // is converted to formula later.
ExcelBuf.Bold := Bold;
ExcelBuf.Underline := UnderLine;
ExcelBuf.NumberFormat := NumberFormat;
ExcelBuf.INSERT;
END;
BEGIN
END.
}
RDLDATA
{
}
}
Subscribe to:
Posts (Atom)