sexta-feira, 23 de abril de 2021

DICAS 3313 - WINDEV WEBDEV MOBILE - Array Associativa - Associative array - Curso Array 20





https://youtu.be/V644jdGbmms




Bom Dia Boa Tarde Boa Noite

Mande um email pedido para receber todas notificaçoes dos videos 


Seja Membro do Canal

Esse Video vai estrear as  do dia 23/04/2021 

DICAS 3313 - WINDEV WEBDEV MOBILE - Array Associativa - Associative array - Curso Array 20



Assunto :


Array Associativa - Associative array
Vamos criar uma window - array
craindo um botao para utilitar os array 
Fazendo o codigo Array associativas 
Percorrendo a array criada e mostrando codigo e nome 
Lendo por codigo do cliente o array 
Vamos agora criar a tabela e alimentar com esse array 

---------------------   Codigo

// Criando array associative clientes


aa_array_clientes is associative array of string 
// Adicionando os clientes, poderia ser uma tabela
aa_array_clientes["1"] = "amarildo"
aa_array_clientes["3"] = "matos"
aa_array_clientes["5"] = "Cliente homologacao"
// lendo cada elemento dentro do array e mostrando ele
TABLE_clientes.DeleteAll()
FOR EACH ELEMENT sCodigo,sNome OF aa_array_clientes

    TABLE_clientes.AddLine(sCodigo,sNome)
END
// lendo o array pelo codigo do cliente e trazendo o nome o nome e mostrando
sTeste is string=aa_array_clientes["1"]
Info("Nome do cliente é :"+sTeste)
sTeste=aa_array_clientes["5"]
Info("Nome do cliente é :"+sTeste)


------------------ INDICE DO CURSO DE ARRAY e ESTRUTURA


WinDev - Array - 001/... Adiciona/Classifica Ordem/Mostra
WinDev - Array - 002/... Quantas Ocorrencias Array
WinDev - Array - 003/... ArrayDeleteLine - Eliminha uma Linha do Array
WinDev - Array - 004/... ArrayToString - Leva Array Para String
WinDev - Array - 005/... Seek - Procura Por Valor
WinDev - Array - 006/... ArrayDeleteDuplicate - Elimina itens duplos
WinDev - Array - 007/... Delete - Elimina Uma Linha
WinDev - Array - 008/... DeleteAll - Limpa Array
WinDev - Array - 009/... SwapLine - Mover de Lugar
WinDev - Array - 010/... Sum - Somar Array
ARRAYREVERSE - ARRAY - 011/ ... AULA 1185 
ARRAY INICIO - ARRAY 012 / AULA 1229

----------------------------------


PlayList WebDev tutorial Amarildo Webdev
Playlist Windev Tutorial Amarildo Windev
PlayList Windev Mobile 
Amarildo
Donwloads Windev
Windev
WxSolucoes
Matos Informatica
Repositorio Windev
Inscricao Evento Pcsof
Site forum Google 
Video sobre 3 Mil Videos Windev 
Video sobre Alfaserver servidor 












