+Tags Hilfe zu Tags anfordern?

  • Anzeigen als -Wolke-  | -Liste-

+ Ähnliche Blogs

photo

Urs Meli

48 Einträge |  Urs Meli
Aktualisiert 
Keine BewertungenBewertungen 0     KommentareKommentare 56
photo

Jan Schulz

43 Einträge |  Jan Schulz
Aktualisiert 
Keine BewertungenBewertungen 0     KommentareKommentare 36
photo

Patrick Picar...

69 Einträge |  Patrick Picard
Aktualisiert 
BewertungenBewertungen 2     KommentareKommentare 124
photo

Beyond The Ye...

330 Einträge |  Peter Presnell
Aktualisiert 
BewertungenBewertungen 21     KommentareKommentare 572
photo

Yellow is the...

72 Einträge |  Tim Tripcony
Aktualisiert 
BewertungenBewertungen 2     KommentareKommentare 34

+ Lesezeichen

+ Blogautoren  

1 - 15 von 22
  • Seite   1
  • 2

XPages - View in-line Editing

Jerry Shelley |   | Tags:  xpages repeat_control | Kommentare (0)  |  Besuche (261)
I was in need of allowing users to in-line edit data from a "View", but was struggling to get Paul Hannan's entry at XPAgesBlog.com working. On clicking the read-only item it would come up with Panel5 not found, I'm guessing because it hasn't been rendered.


So I looked around All Properties and wondered if the "read-only" Property of an Edit Control could be manipulated. Here's the outcome. Things to note are 1) you have to double click on the read only item, and 2) the Partial Refresh points at the Edit Control (ie inputSubject).


(Backend data is simply a Test Form, with 1 field "Subject" and a "Test" View listing just Subject in column 1)...

Your thoughts would be welcomed. And ideas on how the ReadOnly property could be manipulated in code would be enthusiastically received!

