| Autor |
Mensagem |
|
|
Pode-se perceber no texto que o autor é totalmente leigo e não está familiarizado com o que acontece no ambiente de TI.
Trabalho como usuário SAP e acompanho a evolução em um dos seus módulos desde que foi implementado há 2 anos e meio e acompanho também desenvolvimento de software em sistema supervisório (como usuário também) apesar de ser programador desde 1989 (hoje programo em java).
O que vejo que acontece no ambiente de programação é o mesmo que acontece em outros ramos de atividades. Existem profissionais que se destacam na profuissão e existem aqueles que se satisfazem apenas fazendo o feijão com arroz. Se você que ser um bom programador deve ter a visão de um analista de TI quando está escrevendo um código, qualquer que seja a aplicação.
Um bom analista de TI que já foi bom programador geralmente tem a melhor visão de TI. É comum ver os gerentes de negócio tomarem decisões que tecnicamente devem ser diferentes.
Os programadores são lapidados pelos analistas portanto a crítica da revista vai um pouco mais além dos programadores.
Felizmente não leio este tipo de revista (Veja, Isto é, etc.). Acredito que só se deve valorizar a opinião de profissionais nos seus respectivos assuntos.
A matéria desta revista não é direcionada para o público técnico nem tampouco foi escrita por pessoa qualificada.
|
 |
|
|
Galera,
Alguém conhece algum tutorial básico de como faço para gerar relatórios no iReport com a origem de dados em um jTable e variavéis no código? Tenho encontrado bons tutoriais mas com geração de relatórios de conecções com banco de dados. No meu caso, já busquei os dados no banco, li o ResultSet e os dados estão em um jTable e em algumas variáveis acumulativas.
Desde já, Obrigado.
Edilson
|
 |
|
|
O kurumin 6.0 possui recurso para instalaçao em pen drive. Veja este tutorial para instalaç~~ao tanto o kurumin quanto outras distros.
http://www.guiadohardware.net/tutoriais/108/
Att.
Edilson Cavalieri
|
 |
|
|
Galera,
Não consigo baixar este tutorial (não existe no link). Alguém possui:
http://guj.com.br/java.artigo.153.1.guj
Att.
Edilson
|
 |
|
|
Galera,
Estou precisando gerar alguns relatorios em pdf. São saídas de campos de tabelas, jtable's e gráficos do jfreechar. Alguém conhece um bom tutorial do itext ou outra ferramenta melhor?
Att.
Edilson Cavalieri
|
 |
|
|
Galera,
A rotina abaixo gera um gráfico de barras. Não estou conseguindo incluir o rótulo nas barras com os valores de cada uma e não estou conseguindo configurar a escala Y em uma determinada faixa de valores. Alguém pode me ajudar?
Obrigado;
Edilson Cavalieri
EDIT - Por favor, use os tags [ code ] quando for incluir código-fonte em seu post. É simples, use o botãozinho [ code ] antes e depois de colar seu programa.
|
 |
|
|
Gostei do livro BIG JAVA, de Cay Horstmann. É bem metódico, técnico e possui uma boa didática.
http://www.temporeal.com.br/produtos.php?id=168401
Jà existe a segunda edição que contempla a versão 1.5, porém se não me engano ainda só em inglês. Pelo prospecto deve ser melhor que a primeira:
http://www.amazon.com/gp/product/0471697036/sr=8-1/qid=1152057540/ref=pd_bbs_1/103-7678840-9808622?ie=UTF8
O preço é um pouco alto mas achei que valeu a pena.
Att.
Edilson Cavalieri
|
 |
|
|
Valeu, o erro era este!
Obrigado,
Edilson
|
 |
|
|
Na linha:
List lista1 = new ArrayList(); // você não pode instanciar um List
não posso instanciar como List. Quando instancio:
ArrayList lista1 = new ArrayList();
vem um erro de runtime:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.String;
at cpa.mrplRendimentos.jButton1002ActionPerformed(mrplRendimentos.java:970)
na linha:
String captura = (String) ite.next();
rendHistGNO é uma "ArrayList"
Grato,
Edilson Cavalieri
|
 |
