Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

ListGrid Filter Dropping Criteria on Some ListGridFields?

$
0
0
I'm puzzled: I have ListGrid with a Filter. Depending on which column's Filter Editor is used, sometimes the ListGrid.Criteria is included, and sometimes it's omitted.

As the Criteria are always required at the OperationBinding (per business rule), changes to some Filter Editors are submitting an incomplete SQL query.

Here's my ListGrid, with notations re which ListGridFields include/omit the ListGrid Criteria:
Code:

ListGrid listGrid = new ListGrid(ds_Requests) {
 // DetailViewer code here...
 {
 setFetchOperation("fetch_ListGrid_onModuleLoad_Filter");
 setAutoFetchData(true);

 setShowFilterEditor(true);
 
 // Restrict the ListGrid to show only ORG_IDs the Approver is allowed to see.
 Criteria criteria = new Criteria();
 criteria.addCriteria("ORG_ID_ARRAY", approver.getPermittedOrgIds()); // Integer[]
 
 // Apply the Criteria to the ListGrid...
 setCriteria(criteria);
 // ...and to the ListGrid Filter too
 setFilterEditorCriteria(criteria);
 
 setSelectionAppearance(SelectionAppearance.CHECKBOX);
 setSelectionType(SelectionStyle.SINGLE);

 setFields(

  // SUCCESS: ListGrid Criteria are included on Filter Search
  // FAIL: ListGrid Criteria are omitted

  // Shown Columns
  make_ListGridField_RequestId(), // SUCCESS

  make_ListGridField_LeaveCode(), // SUCCESS

  make_ListGridField_Name(), // SUCCESS

  make_ListGridField_DateTime("STARTDATETIME", "From..."), // FAIL

  make_ListGridField_DateTime("ENDDATETIME", "...Thru"), // FAIL

  make_ListGridField_DateTime("SUBMITDATETIME", "Submitted"), // FAIL

  make_ListGridField_Status(), // w/o FilterEditor SUCCESS, w/ FilterEditor FAIL

  make_ListGridField_FormCs180(), // *SUCCESS when assigned non-default Filter Editor

  // Hidden Columns
  make_ListGridField_Hidden("EMAIL"), // SUCCESS when shown

  make_ListGridField_Hidden("DESCRIPTION"), // SUCCESS when shown

  make_ListGridField_Hidden_GroupBy("APPROVER_NAME", "Approver"), // SUCCESS when shown

  make_ListGridField_Hidden_GroupBy("SUBGROUP", "Group"), // SUCCESS when shown

  make_ListGridField_Hidden("PAYNOPAY"), // SUCCESS when shown

  make_ListGridField_Requestor_OrgId(), // N/A: Filter ignores, uses ListGrid Criteria
  // for ORG_ID

  make_ListGridField_Hidden("REASON"), // SUCCESS when shown

  make_ListGridField_Hidden("NUMHOURS") // SUCCESS when shown

  );
 
 groupBy("SUBGROUP", "APPROVER_NAME");

 setSortField("STARTDATETIME");

  ...
 }
}

Here are the ListGridFields for which the ListGrid Criteria are included when their Filter Editor criteria are submitted (SUCCESS):
Code:

