sc_redir com parâmetros para uma tela de inclusão ?

Olá pessoal, bom dia || boa tarde || boa noite!

Preciso de uma ajuda…
Tenho uma tela de controle, onde adicionei dois campos(Loja, Data).
A lógica é a seguinte, IF ambos resultados dos campos existirem, abre um formulário normal com as informações.
Até ai tudo bem… ELSE existirem, abre um formulário de único registro para inclusão de novos dados de acordo com as informações
que foram acrescentadas na tela de controle, ou seja, se na tela de controle eu coloquei Loja=001 e Data=17/10/2014…
No formulário os campos Loja e Data devem vir preenchidos com essas informações, e os outros campos em branco para que eu possa continuar com a inclusão.
Tentei usar sc_redir passando os resultados em variáveis globais, assim:

  • sc_redir(‘formulario’, Loja=[vrv_loja]; Data=[vrv_data]); //Isso tudo já configuração em Aplicação>Variáveis Globais.

Porém não funcionou, tentei inclusive colocar dentro do formulário, nos campos Loja e Data a variável global, e também não adiantou.

Preciso de uma ajuda, de como é possível fazer isso ?

Aguardo respostas :wink:

Olá seu form tem nos campos de preencher, iniciação padrão com as variáveis?
Campo Loja iniciação padrão valor [vrv_loja] ?

Sim, já tentei. Inclusive marquei para que forçasse a inicialização pela variável global.

Para funcionar o seu form deve estar:
Campo loja iniciação padrão / valor definido / [vrv_loja]
Campo data iniciação padrão / valor definido / [vrv_data]

no redir deve estar
sc_redir(‘formulario’, vrv_loja={campo_ctr_loja}; vrv_data={campo_ctr_data});

e não

sc_redir(‘formulario’, Loja=[vrv_loja]; Data=[vrv_data]);

1 Curtida

Hmmm.
Vou tentar. :wink:

Deu certo?

Oi, desculpa a demora. deu certo sim.
Mas agora estou com outro problema, será que consegue me ajudar ?
Na tela de formulário para onde passei os parâmetros, quando vou incluir alguma coisa, dá essa mensagem de erro:


ERRO
Erro na inclusão - Registro já existe

Sabe o que pode ser ? Já tentei criar outra tela e desmarcar a maioria dos campos chaves.

Confirma se seu campo no banco de dados está como chave primária e se no form em sql está selecionado como chave primária.
Também veja se está auto incremento na tabela do banco de dados e se em editar campos está enxergando o auto incremento.

Os mesmos campos que estão como chave primário no banco estão também como chave primária no ScriptCase. Só existe um campo que é auto incremento, mas está configurado já e está como campo oculto.

Vai em aplicação, sincronizar tabela.
Depois em Configurações / Modo debug
Verifique o a query que gera.

Ele gera somente isso!

(mysqlt): SET AUTOCOMMIT=0
(mysqlt): BEGIN
(mysqlt): select count(*) from fin_transfsaldo where SiglaLoja = ‘005’
(mysqlt): COMMIT
(mysqlt): SET AUTOCOMMIT=1

ERRO
Erro na inclusão - Registro já existe

Sua chave primária é o SiglaLoja?
No bd e no form?

Olha no banco:

Olha no SC:

Realmente não está correto.
Sugiro alterar sua tabela criando um campo ID que será a chave primária e o auto incremento e deixar os demais campos “KEY” como como campo normal.
Lembrando que quando você seleciona um campo como KEY, ele não poderá repetir no BD que no seu caso é o que acontece…
Após arrumar o BD arrume sua aplicação onde será auto incremento automático e desligue o SiglaLoja do Auto Incrmento

Não tem outra forma ? Não posso alterar o banco de dados. :frowning:

É uma tabela de um outro sistema?

Como assim de um outro sistema ?

Esse banco / tabela você criou ou já é utilizado por algum outro que não seja o seu?

Ah sim, faz parte de um banco já utilizado. Só que não é gerenciado por mim. Por este motivo não posso alterar.

Você sabe que alterando uma tabela de outro sistema sem alterar as dependências conforme análise do sistema acarretará em perda de confiabilidade do sistema.
Recomendo fazer essa aplicação apenas se tiver certeza.
Ainda mais que pelo tanto de chave primária dessa tabela deve ter vários relacionamentos.

Por fim se desejar continuar deixe a mesma estrutura aplicação / banco de dados, conforme vi pelas imagens não está assim.