× Linguagem de Programação ADVPL

Perguntas Botão para gravação de dados

Mais
10 anos 5 meses atrás #23242 por gustavo
Bom dia, estou desenvolvendo uma tela MSDIALOG mas e não consigo criar um botão ou uma função para gravar os dados. Alguém tem um fonte de rotina de inclusão?

Obrigado

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás - 10 anos 5 meses atrás #23245 por inocenciojr
Respondido por inocenciojr no tópico Botão para gravação de dados
Gustavo,

Segue anexo um exemplo que tenho.

PS: Não anexou :ohmy:. Então vai aqui mesmo.
#INCLUDE "PROTHEUS.CH"

/**************************************************************************************************
Função de inclusão do numero de coleta
**************************************************************************************************/
User Function DRDEFCOLE()

Local oDlgCO
Local aAreaAtu   := GetArea()
Local aAreaC5    := SC5->(GetArea())
Local cNumColeta := CriaVar("C5_DR_NCOL")
//Local cInfCompl  := Space(TamSX3("F1_MENNOTA")[1])
Local oNumColeta := NIL
//Local oInfCompl  := NIL
Local lContinua := .F.

If Empty(SC5->C5_DR_NCOL)
	lContinua := .T.
Else
	If MsgYesNo("Numero de Coleta já informado: "+Alltrim(SC5->C5_DR_NCOL)+". Deseja altera-lo ?","DRDEFCOLE")
		cNumColeta := SC5->C5_DR_NCOL
		lContinua := .T.
	EndIf
EndIf

If lContinua
		
	DEFINE MSDIALOG oDlgCO FROM 100,100 TO 220,500 TITLE Iif(Empty(SC5->C5_DR_NCOL),"Inclusão","Alteração")+" - Coleta" Of oMainWnd PIXEL
	
	@ 015, 005 SAY "Num. Coleta:" Of oDlgCO SIZE 45,25 PIXEL
	@ 015, 060 MSGET oNumColeta VAR cNumColeta Picture PesqPict("SC5","C5_DR_NCOL") SIZE 080,010 OF oDlgCO PIXEL
	
	//@ 030, 005 SAY "Informações Complementares:" Of oDlgCO SIZE 45,25 PIXEL
	//@ 030, 060 MSGET oInfCompl VAR cInfCompl SIZE 270,10 OF oDlgCO PICTURE "@!" PIXEL
	
	ACTIVATE MSDIALOG oDlgCO CENTERED ON INIT EnchoiceBar(oDlgCO, {|| Iif(GravaCO(cNumColeta), oDlgCO:End(), MsgAlert("Não foi possível gravar a Coleta.","DRDEFCOLE"))},{|| oDlgCO:End()},,)

Endif


// Restaura area original
RestArea(aAreaC5)
RestArea(aAreaAtu)

Return (.T.)
/**************************************************************************************************
Função:
GravaCO

Descrição:
Grava dados da Coleta

Parâmetros:

Retorno:
cRet     => .T. - Caso tenha gravado com sucesso, .F. caso contrário.
**************************************************************************************************/
Static Function GravaCO(cNumColeta)

Local aAreaAtu := GetArea()
Local aArea    := IIf(!Empty(Alias()), SGetArea(), {})
Local lRET     := .T.

If RecLock("SC5", .F.)
	SC5->C5_DR_NCOL := cNumColeta
	SC5->(MsUnLock())
Else
	lRET := .F.
EndIf
	

SRestArea(aArea)   // Restaura areas originais
RestArea(aAreaAtu) // Restaura area original

Return (lRET)
Ultima edição: 10 anos 5 meses atrás por inocenciojr.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #23246 por gustavo
Respondido por gustavo no tópico Botão para gravação de dados
Obrigado pela ajuda cara valeu!!!

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.069 segundos
Joomla templates by a4joomla