/****************************** make_ListGridField_RequestId ******************************/
 private ListGridField make_ListGridField_RequestId() {

 // Column for REQUESTS.REQUEST_ID
 ListGridField lgf_RequestId = new ListGridField("REQUEST_ID", "Request #") {
  {

  setWidth("80px");
  setAlign(Alignment.CENTER);
  setCellAlign(Alignment.RIGHT);
  // setCanEdit(false);

  // Column Header Filter Control
  setFilterEditorProperties(new SpinnerItem() {
  {
  setKeyPressFilter("[0-9]");

  }
  });

  // Add commas for readability, e.g. "1,234"
  setCellFormatter(new CellFormatter() {

  @Override
  public String format(Object value, ListGridRecord record, int rowNum, int colNum) {

  if (value == null)
    return null;

  try {

    NumberFormat nf = NumberFormat.getFormat("###,###,###,###");

    return nf.format(((Number) value).doubleValue());

  } catch (Exception e) {

    return value.toString();

  }

  }

  });

  }
 };

 return lgf_RequestId;

 }// make_ListGridField_RequestId

 /****************************** make_ListGridField_LeaveCode ******************************/
 private ListGridField make_ListGridField_LeaveCode() {

 // Column for REQUESTS.LEAVECODE
 ListGridField lgf_LeaveCode = new ListGridField("LEAVETYPE", "Code") {
  {
  setWidth(80);
  setAlign(Alignment.CENTER);
  setCanEdit(false);

  setFilterEditorProperties(new SelectItem() {
  {

  setOptionDataSource(ds_LeaveCodes);
  setMultiple(true);

  // This SelectItem has three "columns" (ListGridFields)
  // 1) Checkboxes
  setMultipleAppearance(MultipleAppearance.PICKLIST);

  // 2) Leave Code (e.g., "VAT")
  final ListGridField lgf_LeaveCode = new ListGridField("LEAVETYPE", "Code");
  lgf_LeaveCode.setWidth(42);
  lgf_LeaveCode.setAlign(Alignment.CENTER);

  // 3) Leave Description (e.g., "Vacation Taken")
  final ListGridField lgf_LeaveDescription = new ListGridField("DESCRIPTION");
  lgf_LeaveDescription.setWidth(200);
  lgf_LeaveDescription.setAlign(Alignment.CENTER);
  lgf_LeaveDescription.setCellAlign(Alignment.LEFT);

  // Now add the ListGridFields to the SelectItem
  setPickListFields(lgf_LeaveCode, lgf_LeaveDescription);

  setSortField("LEAVETYPE");

  }
  });

  }
 };

 return lgf_LeaveCode;

 }// make_ListGridField_LeaveCode

 /****************************** make_ListGridField_Name ******************************/
 private ListGridField make_ListGridField_Name() {

 // Column for EMPLOYEE.NAME
 ListGridField lgf_Name = new ListGridField("NAME", "Requestor") {
  {

  setOptionDataSource(ds_Employee);
  // setValueField("EMPLOYEE_ID");
  // setDisplayField("NAME");

  setWidth("130px");
  setAlign(Alignment.CENTER);
  setCellAlign(Alignment.LEFT);
  // setCanEdit(false);

  setFilterEditorProperties(new SelectItem() {
  {
  setOptionDataSource(ds_Employee);
  setOptionOperationId("filterItem_Names");
  setSortField("NAME");
  setMultiple(true);
  setMultipleAppearance(MultipleAppearance.PICKLIST);
  setAllowEmptyValue(true);
  }
  });

  }
 };

 return lgf_Name;

 }// make_ListGridField_Name
 
 /*************************************** make_ListGridField_Hidden ***************************************/
 protected ListGridField make_ListGridField_Hidden(String name) {

 // Hidden Column: Data not shown in ListGrid, but available for DetailViewer & Selection Handlers
 ListGridField lgf_Hidden = new ListGridField(name) {
  {
  setHidden(true);
  }
 };

 return lgf_Hidden;
 
 }// make_ListGridField_Hidden

 /*************************************** make_ListGridField_Hidden_GroupBy ***************************************/
 protected ListGridField make_ListGridField_Hidden_GroupBy(String name, final String groupTitle) {

 ListGridField lgf_ApproverName = new ListGridField(name) {
  {
  // Use value for Approve/Disapprove actions, but don't show in ListGrid
  setHidden(true);

  // Put 'Title: ' prompt in front of grouped items
  setGroupTitleRenderer(new GroupTitleRenderer() {

  @Override
  public String getGroupTitle(Object groupValue,
    com.smartgwt.client.widgets.grid.GroupNode groupNode, ListGridField field,
    String fieldName, ListGrid grid) {

  String rowTitle = groupTitle + ":  " + groupValue;

  return rowTitle;
  }

  });

  }
 };

 return lgf_ApproverName;

 }// make_ListGridField_Hidden_GroupBy

