//SPECIAL METHOD's private bool LoadDocSet(string iddoc) { string TextQuery = "SELECT top 1 " + "journ.iddoc as IDDOC, " + "journForBill.docno as DocNo, " + "CONVERT(char(8), CAST(LEFT(journForBill.date_time_iddoc, 8) as datetime), 4) as DateDoc, " + "journForBill.iddoc as Bill, " + "DocCC.$КонтрольНабора.КолСтрок as Rows, " + "Section.descr as Sector, " + "DocCC.$КонтрольНабора.Сумма as Sum, " + "DocCC.$КонтрольНабора.НомерЛиста as Number, " + "DocCC.$КонтрольНабора.ФлагСамовывоза as SelfRemovel, " + "Clients.descr as Client, " + "Bill.$Счет.ТипНакладной as TypeNakl " + "FROM " + "_1sjourn as journ (nolock) " + "INNER JOIN DH$КонтрольНабора as DocCC (nolock) " + "ON DocCC.iddoc = journ.iddoc " + "LEFT JOIN DH$КонтрольРасходной as DocCB (nolock) " + "ON DocCB.iddoc = DocCC.$КонтрольНабора.ДокументОснование " + "LEFT JOIN DH$Счет as Bill (nolock) " + "ON Bill.iddoc = DocCB.$КонтрольРасходной.ДокументОснование " + "LEFT JOIN _1sjourn as journForBill (nolock) " + "ON journForBill.iddoc = Bill.iddoc " + "LEFT JOIN $Спр.Секции as Section (nolock) " + "ON Section.id = DocCC.$КонтрольНабора.Сектор " + "LEFT JOIN $Спр.Клиенты as Clients (nolock) " + "ON Bill.$Счет.Клиент = Clients.id " + "WHERE " + "journ.iddoc = :iddoc "; QuerySetParam(ref TextQuery, "iddoc", iddoc); DataTable DT; if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } if (DT.Rows.Count > 0) { DocSet = new StrictDoc(); DocSet.ID = DT.Rows[0]["IDDOC"].ToString(); DocSet.SelfRemovel = (int)(decimal)DT.Rows[0]["SelfRemovel"]; DocSet.View = (DocSet.SelfRemovel == 1 ? "(C) " : "") + DT.Rows[0]["Sector"].ToString().Trim() + "-" + DT.Rows[0]["Number"].ToString() + " Заявка " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")"; DocSet.Rows = (int)(decimal)DT.Rows[0]["Rows"]; DocSet.FromWarehouseID = DT.Rows[0]["Bill"].ToString(); DocSet.Client = DT.Rows[0]["Client"].ToString().Trim(); DocSet.Sum = (decimal)DT.Rows[0]["Sum"]; DocSet.Special = (int)(decimal)DT.Rows[0]["TypeNakl"] == 2 ? true : false; return(true); } return(false); }
}//RSCNewComplectation private bool RSCNewComplectationComplete(string IDDorID, bool thisID) { LastGoodAdress = null; if (!thisID) { if (IsSC(IDDorID, "Сотрудники")) { return(ReactionCancel()); } else if (IsSC(IDDorID, "Секции")) { if (ScaningBox == null) { FExcStr = "Отсканируйте место!"; return(false); } string ID; string TextQuery; DataTable DT; Dictionary <string, object> DataMap; if (!GetSCData(IDDorID, "Секции", "ID,DESCR", out DataMap, false)) //if (!GetSC(IDDorID, "Секции", out ID)) { return(false); } ID = DataMap["ID"].ToString(); if (NeedAdressComplete != GetVoidID()) { if (ID != NeedAdressComplete) { FExcStr = "Неверный адрес!"; return(false); } } else { //нужно проверить зону ворот, к тем ли воротам он относится TextQuery = "Select " + "Zone.$Спр.ЗоныВорот.Секция as Section, " + "Gate.descr as Gate " + "from $Спр.МестаПогрузки as Ref (nolock) " + "inner join DH$КонтрольНабора as DocCC (nolock) " + "on DocCC.iddoc = Ref.$Спр.МестаПогрузки.КонтрольНабора " + "inner join DH$КонтрольРасходной as DocCB (nolock) " + "on DocCB.iddoc = DocCC.$КонтрольНабора.ДокументОснование " + "inner join $Спр.Ворота as Gate (nolock) " + "on Gate.id = DocCB.$КонтрольРасходной.Ворота " + "inner join $Спр.ЗоныВорот as Zone (nolock) " + "on Gate.id = Zone.parentext " + "where Ref.id = :id"; QuerySetParam(ref TextQuery, "id", ScaningBox); if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } if (DT.Rows.Count > 0) { //зона задана, надо проверять адреса bool findAdres = false; try { //попробуем по быстрому DataRow[] DR; DR = DT.Select("Section = '" + ID + "'"); findAdres = DR.Length > 0; } catch { //ен получилось будем по долгому foreach (DataRow DR in DT.Rows) { if (ID == DR["Section"].ToString()) { findAdres = true; break; } } } if (!findAdres) { //нет такого адреса в зоне FExcStr = "Нужен адрес из зоны " + DT.Rows[0]["Gate"].ToString().Trim(); return(false); } } } TextQuery = "declare @res int; " + "begin tran; " + "exec WPM_CompleteBox :box, :adress, @res output; " + "if @res = 0 rollback tran else commit tran; " + "select @res as result; "; QuerySetParam(ref TextQuery, "box", ScaningBox); QuerySetParam(ref TextQuery, "adress", ID); if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } if ((int)DT.Rows[0]["result"] == 0) { FExcStr = "Не удалось зафиксировать комплектацию места!"; return(false); } LastGoodAdress = ID; NameLastGoodAdress = DataMap["DESCR"].ToString(); CheckFullNewComplete(ScaningBox); return(ToModeNewComplectationComplete()); } FExcStr = "Нет действий с этим вашим ШК!"; return(false); } else { string TextQuery = "Select " + "isnull(Sections.descr, 'Пу') as Sector, " + "DocCC.$КонтрольНабора.НомерЛиста as Number, " + "CONVERT(char(8), CAST(LEFT(journForBill.date_time_iddoc, 8) as datetime), 4) as DateDoc, " + "journForBill.docno as DocNo, " + "Ref.$Спр.МестаПогрузки.Дата9 as Date, " + "Ref.$Спр.МестаПогрузки.КонтрольНабора as Doc, " + "Ref.$Спр.МестаПогрузки.Сотрудник8 as Employer, " + "isnull(dbo.WMP_fn_GetAdressComplete(Ref.id), :EmptyID ) as Adress9, " + "isnull(Adress.Descr, 'нет адреса') as Adress, " + "AllTab.CountAllBox as CountBox, " + "Gate.descr as Gate " + "from $Спр.МестаПогрузки as Ref (nolock) " + "left join $Спр.Секции as Adress (nolock) " + "on Adress.id = dbo.WMP_fn_GetAdressComplete(Ref.id) " + "inner join DH$КонтрольНабора as DocCC (nolock) " + "on DocCC.iddoc = Ref.$Спр.МестаПогрузки.КонтрольНабора " + "left join $Спр.Секции as Sections (nolock) " + "on Sections.id = DocCC.$КонтрольНабора.Сектор " + "inner join DH$КонтрольРасходной as DocCB (nolock) " + "on DocCB.iddoc = DocCC.$КонтрольНабора.ДокументОснование " + "inner JOIN DH$Счет as Bill (nolock) " + "on Bill.iddoc = DocCB.$КонтрольРасходной.ДокументОснование " + "INNER JOIN _1sjourn as journForBill (nolock) " + "on journForBill.iddoc = Bill.iddoc " + "left join $Спр.Ворота as Gate (nolock) " + "on Gate.id = DocCB.$КонтрольРасходной.Ворота " + "left join ( " + "select " + "DocCC.iddoc as iddoc, " + "count(*) as CountAllBox " + "from $Спр.МестаПогрузки as Ref (nolock) " + "inner join DH$КонтрольНабора as DocCC (nolock) " + "on DocCC.iddoc = Ref.$Спр.МестаПогрузки.КонтрольНабора " + "where " + "Ref.ismark = 0 " + "and Ref.$Спр.МестаПогрузки.Сотрудник8 = :Employer " + "and Ref.$Спр.МестаПогрузки.Дата9 = :EmptyDate " + "and not Ref.$Спр.МестаПогрузки.Дата8 = :EmptyDate " + "group by DocCC.iddoc ) as AllTab " + "on AllTab.iddoc = DocCC.iddoc " + "where Ref.id = :id"; QuerySetParam(ref TextQuery, "id", IDDorID); QuerySetParam(ref TextQuery, "EmptyID", GetVoidID()); QuerySetParam(ref TextQuery, "Employer", Employer.ID); QuerySetParam(ref TextQuery, "EmptyDate", GetVoidDate()); LoadBadDoc(IDDorID);//Подсосем данные по документу для просмотра состояния DataTable DT; if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } if (DT.Rows.Count == 0) { FExcStr = "Нет действий с данным штрихкодом!"; return(false); } if ((DateTime)DT.Rows[0]["Date"] != GetVoidDate()) { FExcStr = "Место уже скомплектовано!"; return(false); } if (DT.Rows[0]["Employer"].ToString() != Employer.ID) { FExcStr = "Этого места нет в задании!"; return(false); } DocDown = new StrictDoc(); DocDown.ID = DT.Rows[0]["Doc"].ToString(); DocDown.Boxes = (int)DT.Rows[0]["CountBox"]; DocDown.View = DT.Rows[0]["Sector"].ToString().Trim() + "-" + DT.Rows[0]["Number"].ToString() + " Заявка " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")"; DocDown.AdressCollect = DT.Rows[0]["Adress"].ToString(); DocDown.Sector = DT.Rows[0]["Gate"].ToString().Trim(); DocDown.NumberBill = DT.Rows[0]["DocNo"].ToString().Trim(); DocDown.NumberCC = (int)(decimal)DT.Rows[0]["Number"]; DocDown.MainSectorName = DT.Rows[0]["Sector"].ToString(); ScaningBox = IDDorID; ScaningBoxIddoc = DT.Rows[0]["Doc"].ToString(); NeedAdressComplete = DT.Rows[0]["Adress9"].ToString(); FExcStr = "Отсканируйте адрес!"; OnScanBox(new EventArgs()); return(true); } }
} // EnterCountSampleSet private bool RDSampleSet(string IDD, string AdressID) { string IDDoc; string DocType; Dictionary <string, object> DataMap; if (!GetDocNew(IDD, out IDDoc, out DocType, out DataMap)) { return(false); } if (DocType != "АдресПеремещение") { FExcStr = "Неверный тип документа!"; return(false); } DataTable DT; string TextQuery = "DECLARE @curdate DateTime; " + "SELECT @curdate = DATEADD(DAY, 1 - DAY(curdate), curdate) FROM _1ssystem (nolock); " + "SELECT TOP 1" + "journ.iddoc as IDDOC, " + "journ.docno as DocNo, " + "journ.date_time_iddoc as DateDoc, " + "DocATStrings.$АдресПеремещение.Товар as ID, " + "DocATStrings.lineno_ as LINENO_, " + "Goods.$Спр.Товары.КоличествоДеталей as Details, " + "DocATStrings.$АдресПеремещение.Адрес0 as Adress0, " + "Goods.descr as ItemName, " + "Goods.$Спр.Товары.ИнвКод as InvCode, " + "DocATStrings.$АдресПеремещение.Количество as Count, " + "DocAT.$АдресПеремещение.КолСтрок as Rows, " + "Sections.descr as AdressName, " + "ISNULL(AOT.Balance, 0) as Balance " + "FROM " + "_1sjourn as journ (nolock) " + "LEFT JOIN DH4327 as DocAT (nolock)ON DocAT.iddoc = journ.iddoc " + "LEFT JOIN DT4327 as DocATStrings (nolock) ON DocAT.iddoc = DocATStrings.iddoc " + "LEFT JOIN $Спр.Товары as Goods (nolock) " + "ON Goods.ID = DocATStrings.$АдресПеремещение.Товар " + "LEFT JOIN $Спр.Секции as Sections (nolock) " + "ON Sections.ID = DocATStrings.$АдресПеремещение.Адрес0 " + "LEFT JOIN ( " + "select " + "RegAOT.$Рег.АдресОстаткиТоваров.Товар as item, " + "RegAOT.$Рег.АдресОстаткиТоваров.Адрес as adress, " + "sum(RegAOT.$Рег.АдресОстаткиТоваров.Количество ) as balance " + "from " + "RG$Рег.АдресОстаткиТоваров as RegAOT (nolock) " + "where " + "period = @curdate " + "and $Рег.АдресОстаткиТоваров.Склад = :Warehouse " + "and $Рег.АдресОстаткиТоваров.Состояние = 2 " + "group by RegAOT.$Рег.АдресОстаткиТоваров.Товар , RegAOT.$Рег.АдресОстаткиТоваров.Адрес " + ") as AOT " + "ON AOT.item = DocATStrings.$АдресПеремещение.Товар and AOT.adress = DocATStrings.$АдресПеремещение.Адрес0 " + "WHERE " + "DocAT.iddoc = :Doc " + (AdressID == null ? "" : "and DocATStrings.$АдресПеремещение.Адрес0 = :Adress ") + "and journ.ismark = 0 " + "and DocAT.$АдресПеремещение.ТипДокумента = '3' " + "and DocATStrings.$АдресПеремещение.Дата1 = :EmptyDate "; SQL1S.QuerySetParam(ref TextQuery, "Doc", IDD); SQL1S.QuerySetParam(ref TextQuery, "EmptyDate", SQL1S.GetVoidDate()); SQL1S.QuerySetParam(ref TextQuery, "Warehouse", Const.MainWarehouse); if (AdressID != null) { QuerySetParam(ref TextQuery, "Adress", AdressID); } if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } if (DT.Rows.Count > 0) { ATDoc.ID = DT.Rows[0]["IDDOC"].ToString(); } // заглушка // все строчки отобраны, пусть сканируют принтер else { TextQuery = "SELECT TOP 1" + "journ.iddoc as IDDOC, " + "journ.docno as DocNo, " + "journ.date_time_iddoc as DateDoc " + "FROM " + "_1sjourn as journ (nolock) " + "WHERE " + "journ.iddoc = :Doc " + "and journ.ismark = 0 "; SQL1S.QuerySetParam(ref TextQuery, "Doc", IDD); if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } //забъем пустыми для отображения DocSet = new StrictDoc(); DocSet.View = " АдресПеремещение " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")"; ATDoc.ID = DT.Rows[0]["IDDOC"].ToString(); CCItem = new StructItemSet(); CCItem.ID = ""; CCItem.InvCode = ""; CCItem.Name = ""; CCItem.Count = 0; CCItem.CountFact = 0; CCItem.AdressID = ""; CCItem.AdressName = ""; CCItem.CurrLine = 0; CCItem.Details = 0; CCItem.Balance = 0; CurrentAction = ActionSet.Waiting; FExcStr = WhatUNeed(); return(true); } DocSet = new StrictDoc(); DocSet.View = " АдресПеремещение " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")"; DocSet.ID = DT.Rows[0]["IDDOC"].ToString(); DocSet.Rows = (int)(decimal)DT.Rows[0]["Rows"]; //обновим количество не отобранных RefreshAmount(); CCItem = new StructItemSet(); CCItem.ID = DT.Rows[0]["ID"].ToString(); CCItem.InvCode = DT.Rows[0]["InvCode"].ToString(); CCItem.Name = DT.Rows[0]["ItemName"].ToString(); CCItem.Count = (int)(decimal)DT.Rows[0]["Count"]; CCItem.CountFact = (int)(decimal)DT.Rows[0]["Count"]; CCItem.AdressID = DT.Rows[0]["Adress0"].ToString(); CCItem.AdressName = DT.Rows[0]["AdressName"].ToString(); CCItem.CurrLine = (short)DT.Rows[0]["LINENO_"]; CCItem.Details = (int)(decimal)DT.Rows[0]["Details"]; CCItem.Balance = (int)(decimal)DT.Rows[0]["Balance"]; //получим АдресВременныый из склада в АдресПеремещениии TextQuery = "SELECT " + "WareHouse.SP4537 as AdresTemp " + "FROM DH4327 " + "LEFT JOIN sc31 as WareHouse on WareHouse.id = DH4327.SP4308 " + "WHERE DH4327.iddoc = :Doc "; SQL1S.QuerySetParam(ref TextQuery, "Doc", IDD); if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } DocSet.AdressCollect = DT.Rows[0]["AdresTemp"].ToString(); CurrentAction = ActionSet.ScanAdress; FExcStr = WhatUNeed(); return(true); }
//BASE METHOD's private bool ToModeSet(string AdressID, string iddoc) { foreach (string id in DocsSet) { if (!LockDoc(id)) { return(false); } } string TextQuery = "DECLARE @curdate DateTime; " + "SELECT @curdate = DATEADD(DAY, 1 - DAY(curdate), curdate) FROM _1ssystem (nolock); " + "select top 1 " + "DocCC.$КонтрольНабора.Товар as ID, " + "DocCC.lineno_ as LINENO_, " + "Goods.descr as ItemName, " + "Goods.$Спр.Товары.ИнвКод as InvCode, " + "Goods.$Спр.Товары.КоличествоДеталей as Details, " + "DocCC.$КонтрольНабора.Количество as Count, " + "DocCC.$КонтрольНабора.Адрес0 as Adress, " + "DocCC.$КонтрольНабора.Цена as Price, " + "Sections.descr as AdressName, " + "ISNULL(AOT.Balance, 0) as Balance, " + //Реквизиты документа "DocCC.iddoc as IDDOC, " + "journForBill.docno as DocNo, " + "CONVERT(char(8), CAST(LEFT(journForBill.date_time_iddoc, 8) as datetime), 4) as DateDoc, " + "journForBill.iddoc as Bill, " + "DocCCHead.$КонтрольНабора.КолСтрок as Rows, " + "Sector.descr as Sector, " + "DocCCHead.$КонтрольНабора.Сумма as Sum, " + "DocCCHead.$КонтрольНабора.НомерЛиста as Number, " + "DocCCHead.$КонтрольНабора.ФлагСамовывоза as SelfRemovel, " + "Clients.descr as Client, " + "Bill.$Счет.ТипНакладной as TypeNakl, " + "isnull(DocCCHead.$КонтрольНабора.Коробка , :EmptyID) as BoxID, " + "AdressBox.descr as Box " + "from " + "DT$КонтрольНабора as DocCC (nolock) " + "LEFT JOIN DH$КонтрольНабора as DocCCHead (nolock) " + "ON DocCCHead.iddoc = DocCC.iddoc " + "LEFT JOIN $Спр.Товары as Goods (nolock) " + "ON Goods.id = DocCC.$КонтрольНабора.Товар " + "LEFT JOIN $Спр.Секции as Sections (nolock) " + "ON Sections.id = DocCC.$КонтрольНабора.Адрес0 " + "LEFT JOIN ( " + "select " + "RegAOT.$Рег.АдресОстаткиТоваров.Товар as item, " + "RegAOT.$Рег.АдресОстаткиТоваров.Адрес as adress, " + "sum(RegAOT.$Рег.АдресОстаткиТоваров.Количество ) as balance " + "from " + "RG$Рег.АдресОстаткиТоваров as RegAOT (nolock) " + "where " + "period = @curdate " + "and $Рег.АдресОстаткиТоваров.Склад = :Warehouse " + "and $Рег.АдресОстаткиТоваров.Состояние = 2 " + "group by RegAOT.$Рег.АдресОстаткиТоваров.Товар , RegAOT.$Рег.АдресОстаткиТоваров.Адрес " + ") as AOT " + "ON AOT.item = DocCC.$КонтрольНабора.Товар and AOT.adress = DocCC.$КонтрольНабора.Адрес0 " + "LEFT JOIN DH$КонтрольРасходной as DocCB (nolock) " + "ON DocCB.iddoc = DocCCHead.$КонтрольНабора.ДокументОснование " + "LEFT JOIN DH$Счет as Bill (nolock) " + "ON Bill.iddoc = DocCB.$КонтрольРасходной.ДокументОснование " + "LEFT JOIN _1sjourn as journForBill (nolock) " + "ON journForBill.iddoc = Bill.iddoc " + "LEFT JOIN $Спр.Секции as Sector (nolock) " + "ON Sector.id = DocCCHead.$КонтрольНабора.Сектор " + "LEFT JOIN $Спр.Клиенты as Clients (nolock) " + "ON Bill.$Счет.Клиент = Clients.id " + "LEFT JOIN $Спр.Секции as AdressBox (nolock) " + "ON AdressBox.id = DocCCHead.$КонтрольНабора.Коробка " + "where " + "DocCC.iddoc in (:Docs) " + "and DocCC.$КонтрольНабора.Дата5 = :EmptyDate " + "and DocCC.$КонтрольНабора.Корректировка = 0 " + "and DocCC.$КонтрольНабора.Количество > 0 " + (AdressID == null ? "" : "and DocCC.$КонтрольНабора.Адрес0 = :Adress ") + (iddoc == null ? "" : "and DocCC.iddoc = :iddoc ") + "order by " + "DocCCHead.$КонтрольНабора.Сектор , Sections.$Спр.Секции.Маршрут , LINENO_"; DataTable DT; TextQuery = TextQuery.Replace(":Docs", Helper.ListToStringWithQuotes(DocsSet)); QuerySetParam(ref TextQuery, "EmptyDate", GetVoidDate()); QuerySetParam(ref TextQuery, "Warehouse", Const.MainWarehouse); if (iddoc != null) { QuerySetParam(ref TextQuery, "iddoc", iddoc); } if (AdressID != null) { QuerySetParam(ref TextQuery, "Adress", AdressID); } if (!ExecuteWithRead(TextQuery, out DT)) { return(false); } if (DT.Rows.Count == 0) { if (AdressID == null) { return(ToModeSetComplete()); } else { //Это попытка перепрыгнуть FExcStr = "Нет такого адреса в сборочном!"; return(false); } } RefreshRowSum(); //Подтянем циферки CCItem = new StructItemSet(); CCItem.ID = DT.Rows[0]["id"].ToString(); CCItem.InvCode = DT.Rows[0]["InvCode"].ToString(); CCItem.Name = DT.Rows[0]["ItemName"].ToString(); CCItem.Price = (decimal)DT.Rows[0]["Price"]; CCItem.Count = (int)(decimal)DT.Rows[0]["Count"]; CCItem.CountFact = (int)(decimal)DT.Rows[0]["Count"]; CCItem.AdressID = DT.Rows[0]["Adress"].ToString(); CCItem.AdressName = DT.Rows[0]["AdressName"].ToString(); CCItem.CurrLine = (short)DT.Rows[0]["LINENO_"]; CCItem.Balance = (int)(decimal)DT.Rows[0]["Balance"]; CCItem.Details = (int)(decimal)DT.Rows[0]["Details"]; if (!MultiplesOKEI2(ref CCItem)) { return(false); } DocSet = new StrictDoc(); DocSet.ID = DT.Rows[0]["IDDOC"].ToString(); DocSet.SelfRemovel = (int)(decimal)DT.Rows[0]["SelfRemovel"]; DocSet.View = (DocSet.SelfRemovel == 1 ? "(C) " : "") + DT.Rows[0]["Sector"].ToString().Trim() + "-" + DT.Rows[0]["Number"].ToString() + " Заявка " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")"; DocSet.Rows = (int)(decimal)DT.Rows[0]["Rows"]; DocSet.FromWarehouseID = DT.Rows[0]["Bill"].ToString(); DocSet.Client = DT.Rows[0]["Client"].ToString().Trim(); DocSet.Sum = (decimal)DT.Rows[0]["Sum"]; DocSet.Special = (int)(decimal)DT.Rows[0]["TypeNakl"] == 2 ? true : false; DocSet.Box = DT.Rows[0]["Box"].ToString(); DocSet.BoxID = DT.Rows[0]["BoxID"].ToString(); CurrentAction = ActionSet.ScanAdress; FExcStr = WhatUNeed(); FCurrentMode = Mode.Set; return(true); } // ToModeSet