Exemple #1
0
        /// <summary>
        /// 创建磁贴一个
        /// </summary>
        /// <param name="p_XIndex">水平序号</param>
        /// <param name="p_YIndex">垂直序号</param>
        UCFabLTileSimple CreateFabTileOne(int p_XIndex, int p_YIndex, int p_FirstColumnWidth, int p_FirstRowHeight)
        {
            int splitpixel = 2;//间隔像素
            int tempWidth = 85, tempHeight = 44;

            int setWidth = UCFabParamSet.GetIntValueByID(6014);//码单选择简洁模式磁贴宽度

            if (setWidth > 0)
            {
                tempWidth = setWidth;
            }

            UCFabLTileSimple ucft = new UCFabLTileSimple();

            ucft.Location = new System.Drawing.Point(p_XIndex * tempWidth + splitpixel * (p_XIndex + 1) + p_FirstColumnWidth, p_YIndex * tempHeight + splitpixel * (p_YIndex + 1) + p_FirstRowHeight);
            ucft.Name     = "ucft" + (10000 * p_YIndex + p_XIndex);
            ucft.Size     = new System.Drawing.Size(tempWidth, tempHeight);
            ucft.TabIndex = 1000 * p_YIndex + p_XIndex;
            //ucft.UCBackColorIndex = p_ColorIndex;
            ucft.object_CheckedChanged += new UCFabLTileCheckChanged(UCFabLTile_CheckChanged);//关联委托事件
            //ucft.MouseClick += new MouseEventHandler(panGroup_MouseClick);//快速点击及滚动用

            ucft.UCControl_RowIndexChanged += new UCFabRowIndexChanged(UCControl_RowIndexChanged);

            if (UCAllowKPFlag)//允许开匹
            {
                ucft.ContextMenuStrip = cMenuLoadFab;
            }
            return(ucft);
        }
Exemple #2
0
 /// <summary>
 /// 反选
 /// </summary>
 public override void UCSelectFan()
 {
     foreach (Control ctl in panGroup.Controls)
     {
         if (ctl is UCFabLTileSimple)
         {
             UCFabLTileSimple ucf = (UCFabLTileSimple)ctl;
             ucf.UCChecked = !ucf.UCChecked;
         }
     }
 }
Exemple #3
0
 /// <summary>
 /// 取消一个选项,外部调用
 /// </summary>
 /// <param name="p_ISN"></param>
 public override void UCCancelOne(string p_ISN)
 {
     foreach (Control ctl in panGroup.Controls)
     {
         if (ctl is UCFabLTileSimple)
         {
             UCFabLTileSimple ucf = (UCFabLTileSimple)ctl;
             if (ucf.UCISN == p_ISN)
             {
                 ucf.UCChecked = false;
             }
         }
     }
 }
Exemple #4
0
        /// <summary>
        /// 创建磁贴
        /// </summary>
        /// <param name="dtSource">数据源,列0/1/2/3/4:选择标志/BoxNo/卷号/数量/缸号</param>
        /// <param name="p_ColumnCount">列数量</param>
        void CreateFabTile(DataTable dtSource, int p_ColumnCount)
        {
            RemoveUserCtl(panGroup);
            //panGroup.Controls.Clear();//清除界面上所有控件


            int firstColumnWidth = 55 + 1;
            int firstRowHeight   = 23 + 1;


            for (int i = 0; i < dtSource.Rows.Count; i++)
            {
                int xIndex = i % (p_ColumnCount); //水平 取余 小尺寸,倍率2 *2
                int yIndex = i / (p_ColumnCount); //垂直 取整 小尺寸,倍率2 * 2

                int colorIndex = 1;               //色系
                //if (xIndex % 2 == 1)//取余
                //{
                //    colorIndex = 2;
                //}


                if (xIndex == 0)//创建一个起始列
                {
                    UCFabLTileSimpleFirstColumn ucftc = CreateFabTileFirstColumnOne(xIndex, yIndex, firstRowHeight);
                    ucftc.UCRowIndex = yIndex + 1;
                    panGroup.Controls.Add(ucftc);
                }
                if (yIndex == 0)//创建一个起始行
                {
                    UCFabLTileSimpleFirstRow ucftr = CreateFabTileFirstRowOne(xIndex, yIndex, firstColumnWidth);
                    ucftr.UCColIndex = xIndex + 1;
                    panGroup.Controls.Add(ucftr);
                }


                UCFabLTileSimple ucft = CreateFabTileOne(xIndex, yIndex, firstColumnWidth, firstRowHeight);
                ucft.IniValue(dtSource.Rows[i]["BoxNo"].ToString()
                              , new string[] { dtSource.Rows[i]["SubSeq"].ToString(), dtSource.Rows[i]["Qty"].ToString(), dtSource.Rows[i]["JarNum"].ToString() }
                              , SysConvert.ToBoolean(SysConvert.ToInt32(dtSource.Rows[i]["SelectFlag"])), colorIndex);
                ucft.UCRowIndex = i;//磁贴序号
                panGroup.Controls.Add(ucft);
            }
        }
Exemple #5
0
        /// <summary>
        /// 磁贴选择改变事件
        /// </summary>
        /// <param name="sender"></param>
        void UCFabLTile_CheckChanged(object sender)
        {
            if (tempTileShifFlag)//在执行Shift事件中,不执行,防止死循环
            {
                return;
            }
            tempTileShifFlag = true;

            UCFabLTileSimple ucft = (UCFabLTileSimple)sender;

            DataRow[] drA = UCDataSource.Select(" BoxNo=" + SysString.ToDBString(ucft.UCISN));
            if (drA.Length == 1)
            {
                drA[0]["SelectFlag"] = SysConvert.ToInt32(ucft.UCChecked);
            }

            if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)                  //按住了Shift键盘
            {
                if (UCCurrnetFocusIndex != -1)                                      //前一聚焦行号已存在
                {
                    for (int i = UCCurrnetFocusIndex + 1; i < ucft.UCRowIndex; i++) //防止死循环调用
                    {
                        UCDataSource.Rows[i]["SelectFlag"] = ucft.UCChecked;
                    }

                    foreach (Control ctl in panGroup.Controls)
                    {
                        if (ctl is UCFabLTileSimple)
                        {
                            UCFabLTileSimple ucf = (UCFabLTileSimple)ctl;
                            if (ucf.UCRowIndex >= UCCurrnetFocusIndex + 1 && ucf.UCRowIndex <= ucft.UCRowIndex)
                            {
                                ucf.UCChecked = ucft.UCChecked;
                            }
                        }
                    }
                }
            }


            UCCurrnetFocusIndex = ucft.UCRowIndex;
            tempTileShifFlag    = false;
        }