Come on England ... Please!!!

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xc="http://www.ibm.com/xsp/custom">

    <xp:this.data>
        <xp:dominoView var="dtTest" viewName="Test"></xp:dominoView>
        <xp:dominoDocument var="document1" formName="Test"
            documentId="#{viewScope.rowDataUNID}" action="editDocument">
        </xp:dominoDocument>
    </xp:this.data>

    <xp:dataTable rows="30" id="dataTable1" value="#{dtTest}"
        var="dtrowData" indexVar="dtrowIndex">
        <xp:column id="column2">
            <xp:inputText id="inputSubject"
                value="#{document1.Subject}">               
                <xp:this.readonly><![CDATA[#{javascript:if( dtrowData.getDocument().getUniversalID() == viewScope.get( "rowDataUNID" ) ) {
    return false;
}    else {
    return true;
}}]]></xp:this.readonly>
                <xp:this.defaultValue><![CDATA[#{javascript:dtrowData.getColumnValue( "Subject" );}]]></xp:this.defaultValue><xp:eventHandler event="onchange" submit="true"
                    refreshMode="partial" refreshId="dataTable1">
                    <xp:this.action><![CDATA[#{javascript:viewScope.remove('rowDataUNID');
document1.save();}]]>
                    </xp:this.action>
                </xp:eventHandler>
                <xp:eventHandler event="onblur" submit="true"
                    refreshMode="partial" refreshId="dataTable1">
                    <xp:this.action><![CDATA[#{javascript:viewScope.remove('rowDataUNID');}]]></xp:this.action>
                </xp:eventHandler>

                <xp:eventHandler event="ondblclick" submit="true"
                    refreshMode="partial" refreshId="inputSubject">
                    <xp:this.action><![CDATA[#{javascript:if( viewScope.get( "rowDataUNID" ) != dtrowData.getDocument().getUniversalID() ) {
    viewScope.put( "rowDataUNID", dtrowData.getDocument().getUniversalID() );
};}]]></xp:this.action>
                </xp:eventHandler></xp:inputText>
        </xp:column>
    </xp:dataTable>
</xp:view>


Keine BewertungenBewertungen 0

Off-topic - Sage SBD on Windows 7

Jerry Shelley |   | Tags:  sage | Kommentare (0)  |  Besuche (511)
Sorry, I had to document this somewhere, just in case someone, somewhere out in the big wide interweb might need it.

One of the joys of working with very small companies is that you get called upon to deal with problems not in your normal remit. One such client of mine installed Sage SBD (I think it's the small company version of Sage Line 50 accounts package) on a brand new laptop for their new accounts lass to work with. Now, SBD is not supported on Windows 7! So when she fired up the program, it asked whether it should update the software with the latest fixes. Replying yes or no made no difference to Windows immediately reporting that the program had stopped responding and closing it.

After poking around, I nosed in the Event Viewer (MS haven't moved it from Control Panel, Admin Tasks!) and found an Application error saying Sage.SBD.Platform.Installation.SoftwareUpdates.UI.exe had caused an error. Out of curiosity, I renamed it and tried loading the program again. No change. So then I renamed the associated DLL's ... and low and behold the program started without asking to update the software. I amaze myself sometimes !!

Associatted dlls =
Sage.SBD.Platform.Installation.SoftwareUpdates.dll
Sage.SBD.Platform.Installation.SoftwareUpdates.Common.dll
Sage.SBD.Platform.Installation.SoftwareUpdates.Model.dll
all found in C:\Program Files (x86)\Common Files\Sage SBD\
Keine BewertungenBewertungen 0

XPages Pagers "Features"

Jerry Shelley |   | Tags:  pager xpages | Kommentare (1)  |  Besuche (563)
 As ever, Lotus gives with one hand, and then makes it totally unusable with the other, unless you spend hours on jumping through hoops with your hands tied behind your back.



Take a View with lots of records, in my case over 200 pages of 30 records. (Yes, I know this isn't a great way of finding records, but the client wants this option as one method of finding records) XPages kindly provide a Pager Control at the top and bottom of the View for you, and it can be formatted nicely with the help of some CSS. There's even SSJS classes that allow you to program actions on the View:- (Thanks John Mackey).


For a Pager:
var pager:com.ibm.xsp.component.xp.XspPager = getComponent("pager1");
pager.gotoPage(1);  //0 is first page etc.,.

For a View:
var view1:com.ibm.xsp.component.xp.XspViewPanel=getComponent("viewPanel2");
view1.gotoPage(1);

Oh joy of joys? No! If you want to jump to Page 20 from Page 1, tough!! It will only take you to page 9. Why? It seems because there are only 8 page links displayed in the Group pageControl (aka Page Selector). So here come the hoops ...

So through trial and error, I added a separate Pager Control to the XPage set its pageCount to 999. Its only pageControl is a Group one setting its style to font size 0 and text colour to be the same as the background. Thus it doesn't appear visible on the page, but is still rendered.

Then using a technique from The XPages Blog I added an Input Control and Link to the Pager Control within the actaul View ...
http://xpagesblog.com/xpages-blog/2010/4/7/adding-controls-inside-a-pager.html
image

















































XML for extra "hidden" Pager Control:-
                    <xp:pager id="pager3" for="viewPanel1"
                        pageCount="999">
                        <xp:pagerControl id="pagerControl2" type="Group"
                            style="color:rgb(255,255,255);font-size:0pt">
                        </xp:pagerControl>
                    </xp:pager>


Panel inside Facets of the ViewPanel:-
<xp:panel xp:key="headerPager" id="pager1"
                                styleClass="lotusPaging">
                                <xp:button value="Previous" id="button1"
                                outerStyleClass="lotusBtn lotusBtnSpecial lotusLeft">
                                    <xp:eventHandler
                                        event="onclick" submit="true" refreshMode="complete">
                                        <xp:this.action><![CDATA[#{javascript:var view1:com.ibm.xsp.component.xp.XspViewPanel=getComponent("viewPanel1"); 
view1.gotoPreviousPage();}]]></xp:this.action>
                                    </xp:eventHandler>
                                </xp:button>
                                <xp:label value="go to page"
                                    id="label2"
                                    style="color:rgb(0,0,255);text-decoration:underline">
                                    <xp:eventHandler event="onclick"
                                        submit="true" refreshMode="complete">
                                        <xp:this.action><![CDATA[#{javascript:var pager:com.ibm.xsp.component.xp.XspPager = getComponent("pager3");
if ( getComponent( "gotoPageInput1" ).getValue() != "" ) {
    pager.gotoPage( parseFloat( getComponent( "gotoPageInput1" ).getValue() ) - 1 );
};
}]]></xp:this.action>
                                    </xp:eventHandler>
                                </xp:label>
                                &#160;
                                <xp:inputText id="gotoPageInput1"
                                    value="#{sessionScope.gotoPageInput1}">
                                </xp:inputText>
                                <xp:button value="Next" id="button2"
                                outerStyleClass="lotusBtn lotusBtnSpecial lotusRight">
                                    <xp:eventHandler
                                        event="onclick" submit="true" refreshMode="complete">
                                        <xp:this.action><![CDATA[#{javascript:var view1:com.ibm.xsp.component.xp.XspViewPanel=getComponent("viewPanel1"); 
view1.gotoNextPage();}]]></xp:this.action>
                                    </xp:eventHandler>
                                </xp:button>
                            </xp:panel>


Keine BewertungenBewertungen 0

XPages - initial cursor focus

Jerry Shelley |   | Tags:  xpages clientside_javascript csjs | Kommentare (4)  |  Besuche (520)
 How hard can it be to get the cursor placed in an input field on an XPage? It's such an easy thing to do in Client-side JS - place some JS such as document.forms[(0].InputField2.focus() in the onLoad event.

No such luxury in XPages, and I couldn't find any examples in any of the XPage wikis and blogs. Plenty of mentions of dojo.onLoad though, so I thought I'd spend a grey Friday afternoon playing. I finally got it to work ... unless the input field in question is a Type-Ahead field :-(

Here's how I achieved it for a normal input field - place the following directly into the XML Source of the XPage, such as straight after the closing ">" of the "<xp:view" tag:-
    <script language="Javascript">
        dojo.addOnLoad(function () {
            dojo.query("[id$='LicenseeQuery']")[0].focus();
            //dojo.query("[id$='test']")[0].focus();
        } );
    </script>


"LicenseeQuery" is an Edit Box field with Type-Ahead enabled - nowt happens;
whereas commenting that line and un-commenting the next line, ( "test" is a normal Edit Box control) my cursor ends up in the test field, which is so friendly for the user.

Any dojo experts have any clues how to place the cursor on a Type Ahead Edit Box control, please?
Keine BewertungenBewertungen 0

Two Document Datasources on the same XPage

Jerry Shelley |   | Tags:  xpages | Kommentare (0)  |  Besuche (503)
 Yet again I've been getting more and more frustrated with XPages ... and yet again Mr Steve Castledine saves my computer from being thrown out the window.


It's such a natural thing to want to do to have 2 document datasources on the same page. E.g. a Response doc is chosen from an Xpage View, so the first datasource is obviously that document set from the context.getUrlParameter( "documentId");.
I wanted to find out some info from the Parent doc, so rather than calc in SSJS the parent doc in each computed field which needed to read data from the Parent, I thought I would create a 2nd data source. No! Wrong!! Big mistake!!! The 2nd data source is always, always, always the same as the 1st datasource.



After questioning my own sanity, I finally threw my toys out the pram ... and googled "XPages two datasources". The 4th entry was Steve Castledine's blog entry XPages - multiple data sources different read/edit modes. The golden nugget in his entry is the setting of the "ignoreRequestParams" to false for the 2nd datasource. Magic! Thank you so much Steve.



Now to go get rid of the frustration built up over several hours - I think I'm going to have to resort to ... "Take a Look Around" by Limp Bizket played at full volume - well half volume as my Denon amp would blow my floorstanders up otherwise.

Keine BewertungenBewertungen 0

What I think I've learnt about XPage Core Controls

Jerry Shelley |   | Tags:  xpages design | Kommentare (2)  |  Besuche (633)
I've been playing with XPages for the past 6 months or so without going on any formal courses, just picking it up through the wikis, knowledge bases and blogs that you all probably know about. It's only recently that I've realised the limitations of fields and binding them to backend data. Here's a brief rundown of my understanding and the limitations imposed by data binding. Please, please feel free to tell me where my understanding is wrong or lacking!

An Edit Box Control, and its variants Hidden input, Rich Text, Multiline Edit Box, are bound to a field of a backend document using the "Data" tab of its Properties. There is no direct capability to compute it's value other than to pull in the value from the backend field by setting its binding. If there is no value pulled through from the backend field then you can set a Default value property...
image
 













So in old Notes Development terms this is the equivalent of having a field defined by the name it is known by in the underlying records or possibly a Computed when composed field.

The other main type of Control available in XPages is the Computed field. Here there is no binding to a backend field. only the opportunity to compute a value. In old terms, this is the equivalent of a Computed for Display field.

So the outcome of my learning is the realisation that there's no direct equivalent in XPages of a Computed field. If you want a Computed field that needs to have a value dependant on other values in the document and for it to be saved in the backedn doc you'll need to do some programming in a Submit Button or in a postSaveDocument event.
<br />
Unless perhaps, if anyone has a brain the size of a planet and can figure out how to use the binding Property found in All Properties of Computed and other Controls?!?



A couple of other observations:-
List Box, Combo Box, Check Box, Radio Button Controls on the other hand have capabilities to be both bound to a backend field and have their values computed. For example the Radio Button Control can have its "Label", "Selected by default", and "Value when selected" properties computed which is good but complex. But then validating Radio and Checkboxes in code can be painful.

A strange quirk is that accessing a Control using getComponent() causes the Control accessed to recompute. See this 8.5 Forum entry for details.

Happy Controlling. Jerry.

Keine BewertungenBewertungen 0

Xpages - Document has been modified or corrupted since signed Solution

Jerry Shelley |   | Tags:  xpages error | Kommentare (0)  |  Besuche (716)
 I've just spent a few stressful hours trying to figure out how to stop getting the following XPage error :-

"Document has been modified or corrupted since signed (data)"

I backed out the changes I had made this morning - no change.
I started taking out Custom Controls until the error stopped, then started reinserting them, which narrowed it down to a few CCs.
I started removing code from each CC until there was nothing left.
I started creating new CCs and adding in chunks of code, but that got too painful trying to rebuild the Property Definitions, Data Sources etc etc.
I gave up with the code and copied the database - no change.
I Compacted the database - no change.
I Fixup'ed the database - no change.
I Signed the database - It works again!

Make sure you detick the "Update existing signatures only (faster)" option just in case it causes it to miss the one it needs to fix the problem.image..


Keine BewertungenBewertungen 0

Data Entry on a Hand-held Device?

Jerry Shelley |   | Tags:  hand-held | Kommentare (3)  |  Besuche (377)
One of my clients has the requirement to do data-entry out in the field - literally. Does anyone have any experience of what devices are best to use in such a situation, please?

Currently remote users replicate data to their laptop at home, go visit the client, ask questions, go for a walk around the premises making manual notes, and then enter the data on the kitchen table before printing out a report. What they would like to happen is replicate at home, prime a hand-held device with the questions, visit the client, and do the data entry while wandering around the premises. Back in the kitchen they would sync the entered data back up to the laptop and produce the report.

(I should point out that it is more than likely that the "walking round the premises" happens in mobile reception black-spots, so G3 etc is not an option.)

A few questions that come to mind :-
What hand-held devices would be best for this - Blackberry, iPhone, Palm, other?
Would it be Notes on the device, or some other app that could be synced using XML data export/import to the laptop then Notes?
I've seen "Hide paragraph from - Mobile" for a long time on Notes properties - is that relevant? If so, how do you determine when your app is running on a Mobile?

Thanks and Merry Xmas. Jerry.
Keine BewertungenBewertungen 0

XPages through a Firewall?

Jerry Shelley |   | Tags:  firewall xpages | Kommentare (4)  |  Besuche (542)
A thought occurred to me recently whilst planning an extranet application for a client - What if you kept no data on the web facing server, all data being read and written through a Firewall to a server in a DMZ?

This would have been possible, but clumsy, with using old-skool Domino development of Web Query Save Agents. But now with the luxury of Data Sources within XPages, all data could be defined as being stored inside the Firewall. The DMZ server could be configured only to receive traffic from the IP Address of the external, web-facing server, as well as some internal facing users, or replicate to an internal server perhaps.

I'm no expert on Firewalls and DMZs (that's pronounced Dee Emm Zed, btw for all you Americans learning English! :-), so does anyone who is more well versed in the joys of security think this is a) possible and b) a good idea, please? Obviously performance would be an issue.

