Skip to main content
Announcements
Qlik Connect 2025: 3 days of full immersion in data, analytics, and AI. May 13-15 | Orlando, FL: Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP

"Qlikview Components" Open Source Project

Today I launched an open source project named "Qlikview Components".  My goal is to simplify some of the common scripting tasks and develop a community supported standard for scripting.

Here's the mission statement:

Qlikview Components (QVC) is a library of script subroutines and functions. The mission of Qlikview Components is:

  • Implement scripting best practices encapsulated by a simple and stable API.
  • Improve the speed and quality of script development.
  • Create common ground between script developers.

You can find the project at http://qlikviewcomponents.org. There you'll find links to downloads, forums and an issue tracker.

The example and documentation qvw files in the project are not Personal Edition enabled. PE users can use QVC, they just can't open the documentation yet.

Feedback welcome.

-Rob

http://robwunderlich.com

45 Replies
Not applicable

Thank you Rob!

Cheers,

Yago

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

A new version, 6, is available for download from

http://code.google.com/p/qlikview-components/downloads/list

Changes for this version:

- Added new Sub, Qvc.DbExtract. Provides for table driven SQL extract of multiple tables.

- Issue 29. Qvc.PopulateVariables. Add [] around variable names to allow for special characters and spaces.

- Issue 28. Qvc.ListFiles. Default filemask missing.

- Issue 27. Qvc.LogWarning. Documentation correction.

- Issue 26.          Allow additional set modifiers to be combined with Calendar vSet variables.

- Issue 25. Qvc.AvailableUpdate. Documentation correction.

I've also posted a "Release Notes" doc at

http://qlikview-components.googlecode.com/files/Qlikview%20Components%20Release%20Notes%20V6.pdf

This is my first attempt at more formal documentation of updates.

-Rob

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

A new version, 6.1, is available for download from

http://code.google.com/p/qlikview-components/downloads/list

Changes for this version:

Version 6.1

- Added new Sub, Qvc.InspectTable.

- Issue 30. Qvc.Calendar. Quarters incorrect when quarter months cross a year. For example, when first month of year is 11.

Release notes available at:

http://qlikview-components.googlecode.com/files/Qlikview%20Components%20Release%20Notes%20V6.1.pdf

-Rob

Anonymous
Not applicable

Rob,

What are you using for comments?  Do you have something like Doxygen generating documentation from your comments?

I think that QV made the right move when they included SCM in version 11 (I'm still waiting for Git support ;-)), but I really think that an opportunity was missed to include a document generator.

Thinking about it further, I guess that would require a standard annotation format for comments.  I'm sure that there are enough of us on here that we could come up with a standard and a comment parser -> document generator.

I can't tell you how many times I've written a similar set of tools to "QlikView Components" each time I change jobs...  Maybe I shouldn't reinvent the wheel.

Sorry to spider-web this reply, I just wanted to ask a simple question and it opened a whole other discussion in my head. lol.

Let me know your thoughts.

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

Hi Jeffrey,

For the generated doc I'm using my own markup in the source, similar to JavaDoc. The conventions and annotations are described here

https://qlikview-components.googlecode.com/svn/Developer/Doc/QVC%20Developer.docx

I parse the my annotations from the qvc.qvs file using the script in QvcDocumentation.qvw. The script is more complex than I would like, but it works.

About the only doc I can pick up from the qv script keywords is the identification of the SUB/END SUB. Everything else relies on the markup I put in the script.

One of my sub goals for QVC was to develop some type of script documentation framework. Glad to see someone else interested in it. I haven't taken the concept outside of QVC.

-Rob

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

A new version, 7, is available for download from

http://code.google.com/p/qlikview-components/downloads/list

Changes for this version:

Version 7

- Added new Sub, Qvc.ExpandRange. Provides for expanding an interval table into discreet rows.

- Qvc.InspectTable. Added variable Qvc.v.QvdViewer.Path to optionaly specify the location of the QViewer program.

- Issue 34. Qvc.Calendar. Selections in non-calendar fields should not impact period date ranges.

- Documentation corrections.

- Issue 35. Qvc.Log--  Qvc.Log.v.LogFileName incorrectly spelled as Qvc.Log.v.LogFile when searching for existing external log.

Release notes available at:

https://qlikview-components.googlecode.com/files/Qlikview%20Components%20Release%20Notes%20V7.pdf

-Rob

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

A new version, V8, is available for download from

http://code.google.com/p/qlikview-components/downloads/list

Changes for this version:

- Qvc.IncrementalSetup -- new variable, Qvc.Loader.v.StoreMaxModFieldValue, indicates max ModField value should be stored in the QVD. This greatly speeds up the incremental reload process for large QVD files.

- Qvc.Calendar-- added code extension point for SET variables.

- Added new Sub, Qvc.QvdFieldNumber. This sub provides the same functionality as the native QV “FieldNumber” function, but for QVD files.

- Removed duplicate Qvc.Calendar & Qvc.CalendarFromField code from qvc.qvs. The duplicates caused no functional problem, but did make qvc.qvs larger than necessary.

Release notes available at:

https://qlikview-components.googlecode.com/files/Qlikview%20Components%20Release%20Notes%20V8.pdf

-Rob

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

A new version, V8.1, is available for download from

http://code.google.com/p/qlikview-components/downloads/list

Changes for this version:

- Issue 38. Add support for Deletes to Qvc.DbExtract.

- Issue 39. Qvc.Calendar vSetXXX variables incorrect when script uses "Verbatim=1".

- Updated Qvc.DbExtract to allow any LOAD statement instead of Column specification.

Release notes available at:

https://qlikview-components.googlecode.com/files/Qlikview%20Components%20Release%20Notes%20V8.1.pdf

-Rob

Gysbert_Wassenaar

I noticed something in the set modifiers. Take for example the YTD modifier:

[MyDate]=,[Day]=,[Weekday]=,[Year]=,[Month]=,[Quarter]=,[_DateSerial]=,[_MonthSerial]=,[_QuarterSerial]=,[_WeekSerial]=,[Year-Month]=,

[_DateSerial] = {"<=$(=Max({1<_Qvc.DummyField=$(_Qvc.Calendar.v.SelectedFieldList_)>}[_DateSerial]))"},

[Year] = {"$(=Max({1<_Qvc.DummyField=$(_Qvc.Calendar.v.SelectedFieldList_)>}[Year]))"}

What's the <_Qvc.DummyField=$(_Qvc.Calendar.v.SelectedFieldList_)> part for? It seems to come from the _qvctemp.vMaxModifier variable. But I don't understand the purpose... or why it needs to end up in the final variable.


talk is cheap, supply exceeds demand
rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

The Max() calculation uses only fields selected in the Calender table. It does this by including the Calendar selections, rather than excluding everything else. The Dummy.Field was just a way to avoid getting a syntax error if there were no Calendar fields selected. I found it easier than trying to conditionally suppressing the Set "{1<>}". The script syntax for generating these variables has become quite the beast.

-Rob