vbscript getEnabled

注意:Для»»`菜单`和`动态菜单`подходиттоже!

Office XML_13
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <commands>
        <command idMso="Cut" onAction="CallbackCut"
          getEnabled="CallbackGetEnabled"/>
    </commands>
</customUI>
Office VBA_11
Option Explicit
  
Public bolEnabled As Boolean
  
Sub CallbackGetEnabled(control As IRibbonControl, ByRef enabled)
    enabled = bolEnabled
End Sub 

vbscript getPressed

`ToggleButton`или`CheckBox` - проверяетнажатоилиненажато。

Office VBA_10
'Для `ToggleButton`
Sub CallbackGetPressed(control As IRibbonControl, ByRef pressed)
  Select Case control.ID
    Case Else "MyToogleButton1"
        pressed = True
  End Select        
End Sub
Office VBA_17
'Для `CheckBox` #1
Sub MyCheckBoxCallbackGetPressed(control As IRibbonControl, ByRef bolReturn)
    Select Case control.ID
        Case "MyCheckBox"
            bolReturn = True
    End Select
End Sub
Office VBA_21
'Для `CheckBox` #2
Sub MyCheckBoxCallbackOnAction(control As IRibbonControl, pressed As Boolean)
    Select Case control.ID
        Case "MyCheckBox"
            MsgBox "Checkbox Value" & control.ID & _
                   " : " & pressed, vbInformation, _
                   "CheckBox Sample"
    End Select
End Sub

vbscript 通过格式定位器进行正则表达式匹配

使用KTM Format Locator / Regex Flavor执行字符串匹配。当想要匹配KTM在格式定位器中执行正则表达式搜索时,这非常有用。

IsRegexMatch
Public Function IsRegexMatch(ByVal strRegex As String, ByVal strTest As String, ByVal bWholeWord As Boolean, ByVal bIgnoreCase As Boolean, ByVal bIgnoreBlanks As Boolean) As Boolean
   OutputDebugString "Scansation.IsRegexMatch"
   OutputDebugString "Scansation.strRegex: " & CStr(strRegex)
   OutputDebugString "Scansation.strTest: " & CStr(strTest)
   OutputDebugString "Scansation.bWholeWord: " & CStr(bWholeWord)
   OutputDebugString "Scansation.bIgnoreCase: " & CStr(bIgnoreCase)
   OutputDebugString "Scansation.bIgnoreBlanks: " & CStr(bIgnoreBlanks)

   Dim fd As CscRegExpLib.CscFormatDefinition
   Dim floc As New CscRegExpLib.CscFormatLocator
   Dim strResult As String

   ' This Function uses the Ktm format locator / regex flavour to perform regex matching
   ' Usage: IsRegexMatch(strPattern, oLine.Text)

   On Error GoTo Error_Handler

   Set fd=floc.FormatDefinitions.Add(strRegex)
   fd.Enabled=True
   fd.FormatType=RegularExpression
   fd.WholeWord = bWholeWord
   fd.IgnoreCase = bIgnoreCase
   fd.IgnoreBlanks = bIgnoreBlanks

   strResult = floc.TestString(strTest)
   If strResult <> "" Then
      IsRegexMatch = True
   Else
      IsRegexMatch = False
   End If

   OutputDebugString "Scansation.IsRegexMatch: " & CStr(IsRegexMatch)

Exit Function
Error_Handler:
   IsRegexMatch = False
End Function

vbscript getScreentip

注意:аналогичноидляпараметров»»“getSupertip”,“GetDescription”,“GetLabel”$ b $bПримерзаписи:ByRef»»“supertip”,“description”,“label”$ b $bДля»»`Menu` “动态菜单”подходит!

Office VBA_9
Function Комментарий(control As IRibbonControl, ByRef screentip) 'В `XML` файле пишем getScreentip="Комментарий".
    Select Case control.ID
        Case "Кнопка": screentip = "Это наш комментарий"
    End Select
End Function
Office VBA_13
Sub CallbackGetScreentip(control As IRibbonControl, ByRef screentip)
    Select Case control.id
        Case "myBtn1"
            screentip = "Time:"
        Case "myBtn2"
            screentip = Format(Now, "hh:mm:ss")
        Case "myBtn3"
            screentip = "ТЕСТ Кнопка"
        Case Else
            screentip = " "
    End Select
End Sub

vbscript 的getImage

注意:Для»»`菜单`和`动态菜单`подходиттоже!

Office VBA_8
Function Значок(control As IRibbonControl, ByRef image) 'В `XML` файле пишем getImage="Значок".
    On Error GoTo выход
    Select Case control.ID 'Вставить идентификатор!
        Case "Кнопка": Set image = LoadPicture(ThisWorkbook.Path & "\TEST.jpg")
