Overblog
Suivre ce blog Administration + Créer mon blog
14 novembre 2014 5 14 /11 /novembre /2014 08:11

Pour faire simple suiver l'exemple (ma version : CakePHP 2.2) :

 

public function index() {
        App::uses('ConnectionManager', 'Model');
        $db = ConnectionManager::getDataSource('default');
        $sql =  "votre requête";
        //exécute la requête
        $db->rawQuery($sql);
        //récupère le résultat (ResultSet)
        $data = $db->_results;
        //envois les informations à la vue
        $this->set('data',$data);
    }

Partager cet article
Repost0
26 décembre 2013 4 26 /12 /décembre /2013 21:54

Pour accèder à la signature automatique dans Gmail, il faut cliquer sur les paramétres :

 

 

Ensuite dans l'onglet général, puis signature.

 

Après avoir coché votre adresse mail, vous pouvez saisir votre texte et insérer une image.

 

Pour les images (icone de l'image : ) vous avez 2 possibilités :

1 -  votre image est "petite" : vous pouvez l'insérer avec un copier/coller

2 - il faut recopier l'url de votre image (en général clique droit et afficher l'image ou copier l'url de l'image), l'image doit donc apparaitre sur le web. plusierus site pourront héberger votre image comme google docs en partagant le dessin à tous :

 

Personnellement j'utilise uniquement la deuxième méthode car elle fonctionne toujours.

 

N'oubliez pas d'enregistrer, en bas de la page.

Partager cet article
Repost0
14 mai 2013 2 14 /05 /mai /2013 18:14

Suite à l'installation de l'exemple "JasperReports Integration - examples", le fichier pdf n'apparaiser pas dans la page :

http://localhost:8080/jasperreports-examples/wicket/bookmarkable/org.wicketstuff.jasperreports.examples.SimplePdfPage

 

Donc j'ai modifié le code de  EmbeddedJRReport :

 

 

@Override
    protected void onComponentTag(ComponentTag tag)
    {
        if (!"embed".equalsIgnoreCase(tag.getName()))
        {
            findMarkupStream().throwMarkupException(
                    "Component "
                            + getId() + " must be applied to a tag of type 'embed' not "
                            + tag.toUserDebugString());
        }
        tag.put("src", getResponse().encodeURL(urlFor(IResourceListener.INTERFACE,null)));
        tag.put("type", resource.getContentType());
        tag.put("fullscreen", "yes");
        super.onComponentTag(tag);
    }

 

 

PS : il faut recompiler le projet JasperReports Integration pour que les modifications soit pris en compte

Partager cet article
Repost0
19 avril 2012 4 19 /04 /avril /2012 22:33

L'objet JTable utilise un objet TableModel pour gérer ses données. Mais le modèle de base n'utilise pas d'objet "List", des "Vector" ou un "Array".

 

Il faut redéfinir toutes les méthodes de l'interface. Je vous donne le code final de ma classe avec les commentaires :

 


 import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.swing.table.AbstractTableModel; import javax.swing.text.TableView.TableRow; public class TableModelList extends AbstractTableModel implements Serializable {
//titre du modèle private String title;
//les données private List<List<Object>> data = new ArrayList();
//les noms des colonnes private List<String> columnTitles = new ArrayList();
public TableModelList() { }
/** * Constructeur avec les listes * * @param rows les données * @param columnTitles les noms des colonnes */ public TableModelList(Collection rows, Collection columnTitles) { data.addAll(rows); this.columnTitles.addAll(columnTitles); }
public String getTitle() { return title; }
public void setTitle(String newTitle) { title = newTitle; }
public int getRowCount() { return data.size(); }
public TableRow getRow(int rowIndex) { return (TableRow) data.get(rowIndex); }
public void setColumnTitles(Collection<String> newColumnTitles) { columnTitles.addAll(newColumnTitles); }
public List<String> getColumnTitles() { return columnTitles; }
public void setColumnName(int i, String newColumnTitle) { columnTitles.set(i, newColumnTitle); }
public int getColumnCount() { return columnTitles.size(); }
@Override public String getColumnName(int columnIndex) { return columnTitles.get(columnIndex); }
/** * Retourne la classe de la colonne. * Retourne la classe de l'objet se situant sur la première ligne, si l'objet est nul retourne String.class * @param columnIndex le numéro de la colonne * @return */ @Override public Class<?> getColumnClass(int columnIndex) { if(getValueAt(0, columnIndex)!=null){ return getValueAt(0, columnIndex).getClass(); } else { return String.class; } }
public Object getValueAt(int rowIndex, int columnIndex) { return data.get(rowIndex).get(columnIndex); }
@Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { data.get(rowIndex).set(columnIndex,aValue); }
/** * Ajoute une ligne * La ligne doit avoir le même nombre d'objet * Cette méthode fonctionne mais ne conviendrais pas au puriste Java (utilisation de fireTableDataChanged()) * @param row ligne */
public void addRow(List row){ data.add(row); fireTableDataChanged(); } }

 

Pour l'utiliser :

 


 JTable resultatTable = new JTable();
 //entête des champs 
 List<String> tableHeaders = new ArrayList<String>(); 
 //remplir les noms des colonnes 
 //lignes des champs
List<List<String>> tableData = new ArrayList();
//remplit la liste
resultatTable.setModel(new TableModelList(tableData, tableHeaders));

 
Partager cet article
Repost0
31 mars 2012 6 31 /03 /mars /2012 22:55

L'option de vider un dossier n'est pas présent dans Gmail, la messagerie de Google.

 

Le dossier corbeille ou spam est vidé régulièrement, si vous voulez le faire manuellement, il existe une méthode simple qui peux être utilisé pour tous les dossiers :

 

Solution pour tous les dossiers

 

1 - Selectionner le dossierà vider

2 - Tous selectionner (première case à cocher, en haut à gauche de la liste des mails)

3 - Selectionner tous les autres

 


4 - Supprimer les mails (icône d'une poubelle)

 

Solution pour la corbeille et les spams

 

Sinon Gmail vous propose un raccourci pour la corbeille et les spams (juste en haut de la liste) :

 

 

 

J'ai fait cette article car je n'avais pas vu le lien  apparaître après avoir "tous selectionner".

Partager cet article
Repost0
31 mars 2012 6 31 /03 /mars /2012 13:58

Actuellement Gmail ne fournit pas de solution pour enregistrer ses mails avec un simple bouton (enregister sous) comme dans Outlook par exemple. (Il existe néanmoins des solutions pour archiver ses mails comme Gmail Backup, qui archive des mails au format eml via des filtres).

 

Donc pour enregistrer un mail, aller sur la petite flèche, puis cliquez sur "Afficher l'original".

 

 

Il faudra ensuite faire "Fichier> Enregistrer sous", puis renommer le fichier avec l'extension .eml.

 

Votre mail est lisible par un n'importe quelle messagerie.

Partager cet article
Repost0