Avatar billede trayzor Nybegynder
03. februar 2003 - 21:10 Der er 9 kommentarer og
1 løsning

Lav Graph ud fra data

Jeg skal lave en graph ud fra noget data jeg har i forvejen.

Hvordan feeder man et Graph objekt med data?
Avatar billede burningice Nybegynder
04. februar 2003 - 13:59 #1
kan du ikke bruge Crystal Reports?

ellers prøv at kig på sourcen til det her program... han genererer den report (alle de grafer) med tal fra en database.
Avatar billede trayzor Nybegynder
04. februar 2003 - 14:01 #2
hvilket program?
Avatar billede burningice Nybegynder
04. februar 2003 - 14:25 #3
Avatar billede trayzor Nybegynder
04. februar 2003 - 18:45 #4
Han tegner sine kurver med Draw og ikke igennem Graph =/
Avatar billede trayzor Nybegynder
07. februar 2003 - 09:11 #5
her er min kode so far:

using System;
using Microsoft.Office.Core;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;


namespace pptGraph
{
  class PptApp
  {
  [STAThread]
      static void Main(string[] args)
      {
            Microsoft.Office.Interop.PowerPoint.Application app = new Microsoft.Office.Interop.PowerPoint.Application();
            PowerPoint._Presentation pres = app.Presentations.Add(MsoTriState.msoTrue);
            PowerPoint.Slides objSlides = pres.Slides;
            PowerPoint._Slide objSlide;
           
            objSlide = objSlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
           
            Graph.Chart objChart = (Graph.Chart) objSlide.Shapes.AddOLEObject(150,150,480,320, 
                "MSGraph.Chart", "", MsoTriState.msoFalse, "", 0, "",
                MsoTriState.msoFalse).OLEFormat.Object;
            objChart.ChartType = Graph.XlChartType.xl3DPie;
           
            PowerPoint.Slide sld = (PowerPoint.Slide) pres.Slides._Index(1);
            MsoShapeType typ;
            for(int i=1;i<=sld.Shapes.Count;i++)
            {
                PowerPoint.Shape shp = sld.Shapes[i];
                typ = shp.Type;
                if(typ == MsoShapeType.msoEmbeddedOLEObject)
                {
                    PowerPoint.OLEFormat fmt = shp.OLEFormat;
                    string str = fmt.ProgID;
                    Console.WriteLine(str);
                    if(str == "MSGraph.Chart.8")
                    {
                        Graph.Chart chart = (Graph.Chart)fmt.Object;
                        Graph.Application gapp = (Graph.Application) chart.Application;
                        Graph.Range rng = (Graph.Range)gapp.DataSheet.Cells.get_Item(2, 1);
                        Console.WriteLine(rng.get_Value(Type.Missing).ToString());
                    }

                }
            }
        }
    }
}

Linjen:
Graph.Range rng = (Graph.Range)gapp.DataSheet.Cells.get_Item(2, 1);
forårsager en fejl:
'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll

og jeg aner ikke hvad der skal til for at løse den...
Avatar billede burningice Nybegynder
07. februar 2003 - 09:21 #6
prøv at lav en Try... Catch og udskriv din exception

try {
                        Graph.Chart chart = (Graph.Chart)fmt.Object;
                        Graph.Application gapp = (Graph.Application) chart.Application;
                        Graph.Range rng = (Graph.Range)gapp.DataSheet.Cells.get_Item(2, 1);
                        Console.WriteLine(rng.get_Value(Type.Missing).ToString());
}
catch (Expection exc) {
MessageBox.Show(exc.ToString());
}
Avatar billede trayzor Nybegynder
07. februar 2003 - 09:30 #7
Old format or invalid type library
Avatar billede trayzor Nybegynder
07. februar 2003 - 09:33 #8
System.Runtime.InteropServices.COMException (0x80028018): Old format or invalid
type library.
  at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFla
gs flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
  at Graph.Application.get_DataSheet()
  at pptGraph.PptApp.Main(String[] args) in c:\documents and settings\administr
ator\my documents\visual studio projects\pptgraph\class1.cs:line 42
Avatar billede trayzor Nybegynder
13. februar 2003 - 21:34 #9
got it....

System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");

Man skal ændre ovenstående så interop og lokale settings matcher...
Avatar billede burningice Nybegynder
13. februar 2003 - 22:47 #10
hehe... ja, der kunne en lidt mere nøjagtig fejl-meddelelse havde været dejligt ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Teamleder til AL Sydbanks GDPR & Tech Regulation i Aabenraa

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger AI forretningskonsulent i Ballerup