Thanks for any thoughts. Jerry.
Keine BewertungenBewertungen 0

XPages Type Ahead feature with large view

Jerry Shelley |   | Tags:  typeahead xpages | Kommentare (0)  |  Besuche (588)
With the help of Mark Hughes's blog entry on doing battle with Type Ahead and big Views ...
http://dominoextnd.blogspot.com/2009/02/xpages-how-to-make-type-ahead-work-for.html
... I've got it working with 10,000+ view entries.

What was missing from Mark's example was how to access the value of what was typed in. He was using a field from a Document to be the key to the DbLookup, whereas I needed to do a lookup using what had been entered into the lookup field. Rummaging around I found "var" listed in All Properties of the "AJAX Type ahead" which can be found under the Edit Box entry in the Outline. (2 pictures have been eaten by this blog system, so, sorry, I give up trying to display where it is graphically)

Setting that to a variable name, I could then use that variable name in the formula to do a DbLookup and return the output to the Type Ahead field.
<xp:typeAhead var="startValue"  mode="partial" minChars="3" ignoreCase="true" id="typeAhead1">
<xp:this.valueList><![CDATA[#{javascript:var db1 = new Array("servername", "dbname");
key1 = startValue;
var ret = new Array();
ret = @DbLookup(db1, "vwLicenseesByNameOrg", key1, 1 ,"[PARTIALMATCH]");
@Unique( ret );}]]></xp:this.valueList>
</xp:typeAhead>
Keine BewertungenBewertungen 0

