Отправляет email-рассылки с помощью сервиса Sendsay

Бюллетень "Lotus Notes CodeStore"

  Все выпуски  

LO48569: CLIENT CRASH AFTER RECEIVING A MAIL WITH ATTACHMENT.


Рассылку ведет: Программист на Lotus NotesLotus CoderВыпуск No 299 от 2010-02-19
рассылка о программировании на Lotus Notes/Domino
Обсуждения на форумах, блогах. Примеры программного кода на LotusScript,@formula, Java

рассылка:выпускархивлентаблогсайт

Бюллетень "Lotus Notes CodeStore" Выпуск 13 от 21.04.2008

comp.soft.prog.lotuscodesrore

CodeStore. Примеры кодов

Еще примеры:
Больше кодов на сайтах:

Форумы.Свежи темы и обсуждения

Интересные темы:
Список форумов:

Tips. Советы

Barbie, the doll from Mattel, has a new career. She can now add Computer Engineer to her resume. With her pink laptop, matching glasses, and binary-coded T-shirt, she sets a new standard for Girl Geeks everywhere. Maybe we should petition Mattel for a Lotus-themed Barbie.

Read | Permalink
David Schaffer has some users getting "server not responding" because of a setting on their laptops. He's curious as to why this is happening and if there's something he needs to "fix".

Read | Permalink


CAN LOTUS QUICKR REPLACE DOMINO.DOC? IT DEPENDS...
Download the new "5 perspectives for Domino.doc migration" whitepaper, register for the webinar, or benchmark yourself against other Domino.doc users to find out what's right for you.

Find out the right direction for you.

Darren Adams thinks scheduling meetings without having done a "free time search" first should be added to the list of bad habits in calendaring. To help alleviate the problem, he suggests adding Tungle's plug-in for Notes. He even provides a handy button so you can see how it works.

Read | Permalink

As part of the Contact Manager app I showed how you can display a paper clip icon in the column of a datagrid to represent documents with attachments.

Let's take this one step further and allow the user to download any one of the attachments straight from the view, without having to open the document.

If you re-open the demo app you should see a new option in the columns-to-show dropdown called Attachments:

 image

If you enable this column you'll see a dropdown box in the last column of any row that contains attachments. Clicking on a file name will launch/save it (depends on your browser preferences).

image 

Not an essential feature in every app but a nice example of something simple to achieve that adds value in certain circumstances.

How Did I Do It?

First thing I did was change the XML that defines both the columns and the data for the grid/view. Here it is:

 image

Notice theirs a column of type "download" which has a value of "files" and an attribute called "separator". This tell it to look for the "files" node of each document node and explode it using the value passed as a separator.

In the XML above it would give us an array of two file name strings - one for a PDF and one for a Word doc. It should be fairly obvious how this XML is produced in a Notes view, no?

In Flex, from within my View component, when looping the <columns> XML to build each column for the grid I added the following code:

if (column.hasOwnProperty("@type") && column.@type=="download"){ var dlRenderer:ClassFactory = new ClassFactory(net.codestore.flex.DownloadColumnRenderer); dlRenderer.properties = { columnName: column.valueOf(), itemSeparator: column.@separator||"; ", view: this }; col.headerRenderer = new ClassFactory(net.codestore.flex.DownloadHeaderRenderer); col.itemRenderer = dlRenderer; col.resizable = false; col.width=55;
}

The code for the DownloadColumnRenderer class looks like this:

<?xml version="1.0" encoding="utf-8"?>
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center" verticalAlign="middle"> <mx:Script> <![CDATA[ import net.codestore.flex.View; [Bindable] private var _columnName:String; [Bindable] private var _separator:String; [Bindable] private var _view:View; public function set columnName(colName:String):void{ _columnName = colName; } public function set view(view:View):void{ _view = view; } public function set itemSeparator(separator:String):void{ _separator = separator; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); if (data && data.hasOwnProperty(_columnName) && data[_columnName].toString().length>0){ button.visible = true; button.dataProvider = data[_columnName].split(_separator); } else { button.visible=false; } } ]]> </mx:Script> <mx:PopUpMenuButton id="button" icon="{IconLibrary.PAPER_CLIP_ICON}" click="_view.openDocumentAttachment(data.@id, button.dataProvider[0])" itemClick="_view.openDocumentAttachment(data.@id, event.label)" height="20" width="45" cornerRadius="2"/>
</mx:Box>

Notice that we've passed to the DownloadColumnRenderer the instance of the View component in which it lives. It's this instance of the View that we call the openDocumentAttachment() method on. This method looks like this and lives inside View.mxml:

