terça-feira, 13 de janeiro de 2015

Windev Internet Abrir Navegador

Windev Internet Abrir Navegador

Segue exemplo:

bStarted
is boolean
sParameters is string = "http://www.arsistemas.com.br"
bStarted = ExeRun("""C:\Program Files\Internet Explorer\iexplore.exe"" " + sParameters, exeActive, exeDontWait, "C:\Program Files\Internet Explorer\")

IF ErrorOccurred THEN
    Error()
END
--------------------


Windev Estruturas

Windev Estruturas

stFILE is structure as FILENAMEprodutos
// Cria uma estrutura igual a analyse 
MyFileRecord is Record of MyAnalysisFile

// use as funções hreadxxx... para localizar record no arquivo original
//pra preehcer as estruturas com os nomes dos campos
MyfileRecord = MyAnalysisFile

MyfileRecord = MyAnalysisFile
//depois é só fazer a atribuição

algumacoisa = MyFileRecord.nomedocampo 


Windev Pdf para Texto

Windev Pdf para Texto

//Procedimento para Extrair texto de arquivos PDF com Windev
tmpArq is string
tmpArq = fImageSelect(EdtArqPdf,"","Selecione PDF...","PDFs"+TAB+"*.PDF")
IF tmpArq<>"" THEN
       EdtArqPdf = tmpArq  // mostra o nome do arquivo na tela
       ImgPDF = tmpArq            // mostra o PDF na tela
       StaTextoDoPDF =  PDFToText(tmpArq,"1") // extrai texto pg 1
END
 
 

Windev Data e Hora

Windev Data e Hora

Posix (Unix Timestamp) corresponde ao número de segundos após 01/01/1970.
 // Summary: Converte Data/Hora para Tempo Unix (Posix) = nro. de sgundos após 01/01/1970 
 // Syntax:
 //[ <Result> = ] ConvDtHo2UnixTime (<pDtHo> is datetime)
 //
 // Parameters:
 // pDtHo (datetime): data e hora a converter
 // Return Value:
 // duration: // data Posix (timestamp Unix)
 //
 // For instance:
 // tmpUnix is duration = ConvDtHo2UnixTime(tmpdtho)
 // TempoUnix = tmpUnix..InSeconds
 //
 PROCEDURE ConvDtHo2UnixTime(pDtHo is DateTime)

 tmpDtHo is DateTime = pDtHo
 tmpDtHo..Millisecond = 0

 // calcula a diferença de tempo entre 01/01/1970 e a data fornecida
 tmpDif is TO string = DateTimeDifference("19700101000000",tmpDtHo)

 // calcula a data Posix
 tmpUnix is Duration = StringToDuration(tmpDif,durationCenti)
 tmpUnix..Millisecond = 0

 RESULT tmpUnix

// Summary: Converte Tempo Unix (Posix = nro. de sgundos após 01/01/1970) para Data/Hora
 // Syntax:
 //[ <Result> = ] ConvUnixTime2DtHo (<pUnixTime> is numeric)
 //
 // Parameters:
 // pUnixTime (numeric): data Posix (timestamp Unix)
 // Return Value:
 // datetime: // data e hora
 //
 // For instance:
 // tmpUnix is numeric = TempoUnix
 // tmpDtHo is datetime = ConvUnixTime2DtHo(tmpUnix)
 //
 PROCEDURE ConvUnixTime2DtHo(pUnixTime is numeric)
 tmpMaxInt4b is int on 4 bytes = 2147483647
 tmpSegundos is int on 8 bytes
 tmpUnix is Duration
 IF pUnixTime <= tmpMaxInt4b THEN
 tmpUnix..Second = pUnixTime
 ELSE // para suportar datas após 19/01/2038 e Posix > 2147483647 (valor máximo em 4 bytes)
 tmpSegundos = pUnixTime
 LOOP
 tmpUnix..Second += tmpMaxInt4b
 tmpSegundos -= tmpMaxInt4b
 IF tmpSegundos < tmpMaxInt4b THEN
 tmpUnix..Second += tmpSegundos
 BREAK
 END
 END
 END
 tmpDtHo is DateTime = "19700101000000"
 tmpDtHo += tmpUnix

 RESULT tmpDtHo

Fonte: LIFETECH

 

Windev Aliases

Windev Aliases


HAlias

            Cria um aliás lógico para um arquivo de dados (ou consulta), ou cancela todos os aliases existentes. Um aliás também pode ser cancelado pela sentença HCancelAlias, da Wlanguage.
            Para quem não lembra mais, permite que você trabalhe em arquivos de dados físicos diferentes, mas com a mesma descrição lógica. Para todos os arquivos de dados, por exemplo, a descrição do arquivo é realizada na Análise (ou dicionário de dados, se preferirem), e HAlias, é usado para criar uma cópia lógica desse arquivo.
            A partir da versão 17 do WinDev, esta função também está disponível para aplicações Ipad e Iphone.

Exemplo de uso

Pedidos2000 is Data Source
// Cria um alias para o arquivo “Pedidos”
IF HAlias(Pedidos, Pedidos2000) = True THEN
// Agora "Pedidos2000" pode ser usado pelo processo.
// Ele se comporta da mesma maneira que o arquivo "Pedidos" descrito na
// Análise
// Nome do arquivo físico associado: Pedidos2000.
HCreationIfNotFound(Pedidos2000)
END

Sintaxe

<Result> = HAlias(<Nome Lógico> [, <Nome do Aliás>])

<Result>: Boolean
  • True Se o aliás foi criado,

Windev Internet conexao

Windev Internet conexao

Muitas vezes, antes de enviarmos um comando que faça acesso a Internet, é conveniente verificar se a conexão está ativa, para não exibir uma mensagem "pouco amigável" para  o usuário. O código abaixo faz esta verificação:
ResConnection = InternetConnected()
IF ResConnection = True THEN
//Executa a sua rotina
ELSE
Info("Não existe conexão com a Internet. O programa não pode continuar")
END


Windev HttpRequest Consulta Completa

Windev HttpRequest Consulta Completa

Dependendo da consulta a ser executada, pode funcionar corretamente no navegador, mas retornar um resultado errado com a função HTTPRequest da WLanguage. Normalmente isso ocorre devido à uma má codificação da requisição, e o servidor WEB não tem como explorar adequadamente o recurso. Neste caso é necessário codificar adequadamente a consulta com a função URLEncode da WLanguage e em seguida passar a sequência codificada para a função HTTPRequest.
sminhaconsulta is string = "http://..."
//codifica a consulta via URLEncode
//substitui os espaços por %20, por exemplo
sminhaconsulta = URLEncode(sminhaconsulta)
//executa a consulta codificada
HTTPRequest(sminhaconsulta)
 
 

Windev Imprimir Ip/Porta

Windev Imprimir Ip/Porta

Muitas vezes precisamos enviar comandos diretamente a uma impressora (exemplo Impressoras PCL) e mais anda para um determinado endereço e porta.
Veja o exemplo abaixo:
/ / Imprime diretamente para a impressora
/ / No endereço: 192.168.15
/ / Na porta da rede: 9100
 
iDestination (iPCL, "192.168.15:9100")
//Imprime "alo" no canto superior esquerdo da página
 
iPrint (iYPos (10) iXPos + (10) + "Alo")
iEndPrinting()
 
 

Windev Tablea Colunas Cores

Windev Tablea Colunas Cores

Para fazer estes tratamentos, utilizamos os comandos g*.
Exemplo
TABLE_LOG_GRANDE_USUARIO.COL_CEP..Caption = gPen(LightRed) + "CEP"
//Faz com que o título CEP apareça em vermelho.
Para atribuir cores ao conteúdo de uma determinada coluna
// Fonte em azul
TABLE_LOG_GRANDE_USUARIO.COL_CEP..Color = iLightBlue
// Fundo em verde
TABLE_LOG_GRANDE_USUARIO.COL_CEP..BrushColor = iLightGreen
 
 

Windev Tabela Celulas

Windev Tabela Celulas


Considere:
VAL_soma_das_vendas
// como sendo o nome da célula
TCD_venda_cliente  
// como sendo o nome da tabela dinâmica
COL_NomeCliente
// como sendo o nome do cliente
COL_
Data_Ano
// como sendo o perído
// Claro que você deverá estar manipulando a tabela por células e não por linhas.
No evento DisplayCell desua tabela entre um código semelhante a:
IF TCD_Venda_Cliente.VAL_soma_das_vendas > 200 THEN
    TCD_Venda_Cliente.VAL_soma_das_vemdas .. Color = RGB (45, 255, 0)
END
IF TCD_Venda_Cliente.VAL_soma_das_vemdas <100 THEN
    TCD_Venda_Cliente.VAL_soma_das_vemdas .. Color = RGB (254, 0, 29)
END

Windev Pagina Httpgetresult

Windev Pagina Httpgetresult

// Retorna o código HTML da página "www.windev.com" 
ResStart = HTTPRequest("http://www.windev.com")
IF ResStart = True THEN
Info("O código HTML é: " + HTTPGetResult())
END
// Exemplo de processamento de um erro retornado pelo servidor web
url is string 
HTTP_Res is string
HTTPError is string
Url = "http://www.amazon.fr/s/ref=nb_ss?__mk_fr_FR=AMAZON&url" + ...
"=search-alias=aps&field-keywords=2746049805"

// Envia uma solicitação para o servidor da Amazon
IF HTTPRequest(Url) THEN
// Solicitação enviada, a url é válida
HTTP_Res = HTTPGetResult()
IF Length(HTTP_Res) = 0 THEN
// Erro do servidor web, 
// os detalhes do erro estão no cabeçalho da página
HTTPError = HTTPGetResult(httpHeader)
Error(HTTPError)
END
END





Windev Moblie Celular Sms

Windev Moblie Celular Sms

// Summary : envia uma mensagem SMS e retorna o resultado TRUE/FALSE
 // Syntax :
 //[ <Résultat> = ] EnviarSMS (<pNúmero>, <pMensagem>)
 //
 // Paramètres :
 // pNúmero : número do telefone celular
 // pMensagem : mensagem com até 160 caractertes
 // Valeur de retour :
 // booléen : // TRUE=sucesso, FALSE=falha no envio
 //
 PROCEDURE EnviarSMS(pNúmero,pMensagem)

 SMS.Number = pNúmero
 SMS.Message = pMensagem

 IF SMSSend() THEN 
 RESULT True
 ELSE
 Error(ErrorInfo(errMessage)) 
 RESULT False
 END

// Fonte Lifetech
 
 
 

Windev Moblie Cartao Sd Pasta

Windev Moblie Cartao Sd Pasta

// Summary : retorna o diretório definido no cartão SD
 // Syntax :
 //[ <Résultat> = ] DiretórioDoCartãoSD()
 //
 PROCEDURE DiretórioDoCartãoSD()

 DirCartãoSD is string 
 StatusCartão is int = SysStatusStorageCard()

 IF StatusCartão = sysCardAvailable THEN
 DirCartãoSD = SysDirStorageCard() + ["/"] + "Android Analytics"
 IF NOT fDirectoryExist(dirCartãoSD) THEN fMakeDir(dirCartãoSD)
 END

 RESULT DirCartãoSD
 
 

Windev Mobile Protecao Tela

Windev Mobile Protecao Tela

//Desativar Bloqueio de Tela, protecao de tela, hibernar
import android.app.Activity;
import android.view.Window;
import android.view.WindowManager.LayoutParams;

public static void DesativarBloqueioTela(boolean keepScreenOn) {
    Activity xa = getCurrentActivity();
    Window xw = xa.getWindow();
    if (keepScreenOn == true) {
        xw.addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    } else {
        xw.clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    }
}

Windev Mobile Sqlite

Windev Mobile Sqlite

import android.database.sqlite.*;
import android.content.Context;
import android.util.*;
import android.database.*;
public static String AtivarDesativarIntegridadeSQLite(String sTipo){
String DB_NAME = "O NOME DO SEU ARQUIVO.db";
String alterQuery = "";
SQLiteDatabase db;
try {
db = getContexteApplication().openOrCreateDatabase(DB_NAME, 0, null);
try {
if (sTipo.toLowerCase() == "desativar"){
db.execSQL("PRAGMA synchronous = OFF;");
db.rawQuery("PRAGMA journal_mode = OFF;",null);
}
else{
db.execSQL("PRAGMA synchronous = FULL;");
db.rawQuery("PRAGMA journal_mode = DELETE;",null);
}
db.close();
return "ok";
} catch(SQLException e) {
db.close();
return e.getMessage();
}
} catch (SQLException e) {
return e.getMessage();
}
}

// USANDO NA SUA APLICAÇÃO
IF InAndroidSimulatorMode() = False THEN 
sErro is string = AtivarDesativarIntegridadeSQLite("desativar")
IF sErro <> "ok" THEN 
Error(sErro)
EndProgram()
END
ELSE
        HExecuteSQLQuery(Query,Minhaconexao,hQueryWithoutCorrection,"PRAGMA synchronous = OFF;")
        HExecuteSQLQuery(Query,Minhaconexao,hQueryWithoutCorrection,"PRAGMA journal_mode = OFF;")
END
 
 

Windev Mobile Rede

Windev Mobile Rede

A função da Wlanguage InternetConnected permite verificar se uma conexão de Internet está ativa para o dispositivo móvel. Esta função é muito útil para testar a conexão com a internet antes de realizar qualquer processo que exija uma conexão com a rede mundial de computadores.
Esta função da Wlanguage realiza um teste de acesso ao servidor de DNS do Google.
Não há nenhuma porta específica a ser aberta. A função simplesmente verifica se é possível realizar um PING no servidor.


Windev Mobile Vpn

Windev Mobile Vpn


A função NetOpenRemoteAccess permite estabelecer uma conexão remota e especialmente uma conexão VPN.
A função NetCloseRemoteAccess permite fechar a conexão.
Por exemplo, para estabelecer uma conexão remota com um PC
// Inicia uma conexão de internet em um PC
// O nome da conexão usa o nome definido na conexão do Painel de controle.
Report is int = NetOpenRemoteAccess("Connection_LiveBox")
IF 
Report = 0 THEN
        ...
        NetCloseRemoteAccess()
ELSE
        Error("Error durante a conexão", NetMsgError(Report))
END
Para abrir uma conexão em um smartphone
// Abre uma conexão a partir de um  Smartphone
sConnectionName is string 
nCntReturn is int

// Nome da conexão é dado pelo provedor
sConnectionName = "Bouygues Internet"

// Estabiliza a conexãon
nCntReturn = NetOpenRemoteAccess(sConnectionName) 
IF 
nCntReturn = 0 THEN// Processo requerido
// ...
NetCloseRemoteAccess(sConnectionName)
ELSE
Error("Erro durante a conexão:", NetMsgError(nCntReturn))
END
O retorno desta função é um inteiro com as seguintes características:
  • 0 (zero) se a conexão for bem sucedida;
  • De outra forma, ocorre um erro que pode ser especificado pela função NetMsgError.
  •  
  •  

Teste

Teste
teste