Praise the Goddess of the Designer Client!

Jerry Shelley |   | Tags:  dde praise | Kommentare (0)  |  Besuche (421)
 Thank you, thank you, thank you, Maureen and all the Domino Designer Team for (finally) listing the Subs and Functions of a Script Library in alphabetical order within the 8.5.1 designer client!!!
Keine BewertungenBewertungen 0

Any OneUI experts know about Tabbed Tables please?

Jerry Shelley |   | Tags:  oneui xpages | Kommentare (3)  |  Besuche (595)
 
image Is it just me or perhaps my machine, but why do all the Tabs appear as "selected" in a Tabbed Table please?

It's the same in Firefox and IE. Am I missing something, such as some JS to do some style changes on the fly perhaps?

All thoughts welcomed. Thanks.

<   xp:tabbedPanel id="tabbedPanel1" containerStyleClass="lotusTabContainer"
            styleClass="lotusTabs" selectedTab="tabPanel1">
            <  xp:tabPanel label="Work Details" id="tabPanel1">
Keine BewertungenBewertungen 0

Getting the hang of programming "Show Whens"

Jerry Shelley |   | Tags:  progress xpages | Kommentare (2)  |  Besuche (485)
Having programmed for song long "Hide Whens" in Notes Forms etc, it comes as a pleasant shock to have to program "Show Whens" in XPages, i.e. the "Visible" property of so many different XPage elements. Much more logical (pun intended).