|
|
Gente,
Estou com dificuldade no código abaixo:
onde:
rendHistGNO é uma ArrayList de Strings
Na linha 10 me retorna que foi encontrado um object e o requerido é uma array.
Como faço para carregar somente um campo deste Arraylist para uma List (carregar um elemento List de um determinado campo de cada linha da ArrayList)?
Desde já,
Obrigado!
Edilson Cavalieri
|
 |
|
|
Estou alimentando ArrayList com um Resulset porém, carrego tudo em String. Exemplo de uma linha do ArrayList:
"Jan-06","99.55", "99.66","0.11","432343","234323"
São todos Strings. Ainda não usei interfaces. Valeu pela dica Rodrigo. Ainda estou em fase de aprendizagem da linguagem, vou procurar seguir a sua dica.
Obrigado. Edilson,
|
 |
|
|
Quando utilizo:
String[] capturaArray = (String[])dados.toArray();
me retorna a excessão:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object;
at cpa.geraGrafico2Barras.<init>(geraGrafico2Barras.java:72)
Quando utilizo:
String[] capturaArray = dados.toArray(new String[] {});
retorna um object [] e capturaArray é String[];
Obrigado,
Edilson Cavalieri
|
 |
|
|
Galera.
Estou tentando carregar um vertor com uma linha de uma ArrayList. O código é o seguinte:
public geraGrafico2Barras (String title, String[] legendaGraficos, int periodo, int barra1, int barra2, ArrayList dados) {
super(title);
try{
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
String series1 = legendaGraficos[0];
String series2 = legendaGraficos[1];
for(int h=1;h<=dados.size();h++){
String[] capturaArray = ( String[])dados.toArray( new String [dados.size()] );
dataset.addValue(Float.valueOf(capturaArray[barra1]),series1, capturaArray[periodo]);
dataset.addValue(Float.valueOf(capturaArray[barra2]),series2, capturaArray[periodo]);
capturaArray = null;
}
JFreeChart chart = createChart(dataset, title);
ChartPanel chartPanel = new ChartPanel(chart, false);
chartPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartPanel);
}catch( Exception e ){
JOptionPane.showMessageDialog(null, "Atenção! Erro na contrução do gráfico! \n" +
"Favor informar a mensagem abaixo ao adminstrador do sistema! \n " +
e.getMessage(), "Erro de construção de gráfico", JOptionPane.WARNING_MESSAGE);
}
}
Ocasiona o seguinte erro de runtime:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.ArrayList.toArray(ArrayList.java:305)
at cpa.geraGrafico2Barras.<init>(geraGrafico2Barras.java:71)
A linha 71 é:
String[] capturaArray = ( String[])dados.toArray( new String [dados.size()] );
Não consigo enxergar entender esta excessão. Todos os campos da ArrayList são strings.
Alguém pode me ajudar?
Obrigado:
Edilson Cavalieri
|
 |