The DateTime ListGridFields OMIT the ListGrid Criteria when their Filter Editor criteria are submitted (FAIL):
Code:

/*************************************** make_ListGridField_DateTime ***************************************/
 protected ListGridField make_ListGridField_DateTime(String name, String title) {

 // Column for REQUESTS.STARTDATETIME
 ListGridField lgf_DateTime = new ListGridField(name, title) {
  {

  setType(ListGridFieldType.DATE);
  setAlign(Alignment.CENTER);
  setWidth("170px");
  setCanEdit(true);

  // Apply Formatter to DateTime column
  setCellFormatter(new CellFormatter() {
  public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
  if (value != null) {

    try {
    Date dateValue = (Date) value;
    // Timestamp dateValue = (Timestamp) value; // Nope!
    return dateTimeFormatter.format(dateValue);
    } catch (Exception e) {
    return value.toString();
    }
  } else {
    return "";
  }
  }
  });

  }
 };

 return lgf_DateTime;

 }// make_ListGridField_DateTime

And here are the ListGridFields for which the ListGrid Criteria may or may not be OMITTED, depending on how their Filter Editors are configured:
Code:

/****************************** make_ListGridField_Status ******************************/
 private ListGridField make_ListGridField_Status() {

 // Column for REQUESTS.STATUS
 ListGridField lgf_Status = new ListGridField("STATUS") {
  {

  setWidth("80px");
  setAlign(Alignment.CENTER);
  // setCanEdit(true);

  // SUCCESS: If the Filter Editor is removed, then ListGrid Criteria are included.
  // FAIL: If this Filter Editor is enabled, then ListGrid Criteria are OMITTED.
  setFilterEditorProperties(new SelectItem() {
  {
  setOptionDataSource(ds_Requests);
  setOptionOperationId("filterItem_Status");
  // Override default LIKE operator, lest "approved" also retrieve "disapproved"
  setOperator(OperatorId.EQUALS);
  setSortField("STATUS");
  setMultiple(true);
  setMultipleAppearance(MultipleAppearance.PICKLIST);
  }
  });

  }
 };

 return lgf_Status;

 }// make_ListGridField_Status

 /****************************** make_ListGridField_FormCs180 ******************************/
 private ListGridField make_ListGridField_FormCs180() {

 // Cool example code re how to place graphic in Column Header:
 // http://www.smartclient.com/smartgwt/showcase/#grid_top_header
 String title_FormCs180;
 title_FormCs180 = Canvas.imgHTML(GWT.getModuleBaseURL() + "Acrobat.png");

 // Column for REQUESTS.FORM_CS180
 ListGridField lgf_FormCs180 = new ListGridField("FORM_CS180", title_FormCs180) {
  {

  setType(ListGridFieldType.IMAGEFILE);

  setAlign(Alignment.CENTER);

  // Kludge: Fix column width to be wide enough to show View/Download icons ONLY.
  // Voilà: De facto suppression of '_filename' field text.
  // Posted to SGWT Support Forum as
  // http://forums.smartclient.com/showthread.php?p=95311#post95311
  setWidth("38px");

  // Disable remaining built-in column-header controls...
  setCanDragResize(false);
  setCanSort(false);
  setShowDefaultContextMenu(false);
  setShowHover(false);

  // Hack: If you setCanFilter(false), the default Filter Editor Type (ViewFileItem File Picker)
  // returns null, which blows up the Filter query. The workaround is to set a non-default
  // Filter Editor Type, then not use it.
  // Posted @ http://forums.smartclient.com/showthread.php?t=28708
  setFilterEditorProperties(new SelectItem());

  setCanFilter(false);
  }
 };

 return lgf_FormCs180;

 }// make_ListGridField_FormCs180