Associative array (Type of variable
Em francês: Tableau associatif (Type de variable)
Um array associativo é um tipo "avançado" de array: é usado para agrupar um conjunto de elementos do mesmo tipo. Cada elemento do array é indexado em qualquer tipo de informação (e não apenas em um índice numérico como nos outros tipos de arrays).
Observação : Este tipo de array permite que você acesse rapidamente qualquer elemento, com algumas opções nas strings.
Exemplo
// Preenche uma matriz associativa com os tamanhos de ficheiros
aaFileSize is associative array of int
aaFileSize["File1.txt"] = fSize("File1.txt")
aaFileSize["File2.txt"] = fSize("File2.txt")
 
// Recupera o tamanho de um arquivo
Trace(aaFileSize["File2.txt"])
 
// Procura os tamanhos dos arquivos
sFile is string
nSize is int
FOR EACH ELEMENT nSize,sFile OF aaFileSize
Trace(StringBuild("%1: %2"sFilenSize))
END


Sintaxe

Declarando uma matriz associativaEsconda os detalhes

<Array name> is associative array [(<Options> [, <Default value> [, <Key type> [, <Initial size>]]])] of <Type>
<Nome da matriz>:
Nome da variável de matriz a ser declarada.
<Opções>:
Combinação de constantes usadas para configurar o modo operacional da matriz:
WithDuplicatesEsta constante é usada para permitir duplicatas. Por padrão, uma matriz associativa não pode conter duplicatas.
ccIgnoreAccentSe o tipo de chave for uma string (por padrão), a indexação ignora os caracteres acentuados.
WEBDEV - Código do navegador Esta constante não está disponível.
ccIgnoreCaseSe o tipo de chave for uma string (por padrão), a indexação não diferencia maiúsculas de minúsculas.
ccIgnoreSpaceSe o tipo de chave for uma string (por padrão), a indexação ignora os caracteres de espaço.
ccIgnorePunctuationAndSpaceSe o tipo de chave for uma string (por padrão), a indexação não é sensível à pontuação e ignora os caracteres de espaço.
WEBDEV - Código do navegador Esta constante não está disponível.
WithoutDuplicates (padrão)Por padrão, uma matriz associativa não pode conter duplicatas.
Você tem a capacidade de não especificar essa constante.
O valor "*" permite que você mantenha o valor padrão da opção.
<Valor padrão>:
Valor retornado ao acessar um elemento não existente em uma matriz associativa sem duplicata. Este parâmetro é ignorado em uma matriz associativa com duplicatas. O valor padrão definido para o tipo da matriz é usado por padrão (0, "", False).
O valor "*" é usado para manter o valor padrão do tipo.
<Tipo de chave>:
Tipo da chave usada para navegar na matriz. Por padrão, a operação de navegação é realizada em uma chave de string. Os tipos autorizados são os seguintes:
wlStringCadeia de caracteres
wlUnicodeStringSeqüência de caracteres Unicode
wlDateData
wlDateTimeData hora
wlIntInteiro assinado de 4 bytes
wlInt_8Inteiro assinado de 8 bytes
wlUnsignedInt_4Inteiro de 4 bytes sem sinal
wlUnsignedInt_8Inteiro de 8 bytes sem sinal
wlTimeTempo
wlCurrencyMoeda
wlNumericNumérico
wlReal8 bytes reais
O valor "*" é usado para manter o tipo de chave padrão (string).
WEBDEV - Código do navegador Este parâmetro não está disponível.
<Tamanho inicial>:
Inteiro. Corresponde ao tamanho inicial da zona de memória para a matriz associativa.
A adição em uma matriz associativa pode ser muito longa se a matriz for redimensionada. No caso de múltiplas adições, recomendamos que você superdimensione a matriz para otimizar as adições.
O valor "*" permite que você mantenha o tamanho padrão.
WEBDEV - Código do navegador Este parâmetro não está disponível.
<Tipo>:
Tipo dos elementos encontrados na matriz.
WINDEVWEBDEV - Código do servidorjanelasLinuxiPhone / iPadApple WatchAplicativo universal do Windows 10Windows Mobile Observação: Os elementos que compõem o array também podem ser arrays, arrays fixos, arrays associativos, filas, pilhas ou listas.

Declaração de um parâmetro de matriz associativaEsconda os detalhes

<Parameter name> is associative array of <Type>
<Nome do parâmetro>:
Nome da variável de matriz a ser declarada.
<Tipo>:
Tipo dos elementos encontrados na matriz.
WINDEVWEBDEV - Código do servidorjanelasLinuxiPhone / iPadApple WatchAplicativo universal do Windows 10Windows Mobile Observação: Os elementos que compõem o array também podem ser arrays, arrays fixos, arrays associativos, filas, pilhas ou listas.
Observações

Acessando as matrizes associativas

As seguintes propriedades podem ser usadas para lidar com uma matriz associativa:
Count
Retorna o número de ocorrências na matriz.
EmptyUsado para descobrir se o array está vazio ou não.
As sintaxes como & Array e Array1 = Array2 não são permitidas. Matrizes associativas não permitem operadores de referência ou cópia.

Acessando os elementos das matrizes associativas

O acesso aos elementos encontrados em uma matriz associativa difere dependendo se a matriz associativa aceita duplicatas ou não.
Matriz associativa sem duplicata
Exist
MonTable [MyKey].Exists

Retorna True se o elemento MyKey existe, False caso contrário.
AndroidAndroid Widget Propriedade não disponível.
Empty
MonTableau [MyKey].Void

Retorna True se o elemento MyKey não existe, caso contrário False .
Count
MyArray [MyKey]. Occurrence

Retorna 1 se o elemento MyKey existir, 0 se o elemento não existir.
Assignment of element
MyArray[MyKey] = <Value>

Se o elemento MyKey não existir, um elemento MyKey será criado e designado com <Value>.
Se o elemento MyKey existir, seu valor será modificado.
MyArray[MyKey, Subscript] = Value

Um erro WLanguage ocorre se o subscrito for diferente de 1.
Um erro WLanguage ocorre se o elemento MyKey não existir.
Se o elemento MyKey existir, seu valor será modificado.

Sintaxe compatível com as matrizes associativas com duplicatas.
MyArray[MyKey]++

Cria a entrada na matriz associativa, com o valor padrão especificado ao declarar a matriz.
Access to element
MyArray[MyKey]

Se o elemento MyKey não existir, retorna o valor padrão da matriz.
Se o elemento MyKey existir, retorna o valor do elemento.
MyArray[MyKey, Subscript]

Um erro WLanguage ocorre se o subscrito for diferente de 1.
Um erro WLanguage ocorre se o elemento MyKey não existir.
Se o elemento MyKey existir, retorna o valor do elemento.

Sintaxe compatível com as matrizes associativas com duplicatas.
Address of element
&MyArray[MyKey]

Um erro WLanguage ocorre se o elemento MyKey não existir.
Se o elemento MyKey existir, retorna o endereço do elemento.
WEBDEV - Código do navegador Esta sintaxe não está disponível.
&MyArray[MyKey, Subscript]

Um erro WLanguage ocorre se o subscrito for diferente de 1.
Um erro WLanguage ocorre se o elemento MyKey não existir.
Se o elemento MyKey existir, retorna o endereço do elemento.

Sintaxe compatível com as matrizes associativas com duplicatas.
WEBDEV - Código do navegador Esta sintaxe não está disponível.
Matriz associativa com duplicatas
Exist
MonTable [MyKey].Exists

Retorna True se pelo menos um elemento MyKey existir, False se o elemento MyKey não existir.
AndroidAndroid Widget Propriedade não disponível.
Checking the existence of a key: Empty
MonTableau [MyKey].Void

Retorna True se o elemento MyKey não existir, False se houver pelo menos um elemento MyKey.
Number of elements found in a key: Property Count
MyArray [MyKey]. Occurrence

Retorna o número de elementos MyKey.
Assignment of element
MyArray[MyKey] = <Value>

Cria um elemento MyKey e atribui o valor especificado a este elemento (mesmo se os elementos MyKey já existirem).
MyArray[MyKey, Subscript] = Value

Um erro WLanguage ocorre se o subscrito for maior que o número de elementos existentes.
Um erro WLanguage ocorre se o elemento MyKey não existir.
Se o elemento MyKey existir, o valor do elemento identificado por seu subscrito será modificado.
Access to element
MyArray[MyKey]

Sintaxe inválida que dispara um erro WLanguage (porque vários elementos podem corresponder à mesma chave).
MyArray [MyKey, Subscript]

Um erro WLanguage ocorre se o subscrito for maior que o número de elementos existentes.
Um erro WLanguage ocorre se o elemento MyKey não existir.
Se o elemento MyKey existir, retorna o valor do elemento identificado por seu subscrito.
Endereço do elemento
& MyArray [MyKey]

Sintaxe não permitida
MyArray[MyKey, Subscript]

Um erro WLanguage ocorre se o subscrito for maior que o número de elementos existentes.
Um erro WLanguage ocorre se o elemento MyKey não existir.
Se o elemento MyKey existir, retorna o endereço do elemento identificado por seu subscrito.
WEBDEV - Código do navegador Esta sintaxe não está disponível.

Você tem a capacidade de usar a atribuição múltipla para as matrizes associativas.

Como inicializar um array associativo assim que ele for declarado?

Para inicializar uma matriz associativa assim que ela for declarada, tudo o que você precisa fazer é adicionar os pares "chave / valor" usando o operador [] (colchetes). A sintaxe é a seguinte:
aaMyArray is associative array of xxx = ...
[ [<key1>, <value1>], [<key2>, <value2>], ... ]

Por exemplo:
// Armazena as taxas de IVA por nome
aaVATRate is associative array of real = ...
[["Normal"0.2], ["Intermediate"0.1], ["Low"0.055]]

Navegando nas matrizes associativas

Os elementos de uma matriz associativa podem ser navegados usando a sintaxe FOR EACH específica para as matrizes associativas .

Funções e matrizes WLanguage

Várias funções WLanguage podem ser usadas para lidar com as matrizes associativas. Consulte Funções para gerenciar matrizes para obter mais detalhes.
Isso permite que você excluir um elemento de uma matriz associativa usando Exclui (ou ArrayDelete ) através da seguinte sintaxe:
Delete(ArrayName, key)
ArrayDelete(ArrayName,Key)

Parâmetros de matriz associativa

  • O tipo de elemento encontrado na matriz associativa passada no parâmetro deve ser igual ao tipo de declaração.
  • Uma matriz associativa não pode ser passada por valor. Uma variável deve necessariamente ser passada em parâmetro.
    Exemplo:
    // Adiciona um cliente ao array
    PROCEDURE AddCustomer(aaCustomer is associative array of CCustomer,
    sName is string,
    sInfo is string)
    // Builds the new customer object
    c is CCustomer(sNamesInfo)
    // Adds the new object into the array
    aaCustomer[sName] = c






  • Nenhuma verificação é realizada durante a compilação: as verificações são realizadas no tempo de execução.
  • Matrizes associativas não permitem operadores de referência ou cópia.

Matriz associativa de classes ou estruturas

Se você estiver usando uma matriz associativa de classes ou estruturas, as diferentes instâncias são copiadas automaticamente durante as adições.
Se você estiver usando um array associativo de classes dinâmicas ou estruturas dinâmicas , as classes ou estruturas devem ser alocadas durante a adição (as operações de liberação são executadas automaticamente).
Exemplos:
// Caso de uma matriz de objetos não dinâmicos
// Objeto
cl Obj is cLMyClass
// Matriz associativa de objetos
aaAssociative is associative array of cLMyClass
// Assign one of the object members
clObj:nMember = 0
// Add into the associative array.
// It is an array of non-dynamic objects, therefore the object is copied
// The assignment can be quite "long" if there are a lot of members
aaAssociative["Association"] = clObj
// Change in the initial object
clObj:nMember = 2
// The object was copied, therefore 0 is found in the array
// (value during the assignment)
Info(aaAssociative["Association"]:nMember)
// Caso de uma matriz de objetos dinâmicos
// Objeto dinâmico
pcl Obj is dynamic cLMyClass
// Matriz associativa de objetos dinâmicos
aaAssociative is associative array of dynamic cLMyClass
// Allocate a dynamic object
pclObj = new cLMyClass
// Assign one of the object members
pclObj:nMember = 0
// Add into the associative array.
// It is an array of dynamic objects.
// Therefore, it is a new "pointer" to the same object (fast assignment)
aaAssociative["Association"] = pclObj
// Change in the initial object
pclObj:nMember = 2
// The array contains the same object therefore 2 in the array as well
Info(aaAssociative["Association"]:nMember)
Acessar os membros de um elemento não existente em uma matriz associativa de estruturas ou classes não cria automaticamente a instância da estrutura ou classe.
A linha de código:
MyAssociativeArray["Key"]:Member = 5
falha se o elemento "Chave" não foi criado de antemão.
WINDEVWEBDEV - Código do servidorjanelasLinuxiPhone / iPadApple WatchAplicativo universal do Windows 10Windows Mobile 

Matriz associativa de matrizes, fila, pilha, lista

As seguintes sintaxes são suportadas:
<variable> is associative array of arrays of int
<variable> is associative array (withDuplicates) of arrays of int
<variable> is associative array (withDuplicates,wlInt) of arrays of int
<variable> is associative array of arrays of 5 int
<variable> is associative array (withDuplicates) of arrays of 5 int
<variable> is associative array (withDuplicates,wlInt) of arrays of 5 integers

<variable> is associative array of fixed arrays of 5 int
<variable> is associative array (withDuplicates) of  fixed arrays of 5 int
<variable> is associative array (withDuplicates,wlInt) of fixed arrays of 5 int
<variable> is associative array of associative arrays of int
<variable> is associative array (withDuplicates) of associative arrays of int
<variable> is associative array (withDuplicates,wlInt) of associative arrays of int

<variable> is associative array of associative arrays (withDuplicates) of int
<variable> is associative array (withDuplicates) of associative arrays ...
(withDuplicates) of int
<variable> is associative array (withDuplicates,wlInt) of associative arrays ...
(withDuplicates) of int
<variable> is associative array of associative arrays ...
(withDuplicates,wlInt) of int
<variable> is associative array (withDuplicates) of associative arrays ...
(withDuplicates,wlInt) of int
<variable> is associative array (withDuplicates,wlInt) of associative arrays ...
(withDuplicates,wlInt) of int

<variable> is associative array of queue of int
<variable> is associative array (withDuplicates) of queue of int
<variable> is associative array (withDuplicates,wlInt) of queue of int

<variable> is associative array of lists of int
<variable> is associative array (withDuplicates) of stacks of integers
<variable> is associative array (withDuplicates,wlInt) of stacks of integers

<variable> is associative array of lists of int
<variable> is associative array (withDuplicates) of lists of int
<variable> is associative array (withDuplicates,wlInt) of lists of int






Exemplo: Matriz associativa de matrizes de strings:
// Declaration
arrClasses is associative array of array <growth> of strings

// Inserts an element into the associative array
Insert(arrClasses"CM2")

// Fill the CM2 student
arrClasses["CM2"][1] = "ALARD Stephen"
arrClasses["CM2"][2] = "BERTAU Kevin"

// Inserts an element into the associative array
Insert(arrClasses"CM1")

// Fill the CM1 student
arrClasses["CM1"][1] = "ALONSO Bernie"
arrClasses["CM1"][2] = "CRISTO Benjie"

FOR EACH AClasssName of arrClasses
FOR EACH Student OF AClass
Trace(sName + ":" + Student)
END
END




















quinta-feira, 22 de abril de 2021

DICAS 3312 - WINDEV WEBDEV MOBILE - Como Imprimir Nfc-e Autorizado no comando ImprimeXMLNFCe - CURSO ELGIN MINI PDV PARTE 7



https://youtu.be/5u3brJgtWrw




Bom Dia Boa Tarde Boa Noite

Mande um email pedido para receber todas notificaçoes dos videos 


Seja Membro do Canal

Esse Video vai estrear as 14:00  do dia 22/04/2021 

DICAS 3312 - WINDEV WEBDEV MOBILE - Como Imprimir Nfc-e Autorizado no comando ImprimeXMLNFCe - CURSO ELGIN MINI PDV PARTE 7




Assunto :


Como Imprimir Nfc-e Autorizado no comando ImprimeXMLNFCe

-----------

sConteudo_xml=Replace(sConteudo_xml,CR,"") // estamos tirando os cr
EDT_Resposta=m8_ImprimeXMLNFCe(sConteudo_xml,nId_csc,sCsc,nParametro)


========= INDICE MINI CURSO ELGIN M8 



========= INDICE MOBILE




PlayList WebDev tutorial Amarildo Webdev
Playlist Windev Tutorial Amarildo Windev
PlayList Windev Mobile 
Amarildo
Donwloads Windev
Windev
WxSolucoes
Matos Informatica
Repositorio Windev
Inscricao Evento Pcsof
Site forum Google 
Video sobre 3 Mil Videos Windev 
Video sobre Alfaserver servidor 















terça-feira, 20 de abril de 2021

DICAS 3311 - WINDEV WEBDEV MOBILE - Criando Window Configuração Email - Parte 5 - Email - 17




https://youtu.be/icJp3FiXHNM



Bom Dia Boa Tarde Boa Noite

Mande um email pedido para receber todas notificaçoes dos videos 


Seja Membro do Canal

Esse Video vai estrear as 08:00 do dia 21/04/2021 

DICAS 3311 - WINDEV WEBDEV MOBILE - Criando Window Configuração Email - Parte 5 -  Email - 17




Assunto :


Criando Window Configuração Email

Criando todos os campos que precisa para configuracao 

Criar no win_Email_envio,um atalho para levar para configuracao  


---------------------- Indice Email 

EmailOpenMail - Windev Curso Email - 1
FOR EACH email - Windev Curso Email - 2
DICAS 3307 - WINDEV WEBDEV MOBILE - Criando Programa Email e criar componente dele para utilização - Parte 1 - Email - 13

=======================


PlayList WebDev tutorial Amarildo Webdev
Playlist Windev Tutorial Amarildo Windev
PlayList Windev Mobile 
Amarildo
Donwloads Windev
Windev
WxSolucoes
Matos Informatica
Repositorio Windev
Inscricao Evento Pcsof
Site forum Google 
Video sobre 3 Mil Videos Windev 
Video sobre Alfaserver servidor 
















DICAS 3310 - WINDEV WEBDEV MOBILE - Receber os dados para preencher automatico os dados do email - Email Botao Envia Codigo - Parte 4 - Email - 16




https://youtu.be/xLfx31Fc8rM




Bom Dia Boa Tarde Boa Noite

Mande um email pedido para receber todas notificaçoes dos videos 


Seja Membro do Canal

Esse Video vai estrear as 06:00 do dia 20/04/2021 

DICAS 3310 - WINDEV WEBDEV MOBILE - Receber os dados para preencher automatico os dados do email  - Email Botao Envia Codigo - Parte 3 -  Email - 15



Assunto :


Receber os dados para preencher automatico os dados do email 
Vamos receber os emails dos destinatarios, separados por ;
Vamos ler esse email recebidos e colocar no token edt destinatario
Vamos receber o assunto e colocar no edt assunto 
vamos receber a mensagem e colocar na mensagem htmedt
Vamos receber o anexo e colocar na tabela anexo

--------------------- Codigo do Email - 
PROCEDURE WIN_email_envio(gRecebe_destinatarios,gRecebe_assunto,gRecebe_mensagem,gRecebe_anexo)
//destinatarios vai vir email,separados por virgula,vamos ler cada um e colocar no edt_destinatario 
//amarildo.matos@gmail.com;amarildo@tgssistemas.com
FOR EACH STRING sEmail_destinatario IN gRecebe_destinatarios SEPARATED BY ";"
EditAddToken(EDT_destinatario,sEmail_destinatario,sEmail_destinatario)
END
EDT_Assunto=gRecebe_assunto // vamos receber assunto 
HTMEDT_email.Value=gRecebe_mensagem // vamos receber mensagem
// Vamos agora receber os anexos, separados por ; e colocar na tabela anexo
FOR EACH STRING sAnexo_linha IN gRecebe_anexo SEPARATED BY ";"
TABLE_anexo.AddLine(sAnexo_linha)
END

------------------- 


// btn_envio_email
s_Remetente is string = "" // Email de quem esta mandando
s_Usuario is string = "" // Usuario do email
s_sEnha is string = ""
s_Porta is string = 587
s_servidor_smtp is string = ""
s_tls_configuracao is string = "2"
s_modo_parametro is string=""
// Variaveis de parametro
IF s_modo_parametro="1" THEN
EmailConfigure(emailParameterMode,1)
END
EmailSetTimeOut(30)
HourGlass()

bEmail_sessao is boolean
SWITCH s_tls_configuracao
CASE 1
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,False,emailOptionSecuredTLS)
CASE 2
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta)
CASE 3
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,False,optionSSL)
CASE 4
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,True,emailOptionSecuredTLS)
CASE 5
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,True,optionSSL)
CASE 6
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,True)
CASE 7
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,False)
CASE 8
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,True,emailOptionDefault)
CASE 9
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,False,emailOptionDefault)
END
// Opcoes //1 - TSL Sincrono       //2 - Sem criptografia            //3 - SSL Sincrono 3 //4 - TSL Assincrono
          //5 - SSL Assincrono     //6 - Sem Criptografia Assincrono //7 - Sem Criptografia Sincrono
          //8 - Default Assincrono //9 - Default Sincrono 
