Dołączam się do tematu.
Bo o ile zrozumiałem może być to też mój problem:
Czyli jak zrobić sobie formularz bazujący na wizualizacji tabeli (chcemy narysować coś na kształt arkusza excel. Każda komórka to pole QuickForm do edycji). Nie musi być związany z jakimś RB. Nie jest też raportem.
W epesi mamy zrobione przez Was predefiniowane wizualizacje QuickForms:
display_as_row
display_as_column
a tak naprawdę może chodzić o coś co umownie można nazwać
display_as_table
w najprostszej postaci z parametrem: x
gdzie
x - ilość kontrolek w poziomie
Jeśli mamy więcej elementów qf to po przekroczeniu x następuje zawinięcie i przeniesienie do nowego wiersza
czyli tworzy się nie pojedynczy row, a tabelka z określoną ilością kolumn (bez krawędzi, lub z)
Wiem, że trzeba będzie operować smartami - ale nie da się ukryć, że tego nie robiłem, i każda sugestia "jak" będzie mile widziana.
ewentualność (ułatwienie?) 2:
To samo ale nie robione na smartach a po prostu w GenericBrowserze,
Rysujemy tabelkę jako gb i wstawiamy do niej kontrolki qf
Tylko jak wywołać moduł qf w module gb tak aby tworzyło to jedną całość? Do każdej kontrolki tworzyć osobny moduł qf (tak jak chyba zrobiliście to w edycji inline w rb)? Tak nie chcę.
czyli (UWAGA nieprawidłowy kod - tylko do wizualizacji pomysłu !!!. Nie nalezy poniższego używać w realizacji!!!)
$gb = $this->init_module('Utils/GenericBrowser',null,'tabelka1');
$qf = $this->init_module('Libs/QuickForm');
$gb->set_table_columns(
array(
array('name'=>__('kol1'), 'width'=>10)
,array('name'=>__('kol2'), 'width'=>10)
,array('name'=>__('kol3'), 'width'=>10)
));
$gb->add_row(
$qf->addElement('text','id_text1','wprowadz 1')
,$qf->addElement('text','id_text2','wprowadz 2')
,$qf->addElement('text','id_text3','wprowadz 3')
);
$gb->add_row(
$qf->addElement('text','id_text4','wprowadz 5')
,$qf->addElement('text','id_text5','wprowadz 6')
,$qf->addElement('text','id_text6','wprowadz 7')
);
$gb->add_row(
''
,$qf->addElement('submit','id_submit','Zapamiętaj')
,''
);
$this->display_module($qf); //to oczywiście jest w tym przypadku nieprawidłowe
$this->display_module($gb); //to oczywiście jest w tym przypadku nieprawidłowe
Pozdrawiam
Praski