I'm sure I will get one right first time sometime soon! :-)
Keine BewertungenBewertungen 0

Is this XPage feature working as designed?!? XPages coding Question Answered

Jerry Shelley |   | Tags:  rant xpages | Kommentare (1)  |  Besuche (725)
This surely can't be working as designed ...
An XPage has :-
a View with a clickable column that sets a viewScope var
a Data Source document with default action of Edit doc, Doc Id computed from a viewScope var;
an Editable field, data binding to the Data Source;
a Computed Field, value data binding same as Editable field;

Click on a value in the clickable column and both the Editable and Computed fields get filled.
BUT Switch on "No data validation" for the column, save, reopen the XPage in your browser, click on the column and the Editable field no longer gets filled! WHY??????????? Please tell me this isn't how it was designed!

Try it for yourself ...
Create an XPage and add :-
a View
    - add   var="ViewColl"  to the source of the <xp:ViewPanel tag so can use it to save the Document Uniqueid.
    - set one column to be defined as a link, set the event to execute Script which sets the viewScope var to VoewColl.getUniversalID() ;
a Data Source document with default action of Edit doc, Doc Id computed from a viewScope var;
an Editable field, data binding to the Data Source;
a Computed Field value data binding same as Editable field;

Here's some XPage source to demonstrate

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.data>
        <xp:dominoDocument var="doc1" formName="MIPSIngredient"
            documentId="#{javascript:viewScope.MIPSIngredientUNID}"
            action="editDocument">
        </xp:dominoDocument>
    </xp:this.data>
    <xp:inputText id="inputText1" value="#{doc1.MIPIngredient}"></xp:inputText>
    <xp:br></xp:br>
    <xp:text escape="true" id="computedField1" value="#{doc1.MIPIngredient}"></xp:text>
    <xp:br></xp:br>
    <xp:viewPanel rows="30" id="viewPanel1" var="MIPSIngColl">
        <xp:this.data>
            <xp:dominoView var="mIPSIngredientsView"
                viewName="MIPSIngredients">
            </xp:dominoView>
        </xp:this.data>
        <xp:viewColumn columnName="MIPSLicenceDocUNID"
            id="viewColumn1">
            <xp:viewColumnHeader value="MIPSLicenceDocUNID"
                id="viewColumnHeader1">
            </xp:viewColumnHeader>
        </xp:viewColumn>
        <xp:viewColumn columnName="Ingredient" id="viewColumn2" displayAs="link">
            <xp:viewColumnHeader value="Ingredient"
                id="viewColumnHeader2">
            </xp:viewColumnHeader>
        <xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="true">
            <xp:this.action>
                <xp:executeScript
                    script="#{javascript:viewScope.MIPSIngredientUNID = MIPSIngColl.getUniversalID()}">
                </xp:executeScript>
            </xp:this.action></xp:eventHandler>
        </xp:viewColumn>
    </xp:viewPanel>
