<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM AS
OF AND FOR THE NINE MONTHS PERIOD ENDED APRIL 30, 2000 AND IS QUALIFIED
IN ITS ENTIRETY BY REFERENCE TO SUCH FINANCIAL STATEMENTS.
</LEGEND>
<S> <C>
<PERIOD-TYPE> 9-MOS
<FISCAL-YEAR-END> JUL-31-2000
<PERIOD-START> AUG-01-1999
<PERIOD-END> APR-30-2000
<CASH> 5,671,144
<SECURITIES> 0
<RECEIVABLES> 4,046,006
<ALLOWANCES> (135,000)
<INVENTORY> 3,085,596
<CURRENT-ASSETS> 12,931,185
<PP&E> 4,290,979
<DEPRECIATION> (2,113,078)
<TOTAL-ASSETS> 23,996,376
<CURRENT-LIABILITIES> 4,746,491
<BONDS> 0
0
0
<COMMON> 70,002
<OTHER-SE> 16,401,540
<TOTAL-LIABILITY-AND-EQUITY> 23,996,376
<SALES> 24,770,718
<TOTAL-REVENUES> 24,770,718
<CGS> 15,026,977
<TOTAL-COSTS> 15,026,977
<OTHER-EXPENSES> 5,323,696
<LOSS-PROVISION> 0
<INTEREST-EXPENSE> 221,385
<INCOME-PRETAX> 4,396,871
<INCOME-TAX> 1,651,360
<INCOME-CONTINUING> 2,745,511
<DISCONTINUED> 0
<EXTRAORDINARY> 0
<CHANGES> 0
<NET-INCOME> 2,745,511
<EPS-BASIC> 0.39
<EPS-DILUTED> 0.39
</TABLE>