Tablas anidadas: lateral izquierda y derecha
position('left') y position('right') ejecutan una tabla anidada como una columna lateral fija y anclada, junto a los campos propios del formulario padre.
position('left') / position('right')
Ambos valores ejecutan la tabla anidada como una columna de ancho fijo (300px por defecto, min-width: 160px, max-width: 60vw) anclada a la parte superior del panel, junto a los campos propios del formulario padre (sus campos planos, la franja de pestañas y cualquier sección bottom/bottom-fixed) en lugar de encima o debajo de ellos. Ambos reciben un borde arrastrable para redimensionar el ancho de la columna y su propio desplazamiento interno para las filas hijas: el mismo tratamiento de anclado + asa arrastrable + desplazamiento interno que usa bottom-fixed, solo que en horizontal.
left coloca la columna anidada a la izquierda, con los campos propios del padre fluyendo a la derecha; right refleja eso. En cualquier caso, el asa arrastrable se sitúa en el borde que limita con la columna principal del formulario.
Ejemplo: left
Coincide con pages/nested-table-left.php:
$xcrud = Xcrud::get_instance();
$xcrud->table('orders');
$xcrud->route('nested-table-left');
$xcrud->columns('orderNumber,orderDate,status,customerNumber');
$orderdetails = $xcrud->nested_table('Order details', 'orderNumber', 'orderdetails', 'orderNumber');
$orderdetails->columns('productCode,quantityOrdered,priceEach');
$orderdetails->fields('productCode,quantityOrdered,priceEach');
$orderdetails->order_by('productCode', 'asc');
$orderdetails->change_type('priceEach', 'price', '2', ['prefix' => '$']);
$orderdetails->relation('productCode', 'products', 'productCode', 'productName', null, null, false, ' ', true);
$orderdetails->position('left');
echo $xcrud->render();
Abrir aquí el formulario de edición de un pedido muestra "Order details" como una columna fija que recorre el lado izquierdo, anclada a la parte superior del panel mientras los campos propios del pedido se desplazan a la derecha. Arrastra su borde derecho para ensancharla o estrecharla.
Ejemplo: right
La diferencia de una sola línea:
$orderdetails->position('right');
Misma disposición, reflejada: la columna anidada ahora recorre el lado derecho, con el asa arrastrable en su borde izquierdo (el que limita con los campos propios del padre), y los campos del padre fluyen a la izquierda en su lugar.
Referencia de position()
| Valor | Descripción |
|---|---|
left | Columna anclada de ancho fijo a la izquierda; los campos propios del padre fluyen a la derecha; asa arrastrable en el borde derecho de la columna |
right | Columna anclada de ancho fijo a la derecha; los campos propios del padre fluyen a la izquierda; asa arrastrable en el borde izquierdo de la columna |