<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<S> <C>
<PERIOD-TYPE> YEAR
<FISCAL-YEAR-END> APR-30-2000
<PERIOD-END> APR-30-2000
<CASH> 3,012,236<F1>
<SECURITIES> 0<F1>
<RECEIVABLES> 30,837,388<F1>
<ALLOWANCES> 565,597<F1>
<INVENTORY> 32,971,918<F1>
<CURRENT-ASSETS> 73,384,972<F1>
<PP&E> 26,073,138<F1>
<DEPRECIATION> 15,507,208<F1>
<TOTAL-ASSETS> 95,016,013<F1>
<CURRENT-LIABILITIES> 23,756,303<F1>
<BONDS> 0<F1>
0<F1>
0<F1>
<COMMON> 8,572<F1>
<OTHER-SE> 0<F1>
<TOTAL-LIABILITY-AND-EQUITY> 95,016,013<F1>
<SALES> 103,417,448<F1>
<TOTAL-REVENUES> 112,815,753<F1>
<CGS> 69,798,833<F1>
<TOTAL-COSTS> 106,718,641<F1>
<OTHER-EXPENSES> 0<F1>
<LOSS-PROVISION> 0<F1>
<INTEREST-EXPENSE> 1,442,144<F1>
<INCOME-PRETAX> 4,654,968<F1>
<INCOME-TAX> 1,126,239<F1>
<INCOME-CONTINUING> 3,065,496<F1>
<DISCONTINUED> 0<F1>
<EXTRAORDINARY> 0<F1>
<CHANGES> 0<F1>
<NET-INCOME> 3,065,496<F1>
<EPS-BASIC> 0.36<F1>
<EPS-DILUTED> 0.33<F1>
<FN>
<F1>AGREED TO AUDITED FINANCIAL STATEMENTS
</FN>
</TABLE>