IF bEmail_sessao=True THEN
minha_mensagem is Email 
minha_mensagem..Sender=s_Remetente
FOR EACH STRING sEmail_individual IN EDT_destinatario SEPARATED BY CR
Add(minha_mensagem..Recipient,sEmail_individual)
END
minha_mensagem..Subject=EDT_Assunto
nTipoemailpersonalizado is int=2
IF nTipoemailpersonalizado=0 THEN
minha_mensagem..Message=HTMEDT_email
ELSE IF nTipoemailpersonalizado=1 THEN
minha_mensagem..HTML=HTMEDT_email
ELSE IF nTipoemailpersonalizado=2 THEN
HTMLEditorToEmail(HTMEDT_email,minha_mensagem)
END
FOR EACH ROW OF TABLE_anexo
sAnexo is string=NoSpace(TABLE_anexo.COL_Anexo)
EmailLoadAttachment(minha_mensagem,sAnexo)
END
IF EmailSendMessage(s_Usuario,minha_mensagem)=False THEN
Info(ErrorInfo(errFullDetails))
ELSE
InfoWithTimeout(300,"Email enviado com Sucesso")
END
EmailCloseSession(s_Usuario)
ELSE
Info(ErrorInfo(errFullDetails))
END
HourGlass(False)



---------------------- Indice Email 

