Doc team note: for context to use this example, read the Theming CCK Input Form page first.

In the following book page I will theme a CCK content type in 3 different ways. First I post the content type:
This should be a bill which could the sent to an client, therefore I have the following fields
title
field_client // A node reference to a content type called client to get the address data etc.
field_seller // A user reference to a roll called seller, so that you can have a analyze of your workers
field_bill_text // A text to the client which is added to the bill
field_pay_date // A Date on which the client has to pay, this could be f.e. used for views
field_a_nr // A node reference to a content type called article to get the description, the price per article
field_a_count // How many articles, on above type was sold; perhaps you could add a functionality whether there are some articles, which are available
field_bill_me // ME = Mailing exchanges, how many should be added to the price

This fields are supplemented with a lot of computed fields , f.e. one for getting the price per article

 <?php
for ($i = 0; $i < count($node->field_a_nr); $i ++) {
  $article = node_load($node->field_a_nr[$i]['nid']);
  $node_field[$i]['value'] = $article->field_price[0]['value'];
}
?>

or for summand all articles to an end price

<?php
for ($i=0; $i <= count($node->field_r_articleprice); $i ++){
  if (is_numeric($node->field_r_articleprice[$i-1]['value'])){
    if (is_numeric($node->field_a_count[$i-1]['value']))  {
      $node_field[$i-1]['value'] = $node->field_r_articleprice[$i-1]['value']*$node->field_a_count[$i-1]['value'];
    }
  }
}
?>

So the user doesn't have to calculate any more.

Steps:
1. Creation of Themes

The first theme was a basic try to use theming form, f.e. how can fields be displayed in a table

Only local images are allowed.

<?php
/* print the Fields beside themselves
*/ 
?>
<div id="head" style="height:150px; border:2px dotted #000000">
  <div id="client" style="padding-left:10px; width:150px; float:left">
    <?php echo '<b> General </b> '. drupal_render($form['field_client'])?>
  </div>
  <div id="seller" style="float:right; padding-right:10px; width:100px;">
    <?php echo drupal_render($form['field_seller']);?>
  </div>
  <div id="End-Date" style="float:right; padding-right:30px; width:150px;">
    <?php echo drupal_render($form['field_pay_date']);?>
  </div>
</div>
<?php
// Print a table with fields for the Nodereference A_NR to an Article and the count of this articles
// How many Articles?
$count = count(element_children($form['group_bill']['field_a_nr']));
// $output as a tmp variable
// first the head of an table
$output = '<br><b>Choose the Articles</b> <br><div id="bill" style="border:2px dotted #000000">
          <table>
           <thead>
            <tr>
              <th>Article</th>
              <th>Count</th>
            </tr>
          </thead>
         <tbody>';         
// The main Table; for each article a field for the article and on for the count
for ($i=0; $i < $count; $i++) {
   if ($i % 2 == 1) {
     $var = 'even';
   }
   else {
     $var = 'odd';
   }
   $output .= '<tr class="'.$var. '" >';
   $output .= '<td>'. drupal_render($form['group_bill']['field_a_nr'][$i]). '</td>';
   $output .= '<td>'. drupal_render($form['group_bill']['field_a_count'][$i]) . '</td';
   $output .= '</tr>';
}
$output .= '</tbody></table></div><br>';
echo $output;
// the mailing exchanges, the text for the client etc.
echo drupal_render($form['group_aggregation']['field_bill_me']);
echo drupal_render($form['field_bill_text']);
echo drupal_render($form['form_token']);
echo drupal_render($form['form_id']);
echo drupal_render($form['options']);
echo drupal_render($form['preview'])
echo drupal_render($form['submit']);
?>

The second theme displays the form as Tabs with JSTabs in JSTools

Only local images are allowed.

