Lee
Here is the code I am using and a note field is working fine... I
first had it set up as a TEXT field, but now have it set up as
a NOTE and it works either way.. NOTE that the earlier suggestion
of &command doesn't but .command does...whether text or note.
SET VAR vm_grp_or_person INTEGER = (SLOC(.vg_button,'s'))
IF vm_grp_or_person = 0 THEN
*(This next routine will count how many values are in the
list returned into the mailto list...)
SET VAR vm_text TEXT = .vf_mailtolist
SET VAR vm_int INTEGER = 0
WHILE vm_text IS NOT NULL THEN
SET VAR vm_int = (.vm_int + 1)
SET VAR vm_text = (SSUB(.vf_mailtolist, .vm_int))
ENDWHILE
--This will drop the count down by one
SET VAR vm_int = (.vm_int - 1)
ELSE
SET VAR vm_int = 1
ENDIF
SET VAR vm_loopcount = 1
WHILE vm_loopcount <= .vm_int THEN
IF vm_int > 1 THEN
SET VAR vf_emailname =
(ULC((SSUB(.vf_mailtolist,.vm_loopcount))))
SET VAR vm_salutation =
(ICAP1((SSUB(.vf_mailtonames,.vm_loopcount))))
ELSE
SET VAR vf_emailname = (ULC(.vf_emailname))
SET VAR vm_salutation = (ICAP1(.vf_emailtoname))
ENDIF
IF vf_emailname IS NOT NULL OR vf_claimno IS NOT NULL THEN
SET VAR vm_crlf TEXT = '%0D%0A'
SET VAR vm_defaultcomp TEXT = '@tcorp.com'
SET VAR vm_emailaddress TEXT = (.vf_emailname + .vm_defaultcomp)
SET VAR vm_subject TEXT = 'Workmans Compensation Claim Filed'
SET VAR vm_body1 TEXT = +
'This following workmans compnesation claim was filed on '
SET VAR vm_body2 TEXT = 'The injury occured on '
SET VAR vm_body3 TEXT = 'Details are as follows:'
SET VAR vm_body4 TEXT = 'Name:..........'
SET VAR vm_body5 TEXT = 'Company:.......'
SET VAR vm_body6 TEXT = 'Claim Number...'
SET VAR vm_body7 TEXT = 'Category:......'
SET VAR vm_body8 TEXT = 'Description:...'
SELECT datereported INTO vm_dtrptd indicatory vm_i1 FROM
injuries +
WHERE claimnum = .vf_claimno
SELECT injurydate INTO vm_dtinjry indicatory vm_i2 FROM injuries
+
WHERE claimnum = .vf_claimno
SELECT lname INTO vm_lname indicatory vm_i3 FROM injuries +
WHERE claimnum = .vf_claimno
SELECT fname INTO vm_fname indicatory vm_i4 FROM injuries +
WHERE claimnum = .vf_claimno
SELECT company INTO vm_co indicatory vm_i5 FROM injuries +
WHERE claimnum = .vf_claimno
SELECT injurycategory INTO vm_cat indicatory vm_i6 FROM injuries
+
WHERE claimnum = .vf_claimno
SELECT injurydesc INTO vm_desc indicatory vm_i7 FROM injuries +
WHERE claimnum = .vf_claimno
SET VAR vm_body NOTE = NULL
SET VAR vm_body = (.vm_body + .vm_salutation + .vm_crlf)
SET VAR vm_body = (.vm_body + ' ' + .vm_crlf)
SET VAR vm_body = (.vm_body + .vm_body1 + ' ' + (CTXT +
(.vm_dtrptd)) + .vm_crlf)
SET VAR vm_body = (.vm_body + .vm_body2 + ' ' + (CTXT +
(.vm_dtinjry)) + .vm_crlf + .vm_crlf)
SET VAR vm_body = (.vm_body + .vm_body3 + .vm_crlf)
SET VAR vm_body = (.vm_body + .vm_body4 + ' ' + .vm_lname + +
', ' + .vm_fname + .vm_crlf)
SET VAR vm_body = (.vm_body + .vm_body5 + ' ' + .vm_co +
.vm_crlf)
SET VAR vm_body = +
(.vm_body + .vm_body6 + ' ' + .vf_claimno + .vm_crlf)
SET VAR vm_body = (.vm_body + .vm_body7 + ' ' + .vm_cat +
.vm_crlf)
SET VAR vm_body = (.vm_body + .vm_body8 + ' ' + .vm_desc +
.vm_crlf)
SET VAR vm_email2send NOTE = ('mailto:'+.vm_emailaddress+ +
'?Subject='+.vm_subject+'&body=' + .vm_body)
LAUNCH .vm_email2send
ENDIF
SET VAR vm_loopcount = (.vm_loopcount + 1)
ENDWHILE
RETURN
Some thoughts about the way I am doing this...
One... this is my first rough draft of getting this to work.
Two... this is set up to work whether passed one person to
send to or several... The way I'm doing this is
that if it's a single email then it just drops the
2 vars (Persons Name, Persons email prefix) into the
email and sends it..
If it's multiple I'm creating two lists along the same
lines as above... One list of Names (Jack,Jim,Ray,Charles)
and another list being (jsmith,jlimburg,rdickerson,cbrown)
and so on... (These lists are built off of the form that
starts this process. The user has to select the person
or group and then click the appropiate button as to which
one they are sending to) The button definition comes from
the code in which both buttons call this by using the
RUN windowclose IN my.apx on the button's properties.
$COMMAND
windowclose
SET VAR vg_frmname = .#FORM_FORMNAME
SET VAR vg_button = (SGET(.#FORM_COLUMNNAME,12,1))
SAVEROW
CLOSEWINDOW
RETURN
Three..The code:
WHILE vm_text IS NOT NULL THEN
SET VAR vm_int = (.vm_int + 1)
SET VAR vm_text = (SSUB(.vf_mailtolist, .vm_int))
ENDWHILE
figures out how many items there are in the list..plus one
so then one is subtracted.. SET VAR vm_int = (.vm_int - 1).
Four.. You can see how the body is put together if you need to.
You are likely running into a problem of there being more data
your trying to put into the body than what even a default NOTE
could handle... Is this possible??
Hope this helps
Jim Limburg
> Lee Bailey wrote:
>
> Hello all-
>
> I am trying to use the launch command to develop emails, and for the
> most part, it works OK.
>
> The current problem resides in the fact the variable "vemail" is a
> "text" variable and not a "note" variable. If the body of the email
> (EED) exceeds the maximum for a text field, the email body is limited
> by the size of a text field, even though the body is actually in the
> "note" variable size category (<5000 characters). The result is that
> the "To:", "Subject", "CC", "BCC", are fine, but the body of the email
> is not all there when Microsoft Outlook comes up.
>
> Code as follows:
>
> SET QUOTES = |
> SET VAR EET TEXT = |[EMAIL PROTECTED]|
> SET VAR EES TEXT = |MY SUBJECT LINE|
> SET VAR EEC TEXT = |MY CARBON COPY TO|
> SET VAR EEB TEXT = |GIVE THIS GUY A BCC|
> SET VAR EED NOTE = |MY LONG NOTE FIELD is about 4000 CHARACTERS
> long......................................................................|
>
> SET VAR VEMAIL text =
> (|mailto:|+.EET+|?subject=|+.EES+|&cc=|+.EEC+|&bcc=|+.EEB+|&body=|+.EED)
> LAUNCH .VEMAIL
>
> I tried making "Vemail" a note variable, instead of text (this would
> solve the problem), but then R-Base errors "RBG.exe error" and
> terminates the command file.
>
> Anybody got any ideas?
>
> Lee Bailey
>
> Bailey & Associates
> E-Mail: [EMAIL PROTECTED]
> Phone: 954-659-1780
> Fax: 954-659-1781