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

paging with sgwt 4.1 fails (but 3.1 works)

$
0
0
Dear SmartGWT support, users, developers,

we currently evaluating to upgrade from SmartgGWT 3.1 to 4.1.

I have the following problem and want to kindly ask, to help me with this new "behaviour".

The given code works flawlessly with 3.1:
Code:

tariffModelSelect = new SelectItem("TariffModel", "Tariff Model");
    tariffModelSelect.setValueField("TariffModelID");
    tariffModelSelect.setDisplayField("TariffModelNameAndStatus");
    tariffModelSelect.setOptionDataSource(DataSource.getDataSource("tbTmdTariffModel"));
    final Criteria crit = new Criteria();
    crit.setAttribute("ContractVersionID", parentApp.getContractVersionID());
    crit.setAttribute("TariffModelRoleID", TariffModelRoleType.CONTRACT.getValue());
    tariffModelSelect.setOptionCriteria(crit);
    tariffModelSelect.setOptionOperationId("tariffModelOfContractVersionAndRoleWithNameAndStatus");
    tariffModelSelect.setSortField("TariffModelNameAndStatus");
    tariffModelSelect.setMultiple(Boolean.TRUE);
    tariffModelSelect.setMultipleAppearance(MultipleAppearance.PICKLIST);
    tariffModelSelect.setDefaultToFirstOption(Boolean.TRUE);

tbTmdTariffModel.ds.xml:

Code:

<DataSource ID="tbTmdTariffModel" isPublic="true" serverType="sql" dataSourceVersion="1" dbName="CamMain" schemaName="dbo" dbTable="tbTmdTariffModel" tableName="tbTmdTariffModel">
  <fields>
  <field name="TariffModelID" type="integer" autoGenerated="true" primaryKey="true" />
  <field name="TariffStructureID" type="integer" required="true" />
  <field name="ContractVersionID" type="integer" required="true" />
  <field name="TariffModelName" title="Tariff Model" type="text" required="true" length="100" />
  <field name="TariffModelRoleID" type="integer" required="true" hidden="true" />   
  <field name="CreatedBy" hidden="true" canEdit="false" type="integer" />
  <field name="ModifiedBy" hidden="true" canEdit="false" type="integer" />
  <field name="NumErrors" canEdit="false" type="integer" required="true" />
  <field name="MissingRates" type="integer" customSelectExpression="(select count(*) from tbTmdLeafProperty lp where lp.TariffModelID = tbTmdTariffModel.TariffModelID and lp.RateID is null)" />
  <field name="CurrentStatus" type="text" customSelectExpression="dbo.fnGenApprovalStatusCSV(TariffModelID, 'tbTmdTariffModel')" />
  <field name="ExchangeStatus" type="text" customSelectExpression="dbo.fnGenGetObjectStatus('EContractTariffModel', TariffModelID, GETDATE())" />
  <field name="ExcelCompliance" title="Excel Compliance" type="text" customSelectExpression="(SELECT Value FROM tbGenAttribute WHERE DataTable = 'tbTmdTariffModel' AND Attribute = 'ExcelCompliance' AND ObjectID = tbTmdTariffModel.TariffModelID)" />
  </fields>
  <operationBindings>
  <operationBinding operationType="remove" allowMultiUpdate="true">
  </operationBinding>
  <operationBinding operationType="add">
    <values fieldName="CreatedBy" value="$userId" />
    <values fieldName="ModifiedBy" value="$userId" />
  </operationBinding>
  <operationBinding operationType="update">
    <values fieldName="ModifiedBy" value="$userId" />
    <values fieldName="ModifiedAt" value="$currentDate" />
  </operationBinding>
  <operationBinding operationType="fetch" operationId="tariffModelOfContractVersionAndRoleWithNameAndStatus">
    <selectClause>$defaultSelectClause, tbTmdTariffModel.TariffModelName + ' - ' + ISNULL(dbo.fnGenGetObjectStatus('TariffModel.VolumeCommitment', tbTmdTariffModel.TariffModelID, null), 'Draft') AS TariffModelNameAndStatus</selectClause>
  </operationBinding>
  </operationBindings>
 </DataSource>

The Version 4.1p generates the following SQL command, which naturally fails:

Code:

SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY ) AS rowID FROM (SELECT TOP 100 PERCENT  tbTmdTariffModel.ContractVersionID, tbTmdTariffModel.CreatedBy, dbo.fnGenApprovalStatusCSV(TariffModelID, 'tbTmdTariffModel') AS CurrentStatus, (SELECT Value FROM tbGenAttribute WHERE DataTable = 'tbTmdTariffModel' AND Attribute = 'ExcelCompliance' AND ObjectID = tbTmdTariffModel.TariffModelID) AS ExcelCompliance, dbo.fnGenGetObjectStatus('EContractTariffModel', TariffModelID, GETDATE()) AS ExchangeStatus, (select count(*) from tbTmdLeafProperty lp where lp.TariffModelID = tbTmdTariffModel.TariffModelID and lp.RateID is null) AS MissingRates, tbTmdTariffModel.ModifiedBy, tbTmdTariffModel.NumErrors, tbTmdTariffModel.TariffModelID, tbTmdTariffModel.TariffModelName, tbTmdTariffModel.TariffModelRoleID, tbTmdTariffModel.TariffStructureID, tbTmdTariffModel.TariffModelName + ' - ' + ISNULL(dbo.fnGenGetObjectStatus('TariffModel.VolumeCommitment', tbTmdTariffModel.TariffModelID, null), 'Draft') AS TariffModelNameAndStatus FROM tbTmdTariffModel WHERE (tbTmdTariffModel.ContractVersionID=1097 AND tbTmdTariffModel.TariffModelRoleID=1)) x) y WHERE y.rowID BETWEEN 1 AND 75
As you can see, the ORDER BY at the beginning of the statement is missing a column name.

Can you help with that, so I can push the evaluation any further?

Best Regards,
Christian

Viewing all articles
Browse latest Browse all 4756

Trending Articles