Actualizar doc de una vista con Lotus Script

Tengo que actualizar el documento de una vista (específicamente un campo) la figura es la siguiente: tengo una vista con 3 columnas(código nombre cantidad). En un form tengo código nombre cantidad, al dar la cantidad en el form, presiona grabar y busca el doc en la vista al encontrarlo disminuye la cantidad con el valor que puse en la cantidad que esta en el form..(disminuye stock)
Aqui el codigo:
            Dim ws As New NotesUIWorkspace
            Dim uiDoc As NotesUIDocument
            Set uiDoc = ws.CurrentDocument
            Dim doc As NotesDocument         
            Set doc = uiDoc.Document          
            Dim docSuministro As NotesDocument
            Dim Suministros As NotesItem      
            Codigo = doc.Codigo(0)
            Dim Session As New NotesSession
            Dim db As NotesDatabase
            Set db = Session.CurrentDatabase
            Dim viewSuministros As NotesView
            Set viewSuministros = db.GetView("Stocki")
            Set docSuministro = viewSuministros.GetDocumentByKey(Codigo,True)
            REM RESTA EL VALOR DE CANTIDAD
            Dim numero As Integer
            numero = Cint(docSuministro.Cantidad(0))       
            Dim variable As Integer
            variable = numero - doc.Cantidad(0)
            docSuministro.Cantidad = numero -doc.Cantidad(0)  -----> Esto me sale error como puedo hacer q la cantidad de ese codigo (en la vista) disminuya? Solo encuentra el doc con el codigo respectivo en la vista.. Cuando hago la resta tengo error type mistmatch...
           Call uiDoc.Reload
           Call uiDoc.RefreshHideFormulas
End Sub
2

2 respuestas

Respuesta
1
Ok lo primero, para acutalizar una vista actualiza la vista con el respectivo mentodo en la clase notesView.
Ahora bien si te da ese error te recomiendo.
Valida que tipo de campo es "Cantidad" y "numero"
Para evitar este tipo de errores fuerza el cambio utilizando los diferentes modificadores cstr(), cint(); etc...
El calculo realízalo afuera y así también podrás ver que valor estas recibiendo.
Te recomiendo utilices en ves de integer doble por si hay un punto flotante.
Dejame saber como te fue
www.cdsti.com.mx
www.k3media.com.mx
Gracias! Me fue bien... se soluciono el problema.. Al final puse lo siguiente:
Call docSuministro.Save(True, True)  Para actualizar la vista por eso q no lo veia que restaba :D ya no tengo error type mistmatch..
Respuesta
1
Perdón pro la demora, estuve de vacaciones.
¿En docSuministro el campo Cantidad es numérico?
¿En doc el campo cantidad es numero?
Si en los formularios el campo es numérico entonces convertí todas las variables, fíjate que la cantidad no supere el máximo para los integer, sino decláralo como double.
No declares las variables numero y variable como integer, maneja los números en variables variant y al momento de hacer la resta hace la conversión
  REM RESTA EL VALOR DE CANTIDAD
            numero = Cint(docSuministro.Cantidad(0))       
            variable = Cint(numero) - Cint(doc.Cantidad(0) )
          docSuministro.Cantidad = Cint(variable)
Revisa bien que los campos sean numéricos, de esta forma no deberías tener problemas
saludos
Gracias! Ya no tengo error type mistmatch... y considere esta linea:
Call docSuministro.Save(True, True) para que actualice la vista, asi pueda ver lo q restaba..tambien me faltaba eso...jeje

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas