Hello All, I'm developing some modules to manage my computer business, and to do invoice, purchase orders, timesheets etc. I was using a table in the form in 4.6.3, but things are different in 4.7. The code below looks the closert so far, is there a better way to do this anybody can recommend? I've looked at the modules that use arrays/rows, like poll and system, but they aren't really doing what i'm trying to. Or do I just need to use css in the theme it to get the correct display? I'm open to suggestions. TIA Simon 4.6.3 ------- $header = array(t('Time'), t('Customer'), t('Comments')); $rows = array(); $count = count($node->timesheet_time); if ($count < 5) { $count = 5; } if ($_POST['edit']['timesheet_links_more'] == 1) { $count += 5; } for ($i = 0; $i < $count; $i++) { $row = array(); $row[] = form_textfield('', 'timesheet_time][' . $i, $node->timesheet_time[$i], 6, 6); $row[] = form_autocomplete('', 'timesheet_customer][' . $i, $node->timesheet_customer[$i], 30, 128, 'contacts/autocomplete_customer', $type); $row[] = form_textfield('', 'timesheet_comments][' . $i, $node->timesheet_comments[$i], 30, 255); //$row[] = form_textarea('', 'timesheet_comments][' . $i, $node->timesheet_comments[$i], 20, 2); $rows[$i] = $row; } $output .= form_item(t('Timesheet Entries'), theme('table', $header, $rows)); 4.7 ------ // If the user pressed the button asking for more rows, add more if ($_POST['edit']['timesheet_links_more'] == 1) { $count += 5; } $form['entries'] = array( '#type' => 'fieldset', '#title' => t('Timesheet Entries'), '#tree' => TRUE, ); // Now actually display the rows for ($i = 0; $i < $count; $i++) { $form['entries'][$i] = array( '#type' => 'fieldset', '#tree' => TRUE, ); $form['entries'][$i]['timesheet_time'] = array( '#type' => 'textfield', '#size' => 6, '#maxlength' => 6, '#default_value' => $node->timesheet_time[$i], '#prefix' => '<table><tr><td>', '#suffix' => '</td>', ); $form['entries'][$i]['timesheet_customer'] = array( '#type' => 'textfield', '#size' => 30, '#maxlength' => 128, '#autocomplete_path' => 'customer/autocomplete', '#default_value' => $node->timesheet_customer[$i], '#prefix' => '<td>', '#suffix' => '</td>', ); $form['entries'][$i]['timesheet_comments'] = array( '#type' => 'textfield', '#size' => 30, '#maxlength' => 255, '#default_value' => $node->timesheet_comments[$i], '#prefix' => '<td>', '#suffix' => '</td></tr></table>', ); }