for å automatisk få tildelt relevante områder i Mine områder.
for å automatisk få tildelt relevante områder i Mine områder.
Hei,
Jeg sitter her hos en kunde som som bruker Mamut og vi bruker API'et (168 sider doc). Jeg har fått over headers (Orderheader), men når jeg legger inn kode for linjene (Orderline) som er angitt i bold, får jeg en NullPointerException. Er det noe jeg har glemt som jeg overser når jeg skal lese fra mamut for ordrelinje objektet?
case connectionstate.Success:
dynamic rs = oGba.executequeryADORS("SELECT " + sqltop + " [Orderid], [LinkID] FROM [Client00010004].[dbo].[G_ORDER] WHERE Orderid IN (6640)", "", "ADORS", 1);
rs.MoveFirst();
while (!rs.EOF)
{
dynamic c = new Orderheader();
mOrderHeader mC = new mOrderHeader();
c = Activator.CreateInstance(Type.GetTypeFromProgID("GBAAPI.Orderheader"));
dynamic oOrderL = new Orderline();
oOrderL = Activator.CreateInstance(Type.GetTypeFromProgID("GBAAPI.Orderline"));
c.NewInit(oGba);
string sOrderId = rs.Fields["Orderid"].Value.ToString().Trim();
string sLinkId = rs.Fields["LinkID"].Value.ToString().Trim();
int i2 = (int)c.Get(int.Parse(rs.Fields["Orderid"].Value.ToString().Trim()), int.Parse(rs.Fields["LinkID"].Value.ToString().Trim()));
if (i2 != 0)
{
mC.NoofLines = c.NoofLines is DBNull ? null : (int?)c.NoofLines;
for (int i = 0; i < mC.NoofLines; i++)
{
oOrderL = (gbaapi.Orderline)c.getline(i);
//var line = new mOrderLine()
//{
// Prodid = "",
// Qty = 0,
// Price = 0.0,
//};
//mC.Lines.Add(line);
}
// resten av kode funker, men klarer ikke å lese ordre linjene
}
}
Løst! Gå til løsning.
Hei,
Her er et eksempel. Koden er litt kortere siden man ikke trenger linkid om man har orderid.
using System.Dynamic;
...
static dynamic createInstance(string progid)
{
return Activator.CreateInstance(Type.GetTypeFromProgID(progid));
}
...
private void Salesorder_read_line_Click(object sender, EventArgs e)
{
var oGBA = createInstance("gbaapi.gba");
var conn = createInstance("gbaapi.ConnectInfo");
conn.SetConnectBasicInfo(".", "MAMUT", 1, 4);
int x = oGBA.OpenConnection(conn);
var oOrder = oGBA.createorderobject(true);
oOrder.NewInit(oGBA);
oOrder.Get(6640);
for (int i = 1; i < Convert.ToInt32(oOrder.Nooflines) + 1; i++)
{
dynamic OrderLine = Activator.CreateInstance(Type.GetTypeFromProgID("GBAAPI.Orderline"));
OrderLine = oOrder.getline(i);
MessageBox.Show(OrderLine.Prodid.ToString()+" "+OrderLine.Desc.ToString());
}
MessageBox.Show("Done!");
this.Close();
}
Karenlyst allé 56
0277 Oslo, Norge
Copyright © 2019 Visma.com. All rights reserved.