For Form:
SysQuery::findOrCreateRange(B_RMAOutTable_DS.query().dataSourceTable(tablenum(B_RMAOutTable)), fieldnum(B_RMAOutTable,RMAIn)).
value(QueryValue(NoYes::Yes));
For Report:
SysQuery::findOrCreateRange(this.query().dataSourceTable(tablenum(SMAServiceOrderTable)),
fieldnum(SMAServiceOrderTable,ItemSerialNum)).
value(sysquery::valueNotEmptyString());
Run methoduna super'den önce yazabilirsiniz.
You may add this code to before run method's super() call.
29 Kasım 2012 Perşembe
27 Kasım 2012 Salı
If and like
In axapta like operator can use with if command like sql - select command :
if (ItemId like "WX*")
if (ItemId like "WX*")
5 Kasım 2012 Pazartesi
AXAPTA - Excel Import
void clicked()
{
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
COMVariantType type;
int row;
str line;
Filename Filename;
;
super();
Filename = WinApi::getOpenFileName(element.hWnd(),['XLS files','*.xls'],"","Filename");
if (!Filename)
return;
application = SysExcelApplication::construct();
workbooks = application.workbooks();
try
{
workbooks.open(filename,0,true);
}
catch (Exception::Error)
{
throw error(strfmt("File cannot open: %1",Filename));
}
element.lock();
workbook = workbooks.item(1);
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1);
cells = worksheet.cells();
do
{
row++;
type = cells.item(row+1,1).value().variantType();
switch(cells.item(row,1).value().variantType())
{
case COMVariantType::VT_BSTR:
line = cells.item(row,1).value().bStr();
break;
case COMVariantType::VT_DECIMAL, COMVariantType::VT_R4, COMVariantType::VT_R8:
line = strfmt("%1",any2int(cells.item(row,1).value().double()));
break;
case COMVariantType::VT_I1, COMVariantType::VT_I2, COMVariantType::VT_I4:
line = strfmt("%1",cells.item(row,1).value().int());
break;
case COMVariantType::VT_UI1, COMVariantType::VT_UI2, COMVariantType::VT_UI4:
line = strfmt("%1",cells.item(row,1).value().uLong());
break;
case (COMVariantType::VT_DATE):
line = date2str(cells.item(row,1).value().date(),123,2,1,2,1,4);
case COMVariantType::VT_EMPTY:
line ="";
break;
default:
line="";
}
if (Line != "")
element.insertSerial(line);
}
while (type != COMVariantType::VT_EMPTY);
application.quit();
element.unLock();
}
{
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
COMVariantType type;
int row;
str line;
Filename Filename;
;
super();
Filename = WinApi::getOpenFileName(element.hWnd(),['XLS files','*.xls'],"","Filename");
if (!Filename)
return;
application = SysExcelApplication::construct();
workbooks = application.workbooks();
try
{
workbooks.open(filename,0,true);
}
catch (Exception::Error)
{
throw error(strfmt("File cannot open: %1",Filename));
}
element.lock();
workbook = workbooks.item(1);
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1);
cells = worksheet.cells();
do
{
row++;
type = cells.item(row+1,1).value().variantType();
switch(cells.item(row,1).value().variantType())
{
case COMVariantType::VT_BSTR:
line = cells.item(row,1).value().bStr();
break;
case COMVariantType::VT_DECIMAL, COMVariantType::VT_R4, COMVariantType::VT_R8:
line = strfmt("%1",any2int(cells.item(row,1).value().double()));
break;
case COMVariantType::VT_I1, COMVariantType::VT_I2, COMVariantType::VT_I4:
line = strfmt("%1",cells.item(row,1).value().int());
break;
case COMVariantType::VT_UI1, COMVariantType::VT_UI2, COMVariantType::VT_UI4:
line = strfmt("%1",cells.item(row,1).value().uLong());
break;
case (COMVariantType::VT_DATE):
line = date2str(cells.item(row,1).value().date(),123,2,1,2,1,4);
case COMVariantType::VT_EMPTY:
line ="";
break;
default:
line="";
}
if (Line != "")
element.insertSerial(line);
}
while (type != COMVariantType::VT_EMPTY);
application.quit();
element.unLock();
}
15 Ekim 2012 Pazartesi
AXAPTA - clear client cache
Sometimes your new codes don't update at client side even you reset client computer. In this case this code part may help you:
xSession::removeAOC();
SysTreeNode::refreshAll();
SysFlushDictionary::doFlush();
SysFlushAOD::doFlush();
xSession::updateAOC();
xSession::removeAOC();
SysTreeNode::refreshAll();
SysFlushDictionary::doFlush();
SysFlushAOD::doFlush();
xSession::updateAOC();
9 Ekim 2012 Salı
AXAPTA - Empty compound statement warning
Axapta generates this warning when compiling. To avoid this warning empty blocks may be remove. But when issue Try/Catch block you can't do this. Well, what do you do?
I found this function from a blog, it does nothing except supress warning.
catch (Exception::Error)
{
exceptionTextFallThrough();
}
I found this function from a blog, it does nothing except supress warning.
8 Ekim 2012 Pazartesi
AXAPTA client and server current datetime values
I published datetime value for just client before. Today's values for client and server:
warning(strfmt("Client datetime value: %1",DatetimeUtil::getSystemDateTime()));
warning(strfmt("Server datetime value: %1",DatetimeUtil::utcNow()));
warning(strfmt("Client datetime value: %1",DatetimeUtil::getSystemDateTime()));
warning(strfmt("Server datetime value: %1",DatetimeUtil::utcNow()));
12 Eylül 2012 Çarşamba
AXAPTA - X++ If and blocks
This code part below has mistake?
if (_ServiceShipment == B_SMAServiceShipment::B_Hand)
{
if (!Personels.WithHand)
continue;
}
if (_ServiceShipment == B_SMAServiceShipment::B_Hand)
if (!Personels.WithHand)
continue;
I was thinking not. Because I thought second if with continue should be consider as one command. But it seem not. Requires paranthesis:if (!Personels.WithHand)
continue;
if (_ServiceShipment == B_SMAServiceShipment::B_Hand)
{
if (!Personels.WithHand)
continue;
}
4 Haziran 2012 Pazartesi
Hide lookup button for a form control
Hide lookup button for a form control:
DSerial.lookupButton(FormLookupButton::Never);
DSerial.lookupButton(FormLookupButton::Never);
20 Nisan 2012 Cuma
AXAPTA - Using common DLL
Put your DLL file at Client\Bin at Axapta folder under Program Files. That folder's name is :
C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\
at my PC.
Set parameters with extTypes enum at Arg method. Sample usage:
}
C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\
at my PC.
Set parameters with extTypes enum at Arg method. Sample usage:
void Test()
{
DLL testDll;
DLLFunction test;
;
testDll = new DLL("MyTestDLL.dll");
test = new DLLFunction(printDLL, "MyTestingMethod");
test.arg(extTypes::Word ,extTypes::String);
test.call(12345,"ABCDE");{
DLL testDll;
DLLFunction test;
;
testDll = new DLL("MyTestDLL.dll");
test = new DLLFunction(printDLL, "MyTestingMethod");
test.arg(extTypes::Word ,extTypes::String);
}
6 Nisan 2012 Cuma
AXAPTA - ascii character and string length
mylen = StrLen("my string...");
my_first_chr = num2char(65);
my_first_chr = num2char(65);
AXAPTA - Declare global function
Add your static method at AOT->classes->Global:
public static void Test()
{
;
info("my global function");
}
***
static void TestMyGlobalFunction(Args _args)
{
;
test();
}
public static void Test()
{
;
info("my global function");
}
***
static void TestMyGlobalFunction(Args _args)
{
;
test();
}
AXAPTA - Trimming a string
static void Job47(Args _args)
{
str a;
;
a=StrRtrim("fdssf ");
a=StrLtrim(" fdssf");
}
{
str a;
;
a=StrRtrim("fdssf ");
a=StrLtrim(" fdssf");
}
7 Şubat 2012 Salı
AXAPTA Write a message and return false at validate
This can be do with Checkfailed in one line instead of two lines:
if (b_SerialTrans.RefType !=B_SerialRefType::ServiceObjectRelation)
return checkFailed("Record cannot be delete!..");
if (b_SerialTrans.RefType !=B_SerialRefType::ServiceObjectRelation)
return checkFailed("Record cannot be delete!..");
Kaydol:
Kayıtlar (Atom)