[Gelöst]C/Front

7. Juni 2010 17:35

Hallo,
Ich hab ein Problem mit C/Front und Nav 2009

Verwende Nav 2009 mit Classic Client und SQL Datenbank.

Ich rufe über eine Nav-Form ein C# Programm auf in dem follgende Funktion aufgerufen wird.

Code:
public void FillListBox()
        {                       
            NavisionNetType NetType;
            NavisionDriverType DriverType;
            NavisionValue Data;
            DriverType = NavisionDriverType.Sql;
            NetType = NavisionNetType.SqlDefault;                       
            CFrontDotNet.DriverType = DriverType;                       
            int CT; // Aktuelle Tabelle.
            int CR; // Aktueller Datensatz.
            String Item;           
            CFrontDotNet.NavisionPath = "C:\\Program Files (x86)\\Microsoft Dynamics NAV\\60\\Classic";                       
            CFrontDotNet.Instance.ConnectServerAndOpenDatabase("CDE00075", NetType, "Cronus2009", 2000, true, true, "", "");           
            CFrontDotNet.Instance.OpenCompany("CRONUS AG");                       
            CT = CFrontDotNet.Instance.OpenTable(50001);
            CR = CFrontDotNet.Instance.AllocRecord(CT);
            //CFrontDotNet.Instance.FindFirstRecord(CT, CR);                       
            if (CFrontDotNet.Instance.FindRecord(CT, CR, "-"))
            {
                do
                {                   
                    Item = CFrontDotNet.Instance.FieldToString(CT, CR, 1);
                    listBox1.Items.Add(Item);                   
                }
                while (CFrontDotNet.Instance.NextRecord(CT, CR, 1) !=0);
            }                     
             
            CFrontDotNet.Instance.FreeRecord(CR);
            CFrontDotNet.Instance.CloseTable(CT);
            CFrontDotNet.Instance.CloseCompany();
            CFrontDotNet.Instance.CloseDatabase();
            CFrontDotNet.Instance.DisconnectServer();                         
            CFrontDotNet.Instance.Dispose();                         
             
        }


Funktioniert auch alles soweit, nur wenn ich in Navision das Formular wieder schließe, stürzt mein kommplettes Navision ab.

Bin für jede Hilfe dankbar.

Gruß
Zuletzt geändert von smer am 8. Juni 2010 10:31, insgesamt 1-mal geändert.

Re: C/Front

8. Juni 2010 09:01

Verschärft: In NAV mittels CFRONT Daten aus NAV auslesen?

Wieso funktioniert der Weg über SQL-Views nicht? Wäre ggf. viele eleganter, da Ihr ohnehin bereits einen SQL-Server habt.

"Einfach" eine View anlegen, eine entsprechende Tabelle in Navision erzeugen, die die gleichen Feldnamen beinhaltet und deren Tabellenname mit der View identisch ist. Als ersten Versuch DataPerCompany auf False und auf jeden Fall LinkedObject auf True setzen... Wenn das Deine Anforderungen erfüllt, kann man je Mandant eine SQL-View anlegen (Name: CRONUS$ViewName anstelle von ViewName) und dann DataPerCompany auf True.

Re: C/Front

8. Juni 2010 10:31

Danke für den schnellen tipp, hab es jetzt über ne SQL-Connection und ne Abfrage gelöst.
Funktioniert super.