Campo Obrigatório Datasul

202 views
Skip to first unread message

Samuel Miguel

unread,
Aug 15, 2017, 6:48:17 PM8/15/17
to Progress - 4GL
Olá Pessoal,

Como eu posso tornar um campo Datasul obrigatório no cadastro realizado pelos usuário?
Por exemplo no 'CD0204 - IMPLANTAÇÃO DO iTEM', preciso tornar obrigatório o campo Narrativa.
Coloquei ele como mandatório na tabela 'item.narrativa', porém ele não travou o cadastro, acredito que seja por meio de uma UPC, mais não tenho noção de onde partir.
Alguma dica?

Grande Abraço!

danilo martinez de sousa

unread,
Aug 15, 2017, 6:58:56 PM8/15/17
to progre...@googlegroups.com
Prezado.

Possuí objeto declarado no banco? Se não verifique.



_____________________
Danilo A. M. de Sousa
Windows Server Analyst
MSSQL Administrator
ORACLE Administrator
Cel.: + 55 43 99179-5115
        + 55 43 98416-3747

--
Você recebeu essa mensagem porque está inscrito no grupo "Progress - 4GL" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para progress_4gl+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para progre...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/progress_4gl.
Para mais opções, acesse https://groups.google.com/d/optout.

Sidival Nascimento

unread,
Aug 15, 2017, 7:18:42 PM8/15/17
to progre...@googlegroups.com
Boa Noite Samuel,

       A tela e o banco de dados são dois objetos separados, no caso do seu exemplo teria que se criar uma upc no campo e tratar o procedimento atraves do leave do campo, se for vazio volte para o proprio campo e no validate da tela colocar a mesma validação, acho tambem fiz uma vez foi colocar uma logica no trigger mais acho que a upc no campo ja é o suficiente :).

Att,
Sidival

Em 15 de agosto de 2017 19:48, Samuel Miguel <wesley...@gmail.com> escreveu:

--
Você recebeu essa mensagem porque está inscrito no grupo "Progress - 4GL" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para progress_4gl+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para progre...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/progress_4gl.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Sem Mais
Sidival F. Nascimento
Analista de Sistemas
Laos Consultoria em Informatica LTDA.

w.samuel

unread,
Aug 16, 2017, 7:23:36 PM8/16/17
to progre...@googlegroups.com
Boa Noite,

Danilo, Sidival,

Obrigado pelas respostas, vou tentar criar uma UPC... Certo é que retorno com mais dúvidas, pois nunca fiz.

Obrigado novamente.

--
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "Progress - 4GL" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/progress_4gl/VaPKV-oc0rc/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para progress_4gl+unsubscribe@googlegroups.com.

Sidival Nascimento

unread,
Aug 17, 2017, 6:50:56 AM8/17/17
to progre...@googlegroups.com
Bom dia Wesley,

         Comece pelo "esqueleto" abaixo, é do tempo do falecido Site for each, mas é uma upc funcional, sera necessario os ajuste para o que voce deseja.

         Dicas - Crie o arquivo e salve na pasta de Upcs ( Se vc não souber aonde fica a sua pasta cria uma pasta dentro do propath, geralmente colocamos esupc como nome e tenha certeza que a pasta é visualizado pelo propath, na barra de ferramentas tem uma ferramenta que mostra isso ), depois va no cadastro de programas do TOTVS ( Datasul ) e acrescente o programa neste cadastro no campo de upcs, saia do datasul e volte novamente, pelo menos algumas mensagens de erro voce ja deve começar a receber :)


/********************************************************************************* 
** Programa...: upc_basica.p
** Author.....: foreach 
** Descricao..: Mostrar os pontos de chamada de uma UPC.
** Data.......: 22/02/2002 
** Mail.......: for...@foreach.com.br 
** 
** Visite www.foreach.com.br 
** 
*********************************************************************************/
define input parameter p-ind-event as character no-undo. /* Evendo do programa Datasul */ 
define input parameter p-ind-object as character no-undo. /* Objeto */ 
define input parameter p-wgh-object as handle no-undo. /* Widget do Objeto */ 
define input parameter p-wgh-frame as widget-handle no-undo. /* Frame do Objeto */ 
define input parameter p-cod-table as character no-undo. /* Nome da Tabela */ 
define input parameter p-row-table as rowid no-undo. /* Rowid da Tabela */ 

def new global shared var wh-objeto as widget-handle no-undo. 
def new global shared var wh-objeto-desejado as widget-handle no-undo. 

Message 
    "Evento............: " p-ind-event Skip 
    "Objeto............: " p-ind-object Skip 
    "Handel do Obejto..: " p-wgh-object Skip 
    "Frame.............: " p-wgh-frame Skip 
    "Nome da tabela....: " p-cod-table Skip 
    "Rowid da tabela...: " p-row-table 
View-as Alert-box. 

/************************************************************************ 
** Rotina para mapear os campos da tela do programa datasul 
** Descri»’o: 
** Neta rotina voc¼ pode ler as propriedades de qualquer 
** objeto do programa datasul, basta saber o nome dele 
** *-* Para saber o nome do objeto, entre no programa da 
** datasul desejado, entre em modificar ou incluir o novo registro 
** caso seja um programa de cadastro, coloque o foco no objeto desejado 
** e pressione CRTL + ALT + H, vai aparecer o nome do campo. 
************************************************************************ 
** Caso n’o seja um programa de cadastro, insira o seguinte c½digo no 
** while abaixo. 

message wh-objeto:NAME view-as alert-box. 

************************/ 

assign wh-objeto = p-wgh-frame:FIRST-CHILD. 
do while valid-handle(wh-objeto): 

    IF wh-objeto:NAME = "it-codigo" THEN do: 
        assign wh-it-codigo = wh-objeto. 
        ON 'leave':U OF wh-fi-lote-serie-acabado 
        Persistent run esupc/Trigger_leave.p. 
    
    end. 
    
    if wh-objeto:TYPE = 'field-group' then do: 
        assign wh-objeto = wh-objeto:FIRST-CHILD. 
    end. 
    else do: 
        assign wh-objeto = wh-objeto:NEXT-SIBLING. 
    end. 
end.


message wh-objeto:NAME view-as alert-box. 

************************/ 

assign wh-objeto = p-wgh-frame:FIRST-CHILD. 
do while valid-handle(wh-objeto): 

    IF wh-objeto:NAME = "it-codigo" THEN do: 
        assign wh-it-codigo = wh-objeto. 
        ON 'leave':U OF wh-fi-lote-serie-acabado 
        Persistent run esupc/Trigger_leave.p. 
    
    end. 
    
    if wh-objeto:TYPE = 'field-group' then do: 
        assign wh-objeto = wh-objeto:FIRST-CHILD. 
    end. 
    else do: 
        assign wh-objeto = wh-objeto:NEXT-SIBLING. 
    end. 
end.
Reply all
Reply to author
Forward
0 new messages