EmailOpenMail - Windev Curso Email - 1
FOR EACH email - Windev Curso Email - 2
DICAS 3307 - WINDEV WEBDEV MOBILE - Criando Programa Email e criar componente dele para utilização - Parte 1 - Email - 13

=======================



PlayList WebDev tutorial Amarildo Webdev
Playlist Windev Tutorial Amarildo Windev
PlayList Windev Mobile 
Amarildo
Donwloads Windev
Windev
WxSolucoes
Matos Informatica
Repositorio Windev
Inscricao Evento Pcsof
Site forum Google 
Video sobre 3 Mil Videos Windev 
Video sobre Alfaserver servidor 




















domingo, 18 de abril de 2021

DICAS 3309 - WINDEV WEBDEV MOBILE - Email Botao Envia Codigo - Parte 3 - Email - 15






https://youtu.be/HdLnAXyfK3E




Bom Dia Boa Tarde Boa Noite

Mande um email pedido para receber todas notificaçoes dos videos 


Seja Membro do Canal

Esse Video vai estrear as 06:00 do dia 19/04/2021 

DICAS 3309 - WINDEV WEBDEV MOBILE - Email Botao Envia Codigo - Parte 3 -  Email - 15



Assunto :


Codigo do Envia Email 
Testar Envia Email 

