var SomatorioGroupBY = ObjListapreenchida .Select(x => new { Segmento = x.NM_SEGM, ValorCarteira = x.VR_SAL_LIQUI, ValorProducao = x.VR_PRO_VENDA, } ) .GroupBy(s => new { s.Segmento }) .Select(g => new { Segmento = g.Key.Segmento, ValorCarteira = g.Sum(x => Math.Round(Convert.ToDecimal(x.ValorCarteira), 2)), ValorProducao = g.Sum(x => Math.Round(Convert.ToDecimal(x.ValorProduto), 2)), QtdEmpresas = g.Count() } );Stack é um dos melhores lugares também pra obter exemplos práticos: https://stackoverflow.com/questions/21955475/linq-group-sum-multiple-columns
Links Úteis online / SPLIT e Fazer StringBuilder online de textos grandes
SQL – Busca na PROCEDURE
SELECT ROUTINE_NAME, ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%Easy_SegmentoMercado%'
AND ROUTINE_TYPE='PROCEDURE' and not ROUTINE_NAME like 'SPG%'
order by ROUTINE_NAME
Conversões SQL Server Exemplos
Declare @d datetime select @d = '20190429' --texto puro --select @d = getdate() select @d as OriginalDate, convert(varchar,@d,100) as ConvertedDate, 100 as FormatValue, 'mon dd yyyy hh:miAM (or PM)' as OutputFormat union all select @d,convert(varchar,@d,101),101,'mm/dd/yy' union all select @d,convert(varchar,@d,102),102,'yy.mm.dd' union all select @d,convert(varchar,@d,103),103,'dd/mm/yy' union all select @d,convert(varchar,@d,104),104,'dd.mm.yy' union all select @d,convert(varchar,@d,105),105,'dd-mm-yy' union all select @d,convert(varchar,@d,106),106,'dd mon yy' union all select @d,convert(varchar,@d,107),107,'Mon dd, yy' union all select @d,convert(varchar,@d,108),108,'hh:mm:ss' union all select @d,convert(varchar,@d,109),109,'mon dd yyyy hh:mi:ss:mmmAM (or PM)' union all select @d,convert(varchar,@d,110),110,'mm-dd-yy' union all select @d,convert(varchar,@d,111),111,'yy/mm/dd' union all select @d,convert(varchar,@d,12),12,'yymmdd' union all select @d,convert(varchar,@d,112),112,'yyyymmdd' union all select @d,convert(varchar,@d,113),113,'dd mon yyyy hh:mm:ss:mmm(24h)' union all select @d,convert(varchar,@d,114),114,'hh:mi:ss:mmm(24h)' union all select @d,convert(varchar,@d,120),120,'yyyy-mm-dd hh:mi:ss(24h)' union all select @d,convert(varchar,@d,121),121,'yyyy-mm-dd hh:mi:ss.mmm(24h)' union all select @d,convert(varchar,@d,126),126,'yyyy-mm-dd Thh:mm:ss:mmm(no spaces)'
Transformar DLL em Strongly mesmo sendo de terceiros.
Após vários dias resolvendo problemas de DLL de terceiros e com a obrigacao de serem Strongly para seu devido registro.
Achei um super programa que faz todo o trabalho pesado, e agiliza o desenvolvimento:
https://brutaldev.com/post/NET-Assembly-Strong-Name-Signer
Vai fazer o Signed da sua DLL.
Duplicar uma tabela no SQL Server
/*BACKUP – TABLE SQL SERVER – CRIAR TABELA E DADOS*/
SELECT * INTO [CADASTROCLIENTES].[dbo].[Usuario_BKP] FROM [CADASTROCLIENTES].[dbo].[Usuario]
ISSO IRÁ FAZER A DUPLICAÇÃO DA TABLE!!
DUPLICA A TABELA COM A ESTRUTURA E OS DADOS!!
OUTLOOK TRAVANDO TODA HORA
OUTLOOK.EXE /cleanreminders /NoExtensions
OUTLOOK.EXE /safe
/noExtensions | Inicia o Outlook com as extensões desativadas, mas listadas no Gerenciador de Suplementos. |
/safe | Inicia o Outlook sem extensões, Painel de Leitura ou personalização da barra de ferramentas. |
/cleanreminders | Limpa e gera novos lembretes. |
Ultimamente tenho utilizado o Outlook em modo segurança pois algumas extensões do Outlook andam travando muito meu PC.
Eu recomendo a opção, desta forma você conseguirá abrir o Outlook e analisar posteriormente suas extensões:
OUTLOOK.EXE /cleanreminders /NoExtensions
Adicionar barra de rolagem no VB6 – scroll vb6
Primeiro baixe o
MOUSE WHEEL
http://download.microsoft.com/download/e/f/b/efb39198-7c59-4ace-a5c4-8f0f88e00d34/vb6mousewheel.exe
E aqui passo a passo de como você deverá fazer para fazer funcionar o SCROLL NO VB6
****
Click Start, click Run, type regsvr32 \VB6IDEMouseWheelAddin.dll, and then click OK.
VB6 – Gerar excel com retorno de uma procedure, colunas dinâmicas
Private Sub MENURpt_Click() Dim sSql As String Dim cTitulo As String Dim DATA As String DATA = InputBox("ENTRAR COM DATA: ", "Report EXCEL") If DATA <> "" Then sSql = "exec sp_PROCEDURE_TAL'" & DATA & "'" cTitulo = "TÍTULO GERANDO NO VB6 EXCEL USANDO Excel.Application " & DATA RptExcell sSql, cTitulo End If End Sub
Public Sub RptExcell(sSql As String, cTitulo As String) 'RECEBE O SQL E O TITULO Dim aColumnas() As String Dim nColumnas As Integer Dim rdors As New ADODB.Recordset Dim i As Integer Screen.MousePointer = vbHourglass ' Ejecuto el Sql Set rdors = gCnAdo.EjecutarRecordset(sSql) ' Leo los nombres de las columnas nColumnas = rdors.Fields.Count ReDim aColumnas(nColumnas) For i = 0 To nColumnas - 1 aColumnas(i) = rdors(i).Name Next i ' Cargo en Excel Dim ExcelApp As New Excel.Application Dim ExcelWorkbook As Excel.Workbook Dim nFila As Long Dim nHoja As Integer ExcelApp.Workbooks.Add nFila = 5 nHoja = 1 GoSub TituloColumnas While Not rdors.EOF For i = 1 To nColumnas ExcelApp.Worksheets(nHoja).Cells(nFila, i) = rdors(i - 1) Next i nFila = nFila + 1 If nFila > 60000 Then GoSub TituloHoja nHoja = nHoja + 1 nFila = 5 GoSub TituloColumnas End If rdors.MoveNext Wend GoSub TituloHoja ExcelApp.Visible = True If rdors.State = adStateOpen Then rdors.Close Set rdors = Nothing Screen.MousePointer = vbDefault Exit Sub TituloHoja: 'Ajustando a largura das colunas antes de colocar o título ExcelApp.Worksheets(nHoja).Columns.AutoFit ' Formato DO titulo ExcelApp.Worksheets(nHoja).Cells(1, 1) = cTitulo ExcelApp.Worksheets(nHoja).Cells(1, 1).Font.Bold = True ExcelApp.Worksheets(nHoja).Cells(1, 1).Font.Size = 14 ExcelApp.Worksheets(nHoja).Cells(1, 1).Font.Underline = True Return TituloColumnas: For i = 1 To nColumnas ' Nome ExcelApp.Worksheets(nHoja).Cells(4, i) = aColumnas(i - 1)</pre> <pre>' Formato ExcelApp.Worksheets(nHoja).Cells(4, i).Font.Bold = True ExcelApp.Worksheets(nHoja).Cells(4, i).Borders.Value = 7 ExcelApp.Worksheets(nHoja).Cells(4, i).Interior.Color = RGB(67, 214, 233) ExcelApp.Worksheets(nHoja).Cells(4, i).HorizontalAlignment = 3 Next i Return End Sub
LINQ lambda adicionando vários filtros inside
Além de procurar o mesmo texto em todos os campos, temos um exemplo nesta instrução de como tratar caso trabalhe com campos possíveis NULL dentro da consulta. Vide:
(!string.IsNullOrEmpty(f.CAMPOTAL)) && f.CAMPOTAL.ToUpper().Contains(texto)</pre>
OBS: Esse condição é necessária pois esse campo pode retornar NULL, e isso daria um Object Not Reference…
/// <summary> /// Efetua consulta Avaçada de Fornecedor /// </summary> /// <param name="fornecedor_">Fornecedor</param> /// <returns>Lista de Fornecedores</returns> public List<FornecedorVO> ConsultaAvancada(FornecedorVO fornecedor_, string texto) { string textoCPFCNPJ = Util.RemoverMascaraCNPJ(texto); string textoTel = Util.RemoverMascaraFoneDDD(texto); string textoData = Util.RemoverMascaraData(texto); return (from f in this.Context.FornecedorVOSet select f).ToList().Where(f => f.RazaoSocial.ToUpper().Contains(texto) || f.CNPJ.Contains(textoCPFCNPJ) || f.CPF.Contains(textoCPFCNPJ) || f.Emissor.ToUpper().Contains(texto) || f.InscricaoEstad.ToUpper().Contains(texto) || f.Taxa.ToUpper().Contains(texto) || f.NomeFantasia.ToUpper().Contains(texto) || f.Endereco.ToUpper().Contains(texto) || f.Complemento.ToUpper().Contains(texto) || f.Bairro.ToUpper().Contains(texto) || (!string.IsNullOrEmpty(f.CampoAberto)) && f.CampoAberto.ToUpper().Contains(texto) || (!string.IsNullOrEmpty(f.PrazoPagamento)) && f.PrazoPagamento.ToUpper().Contains(texto) || f.Estado.ToUpper().Contains(texto) || f.CodIBGE.ToUpper().Contains(texto) || f.CEP.Contains(texto) || f.EmailRecebNF.ToUpper().Contains(texto) || f.Email.ToUpper().Contains(texto) || f.Contato.ToUpper().Contains(texto) || f.Moeda.Contains(texto) || f.MoedaQuant.Contains(texto) || f.MatServTipoServ.ToUpper().Contains(texto) || f.Agencia.Contains(texto) || f.NumConta.Contains(texto) || f.Observacoes.ToUpper().Contains(texto) || f.UFAdvancingPrice.ToUpper().Contains(texto) || f.CatCode30.Contains(texto) || f.ClassficationBaggio.ToUpper().Contains(texto) || f.CodCat.Contains(texto) || f.ModProcessLote.ToUpper().Contains(texto) || f.DataEmissao.HasValue && f.DataEmissao.Value.ToString("ddMMyyyy").Contains(textoData) || f.Numero.HasValue && f.Numero.Value.ToString().Contains(texto) || f.ComodityType.HasValue && f.ComodityType.Value.ToString().Contains(texto) || f.NumCopOC.HasValue && f.NumCopOC.Value.ToString().Contains(texto) || f.DecimaisQtd.HasValue && f.DecimaisQtd.Value.ToString().Contains(texto) || f.DecimaisVal.HasValue && f.DecimaisVal.Value.ToString().Contains(texto) || f.DDDFax.HasValue && f.DDDFax.Value.ToString().Contains(textoTel) || f.DDDFone.HasValue && f.DDDFone.Value.ToString().Contains(textoTel) || f.Telefone.HasValue && f.Telefone.Value.ToString().Contains(textoTel) || f.FoneFax.HasValue && f.FoneFax.Value.ToString().Contains(textoTel) ).ToList(); }