public function openDocumentAttachment(docId:String, fileName:String, save:Boolean=false):void{ var _fileRef:FileReference = new FileReference(); var urlReq:URLRequest = new URLRequest(); urlReq.url = parentApplication.basePath + "0/"+docId + "/$file/"+fileName; if (save){ _fileRef.download(urlReq); } else { navigateToURL(urlReq, "_blank"); }
}

All quite straight-forward and a quick example of how useful custom renderers can be in AdvancedDataGrids.

YMMV.

Click here to post a response

Tony Austin asked for your help with a field exchange problem last year. He's reporting back now with his findings, in case you've run into the same thing.

Read | Permalink
Simon O'Doherty has been playing with Objective-C for iPhone development. As part of his learning experience he's experimenting with writing tutorials. Simon has posted his first tutorial as a PDF on this page.

Read | Permalink
We've pointed you to his blog many times, now you can read more about Chris Toohey on developerWorks. This is the first in a planned series of interviews with Lotus Developers.

Read | Permalink

About five weeks ago our 3 year old Hoover washing machine broke for the second time in its short life. The problem was the same as the first time it broke -- the concrete ballast had fallen to pieces. You know when it happens as it starts to sound like a train is coming through the house when it's on full spin.

First time it happened (just outside of its 1 year warranty) they came and fixed it within a couple of weeks (and charged us for it). I remember it well, as the Hoover-supplied "engineer" left all the concrete pieces, the old drum, boxes and various other bits on our doorstep as he left. I pointed out he'd forgotten them only to be told they're not Hoover's property so not their responsibility to dispose of. Yeah, thanks for that.

But anyway, forward on just over a year later and it's happened again. The concrete that makes up the weight is in bits. Lots of bits. Oh, and lots of dust. It's everywhere. It's now obvious it's an inherent problem with the machine. Looking at the ballast it appears to be concrete of the grade you'd expect in a breeze block. Now I'm now engineer (well, actually I do have a degree in it) but even I know that's not going to last very long.

Whether the machine has an inherent problem or not the fact is Hoover's customer service is truly terrible.

Here's what happened in the five weeks since it broke:

  • Rang Hoover "customer services" to tell them it had broken.
  • Told them it was the exact same issue as before but they said an "engineer" would need to visit anyway.
  • Before this first visit I am forced in to paying for either a £110 labour charge or taking a &ound;159 policy with Domestic & General (D&G) to cover the labour charge and any other repairs for a year. Made sense so I went for the £159 option.
  • Wait a week for a man to visit, who takes one look inside the utility room door and say "It's your concrete's gone, love". Yeah, you don't say.
  • Man then puts parts on order.
  • Wait a week and call. Parts still on order.
  • Trouble just about every neighbour on the road to do a load of washing for us.
  • Wait a week and call. Parts still on order.
  • Trouble just about every neighbour on the road to do a load of washing for us.
  • Wait a week and call. Parts still on order.
  • Trouble just about every neighbour on the road to do a load of washing for us.
  • Decide enough is enough and that we might as well buy a new one for the same cost of the policy.
  • Call D&G to cancel policy. They say we can but that we'd be liable to a £90 call-out charge for the man who was charged with coming to point out the obvious.
  • Realise they have us by the short and curlies and there's little we can do but wait.
  • Wait a week and call. Parts still on order.
  • Trouble just about every neighbour on the road to do a load of washing for us.
  • Karen calls and get very irate. Not until she point our her 3rd child is due any day now does the lady take pity and decide to lodge an internal complaint and to waiver the call-out fee.
  • Three days later they confirm they've cancelled and we have nothing to pay.
  • We go to Argos and order the cheapest washing machine we can find.
  • Due for delivery next Tuesday. Well over 6 weeks since we stopped using the other.

So we got the refund for the policy, but who won? It certainly doesn't feel like we have! We're just back where we started. No better off and certainly worse off, as we owe all our neighbours a lot of favours.

What we've learnt is that buying a top of the range branded domestic appliance is a complete waste of money. I can't remember exactly what we paid for the washing machine but it was in the region of £400. We did this in the naive belief that it was better and would last.

The machine that it replaced cost Karen about £200 and lasted her about 10 years! When I buy things I have an expected life-span for them. With something like a washing machine it's in the region of 10 years. Certainly not three.

So, what we've done (aside for vowing never to buy Hoover again) is buy a cheapo one instead. As has been pointed out to us recently "They're all just the same plastic crap inside nowadays anyway".

We've bought this new cheap one on the premise that if it breaks outside of the warranty then it is, in effect,  disposable. When the cost to repair it equals the cost of a new one what are you supposed to do? As much as I hate the idea of sending the "old" one to the tip, what am I supposed to do?