---------------------  Codigo 

// HTMEDT_NoName1 - trocar o nome 
// Envia Email

//Configuracao
s_Remetente is string = ""
s_Usuario is string = ""
s_sEnha is string = ""
s_Porta is string = 587
s_servidor_smtp is string = ""
s_modo_parametro is string = ""
s_tls_configuracao is string = "2"

// Opcoes
//1 - TSL Sincrono 
//2 - Sem criptografia
//3 - SSL Sincrono 3
//4 - TSL Assincrono
//5 - SSL Assincrono
//6 - Sem Criptografia Assincrono
//7 - Sem Criptografia Sincrono
//8 - Default Assincrono
//9 - Default Sincrono 

//Configuracao
IF s_modo_parametro="1" THEN
EmailConfigure(emailParameterMode,1)
END

EmailSetTimeOut(30)
HourGlass()


bEmail_sessao is boolean

SWITCH s_tls_configuracao
CASE 1
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,False,emailOptionSecuredTLS)
CASE 2
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta)
CASE 3
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,False,optionSSL)
CASE 4
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,True,emailOptionSecuredTLS)
CASE 5
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,True,optionSSL)
CASE 6
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,True)
CASE 7
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,False)
CASE 8
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,True,emailOptionDefault)
CASE 9
bEmail_sessao=EmailStartSMTPSession(s_Usuario,s_sEnha,s_servidor_smtp,s_Porta,False,emailOptionDefault)
END

