protected override void EnterField(int fn)
        {
            Field  f = (Field)fields[fn];
            string s = f.ToString();
            int    ol;

            try
            {
                if (fn < 10)
                {
                    switch (fn)
                    {
                    case 1: did = int.Parse(s);
                        FetchDistrict(ref s);
                        break;

                    case 2: cid = int.Parse(s);
                        FetchCustomer(ref s);
                        break;

                    case 7: ol_cnt = int.Parse(s);
                        DoOLCount(ref s);
                        for (int j = 0; j < ol_cnt; j++)
                        {
                            ols[j] = new OrderLine();
                        }
                        break;
                    }
                }
                else
                {
                    ol = (fn - 10) / 8;
                    fn = (fn - 10) % 8;
                    OrderLine o = ols[ol];
                    switch (fn)
                    {
                    case 0: o.ol_supply_w_id = int.Parse(s);
                        break;

                    case 1: o.oliid = int.Parse(s);
                        FetchItemData(ol, ref s);
                        break;

                    case 3: o.ol_quantity = int.Parse(s);
                        DoOLQuantity(ol, ref s);
                        if (ol == ol_cnt - 1)
                        {
                            DoTotal();
                        }
                        break;
                    }
                }
                status.Text = s;
            }
            catch (Exception ex) {
                status.Text = ex.Message;
                Form1.RecordResponse(ex, fid, tid);
                tr.Rollback();
                Form1.wconflicts++;
            }
            Invalidate(true);
        }