Venho solicitar auxilio dos magos da SC do fórum, estou como uma situação e precisaria de uma sugestão, uma grid que mostra informações de uma tabela. No sistema temos um cadastro de produtos e de contaminantes desse produto (outros produtos que contaminam esse produto), e tenho um script SQL que gera uma tabela dinâmica, onde ele pega e transforma os produtos em colunas além da linhas, e diz se o produto da linha contamina o da coluna, porém não sei como fazer isso no scriptcase, saberiam me dizer se eu criar um SP no SQL e usar ela no select ele vai dar certo? tenho medo que ao mudar de banco em diferentes clientes ele não recrie a colunas corretamente, pois tem que reorganizar, ou se teria como rodar em uma aplicação externa e só mostrar no sistema, conto com auxilio, pois estou sem ideia de como contornar essa questão.
Você não consegue colocar esse select em uma view?
Não, pois uso variáveis no select, e não da pra usar variáveis em uma View
Crie uma tabela intermediária alimente essa tabela com o select a use essa tabela na grid.
Mas e caso o cliente cadastre produtos novos, ou eu troque o banco para outro cliente, o grid ira criar e alocar um campo novo?
Não.
A grid é construída em cima da tabela.
Para uma grid dinâmica use report pdf com hight code.
Essa era minha preocupação hehe, vou testar com pdf como falou, muito obrigado
Olha, como diz Haroldo resolve o problema, mas também podes mostrar o Grid sobre um SP (store procedure) donde passas os parâmetros correspondentes e que devolva uma tabela já processada e com um campo Id que seja igual à chave primaria da tabela do banco de dados, assim quando vais atualizar utilizas o Id e coluna do Grid, também se adicionas de ser necessário faz diretamente no banco de dados na tabela original utilizando como referencia Coluna, e depois quando retorne ao Grid ficará atualizado de forma automática. Quando é necessário em mi caso faço desse jeito. Claro se os dados a mostrar precisam dum tratamento prévio que acho seja o caso…
Esse era meu plano inicial, usar uma SP para fazer o procedimento e usar no select do SC, porém como há sempre cadastro de novos produtos e essa logica seria usada em vários bancos diferentes, se o SC não atualizar não fica viável
Mas, como que SC não atualiza?
Você tem que fazer o código PHP para atualizar. O processo que estás a tentar desenvolver não é simples e SC da-te ferramentas visuais mas o resto é vc que tem que desenvolver.
Sei disso, por isso abri essa pendencia, o ScriptCase usa o select para criar os campos da tabela, e depois disso ele não se atualiza por conta, eu não consegui pensar em um modo de fazer isso no scriptcase pois sou novo na ferramenta, uso desde outubro só, conseguiria me passar uma ideia de como essa sua logica funcionaria?
Tenho essa lógica pronta e funcionando em outra ferramenta onde rodo uma versão desktop e não consegui traduzir isso pro scriptcase, se a informação disponibilizada para o cliente for a mesma, a aplicação pode ter uma lógica totalmente diferente
Não SP com grid não funciona.
Se podem vir colunas diferentes somente montando uma grid dinâmica.
Joao, com aquelas indicações de Haroldo e depois eu, tem elementos para avançar.
O problema que deves continuar a fazer todo isso com instruções e comando de SQL próprias do banco de dados que estas a usas que acho é Postgresql mas senão da igual o SGBD que uses.
SC tem as seguintes macros e suficientes para fazer todo o que precisas e ainda mais:
SQL
sc_begin_trans (“Conexión”) Esta macro inicia un conjunto de transacciones en la base de datos.
sc_btn_label (“btn_name”, “new_label”) Esta macro se utiliza para cambiar la etiqueta de los botones.
sc_change_connection (“Conexión_antigua”, “Nueva_conexión”) Esta macro cambia dinámicamente las conexiones de la aplicación.
sc_commit_trans (“Conexion”) Esta macro efectiva un conjunto de transacciones en la base de datos.
sc_concat Con esta macro puede concatenar campos en select para cada base de datos.
sc_connection_edit (“Nombre_Conexion”, $ arr_conn) Esta macro edita una conexión existente en tiempo de ejecución.
sc_connection_new (“Nombre_de_Conexion”, $arr_conn) Esta macro crea nuevas conexiones dinámicamente.
sc_error_continue (“Evento”) Esta macro desactiva el mensaje de tratamiento de error de base de datos estándar de Scriptcase para un evento.
sc_error_delete Esta macro configura la variable que contiene el mensaje de error de la base de datos que puede ocurrir durante la exclusión de un registro.
sc_error_insert Esta macro configura la variable que contiene el mensaje de error de mensaje de error que puede ocurrir durante la adición del registro.
sc_error_update Esta macro configura la variable que contiene el mensaje de error de la base de datos que puede ocurrir durante la actualización de un regis
sc_exec_sql (“Comando SQL”, “Conexión”) Esta macro ejecuta comandos SQL pasados como parámetro o un comando SQL en el tipo de acción de campo SQL.
sc_get_wizard_step Esta macro identifica el paso actual del asistente de formularios
sc_lookup (Conjunto de datos, “Comando SQL”, “Conexión”) Esta macro ejecuta un comando SELECT almacenado en el segundo parámetro y devuelve los datos en una variable.
sc_reset_change_connection Esta macro borra los cambios realizados usando “sc_change_connection”.
sc_reset_connection_edit Esta macro deshace las ediciones de conexión realizadas por la macro “sc_connection_edit”.
sc_reset_connection_new Esta macro deshace las conexiones hechas por la macro “sc_connection_new”.
sc_rollback_trans Esta macro descarta un conjunto de transacciones en la base de datos.
sc_select (conjunto de datos, “Comando SQL”, “Conexión”) Esta macro ejecuta los comandos pasados en el segundo parámetro y devuelve el conjunto de datos en una variable.
sc_select_field ({Campo}) Esta macro modifica dinámicamente un campo que se recuperará en la Consulta.
sc_select_order (“Campo”) Esta macro modifica dinámicamente el campo de cláusulas grillas “ORDER BY”.
sc_select_where (add) Esta macro agrega dinámicamente una condición a la cláusula WHERE de la grilla.
sc_set_fetchmode (parm); Esta macro permite cambiar el tipo de retorno del conjunto de datos de los comandos seleccionados
sc_sql_injection ({Mi_Campo}) o ($Mi_Variable) Esta macro se usa para proteger el campo / variable contra “inyección SQL”.
sc_sql_protect (Valor, “Tipo”, “Conexión”) Esta macro protege el valor pasado como parámetro de acuerdo con la base de datos utilizada.
sc_where_current Esta macro se usa para hacer una referencia de la cláusula where actualmente utilizada.
sc_where_orig Esta macro guarda el contenido de la cláusula where de la aplicación original.
[Variables - Database](http://127.0.0.1:8091/scriptcase/doc/manual_mp/manual/14-macros/02-macros/#Variables - Database) Variables de base de datos Variables globales que contienen valores de acceso a la base de datos utilizados por la conexión principal.
Alias, penso que podes resolver melhor ainda com SP de BD. Claro desenvolvido previamente por ti, e esta parte não é Scriptcase.
Desculpa, os Link estarão errado pois se referem a minha PC donde tenho instalado o SC mas na ajuda esta todo…
Haroldo se funciona, tenho vários Grid com SP e trabalham lindamente.
Quando faças o Grid coloca o SP com parâmetros certos a modo de teste incluindo os campos da tabela que devolve e trabalha bem, eu tenho varios Grid assim.
Tenho uma aplicação para Universidades que faz a gestão de Serviços académicos completa e Serviços Financeiros com mais de 600 aplicações e deve ter mais de 50 APP com SP de Postgresql e trabalha bem.
Se quer pos mostrar imagem da sessão de SQL duma aplicação…
Quando entender o que o colega deseja vera que não funciona.
Ok, te estas a referir a que não funciona desde o ponto de vista da regras do negocio do que ele quer implementar. Correto percebi, pensei que te referias ao Scriptcase com SP de Postgresql.
@alfonso2013 Agradeço pela ajuda, vou tentar, mas acredito que como o @InfinitusWeb falou, não será possível, vou tentar também com as dicas que você passou também Haroldo, muito obrigado a todos pelas ideias
Existe UMA possibilidade.
Tu pode gerar a tabela com uma SP.
Numa Blank, tu faz um select no banco information_schema (mysql e mssql) na tabela Tables, e pega todas as colunas da tabela gerada pela SP.
Monta um SQL dinamico com essas colunas e monta a sua tabela com o resultado em HTML na mesma blank.
Ja fiz relatorios assim e funcionam muito bem.
@mvinicius Muito obrigado, vou testar também e ver qual se adequa melhor a situação, mas muito obrigado mesmo por mais uma ideia