Please see the following manifest. The Activity_1's primary objective has mapInfo refers to
a Shared Global Objective with objective id = gObj-OB01a, but there is not any objective with objective id = gObj-OB01a. Is this manifest correct or not?
<organization identifier = "Course_1">
<title>Course 1 </title>
<item identifier = "activity_1" identifierref = "SEQ01">
<title>Activity 1</title>
<imsss:sequencing>
<imsss:objectives>
<imsss:primaryObjective objectiveID = "PRIMARYOBJ_1" >
<imsss:mapInfo targetObjectiveID = "gObj-OB01a" writeSatisfiedStatus = "true" />
</imsss:primaryObjective>
</imsss:objectives>
</imsss:sequencing>
</item>
<item identifier = "activity_2" identifierref = "SEQ01">
<title>Activity 2</title>
<imsss:sequencing>
<imsss:sequencingRules>
<imsss:preConditionRule>
<imsss:ruleConditions>
<imsss:ruleCondition condition = "satisfied"/>
</imsss:ruleConditions>
<imsss:ruleAction action = "skip"/>
</imsss:preConditionRule>
</imsss:sequencingRules>
<imsss:objectives>
<imsss:primaryObjective objectiveID = "PRIMARYOBJ_2" >
<imsss:mapInfo targetObjectiveID = "gObj-OB01a" />
</imsss:primaryObjective>
</imsss:objectives>
</imsss:sequencing>
</item>
<item identifier = "activity_3" identifierref = "SEQ01">
<title>Activity 3</title>
</item>
<imsss:sequencing>
<imsss:controlMode choice = "false" flow = "true"/>
</imsss:sequencing>
</organization>
Yes, it's correct. Notice that the primary objective "PRIMARYOBJ_2" is mapped to the global objective "gObj-OB01a" which means "PRIMARYOBJ_1" and ""PRIMARYOBJ_2" have the same tracking data in terms of Satisfied Status.
Related
I have radio button list. asp code:
Auditing: <asp:RadioButtonList ID="RBLAudit" runat="server" Font-Bold="true" RepeatDirection="Horizontal" RepeatLayout="Flow" TextAlign="Left">
<asp:ListItem Value="true" Text=" Audited" Selected="True"/>
<asp:ListItem Value="false" Text=" Not Audited "/>
<asp:ListItem Value="" Text="ALL"/>
</asp:RadioButtonList>
and I have RDLC Report with Boolean parameter as bellow:
I want to pass null value when select ALL option of radio button list.
I try this code behind
If (RBLAudit.SelectedValue <> "") Then
p9 = New ReportParameter("State", RBLAudit.SelectedValue)
ElseIf (RBLAudit.SelectedValue = "") Then
p9 = New ReportParameter("State", DBNull.Value.ToString())
End If
Dim RepParams() As ReportParameter = {p1, p2, p3, p4, p5, p6, p7, p8, p9}
but this not work when RBLAudit.SelectedValue = "" . The error is "The value provided for the report parameter 'State' is not valid for its type."
How to pass null value for this Boolean parameter?
finally it works after very much trying and failing...
If (RBLAudit.SelectedValue <> "") Then
p9 = New ReportParameter("State", RBLAudit.SelectedValue)
ElseIf (RBLAudit.SelectedValue = "") Then
p9 = New ReportParameter("State", New String() {Nothing})
End If
any other idea?
I need to create a request with XMLDocument which have some specific values and i can't make it. My xml should look like that;
<?xml version="1.0" encoding="ISO-8859-9" ?>
<ePaymentMsg VersionInfo="2.0" TT="Request" RM="Direct" CT="Money">
<Operation ActionType="Sale">
<OpData>
<MerchantInfo MerchantId="006100" MerchantPassword="123" />
<ActionInfo>
<TrnxCommon TrnxID="">
<AmountInfo Amount="1.00" Currency="949" />
</TrnxCommon>
<PaymentTypeInfo>
<InstallmentInfo NumberOfInstallments="0"/>
</PaymentTypeInfo>
</ActionInfo>
<PANInfo PAN="402275******5574" ExpiryDate="201406" CVV2="***" BrandID="MASTER" />
<OrgTrnxInfo />
<CardHolderIP>127.0.0.1</CardHolderIP>
</OpData>
</Operation>
</ePaymentMsg>
Can anyone help me how to create this xml with using C# XmlDocument, XmlNode
I tried this,
XmlNode node = null;
XmlDocument _msgTemplate = new XmlDocument();
_msgTemplate.LoadXml("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ePaymentMsg VersionInfo=\"2.0\" TT=\"Request\" RM=\"Direct\" CT=\"Money\">" +
"<Operation ActionType=\"Sale\"><OpData><MerchantInfo MerchantId=\"\" MerchantPassword=\"\" />" +
"<ActionInfo><TrnxCommon TrnxID=\"\" Protocol=\"156\"><AmountInfo Amount=\"0\" Currency=\"792\" /></TrnxCommon><PaymentTypeInfo>" +
"<InstallmentInfo NumberOfInstallments=\"0\" /></PaymentTypeInfo></ActionInfo><PANInfo PAN=\"\" ExpiryDate=\"\" CVV2=\"\" BrandID=\"\" />" +
"<OrderInfo><OrderLine>0</OrderLine></OrderInfo><OrgTrnxInfo /><CustomData></CustomData><CardHolderIp></CardHolderIp></OpData></Operation></ePaymentMsg>");
node = _msgTemplate.SelectSingleNode("//ePaymentMsg/Operation/OpData/MerchantInfo");
node.Attributes["MerchantId"].Value = "006100";
node.Attributes["MerchantPassword"].Value = "123";
node = _msgTemplate.SelectSingleNode("//ePaymentMsg/Operation/OpData/ActionInfo/TrnxCommon");
node.Attributes["TrnxID"].Value = Guid.NewGuid().ToString();
node = _msgTemplate.SelectSingleNode("//ePaymentMsg/Operation/OpData/ActionInfo/TrnxCommon/AmountInfo");
string gonderilecekAmount = amount.ToString("####.00");
gonderilecekAmount = gonderilecekAmount.Replace(",", ".");
node.Attributes["Amount"].Value = gonderilecekAmount;
node.Attributes["Currency"].Value = "949";
node = _msgTemplate.SelectSingleNode("//ePaymentMsg/Operation/OpData/ActionInfo/PaymentTypeInfo/InstallmentInfo");
node.Attributes["NumberOfInstallments"].Value = "0";
node = _msgTemplate.SelectSingleNode("//ePaymentMsg/Operation/OpData/PANInfo");
node.Attributes["PAN"].Value = "402275******5574";
node.Attributes["ExpiryDate"].Value = "201406";
node.Attributes["CVV2"].Value = "***";
node.Attributes["BrandID"].Value = "VISA";
node = _msgTemplate.SelectSingleNode("//ePaymentMsg/Operation/OpData/CardHolderIp");
node.Attributes["CardHolderIp"].Value = "10.20.30.40";
request = _msgTemplate.OuterXml;
return request;
I think something wrong on CardHolderIp node. Any help would be useful.
In the
node.Attributes["CardHolderIp"].Value = "10.20.30.40";
line, i changed it to
node.InnerText= "10.20.30.40";
My XML is like below
<Exchange>
<Rec>
<data headers="Currency">USD</data>
<data headers="Value">1.0609</data>
</Rec>
<Rec>
<data headers="Currency">GBP</data>
<data headers="Value">0.6694</data>
</Rec>
<Rec>
<data headers="Currency">INR</data>
<data headers="Value">54.123</data>
</Rec>
</Exchange>
I have to retrieve the value(1.0609) depends on Currency(USD) using XML Linq
in asp.net
Here's one way. Not particularly elegant though.
var doc = XDocument.Load(#"<path>\exchange.xml");
// convert xml to List<> containing Currency and Value
var q = doc.Element("Exchange").Elements("Rec").Select (e =>
new {
Currency = e.Elements("data").
Where (x => "Currency" == (string) x.Attribute("headers")).
Select (x => (string)x).Single (),
Value = e.Elements("data").
Where (x => "Value" == (string) x.Attribute("headers")).
Select (x => (double)x).Single (),
}
);
// select the value we're after
var q1 = q.Where (x => x.Currency == "USD").Select (x => x.Value).Single ();
q1.Dump();
var xml = XElement.Load("XMLFile1.xml");
string curr = "USD";
var number = (from node in xml.Elements("Rec").Elements("data")
where (string)node.Attribute("headers") == "Currency" && node.Value == curr
select node into data
from value in data.Parent.Elements("data")
where (string)value.Attribute("headers") == "Value"
select (double)value).FirstOrDefault();
I'm building a Column chart with System.Web.UI.DataVisualization.Charting and would like to show a dotted line to represent an average. StripeLine seems to be exactly what I'm looking for except it sits under/behind the columns (see example).
Is there a way to adjust the "Z-Index" of a StripeLine so that it is shown in front of/on top of the Series?
I don't see a property for this and changing the order I add the Series and StripeLine doesn't make a difference.
You can use Annotations
double avg = Chart1.Series[0].Points.Average(p => p.XValue);
double lineHeight = avg;
HorizontalLineAnnotation ann = new HorizontalLineAnnotation();
ann.AxisX = Chart1.ChartAreas[0].AxisX;
ann.AxisY = Chart1.ChartAreas[0].AxisY;
ann.IsSizeAlwaysRelative = false;
ann.AnchorY = lineHeight;
ann.IsInfinitive = true;
ann.ClipToChartArea = Chart1.ChartAreas[0].Name; ann.LineColor = Color.Red; ann.LineWidth = 3;
Chart1.Annotations.Add(ann);
HTML Code
<asp:Chart runat="server" ID="Chart1" ImageStorageMode="UseImageLocation" Width="800px" Height="400px" OnClick="Chart1_Click">
<ChartAreas >
<asp:ChartArea></asp:ChartArea>
</ChartAreas>
<series>
<asp:Series Name="Students" BorderColor="180, 26, 59, 105">
<Points>
<asp:DataPoint AxisLabel="jon" XValue="5" YValues="4" />
<asp:DataPoint AxisLabel="kon" XValue="15" YValues="44" />
<asp:DataPoint AxisLabel="pol" XValue="85" YValues="90" />
</Points>
</asp:Series>
</series>
</asp:Chart>
Code for Text Annotation
TextAnnotation txtAnn = new TextAnnotation();
txtAnn.AxisX = Chart1.ChartAreas[0].AxisX;
txtAnn.AxisY = Chart1.ChartAreas[0].AxisY;
txtAnn.IsSizeAlwaysRelative = false;
txtAnn.AnchorY = lineHeight;
txtAnn.AnchorX = Chart1.Series[0].Points.Last().XValue;
txtAnn.AnchorAlignment = ContentAlignment.BottomLeft;
txtAnn.Text = "DivisionOne(35.5)";
txtAnn.ClipToChartArea = Chart1.ChartAreas[0].Name; txtAnn.ForeColor = Color.Red;
Chart1.Annotations.Add(txtAnn);
You can get more information here
More Information About Annotations
Chart Image
You can just use the text property of the stripeline
Chart1.ChartAreas("ChartArea1").AxisY.StripLines(0).Text = "Line
Title"
I'm trying to apply a Move-Effect on multiple elements. They are moving all together but I prefer it in seqeunce.
<s:Move id="thumbMover" target="{thumb}"/>
private function addItemThumbs ( ) : void {
for each ( var item : ItemVO in _items ) {
thumb = new Thumb;
thumb._item = item;
thumbMover.createInstance(thumb);
thumbMover.xFrom = stage.width;
thumbMover.yFrom = stage.height;
thumbMover.xTo = xValue;
thumbMover.yTo = yValue;
thumbMover.play();
addElement(thumb);
xValue = xValue + item.itemTnW + Config.getInstance().vBorderItm;
if ( xValue >= stage.width - item.itemTnW - 200 ) {
xValue = Config.getInstance().xValueItm;
yValue = yValue + item.itemTnH + Config.getInstance().hBorderItm;
}
}
}
Thanks for taking time!
Marc
Use a sequence. More info here: http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7fab.html
Something like
<s:Sequence>
<s:Move />
<s:Move />
</s:Sequence>