il codice completo
la classe WeekViewEventcodice:@Override public List<WeekViewEvent> onMonthChange(int newYear, int newMonth) { SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd"); final String strDate = simpleFormat.format(calendarioFooter.getTime()); List<WeekViewEvent> events = new ArrayList<WeekViewEvent>(); SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase(); String tabella_op = "SELECT " + "a.id_appuntamento, " + "a.id_operatore," + "a.id_servizio, " + "a.data, " + "a.ora_inizio, " + "a.ora_fine, " + "c._id, " + "c.nome, " + "c.cognome, " + "o.nome, " + "s.colore, " + "s.tipo " + "FROM Appuntamenti a " + "LEFT JOIN Operatori o ON (a.id_operatore = o._id) " + "LEFT JOIN Clienti c ON (a.id_cliente = c._id) " + "LEFT JOIN Servizi s ON (a.id_servizio = s._id) " + "WHERE a.data LIKE '" + strDate + "' AND o.eliminato = 0 " + "ORDER BY a.id_operatore ASC"; Cursor cur = db.rawQuery(tabella_op, null); while (cur.moveToNext()) { startTime = (Calendar) calendarioFooter.clone(); id_appuntamento = cur.getString(0); id_operatore = cur.getInt(1);//****// id_servizio = cur.getString(2); dat = cur.getString(3); ora_iniz = cur.getString(4); ora_fin = cur.getString(5); id_client = cur.getString(6); nome_cliente = cur.getString(7); cognome_cliente = cur.getString(8); nome_operatore = cur.getString(9); colore_serv = cur.getInt(10); tipo_serv = cur.getString(11); startTime.set(Calendar.DAY_OF_MONTH, giorno_ok); startTime.add(Calendar.DATE, numero); // Non mi importa più di quale sia l'effettivo valore, conta solo la "posizione" numero++; //inizio startTime.set(Calendar.HOUR_OF_DAY, ora_inizio); startTime.set(Calendar.MINUTE, minuto_inizio); startTime.set(Calendar.MONTH, newMonth - 1); startTime.set(Calendar.YEAR, newYear); //fine Calendar endTime = (Calendar) startTime.clone(); endTime.set(Calendar.HOUR_OF_DAY, ora_fine); endTime.set(Calendar.MINUTE, minuto_fine); //setto la weekview WeekViewEvent event = new WeekViewEvent(id_appuntamento, getEventTitle(startTime, endTime), startTime, endTime); event.setColor(colore_serv); events.add(event); } cur.close(); db.close(); return events; }
questo screenshot del programma mostra il buon funzionamento, perchè le 3 colonne hanno l'id che corrisponde nella tabella "Appuntamenti"Screenshot_2015-09-22-14-52-27.jpgcodice:public class WeekViewEvent { private String mId; private Calendar mStartTime; private Calendar mEndTime; private String mName; private int mColor; public WeekViewEvent(String id, String name, int startYear, int startMonth, int startDay, int startHour, int startMinute, int endYear, int endMonth, int endDay, int endHour, int endMinute) { this.mId = id; this.mStartTime = Calendar.getInstance(); this.mStartTime.set(Calendar.YEAR, startYear); this.mStartTime.set(Calendar.MONTH, startMonth-1); this.mStartTime.set(Calendar.DAY_OF_MONTH, startDay); this.mStartTime.set(Calendar.HOUR_OF_DAY, startHour); this.mStartTime.set(Calendar.MINUTE, startMinute); this.mEndTime = Calendar.getInstance(); this.mEndTime.set(Calendar.YEAR, endYear); this.mEndTime.set(Calendar.MONTH, endMonth-1); this.mEndTime.set(Calendar.DAY_OF_MONTH, endDay); this.mEndTime.set(Calendar.HOUR_OF_DAY, endHour); this.mEndTime.set(Calendar.MINUTE, endMinute); this.mName = name; } public WeekViewEvent(String id, String name, Calendar startTime, Calendar endTime) { this.mId = id; this.mName = name; this.mStartTime = startTime; this.mEndTime = endTime; } public Calendar getStartTime() { return mStartTime; } public void setStartTime(Calendar startTime) { this.mStartTime = startTime; } public Calendar getEndTime() { return mEndTime; } public void setEndTime(Calendar endTime) { this.mEndTime = endTime; } public String getName() { return mName; } public void setName(String name) { this.mName = name; } public int getColor() { return mColor; } public void setColor(int color) { this.mColor = color; } public String getId() { return mId; } public void setId(String id) { this.mId = id; } }
Questo sotto invece mostra cosa accade se ad esempio una uno degli id della Tabella A(operatori) non è presente nella Tabella B(appuntamenti).
Se controlli lo screenshot di prima il riquadro rosso con scritto "Giorgia Capogrossi" dovrebbe essere visualizzato nella terza colonna.
Screenshot_2015-09-22-14-56-41.jpg

Rispondi quotando