Joel Garcia da Costa Posted August 18, 2020 at 03:50 PM Report Share #619102 Posted August 18, 2020 at 03:50 PM (edited) Prezados, bom dia! Quero saber se é possível, após atualizar o número de itens em uma tabela, num formulário, que a data de atualização seja alterada para a data atual do sistema, bem como a responsabilidade pela atualização também seja alterada, de acordo com o imagem abaixo, que explico: Após alterado o dado do campo "QUANTIDADE", onde os campos "ATUALIZACAO e RESPONSAVEL" poderiam ser atualizados automaticamente. Assim eu evito que quem diminuir ou aumentar a quantidade de itens, deixe de dizer quem foi o responsável pela alteração e quando. No caso do responsável pela mudança, acho que pedindo ao usuário para entrar no programa, e salvando essa informação em uma variável global, posso ter esse dado para usar posteriormente. O que não sei é fazer via código, através de um módulo dentro de uma Macro. Banco de exemplo Obrigado pela ajuda. Abraços! Edited August 18, 2020 at 05:31 PM by Joel Garcia da Costa Link to comment Share on other sites More sharing options...
Joel Garcia da Costa Posted August 19, 2020 at 02:27 PM Author Report Share #619112 Posted August 19, 2020 at 02:27 PM Prezados, bom dia! Recebi uma resposta sobre como realizar esta automatização, mas não está dando mensagem de erro, conforme banco de dados de exemplo que anexo. Banco de exemplo Abraços., Link to comment Share on other sites More sharing options...
Cerzedelo Posted August 19, 2020 at 06:15 PM Report Share #619120 Posted August 19, 2020 at 06:15 PM 3 horas atrás, Joel Garcia da Costa disse: Prezados, bom dia! Recebi uma resposta sobre como realizar esta automatização, mas não está dando mensagem de erro, conforme banco de dados de exemplo que anexo. Banco de exemplo Abraços., Um dos problemas das macros do LibreOficce Base é terem um comportamento esquisito. A compilação da macro pode ter um comportamento diferente, que a mesma seja executada dentro do GUI onde edita a macro, ou na barra de Ferramentas->Macros. Deixo no seguinte link um manual onde poderá ter uma ideia sobre as macros: https://www.pitonyak.org/database/AndrewBase.pdf 1 Report Link to comment Share on other sites More sharing options...
Joel Garcia da Costa Posted August 19, 2020 at 06:17 PM Author Report Share #619121 Posted August 19, 2020 at 06:17 PM Agora, Cerzedelo disse: Um dos problemas das macros do LibreOficce Base é terem um comportamento esquisito. A compilação da macro pode ter um comportamento diferente, que a mesma seja executada dentro do GUI onde edita a macro, ou na barra de Ferramentas->Macros. Deixo no seguinte link um manual onde poderá ter uma ideia sobre as macros: https://www.pitonyak.org/database/AndrewBase.pdf Meu caro, muito obrigado! Abs., Link to comment Share on other sites More sharing options...
Solution Joel Garcia da Costa Posted August 21, 2020 at 10:28 AM Author Solution Report Share #619144 Posted August 21, 2020 at 10:28 AM Prezados, bom dia! Assunto resolvido! Usei o código abaixo, criando três macros e implementando no formulário. Consegui, também, fazer com que a alteração do número do armário onde se encontra o produto resulte na atualização do usuário e data atual da alteração. ' Módulo savePerson Global iQuantSave as Integer Global iQuantSave2 as Integer Global sSavePerson as String Sub savePerson(oEvent) Rem Check if Form is in Edit mode - Exit if true If thisComponent.CurrentController.isFormDesignMode Then Exit Sub Rem Save entred name sSavePerson=Inputbox("Entre com o nome do usuário:") End Sub ' Módulo saveQuant Sub saveQuant(oEvent) Dim oColumns As Object Dim oQuant As Object Dim oColumns2 As Object Dim oQuant2 As Object Rem Save quantity every time different record is selected oColumns = oEvent.Source.getColumns() oQuant = oColumns.getByName("QUANTIDADE") iQuantSave = oQuant.Value oColumns2 = oEvent.Source.getColumns() oQuant2 = oColumns.getByName("ARMARIO") iQuantSave2 = oQuant2.Value End Sub ' Módulo updateFields Global iQuantSave as Integer Global iQuantSave2 as Integer Global sSavePerson as String Sub updateFields(oEvent) Dim aDate As New com.sun.star.util.Date Dim oColumns As Object Dim oQuant As Object Dim oColumns2 As Object Dim oQuant2 As Object Dim oATUAL As Object Dim oRESPON As Object Dim iValue As Integer Dim iValue2 As Integer Rem Check if Form event If NOT oEvent.Source.supportsService ("com.sun.star.form.component.Form") Then Exit Sub Rem Check if Update If oEvent.Action = 2 then oColumns = oEvent.Source.getColumns() oQuant = oColumns.getByName("QUANTIDADE") iValue = oQuant.Value oColumns2 = oEvent.Source.getColumns() oQuant2 = oColumns2.getByName("ARMARIO") iValue2 = oQuant2.Value Rem Verify value has actually changed If iValue <> iQuantSave OR iValue2 <> iQuantSave2 Then oATUAL = oColumns.getByName("ATUALIZACAO") oRESPON = oColumns.getByName("RESPONSAVEL") aDate.Day = DAY(NOW()) aDate.Month = Month(NOW()) aDate.Year = YEAR(NOW()) Rem Set Current date oATUAL.Value = aDate Rem Set Name entered oRESPON.Value = sSavePerson End if End if End sub Abs., Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now