'        Case "Кнопка": Set image = CommandBars.GetImageMso("FileOpen", 32, 32)
    End Select
    On Error GoTo 0
выход:
End Function
Office VBA_14
Public Sub getImages(control As IRibbonControl, ByRef image)
    Set Image = LoadPicture(getAppPath & control.Tag) 'В `XML` ещё используется » “Tag”.
        image = "HappyFace" ' или ImageMso
End Sub

vbscript ЗагрузкаВкладки。

Откроетнужнуювкладкупристарте`Книги`。 $ b $bДляактивациивстроеннойвкладки»»»ActivateTabMso

Office VBA_5
Dim myRibbon As IRibbonUI 'Нужно иметь ссылку на `Ленту`, чтобы в любой момент времени можно было управлять её элементами.
Office VBA_6
Sub Загрузка_Вкладки(ribbon As IRibbonUI) 'Запускается во время загрузки `Ленты` (событие происходит после AutoOpen и всего остального).
  ribbon.ActivateTab "Tab1" 'Тут пишем `ID` вкладки.
'  ribbon.ActivateTabMso "TabDeveloper"
End Sub
Office VBA_7
Sub Загрузка_Вкладки(ribbon As IRibbonUI) 'Запускается во время загрузки `Ленты` (событие происходит после AutoOpen и всего остального).
  Set myRibbon = ribbon 'Запоминаем ссылку на ленту.
  myRibbon.ActivateTab ("Tab1") 'Тут пишем `ID` вкладки.
'  myRibbon.ActivateTab ("TabDeveloper")
End Sub

vbscript 获取SQL产品密钥。

从二进制字符串数组中获取SQL产品密钥。

GetSQLProductKey.vb
'.SYNOPSIS
'    Gets SQL product key.
'.DESCRIPTION
'    Gets SQL product key from a binary string array.
'.PARAMETER astrBinaryKey
'    Specifies the obfuscated key.
'.PARAMETER intVersion
'    Specifies the SQL version.
'.EXAMPLE
'    Code.GetSQLProductKey(Fields!SomeField.Value, 12) (SSRS)
'.EXAMPLE
'    GetSQLProductKey({1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0}, 12) (VB.Net)
'.NOTES
'    Created by Ioan Popovici.
'    Credit to Jakob Bindslet and Chrissy LeMaire.
'    I only translated the script in Visual Basic, nothing else.
'.LINK
'    http://mspowershell.blogspot.com/2010/11/sql-server-product-key.html (Jakob Bindslet)
'    https://gallery.technet.microsoft.com/scriptcenter/Get-SQL-Server-Product-4b5bf4f8 (Chrissy LeMaire)
'.LINK
'    https://SCCM.Zone
'.LINK
'    https://SCCM.Zone/Issues
'
'/*##=============================================*/
'/*## SCRIPT BODY                                 */
'/*##=============================================*/
'/* #region FunctionBody */

Function GetSQLProductKey(ByVal astrBinaryKey As String(), ByVal intVersion As Integer) As String
    Dim achrKeyChars As Char() = {"B", "C", "D", "F", "G", "H", "J", "K", "M", "P", "Q", "R", "T", "V", "W", "X", "Y", "2", "3", "4", "6", "7", "8", "9"}
    Dim strSQLProductKey As String
    Dim iastrBinaryKey As Long
    Dim iachrKeyChars As Long
    Dim iastrBinaryKeyOuterLoop As Long
    Dim iastrBinaryKeyInnerLoop As Long
    Try
        If (intVersion >= 11) Then
            iastrBinaryKey = 0
        Else
            iastrBinaryKey = 52
        End If
        For iastrBinaryKeyOuterLoop = 24 To 0 Step -1
            iachrKeyChars = 0
            For iastrBinaryKeyInnerLoop = 14 To 0 Step -1
                iachrKeyChars = iachrKeyChars * 256 Xor astrBinaryKey(iastrBinaryKeyInnerLoop + iastrBinaryKey)
                astrBinaryKey(iastrBinaryKeyInnerLoop + iastrBinaryKey) = Math.Truncate(iachrKeyChars / 24)
                iachrKeyChars = iachrKeyChars Mod 24
            Next iastrBinaryKeyInnerLoop
            strSQLProductKey = achrKeyChars(iachrKeyChars) + strSQLProductKey
            If (iastrBinaryKeyOuterLoop Mod 5) = 0 And iastrBinaryKeyOuterLoop <> 0 Then
                strSQLProductKey = "-" + strSQLProductKey
            End If
        Next iastrBinaryKeyOuterLoop
    Catch
        strSQLProductKey = "Cannot decode product key."
    End Try
    GetSQLProductKey = strSQLProductKey
End Function

'/* #endregion */
'/*##=============================================*/
'/*## END SCRIPT BODY                             */
'/*##=============================================*/

vbscript 获取ID插入

