====== pears.FormatCompanyPersonAddress ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."FormatCompanyPersonAddress" IS
{create function FormatCompanyPersonAddress
/* Application Maintained Function / Procedure - DO NOT EDIT*/
(in ReqEmploymentID char(20),in Capitalise smallint,in Style char(1))
returns char(400)
begin
declare FormattedAddress char(400);
declare IncPosition smallint;
declare IncDept smallint;
declare PersonName char(30);
declare CompanyName char(60);
declare Post char(50);
declare Dept char(30);
declare NewLine char(2);
declare ReqCoID char(20);
/* Decide whether to use CR/LF or comma as seperator */
if
Style = 'B' then
set NewLine="char"(13)+"char"(10)
elseif Style = 'L' then set NewLine=', '
end if;
/* Get option settings for Position & Department from params */
select first PositionInAddr,DeptInAddr into IncPosition,IncDept from Params;
/* Get Company & Person details */
select Person.Name,Company.Name,Employment.Position,Employment.Department,Employment.CompanyID into PersonName,
CompanyName,Post,Dept,
ReqCoID from Pears.Employment key join(Pears.Person,Pears.Company) where
Employment.EmploymentID = ReqEmploymentID;
/* Initialise the address */
set FormattedAddress=PersonName+NewLine;
/* Add Position if required */
if
isnull(IncPosition,0) = 1 and
length(trim(Post)) > 0 then
set FormattedAddress=FormattedAddress+Post+Newline
end if;
/* Add department if required */
if
isnull(IncDept,0) = 1 and
length(trim(Dept)) > 0 then
set FormattedAddress=FormattedAddress+Dept+Newline
end if;
/* Get the rest of the address */
set FormattedAddress=FormattedAddress+CompanyName+NewLine+FormatCompanyAddress(ReqCoID,Capitalise,Style);
return(FormattedAddress)
end
}