There are some things in life you take for granted until they break. I didn't realise how much we relied on a washing machine until now. Well, not so much me, but my very pregnant wife who was way more patient with this whole saga than I would have been.

It all leaves me thinking extended warranties and the like are a complete waste of money. Just buy cheap and replace it when broke. I never thought I'd be suggesting such a wasteful idea, but it's the only real option here. Hoover should be ashamed of the terrible, terrible customer service.

Click here to post a response

Еще советы:
Смотри советы на сайтах:

Блоги. Что обсуждают и пишут

Author: Steffen Gräbner
Tags: connector
Idea:
When downloading a file or just save a lokal file in a directory the windows dialog doesn't have the option to directly save in Quickr. Thus users have to pre save it on e.g. desktop and afterwards load it up to quickr.
Other WIndows explorer plugins like SAP easy document management have this function.

Author: Karen Keeter
Tags: tags tagging
Idea:
Right now, only the owner of an idea can add a tag to it. It would be useful to allow others to add tags to an idea, even if they don't own it, as the original owner may not have thought of all the tags, and this potentially gives the idea more visibility

Author: Karen Keeter
Tags: search
Idea:
If I go into advanced search and create a query, I want the ability to be able to save something (a link?) - as a bookmark for example, that I can then click on later to get a refreshed version of my original query. This is not the same as rss feed for an ideaspace, or an author or and idea,  as the query may involve a subset of ideas from a single ideaspace, or it may be a set of ideas which cross over multple ideaspaces.

Author: Jeremiah Benjamin
Tags: quickr room rooms templates
Idea:
Would be nice to create Room Templates so users have an automated way to setup rooms.  This way, users in a Place can create new Rooms that come pre-setup with folders, documents, forms, workflow, etc.  Right now users are very confused when they create a new, empty room.
 
Room Templates should also have the ability for rooms to inherit updates from the template they were created from.  (I'm thinking of changes to workflow, or new forms.)
 
We have Places with 40+ rooms.  As new rooms are added (regularly), I have to go to my "template room", copy over several folders, a form, a few documents and then go in and check / uncheck standard options in the new room, and re-sort the table of contents before I can turn it over to the users.
 
This structure is great for high-level overviews of current projects, and the rooms allow flexible security.  This way there is a Place that persists and it "comfortable" for the users, but where the data flowing through is constantly updated.

Author: Joseph Hoetzl
Tags: DDE Bookmarks Favorites Working sets
Idea:
OK, due to a missing "Mini-view" in mail, IBM support did the usual, delete the workspace directory and have it create a new one - fine, but I really hate having to re-add all sorts of apps and working sets in designer.
 
Maybe there is a way to backup just those settings, but the support rep didn't know how.
 
Anyway, I've had to do this enough times now that I thought to post it.  I'm not sure if a NSF (designerbookmarks.nsf?) if the best option, but I'm tired of losing all of it.

The Apache catalog shows now the 'real' download numbers. The numbers are synchronized weekly from the project area. However these numbers do not contain the direct installations of rich client components via drag and drop from the catalog. We only ...
Author: Karen Keeter
Tags: search
Idea:
Unless I am not seeing it, the export from advanced search is missing the status field as a column- which is an important field if you are trying to do analysis of the state of ideas.


Author: Karen Keeter
Tags: search
Idea:
Unless I am not seeing it, the export from advanced search is missing the status field as a column- which is an important field if you are trying to do analysis of the state of ideas.

Author: Sean Burgess
Tags: ideajam reference data
Idea:
I would like to have a reference data value for the number of users registered to access a given IdeaJam instance.  Only users in the self-registration group would be counted.

Еще записи:
Интересные блоги специалистов:

Статьи и Документация

The user is running Release 7.0.4 CCH2 (32-bit client)
Dates not printed in calendar view.
This interview with Chris Toohey is the first in a series of interviews with IBM Lotus Domino Designer developers who are active contributors to the Lotus community.
The status bar does not update or clear when moving the preview panel view selection from a signed document to an unsigned document.
Notes objects stored in sessionScope become null if accessed in different XPage events.
You have at least 2 users with the exact same name in your personal address book. When typing the name in the to: field of a memo, the client only offers one.
In 8.5.1 the ability to print in color calendar entries was added. While this feature is beneficial, some customers would rather revert back to the style displayed pre 8.5.1.
A Domino server crash involving Update. An OS memory issue results in a Domino server crash while processing a Full Text index request on System i.
JConsole no longer highlights selected server to allow fast browsing of server list. Incident has been reported as SPR BTRS7X3LS7.
Также почитатай:
Найти документацию можно на сайтах:

В избранное