|
|
A conexão com o banco é esta abaixo:
public Conexao( String banco, String usuario, String senha )
{
String URL = "jdbc:odbc:" + banco;
try
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
con = DriverManager.getConnection( URL, usuario, senha );
}
catch( Exception e )
{
JOptionPane.showMessageDialog(null, "Atenção! Erro de conexão ao banco de dados! \n" +
"Favor informar a mensagem abaixo ao adminstrador do sistema! \n " +
e.getMessage(), "Erro de acesso a banco de dados", JOptionPane.WARNING_MESSAGE);
erro = 1;
}
}
O codigo de leitura do banco é este (faço notar que rodo outras sql´s com este mesmo código):
private void processaRendimentoMRPL(){
String sql = "";
Statement stmt = null;
ResultSet rs = null;
ArrayList dados = new ArrayList();
String[] colunas = new String[]{"Data","Corrida","Código do aço","Tipo de Aço", "Nome" ,"Classe","Letra","Contábil","Sucata","Vazado","Carga"};
sql = "SELECT C.DAT_REFER_PRODC Data, C.COD_IDENT_CORRI Corrida, C.COD_IDENT_ACO Código_do_aço, " +
"DECODE(SUBSTR(C.COD_IDENT_ACO,1,1),'H','GNO','C','CARBONO','L','CARBONO', " +
"'E','GO','I','INOX') Tipo_de_Aço, PA.NOM_IDENT_ACO Nome, " +
"C.LET_PRODC_CORRI Letra, C.PES_CTBIL_CORRI Contábil, " +
"nvl(sum(adic),0) Sucata,SUM(produc)/COUNT(*) Vazado, sum(carga) / count(*) Carga " +
"FROM (SELECT C1.COD_IDENT_CORRI corrida1, AC.QTD_ADIC_INSUM adic " +
"FROM ACECPGER_ACI.ADICOES_CORRIDAS AC, ACECPGER_ACI.CORRIDAS_SN C1, " +
"ACECPGER.INSUMOS I, ACECPGER_ACI.MUDANCAS_LOTES_MATERIAIS MLM " +
"WHERE C1.COD_IDENT_CORRI = AC.COD_IDENT_CORRI " +
"AND AC.SEQ_MUDAN_LOTIN = MLM.SEQ_MUDAN_LOTIN " +
"AND MLM.COD_IDENT_INSUM = I.COD_IDENT_INSUM " +
"AND C1.DAT_REFER_PRODC >= TO_DATE('" + dataInicial + "','DD/MM/YYYY') " +
"AND C1.DAT_REFER_PRODC < TO_DATE('" + dataFinal + "','DD/MM/YYYY') " +
"AND C1.COD_EQPMT_PRODC LIKE 'MRP%' " +
"AND C1.COD_IDENT_CORRI NOT LIKE '%R%' " +
"AND MLM.COD_IDENT_INSUM LIKE 'S%') suc, " +
"(SELECT C2.COD_IDENT_CORRI corrida2, sum(CCA.PES_CARGD_CORRI) carga " +
"FROM ACECPGER_ACI.CARGAS_CORRIDA_ACIARIA CCA, ACECPGER_ACI.CORRIDAS_SN C2 " +
"WHERE C2.COD_IDENT_CORRI = CCA.COD_IDENT_CORRI " +
"AND C2.DAT_REFER_PRODC >= TO_DATE('" + dataInicial + "','DD/MM/YYYY') " +
"AND C2.DAT_REFER_PRODC < TO_DATE('" + dataFinal + "','DD/MM/YYYY') " +
"AND C2.COD_EQPMT_PRODC LIKE 'MRP%' " +
"AND C2.COD_IDENT_CORRI NOT LIKE '%R%' " +
"GROUP BY C2.COD_IDENT_CORRI ) cargacorrida, " +
"(SELECT C3.COD_IDENT_CORRI corrida3, sum(PC.PES_VAZAD_CORRI) produc " +
"FROM ACECPGER_ACI.PRODUCAO_CORRIDAS_SN PC , ACECPGER_ACI.CORRIDAS_SN C3 " +
"WHERE C3.COD_IDENT_CORRI = PC.COD_IDENT_CORRI " +
"AND C3.DAT_REFER_PRODC >= TO_DATE('" + dataInicial + "','DD/MM/YYYY') " +
"AND C3.DAT_REFER_PRODC < TO_DATE('" + dataFinal + "','DD/MM/YYYY') " +
"AND C3.COD_EQPMT_PRODC LIKE 'MRP%' " +
"AND C3.COD_IDENT_CORRI NOT LIKE '%R%' " +
"GROUP BY C3.COD_IDENT_CORRI ) producao, " +
"CORRIDAS C, ACECPGER_ACI.PRODUCAO_CORRIDAS_SN PC, ACECPGER.PR_ACO_SN PA, " +
"ACECPGER_ACI.CARGAS_CORRIDA_ACIARIA CCA " +
"WHERE C.COD_IDENT_CORRI = suc.corrida1(+) " +
"AND C.COD_IDENT_CORRI = cargacorrida.corrida2(+) " +
"AND C.COD_IDENT_CORRI = producao.corrida3(+) " +
"AND C.DAT_REFER_PRODC >= TO_DATE('" + dataInicial + "','DD/MM/YYYY') " +
"AND C.DAT_REFER_PRODC < TO_DATE('" + dataFinal + "','DD/MM/YYYY') " +
"AND C.COD_EQPMT_PRODC LIKE 'MRP%' " +
"AND C.COD_IDENT_CORRI = PC.COD_IDENT_CORRI " +
"AND C.COD_IDENT_CORRI = CCA.COD_IDENT_CORRI " +
"AND C.COD_IDENT_CORRI NOT LIKE '%R%' " +
"AND C.COD_IDENT_ACO =PA.COD_IDENT_ACO " +
"GROUP BY C.DAT_REFER_PRODC,C.COD_IDENT_CORRI, C.COD_IDENT_ACO, " +
"DECODE(SUBSTR(C.COD_IDENT_ACO,1,1),'H','GNO','C','CARBONO','L','CARBONO','E','GO','I','INOX'), " +
"PA.NOM_IDENT_ACO,C.LET_PRODC_CORRI, C.PES_CTBIL_CORRI ";
try {
stmt = Conexao.recuperaConexao().createStatement();
rs = stmt.executeQuery( sql );
int i = 0;
while( rs.next())
{
dados.add(new String[]{ String.valueOf(rs.getObject(1)).substring(0,10), rs.getString(2), rs.getString(3),
rs.getString(4), rs.getString(5), rs.getString(5), rs.getString(6),
String.valueOf(rs.getInt(7)),String.valueOf(rs.getInt( ), String.valueOf(rs.getInt(9)),
String.valueOf(rs.getInt(10))});
i++;
}
rs.first();
SimpleTableModel modelo = new SimpleTableModel(dados, colunas);
JTable jTable1 = new JTable(modelo);
jTable1.setAutoResizeMode(jTable1.AUTO_RESIZE_OFF);
jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jScrollPane1000.setViewportView(jTable1);
} catch( Exception sqlex ){
JOptionPane.showMessageDialog(null, "Atenção! Erro no carregamento dos dados! \n" +
"Favor informar a mensagem abaixo ao adminstrador do sistema! \n " +
sqlex.getMessage(), "Erro de acesso a banco de dados", JOptionPane.WARNING_MESSAGE);
return;
} finally {
if( rs != null ) {
try {
rs.close();
}
catch( Exception sqlEx ) {
JOptionPane.showMessageDialog(null, "Atenção! Erro de fechamento do banco de dados! \n" +
"Favor informar a mensagem abaixo ao adminstrador do sistema! \n " +
sqlEx.getMessage(), "Erro de acesso a banco de dados", JOptionPane.WARNING_MESSAGE);
rs = null;
}
if( stmt != null ){
try{
stmt.close();
}
catch( Exception sqlEx ) {
JOptionPane.showMessageDialog(null, "Atenção! Erro de fechamento de conexão! \n" +
"Favor informar a mensagem abaixo ao adminstrador do sistema! \n " +
sqlEx.getMessage(), "Erro de acesso a banco de dados", JOptionPane.WARNING_MESSAGE);
}
stmt = null;
}
}
}
}
|
 |
|
|
Galera,
Tenho a sql abaixo que consulta um banco oracle. Ela roda normalmente em outros aplicativo e não roda na classe java. Utilizo a ponte jdbc:odbc e possuo outras sql´s trabalhando normalmente. A exception acusa "No data found" (não encontra dados no banco sendo que roda normalmente em outro aplicativo).
Alguém pode me ajudar?
Desde já agradeço,
Edilson Cavalieri
sql = "SELECT C.DAT_REFER_PRODC Data, C.COD_IDENT_CORRI Corrida, C.COD_IDENT_ACO Código_do_aço, " +
"DECODE(SUBSTR(C.COD_IDENT_ACO,1,1),'H','GNO','C','CARBONO','L','CARBONO', " +
"'E','GO','I','INOX') Tipo_de_Aço, PA.NOM_IDENT_ACO Nome, " +
"C.LET_PRODC_CORRI Letra, C.PES_CTBIL_CORRI Contábil, " +
"nvl(sum(adic),0) Sucata,SUM(produc)/COUNT(*) Vazado, sum(carga) / count(*) Carga " +
"FROM (SELECT C1.COD_IDENT_CORRI corrida1, AC.QTD_ADIC_INSUM adic " +
"FROM ACECPGER_ACI.ADICOES_CORRIDAS AC, ACECPGER_ACI.CORRIDAS_SN C1, " +
"ACECPGER.INSUMOS I, ACECPGER_ACI.MUDANCAS_LOTES_MATERIAIS MLM " +
"WHERE C1.COD_IDENT_CORRI = AC.COD_IDENT_CORRI " +
"AND AC.SEQ_MUDAN_LOTIN = MLM.SEQ_MUDAN_LOTIN " +
"AND MLM.COD_IDENT_INSUM = I.COD_IDENT_INSUM " +
"AND C1.DAT_REFER_PRODC >= TO_DATE('01062006','DDMMYYYY') " +
"AND C1.DAT_REFER_PRODC < TO_DATE('13062006','DDMMYYYY') " +
"AND C1.COD_EQPMT_PRODC LIKE 'MRP%' " +
"AND C1.COD_IDENT_CORRI NOT LIKE '%R%' " +
"AND MLM.COD_IDENT_INSUM LIKE 'S%') suc, " +
"(SELECT C2.COD_IDENT_CORRI corrida2, sum(CCA.PES_CARGD_CORRI) carga " +
"FROM ACECPGER_ACI.CARGAS_CORRIDA_ACIARIA CCA, ACECPGER_ACI.CORRIDAS_SN C2 " +
"WHERE C2.COD_IDENT_CORRI = CCA.COD_IDENT_CORRI " +
"AND C2.DAT_REFER_PRODC >= TO_DATE('01062006','DDMMYYYY') " +
"AND C2.DAT_REFER_PRODC < TO_DATE('13062006','DDMMYYYY') " +
"AND C2.COD_EQPMT_PRODC LIKE 'MRP%' " +
"AND C2.COD_IDENT_CORRI NOT LIKE '%R%' " +
"GROUP BY C2.COD_IDENT_CORRI ) cargacorrida, " +
"(SELECT C3.COD_IDENT_CORRI corrida3, sum(PC.PES_VAZAD_CORRI) produc " +
"FROM ACECPGER_ACI.PRODUCAO_CORRIDAS_SN PC , ACECPGER_ACI.CORRIDAS_SN C3 " +
"WHERE C3.COD_IDENT_CORRI = PC.COD_IDENT_CORRI " +
"AND C3.DAT_REFER_PRODC >= TO_DATE('01062006','DDMMYYYY') " +
"AND C3.DAT_REFER_PRODC < TO_DATE('13062006','DDMMYYYY') " +
"AND C3.COD_EQPMT_PRODC LIKE 'MRP%' " +
"AND C3.COD_IDENT_CORRI NOT LIKE '%R%' " +
"GROUP BY C3.COD_IDENT_CORRI ) producao, " +
"CORRIDAS C, ACECPGER_ACI.PRODUCAO_CORRIDAS_SN PC, ACECPGER.PR_ACO_SN PA, " +
"ACECPGER_ACI.CARGAS_CORRIDA_ACIARIA CCA " +
"WHERE C.COD_IDENT_CORRI = suc.corrida1(+) " +
"AND C.COD_IDENT_CORRI = cargacorrida.corrida2(+) " +
"AND C.COD_IDENT_CORRI = producao.corrida3(+) " +
"AND C.DAT_REFER_PRODC >= TO_DATE('01062006','DDMMYYYY') " +
"AND C.DAT_REFER_PRODC < TO_DATE('13062006','DDMMYYYY') " +
"AND C.COD_EQPMT_PRODC LIKE 'MRP%' " +
"AND C.COD_IDENT_CORRI = PC.COD_IDENT_CORRI " +
"AND C.COD_IDENT_CORRI = CCA.COD_IDENT_CORRI " +
"AND C.COD_IDENT_CORRI NOT LIKE '%R%' " +
"AND PA.COD_IDENT_ACO = C.COD_IDENT_ACO " +
"GROUP BY C.DAT_REFER_PRODC,C.COD_IDENT_CORRI, C.COD_IDENT_ACO, " +
"DECODE(SUBSTR(C.COD_IDENT_ACO,1,1),'H','GNO','C','CARBONO','L','CARBONO','E','GO','I','INOX'), " +
"PA.NOM_IDENT_ACO,C.LET_PRODC_CORRI, C.PES_CTBIL_CORRI ";
|
 |
|
|
|
|