Jump to content
Fórum Script Brasil

Natarelli

Membros
  • Posts

    10
  • Joined

  • Last visited

About Natarelli

Natarelli's Achievements

0

Reputation

  1. Problema resolvido: 1) Criação do DataTable via código 2) Leitura da planilha excel linha a linha, carregando no DataTable Ficou muito mais lento que no método anterior, mas foi a única forma que consegui para resolver o problema. Código Anterior: cmd_xls = New OleDbDataAdapter("SELECT * FROM [" & NomePlanilha & "$] ", conn) cmd_xls.Fill(dt_xls) E o código ficou assim: dc_xls_Coluna = New DataColumn dc_xls_Coluna.DataType = System.Type.GetType("System.String") dc_xls_Coluna.ColumnName = "ITEM" dc_xls_Coluna.ReadOnly = True dc_xls_Coluna.Unique = False dt_xls.Columns.Add(dc_xls_Coluna) dc_xls_Coluna = New DataColumn dc_xls_Coluna.DataType = System.Type.GetType("System.String") dc_xls_Coluna.ColumnName = "DESCRICAO" dc_xls_Coluna.ReadOnly = True dc_xls_Coluna.Unique = False dt_xls.Columns.Add(dc_xls_Coluna) dc_xls_Coluna = New DataColumn dc_xls_Coluna.DataType = System.Type.GetType("System.String") dc_xls_Coluna.ColumnName = "SERVICO" dc_xls_Coluna.ReadOnly = True dc_xls_Coluna.Unique = False dt_xls.Columns.Add(dc_xls_Coluna) dc_xls_Coluna = New DataColumn dc_xls_Coluna.DataType = System.Type.GetType("System.String") dc_xls_Coluna.ColumnName = "UN" dc_xls_Coluna.ReadOnly = True dc_xls_Coluna.Unique = False dt_xls.Columns.Add(dc_xls_Coluna) dc_xls_Coluna = New DataColumn dc_xls_Coluna.DataType = System.Type.GetType("System.Decimal") dc_xls_Coluna.ColumnName = "VALOR" dc_xls_Coluna.ReadOnly = True dc_xls_Coluna.Unique = False dt_xls.Columns.Add(dc_xls_Coluna) dc_xls_Coluna = New DataColumn dc_xls_Coluna.DataType = System.Type.GetType("System.Decimal") dc_xls_Coluna.ColumnName = "QTD" dc_xls_Coluna.ReadOnly = True dc_xls_Coluna.Unique = False dt_xls.Columns.Add(dc_xls_Coluna) dc_xls_Coluna = New DataColumn dc_xls_Coluna.DataType = System.Type.GetType("System.Decimal") dc_xls_Coluna.ColumnName = "TOTAL" dc_xls_Coluna.ReadOnly = True dc_xls_Coluna.Unique = False dt_xls.Columns.Add(dc_xls_Coluna) For D = 12 To sheet.Range("A65536").End(Excel.XlDirection.xlUp).Row - 2 If Not sheet.Range("A" & D & "").Value Is System.DBNull.Value And sheet.Range("A" & D & "").Value <> Nothing Then dr_xls_Linha = dt_xls.NewRow dr_xls_Linha("ITEM") = sheet.Range("A" & D & "").Value dr_xls_Linha("DESCRICAO") = sheet.Range("B" & D & "").Value dr_xls_Linha("SERVICO") = sheet.Range("C" & D & "").Value dr_xls_Linha("UN") = sheet.Range("D" & D & "").Value If Not sheet.Range("E" & D & "").Value Is System.DBNull.Value And sheet.Range("E" & D & "").Value <> Nothing Then dr_xls_Linha("VALOR") = sheet.Range("E" & D & "").Value dr_xls_Linha("QTD") = sheet.Range("F" & D & "").Value dr_xls_Linha("TOTAL") = sheet.Range("G" & D & "").Value End If dt_xls.Rows.Add(dr_xls_Linha) End If Next D dts_xls.Tables.Add(dt_xls)
  2. Valeu Leandro! Mas consegui resolver meu problema criando uma procedure. CREATE OR REPLACE DIRECTORY PASTA_FOTOS AS 'c:\imagens' CREATE OR REPLACE PROCEDURE insert_foto (p_codigo NUMBER, p_foto VARCHAR2) AS f_foto BFILE; b_foto BLOB; Begin UPDATE imagens SET foto = empty_blob() WHERE codigo = p_codigo RETURN foto into b_foto; f_foto := bfilename('PASTA_FOTOS', p_foto); dbms_lob.fileopen(f_foto, dbms_lob.file_readonly); dbms_lob.loadfromfile(b_foto,f_foto, dbms_lob.getlength(f_foto)); dbms_lob.fileclose(f_foto); COMMIT; EXCEPTION WHEN others THEN dbms_output.put_line('*** ERROR ***'); END;
  3. Mas uma do Excel com o VB.NET, que digasse de passagem, trabalham na mesma plataforma e são totalmente integrados (reza a lenda microsoft!). Amigos, Problema, mais um, é o seguinte: Meu sistema lê uma planilha excel e carrega um dataset. Em algumas máquinas funciona perfeitamente em outras máquinas as colunas que estão definidas como numéricas no excel são carregadas no dataset como null. Fiz o seguinte teste, transformei as colunas do excel que estão definidas como numéricas para texto. Bem, aê o problema se inverte. Nas máquinas que funcionavam com as colunas definidas como numéricas o valor é carregado no dataset como null e nas máquinas que não funcionavam com as colunas definidas como numérica o valor é carregado sem problemas. Deu pra entender?! Exemplo: Col excel numérica DataSetMáquina1 DataSetMáquina2 1,00 1,00 null 2,00 2,00 null Quando transformo a coluna para texto: Col excel texto DataSetMáquina1 DataSetMáquina2 1,00 null 1,00 2,00 null 2,00 Alguém tem alguma idéia do que possa estar ocorrendo? Já verifiquei as configurações da máquina no painel de controle e todas as máquinas estão iguais. Desde já agradeço.
  4. Pessoal, Preciso de ajuda para a inserção (pelo VB.NET 2003) de imagem num campo BLOB do Oracle 9i. Se alguém tiver também algum exemplo desse PL/SQL que eu possa executar diretamente no banco, agradeço desde já. Abs,
  5. Edita o arquivo SETUP.LST e coloca nele o caminho que você quer para cada arquivo.
  6. Após diversas tentativas, consegui resolver o problema substituindo o Command Line do relatório(Data Base Type OLE DB(ADO) e Provider OraOLEDB.Oracle), por um DataSet Tipado XML (Data Base Type ADO.NET(XML). Vai uma dica também para forçar a impressão do header de um sub relatório em cada quebra de página do relatório principal: http://support.businessobjects.com/library...es/c2005103.asp
  7. Consegui resolver o problema editando a planilha via código e inserindo " ' " antes dos valores que estão na coluna que está gerando o problema. Segue o código: Dim ThisApplication As New Excel.ApplicationClass Dim wb As Excel.Workbook = ThisApplication.Workbooks.Open(ARQUIVO) Dim sheet As Excel.Worksheet Dim D As Integer sheet = wb.Worksheets().Item(PLANILHA) 'Lê a planilha até a última coluna que possua valor For D = 12 To sheet.Range("A65536").End(Excel.XlDirection.xlUp).Row If Not sheet.Range("A" & D & "").Value Is System.DBNull.Value Then sheet.Range("A" & D & "").Value = "'" & sheet.Range("A" & D & "").Value Else Exit For End If Next D ThisApplication.DisplayAlerts = False wb.Save() wb.Close() ThisApplication.Quit()
  8. Amigos, Estou com o seguinte problema: Leio uma planilha excel e carrego um datagrid. Ocorre que algumas linhas de uma determinada coluna estão sendo geradas no datagrid como (null) e essas colunas possuem valor no excel. Código para ler a planilha: cmd_xls = New OleDbDataAdapter("SELECT * FROM [" & NomePlanilha & "$]", conn) cmd_xls.Fill(dt_xls) DataGrid1.DataSource = dt_xls Estrutura da planilha: CODIGO DESCRICAO 1 Etapa 10 Grupo 101U Item 102U Item 2 Etapa 20 Grupo 201U Item 202U Item 203U Item O problema está ocorrendo extamente nas linhas em que o CODIGO é somente número. Resultado no datagrid: (null) Etapa (null) Grupo 101U Item 102U Item (null) Etapa (null) Grupo 201U Item 202U Item 203U Item Obs.: Na planilha excel a coluna está com formato Geral, já modifiquei para formato texto e não resolveu o problema. Se alguém puder me ajudar, agradeço desde já.
  9. Kuroi, Não utilizo nenhuma fórmula. O running total field está da seguinte forma: - summarize (sum de uma coluna da tabela) - evaluate (on change of field) - reset (never) Acredito que possa ser alguma DLL que esteja faltando na distribuição, pois nas máquinas em que o C.R. está instalado esse problema não ocorre. Pra constar -> Quando fiz a distribuição da aplicação no cliente tive alguns outros problemas com o C.R., mais especificamente na chamada a dll crdb_adoplus. Consegui resolver esse problema com a inclusão no setup de instalação da minha aplicação dos Merge Modules: VC_User_ATL71_RTL_X86, VC_User_CRT71_RTL_X86, VC_User_MFC71_RTL_X86e VC_User_STL71_RTL_X86. Esses módulos carregam arquivos de depedência dessa DLL que não estão inclusos no Merge Module CrystalReports10_NET_EmbeddedReporting Obrigado, Abs.
  10. Pessoal, Tenho um relatório feito no C.R. 10 que utiliza "running total fields". Ocorre que na minha máquina esse relatório é gerado sem poblemas, contudo na máquina do cliente o relatório apresenta o seguinte erro: "this group section cannot be printed because its condition field is nonexistent or invalid". Se eu retiro os "running total fields" do relatório, o relatório é gerado sem problemas. Se tiverem alguma dica d como resolver esse problema agradeço desde já.
×
×
  • Create New...