Friday, July 25, 2014

Runtime FormLookup

Query query = new Query();
    QueryBuildDataSource queryBuildDataSource;
    QueryBuildRange queryBuildRange;
    SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(TableTaskCreationRules), this);
    TableId tableId;
    FieldId fieldId;
    ;
    tableId = tablename2id("TableTaskCreationRules");
    fieldId = fieldname2id(tableId, "CreationRule");
    sysTableLookup.addLookupfield(fieldId, true);
    fieldId = fieldname2id(tableId, "CreationDesc");
    sysTableLookup.addLookupfield(fieldId);
    fieldId = fieldname2id(tableId, "CreationMode");
    sysTableLookup.addLookupfield(fieldId);
    queryBuildDataSource = query.addDataSource(tableId);
    queryBuildRange      = queryBuildDataSource.addRange(fieldNum(TableTaskCreationRules, TaskType));
    queryBuildRange.value(enum2str(TaskType::Picking));
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();

Monday, July 14, 2014

Create Run-Time Lookup Forms

public void lookup()
{
   
    Query                   query          = new Query();
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildRange         queryBuildRange;

    // Create an instance of SysTableLookup where 'this'
    // is the current form control.
    SysTableLookup sysTableLookup =
        SysTableLookup::newParameters(tableNum(custTable), this);
    ;

    // Add fields to be shown in the lookup form.
    sysTableLookup.addLookupField(fieldNum(CustTable, AccountNum));
    sysTableLookup.addLookupField(fieldNum(CustTable, Name));

    // Limit and arrange the data selection.
    queryBuildDataSource = query.addDataSource(tableNum(CustTable));
    queryBuildRange = queryBuildDataSource.addRange(
        fieldNum(CustTable, AccountNum));
    queryBuildRange.value('100..2000');
    sysTableLookup.parmQuery(query);

    // Perform the lookup.
    sysTableLookup.performFormLookup();

    //Don't call super() (commented out in the code).
    //   super()
}

Wednesday, July 2, 2014

ReadXML

static void RealXML(Args _args)
{
    XMLDocument     retXmlDoc;
    XMLElement      xmlOutput;
    XMLElement      creditCardNode, invoiceSumNode, invoiceDtlNode;
    boolean         requestPayment = true;
    str             requestContactId, requestCCSubId, requestRecId, requestPayMode, requestLast4;
    str             requestCCnum, requestNameOnCard, requestCCExpMonth, requestCCExpYear, requestCCType;
    str             requestNumInv, requestTtlAmt, retMessageCode, retMessageText;
    str             invoiceId, xRefRecId, openAmount;
    ;
    retXmlDoc = new XMLDocument();
    xmlOutput = retXmlDoc.createElement("ProcessInvoiceCCPayment");
    xmlOutput.setAttribute("processingFullPayment", strfmt("%1", requestPayment));
    xmlOutput.setAttribute("contactId", strfmt("%1", requestContactId));
    creditCardNode = retXmlDoc.createElement("CreditCard");
    xmlOutput.appendChild(CreditCardNode);
    creditCardNode.setAttribute("CCSubscriptionId", strfmt("%1", requestCCSubId));
    creditCardNode.setAttribute("CCRecID", strfmt("%1", requestRecId));
    creditCardNode.setAttribute("payMode", strfmt("%1", requestPayMode));
    creditCardNode.setAttribute("CCLast4Digits", strfmt("%1", requestLast4));
    creditCardNode.setAttribute("mbsCCNumber", strfmt("%1", requestCCnum));
    creditCardNode.setAttribute("nameOnCard", strfmt("%1", requestNameOnCard));
    creditCardNode.setAttribute("CCExpMonth", strfmt("%1", requestCCExpMonth));
    creditCardNode.setAttribute("CCExpYear", strfmt("%1", requestCCExpYear));
    creditCardNode.setAttribute("CCType", strfmt("%1", requestCCType));
    invoiceSumNode = retXmlDoc.createElement("InvoiceSummary");
    xmlOutput.appendChild(invoiceSumNode);
    invoiceSumNode.setAttribute("totalNumberOfInvoices", strfmt("%1", requestNumInv));
    invoiceSumNode.setAttribute("totalOpenAmount", strfmt("%1", requestTtlAmt));
    invoiceSumNode.setAttribute("messageCode", strfmt("%1", retMessageCode));
    invoiceSumNode.setAttribute("messageText", strfmt("%1", retMessageText));
    invoiceDtlNode = retXmlDoc.createElement("InvoiceDetail");
    invoiceSumNode.appendChild(invoiceDtlNode);
    invoiceDtlNode.setAttribute("InvoiceId", strfmt("%1", invoiceId));
    invoiceDtlNode.setAttribute("RefRecId", strfmt("%1", xRefRecId));
    invoiceDtlNode.setAttribute("OpenAmount", strfmt("%1", openAmount));
    info(xmlOutput.xml());

    /*
    <ProcessInvoiceCCPayment processingFullPayment="true" contactId="">
        <CreditCard CCSubscriptionId="" CCRecID="" payMode="" CCLast4Digits="" mbsCCNumber="" nameOnCard="" CCExpMonth="" CCExpYear="" CCType="" />
        <InvoiceSummary totalNumberOfInvoices="" totalOpenAmount="" messageCode="" messageText="">
            <InvoiceDetail InvoiceId="" RefRecId="" OpenAmount="" />
        </InvoiceSummary>
    </ProcessInvoiceCCPayment>
    */
}