<?php
/*The second Theme, displaying the Form in Tabs
 *at first a "new" header with the client on the top , basic css
*/
$output = '<div id="client" style="padding-left:10px; width:150px;">';
$output .= '<b> General </b> '. drupal_render($form['field_client']);
$output .=  '</div>';
$output .=  '<div id="seller" style="float:left; padding-left:10px; width:100px;">';
$output .=   drupal_render($form['field_seller']);
$output .=  '</div>';
$output .=  '<div id="End-Date" style="padding-left:30px; width:150px;">';
$output .= drupal_render($form['field_pay_date']);
$output .=  '</div>';
// An extra variable for better integration into JSTABS
$content['general'] = $output;
// Print a table with fields for the Nodereference A_NR to an Article and the count of this articles
// How many Articles?
$count = count(element_children($form['group_bill']['field_a_nr']));
// $Output as a tmp variable
// first the head of an table
$output = '<br><b>Choose the Articles</b> <br><div id="bill" style="border:2px dotted #000000">
          <table>
           <thead>
            <tr>
              <th>Article</th>
              <th>Count</th>
            </tr>
          </thead>
         <tbody>';
// The main Table; for each article a field for the article and on for the count
for($i=0; $i < $count; $i++){
   if ($i % 2 == 1){
     $var = 'even';
   }
   else{
      $var = 'odd';
   }
   $output .= '<tr class="'.$var. '" >';
   $output .= '<td>'. drupal_render($form['group_bill']['field_a_nr'][$i]). '</td>';
   $output .= '<td>'. drupal_render($form['group_bill']['field_a_count'][$i]) . '</td';
   $output .= '</tr>';
}
$output .= '</tbody></table></div><br>';
$content['bill'] = $output;
$content['text'] = drupal_render($form['field_bill_text']);
// definition of the tabset and the tabpages
$formtab['tabblock1'] = array(
  '#type' => 'tabset',
);
$formtab['tabblock1']['tab1'] = array(
  '#type' => 'tabpage',
  '#title' => t('General'),
  '#content' => $content['general'],
  '#weight' => -10,
);
$formtab['tabblock1']['tab2'] = array(
  '#type' => 'tabpage',
  '#title' => t('Bill'),
  '#content' => $content['bill'],
  '#weight' => -2 ,
);
$formtab['tabblock1']['tab3'] = array(
  '#type' => 'tabpage',
  '#title' => t('text'),
  '#content' => $content['text'],
);
// render the tabs
echo tabs_render($formtab);
echo drupal_render($form['form_token']);
echo drupal_render($form['form_id']);
echo drupal_render($form['options']);
echo drupal_render($form['preview']);
echo drupal_render($form('submit']);
?>

The third theme displays the form like the standard way but with a css class .item. This class is used by jQuery to hide, first each element, and than show the next form by clicking the next link or the key [page down]

First you have nothing
Only local images are allowed.

Than after 3 [Page downs]
Only local images are allowed.

3.bill-edit.tpl.php:

<?php
// print the fields like normal, but with css class item for jquery; loads the Javascript-File
drupal_add_js('themes/garland/3bill.js');
echo '<div class="item">'. drupal_render($form['title']) .'</div>';
echo '<div class="item">'. drupal_render($form['field_client']) .'</div>';
echo '<div class="item">'. drupal_render($form['field_pay_date']) .'</div>';
echo '<div class="item">'. drupal_render($form['field_seller']) .'</div>';
echo '<div class="item">'. drupal_render($form['field_a_nr']) .'</div>';
echo '<div class="item">'. drupal_render($form['field_a_count']) .'</div>';
echo '<div class="item">'. drupal_render($form['field_bill_me']) .'</div>';
echo '<div class="item">'. drupal_render($form['field_bill_text']) .'</div>';
?>

3bill.js:

$('#node-form > div').prepend('<a href="#" id="click">Next</a> Click [Page Down] to show the next element<br> and  [Page Up] to hide the last elment');
// Shows the first hidden Item
$('#node-form > div > .item:first').show();
// Adds a function if the Link is clicked
$('#node-form > div > a#click').click(function() {
  // Shows the first hidden element -> the next item
  $('#node-form > div > .item:hidden:first').show()
});
// If you click Page Down the next Element get visible
$(document).keyup(function(event) {
  if (event.keyCode == 34) {
    $('#node-form > div > .item:hidden:first').show();
  }
  else if (event.keyCode == 33) {
    $('#node-form > div > .item:visible:last').hide();
}
});

2.problems
For submitting the form I had to have:

<?php
echo drupal_render($form['form_token']);
echo drupal_render($form['form_id']);
?>