public JanelaAgente(Spartacus.Database.Generic p_database, Spartacus.Forms.Window p_pai) : base("Edição de Agente", 300, 200, p_pai) { this.v_database = p_database; this.v_id = new Spartacus.Forms.Textbox(this, "Código"); this.v_id.Disable(); this.Add(this.v_id); this.v_nome = new Spartacus.Forms.Textbox(this, "Nome"); this.Add(this.v_nome); this.v_telefone = new Spartacus.Forms.Textbox(this, "Telefone"); this.Add(this.v_telefone); this.v_buttons = new Spartacus.Forms.Buttons(this); this.v_buttons.AddButton("Salvar", this.ClickSalvar); this.v_buttons.AddButton("Cancelar", this.ClickCancelar); this.Add(this.v_buttons); this.v_insert = new Spartacus.Database.Command(); this.v_insert.v_text = "insert into agentes (nome, telefone) values (#NOME#, #TELEFONE#)"; this.v_insert.AddParameter("NOME", Spartacus.Database.Type.STRING); this.v_insert.AddParameter("TELEFONE", Spartacus.Database.Type.STRING); this.v_update = new Spartacus.Database.Command(); this.v_update.v_text = "update agentes set nome = #NOME#, telefone = #TELEFONE# where id = #ID#"; this.v_update.AddParameter("NOME", Spartacus.Database.Type.STRING); this.v_update.AddParameter("TELEFONE", Spartacus.Database.Type.STRING); this.v_update.AddParameter("ID", Spartacus.Database.Type.INTEGER); }
public JanelaAgentes(Spartacus.Database.Generic p_database, Spartacus.Forms.Window p_pai) : base("Cadastro de Agentes", 600, 400, p_pai) { this.v_database = p_database; this.v_grid = new Spartacus.Forms.Grid(this, 330); this.v_grid.Populate( this.v_database, "select a.id, " + " a.nome, " + " a.telefone " + "from agentes a " + "order by a.id " ); this.Add(this.v_grid); this.v_buttons = new Spartacus.Forms.Buttons(this); this.v_buttons.AddButton("Novo", this.ClickNovo); this.v_buttons.AddButton("Editar", this.ClickEditar); this.v_buttons.AddButton("Remover", this.ClickRemover); this.Add(this.v_buttons); this.v_janelaagente = new JanelaAgente(this.v_database, this); this.v_delete = new Spartacus.Database.Command(); this.v_delete.v_text = "delete from agentes where id = #ID#"; this.v_delete.AddParameter("ID", Spartacus.Database.Type.INTEGER); }
/// <summary> /// Renderiza o Bloco em uma Página. /// </summary> /// <param name="p_font">Fonte.</param> /// <param name="p_posx">Posição X.</param> /// <param name="p_posy">Posição Y.</param> /// <param name="p_rightmargin">Margem direita.</param> /// <param name="p_pdf">Objeto PDF.</param> /// <param name="p_page">Página onde o Bloco será renderizado.</param> public void Render(Spartacus.Reporting.Font p_font, double p_posx, double p_posy, double p_rightmargin, PDFjet.NET.PDF p_pdf, PDFjet.NET.Page p_page) { PDFjet.NET.Line v_line; int k; // renderizando objetos do bloco for (k = 0; k < this.v_objects.Count; k++) { switch (((Spartacus.Reporting.Object)this.v_objects [k]).v_type) { case Spartacus.Reporting.ObjectType.IMAGE: this.RenderImage((Spartacus.Reporting.Object)this.v_objects [k], p_posx, p_posy, p_rightmargin, p_pdf, p_page); break; case Spartacus.Reporting.ObjectType.PAGENUMBER: if (((Spartacus.Reporting.Object)this.v_objects [k]).v_font != null) this.RenderPageNumber((Spartacus.Reporting.Object)this.v_objects [k], p_posx, p_posy, p_rightmargin, ((Spartacus.Reporting.Object)this.v_objects [k]).v_font, p_pdf, p_page); else this.RenderPageNumber((Spartacus.Reporting.Object)this.v_objects [k], p_posx, p_posy, p_rightmargin, p_font, p_pdf, p_page); break; case Spartacus.Reporting.ObjectType.TEXT: if (((Spartacus.Reporting.Object)this.v_objects [k]).v_font != null) this.RenderText((Spartacus.Reporting.Object)this.v_objects [k], p_posx, p_posy, p_rightmargin, ((Spartacus.Reporting.Object)this.v_objects [k]).v_font, p_pdf, p_page); else this.RenderText((Spartacus.Reporting.Object)this.v_objects [k], p_posx, p_posy, p_rightmargin, p_font, p_pdf, p_page); break; default: break; } } // borda superior if (this.v_border.v_top) { v_line = new PDFjet.NET.Line(p_posx, p_posy, p_page.GetWidth() - p_rightmargin, p_posy); v_line.DrawOn(p_page); } // borda inferior if (this.v_border.v_bottom) { v_line = new PDFjet.NET.Line(p_posx, p_posy + this.v_height, p_page.GetWidth() - p_rightmargin, p_posy + this.v_height); v_line.DrawOn(p_page); } // borda esquerda if (this.v_border.v_left) { v_line = new PDFjet.NET.Line(p_posx, p_posy, p_posx, p_posy + this.v_height); v_line.DrawOn(p_page); } // borda direita if (this.v_border.v_right) { v_line = new PDFjet.NET.Line(p_page.GetWidth() - p_rightmargin, p_posy, p_page.GetWidth() - p_rightmargin, p_posy + this.v_height); v_line.DrawOn(p_page); } }
public JanelaPrincipal(Spartacus.Database.Generic p_database) : base("Finanças Pessoais", 800, 600) { this.v_database = p_database; Spartacus.Forms.Menugroup v_group, v_group2; this.v_menu = new Spartacus.Forms.Menu(this); v_group = this.v_menu.AddGroup("Cadastro"); this.v_menu.AddItem(v_group, "Agentes", this.MenuAgentes); this.Add(this.v_menu); v_group = this.v_menu.AddGroup("Relatórios"); v_group2 = this.v_menu.AddGroup(v_group, "Listagem de Agentes"); this.v_menu.AddItem(v_group2, "Excel", this.MenuAgentesExcel); this.v_menu.AddItem(v_group2, "PDF", this.MenuAgentesPDF); v_group2 = this.v_menu.AddGroup(v_group, "Listagem de Movimentação"); this.v_menu.AddItem(v_group2, "Excel", this.MenuMovimentacaoExcel); this.v_menu.AddItem(v_group2, "PDF", this.MenuMovimentacaoPDF); this.v_grid = new Spartacus.Forms.Grid(this, 480); this.v_grid.Populate( this.v_database, "select m.id, " + " m.data, " + " a.nome, " + " m.descricao, " + " m.debito, " + " m.credito, " + " m.saldo " + "from movimentos m " + "inner join agentes a " + "on a.id = m.idagente " + "order by m.id desc " ); this.Add(this.v_grid); this.v_buttons = new Spartacus.Forms.Buttons(this); this.v_buttons.AddButton("Débito", this.ClickDebito); this.v_buttons.AddButton("Crédito", this.ClickCredito); this.v_buttons.AddButton("Estorno", this.ClickEstorno); this.v_buttons.AddButton("Atualizar", this.ClickAtualizar); this.Add(this.v_buttons); this.v_janelaagentes = new JanelaAgentes(this.v_database, this); this.v_janeladebito = new JanelaDebito(this.v_database, this); this.v_janelacredito = new JanelaCredito(this.v_database, this); this.v_cmd = new Spartacus.Database.Command(); this.v_cmd.v_text = "insert into movimentos (idagente, data, debito, credito, saldo, descricao) values (#IDAGENTE#, #DATA#, #DEBITO#, #CREDITO#, #SALDO#, #DESCRICAO#)"; this.v_cmd.AddParameter("IDAGENTE", Spartacus.Database.Type.INTEGER); this.v_cmd.AddParameter("DATA", Spartacus.Database.Type.INTEGER); this.v_cmd.AddParameter("DEBITO", Spartacus.Database.Type.REAL); this.v_cmd.SetLocale("DEBITO", Spartacus.Database.Locale.EUROPEAN); this.v_cmd.AddParameter("CREDITO", Spartacus.Database.Type.REAL); this.v_cmd.SetLocale("CREDITO", Spartacus.Database.Locale.EUROPEAN); this.v_cmd.AddParameter("SALDO", Spartacus.Database.Type.REAL); this.v_cmd.SetLocale("SALDO", Spartacus.Database.Locale.EUROPEAN); this.v_cmd.AddParameter("DESCRICAO", Spartacus.Database.Type.STRING); }
/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Utils.FileArray"/>. /// </summary> /// <param name="p_filenames">Lista de nomes de arquivos ou diretórios.</param> /// <param name="p_filetype">Tipo dos nomes, se são arquivos ou diretórios.</param> public FileArray(System.Collections.ArrayList p_filenames, Spartacus.Utils.FileType p_filetype) { Spartacus.Utils.File v_file; int k; this.v_files = new System.Collections.ArrayList(); k = 1; foreach (string v_filename in p_filenames) { v_file = new Spartacus.Utils.File(k, 1, p_filetype, v_filename); this.v_files.Add(v_file); k++; } }
/// <summary> /// Exporta as infromações da Query passada por parâmetro, para um arquivo XLSX /// </summary> /// <returns>The tabela para XLS.</returns> /// <param name="Caminho">Caminho em que será salvo o arquivo, completo, já com a extenção e o nome.</param> /// <param name="QuerySQL">Comando que será utilizado para gerar a tebela que será exportada.</param> public static string ExportarTabelaParaXLSX(String Caminho, Spartacus.Database.Command QuerySQL) { Spartacus.Database.Generic database; try { database = new Spartacus.Database.Sqlite(DB.GetStrConection()); database.TransferToFile(QuerySQL.GetUpdatedText(), Caminho); return "Relatório gerado com sucesso!"; } catch (Spartacus.Database.Exception ex) { return String.Format("Ocorreu um erro ao gerar o relatório: {0}", ex.v_message); } }
public JanelaDebito(Spartacus.Database.Generic p_database, Spartacus.Forms.Window p_pai) : base("Novo Débito", 600, 300, p_pai) { this.v_database = p_database; this.v_agente = new Spartacus.Forms.Lookup(this, "Agente", 40, 60); this.v_agente.Populate( this.v_database, "select a.id, " + " a.nome " + "from agentes a " + "order by a.id " ); this.Add(this.v_agente); this.v_valor = new Spartacus.Forms.Textbox(this, "Valor"); this.Add(this.v_valor); this.v_descricao = new Spartacus.Forms.Memobox(this, "Descrição", 150); this.Add(this.v_descricao); this.v_buttons = new Spartacus.Forms.Buttons(this); this.v_buttons.AddButton("Salvar", this.ClickSalvar); this.v_buttons.AddButton("Cancelar", this.ClickCancelar); this.Add(this.v_buttons); this.v_cmd = new Spartacus.Database.Command(); this.v_cmd.v_text = "insert into movimentos (idagente, data, debito, credito, saldo, descricao) values (#IDAGENTE#, #DATA#, #DEBITO#, #CREDITO#, #SALDO#, #DESCRICAO#)"; this.v_cmd.AddParameter("IDAGENTE", Spartacus.Database.Type.INTEGER); this.v_cmd.AddParameter("DATA", Spartacus.Database.Type.INTEGER); this.v_cmd.AddParameter("DEBITO", Spartacus.Database.Type.REAL); this.v_cmd.SetLocale("DEBITO", Spartacus.Database.Locale.EUROPEAN); this.v_cmd.AddParameter("CREDITO", Spartacus.Database.Type.REAL); this.v_cmd.SetLocale("CREDITO", Spartacus.Database.Locale.EUROPEAN); this.v_cmd.AddParameter("SALDO", Spartacus.Database.Type.REAL); this.v_cmd.SetLocale("SALDO", Spartacus.Database.Locale.EUROPEAN); this.v_cmd.AddParameter("DESCRICAO", Spartacus.Database.Type.STRING); }
/// <summary> /// Inicializa uma instância da classe <see cref="Spartacus.Database.Parameter"/> . /// </summary> /// <param name='p_name'> /// Nome do parâmetro dentro do Comando SQL. /// </param> /// <param name='p_type'> /// Tipo de dados do parâmetro. /// </param> public Parameter(String p_name, Spartacus.Database.Type p_type) { this.v_name = p_name.ToUpper(); this.v_type = p_type; this.v_value = ""; this.v_null = true; this.v_description = ""; this.v_lookup = ""; }
/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Reporting.Report"/>. /// </summary> /// <param name="p_reportid">Código do Relatório.</param> /// <param name="p_filename">Nome do arquivo XML.</param> /// <param name="p_database">Objeto para conexão com o banco de dados.</param> /// <param name="p_calculate_groups">Se o gerador de relatórios deve calcular os valores agrupados ou não.</param> public Report(int p_reportid, string p_filename, Spartacus.Database.Generic p_database, bool p_calculate_groups) { this.v_reportid = p_reportid; this.v_header = new Spartacus.Reporting.Block(); this.v_footer = new Spartacus.Reporting.Block(); this.v_fields = new System.Collections.ArrayList(); this.v_groups = new System.Collections.ArrayList(); this.v_database = p_database; this.v_tabletemp = null; this.v_table = null; this.v_rendertable = null; this.v_calculate_groups = p_calculate_groups; this.v_progress = new Spartacus.Utils.ProgressEventClass(); this.v_progress.FireEvent("Spartacus.Reporting.Report", "ExportPDF", 0.0, "Lendo XML do relatorio " + this.v_reportid.ToString()); try { this.ReadXml(p_filename); } catch (Spartacus.Reporting.Exception e) { throw e; } }
/// <summary> /// Transfere dados de um arquivo Excel para o banco de dados atual. /// Conexão com o banco atual precisa estar aberta. /// Não pára a execução se der um problema num comando de inserção específico. /// </summary> /// <returns>Número de linhas transferidas.</returns> /// <param name="p_filename">Nome do arquivo de origem.</param> /// <param name="p_newtable">Nome da nova tabela a ser criada no banco de dados.</param> /// <param name="p_progress">Evento de progresso.</param> /// <param name="p_error">Evento de erro.</param> public abstract uint TransferFromFile(string p_filename, string p_newtable, Spartacus.Utils.ProgressEventClass p_progress, Spartacus.Utils.ErrorEventClass p_error);
/// <summary> /// Transfere dados de um arquivo Excel para o banco de dados atual. /// Conexão com o banco atual precisa estar aberta. /// Não pára a execução se der um problema num comando de inserção específico. /// </summary> /// <returns>Número de linhas transferidas.</returns> /// <param name="p_filename">Nome do arquivo de origem.</param> /// <param name="p_separator">Separador de campos do arquivo CSV.</param> /// <param name="p_delimitator">Delimitador de campos do arquivo CSV.</param> /// <param name="p_header">Se deve considerar a primeira linha como cabeçalho ou não.</param> /// <param name="p_encoding">Codificação para leitura do arquivo CSV.</param> /// <param name="p_newtable">Nome da nova tabela a ser criada no banco de dados.</param> /// <param name="p_progress">Evento de progresso.</param> /// <param name="p_error">Evento de erro.</param> public abstract uint TransferFromFile(string p_filename, char p_separator, char p_delimitator, bool p_header, System.Text.Encoding p_encoding, string p_newtable, Spartacus.Utils.ProgressEventClass p_progress, Spartacus.Utils.ErrorEventClass p_error);
/// <summary> /// Transfere dados de um arquivo Excel para o banco de dados atual. /// Conexão com o banco atual precisa estar aberta. /// Não pára a execução se der um problema num comando de inserção específico. /// </summary> /// <returns>Número de linhas transferidas.</returns> /// <param name="p_filename">Nome do arquivo de origem.</param> /// <param name="p_insert">Comando de inserção para inserir cada linha no banco de dados atual.</param> /// <param name="p_progress">Evento de progresso.</param> /// <param name="p_error">Evento de erro.</param> public abstract uint TransferFromFile(string p_filename, Spartacus.Database.Command p_insert, Spartacus.Utils.ProgressEventClass p_progress, Spartacus.Utils.ErrorEventClass p_error);
/// <summary> /// Transfere dados de um arquivo Excel para o banco de dados atual. /// Conexão com o banco atual precisa estar aberta. /// Não pára a execução se der um problema num comando de inserção específico. /// </summary> /// <returns>Número de linhas transferidas.</returns> /// <param name="p_filename">Nome do arquivo de origem.</param> /// <param name="p_separator">Separador de campos do arquivo CSV.</param> /// <param name="p_header">Se deve considerar a primeira linha como cabeçalho ou não.</param> /// <param name="p_encoding">Codificação para leitura do arquivo CSV.</param> /// <param name="p_insert">Comando de inserção para inserir cada linha no banco de dados atual.</param> /// <param name="p_progress">Evento de progresso.</param> /// <param name="p_error">Evento de erro.</param> public abstract uint TransferFromFile(string p_filename, char p_separator, bool p_header, System.Text.Encoding p_encoding, Spartacus.Database.Command p_insert, Spartacus.Utils.ProgressEventClass p_progress, Spartacus.Utils.ErrorEventClass p_error);
/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Utils.File"/>. /// </summary> /// <param name='p_type'> /// Indica se é um arquivo ou um diretório. /// </param> /// <param name='p_completename'> /// Nome completo, absoluto ou relativo, do arquivo ou diretório atual. /// </param> /// <param name='p_encryptedname'> /// Se o nome do arquivo está criptografado ou não. /// </param> /// <param name='p_separator'> /// Separador de diretórios do caminho completo do arquivo. /// </param> public File(Spartacus.Utils.FileType p_type, string p_completename, bool p_encryptedname, Spartacus.Utils.PathSeparator p_separator) { Spartacus.Utils.Cryptor v_cryptor; string v_completename; if (p_encryptedname) { try { v_cryptor = new Spartacus.Utils.Cryptor("spartacus"); v_completename = v_cryptor.Decrypt(p_completename); } catch (System.Exception) { v_completename = p_completename; } } else v_completename = p_completename; this.v_filetype = p_type; this.v_pathseparator = p_separator; this.v_name = this.GetBaseName(v_completename); this.v_extension = this.GetExtension(v_completename); this.v_path = this.GetPath(v_completename); this.v_size = -1; this.v_encoding = System.Text.Encoding.GetEncoding("utf-8"); this.v_protected = false; this.v_hidden = this.GetHidden(); }
/// <summary> /// Transfere dados de um arquivo Excel para o banco de dados atual. /// Conexão com o banco atual precisa estar aberta. /// Não pára a execução se der um problema num comando de inserção específico. /// </summary> /// <returns>Número de linhas transferidas.</returns> /// <param name="p_filename">Nome do arquivo de origem.</param> /// <param name="p_separator">Separador de campos do arquivo CSV.</param> /// <param name="p_delimitator">Delimitador de campos do arquivo CSV.</param> /// <param name="p_header">Se deve considerar a primeira linha como cabeçalho ou não.</param> /// <param name="p_encoding">Codificação para leitura do arquivo CSV.</param> /// <param name="p_newtable">Nome da nova tabela a ser criada no banco de dados.</param> /// <param name="p_progress">Evento de progresso.</param> /// <param name="p_error">Evento de erro.</param> public override uint TransferFromFile(string p_filename, char p_separator, char p_delimitator, bool p_header, System.Text.Encoding p_encoding, string p_newtable, Spartacus.Utils.ProgressEventClass p_progress, Spartacus.Utils.ErrorEventClass p_error) { Spartacus.Database.Command v_cmd; Spartacus.Utils.Excel v_excel = null; uint v_transfered = 0; string v_createtable; string v_insert; try { v_excel = new Spartacus.Utils.Excel(); v_excel.Import(p_filename, p_separator, p_delimitator, p_header, p_encoding); v_createtable = "create table " + p_newtable + " ("; for (int k = 0; k < v_excel.v_set.Tables[0].Columns.Count; k++) { if (k < v_excel.v_set.Tables[0].Columns.Count-1) v_createtable += v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower() + " varchar(4000),"; else v_createtable += v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower() + " varchar(4000))"; } try { this.Execute(v_createtable); } catch (Spartacus.Database.Exception e) { p_error.FireEvent(v_createtable + "\n" + e.v_message); } v_cmd = new Spartacus.Database.Command(); v_cmd.v_text = "insert into " + p_newtable + " values ("; for (int k = 0; k < v_excel.v_set.Tables[0].Columns.Count; k++) { if (k < v_excel.v_set.Tables[0].Columns.Count-1) v_cmd.v_text += "#" + v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower() + "#,"; else v_cmd.v_text += "#" + v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower() + "#)"; v_cmd.AddParameter(v_excel.v_set.Tables[0].Columns[k].ColumnName.ToLower(), Spartacus.Database.Type.QUOTEDSTRING); } foreach (System.Data.DataRow r in v_excel.v_set.Tables[0].Rows) { foreach (System.Data.DataColumn c in v_excel.v_set.Tables[0].Columns) v_cmd.SetValue(c.ColumnName, r[c].ToString()); v_insert = v_cmd.GetUpdatedText(); try { this.Execute(v_insert); v_transfered++; p_progress.FireEvent(v_transfered); } catch (Spartacus.Database.Exception e) { p_error.FireEvent(v_insert + "\n" + e.v_message); } } return v_transfered; } catch (Spartacus.Utils.Exception e) { throw new Spartacus.Database.Exception(e); } catch (Spartacus.Database.Exception e) { throw e; } finally { if (v_excel != null) { v_excel.Clear(); v_excel = null; } } }
/// <summary> /// Lê campos de um cabeçalho de grupo. /// </summary> /// <param name="p_reader">Objeto XML.</param> /// <param name="p_group">Grupo do relatório.</param> private void ReadGroupHeaderFields(System.Xml.XmlReader p_reader, Spartacus.Reporting.Group p_group) { System.Xml.XmlReader v_item; while (p_reader.Read()) { if (p_reader.IsStartElement() && p_reader.Name == "headerfield") { v_item = p_reader.ReadSubtree(); this.ReadGroupHeaderField(v_item, p_group); v_item.Close(); } } }
/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Utils.File"/>. /// </summary> /// <param name='p_type'> /// Indica se é um arquivo ou um diretório. /// </param> /// <param name='p_completename'> /// Nome completo, absoluto ou relativo, do arquivo ou diretório atual. /// </param> /// <param name='p_encoding'> /// Codificação do arquivo. /// </param> public File(Spartacus.Utils.FileType p_type, string p_completename, System.Text.Encoding p_encoding) { this.v_filetype = p_type; this.v_pathseparator = Spartacus.Utils.PathSeparator.SLASH; this.v_name = this.GetBaseName(p_completename); this.v_extension = this.GetExtension(p_completename); this.v_path = this.GetPath(p_completename); this.v_size = -1; this.v_encoding = p_encoding; this.v_protected = false; this.v_hidden = this.GetHidden(); }
/// <summary> /// Lê fonte. /// </summary> /// <param name="p_font">Objeto fonte, onde vai guardar as informações.</param> /// <param name="p_reader">Objeto XML.</param> private void ReadFont(Spartacus.Reporting.Font p_font, System.Xml.XmlReader p_reader) { while (p_reader.Read()) { if (p_reader.IsStartElement()) { switch (p_reader.Name) { case "family": p_font.SetFamily(p_reader.ReadString()); break; case "size": p_font.SetSize(p_reader.ReadString()); break; case "bold": if (p_reader.ReadString() == "TRUE") p_font.v_bold = true; else p_font.v_bold = false; break; case "italic": if (p_reader.ReadString() == "TRUE") p_font.v_italic = true; else p_font.v_italic = false; break; default: break; } } } }
/// <summary> /// Adiciona um relatório associado a um nome de arquivo PDF de saída. /// </summary> /// <param name="p_report">Relatório.</param> /// <param name="p_filename">Nome do arquivo PDF de saída.</param> public void Add(Spartacus.Reporting.Report p_report, string p_filename) { this.v_reports.Add(p_report); this.v_filenames.Add(p_filename); }
/// <summary> /// Adiciona um relatório. /// </summary> /// <param name="p_report">Relatório.</param> public void Add(Spartacus.Reporting.Report p_report) { this.v_reports.Add(p_report); }
/// <summary> /// Transfere dados do banco de dados atual para um banco de dados de destino. /// Conexão com o banco de destino precisa estar aberta. /// </summary> /// <returns>Número de linhas transferidas.</returns> /// <param name="p_query">Consulta SQL para buscar os dados no banco atual.</param> /// <param name="p_insert">Comando de inserção para inserir cada linha no banco de destino.</param> /// <param name="p_destdatabase">Conexão com o banco de destino.</param> public override uint Transfer(string p_query, Spartacus.Database.Command p_insert, Spartacus.Database.Generic p_destdatabase) { uint v_transfered = 0; if (this.v_con == null) { try { this.v_con = new MySql.Data.MySqlClient.MySqlConnection(this.v_connectionstring); this.v_con.Open(); this.v_cmd = new MySql.Data.MySqlClient.MySqlCommand(p_query, this.v_con); this.v_reader = this.v_cmd.ExecuteReader(); while (v_reader.Read()) { for (int i = 0; i < v_reader.FieldCount; i++) p_insert.SetValue(this.FixColumnName(v_reader.GetName(i)).ToLower(), v_reader[i].ToString()); p_destdatabase.Execute(p_insert.GetUpdatedText()); v_transfered++; } return v_transfered; } catch (MySql.Data.MySqlClient.MySqlException e) { throw new Spartacus.Database.Exception(e); } finally { if (this.v_reader != null) { this.v_reader.Close(); this.v_reader = null; } if (this.v_cmd != null) { this.v_cmd.Dispose(); this.v_cmd = null; } if (this.v_con != null) { this.v_con.Close(); this.v_con = null; } } } else { try { this.v_cmd.CommandText = p_query; this.v_reader = this.v_cmd.ExecuteReader(); while (v_reader.Read()) { for (int i = 0; i < v_reader.FieldCount; i++) p_insert.SetValue(this.FixColumnName(v_reader.GetName(i)).ToLower(), v_reader[i].ToString()); p_destdatabase.Execute(p_insert.GetUpdatedText()); v_transfered++; } return v_transfered; } catch (MySql.Data.MySqlClient.MySqlException e) { throw new Spartacus.Database.Exception(e); } finally { if (this.v_reader != null) { this.v_reader.Close(); this.v_reader = null; } } } }
/// <summary> /// Realiza uma consulta no banco de dados, armazenando os dados de retorno em um <see cref="System.Data.DataTable"/>. /// </summary> /// <param name='p_sql'> /// Código SQL a ser consultado no banco de dados. /// </param> /// <param name='p_tablename'> /// Nome virtual da tabela onde deve ser armazenado o resultado, para fins de cache. /// </param> /// <param name='p_progress'>Evento de progresso da execução da consulta.</param> /// <returns>Retorna uma <see cref="System.Data.DataTable"/> com os dados de retorno da consulta.</returns> public override System.Data.DataTable Query(string p_sql, string p_tablename, Spartacus.Utils.ProgressEventClass p_progress) { System.Data.DataTable v_table = null; System.Data.DataRow v_row; uint v_counter = 0; p_progress.FireEvent(v_counter); if (this.v_con == null) { try { this.v_con = new MySql.Data.MySqlClient.MySqlConnection(this.v_connectionstring); this.v_con.Open(); this.v_cmd = new MySql.Data.MySqlClient.MySqlCommand(p_sql, this.v_con); this.v_reader = this.v_cmd.ExecuteReader(); v_table = new System.Data.DataTable(p_tablename); for (int i = 0; i < v_reader.FieldCount; i++) v_table.Columns.Add(this.FixColumnName(this.v_reader.GetName(i)), typeof(string)); while (this.v_reader.Read()) { v_row = v_table.NewRow(); for (int i = 0; i < this.v_reader.FieldCount; i++) v_row[i] = this.v_reader[i].ToString(); v_table.Rows.Add(v_row); v_counter++; p_progress.FireEvent(v_counter); } return v_table; } catch (MySql.Data.MySqlClient.MySqlException e) { throw new Spartacus.Database.Exception(e); } finally { if (this.v_reader != null) { this.v_reader.Close(); this.v_reader = null; } if (this.v_cmd != null) { this.v_cmd.Dispose(); this.v_cmd = null; } if (this.v_con != null) { this.v_con.Close(); this.v_con = null; } } } else { try { this.v_cmd.CommandText = p_sql; this.v_reader = this.v_cmd.ExecuteReader(); v_table = new System.Data.DataTable(p_tablename); for (int i = 0; i < v_reader.FieldCount; i++) v_table.Columns.Add(this.FixColumnName(this.v_reader.GetName(i)), typeof(string)); while (this.v_reader.Read()) { v_row = v_table.NewRow(); for (int i = 0; i < this.v_reader.FieldCount; i++) v_row[i] = this.v_reader[i].ToString(); v_table.Rows.Add(v_row); v_counter++; p_progress.FireEvent(v_counter); } return v_table; } catch (MySql.Data.MySqlClient.MySqlException e) { throw new Spartacus.Database.Exception(e); } finally { if (this.v_reader != null) { this.v_reader.Close(); this.v_reader = null; } } } }
/// <summary> /// Lê um único campo de um cabeçalho de grupo. /// </summary> /// <param name="p_reader">Objeto XML.</param> /// <param name="p_group">Grupo do relatório.</param> private void ReadGroupHeaderField(System.Xml.XmlReader p_reader, Spartacus.Reporting.Group p_group) { Spartacus.Reporting.Field v_field; System.Xml.XmlReader v_item; v_field = new Spartacus.Reporting.Field(); while (p_reader.Read()) { if (p_reader.IsStartElement()) { switch (p_reader.Name) { case "title": v_field.v_title = p_reader.ReadString(); break; case "column": v_field.v_column = p_reader.ReadString(); break; case "align": switch (p_reader.ReadString()) { case "LEFT": v_field.v_align = Spartacus.Reporting.FieldAlignment.LEFT; break; case "RIGHT": v_field.v_align = Spartacus.Reporting.FieldAlignment.RIGHT; break; case "CENTER": v_field.v_align = Spartacus.Reporting.FieldAlignment.CENTER; break; default: break; } break; case "fill": v_field.v_fill = double.Parse(p_reader.ReadString()); break; case "type": v_field.SetType(p_reader.ReadString()); break; case "groupedvalue": if (p_reader.ReadString() == "FALSE") v_field.v_groupedvalue = false; else v_field.v_groupedvalue = true; break; case "row": v_field.v_row = System.Convert.ToInt32(p_reader.ReadString()); break; case "format": v_field.v_format = p_reader.ReadString(); break; case "border": v_field.v_border = new Spartacus.Reporting.Border(p_reader.ReadString()); break; case "blank": v_field.v_blank = p_reader.ReadString(); break; case "font": v_field.v_font = new Spartacus.Reporting.Font(); v_item = p_reader.ReadSubtree(); this.ReadFont(v_field.v_font, v_item); v_item.Close(); break; default: break; } } } if ((v_field.v_row + 1) > p_group.v_numrowsheader) p_group.v_numrowsheader = v_field.v_row + 1; p_group.v_headerfields.Add(v_field); }
/// <summary> /// Realiza uma consulta no banco de dados, armazenando os dados de retorno em um <see creg="System.Data.DataTable"/>. /// </summary> /// <param name='p_sql'> /// Código SQL a ser consultado no banco de dados. /// </param> /// <param name='p_tablename'> /// Nome virtual da tabela onde deve ser armazenado o resultado, para fins de cache. /// </param> /// <param name='p_progress'> /// Evento de progresso da execução da consulta. /// </param> public abstract System.Data.DataTable Query(string p_sql, string p_tablename, Spartacus.Utils.ProgressEventClass p_progress);
/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Utils.File"/>. /// </summary> /// <param name='p_id'> /// Identificador único do arquivo ou diretório (se aplicável). /// </param> /// <param name='p_parentid'> /// Identificador do diretório pai do arquivo ou diretório (se aplicável). /// </param> /// <param name='p_type'> /// Indica se é um arquivo ou um diretório. /// </param> /// <param name='p_completename'> /// Nome completo, absoluto ou relativo, do arquivo ou diretório atual. /// </param> /// <param name='p_lastwritedate'> /// Data da última modificação do arquivo ou diretório. /// </param> /// <param name='p_size'> /// Tamanho do arquivo. /// </param> public File(int p_id, int p_parentid, Spartacus.Utils.FileType p_type, string p_completename, System.DateTime p_lastwritedate, long p_size) { this.v_id = p_id; this.v_parentid = p_parentid; this.v_filetype = p_type; this.v_pathseparator = Spartacus.Utils.PathSeparator.SLASH; this.v_name = this.GetBaseName(p_completename); this.v_extension = this.GetExtension(p_completename); this.v_path = this.GetPath(p_completename); this.v_lastwritedate = p_lastwritedate; this.v_size = p_size; this.v_encoding = System.Text.Encoding.GetEncoding("utf-8"); this.v_protected = false; this.v_hidden = this.GetHidden(); }
/// <summary> /// Transfere dados do banco de dados atual para um banco de dados de destino. /// Conexão com o banco de destino precisa estar aberta. /// Não pára a execução se der um problema num comando de inserção específico. /// </summary> /// <returns>Número de linhas transferidas.</returns> /// <param name="p_query">Consulta SQL para buscar os dados no banco atual.</param> /// <param name="p_insert">Comando de inserção para inserir cada linha no banco de destino.</param> /// <param name="p_destdatabase">Conexão com o banco de destino.</param> /// <param name="p_log">Log de inserção.</param> public abstract uint Transfer(string p_query, Spartacus.Database.Command p_insert, Spartacus.Database.Generic p_destdatabase, out string p_log);
/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Utils.File"/>. /// </summary> /// <param name='p_type'> /// Indica se é um arquivo ou um diretório. /// </param> /// <param name='p_completename'> /// Nome completo, absoluto ou relativo, do arquivo ou diretório atual. /// </param> /// <param name='p_separator'> /// Separador de diretórios do caminho completo do arquivo. /// </param> /// <param name='p_lastwritedate'> /// Data da última modificação do arquivo ou diretório. /// </param> /// <param name='p_size'> /// Tamanho do arquivo. /// </param> /// <param name='p_encoding'> /// Codificação do arquivo. /// </param> public File(Spartacus.Utils.FileType p_type, string p_completename, Spartacus.Utils.PathSeparator p_separator, System.DateTime p_lastwritedate, long p_size, System.Text.Encoding p_encoding) { this.v_filetype = p_type; this.v_pathseparator = p_separator; this.v_name = this.GetBaseName(p_completename); this.v_extension = this.GetExtension(p_completename); this.v_path = this.GetPath(p_completename); this.v_lastwritedate = p_lastwritedate; this.v_size = p_size; this.v_encoding = p_encoding; this.v_protected = false; this.v_hidden = this.GetHidden(); }
/// <summary> /// Transfere dados do banco de dados atual para um banco de dados de destino. /// Conexão com o banco de destino precisa estar aberta. /// Não pára a execução se der um problema num comando de inserção específico. /// </summary> /// <returns>Número de linhas transferidas.</returns> /// <param name="p_query">Consulta SQL para buscar os dados no banco atual.</param> /// <param name="p_table">Nome da tabela de destino.</param> /// <param name="p_insert">Comando de inserção para inserir cada linha no banco de destino.</param> /// <param name="p_destdatabase">Conexão com o banco de destino.</param> /// <param name="p_log">Log de inserção.</param> /// <param name='p_startrow'>Número da linha inicial.</param> /// <param name='p_endrow'>Número da linha final.</param> /// <param name='p_hasmoredata'>Indica se ainda há mais dados a serem lidos.</param> public abstract uint Transfer(string p_query, string p_table, Spartacus.Database.Command p_insert, Spartacus.Database.Generic p_destdatabase, ref string p_log, uint p_startrow, uint p_endrow, out bool p_hasmoredata);
/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Utils.File"/>. /// </summary> /// <param name='p_type'> /// Indica se é um arquivo ou um diretório. /// </param> /// <param name='p_completename'> /// Nome completo, absoluto ou relativo, do arquivo ou diretório atual. /// </param> /// <param name='p_encryptedname'> /// Se o nome do arquivo está criptografado ou não. /// </param> /// <param name='p_lastwritedate'> /// Data da última modificação do arquivo ou diretório. /// </param> /// <param name='p_size'> /// Tamanho do arquivo. /// </param> /// <param name='p_encoding'> /// Codificação do arquivo. /// </param> public File(Spartacus.Utils.FileType p_type, string p_completename, bool p_encryptedname, System.DateTime p_lastwritedate, long p_size, System.Text.Encoding p_encoding) { Spartacus.Utils.Cryptor v_cryptor; string v_completename; if (p_encryptedname) { try { v_cryptor = new Spartacus.Utils.Cryptor("spartacus"); v_completename = v_cryptor.Decrypt(p_completename); } catch (System.Exception) { v_completename = p_completename; } } else v_completename = p_completename; this.v_filetype = p_type; this.v_pathseparator = Spartacus.Utils.PathSeparator.SLASH; this.v_name = this.GetBaseName(v_completename); this.v_extension = this.GetExtension(v_completename); this.v_path = this.GetPath(v_completename); this.v_lastwritedate = p_lastwritedate; this.v_size = p_size; this.v_encoding = p_encoding; this.v_protected = false; this.v_hidden = this.GetHidden(); }
/// <summary> /// Transfere dados do banco de dados atual para um banco de dados de destino. /// Conexão com o banco de destino precisa estar aberta. /// Não pára a execução se der um problema num comando de inserção específico. /// </summary> /// <returns>Número de linhas transferidas.</returns> /// <param name="p_query">Consulta SQL para buscar os dados no banco atual.</param> /// <param name="p_insert">Comando de inserção para inserir cada linha no banco de destino.</param> /// <param name="p_destdatabase">Conexão com o banco de destino.</param> /// <param name="p_progress">Evento de progresso.</param> /// <param name="p_error">Evento de erro.</param> public abstract uint Transfer(string p_query, Spartacus.Database.Command p_insert, Spartacus.Database.Generic p_destdatabase, Spartacus.Utils.ProgressEventClass p_progress, Spartacus.Utils.ErrorEventClass p_error);