To the best of my knowledge it does not appear to be documented anywhere. You've got two options:
1. Look at OpenOffice.org or Gnumeric sources if its implemented there. 2. use org.apache.poi.hssf.dev.BiffViewer to view the structure of the file. experiment by adding one criteria entry at a time. See what it does to the structure, infer behavior and structure from it. Using the unix diff command (or get cygwin from www.cygwin.com for windows) you can figure out a lot very quickly. Hope that helps, Andy On Sun, 2002-04-07 at 13:40, Hoffman, Jason wrote: > Can anyone point us in the right direction on this one? Sounds lihe stopper > is understanding the "criteria". Anyone know where this may be documented? > > -----Original Message----- > From: James, Randy [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, April 03, 2002 10:18 AM > To: '[EMAIL PROTECTED]' > Subject: Data Validation with POI > > > Warning, this is a long message.... > > I am trying to contribute data validation functionality to the project. I > have successfully created(I think) the Record types for the DV and DVAL > BIFF8 records. I have hit a snag though. Using BiffViewer I analyze a > spreadsheet that I put a drop down list into(using Excel). The problem is > that BiffViewer returns me the data from the DV records, but I am unsure on > how to interpret this. For example, the fillFields method in my DV code is: > > protected void fillFields(byte [] data, short size, int offset) > { > field_1_option_flags = LittleEndian.getShort(data, 0 + offset); > field_2_validation_criteria = > new IntList((short)100); // initial capacity of 100 > > /*44 is the max here for some reason. The record size always seems > to be > 47, however when I use size as the max I get an array out of bounds > exception > from LittleEndian.getNumber().*/ > > for (int k = 4; k < 44; k = k + 4) { > > field_2_validation_criteria.add(LittleEndian.getInt(data, k + > offset)); > } > > } > > ----------------------- > > The toString in my class looks like: > > public String toString() > { > StringBuffer buffer = new StringBuffer(); > > buffer.append("[DV]\n"); > buffer.append(" .optionFlags = ") > .append(Integer.toHexString(getOptionFlags())).append("\n"); > > for (int k = 0; k < getNumCriteria(); k++) { > buffer.append(" .criteria_" + k + " = ") > .append(Integer.toHexString(getCriteriaAt(k))).append("\n"); > } > > buffer.append(" .validationType = ") > .append(Integer.toHexString(getValidationType())).append("\n"); > buffer.append(" .errorStyle = ") > .append(Integer.toHexString(getErrorStyle())).append("\n"); > buffer.append(" .strLookup= ").append(getStrLookup()) > .append("\n"); > buffer.append(" .allowBlank = ").append(getAllowBlank()) > .append("\n"); > buffer.append(" .supressCombo = > ").append(getSuppressCombo()) > .append("\n"); > buffer.append(" .imeMode = ") > > .append(Integer.toHexString(getImeMode())).append("\n"); > buffer.append(" .showInputMessage = > ").append(getShowInputMessage()) > .append("\n"); > buffer.append(" .showErrorMessage = > ").append(getShowErrorMessage()) > .append("\n"); > buffer.append(" .operatorType = ") > .append(Integer.toHexString(getOperatorType())).append("\n"); > buffer.append("[/DV]\n"); > > return buffer.toString(); > } > -------------------------------- > > OK, with that said, here is the output from BiffViewer: > > [DV] > .optionFlags = 103 > .criteria_0 = 1 > .criteria_1 = 1 > .criteria_2 = 1 > .criteria_3 = 1 > .criteria_4 = c0009 > .criteria_5 = 3000125 > .criteria_6 = 9000900 > .criteria_7 = 0 > .criteria_8 = 101 > .criteria_9 = 0 > .validationType = 3 > .errorStyle = 0 > .strLookup= false > .allowBlank = true > .supressCombo = false > .imeMode = 0 > .showInputMessage = false > .showErrorMessage = false > .operatorType = 0 > [/DV] > > Finally, here's my question. For each of the criteria_x, where might I find > what each one is? In the Excel 97 Dev kit , page 305 it says "Array of > validation criteria(see text)". Maybe I am missing something, but "see > text" does not point me to what to see. Am I missing something here? Seems > like there should be a list of what the criterias can be.... > > Hopefully this is the correct forum to ask these questions. I apologize for > the length of this message. Any help is much appreciated! > > Randy James -- http://www.superlinksoftware.com http://jakarta.apache.org/poi - port of Excel/Word/OLE 2 Compound Document format to java http://developer.java.sun.com/developer/bugParade/bugs/4487555.html - fix java generics! The avalanche has already started. It is too late for the pebbles to vote. -Ambassador Kosh