Here is the OperationBinding:
Code:

  <operationBinding appScreen="Review" operationType="fetch" operationId="fetch_ListGrid_onModuleLoad_Filter">
  <selectClause>
    requests.request_id,
    requests.leavetype,
    leavecodes.description,
    employee.name,
    requests.startdatetime,
    requests.enddatetime,
    requests.submitdatetime,
    requests.status,
    employee.email,   
    leavecodes.description,
    employee.approver_name,
    org.subgroup,
    requests.FORM_CS180,
    requests.FORM_CS180_date_created,
    requests.FORM_CS180_filename,
    requests.FORM_CS180_filesize,
    requests.paynopay,
    employee.org_id,
    requests.reason,
    requests.numhours
  </selectClause>
  <tableClause>
    requests
    JOIN leavecodes ON requests.leavetype = leavecodes.leavetype
    JOIN employee ON requests.employee_id = employee.employee_id
    JOIN org ON employee.org_id = org.org_id
  </tableClause>
  <whereClause> employee.org_id IN ( #foreach($org_id in $criteria.ORG_ID_ARRAY)'$org_id'#if( $velocityCount != $criteria.ORG_ID_ARRAY.size()),#end #end )
    AND ${defaultWhereClause}
  </whereClause>
 </operationBinding>

Here is server log output when the ListGrid Criteria are properly included: "WHERE employee.org_id IN ( '43', '44' )"...
Code:

=== 2013-12-06 09:03:06,859 [0-15] DEBUG SQLDataSource - [builtinApplication.fetch_ListGrid_onModuleLoad_Filter] JDBC driver windowed select rows 0->75, result size 75. Query: SELECT
    requests.request_id,
    requests.leavetype,
    leavecodes.description,
    employee.name,
    requests.startdatetime,
    requests.enddatetime,
    requests.submitdatetime,
    requests.status,
    employee.email,   
    leavecodes.description,
    employee.approver_name,
    org.subgroup,
    requests.FORM_CS180,
    requests.FORM_CS180_date_created,
    requests.FORM_CS180_filename,
    requests.FORM_CS180_filesize,
    requests.paynopay,
    employee.org_id,
    requests.reason,
    requests.numhours
  FROM
    requests
    JOIN leavecodes ON requests.leavetype = leavecodes.leavetype
    JOIN employee ON requests.employee_id = employee.employee_id
    JOIN org ON employee.org_id = org.org_id
  WHERE employee.org_id IN ( '43', '44' )
    AND ('1'='1')

...and when the ListGrid Criteria are not included: "WHERE employee.org_id IN ( )"...
Code:

=== 2013-12-06 08:30:21,046 [0-12] INFO SQLDriver - [builtinApplication.fetch_ListGrid_onModuleLoad_Filter] Executing SQL query on 'MyDatabase': SELECT COUNT(*) FROM
    requests
    JOIN leavecodes ON requests.leavetype = leavecodes.leavetype
    JOIN employee ON requests.employee_id = employee.employee_id
    JOIN org ON employee.org_id = org.org_id
  WHERE employee.org_id IN ( )
    AND (('1'='1' OR '1'='1') AND (REQUESTS.STARTDATETIME >= TO_DATE('2013-12-05 00:00:00','YYYY-MM-DD HH24:MI:SS') AND REQUESTS.STARTDATETIME IS NOT NULL) AND ((REQUESTS.STATUS = 'approved' AND REQUESTS.STATUS IS NOT NULL)))
 
=== 2013-12-06 08:30:21,046 [0-12] WARN RequestContext - dsRequest.execute() failed:
java.sql.SQLException: ORA-00936: missing expression

 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
 at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:754)
 at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
 at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:804)
 at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1051)
 at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:845)
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1156)
 at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1315)
 at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
 at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:604)
 at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:533)
 at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:526)
 at com.isomorphic.sql.SQLDriver.getScalarResult(SQLDriver.java:690)
 at com.isomorphic.sql.SQLDriver.executeScalar(SQLDriver.java:924)
 at com.isomorphic.sql.SQLDataSource.runRowCountQuery(SQLDataSource.java:2463)
 at com.isomorphic.sql.SQLDataSource.executeWindowedSelect(SQLDataSource.java:1887)
 at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1542)
 at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:408)
 at com.isomorphic.sql.SQLDataSource.executeFetch(SQLDataSource.java:352)
 at com.isomorphic.datasource.DataSource.execute(DataSource.java:1447)
 at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:723)
 at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
 at com.isomorphic.application.AppBase.execute(AppBase.java:491)
 at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:2431)
 at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:215)
 at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:172)
 at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:137)
 at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
 at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:260)
 at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
 at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
 at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
 at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
 at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
 at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
 at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 at org.mortbay.jetty.Server.handle(Server.java:324)
 at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
 at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
 at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
 at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
 at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
 at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
 at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

