Fix excel export when reconciliation key list is containing empty keys.

Fix the compiler to avoid generating a reconciliation array not empty when
the tag is present in the xml definition of the class but no key is defined.

SVN:trunk[6011]
This commit is contained in:
Eric Espié
2018-08-23 08:22:44 +00:00
parent ea9b7eddde
commit 13097d7e0e
2 changed files with 20 additions and 10 deletions

View File

@@ -150,15 +150,18 @@ abstract class TabularBulkExport extends BulkExport
// Add the reconciliation keys
foreach(MetaModel::GetReconcKeys($sRemoteClass) as $sRemoteAttCode)
{
$sAttCodeEx = $sAttCode.'->'.$sRemoteAttCode;
if (!array_key_exists($sAttCodeEx, $aResult))
{
$oRemoteAttDef = MetaModel::GetAttributeDef($sRemoteClass, $sRemoteAttCode);
if ($this->IsExportableField($sRemoteClass, $sRemoteAttCode, $oRemoteAttDef))
{
$aResult[$sAttCodeEx] = array('code' => $sAttCodeEx, 'unique_label' => $oAttDef->GetLabel().'->'.$oRemoteAttDef->GetLabel(), 'label' => MetaModel::GetLabel($sRemoteClass, $sRemoteAttCode), 'attdef' => $oRemoteAttDef);
}
}
if (!empty($sRemoteAttCode))
{
$sAttCodeEx = $sAttCode.'->'.$sRemoteAttCode;
if (!array_key_exists($sAttCodeEx, $aResult))
{
$oRemoteAttDef = MetaModel::GetAttributeDef($sRemoteClass, $sRemoteAttCode);
if ($this->IsExportableField($sRemoteClass, $sRemoteAttCode, $oRemoteAttDef))
{
$aResult[$sAttCodeEx] = array('code' => $sAttCodeEx, 'unique_label' => $oAttDef->GetLabel().'->'.$oRemoteAttDef->GetLabel(), 'label' => MetaModel::GetLabel($sRemoteClass, $sRemoteAttCode), 'attdef' => $oRemoteAttDef);
}
}
}
}
break;

View File

@@ -1001,7 +1001,14 @@ EOF
{
$aReconcAttCodes[] = $oAttribute->getAttribute('id');
}
$sReconcKeys = "array('".implode("', '", $aReconcAttCodes)."')";
if (empty($aReconcAttCodes))
{
$sReconcKeys = "array()";
}
else
{
$sReconcKeys = "array('".implode("', '", $aReconcAttCodes)."')";
}
}
else
{