Jump to content
Fórum Script Brasil

ursolouco

Veteranos
  • Posts

    2314
  • Joined

  • Last visited

Everything posted by ursolouco

  1. Salve, Estude um pouco o conceito sobre "View Model" que irá ajudar a resolver seu problema contextual. Não há problemas em retornar entidades para view mas pela organização e testes nas camadas (claro você fez isso, não?) os itens devem ser testado individualmente (ex: testar a camada de acesso a dados e ter certeza que os repositórios estão retornando as informações de forma correta). Ah, não se esqueça: MVC é um padrão arquitetural e não é obrigatório sempre um controlador enviar uma entidade para um modelo (no começo está pratica é normal). Espero ter ajudado, Abraços!
  2. Salve, Pessoal, estou com 8gb (2 x 4gb) de memória RAM (DDR3 - kvr13n9s8/4) para vender. Eu acabei comprando errado as memórias para minha máquina antiga e elas estão lá paradas. Estou aqui em são paulo (zona leste) e se alguém tiver interesse, só enviar um e-mail para "wellingtonbr [at] gmail [dot] com". Preço: R$ 230.00 + Frete (se estiver na zona leste, podemos ver um local para que eu possa fazer a entrega). Notas aos espertos: Só estarei enviando ou entregando o produto após a compensação do valor em conta ou pagamento a vista. Algumas fotos: http://desenvolvendosites.com/tmp/m.zip Abraços!
  3. Brother, Não sei mas para tal cenário ou montaria uma tabela temporária, jogaria o resultado de cada select para coluna e retornaria o conteúdo como saída de uma proc. OBS: Não vou fazer o SQL para você, mas a lógica esta descrita acima, agora é só executar. []s Até mesmo dá para você colocar estes "SUM" em colunas diferentes já que o agrupamento de dados é o mesmo []s
  4. Brother, Quando você ler "aplicações desktop" são aplicações que ficam instaladas direto no disco rígido da máquina e rodam localmente (com ou sem a máquina estar ligado diretamente a uma rede de comunicação). As "aplicações web" são sistemas que você acessa via qualquer dispositivo que está conectado a internet. []s
  5. Mariel, Essa montagem do "SELECT" é feito via alguma linguagem de programação? Este mesmo problema acontece ao enviar o comando via clients front ? []s
  6. Salve, Não sei se entendi errado mas quem possui o tipo de dados é o SGDB e não a ferramenta front que está usando. Qual tipo de dados você está consultando e não está conseguindo visualizar no YOG? []s
  7. Salve, Esses dias precisei ordenar uma coluna de texto (string) delimitada no SQL Server. /** * funcOrdenaTextoDelimitado() * * ordena o conteúdo de uma string * * @author wellington rodrigues */ create function dbo.funcOrdenaTextoDelimitado(@texto varchar(4000), @separador varchar(1)) returns varchar(4000) as begin declare @tmp_table table(texto varchar(4000)); declare @posicao_delimitador int = 1; declare @inicio_pesquisa int = 1; declare @subtexto varchar(4000); set @texto = @texto + @separador; declare @texto_ordenado varchar(4000) = ''; while charindex(@separador, @texto, @inicio_pesquisa) > begin set @posicao_delimitador = charindex(@separador, @texto, @inicio_pesquisa); set @subtexto = substring(@texto, @inicio_pesquisa, @posicao_delimitador - @inicio_pesquisa); insert into @tmp_table(texto) values(@subtexto); set @inicio_pesquisa = @posicao_delimitador + 1; end set @texto_ordenado = stuff((select coalesce(texto + @separador, '') from @tmp_table order by ltrim(rtrim(texto)) asc for xml path('')), 1, ,''); set @texto_ordenado = substring(@texto_ordenado, , len(@texto_ordenado)); return @texto_ordenado; end go Espero que possa ser útil. []s
  8. Salve, A propriedade "async" informa ao objeto responsável do browser (que faz a requisição XMLHTTPRequest) que a requisição deve ser ou não assíncrona. Mas devido a muitos anos de experiência nesta industria vital, sei que diversos programadores vão vão ser perguntar: O que é uma requisição assíncrona? Uma requisição assíncrona, de um modo "bem simples" de dizer é o envio de uma requisição pelo browser para um URL e avançar a execução do <script> para a linha seguinte (ou seja, o browser não espera a requisição concluir para avançar para a próxima instrução da programação). []s
  9. Brother, Depura o conteúdo do Ubound(MatchData(MatchIndex).Indexes), provavelmente a matriz está localizando mais linhas. []s
  10. A saída é mais ou menos como a imagem em anexo
  11. Oi Paty, Agora que observei sua pergunta melhor...."DataGridView" (WindowsForms).... vou pensar em algo por aqui e posto depois. []s public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { using (var conn = new SqlConnection("Data Source=WELLINGTON-PC\\SQLEXPRESS; Initial Catalog=Northwind; Integrated Security=true;")) { var da = new SqlDataAdapter("SELECT CategoryId, CategoryName, Description FROM Categories ORDER BY CategoryName", conn); var ds = new DataSet(); da.Fill(ds, "Categories"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "Categories"; } } private void button1_Click(object sender, EventArgs e) { printDocument1.Print(); } private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height); dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height)); e.Graphics.DrawImage(bm, 0, 0); } }
  12. Salve, Precisa mesmo ser em .net? Não seria melhor jogar este conteúdo em uma div e depois chamar o método "Print()" do objeto "Window" em javascript ? Exemplo: Default.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Impressao { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { List<string> content = new List<string>() { "estou com preguiça", "de pensar no momento" }; GridView1.DataSource = content; GridView1.DataBind(); } } } Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Impressao.Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src="https://code.jquery.com/jquery-1.12.1.js" integrity="sha256-VuhDpmsr9xiKwvTIHfYWCIQ84US9WqZsLfR4P7qF6O8=" crossorigin="anonymous"></script> </head> <body> <form id="form1" runat="server"> <div id="relatorio"> <asp:GridView ID="GridView1" runat="server"> </asp:GridView> </div> <input id="btnImprimir" type="button" value="Imprimir" /> </form> </body> </html> <script> $(document).ready(function () { $('#btnImprimir').on('click', function (event) { event.preventDefault(); event.stopPropagation(); window.open('Impressao.aspx', 'Impressao', null, true); return false; }); }); </script> Impressao.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Impressao.aspx.cs" Inherits="Impressao.Impressao" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src="https://code.jquery.com/jquery-1.12.1.js" integrity="sha256-VuhDpmsr9xiKwvTIHfYWCIQ84US9WqZsLfR4P7qF6O8=" crossorigin="anonymous"></script> </head> <body> <form id="form1" runat="server"> <div id="conteudo_relatorio"></div> </form> </body> </html> <script> $(document).ready(function () { if (window.opener != null) { var relatorio = window.opener.document.getElementById('relatorio'); if (relatorio) { document.getElementById('conteudo_relatorio').innerHTML = relatorio.innerHTML; window.print(); } } }); </script>
  13. SELECT ID, VENCIMENTO, DATEDIFF(NOW(), VENCIMENTO) FROM DEMO WHERE DATEDIFF(NOW(), VENCIMENTO) <= 60 ORDER BY ID ASC; Alternativa! SELECT ID, VENCIMENTO, DATEDIFF(NOW(), DATE_SUB(NOW(), INTERVAL 60 DAY)) AS VENCIMENTO_MINIMO, DATEDIFF(NOW(), VENCIMENTO) AS DIFERENCA_DIA FROM DEMO WHERE DATEDIFF(NOW(), VENCIMENTO) <= 60 ORDER BY ID ASC;
  14. USE test; CREATE TABLE DEMO( ID INT NOT NULL AUTO_INCREMENT, VENCIMENTO DATE, CONSTRAINT PK_DEMO PRIMARY KEY(ID) ) INSERT INTO DEMO (VENCIMENTO) VALUES('2016-01-11'); INSERT INTO DEMO (VENCIMENTO) VALUES('2016-01-12'); INSERT INTO DEMO (VENCIMENTO) VALUES('2016-01-13'); SELECT NOW(), DATE_SUB(VENCIMENTO, INTERVAL 60 DAY), VENCIMENTO FROM DEMO WHERE VENCIMENTO BETWEEN DATE_SUB(VENCIMENTO, INTERVAL 60 DAY) AND NOW() ORDER BY ID ASC;
  15. INSERT INTO COMPRAS (CLIENTE, DATA_COMPRA)VALUES('MARIA', '2016-01-13'); <?php error_reporting(E_ALL ^ E_DEPRECATED); function showReport(){ mysql_connect('localhost', 'root', ''); mysql_select_db('test'); $r = mysql_query('SELECT DISTINCT DATA_COMPRA FROM COMPRAS ORDER BY DATA_COMPRA DESC'); echo '<table>'; if($r!=null){ while($reg = mysql_fetch_assoc($r)){ echo '<tr>'; echo '<td>', $reg['DATA_COMPRA']; $clientes = mysql_query('SELECT CLIENTE FROM COMPRAS WHERE DATA_COMPRA = "'. $reg['DATA_COMPRA'] .'" ORDER BY CLIENTE ASC;'); if($clientes != null){ echo '<ul>'; while($cliente = mysql_fetch_assoc($clientes)){ echo '<li>'.$cliente['CLIENTE'].'</li>'; } echo '</ul>'; } echo '</td>'; echo '</tr>'; } }else{ echo '<tr><td>Não existe pedido na tabela de compras</td></tr>'; } echo '</table>'; mysql_close(); } showReport(); ?> []s []s
  16. Manoel, Você pode resolver da seguinte forma: 1) SELECT CLIENTE, DATA_COMPRA FROM COMPRAS ORDER BY DATA_COMPRA DESC, CLIENTE ASC E no PHP, durante o loop, você verifica a mudança de data para abrir e fechar linha da tabela no relatório 2) SELECT DISTINCT DATA_COMPRA FROM COMPRAS ORDER BY DATA_COMPRA DESC Durante o loop, você terá que ir novamente ao banco de dados localizar todos cliente com base na DATA do loop (internament seria +/- assim SELECT CLIENTE FROM COMPRAS WHERE DATA_COMPRA = $data_da_compra ORDER BY CLIENTE ASC; []s <?php error_reporting(E_ALL ^ E_DEPRECATED); function showReport(){ mysql_connect('localhost', 'root', ''); mysql_select_db('test'); $r = mysql_query('SELECT DISTINCT DATA_COMPRA FROM COMPRAS ORDER BY DATA_COMPRA DESC'); echo '<table>'; if($r!=null){ while($reg = mysql_fetch_assoc($r)){ echo '<tr>'; echo '<td>', $reg['DATA_COMPRA']; $clientes = mysql_query('SELECT CLIENTE FROM COMPRAS WHERE DATA_COMPRA = "'. $reg['DATA_COMPRA'] .'" ORDER BY CLIENTE ASC;'); if($clientes != null){ echo '<ul>'; while($cliente = mysql_fetch_assoc($clientes)){ echo '<li>'.$cliente['CLIENTE'].'</li>'; } echo '</ul>'; } echo '</td>'; echo '</tr>'; } }else{ echo '<tr><td>Não existe pedido na tabela de compras</td></tr>'; } echo '</table>'; mysql_close(); } showReport(); ?> CREATE TABLE COMPRAS( ID INT NOT NULL AUTO_INCREMENT, CLIENTE NVARCHAR(100), DATA_COMPRA DATE, CONSTRAINT PK_COMPRAS PRIMARY KEY(ID) ) INSERT INTO COMPRAS (CLIENTE, DATA_COMPRA) VALUES('CARLOS', '2016-01-11'); INSERT INTO COMPRAS (CLIENTE, DATA_COMPRA)VALUES('ANTONIO', '2016-01-11'); INSERT INTO COMPRAS (CLIENTE, DATA_COMPRA)VALUES('MANOEL', '2016-01-12');
  17. Oi Gisa, sua linda... No evento "submit" de seu formulário você insere o processo de validação e verificação do campos. []s
  18. <script type="text/javascript"> $(document).ready(function(){ getLocation() }); </script>
  19. Brother, Usei este recurso quando passei por esta bucha => https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil []s
  20. Salve, Pega o conteúdo da sua variável url, jogue no browser e veja se está saindo conteúdo. Outro detalhe, sua chamada é assíncrona, até que a mesma se complete o conteúdo de "registroJson" ainda será um array vazio. Se você quer dar sequencia no seu código experimente algo como: var registroJson = []; var url = 'xpto'; $(document).ready(function(){ $.ajax({ url: url, async: false, dataType: 'json', success:function(response){ if(response){ registroJson = response; } } }); console.log(registroJson) });
  21. Salve, Estou enferrujado para o PHP, mas olha um exemplo abaixo: <?php function bgcolor($index, $cor1 = '#F1F1F1', $cor2 = '#FFFFFF'){ return ((($index % 2) == 0) ? $cor1 : $cor2); } function data2Br($dbDate){ return implode ('/', array_reverse(explode('-', $dbDate))); } function searchClientByDate($dbDate){ $clientes = array(); array_push($clientes, array('nome' => 'BLA, BLA, BLA') ); /* arqui você coloca sua lógica para localizar seus clientes */ return $clientes; } function showRel($beginDate, $endDate = null){ echo '<table border="1" width="100%">'; try{ if(!$endDate){ $endDate = date('Y-m-d'); } if(strtotime($beginDate)>strtotime($endDate)){ throw new Exception('Data de início não pode ser maior que a data de término'); } $index = 0; do{ echo '<tr valign="middle" bgcolor="'.bgcolor($index).'">'; echo '<td><h3> - '.data2Br($beginDate); echo '</h3><br />'; $arrClientes = searchClientByDate($beginDate); foreach($arrClientes as $key => $arrCliente){ echo '<div style="text-indent: 25px;">'.$arrCliente['nome'].'</div>'; } echo '</td>'; echo '</tr>'; if(strtotime($beginDate)<=strtotime($endDate)){ $beginYear = date('Y', strtotime($beginDate)); $beginMonth = date('m', strtotime($beginDate)); $beginDay = date('d', strtotime($beginDate)); $beginDate = date("Y-m-d", mktime(0, 0, 0, $beginMonth, $beginDay + 1, $beginYear)); } $index++; }while(strtotime($beginDate)<=strtotime($endDate)); }catch(Exception $e){ echo '<h1>Erro : ', $e->getMessage(), '</h1>'; } echo '</table>'; } ?>
  22. Salve, Brother, sua pergunta é muito interessante. Mas para responde-la preciso compreender seu conceito sobre limitação. Na minha humilde opinião e experiência posso lhe dizer que Python é uma das linguagens de programação mais flexível para se trabalhar. A linguagem possui um bom interpretador para os diferentes sistemas operacionais (Unix, Linux, Windows, Minix, etc...), inúmeros pacotes prontos para agilizar o desenvolvimento, uma curva de aprendizado que considero baixa e muito elegante (só o fato do código rodar se estiver identado já ajuda pra caramba). Agora, todos estes pontos foram obtidos através de minha experiência com a linguagem e do desafio que havia sido proposto no cenário. Preciso compreender melhor o seu cenário e pelo que descreveu no texto acima não acho a mesma limitada (tudo vai depender do seu desafio e conhecimento sobre a mesma). []s
  23. Salve, Estou enferrujado para C/C++ mas lá vai... /* programa.c */ #include <stdlib.h> #include <stdio.h> int main() { // determino o número de dias do mes const int DIAS_DO_MES = 26; // monto um array de dias no mes int mes[DIAS_DO_MES]; // preenchendo as vendas nos dias do mês mes[0] = 0; // conceitualmente, não existe este dia no calendário :D mes[1] = 23; mes[2] = 54; mes[3] = 77; mes[4] = 13; mes[5] = 2; mes[6] = 26; mes[7] = 8999992; mes[8] = 40; mes[9] = 218; mes[10] = 2319; mes[11] = 3438; mes[12] = 99995; mes[13] = 3; mes[14] = 23; mes[15] = 23; mes[16] = 23; mes[17] = 23; mes[18] = 23; mes[19] = 23; mes[20] = 23; mes[21] = 23; mes[22] = 23; mes[23] = 23; mes[24] = 23; mes[25] = 23; // aqui vamos guardar o dia do mes que teve a maior venda int dia_do_mes_maior_venda = 0; // aqui vamos guardar o maior valor da venda int valor_da_maior_venda = 0; // vamos declarar um contador int i = 0; do { if( mes[i] >= valor_da_maior_venda ) { valor_da_maior_venda = mes[i]; dia_do_mes_maior_venda = i; } i += 1; }while( i < DIAS_DO_MES); printf("O dia de maior venda foi o %d, com a quantidade de %d\n", dia_do_mes_maior_venda, valor_da_maior_venda); // retorno do programa (sistema operacional) return 0; } Abraços
  24. Salve, Como todo início (sem exceções) é difícil em nossa vida/carreira tenho os seguintes conselhos para sua dúvida: 1) Comece por algum lugar! Não importa por onde! Mas porque não importa? Não importa porque será seu ponta pé inicial na área de desenvolvimento de software. Aceite uma linguagem comum de mercado que tenha uma curva de aprendizado baixa e que tenha ofertas de trabalho para que você possa iniciar profissionalmente na área de desenvolvimento 2) Nunca se acomode. Estude, estude e estude (não necessariamente nesta ordem [quando tiver bom, irá entender que o estudo é uma recursividade sem condição de parada]) Não tenha medo de aprender coisas novas ou ver algo praticado em outros universos e trazer para seu dia-a-dia. Isso irá lhe fazer um desenvolvedor melhor 3) Ajude outras pessoas (fórum, e-mail, irc, etc...) Por mais incrível que pareça, a seguinte frase é uma grande verdade (pelo menos em minha vida): Ao ensinar as pessoas, melhoramos nossa forma de aprender! 4) Especialize-se na área! (mas isso será algo natural na sua jornada) Por mais importante e necessário que seja conhecer as diversas tecnologias e áreas ligadas ao desenvolvimento de software, será necessário ser especialista em alguma dela (banco de dados, uma linguagem de programação, uma IDE, um software para edição de imagem, cloud, etc...) 5) Seja humilde Essa área de desenvolvimento tem um grande problema. O cara consegue resolver algo não trivial e já se sente um "capitão nascimento do BOPE". Começa a bate no peito dizendo que é florida, etc... e tals. Posso dizer que nestes anos rodados de mercado vi muitas pessoas se afastarem de gente assim (amizades de épocas de colégio terminarem porque o cara tirou uma nota mais alta na prova no curso de gestão de projetos e dizer que é melhor que o outro [e a empresa nem ai para os dois]). No mais... sempre use o Google para fazer suas pesquisa e, NUNCA... MAS NUNCA MESMO, esqueça seus valores/origem da pessoa que você é. Bom, acho que é isso por hora! Te desejo uma boa arrancada! []s
  25. Brother, Moleza! Bloqueie a navegação do diretório e adicione um querystring para permitir o acesso (caso não tenha, redirecione para página inicial do sistema) []s
×
×
  • Create New...