private void updateRecord()
	{
		updateGrbit();
		byte[] recbytes = new byte[0];

		byte[] tmp = ByteTools.cLongToLEBytes( grbit );
		recbytes = ByteTools.append( tmp, recbytes );
		recbytes = ByteTools.append( dTitlePrompt.read(), recbytes );
		recbytes = ByteTools.append( dTitleError.read(), recbytes );
		recbytes = ByteTools.append( dTextPrompt.read(), recbytes );
		recbytes = ByteTools.append( dTextError.read(), recbytes );

		// get the firstCond bytes
		tmp = new byte[0];
		for( int i = 0; i < firstCond.size(); i++ )
		{
			Object o = firstCond.elementAt( i );
			Ptg ptg = (Ptg) o;
			tmp = ByteTools.append( ptg.getRecord(), tmp );
		}
		// get the length and add in.
		short sz = (short) tmp.length;
		recbytes = ByteTools.append( ByteTools.shortToLEBytes( sz ), recbytes );
		// add garbage
		recbytes = ByteTools.append( garbageByteOne, recbytes );
		recbytes = ByteTools.append( tmp, recbytes );

		// get the secondCond bytes
		tmp = new byte[0];
		for( int i = 0; i < secondCond.size(); i++ )
		{
			Object o = secondCond.elementAt( i );
			Ptg ptg = (Ptg) o;
			tmp = ByteTools.append( ptg.getRecord(), tmp );
		}
		// get the length and add in.
		sz = (short) tmp.length;
		recbytes = ByteTools.append( ByteTools.shortToLEBytes( sz ), recbytes );
		// add garbage
		recbytes = ByteTools.append( garbageByteTwo, recbytes );
		recbytes = ByteTools.append( tmp, recbytes );

		tmp = new byte[1];
		if( cRangeList != null )
		{
			tmp[0] = (byte) cRangeList.size();
			;
			recbytes = ByteTools.append( tmp, recbytes );
			for( Object aCRangeList : cRangeList )
			{
				tmp = ((PtgArea) aCRangeList).getRecord();
				byte[] tmp2 = new byte[8];
				tmp[0] = 0;
				System.arraycopy( tmp, 0, tmp2, 0, tmp2.length );
				recbytes = ByteTools.append( tmp2, recbytes );
			}
			// there is a trailing zero, not sure why...
			if( cRangeList.size() > 0 )
			{
				tmp = new byte[1];
				tmp[0] = 0;
				recbytes = ByteTools.append( tmp, recbytes );
			}
		}
		else if( (ooxmlranges != null) && (ooxmlranges.length > 0) )
		{
			tmp[0] = (byte) ooxmlranges.length;
			recbytes = ByteTools.append( tmp, recbytes );
			for( String ooxmlrange : ooxmlranges )
			{
				Ptg/*Ref*/ p = PtgRef.createPtgRefFromString( getSheet().getSheetName() + "!" + ooxmlrange, this );
				tmp = p.getRecord();
			        /* replace with above PtgArea pa= new PtgArea();
                    try {
                        pa.setParentRec(this);
                        pa.setLocation(this.getSheet().getSheetName() + "!" + ooxmlranges[i]);
                    } catch (Exception e) {
                        // TODO: handle MAXROWS/MAXCOLS
                    }                    
                    tmp = pa.getRecord();
                    /**/
				tmp[0] = 0;
				byte[] tmp2 = new byte[8];
				System.arraycopy( tmp, 0, tmp2, 0, tmp2.length );
				recbytes = ByteTools.append( tmp, recbytes );
			}
			// there is a trailing zero, not sure why...
			if( ooxmlranges.length > 0 )
			{
				tmp = new byte[1];
				tmp[0] = 0;
				recbytes = ByteTools.append( tmp, recbytes );
			}
		}

		setData( recbytes );
	}