</xp:view>

Switching on "No data validation" changes the eventHandler for the Column to :-
<xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="true">

Keine BewertungenBewertungen 0

XPages coding Question - Editting Response docs within Parent doc

Jerry Shelley |   | Tags:  question xpages | Kommentare (3)  |  Besuche (564)
I thought this would be relatively straightforward,but either I'm doing something wrong or it's not possible for some reason ...

A main record can have zero to many related entries, which to me means Response docs in Notes. So as part of the data-entry XPage I included a View listing the Responses. And to be clever, I have a set of data-entry fields above the View that allows the user to enter another Response. Got that working no trub.

But what I'm struggling with is having the user click on one of the Responses in the View and it populate the entry fields. Clicking on a column to populate some Computed fields is a doddle, but no matter what I try with bindings or lookups, populating Editable fields evades me; the fields seem to resolutely ignore, or possibly wipeout, the new values I set.
image

So clicking on "DarkRyeFlour" in the 1st column sets a viewScope variable of the relevant doc's unid, the form is submitted and the Data Source then accesses this selected doc using the viewScope var.

Clicking on "DarkRyeFlour" in the 2nd column does getComponents setValues:-

    getComponent( "temp22" )        .setValue( doc.getItemValueString( "MIPIngredient" ) );
    getComponent( "temp23" )        .setValue( doc.getItemValueDouble( "MIPWeight" ) );

As you can see the Editable field temp22 does not get set, while the computed field temp23 does get set! Does anyone have an opinion as to whether this is working as designed, please?

But the weirdest thing of all is the "DarkRyeFlour-Editable with SSJS..." - It is an Editable field with this in the "Data - Bind data using: JavaScript":-
var doc:NotesDocument;
if( viewScope.MIPSIngredientUNID == null ) {
    return null
};
doc = database.getDocumentByUNID( viewScope.MIPSIngredientUNID );
if( doc == null ) {
    return null
};
doc.getItemValueString( "MIPIngredient" );

This makes the Editable field act like a Computed field! Read-only is not set. Here's the Source:-
                <xp:inputText id="temp1" disabled="false">
                                    <xp:this.value>
                <![CDATA[#{javascript:
                var doc:NotesDocument;
                if( viewScope.MIPSIngredientUNID == null ) {
                    return null
                };
                doc = database.getDocumentByUNID( viewScope.MIPSIngredientUNID );
                if( doc == null ) {
                    return null
                };
                doc.getItemValueString( "MIPIngredient" );}]]>
                </xp:this.value>
                </xp:inputText>
Any thoughts would be most welcome.
Keine BewertungenBewertungen 0

  • Anzeigen:   10
  • 20
  • 50
  • 100
  •  Elemente pro Seite
Zu Seite von 2 wechseln
Skip to main content link. Accesskey S
IBM Lotus Connections Hilfe Tools Produktinformation