
Macêdo
Membros-
Total de itens
303 -
Registro em
-
Última visita
Tudo que Macêdo postou
-
Se você estiver gerando seu relatorio através de um recordset fica facil, é só criar uma SQL que some a venda some o custo e fazer a diferença de valores e jogar estes valores na text do DataReport Pegue como exemplo a dica que postei na seção de tutoriais e dicas: http://scriptbrasil.com.br/forum/index.php?showtopic=109308
-
Seu Datareport é gerado com ou sem o controle Dataenvironment ?
-
Gabriel põe este: DESistempo.rsCommand1_Grouping.Filter = "Atend_Data >= '" & DTPicker1.Value & "' AND Atend_Data <= '" & DTPicker2.Value & "' and Atend_NomeFantasia = '" & cboNomeFantasia.Text & "'" DataReport1.Show Acho que assim passa
-
Gabriel, tem que ficar tudo na mesma instrução FILTER certo ? DESistempo.rsCommand1_Grouping.Filter = "Atend_Data >= '" & DTPicker1.Value & "' AND Atend_Data <= '" & DTPicker2.Value & "' where Atend_NomeFantasia = '" & cboNomeFantasia.Text & "'" Testa isto ai, verifica direito o código porque só fiz copiar e colar do seu certo ? só pra te explicar como funciona, é só por a condição where, poderia ser o contrario também .filter = nome like tal where data>= tal and <= tal Dudu, assim que puder te passo as dicas de como fazer os relatorios sem Dataenvironment e sem Command usando o Recordset e jogando os dados de consultas direto no DataReport, pois agora estou no trampo, mas da uma olhada em um dos ultimos post's de Gabriel que eu acho que expliquei isso pra ele valeu ? Qualquer duvida de vocês sobre DataReport é só postar ou entrar à noite no MSN jilney@hotmail.com, té mais. Acabei de postar uma dica na seção de tutoriais e dicas beleza ? depois postarei mais sobre DataReport.
-
abra um recordset para chamar os dados do BD para impressão general declarations: Dim cmd_relatorio As New ADODB.Command Dim rs_relatorio As New ADODB.Recordset No Form_Load: Private Sub Form_Load() With cmd_relatorio .ActiveConnection = cnn_Sua_Connexão .CommandType = adCmdText .CommandText = "Select campo1, campo2, campo3 from Tabela" Set rs_relatorio = .Execute End With End Sub Agora insira um DataReport em seu Projeto e ponha uma textbox para cada campo de sua tabela, neste exemplo são três. Depois coloque na Propriedade DataField de cada text o nome do campo da tabela que será impresso no relatorio, assim: ex: text = DataField text1 = campo1 text2 = campo2 text3 = campo3 agora é só chamar o relatório com o botão no form: Private Sub Cmd_relatorio_Click() With DataReport1 Set .DataSource = rs_relatorio .DataMember = "" .Refresh .Show End With End Sub Beleza? já viu que jogando todo tipo de filtro no Recordset da pra fazer muita coisa com esse relatório né?...Bons estudos Macêdo
-
Nem um nem outro Gabriel, dá uma olhada na propriedade DataSource do DataReport. Se você está usando um Objeto DataEnvironment com um Command não precisa deste código no botão nem de parametros para fazer filtro, o método mais simples e eficaz que conheço é usando o FILTER no Dataenvironment assim como nos outros controles vinculados ou como num Recordset beleza ? Se quiser criar o relatório sem Objetos vinculados (DataEnvironment e Command) que acho melhor, é só abrir um recordset fazer seus filtros e enviar os dados deste recordset para as textbox do Datareport.
-
Então vai ficar assim: If Text1.Text = "" Then Text1 = "0" ElseIf Text2.Text = "" Then Text2 = "0" ElseIf Text3.Text = "" Then Text3 = "0" ElseIf Text4.Text = "" Then Text4 = "0" End If Text5 = (Text1 * Text2 + Text3) * Text4 End Sub
-
você disse: O Text4.Text, tem que multiplicar o resultado do Text1, Text2, Text3 da pra explicar melhor ?, pois pelo que da pra perceber você quer multiplicar o text 1 com o text2 e somar com o produto do text3 com o text4 Se você quer colocar este resultado no text5 faça assim, antes coloquei para que verifique se houver campos em branco pois podem gerar erros: Private Sub Command1_Click() If Text1.Text = "" Then Text1 = "0" ElseIf Text2.Text = "" Then Text2 = "0" ElseIf Text3.Text = "" Then Text3 = "0" ElseIf Text4.Text = "" Then Text4 = "0" End If Text5 = Text1 * Text2 + Text3 * Text4 End Sub
-
Meu Office veio com este programa, não faço ideia pra que ele sirva alguém pode me passar algo ?
-
Opa! tem erro aí camarada: Private Sub DataReport_Activate() rptAtendimentos.Sections("PageHeader").Controls("lblData").Caption = "Período de Referência: " & DTPicker1.Value & " a " & DTPicker2.Value & "" End Sub o erro: ("!pageheader") troca por ("section2") assim Private Sub DataReport_Activate() rptAtendimentos.Sections("section2").Controls("lblData").Caption = "Período de Referência: " & DTPicker1.Value & " a " & DTPicker2.Value & "" End Sub
-
Nada errado não Gabriel, é assim mesmo! pode continuar...("lbldata").caption = textdata.text
-
fiz o seguinte e deu certo, então é só você ver o código e ajustar ao seu projeto beleza ? Insira três textbox, depois cole o código abaixo no form_load (o text1 será onde coloca a data de nacismento)(o text2 chama a data atual) ( o text3 aparece a idade) Private Sub Form_Load() Text1.Text = CDate("5/12/1977") Text2.Text = CDate(Date) Dim vDataInicial As Date Dim vDatafinal As Date vDataInicial = CDate(Text1.Text) vDatafinal = CDate(Text2.Text) Text3.Text = (vDatafinal - vDataInicial) / 365 End Sub
-
exemplo: neste eu ponho para aparecer numa label que está na seção 4 do Datareport o caption de um frame + as datas que aparecem em dois textbox's datareport1.Sections("Section4").Controls("Lbl1").Caption = Frame1.Caption & " de: " & TextDATAINICIAL & " a " & TextDATAFINAL ou seja: nome_do_relatorio.sections("seção_do_relatorio_onde_vai_aparecer_as_datas").controls("name_do_label_onde_vai_colocar_as_datas").caption = name_do_datapicker
-
Report Header - Título Em Todas As Páginas
pergunta respondeu ao Gabriel Cabral de Macêdo em Visual Basic
A forma de colocar para aparecer em todas as páginas realmente é só colocar na PAge Header, agora não entendi quando você falou que para colocar na Page Header tem que excluir a Report Header ? por que ? as duas partes trabalham juntas desta forma: o que você quiser que apareça apenas no inicio você põe na Report Header e o que quiser que apareça em todas as folhas coloca na Page Header, assim como você tem a Report Footer e a PAge Footer para final de relatorio e final de paginas. -
Acho que você quer saber onde colocar o código pra já aparecer na Statusbar sem precisar fazer comandos né ?, põe dentro do evento LOAD do FORM assim: Private Sub Form_Load() StatusBar1.Panels(1).Text = time StatusBar1.Panels(2).Text = Format(Date, "long date") End Sub Desta forma assim que o programa abrir já vai aparecer tudo preenchido.
-
Estou programando em VB 6.0, mas todos meus aplicativos utilizo o BD Access e gostaria de informações quanto ao espaço utilizado(memória) 1º todos os campos consomem a mesma quantidade de bytes ou KB ou seja lá o que for ? 2º o tamanho depende da quantidade de informações que estiver dentro de um campo, ex: um campo texto com 30 caracteres digitados é menor ou possui o mesmo tamanho que um campo text com 200 caracteres digitados ? 3º os campos MEMO suportam até quantos caracteres ? eles consomem menos tamanho que os campos text ? ou, se a segunda pergunta for verdadeira deve consumir mais por causa da quantidade de caracteres, se não, então seria melhor utilizar sempre MEMO ao invés de utilizar campos TEXTO mesmo que só sejam campos que iremos gravar Nomes, endereços, registros que requerem poucos caracteres. Então meus caros colegas podem me esclarecer um pouco estas duvidas ? desde já fico muito grato pela atenção de todos.
-
Posicionamento Dos Registros No Relatório
pergunta respondeu ao Gabriel Cabral de Macêdo em Visual Basic
as vezes o ajuste está nas seções abaixo ou acima e não na que pensamos estar o problema, você pode também dar um clikc com o botão direito no datareport e desmarcar a opção SNAP TO GRID que dá pra ajustar melhor os campos -
abre o recordset, faz um filter no campo nome e põe a condição: se encontrar avisa que o nome já existe na tabela e não grava, se não encontrar grava, exemplo: Dim cmd As New ADODB.Command 'objeto command Dim rs As New ADODB.Recordset 'Recordset With cmd 'faz o select .ActiveConnection = cnn_CONEXÃO .CommandType = adCmdText .CommandText = " select * from TABELA" Set rs = .Execute 'executando o recordset End With With rs rs.Filter = "NOME = '" & Text_NOME.Text & "'" 'procura o nome na tabela com o filtro If Not (.BOF And .EOF) Then ' se encontrou, informa que já existe Dim vJA_EXISTE_NO_ARQUIVO As Integer vJA_EXISTE_NO_ARQUIVO = MsgBox("o nome" & Text_NOME & " já existe na tabela", vbOKOnly + vbCritical, "ATENÇÃO") Else ' se não encontrou grava With cmd .ActiveConnection = cnn_CONEXÃO .CommandType = adCmdText .CommandText = " insert into TABELA " & _ .Execute Beleza ?
-
condição pra dentro camarada! if text_tal = "" then msgbox("campo obrigatorio") text_tal.setfocus else insert into ................................
-
StatusBar1.Panels(1).Text = time StatusBar1.Panels(2).Text = Format(Date, "long date") beleza?
-
Musashi Para preencher o Datagrid faço da seguinte forma, ponho no Form_Load: With Adodc1 .ConnectionString = cnn_Conexão .CommandType = adCmdText .RecordSource = "select * from tabela" .Refresh End With Desta forma o controle fica ligado à minha conexão, o que não irá dar erro de localização de BD como quando se configura o Controle ADODC pelas propriedades, além de utilizar SQL para configurar os dados que quero que retorne no DataGrid, e acho o DataGrid um controle que possui muitas qualidades de configuração que ainda não encontrei em nenhum outro GRID. OBS: não trabalho com o ADODC propriamente dito! ou seja, só utilizo da forma acima para preencher o DataGrid e mais nada, todas as consultas, inclusões, exclusões e todas outras rotinas são via Código.
-
Opa! beleza, valeu as dicas, coloquei no evento Keypress do Form e coloquei o KeyPreview = true, todas as text's e todas as combos escrevem maiusculas. Valeu!
-
Pessoal gostaria de saber se tem como fazer a seguinte rotina: eu utilizo o seguinte código para digitar sempre letras maiusculas em textbox e em combos: If KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Then KeyAscii = KeyAscii - 32 End If só que preciso colocar este código no evento Keypress de todas as text's e todas as combos, gostaria de saber se tem como por este código em algum evento do FORM e ele identificar quando for uma textbox ou uma combo e utilizar o código acima, entenderam?, assim eu só precisaria colocar o código uma vez no formulário. Desde já agradeço a atenção de todos
-
Instruções condidionais: Private Sub Cmd_Relatorio() if text1 <> "" and combo1 = "" um tipo de filtro rpt.show if text1 = "" and comb 1 <> "" outro filtro rpt.show if text1 <> "" and combo1 <> "" outro filtro rpt.show end if End Sub Existem mil maneiras de fazer NESTON! eu costumo criar uma SUB com filtros e chamo os filtros no botão que quero, exemplo: Private Sub FILTROS() coloco minhas possibilidades de filtro End Sub Chamo os filtros no botão: Private Sub Cmd_Impimir() FILTROS End Sub