Here is SGWT Console RPC info from a Filter query with FAILURE status:

REQUEST: RPCRequest
Code:

{
    "actionURL":"http://localhost:8888/AbsenceRequestOnline/sc/IDACall",
    "showPrompt":true,
    "prompt":"Finding Records that match your criteria...",
    "transport":"xmlHttpRequest",
    "promptStyle":"cursor",
    "bypassCache":true,
    "data":{
  "criteria":{
      "operator":"and",
      "_constructor":"AdvancedCriteria",
      "criteria":[
    {
        "fieldName":"STARTDATETIME",
        "operator":"greaterOrEqual",
        "value":"2013-12-05"
    },
    {
        "operator":"iContains",
        "fieldName":"ORG_ID_ARRAY",
        "value":[
      43,
      44
        ]
    }
      ]
  },
  "operationConfig":{
      "dataSource":"REQUESTS",
      "repo":null,
      "operationType":"fetch",
      "textMatchStyle":"substring"
  },
  "startRow":0,
  "endRow":75,
  "componentId":"isc_Demo_ListGridFilter_4_0",
  "appID":"builtinApplication",
  "operation":"fetch_ListGrid_onModuleLoad_Filter",
  "oldValues":{
      "operator":"and",
      "_constructor":"AdvancedCriteria",
      "criteria":[
    {
        "fieldName":"STARTDATETIME",
        "operator":"greaterOrEqual",
        "value":"2013-12-05"
    },
    {
        "operator":"iContains",
        "fieldName":"ORG_ID_ARRAY",
        "value":[
      43,
      44
        ]
    }
      ]
  }
    }
}

REQUEST: Raw
Code:

