30% OFF para compra e renovaÇÃo »

Mensagens Recentes

Páginas: [1] 2 3 ... 10
1
Formulários / Re:numero sequencial em formulário detalhe
« Última Mensagem: por pauloper Online Hoje às04:31:32 pm »
Exato,

Não é um boa pratica usar PKs compostas, utilize sempre FKs (foreign key) compostas.

2
Formulários / Re:numero sequencial em formulário detalhe
« Última Mensagem: por Haroldo Online Hoje às03:29:29 pm »
Eu:
Criar campo integer sequencial nos itens do pedido

Stored Procedure renumeraItens (int idMestre)  <- executar no onafterDelete
Lê os itens do pedido do primeiro ao último e Update no Sequencial


Trigger Before Insert na tabela itens de pedido:
new.sequencial = select max(sequencial) + 1 from pedido_itens where idPedido = new.idPedido;

Algo parecido.

Particularmente não adoto PK composta. PK para mim sempre ID Interger AutoIncrement.
3
Formulários / Re:numero sequencial em formulário detalhe
« Última Mensagem: por Jailton Online Hoje às02:35:10 pm »
obrigado pela dica Jailton
primeiro

Mestre: no caso do mestre tenho 2 chaves primarias
obrigado pela dica Jailton
primeiro

Mestre: no caso do mestre tenho 2 chaves primarias

Detalhe: tenho as 2 chaves primarias e um campo auto incremento

como seria no caso do OnLoad?

Detalhe: tenho as 2 chaves primarias e um campo auto incremento

como seria no caso do OnLoad?

É só adicionar o segundo campo da Chave Primária Composta, em tudo.
Vamos supor, que você tenha estes campos na Chave Primária Composta:
Mestre: PedidoID, CaixaID

Detalhe: PedidoID, CaixaID, Item

Com isso vamos gerar uma sequência para os Itens.

No OnLoad do Mestre (Pai) Coloque:
[glo_PedidoID]={PedidoID}; // Marcar como Variável Global de saída em Aplicação > Variáveis Globais
[glo_CaixaID]={CaixaID}; // Marcar como Variável Global de saída em Aplicação > Variáveis Globais

No Detalhe > Filho
no SQL WHERE coloque
PedidoID = [glo_PedidoID] AND CaixaID = [glo_CaixaID]

No OnLoad do Detalhe > Filho colocar:
{PedidoID} = [glo_PedidoID];
{CaixaID}  = [glo_CaixaID];

Nas Linhas do detalhe selecione adicione o Campo: PedidoID, CaixaID e Item na Linha, marque o campo PedidoID e CaixaID como Campo *escondido*.

Mas o recomendado para modelagem de Banco de Dados atualmente é um campo só auto incremento como chave primária, e as outras chaves que precisar pode controlar como chave Única, etc.
https://ericlemes.com/2009/11/11/bd-idsechavescompostas/

Criando uma única ID por tabela como chave primária fica depois tudo mais fácil para relacionar elas, criar links, urls, passar parâmetros, etc.

Código: [Selecionar]
// ** Adaptar o nome dos campos a suas tabelas...
if (empty({Item})) {
/* Macro sc_lookup */

$sql="
SELECT
   MAX(Item)+1
FROM
   pedidos_itens
WHERE
   PedidoID = [glo_PedidoID] AND CaixaID = [glo_CaixaID]
ORDER BY
PedidoID, CaixaID, Item
";

sc_lookup(chk_item, $sql);

/* Erro no lookup */
if (FALSE === {chk_item}) {
sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({chk_item})) { /* EOF */
   // sc_error_message("Nenhum valor foi retornado pelo banco.<BR>");
}
else {
   /* Inclua aqui sua rotina de processamento */
   {Item}={chk_item[0][0]};
}
}

if (empty({Item}) {
   {Item}=1;   
}    
4
Formulários / Re:numero sequencial em formulário detalhe
« Última Mensagem: por giba_ Online Hoje às02:17:44 pm »
opa outra dica! agradeço se compartilhar a ideia
5
Formulários / Re:numero sequencial em formulário detalhe
« Última Mensagem: por pauloper Online Hoje às02:15:46 pm »
Eu, particularmente,
utilizo Trigger direto no banco, para fazer este tipo de auto-numeração secundária.

6
Formulários / Re:numero sequencial em formulário detalhe
« Última Mensagem: por giba_ Online Hoje às01:42:33 pm »
obrigado pela dica Jailton
primeiro

Mestre: no caso do mestre tenho 2 chaves primarias

Detalhe: tenho as 2 chaves primarias e um campo auto incremento

como seria no caso do OnLoad?
7
Herberto;

   A NETMAKER vai ter que dar uma solução pra esse problema, nenhum dos meus backups restaurou, fica por horas e não restaura, tudo ocasionado por uma atualização na versão, maldita hora que eu cliquei na mensagem para atualizar a versão, estou com um prejuiso enorme, sem tamanho...... e não consigo restaurar nenhum backup, nem o mais atual e nem os mais antigos.
8
Bugs / Re:API - Envio de Email
« Última Mensagem: por leandroauler Online Hoje às12:41:59 pm »
Boa tarde,

Sei que o o tópico é um pouco antigo, porém estou na versão 9.2.008 e o problema continua persistindo.

Tem que colocar algum arquivo no ambiente de produção ou alguma pasta?

Att,

Leandro Auler
9
ScriptCase Versão 9 / Re:Erro 500 ao enviar emails
« Última Mensagem: por Wennys Carlos Online Hoje às12:14:49 pm »
Você deve checar junto a sua hospedagem quais são os parâmetros para envio de emails por lá. Quais são as portas a serem utilizadas.

Com certeza elas são diferentes do seu ambiente de desenvolvimento.
10
Formulários / Re:numero sequencial em formulário detalhe
« Última Mensagem: por Jailton Online Hoje às11:58:14 am »
Vamos supor, que você tenha estes campos:
Mestre: PedidoID

Detalhe: PedidoID, Item

Com isso vamos gerar uma sequência para os Itens.

No OnLoad do Mestre (Pai) Coloque:
[glo_PedidoID]={PedidoID}; // Marcar como Variável Global de saída em Aplicação > Variáveis Globais

No Detalhe > Filho
no SQL WHERE coloque
PedidoID = [glo_PedidoID];

No OnLoad do Detalhe > Filho colocar:
{PedidoID} = [glo_PedidoID];

Nas Linhas do detalhe selecione adicione o Campo: PedidoID e Item na Linha, marque o campo PedidoID como Campo *escondido*.

Crie em Métodos > PHP Novo =    GerarSequencia, coloque este Código:
Código: [Selecionar]
// ** Adaptar o nome dos campos a suas tabelas...
if (empty({Item})) {
/* Macro sc_lookup */

$sql="
SELECT
   MAX(Item)+1
FROM
   pedidos_itens
WHERE
   PedidoID = [glo_PedidoID]
ORDER BY
PedidoID, Item
";

sc_lookup(chk_item, $sql);

/* Erro no lookup */
if (FALSE === {chk_item}) {
sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({chk_item})) { /* EOF */
   // sc_error_message("Nenhum valor foi retornado pelo banco.<BR>");
}
else {
   /* Inclua aqui sua rotina de processamento */
   {Item}={chk_item[0][0]};
}
}

if (empty({Item}) {
   {Item}=1;   
}    



************************************
Criar um EventoAjax > Item > OnFocus:
GerarSequencia();


No Evento OnValidate:
GerarSequencia();
Páginas: [1] 2 3 ... 10