|
Class SysTableBrowser
public void
run(tableId tableId,common tmpBuffer = null)
|
||||||||||
|
public void
run(tableId tableId)
|
||||||||||
|
{
Form tableBrowser;
Object formRun;
|
||||||||||
|
formRun fr;
|
||||||||||
|
FormBuildDesign formBuildDesign;
|
||||||||||
|
FormDataSource fds;
|
||||||||||
|
FormBuildDataSource formBuildDataSource;
FormBuildGridControl formBuildGridControl1;
FormBuildGridControl formBuildGridControl2;
FormGridControl formGridControl;
FormRadioControl formRadioControl;
DictTable dictTable;
Args args;
Args browserArgs;
int idx;
boolean hasAutoReportGroup;
;
dictTable = new DictTable(tableId);
//If the table is abstract, don't allow
creates in SysTableBrowser.
if(dictTable.isAbstract())
{
allowCreate = false;
}
browserArgs = new Args();
browserArgs.name(formstr(SysTableBrowser));
formRun =
classfactory.formRunClass(browserArgs);
|
||||||||||
|
|
||||||||||
|
tableBrowser = formRun.form();
|
||||||||||
|
formBuildDataSource =
tableBrowser.dataSource(1);
formBuildDataSource.name(dictTable.name());
formBuildDataSource.table(tableId);
formBuildDataSource.autoQuery(true);
formBuildDataSource.linkType(0);
formBuildDataSource.allowCreate(allowCreate);
formBuildDataSource.allowDelete(allowDelete);
formBuildDataSource.allowEdit(allowEdit);
formBuildDataSource.validTimeStateAutoQuery(ValidTimeStateAutoQuery::DateRange);
formBuildDataSource.validTimeStateUpdate(ValidTimeStateUpdate::Correction);
if (defaultIndexId)
{
formBuildDataSource.index(defaultIndexId);
}
formBuildDesign = tableBrowser.design();
formBuildDesign.caption("@SYS54191"
+ ': ' + dictTable.name());
formBuildDesign.widthMode(-1);
formBuildDesign.widthValue(#FormWidth);
formBuildDesign.heightMode(-1);
formBuildDesign.heightValue(#FormHeight);
formBuildGridControl1 = formBuildDesign.control('allFieldsGrid');
formBuildGridControl1.dataSource(dictTable.name());
formBuildGridControl1.allowEdit(allowEdit);
idx = formBuildGridControl1.id();
this.showAllFields(tableId,
formBuildGridControl1, formBuildDataSource);
formBuildGridControl2 =
formBuildDesign.control('autoReportGrid');
formBuildGridControl2.dataSource(dictTable.name());
formBuildGridControl2.allowEdit(allowEdit);
formBuildGridControl2.visible(false);
hasAutoReportGroup = this.showAutoFields(tableId,
formBuildGridControl2, formBuildDataSource);
args = new Args();
args.object(tableBrowser);
formRun =
classfactory.formRunClass(args);
|
||||||||||
|
|
||||||||||
|
formRun.enableCountryRegion(false);
|
||||||||||
|
if (tmpBuffer)
{
formRun.parmTmpData(tmpBuffer);
}
|
||||||||||
|
formRun.init();
formRun.parmTableId(tableId);
|
||||||||||
|
formRun.run();
|
||||||||||
|
fr=formRun;
fds=fr.dataSource(dictTable.name());
fds.executeQuery();
|
||||||||||
|
formRadioControl =
formRun.getRadioControl();
formRadioControl.visible(hasAutoReportGroup);
formGridControl = formRun.control(idx);
formGridControl.setFocus();
// This call is here as a hack fix
(AXSE:4564 or AX6:18807) for performance issue around Table Browser
// loading time, and should be removed
once a proper fix is in place.
formGridControl.autoSizeColumns(false);
formRun.detach();
}
form SysTableBrowser
//agregar
private void parmTmpData(common
tmpBuffer)
{
;
_tmpBuffer=tmpBuffer;
//modificar
///ejecutar
new SysTableBrowser().run(CommonBuffer.TableId, CommonBuffer);
|
jueves, 10 de enero de 2013
Utilizar SysTableBrowser para tablas temporales
jueves, 8 de noviembre de 2012
Crear referencias de secuencias numericas
/////////////////////////////////////////////////////7calse NumberSeqModuleEscenarios
public class NumberSeqModuleEscenarios extends NumberSeqApplicationModule
{
}
protected void loadModule() //sobreescribir
{
NumberSeqDatatype datatype = NumberSeqDatatype::construct();
;
/* Setup application numbers */
datatype.parmDatatypeId(extendedtypenum(ProdOptEscenario));//crear previamente el extend
datatype.parmReferenceHelp(literalstr("Sequencia para los escenarios"));
datatype.parmWizardIsContinuous(true);
datatype.parmWizardIsManual(NoYes::No);
datatype.parmWizardIsChangeDownAllowed(NoYes::No);
datatype.parmWizardIsChangeUpAllowed(NoYes::No);
datatype.parmWizardHighest(999999);
datatype.parmSortField(1);
datatype.addParameterType(NumberSeqParameterType::DataArea, true, false);
this.create(datatype);
}
public NumberSeqModule numberSeqModule() //sobreescribir
{
return NumberSeqModule::Prod;
}
//////////////////////////////////////////////////////////////////////7termina clase NumberSeqModuleEscenarios
///////////////////agregar la referencia
static void CrearSequencia(Args _args)///job
{
GsNumberSeqModuleEscenarios obj = new GsNumberSeqModuleEscenarios();
obj.createReferencesForScope();
obj.load();
}
///////////////////////////////////////////////////
static void GsTestSequencia(Args _args)
{
; NumberSeq::newGetNum(NumberSeqReference::findReference(extendedTypeNum(ProdOptEscenario)),true).num();
}
////////////////////////////
public class NumberSeqModuleEscenarios extends NumberSeqApplicationModule
{
}
protected void loadModule() //sobreescribir
{
NumberSeqDatatype datatype = NumberSeqDatatype::construct();
;
/* Setup application numbers */
datatype.parmDatatypeId(extendedtypenum(ProdOptEscenario));//crear previamente el extend
datatype.parmReferenceHelp(literalstr("Sequencia para los escenarios"));
datatype.parmWizardIsContinuous(true);
datatype.parmWizardIsManual(NoYes::No);
datatype.parmWizardIsChangeDownAllowed(NoYes::No);
datatype.parmWizardIsChangeUpAllowed(NoYes::No);
datatype.parmWizardHighest(999999);
datatype.parmSortField(1);
datatype.addParameterType(NumberSeqParameterType::DataArea, true, false);
this.create(datatype);
}
public NumberSeqModule numberSeqModule() //sobreescribir
{
return NumberSeqModule::Prod;
}
//////////////////////////////////////////////////////////////////////7termina clase NumberSeqModuleEscenarios
///////////////////agregar la referencia
static void CrearSequencia(Args _args)///job
{
GsNumberSeqModuleEscenarios obj = new GsNumberSeqModuleEscenarios();
obj.createReferencesForScope();
obj.load();
}
///////////////////////////////////////////////////
static void GsTestSequencia(Args _args)
{
; NumberSeq::newGetNum(NumberSeqReference::findReference(extendedTypeNum(ProdOptEscenario)),true).num();
}
////////////////////////////
martes, 9 de octubre de 2012
FASTFIRSTROW" is not a recognized table hints option
para arreglar este error utilice
en el Microsoft Dynamics AX 2012 Management Shell
poner axutil.exe schema /config:standard
en el Microsoft Dynamics AX 2012 Management Shell
poner axutil.exe schema /config:standard
martes, 17 de julio de 2012
Leer un CSV Dynamics AX 2012 Con ADO
static void Job57(Args _args)
{
System.Data.Common.DbConnection connection;
System.Data.Common.DbCommand command;
System.Data.SqlClient.SqlDataReader dataReader;
System.Data.Common.DbProviderFactory factory=System.Data.Common.DbProviderFactories::GetFactory("System.Data.OleDb");
int contar;
;
new InteropPermission( InteropKind::ClrInterop ).assert();
connection=factory.CreateConnection();
connection.set_ConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\AbinsaCobranza\\;Extended Properties=\"text;HDR=Yes;FMT=Delimited\"");
command=factory.CreateCommand();
command.set_CommandText("select * from BANREGIO.csv");
command.set_Connection(connection);
//executing SQL-query
try
{
//open within catch, so that the object can correcly be disposed
//all these try-catch are quite ennoying in X++, but this because
//X++ does not know finally...
connection.Open();
try
{
//All code after the open must be in a seperate catch, so that the
//open connection-object can correcly be disposed.
dataReader = command.ExecuteReader();
while(dataReader.Read())
{
if(contar>=10)
{
// contar=dataReader.get_FieldCount();
//use the named columns instead of index.
info(int2str(contar));
print dataReader.get_Item(6);
pause;
}
contar++;
}
//Dispose ADO.Net objects ASAP
dataReader.Dispose();
}
catch //should be more precise in a real-world application
{
//if exception occures while reading, DataReader need to be
info(CLRInterop::getLastException().ToString());
dataReader.Dispose();
}
catch(Exception::CLRError) //CLR exception need to be handled explicitely
//otherwise they might be 'lost'. Happy copy&pasteing
{
//if exception occures while reading, DataReader need to be
info(CLRInterop::getLastException().ToString());
dataReader.Dispose();
}
connection.Dispose();
}
catch //should be more precise in a real-world application
{
info(CLRInterop::getLastException().ToString());
connection.Dispose(); //disposing connection if it fails before opening it
}
catch(Exception::CLRError)
{
info(CLRInterop::getLastException().ToString());
connection.Dispose();
}
command.Dispose();
CodeAccessPermission::revertAssert();
}
lunes, 9 de julio de 2012
Crear Cliente AX 2012
CustCustomerService CustCustomerService;
CustCustomer CustCustomer;
//CustCustomer_DirParty CustCustomer_DirParty;
CustCustomer_DirParty_DirOrganization dirOrg;
CustCustomer_DirPartyPostalAddressView CustCustomer_DirPartyPostalAddressView;
CustCustomer_DirPartyContactInfoView CustCustomer_DirPartyContactInfoView;
CustCustomer_CustTable CustCustomer_CustTable;
;
////////////////////////////////////////////////////////////////7
CustCustomerService= CustCustomerService::construct();
CustCustomer=new CustCustomer();
CustCustomer_CustTable=new CustCustomer_CustTable();
dirOrg = new CustCustomer_DirParty_DirOrganization();
////////////////////////////////////////////////////////////////////////7
CustCustomer_CustTable.parmAccountNum("0027");
CustCustomer_CustTable.parmCustGroup("Empleados");
CustCustomer_CustTable.parmGsCueCobClaveReferenciada("1234512333");
CustCustomer_CustTable.parmTaxGroup("IVA 16");
//CustCustomer_DirParty=new CustCustomer_DirParty();
// CustCustomer_CustTable.parmAccountNum("prue1");
dirOrg.parmName("MyCustomerName_OrgName");
dirOrg.parmLanguageId("es-mx");
CustCustomer_CustTable.createDirParty().add(dirOrg);
CustCustomer_DirPartyPostalAddressView=dirOrg.createDirPartyPostalAddressView().addNew();
CustCustomer_DirPartyPostalAddressView.parmStreet("De la villa");
CustCustomer_DirPartyPostalAddressView.parmCountryRegionId("Mex");
CustCustomer_DirPartyPostalAddressView.parmRoles("Business");
CustCustomer_DirPartyContactInfoView=dirOrg.createDirPartyContactInfoView().addNew();
CustCustomer_DirPartyContactInfoView.parmLocationName("Telefono");
CustCustomer_DirPartyContactInfoView.parmLocator("000000000");
CustCustomer_DirPartyContactInfoView.parmType(LogisticsElectronicAddressMethodType::Phone);
CustCustomer_DirPartyContactInfoView.parmRoles("Business");
CustCustomer.createCustTable().add(CustCustomer_CustTable);
CustCustomerService.create(CustCustomer);
}
Suscribirse a:
Entradas (Atom)
