Weisswurstfr_startseite

G&S Weißwurstfrühstück
15.06.2012

Thema: MS Project Server
Weißwurstfrühstück

____________________

 

PM_Forum_Logo_2012_rgb

PM FORUM 2012
23. + 24.10.2012

Nürnberg
www.pm-forum.de

____________________

 

MS Project Schulungsprogramm

 
ECMAScript Referenz für Project Server

In diesem Beispiel wird gezeigt, wie man die "Arbeitszeittabelle" bzw. die Tabelle "meine Vogänge"

in der PWA generell sperren kann. Dazu wird ein Delegat des Grids benutzt:

     GetRecordEditMode

Dieser Delegat wird beim Rendern einer Zeile für jede Zelle der Zeile aufgerufen. Der Delegat wird auch aufgerufen,

wenn eine Zelle ausgewählt wird.

// Hier die Referenzpfade angeben

//...
var lock;

_spBodyOnLoadFunctionNames.push("Main");

function Main() {
    lock = new MyGridLock();
}

function MyGridLock() {
    var _grid;
    var _satellite;


    if (window.PJ == null || PJ.AddGridSatelliteInitializationNotifier == null) {
        return;
    }


    PJ.AddGridSatelliteInitializationNotifier
    (
        function (satellite) {
           
//Überprüfung, ob "Arbeitszeittabelle"
            if (PJ.TimesheetSatellite != null) {

                satellite = PJ._NotifySatelliteInitComplete.arguments[0];
                _satellite = satellite;

                _grid = satellite.GetJsGridControlInstance();                
               _grid.AttachEvent(SP.JsGrid.EventType.OnCellFocusChanged, CellFocusChangedTimeSheet);               
            }
           
//Überprüfung, ob "Meine Vorgänge"
            if (PJ.MyTasksSatellite != null) {

                satellite = PJ._NotifySatelliteInitComplete.arguments[0];
                _satellite = satellite;

                _grid = satellite.GetJsGridControlInstance();
               _grid.AttachEvent(SP.JsGrid.EventType.OnCellFocusChanged, CellFocusChangedMyTasks);                       
            }
        }
    );
   
    //Funktionen für "Arbeitszeittabelle"
    function CellFocusChangedTimeSheet(eventArgs) {

    //schreiben Sie hier Ihren zusätzlichen Code für die "Arbeitszeittabelle"
    //z.B. um den Inhalt der Zelle oder das Datum zu erhalten
       
        _grid.SetDelegate(SP.JsGrid.DelegateType.GetRecordEditMode, SetRecordEditMode);
    }  

    //Funktionen für "Meine Vorgänge"
    function CellFocusChangedMyTasks(eventArgs) {
       
   
//schreiben Sie hier Ihren zusätzlichen Code für "Meine Vorgänge"
    //z.B. um den Inhalt der Zelle oder das Datum zu erhalten

        _grid.SetDelegate(SP.JsGrid.DelegateType.GetRecordEditMode, SetRecordEditMode);
    } 

    //Sperre des JsGrids
    //Aufgerufen im CellFocusChanged Event
    function SetRecordEditMode(record) {
       return SP.JsGrid.EditMode.ReadOnly;
    }
}