Pesquisar na Comunidade
Mostrando resultados para as tags ''mvc''.
Encontrado 13 registros
-
boa tarde estou enfrentando erro neste projeto MVC que fiz ide alega que ouve estouro de pilha só que não estou achando o erro e se tiver algum outro erro no código vocês poderem informar agradeceria meus códigos do meu projeto: código main: import tkinter from controller import CadastroController, LoginController, RegistroController, VendasController from model import LoginModel def main(): login_model = LoginModel() login_controller = LoginController(login_model) cadastro_controller = CadastroController() vendas_controller = VendasController() registro_controller = RegistroController() tkinter.mainloop() if __name__ == "__main__": main() codigo view : import tkinter as tk from tkinter import messagebox import tkinter as tk class TelaLoginView(tk.Tk): def __init__(self, controller): super().__init__() # Chamar o construtor da classe pai self.controller = controller self.title("Tela de Login") email_label = tk.Label(self, text="Seu email:") email_label.grid(row=0, column=0, padx=5, pady=5) senha_label = tk.Label(self, text="Sua senha:") senha_label.grid(row=1, column=0, padx=5, pady=5) self.email_entry = tk.Entry(self) self.email_entry.grid(row=0, column=1, padx=5, pady=5) self.senha_entry = tk.Entry(self, show="*") self.senha_entry.grid(row=1, column=1, padx=5, pady=5) manter_logado_var = tk.IntVar() manter_logado_checkbox = tk.Checkbutton(self, text="Manter-me logado", variable=manter_logado_var) manter_logado_checkbox.grid(row=2, column=0, columnspan=2, padx=5, pady=5) entrar_btn = tk.Button(self, text="Entrar", command=self.realizar_login) entrar_btn.grid(row=3, column=0, columnspan=2, padx=5, pady=5) cadastrar_link = tk.Button(self, text="Cadastrar", command=self.abrir_cadastro) cadastrar_link.grid(row=4, column=0, columnspan=2, padx=5, pady=5) self.venda_button = tk.Button(self, text="Vendas", command=self.abrir_vendas) self.venda_button.grid(row=20, column=0, columnspan=2, pady=12) self.controller = controller class TelaCadastroView(tk.Toplevel): def __init__(self, controller): self.controller = controller self.title("Cadastro de Automóvel") nome_cliente_label = tk.Label(self, text="Nome Cliente:") nome_cliente_label.grid(row=0, column=0, padx=5, pady=5) modelo_label = tk.Label(self, text="Modelo:") modelo_label.grid(row=1, column=0, padx=5, pady=5) km_label = tk.Label(self, text="KM:") km_label.grid(row=2, column=0, padx=5, pady=5) num_chassi_label = tk.Label(self, text="Nº Chassi:") num_chassi_label.grid(row=3, column=0, padx=5, pady=5) carroceria_label = tk.Label(self, text="Carroceria:") carroceria_label.grid(row=4, column=0, padx=5, pady=5) marca_label = tk.Label(self, text="Marca:") marca_label.grid(row=5, column=0, padx=5, pady=5) ano_label = tk.Label(self, text="Ano:") ano_label.grid(row=6, column=0, padx=5, pady=5) valor_fipe_label = tk.Label(self, text="Valor FIPE:") valor_fipe_label.grid(row=7, column=0, padx=5, pady=5) cor_label = tk.Label(self, text="Cor:") cor_label.grid(row=8, column=0, padx=5, pady=5) combustivel_label = tk.Label(self, text="Combustível:") combustivel_label.grid(row=9, column=0, padx=5, pady=5) cambio_label = tk.Label(self, text="Câmbio:") cambio_label.grid(row=10, column=0, padx=5, pady=5) self.nome_cliente_entry = tk.Entry(self) self.nome_cliente_entry.grid(row=0, column=1, padx=5, pady=5) self.modelo_entry = tk.Entry(self) self.modelo_entry.grid(row=1, column=1, padx=5, pady=5) self.km_entry = tk.Entry(self) self.km_entry.grid(row=2, column=1, padx=5, pady=5) self.num_chassi_entry = tk.Entry(self) self.num_chassi_entry.grid(row=3, column=1, padx=5, pady=5) self.carroceria_entry = tk.Entry(self) self.carroceria_entry.grid(row=4, column=1, padx=5, pady=5) self.marca_entry = tk.Entry(self) self.marca_entry.grid(row=5, column=1, padx=5, pady=5) self.ano_entry = tk.Entry(self) self.ano_entry.grid(row=6, column=1, padx=5, pady=5) self.valor_fipe_entry = tk.Entry(self) self.valor_fipe_entry.grid(row=7, column=1, padx=5, pady=5) self.cor_entry = tk.Entry(self) self.cor_entry.grid(row=8, column=1, padx=5, pady=5) self.combustivel_entry = tk.Entry(self) self.combustivel_entry.grid(row=9, column=1, padx=5, pady=5) self.cambio_entry = tk.Entry(self) self.cambio_entry.grid(row=10, column=1, padx=5, pady=5) self.save_button = tk.Button(self, text="Salvar", command=self.save_car) self.save_button.grid(row=22, column=0, columnspan=2, pady=10) self.controller = controller class TelaVendasView(tk.Toplevel): def __init__(self, controller): self.title("Tela de Vendas") self.controller = controller cliente_label = tk.Label(self, text="Cliente:") cliente_label.grid(row=0, column=0, padx=5, pady=5, sticky="e") venda_label = tk.Label(self, text="Venda:") venda_label.grid(row=1, column=0, padx=5, pady=5, sticky="e") documento_label = tk.Label(self, text="Documento:") documento_label.grid(row=2, column=0, padx=5, pady=5, sticky="e") data_venda_label = tk.Label(self, text="Data da Venda:") data_venda_label.grid(row=3, column=0, padx=5, pady=5, sticky="e") data_fim_mov_label = tk.Label(self, text="Data Fim Movi:") data_fim_mov_label.grid(row=4, column=0, padx=5, pady=5, sticky="e") valor_venda_label = tk.Label(self, text="Valor da Venda:") valor_venda_label.grid(row=5, column=0, padx=5, pady=5, sticky="e") obs_label = tk.Label(self, text="Observações:") obs_label.grid(row=6, column=0, padx=5, pady=5, sticky="e") self.cliente_entry = tk.Entry(self) self.cliente_entry.grid(row=0, column=1, padx=5, pady=5) self.venda_entry = tk.Entry(self) self.venda_entry.grid(row=1, column=1, padx=5, pady=5) self.documento_entry = tk.Entry(self) self.documento_entry.grid(row=2, column=1, padx=5, pady=5) self.data_venda_entry = tk.Entry(self) self.data_venda_entry.grid(row=3, column=1, padx=5, pady=5) self.data_fim_mov_entry = tk.Entry(self) self.data_fim_mov_entry.grid(row=4, column=1, padx=5, pady=5) self.valor_venda_entry = tk.Entry(self) self.valor_venda_entry.grid(row=5, column=1, padx=5, pady=5) self.obs_entry = tk.Entry(self) self.obs_entry.grid(row=6, column=1, padx=5, pady=5) self.venda_button = tk.Button(self, text="Finalizar", command=self.controller.save_venda) self.venda_button.grid(row=22, column=0, columnspan=2, pady=10) self.registro_button = tk.Button(self, text="Abrir Registro", command=self.controller.abrir_cadastro) self.registro_button.grid(row=7, column=0, columnspan=2, pady=10) class TelaRegistroView(tk.Toplevel): def __init__(self, controller): self.title("Tela de Registro") self.controller = controller periodolabel = tk.Label(self, text="Período:") periodolabel.grid(row=0, column=0, padx=5, pady=5, sticky="e") tipomovimentacaolabel = tk.Label(self, text="Tipo de Movimentação:") tipomovimentacaolabel.grid(row=1, column=0, padx=5, pady=5, sticky="e") datainiciallabel = tk.Label(self, text="Data Inicial:") datainiciallabel.grid(row=2, column=0, padx=5, pady=5, sticky="e") datafinallabel = tk.Label(self, text="Data Final:") datafinallabel.grid(row=3, column=0, padx=5, pady=5, sticky="e") self.periodoentry = tk.Entry(self) self.periodoentry.grid(row=0, column=1, padx=5, pady=5) self.tipomovimentacao_entry = tk.Entry(self) self.tipomovimentacao_entry.grid(row=1, column=1, padx=5, pady=5) self.datainicial_entry = tk.Entry(self) self.datainicial_entry.grid(row=2, column=1, padx=5, pady=5) self.datafinal_entry = tk.Entry(self) self.datafinal_entry.grid(row=3, column=1, padx=5, pady=5) self.consultar_button = tk.Button(self, text="Consultar", command=lambda: self.controller.consultar_registros(self.periodoentry.get(), self.tipomovimentacao_entry.get())) self.consultar_button.grid(row=22, column=0, columnspan=2, pady=10) self.gerar_relatorio_button = tk.Button(self, text="Gerar Relatório", command=lambda: self.controller.gerar_relatorio(self.periodoentry.get(), self.tipomovimentacao_entry.get())) self.gerar_relatorio_button.grid(row=7, column=0, columnspan=2, pady=10) imprimirbutton = tk.Button(self, text="Imprimir", command=self.controller.imprimir_relatorio) imprimirbutton.grid(row=4, column=2, padx=5, pady=5) codigo controller: from tkinter import messagebox from view import TelaLoginView, TelaCadastroView, TelaVendasView, TelaRegistroView from model import LoginModel, CadastroModel, VendasModel, RegistroModel class LoginController: def __init__(self, model): self.model = model self.view = TelaLoginView(self) class CadastroController: def __init__(self, model): self.model = model self.view = TelaCadastroView(self) class VendasController: def __init__(self, model): self.model = model self.view = TelaVendasView(self) class RegistroController: def __init__(self, model): self.model = model self.view = TelaRegistroView(self) def consultar_registros(self, periodo, tipo_movimentacao, data_inicial, data_final): registros = self.model.consultar_registros(periodo, tipo_movimentacao, data_inicial, data_final) self.view.mostrar_registros(registros) def gerar_relatorio(self, periodo, tipo_movimentacao, data_inicial, data_final): relatorio = self.model.gerar_relatorio(periodo, tipo_movimentacao, data_inicial, data_final) self.view.mostrar_relatorio(relatorio) def imprimir_relatorio(self, relatorio): self.model.imprimir_relatorio(relatorio) messagebox.showinfo("Impressão", "O relatório foi enviado para a impressora.") codigo Model: from datetime import datetime from tkinter import messagebox class LoginModel: def validate_login(self, username, password): if username != "" and password != "": return True else: return False class CadastroModel: def save_car(self, car_data): car_data = { "nome_cliente": self.nome_cliente_entry.get(), "modelo": self.modelo_entry.get(), "km": self.km_entry.get(), "num_chassi": self.num_chassi_entry.get(), "carroceria": self.carroceria_entry.get(), "marca": self.marca_entry.get(), "ano": self.ano_entry.get(), "valor_fipe": self.valor_fipe_entry.get(), "cor": self.cor_entry.get(), "combustivel": self.combustivel_entry.get(), "cambio": self.cambio_entry.get(), } self.controller.save_car(car_data) messagebox.showinfo("Cadastro de Automóvel", "Automóvel cadastrado com sucesso!") class VendasModel: def save_venda(self, venda_data): venda_data = { "cliente": self.view.cliente_entry.get(), "venda": self.view.venda_entry.get(), "documento": self.view.documento_entry.get(), "data_venda": self.view.data_venda_entry.get(), "data_fim_mov": self.view.data_fim_mov_entry.get(), "valor_venda": self.view.valor_venda_entry.get(), "obs": self.view.obs_entry.get() } self.model.save_venda(venda_data) messagebox.showinfo("Vendas", "Venda salva com sucesso!") class RegistroModel: def consultar_registros(self, periodo, tipo_movimentacao, data_inicial, data_final): registros = [ {"id": 1, "data": datetime.now(), "descricao": "Registro 1"}, {"id": 2, "data": datetime.now(), "descricao": "Registro 2"}, {"id": 3, "data": datetime.now(), "descricao": "Registro 3"}, ] return registros def gerar_relatorio(self, periodo, tipo_movimentacao, data_inicial, data_final): periodo = self.view.periodoentry.get() tipo_movimentacao = self.view.tipomovimentacao_entry.get() data_inicial = self.view.datainicial_entry.get() data_final = self.view.datafinal_entry.get() relatorio = self.model.gerar_relatorio(periodo, tipo_movimentacao, data_inicial, data_final) self.view.mostrar_relatorio(relatorio) def imprimir_relatorio(self, relatorio): periodo = self.view.periodoentry.get() tipo_movimentacao = self.view.tipomovimentacao_entry.get() data_inicial = self.view.datainicial_entry.get() data_final = self.view.datafinal_entry.get() relatorio = self.model.gerar_relatorio(periodo, tipo_movimentacao, data_inicial, data_final) self.model.imprimir_relatorio(relatorio) messagebox.showinfo("Impressão", "O relatório foi enviado para a impressora.")
-
Estou montando um Painel para acompanhamento de tickets, nele existem basicamente dois elementos, 4 campos e 1 gráfico. Gostaria de atualiza-los periodicamente, tentei com: <meta http-equiv="refresh" content="10" /> No entanto, isso recarrega toda a página, gerando aquela famosa piscada. O que eu preciso é recarregar os campos e o gráfico sem esse refresh (piscada). Pelo que encontrei na internet, posso fazer isso com o AJAX, porém não sei como, ainda estou iniciando com o desenvolvimento. Para não ficar um código muito grande, a seguir segue minha página com apenas 1 campo, e o gráfico: @using System.Data @model DataSet @{ ViewBag.Title = "Home Page";} <!-- container-fluid --> <div class="container-fluid"> <!-- Page Heading --> <div class="row"> <div class="col-lg-12"> <h2 class="page-header"> Tickets AGP </h2> </div> </div> <!-- /Page Heading --> <!-- Campos --> <div class="row"> <div class="col-lg-3 col-md-6"> <div class="panel panel-danger"> <div class="panel-heading"> <div class="row"> <div class="col-xs-3"> <i class="fa fa-tasks fa-5x"></i> </div> <div class="col-xs-9 text-right"> <div class="huge"> @foreach (DataRow row in Model.Tables[1].Rows) { if (@row["status"].Equals("Aberto - Aguardando Aprovação")) { @row["quantidade_status"] } } </div> <div>Aguardando Aprovação</div> </div> </div> </div> </div> </div> </div> <!-- /Campos --> <!-- Gráficos Morris Charts --> <div class="row"> <div class="col-lg-6"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-long-arrow-right"></i> Atendimento AGP</h3> </div> <div class="panel-body"> <div id="morris-bar-agp"></div> </div> </div> </div> </div> </div> <!-- /container-fluid --> @section scripts { <!-- Script que carrega as informacoes do grafico--> <script> $(document).ready(function (){ $.get('@Url.Action("GetData", "Home")', function (data) { console.log(data); Morris.Bar({ element: 'morris-bar-agp', xkey: 'admAtribuido', ykeys: ['quantidade_admAtribuido'], labels: ['Tickets Atendidos'], barRatio: 0.4, xLabelAngle: 10, gridTextSize: 12, gridTextColor: '#000', hideHover: 'auto', resize: true, data: data }); $(window).trigger('resize'); $('svg').height(650); }); }); </script> } Segue o Action GetData(), que envia os dados para montar o gráfico, acredito que a query não seja importante nesse caso, então coloquei essa genérica aí, porque a minha é muito grande: [HttpGet] public JsonResult GetData() { DataSet ds = new DataSet(); using (SqlConnection con = new SqlConnection("Data Source=xxx.xx.xxx.xxx;Initial Catalog=XXX;User ID=xxxxxx;Password=xxxxx")) { string query = select * from table using (SqlCommand cmd = new SqlCommand(query)) { cmd.Connection = con; using (SqlDataAdapter sda = new SqlDataAdapter(cmd)) { sda.Fill(ds); } } var json = Newtonsoft.Json.JsonConvert.SerializeObject(ds.Tables[2]); var obj = Newtonsoft.Json.JsonConvert.DeserializeObject(json, (new[] { new { admAtribuido = "", quantidade_admAtribuido = 0 } }).GetType()); return Json(obj, JsonRequestBehavior.AllowGet); } } Segue a Action Index() que envia os dados dos campos para serem recuperados na View: public ActionResult Index() { DataSet ds = new DataSet(); using (SqlConnection con = new SqlConnection("Data Source=xxx.xx.xxx.xxx;Initial Catalog=XXX;User ID=xxxxxx;Password=xxxxxx")) { query select * from table using (SqlCommand cmd = new SqlCommand(query)) { cmd.Connection = con; using (SqlDataAdapter sda = new SqlDataAdapter(cmd)) { sda.Fill(ds); } } } return View(ds); }
-
Tenho uma tabela defeitos e uma de processos, sendo que um defeito pode ter um ou vários processos. Por enquanto tenho a funcionar uma dropdownlist para um defeito, um processo, que alterações preciso fazer para poder seleccionar varios processos, segue o codigo abaixo: ' GET: DEF_DEFECT/Create Function Create() As ActionResult PopProcessDropDownList() Return View() End Function ' POST: DEF_DEFECT/Create 'To protect from overposting attacks, please enable the specific properties you want to bind to, for 'more details see http://go.microsoft.com/fwlink/?LinkId=317598. <HttpPost()> <ValidateAntiForgeryToken()> Function Create(<Bind(Include:="CODE_DEF,DESCRIPTION_DEF")> ByVal dEF_DEFECT As DEF_DEFECT) As ActionResult If ModelState.IsValid Then db.DEF_DEFECT.Add(dEF_DEFECT) Dim processSelected As String = Request.Form("ProcessesList").ToString() UpdateDefectProcess(dEF_DEFECT, processSelected) db.SaveChanges() Return RedirectToAction("Index") End If Return View(dEF_DEFECT) End Function ' GET: DEF_DEFECT/Edit/5 Function Edit(ByVal id As String) As ActionResult If IsNothing(id) Then Return New HttpStatusCodeResult(HttpStatusCode.BadRequest) End If Dim dEF_DEFECT As DEF_DEFECT = db.DEF_DEFECT.Find(id) If IsNothing(dEF_DEFECT) Then Return HttpNotFound() End If PopulateProcessesDropDownList(dEF_DEFECT.PRO_PROCESS) Return View(dEF_DEFECT) End Function Sub PopProcessDropDownList() Dim listSelectListItems As List(Of SelectListItem) = New List(Of SelectListItem) For Each p As PRO_PROCESS In db.PRO_PROCESS Dim selectItem As SelectListItem = New SelectListItem() selectItem.Text = p.CODE_PRO listSelectListItems.Add(selectItem) Next ViewBag.ProcessCode = listSelectListItems End Sub Sub PopulateProcessesDropDownList(selectedprocesses As Object) ' Dropdown Lists Dim allProcesses = From s In db.PRO_PROCESS Order By s.CODE_PRO Select s.CODE_PRO, s.DESCRIPTION_PRO Distinct ViewBag.PList = New SelectList(allProcesses, "CODE_PRO", "CODE_PRO", selectedValue:=selectedprocesses) End Sub ' POST: DEF_DEFECT/Edit/5 'To protect from overposting attacks, please enable the specific properties you want to bind to, for 'more details see http://go.microsoft.com/fwlink/?LinkId=317598. <HttpPost()> <ValidateAntiForgeryToken()> Function Edit(<Bind(Include:="CODE_DEF,DESCRIPTION_DEF")> ByVal dEF_DEFECT As DEF_DEFECT) As ActionResult If ModelState.IsValid Then Dim processToUpdate = db.DEF_DEFECT _ .Include(Function(i) i.PRO_PROCESS) _ .Where(Function(i) i.CODE_DEF = dEF_DEFECT.CODE_DEF) _ .Single() Dim processSelected As String = Request.Form("ProcessesList").ToString() UpdateDefectProcess(processToUpdate, processSelected) db.Entry(processToUpdate).State = EntityState.Modified db.SaveChanges() Return RedirectToAction("Index") End If Return View(dEF_DEFECT) End Function Private Sub UpdateDefectProcess(updateDefect As DEF_DEFECT, processSelected As String) 'Dim selectedProcessHS = New HashSet(Of String)(processSelected) Dim selectedProcessHS = processSelected Dim defectProcess As IEnumerable(Of String) = New HashSet(Of String)(updateDefect.PRO_PROCESS.Select(Function(c) c.CODE_PRO)) For Each c In db.PRO_PROCESS If selectedProcessHS.Contains(c.CODE_PRO.ToString()) Then updateDefect.PRO_PROCESS.Add(c) Else If defectProcess.Contains(c.CODE_PRO) Then updateDefect.PRO_PROCESS.Remove(c) End If End If Next End Sub Estou a usar VB.NET
-
Possuo um grid com a paginação já funcionando, porém quando estou em uma determinada página que não seja a primeira, escolho um dos registros para editá-lo, na volta ele retorna para o grid, mas não na mesma paginação que estava antes de entrar para a edição e sim volta a pagina 1 do Grid, como resolver isso?
- 1 resposta
-
Recuperar foco para bipar rotulo
uma questão postou Vanessa Gonçalves Carvalho Ajax, JavaScript, XML, DOM
Projeto ASP.NET MVC 4 com ANGUJAR JS. Tenho uma missão que estou tentando descobrir primeiro pelo JavaScript/JQuery, mas o problema envolve a camada do MVC também. É a seguinte: 1) tenho uma View que possui uma caixa de texto que será preenchida com o "bipe" (pistolado) de um código de barras (com o número de um recibo) executado pelo usuário. Por este motivo, a caixa de texto deve ter sempre o "foco", por causa da "bipagem". 2) No evento "enter" (View) desta "caixa de texto" acionamos uma function no Angular que chama uma ActionResult na controller (verifica no banco de dados se o recibo pistolado é válido) e retorna um boolean via JSON para o Angular. 4) Na sequencia, se for verdadeiro, executa o commit deste form via Angular (a action deste form, chama outra controller e ActionResult que será exibida na sequencia). Caso seja false, exibe uma mensagem na tela do próprio form (via Angular). 3) No item 4, quando é true e chama a 2ª View e Controller, executa na sequencia, a impressão do html (formulário preenchido com dados do banco de dados), fecha este 2º form e retorna para a 1ª View com o foco na caixa de texto. Toda essa parte estava funcionando! O desafio que recebi: - O usuário deste site é um operário de uma fábrica e "bipa" os códigos de barra em alta velocidade, sem olhar para a tela. Em alguns momentos em que o sistema está processando os dados, ou quando ocorre um erro na impressora, a caixa de texto perde o foco e a bipagem é perdida. Consequência: - A minha missão é resolver este problema de bipagem/foco para que o operário possa executar esta impressão em alta velocidade, como é realizado atualmente em outro sistema desktop que será substituído. Teria alguma dica de como eu poderia realizar esta missão? Desde já muito obrigada.- 1 resposta
-
- javascript
- jquery
-
(e %d mais)
Tags:
-
Recuperar o foco para bipar rótulo
uma questão postou Vanessa Gonçalves Carvalho Tutoriais & Dicas - .NET
Projeto ASP.NET MVC 4 com ANGUJAR JS. Tenho uma missão que estou tentando descobrir primeiro pelo JavaScript/JQuery, mas o problema envolve a camada do MVC também. É a seguinte: 1) tenho uma View que possui uma caixa de texto que será preenchida com o "bipe" (pistolado) de um código de barras (com o número de um recibo) executado pelo usuário. Por este motivo, a caixa de texto deve ter sempre o "foco", por causa da "bipagem". 2) No evento "enter" (View) desta "caixa de texto" acionamos uma function no Angular que chama uma ActionResult na controller (verifica no banco de dados se o recibo pistolado é válido) e retorna um boolean via JSON para o Angular. 4) Na sequencia, se for verdadeiro, executa o commit deste form via Angular (a action deste form, chama outra controller e ActionResult que será exibida na sequencia). Caso seja false, exibe uma mensagem na tela do próprio form (via Angular). 3) No item 4, quando é true e chama a 2ª View e Controller, executa na sequencia, a impressão do html (formulário preenchido com dados do banco de dados), fecha este 2º form e retorna para a 1ª View com o foco na caixa de texto. Toda essa parte estava funcionando! O desafio que recebi: - O usuário deste site é um operário de uma fábrica e "bipa" os códigos de barra em alta velocidade, sem olhar para a tela. Em alguns momentos em que o sistema está processando os dados, ou quando ocorre um erro na impressora, a caixa de texto perde o foco e a bipagem é perdida. Consequência: - A minha missão é resolver este problema de bipagem/foco para que o operário possa executar esta impressão em alta velocidade, como é realizado atualmente em outro sistema desktop que será substituído. Teria alguma dica de como eu poderia realizar esta missão? Desde já muito obrigada.-
- javascript
- angular
- (e %d mais)
-
Baixei o Spring MVC pelo Spring Tool Suite do link http://spring.io/tools/sts. Quando clico para executar o STS.exe, ele mostra o erro: http://prntscr.com/dvhkpx Clico em OK e não acontece nada. Falta alguma configuração ?
-
Meu problema é o seguinte, vi que quando edito um registro , funciona, o cadastro é alterado, mas quando eu quero cadastrar um novo usuário, ele cai na condição de edição, ele edita as informações do cadastro que eu estava alterando anteriormente, não deixando cadastrar um novo usuário, porque isso acontece? Variável responsável por validar se está editando ou não private int codigoEditar = 0; Método responsável por buscar o código do usuário na tabela JButton button_3 = new JButton("Editar"); button_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tabbedPane.setSelectedIndex(0); // Variável responsável por capturar a linha selecionada int linhaSelecionada = -1; // Busca a linha selecionada e armazena na variável // linhaSelecionada(tr) // linhaSelecionada = tabela.getSelectedRow(); // Validar se uma linha foi selecionada if (linhaSelecionada >= 0) { // Armazena a informação da primeira coluna da linha // selecionada(td) //coluna 0 código do funcionário int codigoFuncionario = (int) tabela.getValueAt(linhaSelecionada, 0); buscarFuncionario(codigoFuncionario); } else { JOptionPane.showMessageDialog(null, "Selecione uma " + "linha para alterar o Funcionário!"); } } }); Método que recebe como parâmetro o código do funcionário, colocando as informações do usuário na tela de cadastro para alteração //recebe como parâmetro o código do funcionário protected void buscarFuncionario(int codigoFuncionario) { control.Funcionarios func = new control.Funcionarios(); //laço foreach que percorre o arraylist referenciando o código do funcionário for (Funcionarios funcio : func.listarFuncionarios(codigoFuncionario + "", 1)) { /*Funcionarios funcio é o Dao, para setar(set) e pegar(get) * func.listarFuncionarios(codigoFuncionario + "", 1)) códigoFuncionário + "" concatena o código com o parametro texto da pesquisa da * classe control * 1 é a pesquisa por código do funcionário referenciando o parametro do código do funcionário */ // Setar informações na tela de cadastro nome.setText(funcio.getNome()); email.setText(funcio.getEmail()); endereco.setText(funcio.getEndereco()); telefone.setText(funcio.getTelefone()); cpf.setText(funcio.getCpf_funcionario()); //Variável que recebe o valor do codigo do usuário //importante para a alteração codigoEditar = funcio.getCodigo_funcionario(); } cadastro.setVisible(true); listagem.setVisible(false); } Método responsável por salvar ou alterar o funcionário protected void salvar() { // Capturar informações que o usuário digitou String nome_funcionario = nome.getText(); String cpf_funcionario = cpf.getText(); String endereco_funcionario = endereco.getText(); String email_funcionario = email.getText(); String fone_funcionario = telefone.getText(); String senha_funcionario = senha.getText(); String rep_senha_funcionario= repsenha.getText(); if(email_funcionario.equals("")&& cpf_funcionario.equals("")&&fone_funcionario.equals("")&&nome_funcionario.equals("")){ JOptionPane.showMessageDialog(null, "Preencha os campos"); }else if(!rep_senha_funcionario.equals(senha_funcionario)){ JOptionPane.showMessageDialog(null, "As senhas são diferentes"); //validar se as senhas são iguais }else if(endereco_funcionario.equals("")){ JOptionPane.showMessageDialog(null, "O campo Endereço é Obrigatório!"); } // Criando o objeto Funcionarios func = new Funcionarios(); func.setNome(nome_funcionario); func.setEmail(email_funcionario); func.setTelefone(fone_funcionario); func.setSenha(senha_funcionario); func.setEndereco(endereco_funcionario); func.setCpf_funcionario(cpf_funcionario); func.setCodigo_funcionario(codigoEditar); control.Funcionarios manutencao = new control.Funcionarios(); //validar se estamos cadastrando ou editando os registros if(codigoEditar == 0){ manutencao.inserir(func); }else{ manutencao.alterar(func); } limparInformacoes(); tabbedPane.setSelectedIndex(1); } } Método de salvar do pacote control da classe funcionários public void inserir(dao.Funcionarios func) { if (func != null) { // Variável de conexão de DB java.sql.Connection conn = null; try { conn = ConnectDB.conexaoDB(); java.sql.PreparedStatement pstm; pstm = conn.prepareStatement(INSERT); pstm.setString(1, func.getCpf_funcionario()); pstm.setString(2, func.getEmail()); pstm.setString(3, func.getSenha()); pstm.setString(4, func.getNome()); pstm.setString(5, func.getEndereco()); pstm.setString(6, func.getTelefone()); // Envia para o banco de dados Boolean teste; teste = pstm.execute(); // Validar inserção no banco de dados if (!teste) { JOptionPane.showMessageDialog(null, "Funcionario cadastrado com sucesso!"); } else { JOptionPane.showMessageDialog(null, "Erro ao cadastrar o Funcionario!"); } // Fecha a conexão com o banco de dados ConnectDB.fecharConexao(conn); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao cadastrar o Funcionario!"); } } } Método de alterar do pacote control da classe funcionários //parametro objeto dao.funcionarios public void alterar(dao.Funcionarios func) { java.sql.Connection conn = null; try { conn = ConnectDB.conexaoDB(); //prepara a query java.sql.PreparedStatement pstm; pstm = conn.prepareStatement(UPDATE); pstm.setString(1, func.getCpf_funcionario()); pstm.setString(2, func.getEmail()); pstm.setString(3, func.getNome()); pstm.setString(4, func.getEndereco()); pstm.setString(5, func.getTelefone()); pstm.setString(6, func.getSenha()); pstm.setInt(7, func.getCodigo_funcionario()); // Envia para o banco de dados Boolean teste; teste = pstm.execute(); // Validar inserção no banco de dados if (!teste) { JOptionPane.showMessageDialog(null, "Funcionario alterado com sucesso!"); } else { JOptionPane.showMessageDialog(null, "Erro ao alterar o funcionario!"); } // Fecha a conexão com o banco de dados ConnectDB.fecharConexao(conn); } catch (SQLException e) { JOptionPane.showMessageDialog(null, "Erro ao alterar o funcionario!"+e.getMessage()); } } Peço ajuda de vocês para corrigir o problema.
-
Bom dia Pessoal, sou novo no fórum e iniciante em PHP, e preciso criar uma paginação de conteúdo, gostaria de exibir 3 resultados na página. Segue me código: <?php class Home { public function run() { $html_home = new Html(); $html = $html_home->load('view/home.html'); $tcomunicados = ''; $tdados = Connection::select("select * from comunicados"); foreach ($tdados as $reg) { $tcomunicados .= '<TR> <TD ROWSPAN=9 HEIGHT="auto" STYLE="border-top: 1px solid #f1f1f1;" class="text-center"><img src="' . $reg['imagem'] . '" width="150"></img></TD> <TD COLSPAN=5 VALIGN=MIDDLE STYLE="border-top: 1px solid #f1f1f1; border-bottom: 1px solid #f1f1f1;">' . $reg['titulo'] . '</TD> </TR><TR> <TD COLSPAN=2><small><cite>' . $reg['por'] . '</cite></small></TD> <TD><BR></TD> <TD COLSPAN=2><em><small class="subheader">' . $reg['data'] . '</small></em></TD> </TR><TR> <TD COLSPAN=5 ROWSPAN=6>' . $reg['comunicado'] . '</TD> </TR><TR></TR><TR></TR><TR></TR><TR></TR><TR></TR><TR> <TD></TD> <TD></TD><TD><br></TD> <TD></TD> <TD></TD> </TR>'; } $html = str_replace('#TCOMUNICADOS#', $tcomunicados, $html); Se alguém puder me ajudar agradeço.
-
Olá, Colegas!!! Criei uma action dentro de um controller e ao final da execução quero que uma mensagem de alert seja enviado ao usuário e só depois acontece o redirecionamento para o novo controller / action. Porém, o script, se é executado, não aparece. Acontece apenas o redirecionamento. Alguém poderia me ajudar a enxergar o que está errado? if (!($_POST['pass_nova'] == $_POST['pass_nova_again'])){ echo "<script>alert('A repetição da nova senha não confere!!');</script>"; $direct->goToControllerAction('usuario', 'senhaForm'); //método que redireciona para o novo controller/action }Obrigada a todos e abraços.
-
Olá, Colegas!!! Criei uma action dentro de um controller e ao final da execução quero que uma mensagem de alert seja enviado ao usuário e só depois acontece o redirecionamento para o novo controller / action. Porém, o script, se é executado, não aparece. Acontece apenas o redirecionamento. Alguém poderia me ajudar a enxergar o que está errado? if (!($_POST['pass_nova'] == $_POST['pass_nova_again'])){ echo "<script>alert('A repetição da nova senha não confere!!');</script>"; $direct->goToControllerAction('usuario', 'senhaForm'); //método que redireciona para o novo controller/action }Obrigada a todos e abraços.
-
Ola Colegas!!! Estou criando um sistema baseado no modelo MVC e não estou utilizando nenhum framework para tal. Comecei do zero e estou implementando aos poucos. Aí pintou a dúvida: Para cada view que eu cri eu insiro SEMPRE as mesmas linhas: <?php echo($this->view('cabecalho',$dados));?> ... => conteúdo da view <?php echo($this->view('rodape'))?> Foi interessante até a terceira view, mas agora está um pouco chato e totalmente improdutivo, principalmente se eu resolver trocar, por exemplo, o logo que está no cabeçalho. Ou seja, totalmente inviável. Pensei em criar na index a estrutura básica e colocar um IFRAME para inserir as views. Aí surgiu a dúvida: como fazer para que a view abra corretamente dentro do IFRAME? O método básico que chama todas as views está descrito abaixo. Será que é nele que devo indicar o IFrame é o alvo da view? Como fazer isso? Existe outra forma de "padronizar" a abertura das views? protected function view( $nome , $vars = null){ if (is_array($vars) && count($vars) > 0) extract($vars,EXTR_PREFIX_ALL,'view'); $file = VIEWS . $nome . '.phtml'; if (!file_exists($file)) die("Houve um erro. View inexistente."); require_once ( $file); }Obrigada a todos que puderem ajudar. Abraços.