System::Void btnSave_Click(System::Object * sender, System::EventArgs * e)
{
String *strFilename = String::Concat(this->dtpFilename->Text, S".xml");
XmlDocument *docXML = new XmlDocument();
String *strContent = 0;
String *strTotalOrder = this->txtTotalOrder->Text;
String *strParentOrder = 0;
if( this->chkKeepRemove1->Checked == true )
{
strContent = String::Concat(strContent,
S"<PartSold><PartNumber>", this->txtPartNumber1->Text, S"</PartNumber>",
S"<PartName>", this->txtPartName1->Text, S"</PartName>",
S"<UnitPrice>", this->txtUnitPrice1->Text, S"</UnitPrice>",
S"<Qty>", this->txtQuantity1->Text, S"</Qty>",
S"<SubTotal>", this->txtSubTotal1->Text, S"</SubTotal></PartSold>");
}
if( this->chkKeepRemove2->Checked == true )
{
strContent = String::Concat(strContent,
S"<PartSold><PartNumber>", this->txtPartNumber2->Text, S"</PartNumber>",
S"<PartName>", this->txtPartName2->Text, S"</PartName>",
S"<UnitPrice>", this->txtUnitPrice2->Text, S"</UnitPrice>",
S"<Qty>", this->txtQuantity2->Text, S"</Qty>",
S"<SubTotal>", this->txtSubTotal2->Text, S"</SubTotal></PartSold>");
}
if( this->chkKeepRemove3->Checked == true )
{
strContent = String::Concat(strContent,
S"<PartSold><PartNumber>", this->txtPartNumber3->Text, S"</PartNumber>",
S"<PartName>", this->txtPartName3->Text, S"</PartName>",
S"<UnitPrice>", this->txtUnitPrice3->Text, S"</UnitPrice>",
S"<Qty>", this->txtQuantity3->Text, S"</Qty>",
S"<SubTotal>", this->txtSubTotal3->Text, S"</SubTotal></PartSold>");
}
if( this->chkKeepRemove4->Checked == true )
{
strContent = String::Concat(strContent,
S"<PartSold><PartNumber>", this->txtPartNumber4->Text, S"</PartNumber>",
S"<PartName>", this->txtPartName4->Text, S"</PartName>",
S"<UnitPrice>", this->txtUnitPrice4->Text, S"</UnitPrice>",
S"<Qty>", this->txtQuantity4->Text, S"</Qty>",
S"<SubTotal>", this->txtSubTotal4->Text, S"</SubTotal></PartSold>");
}
if( this->chkKeepRemove5->Checked == true )
{
strContent = String::Concat(strContent,
S"<PartSold><PartNumber>", this->txtPartNumber5->Text, S"</PartNumber>",
S"<PartName>", this->txtPartName5->Text, S"</PartName>",
S"<UnitPrice>", this->txtUnitPrice5->Text, S"</UnitPrice>",
S"<Qty>", this->txtQuantity5->Text, S"</Qty>",
S"<SubTotal>", this->txtSubTotal5->Text, S"</SubTotal></PartSold>");
}
if( this->chkKeepRemove6->Checked == true )
{
strContent = String::Concat(strContent,
S"<PartSold><PartNumber>", this->txtPartNumber6->Text, S"</PartNumber>",
S"<PartName>", this->txtPartName6->Text, S"</PartName>",
S"<UnitPrice>", this->txtUnitPrice6->Text, S"</UnitPrice>",
S"<Qty>", this->txtQuantity6->Text, S"</Qty>",
S"<SubTotal>", this->txtSubTotal6->Text, S"</SubTotal></PartSold>");
}
if( File::Exists(strFilename) )
{
// If the file exists already, open it
docXML->Load(strFilename);
// Get a reference to the root element
XmlElement *elmRoot = docXML->DocumentElement;
// Get a reference to the last child of the root
XmlNode *nodLastOrder = elmRoot->LastChild;
// Get the OrderNumber attribute of the last order and increment it by 1
int NewOrderNumber = nodLastOrder->Attributes->ItemOf[S"OrderNumber"]->InnerText->ToInt32(0) + 1;
// Create a new order as an element
XmlElement *elmNewOrder = docXML->CreateElement(S"Order");
// Add its attributes
elmNewOrder->SetAttribute(S"OrderNumber", NewOrderNumber.ToString());
elmNewOrder->SetAttribute(S"TotalOrder", strTotalOrder);
elmNewOrder->InnerXml = strContent;
docXML->DocumentElement->AppendChild(elmNewOrder);
docXML->Save(strFilename);
}
else
{
// If the file doesn't exist, get ready to create it
strParentOrder = String::Concat(S"<Order OrderNumber=\"1\" TotalOrder=\"", strTotalOrder, S"\">");
// If the file doesn't exist, create it
docXML->LoadXml(String::Concat(S"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
S"<Orders>",
strParentOrder, strContent, S"</Order></Orders>"));
docXML->Save(strFilename);
}
// Reset the Order Processing form
this->lvwAvailableParts->Items->Clear();
this->cboCategories->SelectedIndex = -1;
this->cboModels->SelectedIndex = -1;
this->cboMakes->SelectedIndex = -1;
this->cboYears->SelectedIndex = -1;
this->chkKeepRemove1->Checked = false;
this->chkKeepRemove2->Checked = false;
this->chkKeepRemove3->Checked = false;
this->chkKeepRemove4->Checked = false;
this->chkKeepRemove5->Checked = false;
this->chkKeepRemove6->Checked = false;
this->CalculateTotalOrder();
}
|