<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM SECURITY AND
EXCHANGE FORM 10-Q AND IS QUALIFIED IN ITS ENTIRETY BY REFERENCE TO SUCH
FINANCIAL STATEMENTS.
</LEGEND>
<S> <C>
<PERIOD-TYPE> 6-MOS
<FISCAL-YEAR-END> DEC-31-2000
<PERIOD-START> JAN-01-2000
<PERIOD-END> JUN-30-2000
<CASH> 906,104
<SECURITIES> 0
<RECEIVABLES> 14,572,629
<ALLOWANCES> 633,665
<INVENTORY> 24,821,709
<CURRENT-ASSETS> 41,461,143
<PP&E> 21,128,395
<DEPRECIATION> 8,123,722
<TOTAL-ASSETS> 57,561,203
<CURRENT-LIABILITIES> 18,400,631
<BONDS> 0
0
0
<COMMON> 145,780
<OTHER-SE> 38,290,110
<TOTAL-LIABILITY-AND-EQUITY> 57,561,203
<SALES> 24,526,991
<TOTAL-REVENUES> 27,148,100
<CGS> 20,518,066
<TOTAL-COSTS> 22,414,394
<OTHER-EXPENSES> 6,235,856
<LOSS-PROVISION> 293,998
<INTEREST-EXPENSE> 539,272
<INCOME-PRETAX> (2,335,420)
<INCOME-TAX> 856,518
<INCOME-CONTINUING> (1,478,902)
<DISCONTINUED> 0
<EXTRAORDINARY> 0
<CHANGES> 0
<NET-INCOME> (1,478,902)
<EPS-BASIC> ($0.12)
<EPS-DILUTED> ($0.12)<F1>
<FN>
<F1>Excludes impact of stock options because inclusion thereof would be
anti-dilutive.
</FN>
</TABLE>