Friday, March 10, 2017

MARK AND UNMARK DYNAMICS TREE NODE CHECK BOX (IF NO CHECK BOX IS MARK THEN TAKE TWO CLICK TO MARK FIRST CHECK BOX AND THEN ONE CLICK ON EACH NODE TO MARK CHECK AND REFRSH GRID.IF NO CHECKBOX THEN JUST REFRESH RESPECTIVE GRID) AND SET/REMOVE TREE NODE IDX TO TMP TABLE

MARK AND UNMARK DYNAMICS TREE NODE CHECK BOX (IF NO CHECK BOX IS MARK THEN TAKE TWO CLICK TO MARK FIRST CHECK BOX AND THEN ONE CLICK ON EACH NODE TO MARK CHECK AND REFRSH GRID.IF NO CHECKBOX THEN JUST REFRESH RESPECTIVE GRID) AND SET/REMOVE TREE NODE IDX TO TMP TABLE

public class FormRun extends ObjectRun
{
TreeSearchingTmp      setTreeSearchItemID;
}
public int mouseDown(int _x, int _y, int _button, boolean _Ctrl, boolean _Shift)
{
    ImageRes     stateImage;
    int idx,f;
    int ret;

    FormTreeItem formTreeItem ;//= PlanningObjectClinicsTree.getItem(PlanningObjectClinicsTree.getSelection());
    FormTreeItem        parentNode;
     #FormTreeControl
    [idx,f]      = this.hitTest(_x,_y);

    FormTreeItem = this.getItem(idx);
    ret = super(_x, _y, _button, _Ctrl, _Shift);
    select *from setTreeSearchItemID;
    if(!setTreeSearchItemID)
    {
        if(element.getNode()==idx)
        {
            if (FormTreeItem)

            {
                switch(formTreeItem.stateImage())
                {
                        case imageListAppl_checkbox.image(#ImageCheckNone):
                            stateImage = imageListAppl_checkbox.image(#ImageCheckAll);
                            formTreeItem.stateImage(stateImage);
                            this.setItem(formTreeItem);
                            element.setTreeSearchItemID(idx,formTreeItem.data());
                            break;
                        case imageListAppl_checkbox.image(#ImageCheckAll):
                            stateImage = imageListAppl_checkbox.image(#ImageCheckNone);
                            formTreeItem.stateImage(stateImage);
                            this.setItem(formTreeItem);
                            element.removePlanningOjectTreeSearch(idx);
                            break;
                }

                element.refreshGrid();
                element.resetControls();
            }
        }
        else if(!setTreeSearchItemID )
        {
            {
                RefreshResourceGroupTree = false;
                element.setnode(idx);
            }

        }
        else
        {
            RefreshResourceGroupTree = false;
            element.setnode(idx);
        }
    }
    else
    {

        if(setTreeSearchItemID)
        {
            if (FormTreeItem)

                {
                    switch(formTreeItem.stateImage())
                    {
                            case imageListAppl_checkbox.image(#ImageCheckNone):
                                stateImage = imageListAppl_checkbox.image(#ImageCheckAll);
                                formTreeItem.stateImage(stateImage);
                                this.setItem(formTreeItem);
                                element.setTreeSearchItemID(idx,formTreeItem.data());
                                break;
                            case imageListAppl_checkbox.image(#ImageCheckAll):
                                stateImage = imageListAppl_checkbox.image(#ImageCheckNone);
                                formTreeItem.stateImage(stateImage);
                                this.setItem(formTreeItem);
                                element.removePlanningOjectTreeSearch(idx);
                                break;
                    }

                    element.refreshGrid();
                    element.resetControls();
                }
        }

    }
    return ret;
}
Public void removePlanningOjectTreeSearch(int _idx)
{

    while select *from setTreeSearchItemID where setTreeSearchItemID.ItemIdx == _idx
    {
        setTreeSearchItemID.delete();

    }
}
public HMTreeSearchingTmp setTreeSearchItemID(int64 idx = 0 ,Description _data ='')
{

    if(idx)
    {
        setTreeSearchItemID.ItemIdx= idx;
        setTreeSearchItemID.Description = _data;
        setTreeSearchItemID.insert();
        return setTreeSearchItemID;
    }
    else
    {
        return setTreeSearchItemID;
    }



}


mark/unmark checkbox Dynamics ax tree node on click




mark/unmark checkbox Dynamics ax tree node on click



public int mouseDown(int _x, int _y, int _button, boolean _Ctrl, boolean _Shift)
{
    ImageRes     stateImage;
    int idx,f;
    int ret;

    FormTreeItem formTreeItem ;
    FormTreeItem        parentNode;
     #FormTreeControl
    [idx,f]      = this.hitTest(_x,_y);

    FormTreeItem = this.getItem(idx);
    ret = super(_x, _y, _button, _Ctrl, _Shift);
    if (FormTreeItem)

    {
      switch(formTreeItem.stateImage())
     {
        case imageListAppl_checkbox.image(#ImageCheckNone):
        stateImage = imageListAppl_checkbox.image(#ImageCheckAll);
        formTreeItem.stateImage(stateImage);
        this.setItem(formTreeItem);
       
         break;
        case imageListAppl_checkbox.image(#ImageCheckAll):
        stateImage = imageListAppl_checkbox.image(#ImageCheckNone);
        formTreeItem.stateImage(stateImage);
        this.setItem(formTreeItem);
        
        break;
      }
   }
   Return ret;

}

iterate all tree nodes and set check box Dynamics Ax 2012

Public void setCheckbox()
{
    TreeItemIdx                         treeItemIdxOU,treeItemIdxChild;
    FormTreeItem                        formTreeItem,selectedTreeItem;
    Map en = new Map(Types::Integer,Types::Int64) ;
    MapEnumerator   me;
    int childcount=1;
    ImageRes     stateImage;
    ListEnumerator listEnumrOU, listEnumr;
    imageListAppl_checkbox = new ImageListAppl_checkbox();



    treeItemIdxOU = ResourceGroupTree.getChild(ResourceGroupTree.getRoot());
    en.insert(childcount,treeItemIdxOU);
    while (treeItemIdxOU)
    {
       if(ResourceGroupTree.getNextSibling(treeItemIdxOU))
        {
           childcount++;
           treeItemIdxOU =  ResourceGroupTree.getNextSibling(treeItemIdxOU);
           en.insert(childcount, treeItemIdxOU);
        }
        else
        {
            break;
        }
    }
    me = en.getEnumerator();
    while(me.moveNext())
    {
        if(ResourceGroupTree.getChild(me.currentValue()))
        {
            treeItemIdxChild = ResourceGroupTree.getChild(me.currentValue());
            ResourceGroupTree.setStateImagelist(imageListAppl_checkbox.imageList());
            formTreeItem = ResourceGroupTree.getItem(treeItemIdxChild);
            stateImage = imageListAppl_checkbox.image(#ImageCheckNone);
            formTreeItem.stateImage(stateImage);
            ResourceGroupTree.setItem(formTreeItem);
            
        }
        while(treeItemIdxChild)
        {
            if(ResourceGroupTree.getNextSibling(treeItemIdxChild))
            {
                treeItemIdxChild = ResourceGroupTree.getNextSibling(treeItemIdxChild);
                ResourceGroupTree.setStateImagelist(imageListAppl_checkbox.imageList());
                formTreeItem = ResourceGroupTree.getItem(treeItemIdxChild);
                stateImage = imageListAppl_checkbox.image(#ImageCheckNone);
                formTreeItem.stateImage(stateImage);
                ResourceGroupTree.setItem(formTreeItem);
               
            }
            else
            {
                break;
            }
        }
       // me.moveNext();

    }
}


pass args/table to class main method using action menuitem button

  • create new class 


class newclass
{

}
public static void main(Args _args)
{
     #Task
    FormDataSource fds;
    FormRun        formrun=_args.caller();
    Str      Postion;   
  fds = _args.record().dataSource();
try
    {

        ttsBegin;

        for (smmActivities = fds.getFirst(true) ? fds.getFirst(true) : fds.cursor(); smmActivities; smmActivities = fds.getNext())
        {
            smmActivitiesUpdate = smmActivities::find(smmActivities.ActivityNumber, true);
            if(smmactivitiesUpdate.EnumYesnoField == NoYes::Yes)// check if field is already yes then throw warning
            {
                ttsAbort;
                ret = false;
                throw warning("already yes");
            }
            else
            {
                Position = smmActivitiesUpdate.ActivityNumber;
                smmactivitiesUpdate.EnumYesnoField =NoYes::Yes;
                smmactivitiesUpdate.update();
            }
        }
        ttsCommit;
        ret = true;
        if(formrun)
        {
            formrun.task(#taskF5);
            fds.findRecord(smmActivities::find(Position));
        }

    }
    catch
    {
        ret = false;
    }


  •  Add action menu item to form 
  • set data source to smmActivities 


D365FO. Dynamics 365 fiance and operation. Get and update contract of batch job on Controller run method. ax 2012

set Batch id in contract if batch isInBatch check is true in run method we will update the contract and set the batch id. class BrFunc...