MSInfoPathに次のXPath1.0式があります(付随するXMLを投稿します)。
//my:Value_Modifier_Group[1=count(following-sibling::my:Value_Modifier_Group)]//my:Modified_Start_Value[(text())] | //my:Start_Value[text() and not(//my:Value_Modifier_Group[1=count(following-sibling::my:Value_Modifier_Group)]//my:Modified_Start_Value[(text()])]
初期値があり、「変更値」がまだない場合は、初期値が返されます。変更された値が存在する場合は、それが返されます。
その値を返し、次の操作を実行する必要があります。
number(//my:Value_Modifier_Group[1=count(following-sibling::my:Value_Modifier_Group)]//my:Modfied_Start_Value) + number(//my:Value_Modifier_Group[0=count(following-sibling::my:Value_Modifier_Group)]//my:Start_Value_Increase) - number(//my:Value_Modifier_Group[0=count(following-sibling::my:Value_Modifier_Group)]//my:Start_Value_Decrease)
この操作は、増加/減少値を加算または減算します。問題は、存在しない場合、この式がNaNを返すことModified_Start_Value
です。それ以外の場合はうまく機能します。
これらの式の両方を1つのXPath式にまとめる必要があります。
Modified_Start_Value
前の値がある場合は、それを操作で使用しますModified_Start_Value
先行する値がない場合は、Start_Value
代わりに操作で使用します- 前の値は固定されているため、常に「前の」値を使用することが重要です。基準点または開始点として機能します。
これが私が使用しているXMLのサンプルです:
<?xml version="1.0" encoding="UTF-8"?><?mso-infoPathSolution solutionVersion="1.0.0.2" productVersion="14.0.0" PIVersion="1.0.0.0" href="file:///C:\Documents%20and%20Settings\Chris\Local%20Settings\Application%20Data\Microsoft\InfoPath\Designer3\ef41a19775b4ce0\manifest.xsf" ?><?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.3"?>
<my:myFields xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-09-19T13:28:35" xml:lang="en-us">
<my:Start_Value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">6</my:Start_Value>
<my:Main_Group>
<my:Value_Modifier_Group>
<my:Modified_Start_Value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">6</my:Modified_Start_Value>
<my:Start_Value_Increase>0</my:Start_Value_Increase>
<my:Start_Value_Decrease>0</my:Start_Value_Decrease>
</my:Value_Modifier_Group>
<my:Value_Modifier_Group>
<my:Modified_Start_Value>6</my:Modified_Start_Value>
<my:Start_Value_Increase>0</my:Start_Value_Increase>
<my:Start_Value_Decrease>0</my:Start_Value_Decrease>
</my:Value_Modifier_Group></my:Main_Group>
</my:myFields>
この質問があまりにも急いでまとめられていないことを願っています!今日は忙しい日...