Jump to content

Dúvida sobre Datagrids


carinacosta
 Share

Recommended Posts

A minha dúvida no fundo é fazer os selects das subgrids.

O principal motivo que me levou a questionar-los foi o seguinte:

- fiz o download  desta datagrid:

http://phpgrid.com/example/

o que eu não estou a conseguir

src=C:\Users\Paulo\Downloads\BD.jpg[/img]

Ou seja, a tabela de ordens de fabrico são os dados da tabela principal, e as seguintes  3 são subgrid,  só aparecem os dados maximizados correspondentes à respectiva ordem de fabrico.

O problema é mesmo não conseguir mostrar os dados da subgrid.

Estou a utilizar este código para sugrid:

//second grid as detail grid. Notice it is just another regular phpGrid with properites.
		$sdg = new C_DataGrid("SELECT aprovado, desprm, datprm, numprm From prm","id", "prm");
		$sdg->set_col_title("aprovado", "Aprovado");
		$sdg->set_col_title("desprm", "Desprm");
		$sdg->set_col_title("datprm", "Datprm");
		$sdg->set_col_title("numprm", "Numprm");
		// define master detail relationship by passing the detail grid object as the first parameter, then the foreign key name.
		$dg->set_subgrid($sdg,'idof');

$dg -> display();

Será que me podiam ajudar ?

Obrigada  👍

Link to comment
Share on other sites

Tens dados na BD?

Tira esta linha: $dg->set_subgrid($sdg,'idof');

e muda $dg -> display();

para $sdg->display();

O que te aparece?

EDIT: Outra coisa, no teu select não estás a trazer o id (o campo que especificas como primary key).

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

Desapareceram-me os dados do 1º select que tinha feito, ou seja fiquei sem dados nenhuns. seria util mostar-lhe as relações da base de dados ?

Quanto á parte de especificação da chave primária, tenho algumas duvidas com isso, eu ja tinha feito os select's todos numa tabela normal. e apareciam os dados respectivos ao mesmo id, mas estava tudo em php.

Link to comment
Share on other sites

O não fazer select do id pode causar algum problema na classe que está a usar. Experimente adicionar alguns dados na base de dados e ir fazendo as coisas passo a passo. Comece por fazer apenas a criação da classe com o select e o display, e veja que há alguma implicação de não ter colocado o campo id no select. Quando isso estiver resolvido (com o acrescentar do campo id ou não), adicione as labels (nome a mostrar das colunas).

Depois em relação à subgrid, tome em atenção o exemplo do site (http://phpgrid.com/example/subgrid/). No final deverá obter algo como (linhas + importantes com <-----):

$dg = new C_DataGrid("SELECT * FROM Orders", "orderNumber", "Orders"); ///<----

// change column titles
$dg->set_col_title("orderNumber", "Order No.");
$dg->set_col_title("orderDate", "Order Date");
$dg->set_col_title("shippedDate", "Shipped Date");
$dg->set_col_title("customerNumber", "Customer No.");

$sdg = new C_DataGrid("SELECT orderNumber,productCode,quantityOrdered,priceEach FROM OrderDetails", "orderNumber", "OrderDetails"); ///<----
$sdg->set_col_title("orderNumber", "Order No.");
$sdg->set_col_title("productCode", "Product Code");
$sdg->set_col_title("quantityOrdered", "Quantity");
$sdg->set_col_title("priceEach", "Unit Price");

// define master detail relationship by passing the detail grid object as the first parameter, then the foreign key name.
$dg->set_subgrid($sdg, 'orderNumber'); ///<----

$dg->display(); ///<----

Sem ver o código completo que tem não consigo dizer muito mais que isto...

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

Obrigada

Relativamente a esta função:

// define master detail relationship by passing the detail grid object as the first parameter, then the foreign key name.
$dg->set_subgrid($sdg,'idof');

Eu na minha base de dados os campos comuns têm nomes diferentes, como por exemplo "id" liga com "idof", neste caso como posso declarar isto  na função a cima ?

Ou existe outra que possa aplicar ?

Link to comment
Share on other sites

http://phpgrid.com/documentation/

pelo que li na documentação (algo que deverias ser tu a fazer fazer) será deste género:

$datagrid1 = new C_DataGrid("SELECT * FROM tabela1", "id_tabela1", "tabela1");
$datagrid2 = new C_DataGrid("SELECT id_tabela2, ref_id_tabela1 FROM tabela2", "id_tabela2", "tabela2");
$datagrid1->set_subgrid($datagrid2, "ref_id_tabela1", "id_tabela1");
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

$dg = new C_DataGrid("SELECT id, numordfab, datordfab,ficof, especificacao FROM ordensfabrico","ficof" ,"Orders");
$dg->set_col_title("numordfab", "NumOF");
$dg->set_col_title("datordfab", "DataOF");
$dg->set_col_title("ficof", "Ficof");
$dg->set_col_title("especificacao", "Especificacao");

Eu fiz este select para a primeira tabela, que são os dados principais e agora, e em relação ás subgrids tenho que colocar esses codigo todo que me disse?

Ja tentei e não funcionou  ?

EDIT: Use Geshi para o código, torna os posts mais legíveis. 😕

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.