-
Cómo rellenar un campo de formulario ASP en un archivo de Word en el lado del servidor
-
Varias tareas se pueden realizar con ASP, tales como la creación de páginas web y generación de plantillas. Desde que Microsoft desarrolló el lenguaje de programación ASP.NET, es interoperable con otros productos de Microsoft, como los programas Excel y Word. ASP no es difícil de configurar y usar, porque el motor de la aplicación hace todo, de terminar el trabajo y procesar el código para enviar el código para el navegador del usuario para su implementación.
Instrucciones
1 Iniciar Microsoft Word y haga clic en "Archivo" de la barra de menús. Haga clic en "Guardar como" en el menú desplegable. Cuando el diálogo Guardar como aparece, haga clic en el "negro flecha que apunta hacia abajo" y seleccione "Plantilla de documento (* .dot)" de la lista desplegable como formato de documento. Esta plantilla se cargará con varios componentes avanzados de Microsoft Word, tales como gráficos y elementos de dibujo, campos de combinación de correspondencia, texto y campos de formulario de salida de caja, un pie de página anidada y códigos VBA dinámicos.
2 Seleccione la opción "Vista desde la barra de menú y seleccione" Barras de herramientas "en el menú desplegable. En menú desplegable de la barra de herramientas, haga clic en" Formas ", y luego añadir un" campo de formulario de texto "a su documento.
Haga clic en el "campo de formulario de texto" que ha creado y seleccione "Propiedades" para obtener información sobre el marcador. Asociar un nombre en el campo de marcadores para obtener el valor del campo de combinación que creará más adelante. Ajuste el "tipo" para el texto normal. La salida debe ser [____].
3 Seleccione la opción "Insertar" de la barra de menú, a continuación, seleccione la categoría de "Combinar correspondencia" y el nombre del campo "MergeField". Introduzca el nombre que ha designado a su texto del marcador de campo de formulario anterior después de que el texto "MERGEFIELD." La salida debe ser [Nombre de marcador]. Además, introduce el código VBA éxito para proteger sus campos MailMerge de ser eliminada en su plantilla por otros usuarios:
Sub Protect ()
'
'Proteger Macro
'
ActiveDocument.Protect wdAllowOnlyFormFields, True
End Sub
4 Inserte el siguiente código para mejorar su funcionalidad documento con macros. Esta demo ofrece a sus usuarios con muchas características avanzadas en la base de datos del lado del servidor, y también reunir y almacenar los valores de los campos del formulario que ha creado para ser utilizado en la función sendRequest:
Public Sub Update ()
yn tenue Como VbMsgBoxResult
yn = MsgBox ( "¿Desea actualizar la base de datos con las nuevas selecciones beneficiarios?", vbYesNo, "Base de datos de actualización?")
Si yn = Entonces vbNo
Exit Sub
Terminara si
Vals Dim (4) As Variant
Estado Dim As Integer
Si ActiveDocument.FormFields ( "CHKA"). CheckBox.Value = entonces verdad
Status = 1
ElseIf ActiveDocument.FormFields ( "CHKB"). CheckBox.Value = entonces verdad
Status = 2
ElseIf ActiveDocument.FormFields ( "CHKC"). CheckBox.Value = entonces verdad
Status = 3
Terminara si
Vals (0) = "BeneficiaryStatus =" y Estado
Vals (1) = "Primary1 =" & Trim (ActiveDocument.FormFields ( "Primary1"). Resultado)
Vals (2) = "Primary2 =" & Trim (ActiveDocument.FormFields ( "Primary2"). Resultado)
Vals (3) = "Contingent1 =" & Trim (ActiveDocument.FormFields ( "Contingent1"). Resultado)
Vals (4) = "Contingent2 =" & Trim (ActiveDocument.FormFields ( "Contingent2"). Resultado)
URL Dim como secuencia
reqname Dim como secuencia
Dim httpStatus como número entero
URL = "http: //localhost/Demos/OfficeWriter/PostOne/BeneficiarySelection.aspx"
reqname = "UpdateBeneficiaries"
On Error Resume Next
httpstatus = HotCellRequest.SendRequest(URL, reqname, vals)
Si Err.Number & lt;> 0 Then
MsgBox "Error al enviar solicitud HotCell. No se ha podido contactar con el servidor página de actualización de base de datos." & _
vbCrLf y "Detalles" y Err.Description, _
vbCritical, "HotCell de solicitudes con error"
Exit Sub
Terminara si
On Error GoTo 0
Si httpStatus = 200 Entonces
MsgBox "You have successfully submitted your Beneficiary selections.", _
vbOKOnly, "HotCell actualización fue satisfactoria"
Más
MsgBox "The HotCell database update did not succeed. The server-side database update " & _
"Página devuelve un error El código de estado del servidor devuelto:." Y httpStatus, _
vbCritical, "Error de actualización HotCell"
Terminara si
End Sub
5 Introducir el código de abajo para habilitar la función sendRequest el cierre del documento para enviar los valores de la forma a través de HTTP a la página ASP.NET. Esto poblar la base de datos con los campos del formulario que ha creado, manteniendo intacta toda la información de la plantilla de documento de Word:
Función pública sendRequest (URL como secuencia, requestName como secuencia, pares As Variant) As Integer
strReq Dim como secuencia
Dim oHTTP como objeto
'--- El objeto XMLHTTP necesita valores del formulario para ser enviados en este formulario:
'--- "Nombre1 = valor1 y nombre2 = valor2 y nombre3 = valor3", etc.
'--- Estamos formando una petición de ese formato aquí
strReq = Ingreso (pares, "Y")
'--- Utilice el objeto XMLHTTP para hacer la petición HTTP
On Error Resume Next
Set oHTTP = CreateObject("Msxml2.XMLHTTP.3.0")
Si Err.Number & lt;> 0 Then
Err.Raise Err.Number, "HotCellRequest", _
"No se pudo crear el objeto XMLHTTP que es requerido por HotCells."
Función de salida
Terminara si
On Error GoTo 0
On Error Resume Next
oHTTP.Open "POST", URL, False
Si Err.Number & lt;> 0 Then
Err.Raise Err.Number, "HotCellRequest", _
"HotCell no pudo conectar con" & URL & "" & _
Err.Description
Función de salida
Terminara si
On Error GoTo 0
'--- Tenemos que establecer estos datos cada vez que forma la presentación
oHTTP.SetRequestHeader "Content-Type", "application / x-www-form-urlencoded"
oHTTP.SetRequestHeader "X-SaHotCellRequest", requestName
'--- Enviar la solicitud
On Error Resume Next
oHTTP.Send CStr(strReq)
Si Err.Number & lt;> 0 Then
Err.Raise Err.Number, "HotCellRequest", _
"HotCell falló al enviar datos a" & URL & "" & _
Err.Description
Función de salida
Terminara si
On Error GoTo 0
SendRequest = oHTTP.Status
'--- Limpiar
Establecer oHTTP = Nada
End Function
Consejos y advertencias
- Hay varios tutoriales en línea disponibles de forma gratuita que se puede descargar y practicar. Aprender tanto como sea posible para familiarizarse con los lenguajes de programación VBA y ASP.