Con el SELECT SCOPE_IDENTITY()devolvemos la ID que se ha creado al realizar el insert。

getIDinsert
Dim sql As String = "INSERT INTO [BD_VALORES_Y_FONDOS_DES].[dbo].[AS_0002]" + _
                                    "(ID_ASTILLEROS,NOMBRE,OFICINA,CONTRATO,LIMITE,FECHA_FIRMA,FECHA_VENCIMIENTO,CONDICIONES,COMENTARIO_CONDICIONES,BASE,AMORTIZACION,LIQUIDACION_INTERESES,FECHA_DESEMBOLSO_SUBVENCION,COMENTARIOS)" + _
                                    "VALUES(@ID_ASTILLEROS,'@NOMBRE','@OFICINA','@CONTRATO',@LIMITE,'@FECHA_FIRMA','@FECHA_VENCIMIENTO',@CONDICIONES,'@COMENTARIO_CONDICIONES',@BASE,'@AMORTIZACION','@LIQUIDACION_INTERESES','@FECHA_DESEMBOLSO_SUBVENCION','@COMENTARIOS'); SELECT SCOPE_IDENTITY();"
                                    
                                    Id_Barco = CInt(cmd.ExecuteScalar())

vbscript 选择sql到DatagridView

选择que se pone en un datagridview

selectToDatagridView
Dim cadenaConexion As String = ConfigurationManager.ConnectionStrings("SINDICADOS.My.MySettings.BD_UNIDAD_CONTABLEConnectionString").ConnectionString
        Using cnn As New SqlConnection(cadenaConexion)
            Dim query As String = ""
            If ListBoxOficinas.Items.Count <> 0 Then
                query = "SELECT ANACREDIT, A_PERIODIF, BANCO_AGENTE, BASE, BROKER, CONTRATO, DIA_PERIODO_ACTUAL, DIFERENCIA, DIVISA, FECHA_FINAL_DISPOSICION, " + _
                            "FECHA_FIN_VALIDEZ, FECHA_INICIAL_DISPOSICION, FECHA_INICIO_VALIDEZ, FIXING_DISP_USD, IMPAGADO, IMPORT_DISPOSICIO, " + _
                            "INT_COBRADOS_NO_CONTABILIZADOS, INT_COBRADOS_NO_PERIODIF, MARCH_CAPITAL_MARKETS, MARGEN, OBSERVACIONES, OFICINA, PERIODIF_ACUM, " + _
                            "PERIODIF_ANTERIOR, SALDO_CONTABILIDAD, TIPO_INTERES, TIPO_REFERENCIA, TITULAR, VENCIMIENTO_FINAL " + _
                            "FROM [001CRED_SINDICADOS] " + _
                            "WHERE (OFICINA IN (@OFICINA)) AND (FECHA_INICIO_VALIDEZ = '@FECHA_INICIO_VALIDEZ') Order By OFICINA"
                query = Replace(query, "@OFICINA", oficinasString)
            Else
                query = "SELECT ANACREDIT, A_PERIODIF, BANCO_AGENTE, BASE, BROKER, CONTRATO, DIA_PERIODO_ACTUAL, DIFERENCIA, DIVISA, FECHA_FINAL_DISPOSICION, " + _
                            "FECHA_FIN_VALIDEZ, FECHA_INICIAL_DISPOSICION, FECHA_INICIO_VALIDEZ, FIXING_DISP_USD, IMPAGADO, IMPORT_DISPOSICIO, " + _
                            "INT_COBRADOS_NO_CONTABILIZADOS, INT_COBRADOS_NO_PERIODIF, MARCH_CAPITAL_MARKETS, MARGEN, OBSERVACIONES, OFICINA, PERIODIF_ACUM, " + _
                            "PERIODIF_ANTERIOR, SALDO_CONTABILIDAD, TIPO_INTERES, TIPO_REFERENCIA, TITULAR, VENCIMIENTO_FINAL " + _
                            "FROM [001CRED_SINDICADOS] " + _
                            "WHERE (FECHA_INICIO_VALIDEZ = '@FECHA_INICIO_VALIDEZ') Order By OFICINA"
            End If

            query = Replace(query, "@FECHA_INICIO_VALIDEZ", FECHA_INICIO.Month.ToString() + "/" + FECHA_INICIO.Day.ToString() + "/" + FECHA_INICIO.Year.ToString())

            Dim cmd As New SqlCommand(query, cnn)
            cmd.CommandType = CommandType.Text

            Dim da As New SqlDataAdapter(cmd)
            Dim dt As New DataTable()
            da.Fill(dt)

            DataGridView1.DataSource = dt
        End Using

vbscript celda es Null

En una celda de un DataGridView es la forma de comprobar si es null

Cell_is_null
row.Cells("BROKER").Value Is DBNull.Value