2009年9月 のアーカイブ

[moss]infopathでgetListItemsをつかってみた

[moss]infopathでgetListItemsをつかってみたをはてなブックマークに追加 [moss]infopathでgetListItemsをつかってみたをdel.icio.usに追加 Yahoo!ブックマークに登録 [moss]infopathでgetListItemsをつかってみたをGoogle Bookmarksに追加

2009年9月30日 水曜日
infopathでgetListItemsつかってみた。infopathのデータ接続だと、クエリのxmlをhtmlエンコードしてしまうようで上手くつかえません。ので、直接jscriptで実装する事にしました。実装そのものは取り立てて特別な事をしていませんが、xslをセカンダリにロードしてマッピングするところがポイントです。

まず、infopathのコントローラの繰り返しテーブルを使って、ルートからmyField,myGroup1,myGroup2、さらにTitle,Created,Authorを用意して表組にします。で、getListItemsで取れたows_Title,ows_Created,ows_Authorアトリビュートをxslでマッピングするという仕組みです。

infopathのほうで表組が済んだら、セカンダリに以下のstlyleSheet.xslをロードしておきます。このxslには、getListItemsのレスポンスのxmlnsも書いておく必要があります。(例:xmlns:soap 等 )

styleSheet.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2009-09-30T00:14:38" xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:moss="http://schemas.microsoft.com/sharepoint/soap/" xmlns:rs='urn:schemas-microsoft-com:rowset' xmlns:z='#RowsetSchema' version="1.0">
<xsl:template match="/soap:Envelope">
<my:myGroup1>
<xsl:apply-templates select="soap:Body/moss:GetListItemsResponse/moss:GetListItemsResult/moss:listitems/rs:data/z:row"/>
</my:myGroup1>
</xsl:template>
<xsl:template match="z:row">
<my:myGroup2>
<my:Title><xsl:value-of select="@ows_Title"/></my:Title>
<my:Created><xsl:value-of select="@ows_Created"/></my:Created>
<my:Author><xsl:value-of select="@ows_Author"/></my:Author>
</my:myGroup2>
</xsl:template>
</xsl:stylesheet>

jscript

XDocument.DOM.setProperty("SelectionNamespaces", 'xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2009-09-30T00:14:38"');
var xmlHttpInst = null;
function getListItems()
{
try {
xmlHttpInst = new ActiveXObject( "Microsoft.XMLHTTP" );
if( xmlHttpInst ){
xmlHttpInst.open( "POST", "http://moss/_vti_bin/Lists.asmx", false );
xmlHttpInst.setRequestHeader( 'Content-Type','text/xml; charset=utf-8' );
xmlHttpInst.setRequestHeader( 'SOAPAction', 'http://schemas.microsoft.com/sharepoint/soap/GetListItems' );
xmlHttpInst.onreadystatechange = function(){
if ( xmlHttpInst.readyState == 4 ){
loadItems( xmlHttpInst.responseText );
}
};
xmlHttpInst.send( '<?xml version="1.0" encoding="utf-8"?><soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:Body><GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">' +
'<listName>F569FAF0-F246-40DB-B78D-06682F0BBBFA</listName>' +
'<query><Query><Where><Geq><FieldRef Name="ID" /><Value Type="Counter">1</Value></Geq></Where></Query></query>' +
'<rowLimit>100</rowLimit>' +
'</GetListItems></soap12:Body></soap12:Envelope>'
);
}
}
catch ( e ){
XDocument.UI.Alert( "Cannot send request. " + e.message );
}
}
function loadItems( data ){
try
{
var xmlDoc = XDocument.CreateDOM();
xmlDoc.loadXML(data);
// セカンダリのDOMをロード
var xsltXmlDoc =XDocument.GetDOM( "styleSheet" );
// 適用
var transformedXml = xmlDoc.transformNode( xsltXmlDoc );
var transformedXmlDoc = XDocument.CreateDOM();
transformedXmlDoc.loadXML( transformedXml );
var documentNode = XDocument.DOM.selectSingleNode( "/my:myField/my:myGroup1" );
// 親ノードに昇ってリプレイス。
documentNode.parentNode.replaceChild( transformedXmlDoc.documentElement, documentNode );
}
catch ( e )
{
XDocument.UI.Alert( "Cannot read." + e.message);
}
}
function CTRL5_5::OnClick( eventObj )
{
getListItems();
}

今日の猫充

今日の猫充をはてなブックマークに追加 今日の猫充をdel.icio.usに追加 Yahoo!ブックマークに登録 今日の猫充をGoogle Bookmarksに追加

2009年9月29日 火曜日
DSCF5046.JPG

日曜に猫が来ました。こむぎちゃん。めちゃくちゃかわいい。

m_200909290813544ac143325747c.jpeg.jpg

茶トラのメスなのですが、めずらしいとの事でした。茶トラといえばほとんどオスらしいです。靴下はいた感じの足元もかわいいです。壁でザっザっと爪研ぎをしやがるのですが可愛いから許しています。朝早くに噛み付いて遊べ飯くれと起こされるのですが可愛いから許しています。それでも会社いきたくないと2度寝を決め込むのですが可愛いから許しています。(俺を)

今日の嫌な仕事がどうでも良くなりました

今日の嫌な仕事がどうでも良くなりましたをはてなブックマークに追加 今日の嫌な仕事がどうでも良くなりましたをdel.icio.usに追加 Yahoo!ブックマークに登録 今日の嫌な仕事がどうでも良くなりましたをGoogle Bookmarksに追加

2009年9月26日 土曜日
オナニーしたんだけど極限まで射精を我慢したら

このスレのおかげで
今日の嫌な仕事がどうでも良くなりました。
ありがとうございます。