и при необходимости приаттачиться к процессу отладчиком VisualStudio
Вот здесь http://blogs.msdn.com/b/mfp/archive/2012/06/25/the-compare-tool-and-running-x-code-as-il.aspx есть небольшое сравнительное исследование быстродействия.
public class FormRun extends ObjectRun
{
Object caller;
boolean activate;
}
void closeOk()
{
super();
caller = element.args().caller();
caller.itemRangeValue(itemIdStringEdit.text());
caller.subitemNumberValue(subitemNumberIntEdit.value());
caller.subitemGroupValue(subitemGroupStringEdit.text());
caller.subitemgoValue(subitemgoReferenceGroup.value());
if (subitemgoYesNo.checked()) {
caller.subitemgoYesNo(true);
}
caller.1stplaceValue(1stplaceReferenceGroup.value());
caller.currentplaceValue(CurrentplaceReferenceGroup.value());
caller.activateFilter(true);
caller.update();
));
}
class RdpReport extends SrsReportRunController
{
#define.ReportName('QueryBasedReport.Report')
}
protected void prePromptModifyContract()
{
this.setRanges(this.parmReportContract().parmQueryContracts().lookup(this.getFirstQueryContractKey()));
}
public static client void main(Args _args)
{ rdpReport controller = new rdpReport();
controller.parmReportName(#ReportName);
controller.parmArgs(_args);
controller.startOperation();
}
private void setRanges(Query _query)
{
real volumeRange;
Report ReportLocal;
if (this.parmArgs())
{
ReportLocal = this.parmArgs().record();
volumeRange = ReportLocal.Volume;
}
if (volumeRange)
{
SysQuery::findOrCreateRange(
_query.dataSourceTable(tableNum(Report)),
fieldNum(Report, Volume)).value(int2str(volumeRange));
}
}
<a href="/../Lists/Tasks/NewForm.aspx?ActID={$Param1}&Source=https%3A%2F%2F..Lists%2Fprojects%2FDispForm%2Easpx?ID={$Param1}">Создать задачу</a>
<script language="javascript" src="../frms/jquery-1.8.2.js" type="text/javascript"></script>
<script language="javascript" src="../frms/jquery.SPServices-0.7.2.js" type="text/javascript"></script>
<script type="text/javascript">
// This javascript sets the default value of a lookup field identified
// by <<FIELD DISPLAY NAME>> to the value stored in the querysting variable
// identified by <<QUERYSTRING VARIABLE NAME>>
// Customize this javascript by replacing <<FIELD DISPLAY NAME>> and
// <<QUERYSTRING VARIABLE NAME>> with appropriate values.
// Then just paste it into NewForm.aspx inside PlaceHolderMain
_spBodyOnLoadFunctionNames.push("fillDefaultValues");
function fillDefaultValues() {
var qs = location.search.substring(1, location.search.length);
var args = qs.split("&");
var vals = new Object();
for (var i=0; i < args.length; i++) {
var nameVal = args[i].split("=");
var temp = unescape(nameVal[1]).split('+');
nameVal[1] = temp.join(' ');
vals[nameVal[0]] = nameVal[1];
}
setLookupFromFieldName("Проект", vals["ID"]);
$('#ctl00_m_g_e74ceaaa_2dcf_4cef_af99_40f05b6563c0_ff20_1_ctl00_ctl01').closest('tr').hide(); // JQuery
}
function setLookupFromFieldName(fieldName, value) {
if (value == undefined) return;
var theSelect = getTagFromIdentifierAndTitle("select","Lookup",fieldName);
// if theSelect is null, it means that the target list has more than
// 20 items, and the Lookup is being rendered with an input element
if (theSelect == null) {
var theInput = getTagFromIdentifierAndTitle("input","",fieldName);
ShowDropdown(theInput.id); //this function is provided by SharePoint
var opt=document.getElementById(theInput.opt);
setSelectedOption(opt, value);
OptLoseFocus(opt); //this function is provided by SharePoint
} else {
setSelectedOption(theSelect, value);
}
}
function setSelectedOption(select, value) {
var opts = select.options;
var l = opts.length;
if (select == null) return;
for (var i=0; i < l; i++) {
if (opts[i].value == value) {
select.selectedIndex = i;
return true;
}
}
return false;
}
function getTagFromIdentifierAndTitle(tagName, identifier, title) {
var len = identifier.length;
var tags = document.getElementsByTagName(tagName);
for (var i=0; i < tags.length; i++) {
var tempString = tags[i].id;
if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) {
return tags[i];
}
}
return null;
}
</script>