Programa C#, ¿para qué se utiliza este programa? Ayúdenme a descubrirlo. No puedo explicar por qué están escritas estas cuatro líneas.
Usar System.Collections.Generic;
Usar System.Data.Entity;
Usar System.Linq;
Utilice ?System.Text;
Utilice ?System.Web;
Utilice ?System.Web.UI;
Utilice ?System.Web.UI.WebControls ;
espacio de nombres?BomListTest
{
¿público?partial?clase?index?
{
protegido ?void?Page_Load(object?sender,?EventArgs?e)
{
if?(!IsPostBack)
{
DBBomEntities?entity?=?new?DBBomEntities();
var?listBom?=?entity.TbBom;
//LoadParentBom
LoadParentPartNo(listBom) ;
var?bom?=?new?{?b?=?listBom.Where(p?=>?p.PartNo?==?"" 1000"&&p.ParentPartNo=="") .FirstOrDefault(),
c?=?listBom.Where(p?=>?p.PartNo?==?"" 1000"&&p.ParentPartNo=="").Sum(p=> p.Qty)?} ;
if?(bom?==?null?||?
if?(bom?==?null?|?bom.b? ==?null)?return;
TreeNode?,?bom.b.MaterialName,?bom.c);
node.Value?=?bom.b.MaterialCode;
node.Expanded?=?false;
node.ToolTip?=?"" ;
node.ImageUrl?=?"~\image\true .gif";
mainTree.Nodes.Add(nodo);
ResolveSubTree(listBom,?bom.b,?node);
} p>
p>
}
¿Privado?LoadParentPartNo(DbSet
{
var?mCode?=? string.Format(" A{0}",?listBom.Max(p?=>?p.PartNo)?==?null "1000"? :?(Convert.ToInt32(listBom.Max(p?=>? p.PartNo)) ?+?1).ToString());
txtMaterialCode.Text?=?mCode;
listBom.ToList().ForEach(p?=> ?ddlParentPartNo.Items Agregar(nuevo?ListItem(p.MaterialName,?p.PartNo));
ddlP.
arentPartNo.DataBind();
}
//?
//?Expandir recursivamente Bom
//?
//? Todos los conjuntos de datos
//? Raíz Material del nodo
//? Nodo raíz del árbol
private?void?ResolveSubTree(DbSet
{
//Obtener todos los materiales del nodo de origen cuyo código de material es el código del nodo principal
Lista < TbBom>?subListClone?=?listBom.Where(p??=>?p.ParentPartNo?==? ParentPartNo?==?bom.PartNo).ToList();
//Obtener todo el código de material del nodo de origen para el código del nodo principal del material (filtrado de material duplicado, usado como un bucle)
var?subList?=?listBom.Where(p??=>?p.ParentPartNo? ? ==?bom.PartNo).ToList();
Var?=>?p.ParentPartNo?==?bom.PartNo).Where(partNo).Where(partNo).Dónde(partNo) ) .Where(partNo).Where(p?PartNo).GroupBy(p?=>?p.PartNo).Select(p?=>?p.FirstOrDefault()).ToList();
//Si contiene subnodos
if?(subList.Count?>?0)
{
//El árbol se expande
treeNode.Expanded?Expanded?=?false;
//Recorrer los nodos secundarios
foreach(TbBom?subBom?in?subList)
{
//Consulta los nodos secundarios del nodo principal actual y los nodos secundarios del nodo principal.
Resumen del número de nodos secundarios
var?sbom?=?new?{?b?=?subBom,?c?=?subListClone.Where(p?=>?p.PartNo?== ?subBom.PartNo).Select(p?=>?p.Qty).Sum()?}
//Creando nodos
TreeNode?node?=?new? TreeNode() ;
node.Value?=?sbom.b.PartNo;
node.ToolTip?=?GetParentNodeNames( listBom,?bom.ParentNos);
treeNode.ChildNodes.Add(nodo);
if?(Valied(bom.ParentNos,?sbom.b.PartNo))
{
node.ImageUrl?ImageUrl?=?"~\image\flase.gif";
node.Text?=?string.Format("{0}",?sbom.b.MaterialName);
continuar;
}
else
{
node.ImageUrl?=?" ~\image \true.gif";
node.Text?=?string.Format("{0}({1})",?sbom.b.MaterialName,?sbom.c);
node.ImageUrl?c);
}
ResolveSubTree( listBom,?subBom,?node);
} p>
}
}
}
}
//?
//? Determinar si el nodo principal existe
//?
//?
/ /?
//?
¿privado?
{
int?len ?=?parentNo .Longitud;
for(int?i?=?0;?i?
{
if?(parentNo.Substring(i,?4)?4)? ==?subNo)
{
return?true; p>
}
}
}
return?false;
}
// ?
//?Seguir el nombre del nodo principal
//?
//?
//? /param>
//?
privado?cadena ?GetParentNodeNames(DbSet
)
{
int?len?=?parentNodeNo.Length;
StringBuilder?build?=?new?StringBuilder();
for?(int?i?=?len;?i?>?0;?i?-?=?4)
{
var?bom?=? listBom.FirstOrDefault(p?=>?p.PartNo?==?parentNodeNo.Substring(i?-?4,?4));
if?(bom! =?null)
{
build.Append(bom.MaterialName);
}
if?(i?>?4)
{
build.Append("-");
}
}
return.build.ToString();
}
protected.void.btnAdd_Click(object.sender,.EventArgs.e)
{
TbBom.bom.= ?new?TbBom();
bom.MaterialCode?=?txtMaterialCode.Text.Trim();
bom.MaterialName?=?txtMaterialName.Text.Trim();
bom.
bom.PartNo?=?txtPartNo.Text.Trim();
bom.ParentPartNo?=?ddlParentPartNo.SelectedValue;
bom.Qty?=?Convert.ToInt32(txtQty.Text.Trim());
DBBomEntities?eeity?=?new?DBBomEntities();
var? padre?=?eeity.TbBom.Where(p?=>?p.PartNo?==?ParentPartNo).FirstOrDefault();
if(padre!=?null)
{
// Conjunto de materiales padre-hijo
bom.ParentNos?=?string.Format("{0}{1}",?parent.ParentNos,?bom. PartNo);
}
else
If?p>{
// Conjunto de materiales entre padres e hijos
bom.ParentNos?=?string.Format("{0}",?bom.PartNo);
}
eneity.TbBom.Add(bom); p> p>
eneity.SaveChanges();
Si?Guardar cambios();
Response.Redirect("index.aspx");
}
}
}
}