smartgwtee-2.3
FireFox 3.5.9 ( linux )
No server side.
Client side no javascript errors or warnings
I hope you cant understand me with my poor English.
I have a GRID and the application fetch the data from my mysql DB.
The problem is that when i setGroupByField the filtering stop working but if i disable it, the filtering works again.
Is it possible to Group and filter in a list grid?
wich is my error?
The code is a little messy but i'ts understandable "i I think"
greetings
FireFox 3.5.9 ( linux )
No server side.
Client side no javascript errors or warnings
I hope you cant understand me with my poor English.
I have a GRID and the application fetch the data from my mysql DB.
The problem is that when i setGroupByField the filtering stop working but if i disable it, the filtering works again.
Is it possible to Group and filter in a list grid?
wich is my error?
The code is a little messy but i'ts understandable "i I think"
greetings
Code:
package com.smartgwt.sample.client;
import com.smartgwt.client.data.Criteria;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.data.RestDataSource;
import com.smartgwt.client.data.fields.DataSourceDateField;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.DSDataFormat;
import com.smartgwt.client.widgets.form.SearchForm;
import com.smartgwt.client.widgets.form.fields.ButtonItem;
import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.form.fields.HeaderItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.events.RecordClickEvent;
import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
import com.smartgwt.client.widgets.layout.VStack;
import com.smartgwt.client.widgets.tab.Tab;
import com.smartgwt.client.widgets.tab.TabSet;
import com.smartgwt.client.widgets.viewer.DetailViewer;
public class ConsulPer {
public static VStack vstack;
private ButtonItem findItem;
final SearchForm searchForm = new SearchForm();
final ListGrid listGrid = new ListGrid();
public static ConsulPer instance = null;
public static VStack getInstance() {
if ( instance == null ){
instance = new ConsulPer();
}
return vstack;
}
public ConsulPer(){
// Creo los layouts para el formulario
// y los botones del formulario
//
vstack = new VStack();
vstack.setMembersMargin(5);
final DetailViewer itemViewer = new DetailViewer();
//
// creo el datasource del formulario
//
RestDataSource dataSource = new RestDataSource();
dataSource.setDataFormat(DSDataFormat.JSON);
dataSource.setDataURL("http://nuovamed.com/getAfil.php");
DataSourceTextField dni = new DataSourceTextField("dni", "DNI", 50, true);
dni.setPrimaryKey(true);
DataSourceTextField nombre = new DataSourceTextField("nombre", "NOMBRE", 50, true);
DataSourceTextField domicilio = new DataSourceTextField("domicilio", "DOMICILIO", 100, false);
DataSourceTextField telefono = new DataSourceTextField("telefono", "TELEFONO");
DataSourceDateField fnac = new DataSourceDateField("fnac", "F.NACIMIENTO", 100, true);
DataSourceTextField dnititular = new DataSourceTextField("dnit", "DNI Titular", 50, true);
DataSourceTextField nafilfield = new DataSourceTextField("nafil", "Nš AFIL", 50, false);
DataSourceTextField empresafield = new DataSourceTextField("empresa", "EMPRESA", 50, true);
dataSource.setFields(dni, nombre, domicilio, fnac, telefono, dnititular, nafilfield, empresafield);
//
//creo el formulario searchForm
//
vstack.addMember(searchForm);
//tabLabel.addChild(searchForm);
searchForm.setWidth100();
searchForm.setTop(5);
searchForm.setBackgroundColor("#EEFFFF");
searchForm.setGroupTitle("Busqueda");
searchForm.setIsGroup(true);
searchForm.setCellPadding(15);
searchForm.setNumCols(7);
searchForm.setDataSource(dataSource);
searchForm.setUseAllDataSourceFields(false);
TextItem searchFormField = new TextItem("dni");
searchFormField.setWidth(200);
TextItem searchFormAfil = new TextItem("nafil");
searchFormAfil.setWidth(200);
CheckboxItem findInCategory = new CheckboxItem("findInCategory");
findInCategory.setTitle("Titulares");
findInCategory.setDefaultValue(true);
findInCategory.setShouldSaveValue(false);
HeaderItem header = new HeaderItem();
header.setDefaultValue("Busqueda de afiliados");
findItem = new ButtonItem("Buscar");
findItem.setWidth(70);
findItem.setEndRow(false);
findItem.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent event) {
findItems(null);
}
});
searchForm.setItems(findItem, searchFormField, searchFormAfil, findInCategory);
//
// Creo el ItemListGrid
//
listGrid.setWidth100();
listGrid.setHeight(250);
listGrid.setGroupByField("empresa");
listGrid.setDataSource(dataSource);
listGrid.setCanEdit(true);
listGrid.setAutoFetchData(true);
listGrid.addRecordClickHandler(new RecordClickHandler() {
public void onRecordClick(RecordClickEvent event) {
Record selectedRecord = listGrid.getSelectedRecord();
itemViewer.setData(new Record[]{selectedRecord});
}
});
vstack.addMember(listGrid);
ListGridField dniGrid = new ListGridField("dni", "DNI");
ListGridField dnitGrid = new ListGridField("dnit", "DNI Titular");
ListGridField nafilGrid = new ListGridField("nafil", "Nš AFIL");
ListGridField nombreGrid = new ListGridField("nombre", "Nombre");
ListGridField domGrid = new ListGridField("domicilio", "Domicilio");
ListGridField telGrid = new ListGridField("telefono", "Telefono");
ListGridField fnacGrid = new ListGridField("fnac", "F.Nacimiento");
ListGridField empresaGrid = new ListGridField("empresa", "Empresa");
listGrid.setFields(dniGrid, dnitGrid, nafilGrid, nombreGrid, domGrid, telGrid, fnacGrid, empresaGrid);
TabSet tabDetail = new TabSet();
itemViewer.setDataSource(dataSource);
itemViewer.setWidth100();
itemViewer.setMargin(0);
itemViewer.setEmptyMessage("Elegir un registro para ver");
Tab viewTab = new Tab("View");
viewTab.setWidth(70);
viewTab.setPane(itemViewer);
Tab editTab = new Tab("Edit");
editTab.setWidth(70);
//editTab.setPane(editorForm);
tabDetail.setTabs(viewTab, editTab);
tabDetail.setHeight(200);
vstack.addMember(tabDetail);
}
public void findItems(String categoryName) {
Criteria findValues;
findValues = searchForm.getValuesAsCriteria();
listGrid.filterData(findValues);
}
}