I guess it is time to add rating system on "planet lotus". I'm absolutely agree with Ben. It would be very nice to have opportunity to vote for every article => +1 and -1. It would be very nice to see near every article two marks: one for current article and another one for average mark of all articles. for example:
article1 about bla bla bla (+2), (+7).
article2 about bla bla bla (-4), (-3).
Also, probably, would be nice in case if article has mark let's say -10 it has to disappear from planet lotus.
What do people think about this idea?
I will send my proposition to owner/developer of "planet of lotus". I believe that we will solve this.
Let's kill cheaters !
and save our time !
Friday, March 28, 2008
how to get google map ?
I guess that somebody already shown it earlier. But it is always good to refresh memory.
Address := "Paris";
url := "http://www.google.com/maps?f=q&hl=en&q="+Address;
@URLOpen(url);
Address := "Paris";
url := "http://www.google.com/maps?f=q&hl=en&q="+Address;
@URLOpen(url);
Tuesday, March 25, 2008
select in views with date
Very often we need to use Dates in view's SELECT. Let's say that we should show documents which are older than current day. What do we usually do?
SELECT FldName = @Now
SELECT FldName = @TextToTime("Today")
I just want to refresh head and show another approach. We can use schedule agent on server and modify SELECT formula each day.
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim dt As String
Set db = s.CurrentDatabase
dt = Join(Evaluate({@Text(@Today)}))
Set view = db.GetView("viewName")
view.SelectionFormula = {SELECT Form = "Form" & FldDate = (([} + dt + {]}
after that it will work faster and better. it's just only one another approach not more, but I like it )
SELECT FldName = @Now
SELECT FldName = @TextToTime("Today")
I just want to refresh head and show another approach. We can use schedule agent on server and modify SELECT formula each day.
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim dt As String
Set db = s.CurrentDatabase
dt = Join(Evaluate({@Text(@Today)}))
Set view = db.GetView("viewName")
view.SelectionFormula = {SELECT Form = "Form" & FldDate = (([} + dt + {]}
after that it will work faster and better. it's just only one another approach not more, but I like it )
Wednesday, March 12, 2008
Securety for different parts of document. 1-st approach.
Let's say we have one document and it contains couple different areas, for example 1 part of document contains information about salary of employee and another one contains information about family of employee. Of course, fields that contains information about salary have to be hide from all eyes except special role (Finance department). Information about employee's family also has to be hide from all except (HR department). Application should work in Lotus Notes client and in WEB also.
We can't just hide fields using "hide formula", because smart users can use next approach and they can found fields with salary. But it should be private information.
So, I propose next approach, we can create one main document and N response documents (it depends on how many areas you have). Each response document will contain information about special area and also will contain information about Readers, in our case it will be 2 documents - 1 for Salary information + Readers field = "Finance department" and another one for HR department. All others manipulations it is only game with QueryOpen and QuerySave event in Client and Web.
Simple chart :-).
What I did:
1) on QO event I put code that take all data from response documents and put to main document. It is very usefull to use NotesItem.SaveToDisk = false in QO event, because in this case you can forget about removing values in QS event from main document.
2) on QS event I put code which takes values from main document and put data back to response documents.
Probably it is not the best way but it works.
Any new idea would be appreciate ! ;-)
We can't just hide fields using "hide formula", because smart users can use next approach and they can found fields with salary. But it should be private information.
So, I propose next approach, we can create one main document and N response documents (it depends on how many areas you have). Each response document will contain information about special area and also will contain information about Readers, in our case it will be 2 documents - 1 for Salary information + Readers field = "Finance department" and another one for HR department. All others manipulations it is only game with QueryOpen and QuerySave event in Client and Web.
Simple chart :-).
What I did:
1) on QO event I put code that take all data from response documents and put to main document. It is very usefull to use NotesItem.SaveToDisk = false in QO event, because in this case you can forget about removing values in QS event from main document.
2) on QS event I put code which takes values from main document and put data back to response documents.
Probably it is not the best way but it works.
Any new idea would be appreciate ! ;-)
Friday, March 07, 2008
Undocumented DOM LotusScript Inventory
Sometimes I look for undocumented methods in LS. So I found the best one, probably, page.
Just remember about these methods, probably will be the time when it be helpful for you.
also you can use these @Formula
@LocationGetInfo([UNID])
@LocationGetInfo([FullName])
@LocationGetInfo([HomeServer])
@LocationGetInfo([NamePreference])
@LocationGetInfo([SametimeServer])
@LocationGetInfo([BookmarksFilename])
@LocationGetInfo([InternetMailAddress])
@AdminDelegateMailFile
@ExpandNameList
@FindFreeResource
@LocationGetInfo
@command [PKCS12ImportCertsToNAB]
- NotesDatabase
+ isNNT : Variant
+ archiveNow( ) : Integer
+ archiveNow( documentCollection=Nothing ) : Integer
+ archiveNow( documentCollection=Nothing, policy=Nothing ) : Integer
+ close() - DEPRECATED, DO NOT USE
+ createNewsGroup(groupName : String, title : Variant, subdirectory : Variant) : Long
+ enabledOptions(arg1 : Integer , arg2 : Integer)
+ getArchivePath( policy : String ) : String
+ getArchivePath( policy : String, pathType=Nothing ) : String
+ getFields(flag : Boolean) : String[ ]
+ retrievePOP3Mail(server : String, port : Integer, username : String, password : String, retainMail : Integer, useSSL : Integer) : Long - NotesDateTime
+ convertToZoneCanonical( zoneSpec ; String )
+ merge( datetime, zoneSpec ) - NotesDocument
+ formDbID : String
+ formDbIDItem : String
+ handle : Long - cf. Notes C++ Programmer's Reference Guide
+ generateMessageID( ) : String
+ getNextItem(arg : Variant) : Variant - DEPRECATED, DO NOT USE
+ moveToFolder( )
+ putInFolderByUNID( )
+ removeFromFolderByUNID( ) - NotesDocumentCollection
+ getNoteIDs( ) : Variant - NotesItem
+ PartialText - NotesOutline
+ getEntry(entryname : String) : NotesOutlineEntry
+ remove( ) : Integer - NotesOutlineEntry
+ onClickText : String - NotesRegistration
+ useAdminProcess
+ registerNewUserWithPolicy( lastName : String, certPW : String, userPw : String, policyServer : String, firstname=Nothing, middle=Nothing, altName=Nothing) - NotesRichTextItem
+ addLinkByIDs( replicaID : String, serverHint : String, viewUNID, notesUNID, comment, hotspotText )
+ appendRTFile( pathname : String )
+ partialText - NotesSession
+ internetDomainName : String
+ internetHostName : String
+ close
+ createXMLReformatter( input, output ) : Variant
+ getNewsGroupPath(arg : String) : String
+ getWin32Domain(server : Variant) : Variant
+ startProfile( outputFilename : String, outputThreshold, recordThreads, recordEntryPoints )
+ stopProfile( )
+ tagProfile( tagString ) - NotesUIDatabase
+ editArchiveSettings( ) As Integer
NotesUIDocument
+ modifiedSinceSaved : Boolean
+ parentViewName : Object
+ windowHandle : String
+ findFreeTimeDialogEX( reqPeopleItems, optPeopleItems, reqRoomsItems, optRoomsItems, reqResourcesItems, optResourcesItems, removedPeopleItems, startDateItem, endDateItem ) As Variant
+ navBarSetPrevNextState( command, benable ) - NotesUIScheduler
+ ignoreUniversalID : String
+ participantTableCopy( sortOrder : Integer ) As Variant
+ refresh( getScheduleData, flags )
+ setParticipantsFromItems( flags )
+ setParticipantsFromTable( participantTable )
+ updateParticipantsFromItem( flags )
+ updateParticipantsFromTable( table, rolesFlags, appFlags )
+ updateParticipantsStatus( participantTable ) - NotesUIWorkspace
+ addBookmark(bookmarkTitle : Variant) : Variant
+ addDatabaseToPortfolio( )
+ Create_DialEntry_Dialog( remoteAccessMethod )
+ create_DialEntry_Info( remoteAccessMethod, nameOfEntry )
+ create_DialEntry_List( remoteAccessMethod, nameOfEntry ) - NotesView
+ HeaderLines - not really undocumented but mal-documented since R5
+ createViewFromTemplate( newName : String ) : Long
+ getEntryByID( NoteID : String ) : NotesViewEntry - WebBrowser
exposed within OLE Automation classes from R5 onwards..
Just remember about these methods, probably will be the time when it be helpful for you.
also you can use these @Formula
@LocationGetInfo([UNID])
@LocationGetInfo([FullName])
@LocationGetInfo([HomeServer])
@LocationGetInfo([NamePreference])
@LocationGetInfo([SametimeServer])
@LocationGetInfo([BookmarksFilename])
@LocationGetInfo([InternetMailAddress])
@AdminDelegateMailFile
@ExpandNameList
@FindFreeResource
@LocationGetInfo
@command [PKCS12ImportCertsToNAB]
Subscribe to:
Posts
(
Atom
)