Relatórios de Cristal vs. consultas SQL

sou um programador (principalmente C++) que se mudou para um local de trabalho não-software. No entanto, eu não tenho muita experiência com coisas de banco de dados em tudo.

TL; DR: se compararmos os relatórios de cristais com apenas a escrita de programas que executam as consultas SQL e analisam os resultados, existe alguma coisa que o CR possa fazer que não seja possível através das consultas & programas SQL? Estou a falar apenas em termos de extrair dados, não de fazer documentos bonitos.


pormenor:

na minha local de trabalho eles têm um processo em que você executar um monte de Crystal Reports, modificar o intervalo de datas para o mês atual, exportar manualmente cada um para o excel, excluir as linhas e colunas que não são necessárias e, em seguida, cortar e colar em um resumo de documentos do excel que é usado pela gerência.

Para mim, isto é uma loucura e uma estupidez. Gostaria de automatizar/escrever a maior parte.

Então tenho duas opções:

  • aprenda relatórios de cristal e tente modificar os relatórios existentes para ser mais automatizado.
  • Despeja o CR e aprende SQL e faz tudo programaticamente com scripts a trabalhar com ficheiros CSV ou algo assim.
Prefiro aprender SQL, já que é mais geral e útil. Mas eu preciso ter certeza de que eu posso obter a saída de dados que eu preciso (sem escrever um milhão de linhas de código para reproduzir CR eu mesmo.)

Então, sim, estou à procura de uma resposta do tipo: "os dois são equivalentes. Qualquer coisa que você pode fazer em CR você pode fazer facilmente através de scripts e SQL," ou" se você precisa agrupar registros em categorias baseadas em um parâmetro e então somar um de seus campos, então CR fará isso muito mais facilmente do que o código raw", para me empurrar em uma direção ou outra.

editar: Alguns detalhes adicionais. No momento, meus relatórios de cristal executam uma consulta de banco de dados, e então crystal faz coisas como, "não exibir os registros que são retornados, em vez de agrupar os registros pelo campo a e, em seguida, exibir a contagem de quantos registros em cada grupo."

é funcionalidade como esta difícil de reproduzir através de codificação SQL? Eu não gostaria de ter que escrever um script python (ou seja o que for) para processar e manipular os dados do CSV de texto simples, por exemplo.

Author: AlternateZ, 2013-10-04

6 answers

Não se pode comparar SQL e CR - eles têm um propósito diferente. SQL (neste contexto) é fonte de dados, CR é formatador de saída bonito. Para o excel você precisaria de dados, não de saída formatada. O Excel combinado com o SQL pode lhe dar todas as opções de CR (Relatórios dinâmicos crosstab, gráficos etc) o que você não pode obter diretamente a partir de dados SQL. BTW, criar visões ou procedimentos SQL é muitas vezes necessário para superar limitações CR; deste ponto de vista SQL tem muitas mais opções do que CR. Pessoalmente escolheria a rota SQL+Excel. Em nossa empresa estamos usando simplesmente SQL+CR sem pós-processamento, às vezes SQL+Excel. Nossos clientes estão usando abordagens diferentes. Mas, como disse outras pessoas, a escolha de ferramentas depende de mais coisas. Quem tem de redesenhar os relatórios? Quem vai manter estes relatórios? Quantas vezes os requisitos mudam? Existem mais usos para relatórios de CR além de tabelas de sourcing Excel? Quem será acordado à noite, se os relatórios não funcionarem?
 3
Author: Arvo, 2013-10-04 08:52:46
([1]}a gestão é desconcertante.: Em muitos eu direi que a maioria dos casos a gestão não conhece SQL. Então, se um gerente para E.g.HR quer saber uma coisa ao staus, então como é que ele vai ter esse estatuto?? É aqui que os relatórios de Cristal entram em imagem, usando relatórios de cristal que eles não têm que se preocupar com SQL; eles vão apenas entrar campos necessários e obter seus dados.

Perspectiva programadora: As saídas de dados simples podem ser obtidas através de SQL, mas considere um cenário onde você precisa puxar detalhes bem como resumo. Concordo que pode ser feito via SQL, mas considere a sobrecarga de tempo e proficiência necessária para desenvolver tal saída usando sql. Eu aposto que não será tão fácil de desenvolver tal saída usando sql em comparação com o cristal. Então eu vou dizer para aprender SQL e crystal, você vai começar a escolher a ferramenta para aplicar para a sua exigência.

 2
Author: Pratik Kaje, 2013-10-04 07:51:02
Podes escrever SQL e colocá-lo no relatório do cristal. O melhor de ambos os mundos, e possivelmente um desempenho mais rápido do que a funcionalidade de cristal de arrasto e queda. Você verá algum atraso no tempo de resposta quando o relatório correr.
 2
Author: r solomon, 2013-10-16 17:24:28

Existem na verdade algumas coisas que os relatórios de Cristal podem fazer que são muito complicadas usando consultas SQL simples como relatórios de Cristal podem acessar o conjunto de dados inteiro em uma única fórmula e podem fazer coisas em tempo de execução.

No entanto, a menos que você tenha alguns relatórios de Cristal complexos realmente loucos, eu recomendaria a construção de uma ferramenta no Excel que pode clicar na informação diretamente em uma nova folha.

Fiz isto e consegui uma promoção, não estou a brincar. Tenho um Excel personalizado. pode dar-lhe um código para isso basicamente faz isto:
  • ao abrir, liga - se à base de dados e transfere uma lista de opções de menu ligadas às vistas e procedimentos
  • adiciona estas opções de menu numa nova página da fita dentro do Excel
  • Quando um é clicado, executa a vista e descarrega todo o conjunto de dados (devidamente formatado) numa nova folha

A vantagem disto é que você pode atualizar a lista de menu principal e cada visualização que ele faz referências sem fazer quaisquer alterações ao arquivo ou reemitir qualquer coisa a toda a gente.

 2
Author: bendataclear, 2013-10-16 17:38:30

O cristal pode ser útil se quiser criar um documento com um layout específico, logotipos, etc. e mostra alguns dados sobre isso. Exportar para o excel a partir do Crystal repot não é fácil - normalmente há um monte de colunas e linhas vazias e cada relatório deve ser ajustado para evitar isso. Se você precisar exportar alguns dados de um banco de dados SQLServer para excel sua melhor opção será SSIS ( eu acho que você tem uma licença para o servidor SQL). Se você não tem licença para SSIS ou você está usando, por exemplo, acesso banco de dados existem também algumas ferramentas baratas, que podem recuperar dados de qualquer banco de dados ( não apenas SQLServer) e exportá-lo para o excel. Sugiro que verifique este. http://www.r-tag.com . pode executar relatórios de cristais e relatórios de SQL para que possa começar a usar os seus relatórios de cristais imediatamente e começar a transformá-los em relatórios de SQL sempre que tiver tempo para isso. Ambos os relatórios podem ser exportados para o excel.

 0
Author: Lan, 2013-10-07 19:31:09

Corrigi isto editando o excel sql, esquerda (Column_maxLength, 250) isso resolveu o meu problema. no meu caso, se mesmo que eu leia 250 caracteres esquerda é suficiente

 0
Author: Anup Kulkarni, 2016-09-15 13:17:26