在表动态轴上插入数据

时间:2017-01-06 00:55:56

标签: axapta dynamics-ax-2012 x++ dynamics-ax-2009

当我尝试在表格上插入一些数据时遇到问题,我从一个按钮发送所有正确的值,并且我的类会捕获所有这些值,即使在我调试时我也能看到所有值,所有它们被插入除了1之外,就像观察我在桌子上添加了那个字段之后的其他字段,有时候字段会显示一些数字,但不是我插入的数字,数字陌生人喜欢7209071而我正在尝试inser 1

这是我的按钮上的代码,我发送值:

_ClassX.MethodInsert(
    Var,   //int
    Var2,  //string
    Var3,  //string
    Var4,  //int
    Var5   //int
);
TableX_ds.research();

这是方法

public void BBP_InsertVenta(int Var1, str Var2, str Var3, int Var4, int Var5){
_TableX.FieldOnTable1=Var1;
_TableX.FieldOnTable2=Var2;
_TableX.FieldOnTable3=Var3;
_TableX.FieldOnTable4=Var4;
_TableX.FieldOnTable5=Var5; //This line is commented
_TableX.FieldOnTable6=Var5;
_TableX.insert();}

在拥有field6之前很好奇,我试着先在field5上插入但是经过几个小时的尝试后,我创建了field6,但是再次无法工作,这里有趣的事情就是当我对该字段进行注释并尝试使用field6时field5 recibe数字像7209071,但不是所有时间有时recibe空值或0

2 个答案:

答案 0 :(得分:1)

可能是因为您传递了.Net值并且没有投出。在AX方法中,您可以尝试将其更改为:

public void BBP_InsertVenta(System.Int32 _Var1, System.String _Var2, System.String _Var3, System.Int32 _Var4, System.Int32 _Var5)
{
    int Var1 = _Var1; // Cast to AX type
    str Var2 = _Var2; // Cast to AX type
    str Var3 = _Var3; // Cast to AX type
    int Var4 = _Var4; // Cast to AX type
    int Var5 = _Var5; // Cast to AX type

    // The below code looks like a snippit and we're missing something
    _TableX.FieldOnTable1=Var1;
    _TableX.FieldOnTable2=Var2;
    _TableX.FieldOnTable3=Var3;
    _TableX.FieldOnTable4=Var4;
    _TableX.FieldOnTable5=Var5; //This line is commented
    _TableX.FieldOnTable6=Var5;
    _TableX.insert();
}

答案 1 :(得分:0)

表中的字段代表什么。它们是否与扩展数据类型相关联?您传递的数据类型与表中的数据类型完全相同吗?

例如,如果字段FieldOnTable1的类型为int64,并且您将普通的int传递给它,则数据看起来会有所不同。

你为什么要从一个类做TableX_ds.research()?如果数据源中的数据发生了变化,通常会在表单中执行此操作。

这个方法是在窗体上,在按钮的click事件中,还是你写了一个类来从表单传递值?