isc_tnum=3&_transaction=%3Ctransaction%20xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2F10%2FXMLSchema-instance%22%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3CtransactionNum%20xsi%3Atype%3D%22xsd%3Along%22%3E3%3C%2FtransactionNum%3E%3Coperations%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Ccriteria%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Coperator%3Eand%3C%2Foperator%3E%3C_constructor%3EAdvancedCriteria%3C%2F_constructor%3E%3Ccriteria%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3CfieldName%3ESTARTDATETIME%3C%2FfieldName%3E%3Coperator%3EgreaterOrEqual%3C%2Foperator%3E%3Cvalue%20xsi%3Atype%3D%22xsd%3Adate%22%3E2013-12-05%3C%2Fvalue%3E%3C%2Felem%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Coperator%3EiContains%3C%2Foperator%3E%3CfieldName%3EORG_ID_ARRAY%3C%2FfieldName%3E%3Cvalue%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3Along%22%3E43%3C%2Felem%3E%3Celem%20xsi%3Atype%3D%22xsd%3Along%22%3E44%3C%2Felem%3E%3C%2Fvalue%3E%3C%2Felem%3E%3C%2Fcriteria%3E%3C%2Fcriteria%3E%3CoperationConfig%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3CdataSource%3EREQUESTS%3C%2FdataSource%3E%3CoperationType%3Efetch%3C%2FoperationType%3E%3CtextMatchStyle%3Esubstring%3C%2FtextMatchStyle%3E%3C%2FoperationConfig%3E%3CstartRow%20xsi%3Atype%3D%22xsd%3Along%22%3E0%3C%2FstartRow%3E%3CendRow%20xsi%3Atype%3D%22xsd%3Along%22%3E75%3C%2FendRow%3E%3CcomponentId%3Eisc_Demo_ListGridFilter_4_0%3C%2FcomponentId%3E%3CappID%3EbuiltinApplication%3C%2FappID%3E%3Coperation%3Efetch_ListGrid_onModuleLoad_Filter%3C%2Foperation%3E%3ColdValues%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Coperator%3Eand%3C%2Foperator%3E%3C_constructor%3EAdvancedCriteria%3C%2F_constructor%3E%3Ccriteria%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3CfieldName%3ESTARTDATETIME%3C%2FfieldName%3E%3Coperator%3EgreaterOrEqual%3C%2Foperator%3E%3Cvalue%20xsi%3Atype%3D%22xsd%3Adate%22%3E2013-12-05%3C%2Fvalue%3E%3C%2Felem%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Coperator%3EiContains%3C%2Foperator%3E%3CfieldName%3EORG_ID_ARRAY%3C%2FfieldName%3E%3Cvalue%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3Along%22%3E43%3C%2Felem%3E%3Celem%20xsi%3Atype%3D%22xsd%3Along%22%3E44%3C%2Felem%3E%3C%2Fvalue%3E%3C%2Felem%3E%3C%2Fcriteria%3E%3C%2FoldValues%3E%3C%2Felem%3E%3C%2Foperations%3E%3C%2Ftransaction%3E&protocolVersion=1.0
REQUEST: DSRequest
Code:

{
    dataSource:"REQUESTS",
    operationType:"fetch",
    operationId:"fetch_ListGrid_onModuleLoad_Filter",
    componentId:"isc_Demo_ListGridFilter_4_0",
    data:{
  operator:"and",
  criteria:[
      {
    fieldName:"STARTDATETIME",
    operator:"greaterOrEqual",
    value:"2013-12-05"
      },
      {
    operator:"iContains",
    fieldName:"ORG_ID_ARRAY",
    value:[
        43,
        44
    ]
      }
  ]
    },
    startRow:0,
    endRow:75,
    textMatchStyle:"substring",
    resultSet:[ResultSet ID:isc_ResultSet_0 (created by: isc_Demo_ListGridFilter_4_0)],
    callback:{
  caller:[ResultSet ID:isc_ResultSet_0 (created by: isc_Demo_ListGridFilter_4_0)],
  methodName:"fetchRemoteDataReply"
    },
    willHandleError:true,
    showPrompt:true,
    prompt:"Finding Records that match your criteria...",
    oldValues:{
  operator:"and",
  criteria:[
      {
    fieldName:"STARTDATETIME",
    operator:"greaterOrEqual",
    value:"2013-12-05"
      },
      {
    operator:"iContains",
    fieldName:"ORG_ID_ARRAY",
    value:[
        43,
        44
    ]
      }
  ]
    },
    requestId:"REQUESTS$6275",
    clientContext:{
  requestIndex:2
    },
    fallbackToEval:false,
    lastClientEventThreadCode:"TMR7",
    bypassCache:true
}

RESPONSE: Raw
Code:

[
    {
  data:"ORA-00936: missing expression\n",
  invalidateCache:false,
  isDSResponse:true,
  queueStatus:-1,
  status:-1
    }
]

Your guidance is appreciated, thanks.

---------------------------------

SmartClient Version: v9.0p_2013-12-01/PowerEdition Deployment (built 2013-12-01)

IE 8

Viewing all articles
Browse latest Browse all 4756

Trending Articles