Tecnología

Inicio

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.