29. Oktober 2010 13:40
---------------------------
Microsoft Dynamics NAV Classic
---------------------------
Diese Meldung ist für C/AL-Programmierer:
Der Aufruf zum Member ChartWizard ist fehlgeschlagen. S gab die folgende Meldung zurück:
Dieses Objekt besitzt keinen Titel.
---------------------------
OK
---------------------------
Name DataType Subtype Length
Customer Record Customer
CustAmount Record Customer Amount
Excel Automation 'Microsoft Excel 14.0 Object Library'.Application
Book Automation 'Microsoft Excel 14.0 Object Library'.Workbook
Range Automation 'Microsoft Excel 14.0 Object Library'.Range
Sheet Automation 'Microsoft Excel 14.0 Object Library'.Worksheet
Chart Automation 'Microsoft Excel 14.0 Object Library'.Chart
CustFilter Text 250
CustDateFilter Text 30
j Text 30
ShowType Option
NoOfRecordsToPrint Integer
i Integer
MaxAmount Decimal
CustFilter := Customer.GETFILTERS;
CustDateFilter := Customer.GETFILTER("Date Filter");
i := 0;
CustAmount.DELETEALL;
//
CREATE(Excel);
Excel.Visible(TRUE);
Book := Excel.Workbooks.Add(-4167);
Sheet := Excel.ActiveSheet;
Sheet.Name := 'Top 10';
WITH Customer DO BEGIN
REPEAT
CALCFIELDS("Sales (LCY)","Balance (LCY)");
IF ("Sales (LCY)" <> 0) OR ("Balance (LCY)" <> 0) THEN BEGIN
CustAmount.INIT;
CustAmount."Customer No." := "No.";
IF ShowType = ShowType::"Sales (LCY)" THEN BEGIN
CustAmount."Amount (LCY)" := - "Sales (LCY)";
CustAmount."Amount 2 (LCY)" := - "Balance (LCY)";
END ELSE BEGIN
CustAmount."Amount (LCY)" := - "Balance (LCY)";
CustAmount."Amount 2 (LCY)" := - "Sales (LCY)";
END;
CustAmount.INSERT;
IF (NoOfRecordsToPrint = 0) OR (i < NoOfRecordsToPrint) THEN BEGIN
i := i + 1;
END ELSE BEGIN
CustAmount.FIND('+');
CustAmount.DELETE;
END;
END;
UNTIL NEXT=0;
END;
Sheet.Range('A2').Value := 'No.';
Sheet.Range('B2').Value := 'Name';
Sheet.Range('C2').Value := 'Sales (LCY)';
IF CustAmount.FIND('-') THEN BEGIN
j := '3';
REPEAT
Customer.SETRANGE("No.",CustAmount."Customer No.");
Customer.FIND('-');
Sheet.Range('A'+j).Value := CustAmount."Customer No.";
Sheet.Range('B'+j).Value := Customer.Name;
Sheet.Range('C'+j).Value := -CustAmount."Amount (LCY)";
j := INCSTR(j);
UNTIL CustAmount.NEXT = 0;
END;
Range := Sheet.Range('B3:C12');
Chart := Book.Charts.Add;
Chart.Name := 'Top 10 Customers - Graph';
//Chart.ChartWizard(Range,-4100,2,2,1,0,0,'Top 10 Customers','Customer','Sales (LCY)');
Chart.ChartWizard(Range,-4100,2,2,1,0,0,'test','test2','test3');
29. Oktober 2010 13:53
29. Oktober 2010 14:10
29. Oktober 2010 14:46
Chris Blank hat geschrieben:
- Code:
Chart.ChartWizard(Range,-4100,2,2,1,0,0,'test','test2','test3');
Parameter
Source
Der Bereich, der die Quelldaten für das neue Diagramm enthält. Wenn dieses Argument ausgelassen wird, wird in Microsoft Office Excel das aktive Diagrammblatt oder das ausgewählte Chart-Steuerelement auf dem aktiven Arbeitsblatt bearbeitet.
Gallery
XlChartType. Der Diagrammtyp.
Format
Die Optionsnummer für die integrierten automatischen Formatierungen. Kann je nach Sammlungstyp eine Zahl von 1 bis 10 sein. Wenn dieses Argument ausgelassen wird, wählt Excel einen Standardwert auf Grundlage des Sammlungstyps und der Datenquelle.
PlotBy
Gibt an, ob die Daten für jede Reihe in Zeilen oder Spalten angeordnet werden. Kann eine der folgenden XlRowCol-Konstanten sein: xlRows oder xlColumns.
CategoryLabels
Eine ganze Zahl, die die Anzahl der Zeilen oder Spalten mit Rubrikenbeschriftungen im Quellbereich angibt. Gültige Werte sind von 0 (null) zur maximalen Anzahl der entsprechenden Kategorien oder Reihen minus eins.
SeriesLabels
Eine ganze Zahl, die die Anzahl der Zeilen oder Spalten mit Reihenbeschriftungen im Quellbereich angibt. Gültige Werte sind von 0 (null) zur maximalen Anzahl der entsprechenden Kategorien oder Reihen minus eins.
HasLegend
true, um eine Legende hinzuzufügen.
Title
Der Titeltext des Chart-Steuerelements.
CategoryTitle
Der Rubrikenachsentiteltext.
ValueTitle
Der Wertachsentiteltext
ExtraTitle
Der Reihenachsentitel für 3D-Diagramme oder der zweite Wertachsentitel für 2D-Diagramme.
29. Oktober 2010 15:29
Chart.ChartWizard(Range,-4103,2,2,1,0,0,'T1','T2','T3','T4');
29. Oktober 2010 16:05
29. Oktober 2010 16:40
CLEAR(Excel);
29. Oktober 2010 16:42
winfy hat geschrieben:Machst du nach dem Report ein?
- Code:
CLEAR(Excel);