There is this book, Ponto de Encontro, that is used to teach portuguese as a second language. It has great grammar practice.
If you want something in portuguese, I think u can try a very well known grammar book in Brazil, GRAMATICA REFLEXIVA - William Roberto Cereja, Thereza Cochar Magalhães. Its actually a eight volume books used at schools (elementary/high school), so the language is very simple and objective, full of examples. A foreign friend of mine used those books to learn portuguese grammar and said they explain everything very well.