IF bEmail_sessao=True THEN
minha_mensagem is Email 
IF EDT_Remetente<>"" THEN
minha_mensagem..Sender=EDT_Remetente
END
FOR EACH STRING email_individual IN EDT_destinatario SEPARATED BY CR
Add(minha_mensagem..Recipient,email_individual)
END
minha_mensagem..Subject=EDT_Assunto
gnTipoEmailPersonalizado is int = 2
IF gnTipoEmailPersonalizado=0 THEN // 0-Message 1=Html
minha_mensagem..Message = HTMEDT_NoName1
ELSE IF gnTipoEmailPersonalizado=1
minha_mensagem..HTML = HTMEDT_NoName1
ELSE IF gnTipoEmailPersonalizado=2
HTMLEditorToEmail(HTMEDT_NoName1,minha_mensagem) // nao sai imagen
END
FOR EACH ROW OF TABLE_anexo
sAnexo is string=NoSpace(TABLE_anexo.COL_Anexo)
WHEN EXCEPTION IN 
EmailLoadAttachment(minha_mensagem,sAnexo)
DO
END
END
IF EmailSendMessage(s_Usuario,minha_mensagem)=False THEN
Info(ErrorInfo(errFullDetails))
ELSE 
InfoWithTimeout(300,"Email enviado com sucesso")
END
EmailCloseSession(s_Usuario)
ELSE
Info(ErrorInfo(errFullDetails))
END
HourGlass(False)





