0

私は OpenBravo ERP システムの初心者なので、明らかな質問を投稿した場合は申し訳ありません。

Openbravo ERP でカスタム MDI ビューを作成し、注文を含む Smarclient のリストグリッドに製品名をフィルタリングするための入力フィールドを追加しました。Order データソースを作成し、それを Smartclient グリッドにバインドしました。私が達成したいのは、入力テキスト フィールドに追加された製品名でグリッド内の注文リストをフィルター処理することです。いくつかのアプローチを試みましたが、成功しませんでした。それで、グリッドの fetchData 関数の AdvancedCriteria に結合テーブルを追加することは可能ですか?

ここに私のコードのスニペットがあります:

isc.ELB_MainView.addProperties({
  form: null,
   grid: null,
   initWidget: function () {
    this.grid = isc.OBGrid.create({
     setDataSource: function (ds, fields) {
     var selectedFields = [],
     fs = OB.Constants.FIELDSEPARATOR,
     ident = OB.Constants.IDENTIFIER,
     fieldNames = ['documentNo', 'documentStatus', 'orderDate', 'accountingDate',        'businessPartner'+fs+ident, 'currency'+fs+ident],
     i, j;
     for(i = 0; i < fieldNames.length; i++) {
        for(j in ds.fields) {
           if(ds.fields.hasOwnProperty(j) && j === fieldNames[i]) {
              selectedFields.push(ds.fields[j]);
           }
        }
     }
       this.Super('setDataSource', [ds, selectedFields]);
     this.fetchData();
  }
  });
  this.form = isc.DynamicForm.create({
   fields: [{name : "productName",
          title: "Product Name", 
          type : "text", 
          width: '100%', 
          change: function(form, item, value, oldValue){
             form.main.grid.invalidateCache();
             form.main.grid.fetchData({
                _constructor: 'AdvancedCriteria',
                operator: 'and',
                criteria: {
                   'fieldName': 'orderLineList.product.name',
                   'operator': 'equals',
                   'value': value
                }
            });
        this.Super('change', arguments);
   }}],
   main: this
  });


  OB.Datasource.get('Order', this.grid, null, true);

 this.addMember(this.form);
  this.addMember(this.grid);

 this.Super("initWidget", arguments);
}

});

事前にTnx。

4

1 に答える 1