Avalados por :

Cómo solucionar el Código de Error [66000-13] al crear una nueva pestaña en el Formulario del Sistema 320

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 9 Vistas
0
Cargando...

Hola a todos,

Estoy intentando crear una nueva pestaña (carpeta) en el Formulario del Sistema 320 (Oportunidades de Venta) y obtengo el Código de Error [66000-13] Elemento Ya Existe.

He escrito el siguiente código:

Sub CrearCarpeta(ByVal Formid As String)

Dim OItem As SAPbouiCOM.Item

Dim OForm As SAPbouiCOM.Form

Dim OTempItem As SAPbouiCOM.Item

Dim OFolder1 As SAPbouiCOM.Folder

Try

OForm = OApp.Forms.Item(Formid)

OTempItem = OForm.Items.Item("80")

OItem = OForm.Items.Add("It_Folder110", SAPbouiCOM.BoFormItemTypes.it_FOLDER)

With OItem

.Height = OTempItem.Height

.Top = OTempItem.Top

.Left = OTempItem.Left + 55

.Width = OTempItem.Width

End With

OFolder1 = OItem.Specific

OFolder1.Caption = "Contenidos"

OApp.StatusBar.SetText("Carpeta creada con éxito en Oportunidades de Venta", _

SAPbouiCOM.BoMessageTime.bmt_Medium,_

SAPbouiCOM.BoStatusBarMessageType.smt_Success)

Exit Sub

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical)

End Try

End Sub

End Module

¿Alguien puede decirme por qué estoy recibiendo este error???

Gracias de antemano

Saludos,

Shashank Aery

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola David,

He creado la carpeta en el evento de carga del formulario pero tengo otro problema, es decir, no muestra mi carpeta "Contenidos". Pero cuando veo la información del sistema y coloco el cursor en esa posición, muestra el nombre de mi carpeta y en la barra de estado muestra el ItemUid de mi carpeta.

¿Puedes ayudarme con este asunto?

Aquí está el código del programa:

Sub CrearCarpeta(ByVal Formid As String,_

ByRef pVal As SAPbouiCOM.ItemEvent, _

ByRef BuubleEvent As Boolean)

Si pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_LOAD And pVal.Before_Action = False Then

Dim OItem As SAPbouiCOM.Item = Nothing

Dim OForm As SAPbouiCOM.Form = Nothing

Dim OTempItem As SAPbouiCOM.Item = Nothing

Dim OFolder1 As SAPbouiCOM.Folder = Nothing

Try

OForm = OApp.Forms.Item(Formid)

OTempItem = OForm.Items.Item("7")

OForm.Items.Item("7").Visible = False

OItem = OForm.Items.Add("It_Fold", SAPbouiCOM.BoFormItemTypes.it_FOLDER)

OItem.Enabled = True

With OItem

.Height = OTempItem.Height

.Top = OTempItem.Top

.Left = OTempItem.Left + 65

.Width = OTempItem.Width

.Visible = True

End With

OFolder1 = OItem.Specific

OFolder1.Caption = "Contenidos"

OFolder1.Pane = 0

OApp.StatusBar.SetText("Se ha creado correctamente una nueva carpeta en Oportunidades de Ventas", SAPbouiCOM.BoMessageTime.bmt_Medium, SAPbouiCOM.BoStatusBarMessageType.smt_Success)

Exit Sub

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical)

End Try

End If

End Sub

Saludos,

Shashank Aery

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

primero recibes el mensaje de que se ha creado y luego recibes el mensaje de error

-> eso significa que estás ejecutando "Sub CreateFolder(ByVal Formid As String)" dos veces.

parece que el error no está en el Sub CreateFolder, ¡tienes que evitar que comiences el Procedimiento dos veces!

coloca un tracemark al principio de tu Sub CreateFolder y depúralo - deberías ver que se ejecuta dos veces...

Saludos, David

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola lg David,

Primero, gracias por responder.

Cuando ejecuto el código, no muestra la carpeta creada, pero muestra el mensaje " Carpeta creada con éxito en Ventas Oportunidades "

y luego muestra el error "El elemento ya existe".

¿Qué debería cambiar en el código? Por favor, escriba el código.

Saludos,

Shashank Aery

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

1. Tu código se ve bien, ¿se creó de todos modos la carpeta? Si es así, estás ejecutando este Procedimiento/Sub dos veces.

cuando inicias el código desde el Controlador de eventos, usa pVal.BeforeAction=false/true para iniciarlo solo una vez.

2. Cuando estás ejecutando el código durante el desarrollo y detuviste tu código antes de establecer top/left, podría suceder que ya creaste el elemento pero no estaba colocado - cierra el formulario y ábrelo nuevamente - si el problema persiste, cambia el itemUid.

Saludos, David

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?