Solved

Button with address book behind to populate fields

Posted on 2002-03-27
7
232 Views
Last Modified: 2013-12-18
In a database I am creating, there is to be a 'requested by' button.  Behind the button I would like to have code that brings up an address book choice box, you pick the name of the caller from the address book <NAB> and the fields branch/phone etc are populated from that.  There is a similar database in use on one of our servers <designed by someone no longer here> that has that type of button that works on that server only <though the form is used company wide>.  The code behind the existing button is...

SubDir:=@LeftBack(@Subset(@DbName;-1);"\\");
DB_Name:=@If(SubDir="";"";SubDir+"\\") + ContactList;
Choice:=@PickList([Custom];@Subset(@DbName;1):DB_Name; "Employees";"Select A Contact";"Select the related contact.";1);
Chosen_Contact:=@Subset(Choice;1);
@If(Chosen_Contact ="";"";@Do(
@SetField("RelatedDocument"; @Text(Chosen_Contact));
@SetField("RequestedBy";@DbLookup("":"NoCache"; @Subset(@DbName;1):DB_Name; "Employees"; Chosen_Contact;2));
@SetField("PeopleToNotify";@DbLookup("":"NoCache"; @Subset(@DbName;1):DB_Name; "Employees"; Chosen_Contact;2));
@SetField("ReqByPhone";@DbLookup("":"NoCache"; @Subset(@DbName;1):DB_Name; "Employees"; Chosen_Contact;3));
@SetField("ReqByLocal";@DbLookup("":"NoCache"; @Subset(@DbName;1):DB_Name; "Employees"; Chosen_Contact;4));
@SetField("ReqByDept";@DbLookup("":"NoCache"; @Subset(@DbName;1):DB_Name; "Employees"; Chosen_Contact;5));
@SetField("ReqByDivision";@DbLookup("":"NoCache"; @Subset(@DbName;1):DB_Name; "Employees"; Chosen_Contact;6));
@SetField("ReqByBranch";@DbLookup("":"NoCache"; @Subset(@DbName;1):DB_Name; "Employees"; Chosen_Contact;7))))

Is this more complicated code than I need put in?

Any suggestions?

thanks
0
Comment
Question by:Paulette
  • 4
  • 3
7 Comments
 
LVL 24

Expert Comment

by:HemanthaKumar
ID: 6901285
The code,
SubDir:=@LeftBack(@Subset(@DbName;-1);"\\");
DB_Name:=@If(SubDir="";"";SubDir+"\\") + ContactList;

is the deciding factor to see what database it is hitting.

In the line,
Choice:=@PickList([Custom];@Subset(@DbName;1):DB_Name; "Employees";"Select A Contact";"Select the related contact.";1);

@Subset(@DbName;1), select the server which would be the current server the database is residing.

In order to generalize this code, do this (Which will be a hard coding)

Server := "Name of the server where the lookup db is residing";
DB_Name := "Path to the database"


OR you can use some kind of control document and store centrally the path and server info of the lookup database, OR you can create a shared field containting the same info.

Let me know which suits your purpose

~Hemanth
0
 

Author Comment

by:Paulette
ID: 6903277
As the database will be on 3 or 4 servers, geographically distant, what would you suggest to be the 'best' or 'most straight-forward' way to accomplish what I am aiming to do?

any suggestions appreciated
0
 
LVL 24

Expert Comment

by:HemanthaKumar
ID: 6904885
Replicate the database which will be used for lookup to all 3 or 4 servers and use the replicaID in place of Server:DBPath for lookup.
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:Paulette
ID: 6910554
Would it be more straight-forward for me to create my own code or method to achieve this lookup?  Rather than trying to pick someone elses code apart and change as necessary, would I maybe be further ahead <given I am at the beginner level of design> to use a method other than this?

Or maybe I am trying to do something WAY over my head....

thanks for your input as usual.....looking forward to your opinion...
0
 
LVL 24

Accepted Solution

by:
HemanthaKumar earned 200 total points
ID: 6910765
The above method is not that bad, except for numerous dblookups which really kills the system. One simple approach would be to create an hidden column in the view where the picklist is acting and extract the selected values for selected row


You have to design an extra column in employees (I have refered that column as 10) like this,

RelatedDocument + "~" + RequestedBy + "~"...So..on...


Here is the formula
-==================
RepID := "852564A0:006B7872";
Choice:=@PickList([Custom];RepID; "Employees";"Select A Contact";"Select the related
contact.";10);
REM " The extracted value 'Choice' contains the string in format, RelatedDocument~RequestedBy~...";

@if(choice = ""; @Return(0); @True);

FIELD RelatedDocument := @Word(choice;"~"; 1);
FIELD RequestedBy := @Word(choice;"~"; 2);
FIELD PeopleToNotify := @Word(choice;"~"; 3);
FIELD ReqByPhone := @Word(choice;"~"; 4);
FIELD ReqByLocal := @Word(choice;"~"; 5);
FIELD ReqByDept := @Word(choice;"~"; 6);
FIELD ReqByDivision := @Word(choice;"~"; 7);
FIELD ReqByBranch := @Word(choice;"~"; 8);
@True

============

PS: you can replace RepID := "852564A0:006B7872"; with appropriate replica id of the database used for lookup. Either you can hardcode or put it in some profile or control doc and refer it.





0
 

Author Comment

by:Paulette
ID: 6911063
When I click on the 'requested by' button I get this error

'entry not in design list'  <pretty unspecific I know....>

what causes this?  
0
 
LVL 24

Expert Comment

by:HemanthaKumar
ID: 6911548
The specified column 10 is  hypothetical, you have to substitute with the column that contains all the information that will be retrieved and parsed.

0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For beginners of Lotus Notes user this is important to know about the types of files and their location supported by IBM Notes. Mostly users are unaware about how many file types are created and what their usages are. This Article is fully dedicated…
Lack of Storage capacity is a common problem that exists in every field of life. Here we are taking the case of Lotus Notes Emails, as we all know that we are totally depend on e-communication i.e. Emails. This article is fully dedicated to resolvin…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question