jueves, 22 de septiembre de 2011

Abrir una pantalla en ax

 Args            args;
    FormRun         formRun;
    ;
   
    args = new Args();
    args.name(formStr(custtable));
    args.caller();
   // args.record(_buffer); //si se va a pasar un registro

    formRun = classfactory.formRunClass(args);
    formRun.init();
    formRun.run();
    formRun.wait();

miércoles, 14 de septiembre de 2011

Mostrar un objeto del aot Resource

display Bitmap myBitmap()
{
    ResourceNode    resourceNode;
    Container       nodeData;
    ;
   
    resourceNode = SysResource::getResourceNode(resourceStr(resourceobjectnameAOT));
    resourceNode.AOTload();
    nodeData = SysResource::getResourceNodeData(resourceNode);
    return nodeData;
}

martes, 6 de septiembre de 2011

Otro ejemplo mas completo que hice, estuvo complicado pero ya esta, sobre las combinaciones finacneras Ax 2012

public static DimensionDynamicAccount CrearCombinacion(DimensionDisplayValue _DimensionDisplayValue)
{

    DimensionStorage DimensionStorage;
    DimensionAttributeValue dimAttributeValue;
    DimensionStorageSegment DimensionStorageSegment;
    MainAccount MainAccount;
    recid dimHierarchyId;
    recid mainAccountRecId;
    DimensionValue _DimensionValue;

    container cont;
    int i;

    container dimensiones=["MainAccount","División","Sucursal","CentroCosto"];

    ;
    cont=str2con(_DimensionDisplayValue,"-");
     ////declarar el objecto
    DimensionStorage=DimensionStorage::construct(0,LedgerDimensionType::Account);

    for(i=1;i<=conLen(cont);i++)
    {
        try
        {
                 _DimensionValue=conPeek(cont,i);


                 if(i==1)
                 {
                        dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValueNoError(
                        DimensionAttribute::findByName(conPeek(dimensiones,i)),
                        _DimensionValue,
                        false,
                        true);

                        mainAccountRecId= DimensionAttributeValue::find(dimAttributeValue.RecId).EntityInstance;
                        dimHierarchyId = DimensionHierarchy::getAccountStructure(mainAccountRecId);
                        DimensionStorage.addHierarchy(dimHierarchyId);

                        DimensionStorageSegment=DimensionStorageSegment::constructFromValue(dimAttributeValue.CachedDisplayValue,dimAttributeValue);
                        DimensionStorage.setSegment(i,DimensionStorageSegment);
                 }
                 else
                 {
                     if(_DimensionValue!="")
                     {
                        dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValueNoError(
                        DimensionAttribute::findByName(conPeek(dimensiones,i)),
                        _DimensionValue,
                        false,
                        true);

                        DimensionStorageSegment=DimensionStorageSegment::constructFromValue(dimAttributeValue.CachedDisplayValue,dimAttributeValue);
                        DimensionStorage.setSegment(i,DimensionStorageSegment);
                     }
                     else
                     {
                          DimensionStorageSegment=DimensionStorageSegment::emptySegment();
                          DimensionStorage.setSegment(i,DimensionStorageSegment);
                     }

                 }

        }
        catch
        {
            return 0;
        }
    }


   return DimensionStorage.save();


}

lunes, 5 de septiembre de 2011

Pequeño ejemplo de sacar el recid de la combinacion de las dimenciones fincancieras AX 2012

DimensionStorage DimensionStorage;
    DimensionAttributeValue dimAttributeValue;
    DimensionStorageSegment DimensionStorageSegment;
    ;
   
    DimensionStorage=DimensionStorage::construct(0,LedgerDimensionType::Account);
   
    //DimensionAttributeValue::findByDimensionAttributeAndValueNoError(
   
     dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValueNoError(
                DimensionAttribute::find(5637144840),
                "180300",
                false,
                true);
    DimensionStorage.addHierarchy(DimensionHierarchy::find(5637146169).RecId);
   
    DimensionStorageSegment=DimensionStorageSegment::constructFromValue(dimAttributeValue.CachedDisplayValue,dimAttributeValue);  
    DimensionStorage.setSegment(1,DimensionStorageSegment);
   
    info(int642str(DimensionStorage.save()));

jueves, 4 de agosto de 2011

Recorrer los registros seleccionados de un grid

static server void RegorrerGrid(FormDataSource _fds_custtable)
{
    custtable buffer2;
;
for(buffer2 = _fds_custtable.getFirst(true) ? _fds_custtable.getFirst(true) : _fds_custtable.cursor();
    buffer2;
    buffer2 = _fds_custtable.getnext())
    {
        info(buffer2.AccountNum);
    }
}

miércoles, 3 de agosto de 2011

Crear Calidades en una ruta y abrir su respectiva pantalla ax 2009

void crear_calidad(ProdJournalRoute ProdJournalRoute )
{
InventQualityOrderTable InventQualityOrderTable;
 ProdTable ProdTable;
 //ProdJournalRoute ProdJournalRoute;
  FormDataSource fds;
  NumberSequenceCode NumberSequenceCode;
  NumberSeq NumberSeq;
  TubOperPruebas TubOperPruebas;
NumberSeqFormHandler NumberSeqFormHandler;//=NumberSeqFormHandler::construct();
Args args;
FormRun formRun;

        ;

       ttsbegin;
       NumberSeq=NumberSeq::newGetNum( NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(InventQualityOrderId))));

       ProdTable=ProdJournalRoute.prodTable();
       InventQualityOrderTable.initValue();
       InventQualityOrderTable.initFromProdTable(ProdTable);
       InventQualityOrderTable.initFromReferenceBuffer(ProdJournalRoute.prodRoute());

       InventQualityOrderTable.QualityOrderId=NumberSeq.num();
       InventQualityOrderTable.Qty=ProdJournalRoute.QtyGood;
        TubOperPruebas =TubOperPruebas::find(InventQualityOrderTable.RouteOprId);
        if(!TubOperPruebas)
        {
         throw(InventQualityOrderTable.RouteOprId+" no encuentra grupo de test");
        }
       InventQualityOrderTable.TestGroupId=TubOperPruebas.TestGroupId;
       InventQualityOrderTable.insert();


       ttscommit;


       /////////////////////abrir pantalla/////////////7
        args = new Args();
        args.name(formStr("InventQualityOrderTable")); //form SysBoxForm is used to show the message
        formRun = classFactory.formRunClass(args); //creating a FormRun object
        args.record(InventQualityOrderTable); // as argument is optional

        formRun.init();
        formRun.run();
        formRun.wait(); //waiting for user action
       ///////////////////////////////////////

}

martes, 2 de agosto de 2011

Registrar Diario Contable

server static void registrar_pago_cobranza(journalId id_jou)
{

           LedgerJournalCheckPost LedgerJCP;
      ;

            LedgerJCP = LedgerJournalCheckPost::newLedgerJournalTable(LedgerJournalTable::find(id_jou),NoYes::Yes,NoYes::Yes);
            LedgerJCP.run();

 }