// Comandos enviar

ToastDisplay("Enviado email com sucesso",toastLong,vaMiddle)

---------------------- Indice Email 

EmailOpenMail - Windev Curso Email - 1
FOR EACH email - Windev Curso Email - 2
DICAS 3307 - WINDEV WEBDEV MOBILE - Criando Programa Email e criar componente dele para utilização - Parte 1 - Email - 13

=======================




PlayList WebDev tutorial Amarildo Webdev
Playlist Windev Tutorial Amarildo Windev
PlayList Windev Mobile 
Amarildo
Donwloads Windev
Windev
WxSolucoes
Matos Informatica
Repositorio Windev
Inscricao Evento Pcsof
Site forum Google 
Video sobre 3 Mil Videos Windev 
Video sobre Alfaserver servidor 
















sexta-feira, 16 de abril de 2021

DICAS 3308 - WINDEV WEBDEV MOBILE - Email Anexo - Parte 2 - Email - 14




https://youtu.be/FGsQZrXDLL8





Bom Dia Boa Tarde Boa Noite

Mande um email pedido para receber todas notificaçoes dos videos 


Seja Membro do Canal

Esse Video vai estrear as 09:45 do dia 16/04/2021 

DICAS 3308 - WINDEV WEBDEV MOBILE - Email Anexo -  Parte 2 -  Email - 14


