Filter Lookups By Predefined Smart-list Favorite “Simple data level security method”

Sometimes you might need to restrict access to some items in your store for certain machines, which is currently not possible out of the box, this method is not totally restriction but it could help, I am using the smart list favorites to filter lookups, follow steps below to implement:

1. Go to smart list and add some filters on the inventory items smart list then save it as a favorite smart list.

2. Go to Items lookup and add the form to VBA, then add “ViewAll” button to the VBA.

3. Write the following code segments in VBA to disable the “ViewAll” and “Advanced Search” buttons after selecting the needed favorite:

Private Sub ViewAllItemNumbersbyItemNumber_AfterUserChanged()
ViewAllItemNumbersbyItemNumber.Enabled = False
PBAdvancedSearch.Enabled = False
End Sub

5. After loading the window we’ll need to register a macro that selects the needed favorite, the code will look like the following:

Private Sub Window_AfterOpen()
    ‘Dim CompilerApp As New Dynamics.Application
    Dim CompilerApp As Object
    Dim CompilerMessage As String
    Dim CompilerError As Integer
    Dim Commands As String
    ‘ Create link without having reference marked
    Set CompilerApp = CreateObject(“Dynamics.Application”)
    Commands = “”
    Commands = Commands & “local integer l_file_id; ” & vbCrLf
    Commands = Commands & “local string pathname; ” & vbCrLf
    Commands = Commands & “pathname = Path_GetForApp(1) + “”TEMP.MAC””; ” & vbCrLf
    Commands = Commands & “l_file_id = TextFile_Open(pathname, 0, 0); ” & vbCrLf
    Commands = Commands & “TextFile_WriteLine(l_file_id, “”  ActivateWindow dictionary ‘SmartList’  form ‘IV_Item_Number_Lookup’ window ‘IV_Item_Number_Lookup’ “”); ” & vbCrLf
    Commands = Commands & “TextFile_WriteLine(l_file_id, “”  MoveTo field ‘ASI_LU_View_Button’ item 5  # ‘Restricted List…’ “”); ” & vbCrLf
    Commands = Commands & “TextFile_WriteLine(l_file_id, “”    ClickHit field ‘ASI_LU_View_Button’ item 8  # ‘Rams’ “”); ” & vbCrLf
    Commands = Commands & “TextFile_Close(l_file_id); ” & vbCrLf
    Commands = Commands & “if File_Probe(pathname) then ” & vbCrLf
    Commands = Commands & ”  run macro pathname; ” & vbCrLf
    Commands = Commands & “end if; ” & vbCrLf
    ‘ Execute SanScript
    CompilerError = CompilerApp.ExecuteSanscript(Commands, CompilerMessage)
    If CompilerError 0 Then
        MsgBox CompilerMessage
    End If
End Sub

6. Give your use the access to the modified form instead of the original and enjoy having your form looks like the below:

image 

Hope that this helps.

Regards,

Mohammad R. Daoud – CTO
MVP, MCP, MCBMSP, MCTS, MCBMSS
+962 – 79 – 999 65 85 
mohdaoud@gmail.com
mohdaoud.blogspot.com

Advertisements

About Mohammad R. Daoud
Mohammad R. Daoud has been working as a Microsoft Dynamics GP consultant since 2004. His career path started with version 7.5; he studied every single tip of the application technicalities and did allot of successful implementations that includes functional consultations, analysis, and custom development projects. He holds a graduate degree in Computer Science and currently he is pursuing MBA degree in Accounting. In January 2007 he was nominated to the Microsoft Most Valuable Professional (MVP) certificate and was certified in April 2008 due to his online contributions in the Dynamics Community (Dynamics GP Newsgroups, Forums, User Groups and his blog: http://mohdaoud.blogspot.com). Worth to mention that he was also listed as one of the Microsoft Dynamics Top 100 Most Influential People in 2009 by DynamicsWorld. And more... • Demonstrated Passion for MS Products through participating in beta testing for some product versions, an effective member of Microsoft Connect. • Talented in securing strong high quality relationships with premier customers, partners and sales teams passionately and profitably. • Dedicated to meeting the expectations and requirements of internal and/or external customers • Problem Solver – Uses systematic approach to uncover true problem(s) and practical solution and can marshal resources to solve problem! • Proven record of effective account management, including Account Planning, Opportunity Management, and Business Management Excellence and working as part of a larger virtual team • Successful in delivering high quality technical engagements in the enterprise Dynamics GP implementations area according to customer requirements. • Dedicated, Committed, Self Motivated, Creative and highly focused with excellent communication, Negotiation, presentation, Active Listening and Objection Handling skills. • Experienced in Profitable researches and studies including white papers and technical presentations.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: