Cómo controlar los atributos de modificación de la columna DATAWINDOW en PB
Las columnas básicas de la tabla de salarios son las siguientes: nombre en clave tiempo de trabajo salario básico salario flotante posición salario intelectuales subsidio otro salario nombre en claveworkdatabasesamovesa estacionesabtothersacharvarcharchardecimaldecimaldecimaldecimaldeciaml Hay dos formas de controlar los atributos de las columnas en PB, una es el método estático, el otro Se implementa dinámicamente. El llamado método estático se implementa mediante opciones sobre los atributos de la columna. El llamado método dinámico se implementa mediante programación. Ahora los presentaremos respectivamente: 1. Método estático (1) Seleccione una columna en la ventana de datos y haga clic derecho en el RATÓN. Después de seleccionar "propiedades", el sistema abrirá una pestaña, seleccione la pestaña "Editar" y configurará. Opción "Solo visualización" para activar (2) O seleccione la pestaña "Expresión" y complete "1" en "Protect Express" (3) O seleccione la pestaña "Expresión" y complete la expresión condicional en "Protect Express"; ". Si el tiempo de trabajo es inferior a un año, el personal no puede modificarlo, entonces escriba "if (días después (fecha (fecha de trabajo), hoy ()) <= 365,1,0)"; (4) En la ventana de datos, establezca el valor de Orden de tabulación de una determinada columna a 0. Entonces la columna no se puede modificar porque no puede enfocarse (5) Seleccione el menú Filas en el estado de DataWindow Painter, luego seleccione Actualizar propiedades, aparecerá el cuadro de diálogo Especificar propiedades de actualización; y establezca Permitir actualizaciones en vacío. 2. Método de modificación dinámica (1) Configure toda la ventana de datos en modo protegido: use la propiedad ReadOnly del objeto DataWindow para configurar toda la ventana de datos en modo protegido. La sintaxis es: dw_1.Object.DataWindow.ReadOnly=value o dw_1.Modify("DataWindow.ReadOnly{=value}"), donde: valor indica si la ventana de datos está en estado de solo lectura. Tiene dos valores: Sí y no. Sí significa hacer que la ventana de datos sea de solo lectura; No significa lo contrario y el valor predeterminado es No. Por ejemplo: si desea configurar Datawindow en modo protegido, puede incluir el siguiente código en el script del evento correspondiente: dw_1.Modify("DataWindow.ReadOnly=Yes") o: dw_1.Object.DataWindow.ReadOnly=Yes (2) solo Método 1 para proteger ciertas columnas de Datawindow: Utilice el atributo Proteger de la columna. La sintaxis es: dw_1.Object.name.Protect=integer o dw_1.Modify(“columnname.Protect{=integer}”). Descripción del parámetro: cloumnname: es el nombre de la columna a proteger; entero: es el estado de protección de la columna. Cuando el valor es 0 o Falso, la columna no está protegida; cuando el valor es 1 o Verdadero, la columna está. protegido. Por ejemplo, para establecer el nombre de la columna en estado protegido, el código correspondiente es: dw_1.Object.name.Protect=1 o: dw_1.Moidfy("name.Protect=1") Método 2: utilizar el atributo TabSequence de la columna Cuando se ejecuta el programa, el TabOrder de esta columna se puede establecer en 0 según sea necesario para lograr el propósito de protección.
La sintaxis es: dw_1.Object.name.TabSequence= número o dw_1.Modify("columnname.TabSequence{=number}") Descripción del parámetro: nombre de columna: el nombre de la columna que se va a proteger número: el valor TabOrder de la columna (0; -32000). Por ejemplo, para establecer el nombre de la columna en el estado protegido, el código correspondiente es: dw_1.Object.name.TabSequence=0 o: dw_1.Modify("name.Tabsequence=0") Método 3: utilice el atributo EDIT en el valor del atributo DisplayOnly de la columna modificada. La sintaxis es: dw_1.Object.columnname.Edit.DisplayOnly=value o dw_1.Modify("columnname.Edit.DisplayOnly{=value}") Descripción del parámetro: columnname: el nombre de la columna que se va a proteger valor: indica si la columna; es solo el estado Mostrar (DisplayOnly), que tiene dos valores: Sí y No. Sí significa que los usuarios no pueden ingresar datos (solo se muestran): No es lo opuesto y el valor predeterminado es No. Por ejemplo: si desea configurar el nombre de la columna para que solo se muestre, puede incluir el siguiente código en el script del evento correspondiente: dw_1.Object.name.Edit.DisplayOnly=Yes o: dw_1.Modify("name.Edit .DisplayOnly=Yes") Aunque la columna no se puede modificar cuando se utiliza este método, la columna puede recibir foco, lo que no ocurre con los otros métodos mencionados anteriormente. 3. Proteja selectivamente ciertas filas El método anterior funcionará en todas las filas de DataWindow, pero si desea proteger solo algunas de las filas, debe usar el atributo Proteger de la columna (el valor es el mismo que el del método 2 anterior). ). Pero esto se logra al configurar DataWindow. El método es: en DataWindow Painter, haga doble clic en la columna correspondiente para abrir el cuadro de diálogo Objeto de columna, seleccione la página Expresiones y escriba if (expresión condicional, 1, 0) en el cuadro después de Proteger. El uso flexible de expresiones condicionales puede lograr una variedad de efectos de protección. (1) Solo se permite modificar las filas recién insertadas en una ventana de datos, a veces es necesario: en este momento, solo se pueden explorar los datos existentes pero no modificarlos. la expresión es: if (isrownew(),0,1), o if(not isrownew(),1,0) (2) El estado de protección de una determinada columna debe basarse en los datos de otras columnas. en la gestión de salarios de los empleados, solo se permite ingresar los años de trabajo superiores a 5 años. Solo se permite ingresar el subsidio intelectual (bt), luego ingrese en el cuadro después de Proteger de bt: if(integer(mid(string(today(),' aaaammdd'),1,4)) – integer(mid(workdata,1,4))>5,0,1) (3) Las filas a proteger solo se pueden determinar durante la ejecución y cambian constantemente. Por ejemplo, en la gestión de salarios de los empleados, se supone que solo el ingresador del salario cambia cuando se modifica el salario y, en general, solo durante la ejecución se puede determinar que la condición requiere una variable para especificar un parámetro para recuperar datos. flag) al establecer la ventana de datos y luego ingresar (nombre de usuario) en el cuadro después de Proteger de la columna modificable. Es una columna en la ventana de datos que representa el nombre del ingresador: if (nombre de usuario = bandera, 0,1) En realidad. aplicación, también debe prestar atención al tipo real del parámetro. (4) Agregue una columna de bandera a la tabla. Los métodos anteriores básicamente requieren que las filas a proteger tengan ciertas reglas a seguir. Cuando estas filas no tienen reglas, puede agregar una columna de bandera a la tabla correspondiente (deje el nombre de la columna). ser bandera), los valores son 1 y 0, y luego ingrese directamente la expresión de la bandera en el cuadro después de Proteger en otras columnas. En tiempo de ejecución, si el indicador de la fila es 1, la columna correspondiente de la fila está en estado protegido.
La modificación del valor de la columna de bandera puede ser modificada por el administrador de datos o configurada de manera flexible en el programa según ciertas circunstancias.