Assunto :


Refazendo o Campo Destinatario 
Criar uma tabela Anexo 
Fazer um botao Anexo 
Selecionar Arquivo e adicionar tabela anexo 
Fazer Botal para Eliminar Anexo 
Vamos verificar se a tabela pode alterar
Vamos mudar o Estilo Tabela 
Vamos testar 
Proxima Aula - Fazer botao envia

//=========== Codigo Anexo 

// Procura e Adiciona Anexo


sFile is string
sFile = fSelect("", "", "Seleciona Arquivo", "All the files (*.*)" + TAB + "*.*", "*.*")
IF sFile<>"" THEN
TABLE_anexo.AddLine(sFile)
END


//============ Elimina Anexo 

// btn Eliminar linha anexo


TABLE_anexo.Delete()


//========================

---------------------- Indice Email 

EmailOpenMail - Windev Curso Email - 1
FOR EACH email - Windev Curso Email - 2
DICAS 3307 - WINDEV WEBDEV MOBILE - Criando Programa Email e criar componente dele para utilização - Parte 1 - Email - 13
---------------------- Indice Email 

PlayList WebDev tutorial Amarildo Webdev
Playlist Windev Tutorial Amarildo Windev
PlayList Windev Mobile 
Amarildo
Donwloads Windev
Windev
WxSolucoes
Matos Informatica
Repositorio Windev
Inscricao Evento Pcsof
Site forum Google 
Video sobre 3 Mil Videos Windev 
Video sobre Alfaserver servidor 














quinta-feira, 15 de abril de 2021

DICAS 3307 - WINDEV WEBDEV MOBILE - Criando Programa Email e criar componente dele para utilização - Parte 1 - Email - 13







https://youtu.be/4VusN45qo_Y




Bom Dia Boa Tarde Boa Noite

Mande um email pedido para receber todas notificaçoes dos videos 


Seja Membro do Canal
https://www.youtube.com/channel/UCQGPHrppG5XKoRbeOIgLJEA/join

Esse Video vai estrear as 17:45 do dia 15/04/2021 

DICAS 3307 - WINDEV WEBDEV MOBILE - Criando Programa Email e criar componente dele para utilização -  Parte 1 -  Email - 13




Assunto :


Criando Programa Email e criar componente dele para utilização - Parte 1 
O que me motivou a fazer o curso de Email 
Criando Projeto Email 
Criando Menu e chamando Enviar Email 
Criando Windows email envio 
Fazer chamar email envio 
Criando Windows email configura 
Na janela email envio vamos colocar alguns campos 
expllicando proximos passos



---------------------- Indice Email 

EmailOpenMail - Windev Curso Email - 1
FOR EACH email - Windev Curso Email - 2
DICAS 3307 - WINDEV WEBDEV MOBILE - Criando Programa Email e criar componente dele para utilização - Parte 1 - Email - 13


PlayList WebDev tutorial Amarildo Webdev
Playlist Windev Tutorial Amarildo Windev
PlayList Windev Mobile 
Amarildo
Donwloads Windev
Windev
WxSolucoes
Matos Informatica
Repositorio Windev
Inscricao Evento Pcsof
Site forum Google 
Video sobre 3 Mil Videos Windev 
Video sobre Alfaserver servidor 













Teste

Teste
teste