![]() |
WebKit API Documentation |
The WebKit API is a series of uniVerse BASIC routines that can be used to process HTML forms or to dynamically generate HTML documents from data stored in a uniVerse database file.
HTMLAddArgs adds various values to the argstring usage: HTMLAddArgs -SELECTED
HTMLArgstring generates a list of the arguments passed via POST argstring
HTMLAssocDisplay displays the data in the specified associated multivalued fields in table with the field names in the first row and the data in subsequent rows. null rows at the end are not displayed. Calling sequence is HTMLAssocDisplay [TableOptions] [-TV] [DICT] FileName DataRecID FieldName ... TableOptions is any of the following: -BORDER n (default = 0) -CELLSPACING n (default = 1) -CELLPADDING n (default = 5) -WIDTH xx{%} (default = no width specification) -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) specifies global cell alignment Values are supplied with comma as delimiter. Default is CENTER, TOP -COLOREVEN #xxxxxx -COLORODD #xxxxxx -COLORHEAD #xxxxxx -NH No Header display -NOEMPTY FIELDNAME If the value for the fieldname specified is empty then scrap the line. (Doesn't work with PH's yet) -NOSPACE Do not display a   in empty fields -TV generate the lines as columns instead of rows with the field names in the first row. FileName the file being displayed DataRecID is the record to be displayed. If @SELECT then see if there is a record ID in select list 1. If so ,then use it. If not or if command line value is '' then leave blank for user to fill in on DataWrite request if it has a value @ID then use the value of the @ID control in argstring if "&NEXT.AVAILABLE&" generate next available FieldName are fields to be displayed.
HTMLAssocEntry generates a data entry form for the specified associated multivalued fields in table with the field names in the first row and n rows of data entry controls Calling sequence is HTMLAssocEntry [TableOptions] [-TV] [-DEPTH n] [-DT|-CT|-DB-|-CB|-C | -R n] [DICT] FileName DataRecID FieldName ... where -DEPTH n means display n lines of data entry controls; default = 1 use only -DEPTH to generate a new record form -TV means generate the lines as columns instead of rows with the field names in the first row. -DT means construct DEPTH input row followed by rows displaying all existing lines (non-empty multivalues) new input line becomes top line in assoc -DB means construct DEPTH input rows after rows displaying all existing lines (non-empty multivalues) new input line becomes bottom line in assoc -CT means construct DEPTH input rows followed by rows containing input controls for all existing lines (non-empty multivalues) new input line become top line in assoc -CB means construct DEPTH input row after rows containing input controls for all existing lines (non-empty multivalues) new input line become bottom line in assoc -C means construct rows for changing existing lines no new lines may be entered. Any DEPTH parameter is ignored. -CI means construct rows for changing existing lines no new lines may be entered. Any DEPTH parameter is ignored. Count I type values as non-empty so an Itype can be used to set number of rows -N n creates new input lines beginning with value n (default: end of existing values -NH No header display -R n selects only the nth row of the association for update. Any -DEPTH is ignored. -HR n specifies to repeat the header row every n rows TableOptions is any of the following: -BORDER n (default = 0) -CELLSPACING n (default = 1) -CELLPADDING n (default = 5) -WIDTH xx{%} (default = no width specification) -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) specifies global cell alignment Values are supplied with comma as delimiter. -COLOREVEN #xxxxxx -COLORODD #xxxxxx (default = #FFFFFF) -COLORHEAD #xxxxxx FileName the file being updated DataRecID is the record to be updated. If @SELECT then see if there is a record ID in select list 1. If so ,then use it. If not or if command line value is '' then leave blank for user to fill in on DataWrite request if it has a value @ID then use the value of the @ID control in argstring FieldName are fields to be used. If no FieldNames are specified then use @REVISE phrase if present, else just generate an @ID control
HTMLAssocMerge combines rows that have identical controlling fields usage: HTMLAssocMerge file @ID fields where the specified fields define the association. there must be at least 2 fields the first field is a quantity field the second field is the controlling field starting with the controlling value of the last row, HTMLAssocMerge looks for a row with the identical value. If found, it adds the quantity in the last row to the quantity in the row with the identical controlling value and deletes the last row. for example, if the association has 2 fields and 3 rows: 2 ABC32 1 BEF98 3 ABC32 After processing the association would be: 5 ABC32 1 BEF98
TMCAssocSort re-sorts the values in an association Calling sequence is: TMCAssocSort [-A|-D] field file recordID assoc where -A|-D specify the sort order, default is -A field is the field by which the values should be sorted two fields can be specified by specifying an X item in the following format: SORT-SPEC: 0001: X 0002: field1:@VM:field2:@SM:field-conv file is the file which contains the record recordID is the ID of the record which contains the association to sort assoc is the association PHrase
HTMLAssocWrite updates the fields of the specified association with data from argstring Usage: HTMLAssocWrite [-D field value | -UF | -UL ] file recid field ... where the fields define the association file specifies the filename recid specifies the record the values for the fields are in argstring specified as field<n>=value where <n> specifies the row in the association. <-1> means add to the end. <0> means insert as first row, pushing existing rows down one row The record must exist in the file If -D field value is specified the row which has field = value is deleted. field must be one of the fields defining the association. if none of the values match the specified value, the operation is ignored silently. if field is the special name @ROW.NO, then the value is the row number to delete. fields are deleted. If a control record named ASSOCDELETE is in the argstring, the values are rows to delete from the resulting record. All other updates are completed first and then the ASSOCDELETE rows are deleted. -UL or UF specifies that the association rows should be unique for the fields that are preceded with a "-" character. -UL means keep the last of the matching rows; -UF means keep the first. E.g.: HTMLAssocWrite -UL ORDER.FILE QUANTITY -PROD.NO -COLOR specifies that if there are rows that have identical values for the PROD.NO and COLOR fields, keep the last one. HTMLAssocWrite assumes that if there are any control names of the form nnn<-1> or nnnn<0>, there is is only one such row being appended or prepended to the existing data in the association. If there are multiple occurrences for these controls, they are considered multiple values for the one row. These control forms can not be mixed with controls specifying specific row numbers
HTMLCalDisp - Display a calendar for a specified month usage: HTMLCalDisp [-W] [-L link] [-E EndMon] [-M] [-S|-D] StartMonth [Year] StartMonth The month or the beginning of a range of months when -E is used Year The Year of the month to display (default=current) -U link The url of the control handling the action, to which '+@dow=date' will be appended. (& if + is used) -W Don't display weekends as actionable (linked) -E EndMon The last month to process in a range -M Start week on Monday -P Do not display dates Prior to today as links -S Inclusion Array using this format: internal_date@VMopt@VMhtml(text.links,images)@VM:celldisplay.array opt: if SLNum is not specified, SL 1 is used -D Exclusion Array using this format: internal_date@VMcellopt@VMhtml(text.links,images)@VMcelldisplay.array opt: if third option, html(text.links,images), is unspecified link will be used if specified. if SLNum is not specified, SL 1 is used -N /URI Specify alternate URI for next/prev links. If URI is /DEFAULT the default action is used, if no URI is specified the navigation is disabled update to use css for formatting calmonth - month in heading caldow - day of week row caltable - calendar table caltablesub - nested calendar table (with -N) caltablerow - modify tr in caltable caltablehead - modify th in caltable caltablecell - modify td in caltable caltabletoday - modify td in caltable callink - modify a tag calitem1 - modify a text item calitem2 - modify a text item calitem3 - modify a text item calitem4 - modify a text item calitem5 - modify a text item
HTMLCapture captures the output of a WKCONTROL transaction usage: HTMLCapture [-Q] [-A "argstring"] wkcontrolID file record where wkcontrolID is the name of the WKCONTROL transaction to execute file and record specify where to write the output of the transaction -A "argstring" uses the specified argstring. Argstring should be in plain text which means that & can not be in the data. e.g., -A "arg1=Value1&arg2=value2&arg3=value3" -Q indicates quiet mode (no output for use in admin controls)
HTMLCat copies specified html to standard out with or without substitution usage: HTMLCat [-TS|-CS] file html where html is the record in file that contains the html source -CS specifies performing a Command Line substitution -TS specifies performing a text substitution -TA XXX specifies performing text substitution and outputting XXX=result (used in ADDARGS segment for placing html segment -Q exit quietly CommandLineSubstitute: strings of the form &xxxx (&^xxxx) are replaced with the value of argstring variable xxxx (upcased value of argstring variable xxxx for &^xxxx) x is alphameric or . - _ characters if value contains spaces it is quoted before substitution. If xxxx is not in argstring or is empty, the string is deleted, unless the next character after xxxxx is ";" if next characters after xxxxx are "\&", they are deleted from output. This lets you substitute a value before a alphameric or one of the characters ".-_" E.g. If argstring contains Type=blue and SegmentInfo (or html segment) contains Filename=&Type\&.txt the output is Filename=blue.txt TextSubstitute: Same as CommandLineSubstitute except value is never quoted.
HTMLCatFun is similiar to HTMLCat, but can be called from an ITYPE usage: SUBR("HTMLCatFun","File htmlFile",ReplacementStrings) where File is of the form "File htmlFile" or "File/htmlFile" htmlFile contains html source If html source contains a substitution of the form &OPTIONx where x is a number, then x is used as an index of a multivalued argument: ReplacementStrings. If htmlFile contains a &OPTION without a number, the whole ReplacementStrings is used ----------------- example ITYPE: SUBR("HTMLCatFun","PROJECT.BITS viewproject.link",@ID:@FM:TITLE) example html: viewproject.link <p><a href="/bin/f.wk?project.view+&OPTION1">&OPTION2</a></p>
HTMLAuthnet interfaces with the Authorize.net CreditCard processing web interface Usage: HTMLAuthNet [-M Merchant_ID] [-P Password] [-T] [-D] In a Validate WKCONTROL Segment. Integration guide: http://www.merchantexpress.com/authorizenet/adc_integration_guide.htm URL for authnet processing: new: https://secure2.authorize.net/gateway/transact.dll Advanced Integration Specs: http://www.mmcis.com/Internal/Quality/manual/AIM_specs.pdf Advanced Integration Specs FULL: http://www.mmcis.com/Internal/Quality/manual/AIM_guide.pdf Options: ---------------------------- -D - Debug mode -M Merchant_ID - default is cac7447ma -P Password - default is something I won't type here -T - puts AuthNet into Test mode Arguments ---------------------------- Unless @AUTHNET_ARGS is in the argstring, these values are expected in the argstring @AN_METHOD - CC | ECHECK | AUTH_ONLY | PRIOR_AUTH_CAPTURE | VOID following are required values for CC or if @AN_METHOD is not present @AN_AMOUNT - amount no dollar sign @AN_CARDNUM - 11 numbers usually @AN_EXPDATE - mmyy or mm/yy @AN_FNAME - any strin @AN_LNAME - any strin @AN_ADDRESS - any strin @AN_ZIP - zip code following are required values for xMethod PRIOR_AUTH_CAPTURE (in addition to above) optional: @AN_ORDERID - as an invoice number @AN_DESCRIPTION - description of charges @AN_CARDCODE - card code from the back of the card @AN_TRANSID - transaction id passed back form AUTH_ONLY transaction Required for PRIOR_AUTH and VOID xMethods (@AN_METHOD) @AUTHNET_ARGS= Following are required fields for @AN_METHOD = ECHECK @AN_AMOUNT - amount no dollar sign @AN_RECURRING = Usually Yes @AN_BANKCODE - ABA code @AN_ACCTNUM - bank account number @AN_ACCTTYPE - bank account type - CHECKING is only valid value for now @AN_BANKNAME - bank name @AN_ECHECKTYPE - WEB @AN_FNAME - any strin @AN_LNAME - any strin @AN_ADDRESS - any strin optional: @AN_ORDERID - invoice number @AN_DESCRIPTION - description of charges "xInvoiceNum,xAmount xCardNum,xExpDate,xfirstname,xlastname,xaddress,xzip,xCardcode,xDescription" NOTE: There is no smart parsing of comma's so fields can not contain commas - yet Return Values ---------------------------- ErrorMsg = Message if card is declined or if something went wrong AUTHNET-RAWRETURN = the entire cvs output AUTHNET-TRANSID = transaction id needed for reversing charges and stuff AUTHNET-AUTHCODE = authorization code needed for reversing charges and stuff AUTHNET-MESSAGE = the message returned CCVALID = 1 on success or 0 for failure
HTMLCreditCardCheck performs a reasonableness check on credit card information useage: HTMLCreditCard CardNumber CardType CardExpMonth CardExpYear if the CardNumber is not a valid number for the CardType, HTMLCreditCard outputs "CNUMBER=0" and "CCVALID=0" If valid, it outputs "CNUMBER=canonical form of credit card number" and "CCVALID=1" HTMLCreditCard is meant to be called by an ADDARGS WKCONTROL segment. CardType = "MasterCard" or "VISA" or "AMEX" or "Discover" If CardNumber starts with string MMCIS then report good. or string defined in VOC entry HTML.CCPREFIX if CardType = "Calc" then calculate type from Card Number
HTMLLinkPoint interfaces with the linkpoint credit card processing processing web interface Usage: HTMLLinkPoint [-M Merchant_ID] [-P pemFile] [-T mode] [-D] [-U url] In a Validate WKCONTROL Segment. Advanced Integration Specs: https://www.mmcis.com/Internal/Quality/manual/linkpoint/LinkPointAPIv3_6.pdf Advanced Integration Specs FULL: https://www.mmcis.com/Internal/Quality/manual/linkpoint/LinkPointCentralv3_6.pdf Options: ---------------------------- -D - Debug mode -M Merchant_ID - default is 950598 -P pemFile - location in the file system that contains the pem file -T - TBD: Test mode -U - URL to submit [ default is the real linkpoint server] Arguments ---------------------------- @LP_METHOD - CC*|ECHECK|Preauth|Postauth|Void|Credit|Calcshipping|Calctax Required values for "sale" method @LP_AMOUNT - amount no dollar sign @LP_CARDNUM - 11 numbers usually @LP_EXPMONTH - mm @LP_EXPYEAR - yy @LP_ADDRESS - any string @LP_ZIP - zip code optional: @LP_FNAME - any string @LP_LNAME - any string following are required values for x_Method PRIOR_AUTH_CAPTURE (in addition to above) optional: @LP_ORDERID - as an invoice number @LP_DESCRIPTION - description of charges @LP_CARDCODE - card code from the back of the card @LP_TRANSID - transaction id passed back form AUTH_ONLY transaction Required for PRIOR_AUTH and VOID x_Methods (@LP_METHOD) @LINKPOINT_ARGS= Following are required fields for @LP_METHOD = ECHECK @LP_AMOUNT - amount no dollar sign @LP_RECURRING = Usually Yes @LP_BANKCODE - ABA code @LP_ACCTNUM - bank account number @LP_ACCTTYPE - bank account type - CHECKING is only valid value for now @LP_BANKNAME - bank name @LP_ECHECKTYPE - WEB @LP_FNAME - any string @LP_LNAME - any string @LP_ADDRESS - any string @LP_ADDRESS2 - any string @LP_CITY - any string optional: @LP_ORDERID - invoice number @LP_DESCRIPTION - description of charges Return Values ---------------------------- ErrorMsg = Message if card is declined or if something went wrong LINKPOINT-RAWRETURN = the entire cvs output LINKPOINT-TRANSID = transaction id needed for reversing charges and stuff LINKPOINT-AUTHCODE = authorization code needed for reversing charges and stuff LINKPOINT-MESSAGE = the message returned CCVALID = 1 on success or 0 for failure --------------------------------------------------
HTMLSecurePay interfaces with the SecurePay CreditCard processing web interface Usage: HTMLSecurePay [-M Merchant_ID] [-P Password] [-T] [-D] In a Validate WKCONTROL Segment. https://www.securepay.com/secure16/index.cfm Options: ---------------------------- -D - Debug mode -M Merchant_ID - -P Password - -T - puts AuthNet into Test mode Arguments ---------------------------- these values are expected in the argstring @AN_METHOD - CC | ECHECK | AUTH_ONLY | PRIOR_AUTH_CAPTURE | VOID following are required values for CC or if @AN_METHOD is not present @AN_AMOUNT - amount no dollar sign @AN_CARDNUM - 11 numbers usually @AN_EXPDATE - mmyy or mm/yy @AN_NAME - @AN_STREET - @AN_CITY - @AN_STATE - @AN_ZIP - zip code @AN_EMAIL - any string @AN_FMETHOD - POST, GET, or NO (return post method) @AN_SUCCESS_URL - return for success @AN_FAILURE_URL - return for failure @AN_SEND_MAIL - "Yes" (send an email to the merchant) @AN_SECURE_PAGE - name of (uv) File to write the SecurePay response to optional: @AN_ORDERID - as an invoice number @AN_DESCRIPTION - description of charges @AN_TRANSID - transaction id passed back from AUTH_ONLY transaction Required for PRIOR_AUTH and VOID xMethods (@AN_METHOD) Return Values ---------------------------- Return_Code = Y or N Approv_Num = the approval number or "NOT APPROVED" for return code N Card_Response = verbose text from processor. AVS_Response = see below VoidRecNum = Transaction ID, needed for matching transaction to charge or for VOID or refund AVS Result Code: A = Address (Street) matches, ZIP does not E = AVS error G = Non-U.S. Card Issuing Bank N = No Match on Address (Street) or ZIP R = Retry . System unavailable or timed out S = Service not supported by issuer U = Address information is unavailable W = 9 digit ZIP matches, Address (Street) does not X = Address (Street) and 9 digit ZIP match Y = Address (Street) and 5 digit ZIP match Z = 5 digit ZIP matches, Address (Street) does not
HTMLCGIDecode converts CGI encoded characters to their hex equivalents, and spaces to "+" it is written as a subroutine so it can be called from I-Types
HTMLCGIEncode converts all non alphameric characters to their CGI encoding: space converts to "+" all other non alphamerics to %xx where xx is the hexadecimal character code it is written as a subroutine so it can be called from I-Types
HTMLCGIParse returns the input argument string with any CGI escape sequences replaced by plain text characters
HTMLClink executes a report and then post processes the output replacing constructs like <....> with the output of the specified I-Type. It does not generate the HTML headers. Calling sequence is: HTMLCLink "command" file itype where command is the command line to execute file is the name of the file containing the itype itype is the name of an itype dictionary entry in filename
HTMLCmdChk checks the first token on the command line to see if it is a command that is authorized to be executed the list of authorized commands is maintained as a record named HTMLValidCommands in VOCLIB. You can specify a class of commands to allow by making an entry in VOCLIB HTMLValidCommands of the form XXXX... where you want to authorize any command starting with XXXX
HTMLCommandLoop creates a select list from a multiple value forms control and executes the specified command for each value in the select list with the next list value appended to the command. usage: HTMLCommandLoop controlname cmd where controlname is the name of the form control (cannot be @FileName or @ID) cmd is the command to execute. in between each command execution, HTMLCommandLoop clears /FORMS/ common by setting ArgString = 0 e.g. HTMLCommandLoop RECORDS "DISPLAY.RECORDS" if argstring = RECORDS=1&RECORDS=2&RECORDS=3 would cause the following three commands to be executed: DISPLAY.RECORDS 1 DISPLAY.RECORDS 2 DISPLAY.RECORDS 3
HTMLCookieExpires generates the expiration date for a COOKIE header. calling sequence in itype is: subr("HTMLCookieExpires","DATE") where: DATE=n [year{s} | month{s} | day{s}] DATE=n [hour{s} | minute{s} | second{s}] years|months|days are specified with time = current TOD years are calculated as 365.25 days months are calculated as 30.4375 days
HTMLCreateSelect builds a select list with additional text prepended. Usage: HTMLCreateSelect [-L "literal string to put on top"] [-C "command to run - output goes on top"] "select command you would have put in F10" result is put in SLIST 1 use ~ to indicate a field mark and %%NULL%% if you want to indicate an empty value.
HTMLCryptFun encrypts and mimeencodes usage: SUBR("HTMLCryptFun","VALUE") -----------------
HTMLCustDemo returns information from the demo file CUSTOMERS
HTMLDataDisplay generates a HTML for displaying the specified fields for a record in a uniVerse file. Calling sequence is: HTMLDataDisplay [-A|TV|T1|TH|T2|TM "file:rec,..."] {TableOptions} {DICT} FileName DataRecID FieldName ... where FileName is the file to be displayed DataRecID is the record to be displayed. if it has a value @SELECT then look in SELECT LIST 1 for ID(s) if it has a value @ID then use the value of the @ID control in argstring -A is used when DataDisplay is called as an ADDARGS segment. -TV means display the fields in a two column table with field name in column 1 and field values in column 2 -TM "[file:]rec[,...]" means to display the fields in an n column table with field name in column 1 and the field values in columns 2 through n. file:rec specifies the additonal file/recs. If other files are specified they must have the same dictionary structure since only the dictionary of the FileName is used. -T1 means display the fields in a one column table alternating between field name and data value -TH means display the fields horizontally in a 1 row table alternating between field name and data value -T2 means display the fields horizontally in a 1 row table with the label and data seperated by a <br> -A specifies this call is in a WKCONTROL ADDARGS and output should be in the for @FIELDNAME=DATA The reason that a "@" is added is so that we won't have to worry about screwing up valid data for writes later. (note: @@ID could and should appear) -NH specifies that heads should not be displayed TableOptions is any of the following: -NOEMPTY - don't display fields with no value -BORDER n (default = 0) -CELLSPACING n (default = 1) -CELLPADDING n (default = 2) -WIDTH xx{%} (default = no width specification) ALIGN specifies table alignemt -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) CALIGN specifies global cell alignment -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) Values are supplied with comma as delimiter. Defaults are right for -TH and right,top for -TV and left for -T2 -COLOREVEN #xxxxxx -COLORODD #xxxxxx FieldName are fields to be used. If no FieldNames are specified then use @HTMLDISPLAY phrase if present else just display @ID leading + is stripped from fieldname before processing
HTMLDataEntry generates a data entry form for the specified file and fields. Calling sequence is: HTMLDataEntry {TableOptions} {-NH} {-Tx|A} {-EC classname} {DICT} {RequiredOptions} FileName DataRecID FieldName ... where -TV means display the fields in a two column table with field name in column 1 and entry control in column 2 -TH means display the fields horizontally in a 1 row table alternating between field name and entry control -T1 means display the fields in one column, rows alternate between names and controls -T2 means display the fields in two rows, top row displays names and bottom displays controls -T3 means display the name in a label tag followed by the controls -NH don't display headers if no option is specified, -TV is assumed -EC means add class="classname" to tag if that field's name is contained in the @ErrorFields argument. -ES means add span with class="classname" around tag(s) if that field's name is contained in the @ErrorFields argument. -EA means put argument @ErrorFIELDNAME=classname on argstring if that field's name is contained in the @ErrorFields argument -EA is ignored unless -A specifed TableOptions is any of the following: -BORDER n (default = 0) -CELLSPACING n (default = 1) -CELLPADDING n (default = 2) -WIDTH xx{%} (default = no width specification) -ALIGN [left|center|right] (default = no alignment) CALIGN specifies global cell alignment -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) Values are supplied with comma as delimiter. Defaults are right for -TH, right,top for -TV and -T1 and center for -T2 -COLORHEAD #xxxxxx -COLOREVEN #xxxxxx -COLORODD #xxxxxx RequiredOptions is one of the following: -RB fieldname - puts value of the field named fieldname in a column before the label column -RA fieldname - puts value of field named fieldname in a column after the label column fieldname must be an Itype that generates a text value such as "*" or an image tag -RI fieldname - inserts prompt in middle of value of field named fieldname. fieldname must be an Itype that generates a value of the form xxxx@VMyyy. @VM is a value mark CHAR(253). The prompt replaces the @VM. So to make the prompts red, fieldname would be an Itype with the value: "<font color=red>":@VM:"</font>" To place an asterisk after the prompt name (default if no -Rx option is specified, Itype would be @VM:"*" FileName the file being updated DataRecID is the record to be updated. If @SELECT then see if there is a record ID in select list 1. If so ,then use it. If not or if command line value is '' then leave blank for user to fill in on DataWrite request if it has a value @ID then use the value of the @ID control in argstring if "&NEXT.AVAILABLE&" generate next available FieldName are fields to be used. If no FieldNames are specified then use @REVISE phrase if present, else just generate an @ID control. + before a fieldname specifies a REQUIRED field. (see -RA, -RB, -RI). If no -Rx is specified an asterisk "*" is suffixed to prompt name. If the argstring contains an argument name @ErrorFields then @ErrorFields value is fieldname[<br>fieldname]... if HTMLDataEntry finds a field named in the that argument, it checks the dictionary to see if field.ERROR exists. If it does, HTMLDataEntry substitutes that field and continues processing. * mdj 170202 added -T3 to enclose field label in <label></label> tag, followed * immediately by the form control for use in some responsive frameworks.
HTMLDataWrite uses values returned from a form generated by HTMLDataEntry to update a record in a file. Calling sequence is: HTMLDataWrite [filename [ recid field ...]] field - specifies a field to be updated in the specified file. Field may be a data field name or a phrase, in which case the value of the phrase is substituted for the phrase. For each specified field, HTMLDataWrite extracts value of the argstring control named field. If only filename or no arguments are specified, the record ID is taken from the @ID=id argstring value. If fields are not specified, then HTMLDataWrite processes all the control=value pairs in argstring with control being the field name and value being the new data. A control name of the form WKOTHERWKnnnnn is treated as the free form input of the "OTHER" choice in a radio or check box control. The WKOTHERWK is stripped and the control is processed as if it were nnnnn=value. Control names of the form nnnnnnn< >, which specify multivalued field values are only processed when fields are not specified on the command line. Use HTMLAssocWrite to process associations. Control names starting with @ are ignored unless specified on the command line. If filename is not specified then HTMLDataWrite looks for argstring value @FileName=filename If @ID value is the null string then use &NEXT.AVAILABLE& if present otherwise return an error. If there is a submit control named @DELETE in the argstring, the record is deleted from the file unless there is a filename called @FileName_DEL, in which case the record is copied there. The recommended way of deleting a record is to use a separate form that calls a delete transaction. Field names with + prefix are stripped before processing @NEW.ROW and @NEW.TABLE are ignored if the dictionary contains a field named @IPADDRESS and the argstring has a value @IPADDRESS, the value is written to that field
HTMLDateArgs looks for @STARTDATE and @ENDDATE in argstring and sets defaults in they are not present usage: HTMLDateArgs startdef enddef where startdef and endded are the strings that indicate no date was entered. if no start date is specified @STARTDATE is set to 1/1/0001 if no end date is specified @ENDDATE is set to today + 1 HTMLDateArgs is meant to be called in an ADDARGS HTMLForms segment type
HTMLDeleteZero deletes trailing lines that match a pattern from an association. usage: HTMLDeleteZero [-Z zerotemplate] file recordID field ... where the specified fields define the association. zerotemplate is an X item in the DICT of the specified file that defines what lines to delete. Field 2 of this record must have the same number of values as the association has fields. Each value contains either the @NULL value (char(128) or a value which defines a line to be deleted. The default pattern is a 0 or null string in field 1. To delete lines which have the string "-Select Value-" in the the first of three values and any value in values 2 and 3: the X item would look like: ITEM-NAME 0001: X 0002: -Select Value-|^128|^128 where | is a value mark and ^128 is the NULL value. you may also specify a pattern as: value @svm [< | > | <= | >=] in which case the line is deleted if the value is < (or > or <= or >=) to the corresponding field value e.g., 0@svm>= specifes deleting any line with field containing a zero or negative #. 0>=fieldvalue or pattern @svm matches in which case, the line is deleted if the value MATCHES the specified pattern
HTMLDictDisplay generates the HTML for displaying a field based on the directions in the dictionary entry for that field. HTMLDictDisplay(DataRec,DataRecID,openDict,DictID,HTMLLabel,HTMLTag) where DataRec is the current data record being processed DataRecID is the record ID of DataRec if DataRecID has a @VM in it then this a call from HTMLTableDisplay for a BY.EXP report so treat multivalue fields as single value using the value specified by the second value in DataRecID openDict is an open file variable for the dictionary file DictID is the name of the field being processed HTMLLabel is used to return various information HTMTag is used to return the HTML tag sequence generated if HTMLTag = "%%NOREAD%%" then the dict record is already in HTMLLabel so it does not have to be read. Used by HTMLTableDisplay Return values generated by HTMLDictEntry: 0 - successful; HTMLTag contains the HTML statements to display the data entry form; HTMLLabel contains field label DictID contains the dictionary entry for that field 1 - Dict entry was a phrase; the value of the phrase is in HTMLLabel with each token (field name) separated by a FM -1 - Could not process field; reason message is in HTMLLabel HTMLDictDisplay uses field 12 of the dictionary to specify how a data entry is to be displayed Field 12 Control Used --------- ------------------------------------------------------ empty data value is oconv'd if single valued field, no further processing if multivalued, @VM are replaced with <BR> sequence PASSWORD data is replaced with a field width of "*" characters
HTMLDictEntry reads a dictionary entry and prepares an HTML tag that can be used to enter data for that field HTMLDictEntry(DataRec,DataRecID,openDict,DictID,HTMLLabel,HTMLTag) where DataRec is the current data record being processed DataRecID is the record ID of DataRec openDict is an open file variable for the dictionary file DictID is the name of the field being processed HTMLabel is used to return field label HTMTag is used to return the HTML tag sequence needed to generate the form control, and to denote this call is for an association entry where each multivalue is considered a single value even though the dictionary entry is multi-valued (HTMLTag = 1) return values generated by HTMLDictEntry: 0 - successful; HTMLTag contains the HTML statements to generate the data entry form control, HTMLTag contains the field label 1 - Dict entry was a phrase; the value of the phrase is in HTMLLabel with each token (field name) separated by a FM -1 - Could not process field; reason message is in HTMLLabel The Dict Name field (F4) is used to specify the label text format is label[@SVMpos@TMdatalabel] label is returned in HTMLLabel datalabel is returned in HTMLTag together with form control html based on pos pos HTMLTag format T datalabel<br>controlhtml R controlhtml datalabel B controlhtml<br>datalabel L datalabel controlhtml HTMLDictEntry uses field 10 of the dictionary to specify how a data entry control is to be built. In the table below, the string before the first Mark (VM,SVM, or TM) is the FormatType For all format types, the initial value can be specified by specifying FORMATTYPE@TMinitialvalue. This initial value does not override the value in an existing record. Field 10 Control Used --------- ------------------------------------------------------ empty input control for single valued field, textarea for multivalued INPUT@svmoncond@svmplaceholder input control (mainly used for initial value specification) oncond is oncondition placeholder generates placeholder attribute for oncond and initial value: INPUT@tmvvvv@svmOncond for placeholder: INPUT@svm@svmplaceholder INPUTM input control - set maxlength to size DRADIO@VM[group][@VMtext] creates a RADIO button in group using either the specified text or the data value if no text is specified as the button explanation. For example: DRADIO@VMAORB@VMChoice A --> [] Choice A If data value is XXX then DRADIO@VMBGROUP --> [] XXX The value is set to group if specified otherwise DataID is used PASSWORD use a password type input tag RADIO@svm@smvoncond@VMvalue[@SMlabel]@VMvalue[@SMlabel].. or RADIO@svm@svmoncond@VMvalue[@TMlabel]@VMvalue[@TMlabel].. (deprecated) or RADIO@svmS@smvoncond@vmCmd create RADIO buttons for specified values must be a single value field. If the data values have a Text Mark in them (SVM is allowed for backward compatibility), then the data before the TM is set as the value of the choice, and the data after the TM is used as the prompt for the choice. If data values are XXX and YYY then RADIO@VMXXX@TMChoiceA@VMYYY@TMChoiceB --> []Choice A []Choice B RADIO@VMXXX@VMYYY --> [] XXX [] YYY if RADIO@svmS is specified then the Cmd is executed. It must return the values in Select List 1. values are returned in Select List 1. If the returned values have a Text Mark in them, the value is the data before the TM and the label is after. The commmand is subject to command line substitution. RADIOV... same as RADIO but display choices vertically CHECK@svm@svmoncond@VMvalue@VMvalue.. or CHECK@svmS@svmoncond@vmCmd create CHECK buttons for specified values must be a multivalue field Processing of CHECK@svmS and values with Text Marks in them is the same as for RADIO. CHECKV... same as CHECK but display choices vertically SELECT[M][R][@SVMnn@SVMoncond]@VMcmd[@VMitype] EXECUTE cmd and use output as SELECT list data cmd is subject to command substitution (see HTMLForms) before execution. cmd must return values in SELECT LIST 1 If SELECTR or SELECTMR is specified the ID of the current record is appended to the VMcmd command line before executing. If no cmd is specified us data from field (execute Itype if field is an itype). In either case if the data contains a TM then use the characters before the TM as the prompt and the characters after as the value of each option nn specifies depth of generated SELECT tag - default=4 if field is multivalued then generate a multiple select set to selected any values in data field that match select list if itype is specified, use itype to transform data values before setting them to selected SELECTM forces a multiple select for association line items (HTMLTag = 1) oncond - text specifying event handler options TEXTAREA[@VMvalue1@VMvalue2@VMplaceholdertext] display as textarea with size=value1, wrap=value2; must be multivalued. Valid values for wrap are off, soft and hard. placeholder text becomes the value of the placeholder attribute NULL Display contents of field 4 without a form element Hn Create heading control using <Hn> tags HFn Create heading control using <font size=n> tags STATIC[@VMtagopen@SMtagclose] Display value of field as text only. use tagopen* and tagclose to format the output using HTML HIDDEN[@VMNODISPLAY] Generate a hidden form element. If NODISPLAY is not specified then display field name and value as text. If NODISPLAY then do not display DISPLAY display value as text CUSTOM@VMcmd Execute "cmd" and put the output into HTMLTag Do command line substitution on cmd before executing ASSOCDELETE Create control tags for use by HTMLAssocEntry and HTMLAssocWrite to delete a row in an association. Used in an I-Type that generates text or image to go with the generated check box used to delete the row. if the I-type value contains <*> then the value is returned as is. No check box is generated ASSOCEDIT Create control tags for use by HTMLAssocEntry with -R option the generated check box used to delete the row. UPFILE create a file type input control - must be used with <form method="post" action="/bin/fup.wk?... enctype="multipart/form-data"> form specification. if F11 specifies that the data is to be written to another field (DATA@vmfieldname), then the ControlName is set to that fieldname. if @BOOTSTRAP=1 on argstring then don't use in button labels
HTMLDictRead reads the dictionary entries specified by the @REVISE phrase in the specified file into a dynamic array, separated by @IM. It also returns the width of the widest column header The first dict entry returned is always @ID
HTMLDictWrite updates a field with a new value based on the format information in the dictionary for that field. HTMLDictWrite(DataRec,DataRecID,openDict,DictID,FormData,flag) where DataRec is the current data record DataRecID is the record ID of DataRec openDict is an open file variable for the dictionary file DictID is the name of the field being processed FormData is the data generated by the input form for this field flag is used to pass in initialization information and pass back error information if flag is 0, this is a new field and the old value should be deleted before processing; if it is 1 then this is a multi value field being added to. return values are: 0 - successful; DataRec contains the updated value. -1 - error; error message in flag if DictID has the form xxxxx<n> or xxxxx<n,m> then DICTWRITE uses xxxxx as the field name and writes the FormData as the nth value in the field or the mth subvalue in the nth value. if there are multiple values then the FormData is appended as the last subvalue in the nth value or the last sub-subvalue in the mth subvalue or the nth value. n = 0 means insert value as first value pushing existing values down. n = -1 means insert value as last value n = -2 used for multiple add as last value arguments HTMLDictWrite uses field 11 of the dictionary to specify how to turn the FormData into the new data value. Field 11 Action --------- --------------------------------------------------------- empty iconv the FormData and put into data field PASSWORD iconv the FormData and put into data field SELECT@VMcmd execute "cmd" with FormData as argument, results returned in select list 1 RADIO iconv the FormData and put into data field CHECK iconv the FormData and append it to data field DRADIO put FormData into data field - no iconv DATA@VMfieldname treat as if the field name was fieldname. This can be used in ITypes to write Itype generated data into a data field. REQUIRED@VMItype@VMErrorMsg evaluate Itype. ErrorMsg replaces prompt when specified DictID of the form WKQTYWKqname-pname-pvalue is a special control used to pass quantity and product ID values in one control for shopping cart apps. HTMLDictWrite treats this as two controls of the form: qname<-2>=FormData pname<-2>=pvalue
HTMLDirectoryList list files in specified Type 1 or 19 file usage: HTMLDirectoryList [-D deleteTransaction] filename [pattern] where filename is the Type 1 or 19 file -D deleteTransaction specifies the WKCONTROL transaction to delete a record from this file pattern is a shell file selection pattern HTMLDirectoryList generates a table displaying the FileName LastModifiedDate size the filename is a download link. if -D is specified, it adds a link of the form: <a href="/bin/f.wk?deleteTransaction+@ID=name>(click here to delete)</a>
HTMLDataEntry generates a data entry form for the specified file and fields. Calling sequence is: HTMLDataEntry {TableOptions} {-NH} {-Tx|A} {DICT} {RequiredOptions} FileName DataRecID FieldName ... where -TV means display the fields in a two column table with field name in column 1 and entry control in column 2 -TH means display the fields horizontally in a 1 row table alternating between field name and entry control -T1 means display the fields in one column, rows alternate between names and controls -T2 means display the fields in two rows, top row displays names and bottom displays controls -NH don't display headers if no option is specified, -TV is assumed TableOptions is any of the following: -BORDER n (default = 0) -CELLSPACING n (default = 1) -CELLPADDING n (default = 2) -WIDTH xx{%} (default = no width specification) -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) CALIGN specifies global cell alignment -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) Values are supplied with comma as delimiter. Defaults are RIGHT for -TH, RIGHT,TOP for -TV and -T1 and CENTER for -T2 -COLORHEAD #xxxxxx -COLOREVEN #xxxxxx -COLORODD #xxxxxx RequiredOptions is one of the following: -RB fieldname - puts value of the field named fieldname in a column before the label column -RA fieldname - puts value of field named fieldname in a column after the label column fieldname must be an Itype that generates a text value such as "*" or an image tag -RI fieldname - inserts prompt in middle of value of field named fieldname. fieldname must be an Itype that generates a value of the form xxxx@VMyyy. @VM is a value mark CHAR(253). The prompt replaces the @VM. So to make the prompts red, fieldname would be an Itype with the value: "<font color=red>":@VM:"</font>" To place an asterisk after the prompt name (default if no -Rx option is specified, Itype would be @VM:"*" FileName the file being updated DataRecID is the record to be updated. If @SELECT then see if there is a record ID in select list 1. If so ,then use it. If not or if command line value is '' then leave blank for user to fill in on DataWrite request if it has a value @ID then use the value of the @ID control in argstring if "&NEXT.AVAILABLE&" generate next available FieldName are fields to be used. If no FieldNames are specified then use @REVISE phrase if present, else just generate an @ID control. + before a fieldname specifies a REQUIRED field. (see -RA, -RB, -RI). If no -Rx is specified an asterisk "*" is suffixed to prompt name. If the argstring contains an argument name @ErrorFields then @ErrorFields value is fieldname[<br>fieldname]... if HTMLDataEntry finds a field named in the that argument, it checks the dictionary to see if field.ERROR exists. If it does, HTMLDataEntry substitutes that field and continues processing.
HTMLDoMethod returns the output generated by executing the requested method on the specified document
HTMLDoSelect executes a paragraph using select list entries as arguments calling sequence: HTMLDoSelect {-R} n PARAGRAPH arg arg ... where n is the number of the select list to print where PARAGRAPH is a paragraph in VOC file to execute and arg ... are additional parameters to pass to the PARAGRAPH the first parameter is always the select list value
HTMLEchoArgs returns the POST argument=value pairs one to a line. HTMLEchoArgs -T just returns the argument value pairs - no header, no <br>
HTMLEmployeeDirectory returns employee information
HTMLEncode executes a uniVerse command and encodes the output usage: HTMLEncode command command must be the first argument so if it has spaces it must be enclosed in quotes
HTMLEntity converts all the HTML metacharacters that are meant to be displayed as regular text into HTML Entities usage: HTMLEntity(string)
HTMLEntitySub calls the HTMLEntity function to encode various special characters usage(in itype): SUBR("HTMLEntitySub",strong)
HTMLEnv sends back an html document that details the environment as seen by the uniVerse backend usage: HTMLEnv {ALL{=x}} {ENV=envvar} if ALL is specified then ENV returns additional information: WHO, ipcs and it sleeps for x (default=10) seconds so it can test simultaneous connections if ENV=envvar is specified, HTMLEnv returns one line: @envvar=value where value is the value of the Environment Variable envvar if envvar has the value "HTTP_HOST_DOMAIN" then return the domain part of HTTP_HOST (the last two fields separated by .)
HTMLError constructs an error message that contains the calling program's name and the specified message surrounded by horizontal rules It assumes that if RUN or RAID is used, the program file name is specified as the second token (i.e. no default to BP) If VOC contains HTML.ERRORMSG PAragraph, it is executed instead of HTMLErrorContact, WKErrorID is added as arg2
HTMLFile opens a sequential file for processing direct to the browser Usage HTMLFile [-h "MIME-type" | -m mimefilename] [-NC] /full/path/to/file use the "-h" flag to precede the output with HTMLTextHeader or specify the mime-type, enclosed in quotes. Use the tilde(~) between MIME strings to produce multi-line MIME headers. if -m mimefilename is specified, HTMLFile uses the ext of the filepath to look up the mime type in mimefilename. In most cases, the mime file can be a Q pointer to WK.MIME.TYPES in WebKit. if -NC is specified, HTMLFile outputs only the header - no content
HTMLFormGen generates a form page from the information in the WKCONTROL file calling sequence is: HTMLFormGen forms.id where forms.id is the id of the record in the WKCONTROL file that contains the control information about how to construct the page. The WKCONTROL file record contains the name of the uniVerse file that contains the static html segments and a list of html segment file names and uniVerse file names used to generate the form controls The forms control information is specified as filename recordid field ... where filename is the name a uniVerse file recordid is the record to update - specify as '' if new record field ... are the names of the fields to generate controls for
HTMLFormProc processes a form based on information in the WKCONTROL file calling sequence is: HTMLFormProc forms.id where forms.id is the id of the record in the WKCONTROL file that contains the control information about how to process the form request The WKCONTROL file record contains the name of the uniVerse file that contains the static html segments and a list of html segment file names and uniVerse file names used to process the form controls standard in may contain the POST arguments from the form
HTMLForms processes a form based on information in the WKCONTROL file calling sequence is: HTMLForms {-NH} forms.id where forms.id is the id of the record in the WKCONTROL file that contains the control information about how to process the form request The WKCONTROL file record contains the name of the uniVerse file that contains the static html segments and a list of html segment file names and uniVerse file names used to process the form controls standard in may contain the POST arguments from the form if so the argument string is put into a named common variable so it can be used by segments -NH means do not generate any HTTP headers. if the FORM.FILE field in the WKCONTROL file contains a "&" character then TextSubstitution (see below) is performed before opening. supported control segment types are: Type Parameters ADDRGS command to execute. Postargs are passed via named common strings of the form &xxx are replaced with the value of argstring variable named xxx before executing. Strings of the form &^xxx are replaced with UPCASE of value. Each line of output is placed on the front of argstring. Each line should be of the form nnnn or nnnn=xxxx ENCODE command to execute - output is CGI encoded EXECUTE command to execute, Post args are passed via named common REXECUTE command to execute, Post args are passed via named common SegmentInfo subject to CommandLineSubstitute (see below) IEXECUTE same as REXECUTE except command is chained to so all output is under control of command. Used for HTMLFile output OEXECUTE same as REXECUTE except the output is generated real time rather than captured. Should be preceded by FLUSH GENID command - name of a command that will generate on standard out a record ID for the incoming data. HEADER HTTP header record to insert in output stream Note: Use the character "|" or a sub-value mark to insert a carriage return on output. (Useful for MIME types) HEADER outputs a null line following header. SegmentInfo subject to CommandLineSubstitute (see below) HTML name of record in form file containing static html SHTML name of record in form file. Each line is subject to TextSubstitution (see below) The SegmentInfo is subject to TextSubstitute.(See below) LITERAL inline text to insert in output stream Note: Use a sub-value mark to insert a carriage return on output. (Useful for MIME types) SegmentInfo subject to TextSubstitute (see below) FLUSH flush the output stream. Like LITERAL except after the text is inserted in the output stream, the output is written to the server. (this does not work because the STDOUT pipe is usually buffered) REQUIRED names of controls that must be present in argstring and contain non null value. If not then if ERROR transaction is specified, control is passed to it. Otherwise an error message is generated the list of missing field infro is put on the argstring as @ErrorMsg and the transaction is terminated. SAVEARGS field number to save argstring in. For debugging, this will save the raw argstring in the field in record specified by @ID of file specified by @FILENAME VALIDATE executes a validation routine and puts the value returned in the first line onto the argstring as @AuthLevel=n if value returned is 0, it executes the ErrorSegment Second and subsequent lines of output are put on the the argstring, as in ADDARGS. if no error segment, it issues an error message and aborts. SegmentInfo subject to CommandLineSubstitute (see below) VALIDATES same as validate but it does not issue an error message for 0 If an ERROR transaction is specified for either VALIDATE or VALIDATES, then if the return is not a numeric > 0 then control is passed to the ERROR transaction, after putting @AuthLevel argument on the argstring. COOKIE Specifies cookie parameters to be inserted in the header name=value;expires=dotw, dd-mon-yyyy hh:mm:ss GMT;path=path; DOMAIN=domain; [secure] default domain is sending server, default path is path of doc default expires is life of browser session. GMT is only vald tz. @COOKIE.name=value is put on the argstring as well. The date can be specified as an interval from now by substituting WKEXPIRES=DATE for EXPIRES=date where: DATE=n [year{s} | month{s} | day{s}] DATE=n [hour{s} | minute{s} | second{s}] years|months|days are specified with time = current TOD years are calculated as 365.25 days months are calculated as 30.4375 days examples: testcookie=blah; wkexpires=2 days; path=/bin testcookie=; wkexpires=-1 hours (unset testcookie) BRANCH switches to the transaction control returned by execution of the command in segment info. Command line substitution is performed on the segment info before execution If output of command is "", then control is passed to the next segment (no branch). if the segment info starts with "=", then the segment info is used as the branch target. (e.g., BRANCH =NEXT.STEP branches to NEXT.STEP) GOSUB same as BRANCH but control returns to the next segment in this control after executing the specified transaction. May be used recursively. COMMENT The segment is ignored. SegInfo can be used to comment. CommandLineSubstitute: strings of the form &xxxx (&^xxxx) are replaced with the value of argstring variable xxxx (upcased value of argstring variable xxxx for &^xxxx) x is alphameric or . - _ characters if value contains spaces it is quoted before substitution. If xxxx is not in argstring or is empty, the string is deleted, unless the next character after xxxxx is ";" if next characters after xxxxx are "\&", they are deleted from output. This lets you substitute a value before a alphameric or one of the characters ".-_" E.g. If argstring contains Type=blue and SegmentInfo (or html segment) contains Filename=&Type\&.txt the output is Filename=blue.txt TextSubstitute: Same as CommandLineSubstitute except value is never quoted.
HTMLFormsD processes a form based on information in the WKCONTROL file calling sequence is: HTMLFormsD {-NH} forms.id where forms.id is the id of the record in the WKCONTROL file that contains the control information about how to process the form request The WKCONTROL file record contains the name of the uniVerse file that contains the static html segments and a list of html segment file names and uniVerse file names used to process the form controls standard in may contain the POST arguments from the form if so the argument string is put into a named common variable so it can be used by segments -NH means do not generate any HTTP headers. if the FORM.FILE field in the WKCONTROL file contains a "&" character then TextSubstitution (see below) is performed before opening. supported control segment types are: Type Parameters ADDRGS command to execute. Postargs are passed via named common strings of the form &xxx are replaced with the value of argstring variable named xxx before executing. Strings of the form &^xxx are replaced with UPCASE of value. Each line of output is placed on the front of argstring. Each line should be of the form nnnn or nnnn=xxxx ENCODE command to execute - output is CGI encoded EXECUTE command to execute, Post args are passed via named common REXECUTE command to execute, Post args are passed via named common SegmentInfo subject to CommandLineSubstitute (see below) IEXECUTE same as REXECUTE except command is chained to so all output is under control of command. Used for HTMLFile output OEXECUTE same as REXECUTE except the output is generated real time rather than captured. Should be preceded by FLUSH GENID command - name of a command that will generate on standard out a record ID for the incoming data. HEADER HTTP header record to insert in output stream Note: Use the character "|" or a sub-value mark to insert a carriage return on output. (Useful for MIME types) HEADER outputs a null line following header. SegmentInfo subject to CommandLineSubstitute (see below) HTML name of record in form file containing static html SHTML name of record in form file. Each line is subject to TextSubstitution (see below) The SegmentInfo is subject to TextSubstitute.(See below) LITERAL inline text to insert in output stream Note: Use a sub-value mark to insert a carriage return on output. (Useful for MIME types) SegmentInfo subject to TextSubstitute (see below) FLUSH flush the output stream. Like LITERAL except after the text is inserted in the output stream, the output is written to the server. (this does not work because the STDOUT pipe is usually buffered) REQUIRED names of controls that must be present in argstring and contain non null value. If not then if ERROR transaction is specified, control is passed to it. Otherwise an error message is generated the list of missing field infro is put on the argstring as @ErrorMsg and the transaction is terminated. SAVEARGS field number to save argstring in. For debugging, this will save the raw argstring in the field in record specified by @ID of file specified by @FILENAME VALIDATE executes a validation routine and puts the value returned in the first line onto the argstring as @AuthLevel=n if value returned is 0, it executes the ErrorSegment Second and subsequent lines of output are put on the the argstring, as in ADDARGS. if no error segment, it issues an error message and aborts. SegmentInfo subject to CommandLineSubstitute (see below) VALIDATES same as validate but it does not issue an error message for 0 If an ERROR transaction is specified for either VALIDATE or VALIDATES, then if the return is not a numeric > 0 then control is passed to the ERROR transaction, after putting @AuthLevel argument on the argstring. COOKIE Specifies cookie parameters to be inserted in the header name=value;expires=dotw, dd-mon-yyyy hh:mm:ss GMT;path=path; DOMAIN=domain; [secure] default domain is sending server, default path is path of doc default expires is life of browser session. GMT is only vald tz. @COOKIE.name=value is put on the argstring as well. The date can be specified as an interval from now by substituting WKEXPIRES=DATE for EXPIRES=date where: DATE=n [year{s} | month{s} | day{s}] DATE=n [hour{s} | minute{s} | second{s}] years|months|days are specified with time = current TOD years are calculated as 365.25 days months are calculated as 30.4375 days examples: testcookie=blah; wkexpires=2 days; path=/bin testcookie=; wkexpires=-1 hours (unset testcookie) BRANCH switches to the transaction control returned by execution of the command in segment info. Command line substitution is performed on the segment info before execution If output of command is "", then control is passed to the next segment (no branch). if the segment info starts with "=", then the segment info is used as the branch target. (e.g., BRANCH =NEXT.STEP branches to NEXT.STEP) GOSUB same as BRANCH but control returns to the next segment in this control after executing the specified transaction. May be used recursively. COMMENT The segment is ignored. SegInfo can be used to comment. CommandLineSubstitute: strings of the form &xxxx (&^xxxx) are replaced with the value of argstring variable xxxx (upcased value of argstring variable xxxx for &^xxxx) x is alphameric or . - _ characters if value contains spaces it is quoted before substitution. If xxxx is not in argstring or is empty, the string is deleted, unless the next character after xxxxx is ";" if next characters after xxxxx are "\&", they are deleted from output. This lets you substitute a value before a alphameric or one of the characters ".-_" E.g. If argstring contains Type=blue and SegmentInfo (or html segment) contains Filename=&Type\&.txt the output is Filename=blue.txt TextSubstitute: Same as CommandLineSubstitute except value is never quoted.
HTMLGenID generates the next ID for the specified file * HTMLGenID generates the next ID for the specified file * Calling sequence is: HTMLGenID [-F|X|S|D] [-A[idname]] idtype] filename [id] * -A specifies to generate output for use in an ADDARGS segment * which needs @ID=nnnn * -Aidname species an ID different from @ID * useful when there is an @ID for a different file already * on the argstring - returns idname=nnnn * -F used with [id] to force the specified id to be created if it doesn't exist * -X generate ID without writing anything * -S Save the NewID generated to select list 1 * idtype specifies the type of ID to generate * -D generates an ID of the form DDDDD-TTTTT (date-time) * -D9 generates an ID of the form DDDDD-TTTTTTTTT (date-time) * -Pidprefix genearate an ID of the form idprefixDDDDD-TTTTT * -Ndictentry generates a next available sequence * using the information in the dictentry X item * -Odictentry / -Edictentry same as -N but only uses odd/even * -U use the upcased value of the control specified by * argument as the ID * -Rx generate random number ID with optional x number of chars * default is -N * for -D and -N: * filename is the name of the file * id - if id is specified and exists in filename then * HTMLGenID just returns it, other wise it generates a newone * this allows HTMLGenID to be used in an ADDARGS segment * to conditionally create a new record. * if id = @SELECT then use the first item on SELECT list 1 * matt
HTMLGetArg returns the single argument or argument pair from an argument string. The argument string possibly contains multiple argument names or argument name, argument value pairs separated by @FM if the argname is a number n then HTMLGetArg returns the nth arguement pair. If argname is not a number then HTMLGetArg looks for an argument with that name. if the specified argument name does not appear in the argstring return @NULL otherwise return the name or the name=value multiple selection list boxes can put several argument name, value pairs into the argument string that have the same argument name if HTMLGetArg is called with an argument name, it returns all argument or argument name, value pairs with that name, separated by @FM unless the argument name starts with @ in which case it returns the first only if argument name is @SUBMIT then HTMLGetArg returns the following depending on the format of first argument starting with @SUBMIT argument format returned @SUBMIT=xxxxxx xxxxxx @SUBMIT.yyyyyy=xxxxxx yyyyyy @SUBMIT.zzzzzz.x zzzzzz @SUBMIT.zzzzzz.y zzzzzz This allows the form to contain multiple submit buttons or images, each conveying a different action or value.
HTMLGetArgSub returns the value returned by HTMLGetArg get the argument string
HTMLGetCookie extracts the cookie values from the EnvString and outputs strings of the form @COOKIE.name=value Used in ADDARGS HTMLForms segments to extract cookie information usage: HTMLGetCookie [name [filename [cmd]]] if no [name filename cmd] are specified, HTMLGetCookie just generates an @COOKIE.name=value pair for every COOKIE in the input string if there are cookies in the env that do not have a value, they are ignored if [name filename cmd] are specified, HTMLGetCookie looks for a cookie named name. If no filename and cmd are specified, it returns @COOKIE.name=value. If filename is specified, if value exists as a record ID in filename it returns @COOKIE.name=value otherwise it executes cmd filename and returns whatever comes back in Standard out as value in @COOKIE.name=value if name and filename are specified without cmd, cmd defaults to HTMLGenID -D
HTMLGetID @ID argument from a post argstring and executes the specified command with @ID as its argument Calling sequence is: HTMLGetID commnd where: command is a command to execute
HTMLGetPostargs returns the CGI argument string the normal place for the arguments to come from is standard input. on some machines, inputif has a 4K limit so the argstring is read from the temporary file f.wk puts it in. It also reads the environment variables and stores them in EnvString The VOC entry HTML.TRACExxx controls whether GETPOSTARGS saves the command environment or enters RAID If HTML.TRACExxx exists and xxxx is the IP address of the invoking client then the command and argstring are stored in HTML.LAST.CMDxxx in the VOC If HTML.TRACExxx field 2 is * then trace all IPs If field 3 has the VALUE "ON" then enter the debugger just before going back to calling program it puts any cookies on the argstring as @COOKIE.cookiename=value
HTMLGetPostargs returns the CGI argument string the normal place for the arguments to come from is standard input. on some machines, inputif has a 4K limit so the argstring is read from the temporary file f.wk puts it in. It also reads the environment variables and stores them in EnvString The VOC entry HTML.TRACE controls whether GETPOSTARGS saves the command environment or enters RAID If HTML.TRACE exists and field 2 is the IP address of the invoking client then the command and argstring are stored in HTML.LAST.CMD in the VOC If field 3 has the VALUE "ON" then enter the debugger just before going back to calling program
HTMLGetPostargs returns the CGI argument string GETPOSTARGSD waits on stdin for file name poiting to the argstring tmp file
HTMLGetPostargs returns the CGI argument string GETPOSTARGSD waits on stdin for file name poiting to the argstring tmp file
HTMLGridDisp formats a report using Bootstrap tags Calling Sequence is: HTMLGridDisplay {GridOptions} {-WKR wkreport} {-SF|SM|SE|NT|NH} {-TO} {-TT text} {-HT text} -HR n {DICT} FileName Fieldnames... where -WKR indicates a call from HTMLReport - column headers contain links to sort on column use of WKR requires wkrup.gif and wkrdown.gif exist in WKIMAGES and are 13 x 13 pixel images. wkreport must be WKCONTROL transaction name or name plus arguments (e.g., WKC.TRAN+arg1=3&arg2=blah) It may also contain the explicit relative URL e.g., /bin/f.wk?wkc.tran+arg1=3&arg2=blah for HTMLReport calls the field may be specified as dfield|sfield where dfield is the field displayed, while the sort URLs use sfield. -SF means first in a series -SM means middle of a series -SE means last of a series -TO means display only the header and total rows -TT text supplies the text to be displayed in the first column if the total row (assumes at least one @TOTAL fieldname in fields) if first column is a totaled column the text is not displayed. -HT specifies the text to be displayed as the table's caption -HR specifies to repeat the header row every n rows -NT|NH specifies that the headers not be displayed GridOptions is any of the following: -BORDER n (default = 2) -CELLSPACING n (default = 1) -CELLPADDING n (default = 5) -NOEMPTY - don't display fields with null string value -WIDTH xx{%} (default = no width specification) ALIGN specifies table alignemt -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) CALIGN specifies global cell alignment -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) Values are supplied with comma as delimiter. Defaults are RIGHT,TOP -COLOREVEN #xxxxxx -COLORODD #xxxxxx (default = #FFFFFF) -COLORHEAD #xxxxxx FileName the file being displayed FieldName are fields to be used. for HTMLReport calls FieldName can be: #FieldName - don't sort on this column dFieldName|sFieldName - display dFieldName but sort on sFieldName @TOTAL FieldName - Total this column - FieldName must be a numeric field (D or I) and cannot be PHRASE name HTMLGridDisplay generates a row at the bottom that contains the total of that column. @ID(s) of records to be displayed are in select list 1 If the select list contains value designators as a result of a by.exp select, HTMLGridDisplay uses the value number to select the value for each multivalued field.
HTMLGridOptions parses the table formatting arguments from the command line function HTMLGridOptions(GridOptions,CellAlignment,HTMLOutput) it returns the first non table formatting option it finds in the command line. if an option value is missing (-BORDER with no n, e.g.), it returns -1 as it value and the error message in HTMLOutput It returns the GridOptions and CellAligment Options ready to be passed to HTMLTagGrid GridOptions are any of the following: -BORDER n (default = 0) -CELLSPACING n (default = 1) -CELLPADDING n (default = 5) -NOEMPTY - don't display fields with null string value -WIDTH xx{%} (default = no width specification) ALIGN specifies table alignemt -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) CALIGN specifies global cell alignment -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) Values are supplied with comma as delimiter. Defaults are RIGHT for -TH and RIGHT,TOP for -TV -COLOREVEN #xxxxxx -COLORODD #xxxxxx -COLORHEAD #xxxxxx -CLASS text
HTMLIndex generates a page of links from the information in Select List 1 Calling sequence is: HTMLIndex type where type indicates the format of the list and can be one of: UL - bulleted list DL - Definition List format TABLE - table format Hn - header paragraph format where n = 1-6 if type is not specified, UL is the assumed Index data is in Select List 1 in the form: index_link @SM index_description
HTMLLoadEmps loads the EMPLOYEES file
HTMLMail mails the output of the specified command to the list of addressees specified. There are two versions of HTMLMail, the newer one gets the to and from addresses using HTMLGetArg. This allows the use of special characters, like single quotes. @EMAILTO @EMAILFROM usage: HTMLMail [-d] [-s "subject"] command The old version reads them from the command line. usage: HTMLMail [-s "subject"] [-r "replyTo"] -l "addressees" command where subject is the subject of the message. Default is "WebKit Mail" addressees is a space delimited list of email recipients command is the command which will generate the body of the email the -l species that a separate mail should be sent to each recipient in the list of "addresses" there is also a new syntax for specifying the HTML.LAST.CMD. the old form (which is still supported) of HTML.LAST.CMD is: PA SH -c 'mhmail <<C2>>' the new syntax is X mhmail "%Addresses%" -subject "%Subject%" -from "%ReplyTo%" in either case the actual mail command format may vary. if -d is specified, the temporary file is not deleted in WKSCRIPTS
HTMLManageList manipulates select lists usage: HTMLManageList -S sl# filename recid fieldnum save the specified list as a field in the specified file,record HTMLManageList -SA sl# filename recid fieldnum append the specified list to a field in the specified file,record HTMLManageList -G sl# filename recid fieldnum create the specified list from the values in the specified file,record,field HTMLManageList -C sl1 sl2 sl3 combine sl1 and sl2 and put into sl3 HTMLManageList -U sl1 sl2 delete duplicates in sl1 so sl2 has unique values
HTMLMetaSend mails the output of the specified command to the list of addressees specified. There are two versions of HTMLMetaSend, the newer one gets the to and from addresses using HTMLGetArg. This allows the use of special characters, like single quotes. @EMAILTO @EMAILFROM usage: HTMLMetaSend [-s "subject"] [-r "replyTo"] "addressees" command The old version reads them from the command line. usage: HTMLMetaSend [-s "subject"] [-r "replyTo"] "addressees" command where subject is the subject of the message. Default is "WebKit Mail" addressees is a space delimited list of email recipients command is the command which will generate the body of the email
HTMLMetaSend mails the output of the specified command to the list of addressees specified. There are two versions of HTMLMetaSend, the newer one gets the to and from addresses using HTMLGetArg. This allows the use of special characters, like single quotes. @EMAILTO @EMAILFROM usage: HTMLMetaSend [-s "subject"] [-r "replyTo"] "addressees" command The old version reads them from the command line. usage: HTMLMetaSend [-s "subject"] [-r "replyTo"] "addressees" command where subject is the subject of the message. Default is "WebKit Mail" addressees is a space delimited list of email recipients command is the command which will generate the body of the email
HTMLMail mails the output of the specified command to the list of addressees specified. There are two versions of HTMLMail, the newer one gets the to and from addresses using HTMLGetArg. This allows the use of special characters, like single quotes. @EMAILTO @EMAILFROM usage: HTMLMail [-d] [-s "subject"] command The old version reads them from the command line. usage: HTMLMail [-s "subject"] [-r "replyTo"] -l "addressees" command where subject is the subject of the message. Default is "WebKit Mail" addressees is a space delimited list of email recipients command is the command which will generate the body of the email the -l species that a separate mail should be sent to each recipient in the list of "addresses" there is also a new syntax for specifying the HTML.LAST.CMD. the old form (which is still supported) of HTML.LAST.CMD is: PA SH -c 'mhmail <<C2>>' the new syntax is X mhmail "%Addresses%" -subject "%Subject%" -from "%ReplyTo%" in either case the actual mail command format may vary. if -d is specified, the temporary file is not deleted in WKSCRIPTS
HTMLContinueMultiPart executes the specified command and appends the multipart mixed replace boundary string to it. The specified command must generate correct html including the header
HTMLStartMultiPart writes out the header for a multipart mixed doc
HTMLMultiMail - send multipart emails. usage: HTMLMail [-d] [-s "subject"] command The old version reads them from the command line. usage: HTMLMail [-s "subject"] [-r "replyTo"] -l "addressees" command where subject is the subject of the message. Default is "WebKit Mail" addressees is a space delimited list of email recipients command is the command which will generate the body of the email the -l species that a separate mail should be sent to each recipient in the list of "addresses" there is also a new syntax for specifying the HTML.LAST.CMD. the old form (which is still supported) of HTML.LAST.CMD is: PA SH -c 'mhmail <<C2>>' the new syntax is X mhmail "%Addresses%" -subject "%Subject%" -from "%ReplyTo%" in either case the actual mail command format may vary. if -d is specified, the temporary file is not deleted in WKSCRIPTS
HTMLNextAvail returns the next available ID for a file where filename is the name of the file. file is an open file variable to data portion of the file NextAvailID is the ID of the next available record in the dict NextAvailRec is used to pass back the next available record as it was written back to the dictionary. It reads the specified next available record from the dictionary of the specified file and extracts the next sequential ID from field 2 of the X record. It tries to read that ID. If it can read it, it bumps the ID by 1 and tries until it gets an error reading the ID. It then bumps the ID by one and writes back the next available record. if there is an error the function returns a value of -1 and the error message is in NextAvailRec
HTMLNextTag scans a string for an HTML Tag and returns pointers to the tag in the string as well as the name of the tag calling sequence: HTMLNextTag(UpcaseString,Pointer,TagStart,TagEnd) where UpcaseString is the input string - it should be in all uppercase Pointer is the substring pointer of where the scan should begin TagStart returns the substring index of the first character of the Tag (the character after the <) TagEnd returns the substring index of the final ">" of the tag the value of the function is the tag name (everything from the initial > to the first space character. If it doesn't find a Tag in the string the value returned is the null string
HTMLQuestionDisplay generates the HTML from input based on the MQ.PANSET file of predefined questions. Usage HTMLQuestionDisplay PanelID AnsID [isPrint] where: PanelID - Identifier for questions AnsID - The ID of the answer record isPrint - Displays entry without tables when value is # 0 **************
HTMLQuestion generates the HTML for a form from the MQ.PANSET file of predefined questions. Usage HTMLQuestion PanelID [Page] [QuestStart] where: FormsFile - File where templates are stored PanelID - Identifier for questions Page (default: 1)- Page to display QuestStart (default: 1)- Question number to start with Questions are derived from MQ.PANSET display is determined by the following fields: PanelID - An identifier for this questionnaire SEQ - Position on the form LABEL - Text displayed as field prompt, except when TYPE is file then this field contains the directory name. TYPE - Type of form object TEXT - Single line text entry, use multivalues for more than one input per line, results in multivalued field TEXTAREA - Multi-line text area RADIO - Radio Buttons values are found in F7 CHECK - Check Boxes values are found in F7 DISPLAY - Display values as text only (column headings) FILE - The name of the file in the directory defined in F2 SIZE - Size (width) of text entry field. default is 30 LAYOUT - Specify how the data should be arranged using Fnnn. Options are: R|C - Rows or Columns nnn - Number of rows or columns VALUES - Values for RADIO and CHECK, the name of FILE, or the text preceding multiple input boxes (see TEXT) PAGE - Page number on which to display this field in SEQ order **************
HTMLPerform executes a uniVerse command and returns the output the command is passed as a single argument so it must be enclosed in quotes if it has any white space
HTMLPrintSelect prints the entries in specified select list This allows the SELECT SAVING.. to generate html without the report headers calling sequence: HTMLPrintSelect [-R] n m where n is the number of the select list to print where m is either 1 (display selected count) or 0 (do not display) -R means display in reverse order
HTMLQBEEqual creates a query from selected field values usage: HTMLQBEEqual filename argstring optionally contains @Filename=filename (the name of the file) and FIELDNAME=FIELDVALUE pairs The command line filename overrides any @Filename in the argstring controls that have the empty string as their value and controls that are not fields in the file are ignored. HTMLQBEEqual constructs a query that returns the records that have the specified values in the specified fields in Select List 1 if the client IP address matches the one in HTML.TRACE VOC entry, HTMLQBEEqual stores the constructed RETRIEVE sentence in the VOC entry HTML.QBEEQUAL
HTMLQBELike creates a query from selected field values usage: HTMLQBELike [-OR_AND | -OR_OR | -AND_OR | -AND_AND] filename [fieldname] ... argstring contains (optionally) @Filename=filename (the name of the file) filename on command line overrides argstring filename and FIELDNAME=FIELDVALUE pairs if fieldname(s) are specified on the commmand line then only those arguments are treated as field names The options determine how the words/phrases within a field and the fields themselves are joined in the query. The default is -OR_AND HTMLQBELike constructs a query that returns the records that have the specified values in the specified fields in Select List 1 it ignores controls that have the null string specified as value in argstring. or controls that are not fields in the file The search terms can include strings of the form "...." "...." the strings inside the "'s are to be treated as phrases e.g., if the argstring is FIELD1=word+"a phrase"&FIELD2=another then HTMLQBELike filename FIELD1 FIELD2 generates the select SELECT filename WITH (FIELD1 LIKE ...word... OR FIELD1 LIKE '..."a phrase"...' AND WITH (FIELD2 LIKE ...another...) HTMLQBELike -AND_AND filename FIELD1 FIELD2 generates the select SELECT filename WITH (FIELD1 LIKE ...word... AND FIELD1 LIKE '..."a phrase"...' AND WITH (FIELD2 LIKE ...another...) if a search word starts with "[" then the comparison is anchored at the start if a search word ends with "]" then the comparison is anchored at the end [word] is the equivalent of an equal comparison if we are tracing then HTMLQBELike stores the constructed RETRIEVE sentence in the VOC entry HTML.QBELIKExxx where xxx is the remoteIP
HTMLQBELike creates a query from selected field values usage: HTMLQBELike filename argstring contains (optionally) @Filename=filename (the name of the file) filename on command line overrides argstring filename and FIELDNAME=FIELDVALUE pairs HTMLQBELike constructs a query that returns the records that have the specified values in the specified fields in Select List 1 it ignores controls that have the null string specified as value in argstring.
HTMLQuizGen generates a multiple choice quiz usage: HTMLQuizGen quizfilename [resultsFileID resultsFileName offset] Input is in quiz file. Each record has the form Field 1 - question [@VM M | S] Field 2-n - choices Record IDs have the form test-section-questionIdentifier Records are passed in Select List 1 HTMLQuizGen generates a table of the questions followed by radio buttons named questionIdentier. if @VM M is specified after the question, generate a multiple check box if @VM S is specified after the question, generate a select list if @VM MS is specified after the question, generate a mulitple select list if resultsFileName and resultsFileID are specified, HTMLQuizGen reads the results record and sets the current answer as checked. resultsFileName is the name of the results file resultsFileID is the record offset is the field before the first answer
HTMLReferCheck serves the specified page if the HTTP_REFER value is specified in a file named authreferer in the directory containing the file. If the REFERER is not authorized HTMLReferCheck looks for a page named nauthreferer in the same directory and serves that. If that doesn't exist, it sends back a Locate for the page /NotFound which should result in the default Not Found message from the server. If there is no authrefer file in the directory, the page is served The path of the file requested is passed in PATH_INFO env variable. There must be a cgi program setup that calls HTMLReferCheck. E.g. if the following sgi script is named check in cgi directory /bin #!/bin/sh # generalized script for invoking a uniVerse program to process # post method input from form WKPROD="*** put production WebKit Account Path Here ***" WKPREPROC="HTMLReferCheck" CGIBIN="$WKPROD/WKSCRIPTS" cd $WKPROD UVCMD="$WKPREPROC " TERM=dumb $CGIBIN/execuv "$UVCMD" then to serve the page /private/page.html the URL would be http://www.mmcom.com/bin/check/private/page.html
HTMLRemove reads a specified number of ID's stored in a named savedlist and saves them to SLIST 1. usage: HTMLRemove browselist numentries where browselist is the name of a saved select list numentries is the number of entries to copy to SLIST 1 (default 1) HTMLRemove copies numentries records from browselist, and saves them to SLIST 1 * for further processing.
HTMLReport generates a report from the information in the specified record in the WKREPORT file usage: HTMLReport [-SO|-D|-P|-C[D] reportcommand] [-N filename] [-USL] reportid {wkcontrolid|-} [-F displayfield] [ [-]sortfield ] ... where reportid is the ID of a report descriptor record WKREPORT wkcontrolid is the name of the wkcontrol transaction that will do the generated sorting links. This transaction must look for sort column in control named WKSortCol Specify wkcontrol id as - to skip generating col sort links wkcontrolID can either be a WKCONTROL file record ID or it can be the entire URL e.g., "test.report.demo" or "/ts-bin/f.wk?test.report.demo" in either case, you can supply additional arguments e.g., "test.report.demo+arg1=1&arg2=2" see REPORT.B for details sortfield is the name of field in the report to sort on - before field name indicates descending sort -D indicates download. The download format is specified by an IType in the DOWNLOAD.ITYPE field in the report descriptor wkcontrolid is ignored but argument place must be reserved by using - or any other token -P specifies Preformatted report (RETRIEVE) instead of HTMLTableDisplay -C[D] reportcommand specifes a custom report [download] command -F displayfield specifies an additional display field/phrase (to those in the FIELDS specification of the WKREPORT file. -SO do the select only. -N filename specifies a file containing IDs to NSELECT from the the original selection. -USL Use select list WKR.reportID instead of generating the select on the fly - if list does not exist, generate it first under the following conditions: if select list 1 is not empty, ignore the -USL option if the list does not exist, generate it with a SELECT that only uses the sort criteria specified in field 10 of the WKREPORT entry. If sort fields are specified on the command line and a -USL select list is used, do the GET.LIST followed by a SELECT statement that only does the sort, no selection. The selection criteria is specified in the association containing SELECTION.CONNECTOR SELECTION. SELECTION.CONNECTOR contains either AND or OR and the SELECTION field contains the selection phrase. e.g. SELECTION SELECTION.CONNECTOR WITH COLOR = "BLACK" AND WITH SIZE = "BIG" results in a selection criteria of WITH COLOR = "BLACK" AND WITH SIZE = "BIG" The selection command is passed whatever is in SELECT LIST 1 so if there are entries in Select List 1 then the selection is done from that set. If there is nothing in Select List 1 then the selection is done from the whole file. Report Descriptor format Field Contents 1 FILE - file used for the report 2 FIELDS - may contain phrase or field definitions prepend a # to any field not to be sorted. for sortable fields, specifying dfield|sfield causes the sort URL to specify sfield while dfield is displayed 3 TABLE.OPTIONS specifies the HTMLTableDisplay options 4 SELECTION selection criteria (multivalued assoc with SELECTOR.CONNECTOR 5 DESCRIPTION - report description 6 HEADER - report header (html) 7 DOWNLOAD.FIELDS - fields in the download file or 7 DOWNLOAD.ITYPE - IType record in FILE that generates download records 8 DOWNLOAD.HEADER - first record in download - usually specifies fields 9 SELECTION.CONNECTOR (AND, OR , END) - connector for SELECTION the selection fields may contain parentheses. 10 default sort fields - only used if no sort fields specified on cmd lin
HTMLReqField - checks for contents in fields specified. Missing or incorrect fields can be added to @ErrorMsg, along with custom messages per file. HTMLReqField -L FileName @ID Field1 Field2... where -L list field names default behavior changes &FieldName.REQ "class" in argstring to 'reqfld' for missing fields, reqfldfmt for incorrectly formatted fields. FileName File with required fields Field1 Field2.. Fields or PHrases of validated/required fields Data may be qualified using a variation on the MATCH keyword plus options for email and conditional contents the syntax is [fldAct|fldOpr|fldNum|fldVal] fldAct is one of C conditional where fldOpr is <, >, =, or # fldNum is the field number or name to compare fldVal is the value to test against [C|=|11|USA] field is required if F11 is USA E Email string contains @ and two '.' delimited strs nX matches n or more alpha or numeric vals (0 is any) nA matches n or more alpha vals (0 is any) nN matches n or more numeric vals (0 is any) set the class to &FieldName.REQ to apply the reqfld class to an object Set up xtypes to specify text to appear before, after, or replace the default delimiter (comma) Field 1 should look like: X REQ [B|A|D] field 2 contains the replacement
HTMLRequired checks for the presence of specified controls in argstring calling sequence is: HTMLRequired {-e emailfield} {-r emailfield restrictedfield} {-t timefield} {-d datefield} {-z zipfield} filename field ... in a VALIDATE segment in WKCONTROL where filename is the file containing the fields corresponding to the controls if filename is specified as - then all the fields are checked directly if filename is specified then field can be a phrase only control names prefixed by + are checked specifications such as @NEW.ROW are ignored as are controls that are not in file dictionary control names prefixed by $ are required and are additionally checked for no spaces if -e emailfield is specified, HTMLRequired does some format checking on the value in the control named emailfield if -r emailfield restrictedfield is specified, HTMLRequired checks for a match between the contents of emailfield and each item in restrictedfield. if -t timefield is specified HTMLRequired checks that the input is valid for the corresponding dictionary's time conversion if -d datefield is specified HTMLRequired checks that the input is valid for the corresponding dictionary's date conversion if -z zipfield is specified HTMLRequired checks that the input is either 5 or 9 digits or 5 digit - 4 digit
HTMLReturnSelectList returns the data in select list 1 as an application/x-savefile for saving as a file by the browser. Syntax: HTMLReturnSelectList
HTMLRevise is a general data entry tool for uniVerse files. It generates an input form for the specified record in the specified file and then updates the record with the data entered. Calling sequence is: HTMLRevise FileName=filename [ID=recordID] [Field=field] ... where filename is the name of the uniVerse file recordID is the record in the file to be updated if Record ID is not specified, REVISE generates the next available ID if the dictionary contains a &NEXT.AVAILABLE& record or leaves it blank to be entered by the user field specifies the fields to updated. field can be a field name or a phrase name. Phrases are interpreted recursively. if no field is specified, HTMLRevise uses @REVISE
HTMLReviseIn updates the file with the data supplied in the WKRevise Form HTMLReviseIn FileName=filename Fields=datafields where filename is the name of the uniVerse file -supplied via a hidden tag field specifies the fields that were updated. It is supplied via a hidden tag
HTMLRGBHex converts the decimal specification of RGB color to hex
HTMLSearch process the search terms specified on the search form and then passes them to the specified command calling sequence: HTMLSearch search form must contain the following arguments: KeyWord=keyword string SearchCommand=command to execute to generate search results (found on the command line)
HTMLSelectList generates a select list tag to be inserted in a prepared form usage: HTMLSelectList [-N ctlname] [-M] [-L "string"a| -C "cmd"] [-S "script"] selectioncmd [depth] where selectioncmd is the uniVerse command to execute to generate the list depth is the depth of the generated list - default=4 ctlname is the name of the form control (default is WKSelectList) -M specifies a multichoice select list -L specifies a literal string to put at the top of the list use ~ to indicate @TM and %%NULL%% to indicate an empty value -C specifies a command to execute. The results are prepended to the list produced by the selectioncmd -S "javacsript" specify the script (call) to put in for the ondblClick event of the selectlist The selectcmd must produce 1) SELECT LIST 1 - values to be put into list if the select list entries contain a TextMark (ASCII 251) then the string after the @TM is used as the VALUE of the list item and the string before as the list text WKSelectList - the SELECT Tag containing the choices
HTMLSelectResponse handles input from the form generated by HTMLSelectList usage: HTMLSelectResponse WKSelectRCmd The POST argument string must contain the following: WKSelectList - the SELECT Tag containing the choices
HTMLSLBrowse is used to break up long select list processing into smaller chunks Usage: HTMLSLBrowse {-A|-S|[-NOSUM] Action_URL} LISTID CurrentEntry StepVal where: -NOSUM removes the n of nn from the summary above the table Action_URL is the URL to use in the select navigation buttons it must end in a simple WKCONTROL transaction name (no parameters). LISTID is the name of a select list in &SAVEDLISTS& CurrentEntry is the value of the (first) field displayed StepVal is the number of entries to display on each result page -A specifies this call is in a WKCONTROL ADDARGS type transaction. It generates the following argument=value pairs: @RecCount - # records in list @CurrentStart - current entry value (as adjusted by SLBrowse) @CurrentEnd - Current Entry + StepVal - 1 @PPageStart - CurrentEntry value for previous page @PPageEnd - CurrentEnd value for previous page @NPageStart - CurrentEntry value for next page @NPageEnd - CurrentEnd value for next page @LPageStart - Current Entry value for last page -S generates select list starting with CurrentEntry for StepVal entries and puts it into Select List 1 -U Use select list n instead of LISTID
HTMLSecurePayInterface interfaces with the SecurePay CreditCard processing website Useage: HTMLSecurePayInterface [-A AVSREQ_Value] Merch_ID In a Validate WKCONTROL Segment. URL for securepay as of 9/14/01: "https://www.securepay.com/secure1/index.asp" Options: -A AVSREQ_Value default AVSREQ=1 !!!!! Note, for DEBUG (which means, leave the script) use a AVSREQ=DEBUG AVSREQ = 0 Set the AVSREQ to "0" when you do not want to do an AVS Check. AVSREQ = 1 Set the AVSREQ to "1" when you want a transaction authorization and a Full AVS (both street address and zip code). AVSREQ = 2 Set the AVSREQ to "2" when you want an AVS only, Full AVS but do not authorize the Credit Card. AVSREQ = 3 Set the AVSREQ to "3" when you want Credit Card Authorization and Zip Code AVS Only. AVSREQ = 4 Set the AVSREQ to "4" when you want AVS with Zip Code only, do not authorize the Credit Card. Inputs: MerchID - Merchant ID needed to submit to SecurePay Argstring: [@SPName @SPNumber @SPType @SPMonth @SPYear @SPEmail @SPAmount ] Email - Email of customer @SPAmount - If no amount is given, 0 is assumed (for checking information) (Might need to change this if they get charged by transaction). If amount is negative the Tr_Type = credit Outputs: Positive - first line is a "1" and the name value sets: ReturnCode=Y [ Y or N ] ApprovNum=705224 [ xxx = approval number ] CardResponse=APPROVAL [ descriptive string (not meant for customer)] AvsResponse=Y [ AVS code response, see line 252 below ] VoidRecNum=xxx [ xxx = number returned by S.P.] Negative - first line is a "0" and then @ErrorMsg="message why declined"
HTMLTableDisplay formats a report using TABLE tags Calling Sequence is: HTMLTableDisplay {TableOptions} {-WKR wkreport} {-SF|SM|SE|NT|NH} {-TO} {-TT text} {-HT text} -HR n {DICT} FileName Fieldnames... where -WKR indicates a call from HTMLReport - column headers contain links to sort on column use of WKR requires wkrup.gif and wkrdown.gif exist in WKIMAGES and are 13 x 13 pixel images. wkreport must be WKCONTROL transaction name or name plus arguments (e.g., WKC.TRAN+arg1=3&arg2=blah) It may also contain the explicit relative URL e.g., /bin/f.wk?wkc.tran+arg1=3&arg2=blah for HTMLReport calls the field may be specified as dfield|sfield where dfield is the field displayed, while the sort URLs use sfield. -SF means first in a series -SM means middle of a series -SE means last of a series -TO means display only the header and total rows -TT text supplies the text to be displayed in the first column if the total row (assumes at least one @TOTAL fieldname in fields) if first column is a totaled column the text is not displayed. -HT specifies the text to be displayed as the table's caption -HR specifies to repeat the header row every n rows -NT|NH specifies that the headers not be displayed TableOptions is any of the following: -BORDER n (default = 2) -CELLSPACING n (default = 1) -CELLPADDING n (default = 5) -NOEMPTY - don't display fields with null string value -WIDTH xx{%} (default = no width specification) ALIGN specifies table alignemt -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) CALIGN specifies global cell alignment -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) Values are supplied with comma as delimiter. Defaults are RIGHT,TOP if Align is set to DATA cell alignment depends on F5 in DICT -COLOREVEN #xxxxxx -COLORODD #xxxxxx (default = #FFFFFF) -COLORHEAD #xxxxxx FileName the file being displayed FieldName are fields to be used. for HTMLReport calls FieldName can be: #FieldName - don't sort on this column dFieldName|sFieldName - display dFieldName but sort on sFieldName @TOTAL FieldName - Total this column - FieldName must be a numeric field (D or I) and cannot be PHRASE name HTMLTableDisplay generates a row at the bottom that contains the total of that column. @ID(s) of records to be displayed are in select list 1 If the select list contains value designators as a result of a by.exp select, HTMLTableDisplay uses the value number to select the value for each multivalued field.
HTMLTableEntry creates form controls to update fields in multiple records Calling Sequence is: HTMLTableEntry {TableOptions} {-NOTEMPTY} {DICT} FileName Fieldnames... TableOptions is any of the following: -BORDER n (default = 2) -CELLSPACING n (default = 1) -CELLPADDING n (default = 5) -NOEMPTY - don't display fields with null string value -WIDTH xx{%} (default = no width specification) ALIGN specifies table alignemt -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) CALIGN specifies global cell alignment -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) Values are supplied with comma as delimiter. Defaults are right,top -COLOREVEN #xxxxxx -COLORODD #xxxxxx (default = #FFFFFF) -COLORHEAD #xxxxxx FileName the file being displayed FieldName are fields to be used. @ID(s) of records to be processed are in Select List 2 select list 2 is used because the generation of various input controls use Select List 1 HTMLTableEntry generates control names of the form WKTEWK%@ID%FieldName where @ID is the record ID of the file and FieldName is the name of the field. obviously record IDs and fields processed may not have % in them. These controls are meant to be processed by HTMLTableWrite
HTMLTableOptions parses the table formatting arguments from the command line function HTMLTableOptions(TableOptions,CellAlignment,HTMLOutput) it returns the first non table formatting option it finds in the command line. if an option value is missing (-BORDER with no n, e.g.), it returns -1 as it value and the error message in HTMLOutput It returns the TableOptions and CellAligment Options ready to be passed to HTMLTagTable TableOptions are any of the following: -BORDER n (default = 0) -CELLSPACING n (default = 1) -CELLPADDING n (default = 5) -NOEMPTY - don't display fields with null string value -WIDTH xx{%} (default = no width specification) ALIGN specifies table alignemt -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) CALIGN specifies global cell alignment -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) Values are supplied with comma as delimiter. Defaults are RIGHT for -TH and RIGHT,TOP for -TV -COLOREVEN #xxxxxx -COLORODD #xxxxxx -COLORHEAD #xxxxxx -CLASS text
HTMLTableWrite updates records with the same value usage: HTMLTableWrite filename {fieldname} the records to be updated are in select list 1 the record IDs are put back in Select List 1 on completion if fieldname is specified, then the value of the field is taken from the argstring and placed in every specified record. if field name is not specified, HTMLTableWrite looks for arguments of the form WKTEWK%recordID%fieldname and uses them to update the specified field of the specified record to the value.
HTMLTagBody returns the HTML ouput needed for generating the start or the end of the heading for a document.
HTMLTagCheckBox returns a dynamic array containing the HTML ouput needed for generating a CHECKBOX. If checked is not the empty string then the CHECKED option is set if checked has a second field it is an event handler
HTMLTagFormPost returns a dynamic array containing the HTML ouput needed for generating a FORM with the POST method.
HTMLTagTable returns a dynamic array containing a Bootstrap grid. input parameters are: Options - table attributes delimited by @FM, empty values are defaulted values: BORDER @FM CELLSPACING @FM CELLPADDING @FM WIDTH @FM ALIGNMENT defaults: 1 2 1 none none values (cont): COLOREVEN @FM COLORODD @FM COLORHEAD @FM CLASS defaults: none #FFFFFF none Caption - caption information, default alignment is bottom caption text @FM alignment TableData - rows are delimited by @FM, data cells within the rows by @VM A data cell can be a dynamic array that specifies the attributes as well as the values with the following format and defaults. The attribute information is first, followed by @SVM and then the data values (defaults are indicated in the line below the definition: H(eading) @TM ALIGN @TM VALIGN @TM NOWRAP @TM COLSPAN @TM ROWSPAN @TM CLASS @SVM (data) left center wrap 1 1 @TEXTRENDEROPTIONS - if this option exists on the argstring, then do text rendering instead of using the table tag @EXTRAOPTIONSTR - If this option exists on the argstring, then insert it's data value into the <tr> tag. This was added so you could insert things like onmouseover and stuff like that. @EXTRAOPTIONSTD - If this option exists on the argstring, then insert it's data value into the <td> tag. This was added so you could insert things like onmouseover and stuff like that. @TAGGRIDOPTIONS - Use this to define parameters for responsive formats frameworks like bootstrap or w3.css
HTMLTagHead returns the HTML ouput needed for generating the start or the end of the heading for a document.
HTMLTagHeader returns the HTML ouput needed for generating headings at the specified level
HTMLTagImage returns a dynamic array containing the HTML output needed for generating a IMAGE.
HTMLTagLabel returns a dynamic array containing the HTML ouput needed for generating a LABEL.
HTMLTagLi returns the HTML ouput needed for generating list item.
HTMLTagLink - generates the HTML for a HREF LINK.
HTMLTagList generates HTML a bulleted ordered or unordered list from the data passed to it. Calling sequence HTMLTagUL(listdata,flags) Where listdata is a dynamic array containing the list items separated by field marks and flags is a string containing type of list (ol or ul) and followed by desired paramters for the list. - note: parameters not necessary
HTMLTagPassword returns the HTML for a PASWORD input form tag.
HTMLTagRadio returns the HTML for a RADIO BUTTON form tag. checked can have an event handler as the second field
HTMLTagReset returns the HTML for a RESET button form tag.
HTMLTagSelect returns the HTML for a SELECT list tag. if multi is MULTIPLE.SELECT then add the multiple option to the SELECT tag if multi has a second field, insert it as is in select tag - (event handler) if any of the fields in selected match a field in items, mark that selection as Selected HTMLTagSelect checks the list option text and the value for selected matches if the select list items contain a TextMark (ASCII 251) then use the string after the @TM as the VALUE of the list option and the string before it as the list option text. Otherwise do not specify the VALUE keyword in the option tag if argstring contains @BOOTSTRAP=1 then add class="form-control"
HTMLTagStrong returns the HTML for STRONG text.
HTMLTagSubmit returns the HTML for a SUBMIT button form tag.
HTMLTagTable returns a dynamic array containing an HTML table. input parameters are: Options - table attributes delimited by @FM, empty values are defaulted values: BORDER @FM CELLSPACING @FM CELLPADDING @FM WIDTH @FM ALIGNMENT defaults: 1 2 1 none none values (cont): COLOREVEN @FM COLORODD @FM COLORHEAD defaults: none #FFFFFF none Caption - caption information, default alignment is bottom caption text @FM alignment TableData - rows are delimited by @FM, data cells within the rows by @VM A data cell can be a dynamic array that specifies the attributes as well as the values with the following format and defaults. The attribute information is first, followed by @SVM and then the data values (defaults are indicated in the line below the definition: H(eading) @TM ALIGN @TM VALIGN @TM NOWRAP @TM COLSPAN @TM ROWSPAN @TM CLASS @SVM (data) left center wrap 1 1 @TEXTRENDEROPTIONS - if this option exists on the argstring, then do text rendering instead of using the table tag @EXTRAOPTIONSTR - If this option exists on the argstring, then insert it's data value into the <tr> tag. This was added so you could insert things like onmouseover and stuff like that. @EXTRAOPTIONSTD - If this option exists on the argstring, then insert it's data value into the <td> tag. This was added so you could insert things like onmouseover and stuff like that.
HTMLTagTextArea returns a dynamic array containing the HTML output for generating a TEXTAREA tag. The lines to go into the TEXTAREA are passed as fields in the second parameter if wrap has a second field it is placeholder text if argstring contains @BOOTSTRAP=1 then add class="form-control"
HTMLTextInput returns a dynamic array containing the HTML ouput needed for generating a Textinput tag if size = :nn then set maxlength = nn as well as size. name can have subvalues that specify an OnCondition and/or placeholder in that case: name@FMoncond@FMplaceholder if argstring contains @BOOTSTRAP=1 then add class="form-control"
HTMLTagUl returns the HTML ouput needed for generating the start or the end of an unordered list
HTMLTagUL generates HTML bulleted list from the data passed to it Calling sequence HTMLTagUL(listdata) Where listdata is a dynamic array containing the list items separated by field marks.
HTMLTemplate is template for a general Form handling routine
HTMLTextAreaDisplay generates a textarea tag containing the specified record Calling Sequence is: HTMLTextAreaDisplay arguments are passed in argstring @FileName is the name of the Universe file and RecordID is the @ID for the record.
HTMLTextAreaUpdate writes the contents of a textarea control to the specified record
HTMLTextHeader outputs the two line Content type/text html header
HTMLTraceMe sets the HTML.TRACExxxxxx voc entry to client IP address it is self contained so it must be invoked with x.wk where xxxxxx is the IP address
HTMLURLEncode encodes a string so it can be used as a URL usage: HTMLURLEncode "string" all spaces are converted to + and all other non alphamerics are converted to %xx where xx is the ascii value of the character. Conversions are done by HTMLCGIEncode
HTMLUVReport formats an SQL or RETRIEVE report as an HTML table Calling Sequence is: HTMLUVReport {TableOptions} "reportcmd" where TableOptions is any of the following: -BORDER n (default = 2) -CELLSPACING n (default = 1) -CELLPADDING n (default = 5) -NOEMPTY - don't display fields with null string value -WIDTH xx{%} (default = no width specification) ALIGN specifies table alignemt -ALIGN [LEFT|CENTER|RIGHT] (default = no alignment) CALIGN specifies global cell alignment -CALIGN (Align,Valign,NoWrap,ColSpan,RowSpan) Values are supplied with comma as delimiter. Defaults are RIGHT,TOP -COLOREVEN #xxxxxx -COLORODD #xxxxxx (default = #FFFFFF) reportcmd is the name of the command to run. any records in Select List 1 is passed to the command in Select List 0 The term width is set to 250. The report generated must fit in that width with a column spacing of at least 3. Use COL.SPACES to fix the column spacing to at least 3. Columns that contain wrapped data are not displayed correctly.
HTMLUVTCL Executes a uniVerse command and returns the output
HTMLValidate checks for a matching value in specified fields of a file It is designed to be executed by the VALIDATE segment code in HTMLForms. usage: HTMLValidate -L [-IGNORE string] filename @ID password field ... where filename is the name of the file to check password is the actual password value @ID is the record to check field ... are names of fields in file to compare the control value to. -IGNORE string tells HTMLValidate to silently ignore @ID failures if they match string. Default is "" HTMLValidate outputs either a number which is the index of the field which the control value matches, or an error message For example, HTMLValidate -L FILE PASSWORD PW1 PW2 PW3 if the value of the PASSWORD argument on the command line matches PW1, HTMLValidate outputs "1", if it doesn't match PW2 but matches PW2, HTMLValidate outputs "2". If it doesn't match PW1, PW2, or PW3 it outputs "0" if no password or field is specified, HTMLValidate just checks to see if the record exists and returns 1 if it does, 0 if it doesn't. The auth level is appended to argstring as @AuthLevel by HTLMForms obsolete usage: HTMLValidate filename control field ... control is the name of the argument in argstring that contains the user supplied password value record ID is taken from @ID argstring control
HTMLVMtoBR converts Value marks in multi valued fields to HTML line break tags for output.
HTMLWKControlFreeForm allows editing of a WKControl transaction in a textarea usage: HTMLWKControlFreeFrom -{GEN | PROCESS} controlID where GEN specifies to generate the textarea named WKCFF PROCESS specifies to update the control with contents of WKCFF textarea controlID - WKCONTROL ID
HTMLWKControl - displays WKCONTROL entries with links to relevent information Calling Sequence is: HTMLWKControl [NoUpdate [entry] ] Where entry is the record id of an entry in the WKCONTROL file If it is not specified on the command line it is taken from the POST argument of a control named WKSelectList NoUpdate specifies display only
HTMLXEntity converts chars > char(128) to &#xxx` usage: HTMXLEntity(string)