我在Typo3 TCA中创建了一个选择,它看起来像这样:
public int[] getTableData(DefaultTableModel model, Integer colIndex) {
int nRow = model.getRowCount();
int[] tableData = new int [nRow];
for(int i = 0; i< nRow; i++) {
tableData[i] = (int) model.getValueAt (i,colIndex);
}
return tableData;
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
int nRow = model.getRowCount();
algorithm algo = new algorithm(getTableData(model, 1),getTableData(model, 2),
Integer.parseInt(jTextField1.getText()),Integer.parseInt(jTextField2.getText()),Integer.parseInt(jTextField3.getText()));
int[] result = algo.getResult();
for(int i = 0; i < nRow; i++) {
if(result[i]==1)
model.setValueAt("take", i , 3);
else
model.setValueAt("leave", i, 3);
}
}
默认值=记录的uid,如何更改?
我需要那个值= my_column。有可能吗?
答案 0 :(得分:5)
您可以使用itemProcFunc构建您需要的选择选项。在您的TCA中,您可以更改配置:
'company_address' => array(
'config' => array(
'type' => 'select',
'itemsProcFunc' => 'Vendor\\MyExt\\UserFunc\\TcaProcFunc->companyAddressItems'
'maxitems' => 1
)
)
然后您可以实现自定义功能。我给你举个例子
namespace Vendor\MyExt\UserFunc;
class TcaProcFunc
{
/**
* @param array $config
* @return array
*/
public function companyAddressItems($config)
{
$itemList = [];
$rows = $this->getMySpecialDokTypeRowsFromDb();
foreach ($rows as $row) {
$itemList[] = ['Label of the item', $row['my_column']];
}
$config['items'] = $itemList;
return $config;
}
}
您在$config['items']
中存储的内容将是您选择框中的项目列表。要进行此(未经测试的)示例工作,您当然要实现方法getMySpecialDokTypeRowsFromDb()
。