• advertisement_alt
  • advertisement_alt
  • advertisement_alt

nathanreys

Members
  • Content count

    32
  • Joined

  • Last visited

  • Days Won

    8

nathanreys last won the day on July 2

nathanreys had the most liked content!

Community Reputation

36 Excellent

About nathanreys

  • Rank
    Terceiro Sargento
  1. De um modo geral, use a função "Event" (https://help.windev.com/?3015011) Coloque o código abaixo na inicialização do projeto, você verá que em qualquer janela que se pressione F6 ele dará um "info" Aí é só trabalhar para modificar da maneira que precisa EXTERN "WinConst.wl" EXTERN "KeyConst.wl" Event(Teste,".",WM_KEYDOWN) INTERNAL PROCEDURE Teste IF KeyPressed(VK_F6) THEN Info("rolou f6") END Os links abaixo são complementares para melhor entendimento https://help.windev.com/?6510001&name=value_constants_for_the_windows_32bit_api https://help.windev.com/en-US/?1511013&name=EXTERN https://doc.windev.com/?3014007
  2. Não identifiquei um comando direto que dê para atribuir a posição do caption, porém imagino duas maneiras de se fazer isso: - Se for algo específico para uma ou bem poucas janelas do seu projeto: --> Crie um novo edit com o estilo da maneira que deseja (Description -> Style) --> Posicione esse edt fora da janela que é apresentada ao usuário --> No seu código utilize o seguinte comando: edt_atual..Style = edt_estilizado..Style --> Dependendo das diferenças do estilo talvez você tenha que ajustar a largura do edt https://help.windev.com/?1000021472&name=style_property - Se for algo que deve abranger muitas partes do projeto --> Crie um novo estilo a partir de um existente em seu projeto --> Utilize a função ChangeStyle (https://help.windev.com/?1000017171) para modificar o estilo do controle Sobre a criação de um novo estilo aplicável a seu projeto, acredito que em uma pesquisa rápida pelo help da ferramenta você encontrará facilmente. Não cheguei a criar estilos próprios no windev, então não sei lhe indicar de prontidão o caminho
  3. Os registros citados foram criados após definição da chave como "unique"? No seu código de inclusão, está realizando algum tratamento extra como as options do HAdd " hIgnoreDuplicates " ou " hIgnoreIntegrity"?
  4. No webdev eu costumo trabalhar bastante com template de página De uma estudada no recurso Nesse caso, um site feito a partir de um template base, você colocaria esse código em uma página apenas, no template. E assim todas as outras páginas construídas a partir do template herdariam o código.
  5. Sessão (webdev dinâmico), o awp não tem esse tratamento de contexto automático né? Ainda não desenvolvi nenhum projeto em AWP
  6. Me desculpa a distração @LuckSilver, não havia me atentado que o tópico era referente ao Webdev. Porém trabalho da mesma maneira No código do projeto "Initializing XXX (server)" tenho uma variável global para conexão gctMyConnectionCNPJ is Connection // Conexão com a base de dados referente ao CNPJ da empresa gctMyConnectionCNPJ..Provider = hAccessHFClientServer gctMyConnectionCNPJ..Database = "" // Será atribuido após login no sistema gctMyConnectionCNPJ..Server = "localhost" E assim que o usuário acessar o sistema pela tela de login tenho o seguinte código gctMyConnectionCNPJ..Database = gsCNPJLogado + "_NomeBaseDados" HChangeConnection("*",gctMyConnectionCNPJ) HModifyStructure("*",hmsBackgroundTask) HCreationIfNotFound("*",hDelayedOpening) E não faço nada mais além disso em relação a conexão Nessa simulação por exemplo, ao logar o cliente é redirecionado para uma base de dados própria da sua empresa
  7. Você também pode identificar direto a linha que precisa alterar algum valor da coluna através da função TableSeek (https://help.windev.com/en-US/?3074015&name=TableSeek) E após, fazer a alteração da maneira que o @FABRÍCIO indicou. Ficando algo similar a: nPosicao is int = TableSeek(COL_ID, "5", searchExactMatch) IF nPosicao <> -1 THEN Table[nPosicao}.COL_X = "OK"
  8. Como você está dentro do exception, basta forçar o desvio indicando que uma exceção ocorreu, assim não precisa nem do seu contador Altere a linha "IF HModify(a16cid) = False THEN nContaErro++" para "IF HModify(a16cid) = False THEN ExceptionThrow(1)" Dessa maneira está sendo indicado manualmente que ocorreu uma exceção neste ponto do código e o fluxo vai ser desviado para o DO, onde você pode por exemplo, cancelar as transações https://help.windev.com/en-US/?3034005&name=ExceptionThrow
  9. O apontamento não precisa ser refeito a todo momento não, a não ser que você em algum ponto esteja fechando essa conexão novamente Aqui não tenho esse problema não. Tente deixar essa sua variável de conexão criada como global do projeto ou então mudar os parâmetros da própria conexão da analysis Tenho um projeto aqui que faz a troca logo no início, na "End of initialization" da primeira janela que o sistema abre. MyConn..Provider = hAccessHFClientServer MyConn..User = sUsuario MyConn..Password = sSenha MyConn..Server = sServidor + ":" + sPorta MyConn..Database = sDatabase // Alterar conexões HChangeConnection("*",MyConn) // Manter a conexão das configurações DFe LOCAL ctMyConn_Classic is Connection ctMyConn_Classic..Provider = hAccessHF7 HChangeConnection(DFe,ctMyConn_Classic)
  10. Se eu não estiver muito errado, a maneira do acesso direto ao "STC_Teste" só funcionaria se a janela já estivesse aberta no momento do uso de "Win_Teste.STC_Teste" Se chamar isso e a janela não estiver aberta, ocorre erro na execução pois está chamando um controle que ainda não existe Tirando a passagem por parâmetro, não me vem a mente nenhuma outra maneira de atribuir um valor para algo que ainda "não existe"
  11. Talvez não tenha entendido muito bem a sua necessidade e também nunca importei para o projeto o print preview, mas da maneira tradicional, passando o parâmetro pelo iPrintReport e no relatório tratar o parâmetro para saber se registra ou não, poderia lhe auxiliar em algo? iPreview() iInitReportQuery(RPT_ContasReceber_Cliente,gsCNPJAtivo,EDT_DataInicial,EDT_DataFinal) iPrintReport(RPT_ContasReceber_Cliente,EDT_DataInicial,EDT_DataFinal)
  12. Qual a versão do Windev utilizado? Seu relatório é por programação ? Baseado em arquivo ? Em query? Se for em query, tem-se antes do iPrintReport o uso da função "iInitReportQuery" para inicializar a query e os possíveis parâmetros
  13. nContador is int = 0 nRetorno is int nRetorno = SQLFetch("aSQL") Trace("primeiro retorno: " + nRetorno) WHILE nRetorno = 0 nContador += 1 nRetorno = SQLFetch("aSQL") Trace("meu retorno dentro do while agora foi " + nRetorno) END Trace("entrei no loop " + nContador + " vezes") Algo nesse sentido Veja também se usando SQLNext não resolve sua situação, baseado no exemplo do help (https://help.windev.com/?3072030&name=sqlnext_function)
  14. Segundo o próprio help, o uso dessa função seria dessa maneira mesmo (https://help.windev.com/?3072011&name=sqlfetch_function) Sugiro ir debugando mais detalhadamente para ver se encontra algo como: - Ver se não tem nenhum SQLClose no meio do tratamento da recuperação do resultado do select - Confirmar se a consulta realmente está retornando mais de um registro usando diretamente a interface do gerenciador do banco de dados que usa - Colocar o retorno do SQLFetch em uma variável e ver qual o valor que ela retorna, apenas para debug, e verificar se o código retornado indica algum erro - Utilizar o próprio debug da ferramenta, para ver o conteúdo das variáveis passo a passo, as vezes isso lhe indica um caminho do erro
  15. Um buscar em um disco inteiro levaria um tempo bem considerável, eu também partiria da premissa do @Janio Aguiar, onde teria pelo menos um diretório base para diminuir esse range, mas acredito que utilizando a função fListFile você consegue realizar esse tratamento de busca a partir do diretório raiz do disco (https://doc.windev.com/en-US/?3036058&name=flistfile_function) Essa função prevê uma chamada callback padrão para cada arquivo encontrado Acredito que seja esse o caminho caso queira realizar tal procedimento