Passing a Generic Cluster to a VI

I was wondering how you create a VI that can take any cluster or data item as a control?  For example the "Write to Binary File", "Data" input takes any data type.  How do you do this in your own VIs?
Thanks.
Christopher Povey
Senior Test Systems Engineer for BAE Systems.
Solved!
Go to Solution.

The problem I was thinking about was:
I have a GUI front end with a number of panels and each panel contains a number of different controls.  As part of each "panel" there is a save and load button.  When these are selected, the values of the controls on that panel are saved to disc or loaded from disc (via a single generic "Save Data" VI and a single generic "Load Data" VI ).  In this case the Generic "Save Data" and "Load Data" VI's would need to be designed with no concept of the input data control or output indicator until it was used.  The VI's would also contain a marker to associate a file with a panel so that the data from an incorrectly selected file would not trash a panel.
I'll have a look into Polymophic and Varient VI's...
Christopher Povey
Senior Test Systems Engineer for BAE Systems.

Similar Messages

  • Is there a way of passing a mixed cluster of numbers and booleans to teststand

    Hi,
    I have a labview VI that contains an output cluster containing both numeric and boolean results and would like to pass this to Teststand. At the moment I have coverted all my boolean results to  '1/0'  so that I can create a numeric array and can quite easily pass this to Teststand (using multiple numeric limit test). 
    Is there a way to pass mixed results to Teststand and write in the limits (example PASS and GT 5V) or do I have to stick with what I have?
    Chris

    Which test step type to use depends on what you have to analyze - a boolean condition? String? Number(s)? I can't tell you because I don't know what's in your cluster. If you click on the plus sign next to the parameter name "output cluster" you will see all paramters and their types, which are passed from the VI to TestStand.
    You can either create a variable for the whole cluster, or you can assign all or just some values from within the cluster to variables.
    The name of the variable (Locals.xxxxxxx... or FileGlobals.xxxxx...) ist what you type in the value field. You can also choose the variable from the expression browser by clicking on the f(x) button.
    Are you new to TestStand, do you know how to work with variables in TS?
    Maybe the attached picture gives you an example, there I am assigning the values from VI output "VoltageOutputArray" to the TS variable locals.VoltageMeasurement.
    This variable ist used again on the tab "Data Source" as the Data Source Expression.
    Regards,
    gedi
    Attachments:
    stepsettings.jpg ‏89 KB

  • Time stamp & array passed in a cluster through DLL are not accepted by Teststand

    I am trying to pass  Timestamp & array data [string array]   in a cluster  from DLL  is not  getting recognized by testsand.
    The action module (DLL)  Output (cluster)  generates   error "System Level Exception.[Error Code: -17502] "
    the png file shows the cluster
    I spoke to NI support & they  suppose that its time stamp that generates error
    but some fields (numeric, string) i am able to read
    Attachments:
    clustererror.PNG ‏41 KB

    Hello aparab,
    here is a link to another forum, which solves your issue:
    time stamp, data type for dll:
    http://forums.ni.com/t5/LabVIEW/time-stamp-data-type-for-dll/td-p/1085375
    to summarize:
    there are two possibilities to pass a cluster with a timestamp from LV to TS:
    1. use a string for the timestamp, although a numeric double might be easier to work with in TestStand
    2. use packed library

  • Pass an error cluster in and out of a C/C++ dll?

    Hi all,
    I'd like to know if it is possible to pass a LabVIEW error cluster to a C/C++ function from a dll. This would greatly help error handling in the different VIs.
    I am able to access and modify the first two members of the error cluster; the error status and the error code, which are, respectively, boolean and integer. But I cannot modify the string. LabVIEW crashes completely doing so.
    I first define a structure in C++ like this:
    const int N = 512;
    #pragma pack(push,1)
    typedef struct lvcluster {
    bool status;
    int code;
    char source[N];
    } lvcluster;
    #pragma pack(pop)
    Then, I define a function that will access the members status, code and source:
    int TestCluster(lvcluster *err)
    err->code = 1;
    err->status = false;
    sprintf(err->source, 'Test');
    I then use LabVIEW's "Call Library Function" to call this dll's function. I have set the parameter "err" to "Adapt to Type" and "Handles by Value". Trying to write characters to the source array crashes LabVIEW.
    Is this possible at all? How should it be done?
    Thanks!

    Thanks all for the comments.
    I've been looking at extcode.h where I saw the defeninition of a LStrHandle. It seems to be a pointer to pointer to "character array":
    typedef struct {
    int cnt; /* number of bytes that follow */
    unsigned char str[1]; /* cnt bytes */
    } LStr, *LStrPtr, **LStrHandle;
    The "character array" is different than a C character array, see http://www.ni.com/white-paper/4877/en/#toc4
    The first 4 bytes contain a signed 32 bit integer representing the number of characters. There is no NULL-termination character.
     So the error structure should be something like this (modulo the size of boolean, thanks rolfk):
    const int N = 512;
    #pragma pack(push,1)
    typedef struct lvcluster {
    bool status;
    int32 code;
    LStrHandle source;
    } lvcluster;
    #pragma pack(pop)
    From there, I was able to access a LabVIEW string from C. But I am unable to modify any of it. I might be able to change the characters from an alreay allocated string, but resizing or even creating a new string crashes LabVIEW. As reported by others, manipulating these strings would require linking against labview's library to access the string manipulation functions, but this is not possible as the library must be independant of LabVIEW.
    The only last possible way I can think of is to allocate a new cluster inside the DLL. Then I might be able to change the string in it, and hopefully LabVIEW would pick it up. I don't know how LabVIEW manages its memory; would it garbage collect the input cluster that is not used anymore?
    Thanks for all the feedback.

  • Passing a generic rowtype, convert to XML

    We're currently storing some data in a XMLType column. For the originally intended purpose, we had access to a dynamic SQL statement, via a refcursor and so we've been able to use DBMS_SQL to retrieve column names from those SQL statements. Then we convert that into XML and store it in the XMLType column.
    Now we're considering letting other processes use this code, but they'll be working off of a different mechanism which generates their own SQL statements. But we were looking for a generic mechanism to build the same XML data from, best case scenario, a ROWTYPE variable. But everything I've read tells me I at least need a SQL statement (refcursor included) in order to have access to the elements on the row. And I'm trying to steer clear of passing in the SQL statement, since some of this calling code is working off of cursor for loops.
    We're trying to ultimately build something like:
    create function BUILD_XML (p_generic_rowtype SYSROWTYPE) return varchar2
    as
      for each column in p_generic_rowtype
      loop
        build_another_line_of_xml_code;  
      end loop;
      return xml;
    end;
    We know the myriad of calling programs will have a ROWTYPE variable available, but we won't know anything about it. I
    've also thought about building something where a name-value paired collection is passed in, but I still think that's going to require something more manual on the calling program's end. Mostly I'm just trying to see if there's a concise way to get this working, or if we would need to either pass in a SQL stmt or customize the calling code every time.
    --=Chuck

    Have you considered using a standard 'generic' column type and a fixed number of columns? That is what Oracle uses for DML error logging tables
    EXEC DBMS_ERRLOG.CREATE_ERROR_LOG ('EMP')
    SELECT DBMS_METADATA.GET_DDL('TABLE', 'ERR$_EMP', 'SCOTT') FROM DUAL
    CREATE TABLE "SCOTT"."ERR$_EMP"
    ( "ORA_ERR_NUMBER$" NUMBER,
    "ORA_ERR_MESG$" VARCHAR2(2000),
    "ORA_ERR_ROWID$" UROWID (4000),
    "ORA_ERR_OPTYP$" VARCHAR2(2),
    "ORA_ERR_TAG$" VARCHAR2(2000),
    "EMPNO" VARCHAR2(4000),
    "ENAME" VARCHAR2(4000),
    "JOB" VARCHAR2(4000),
    "MGR" VARCHAR2(4000),
    "HIREDATE" VARCHAR2(4000),
    "SAL" VARCHAR2(4000),
    "COMM" VARCHAR2(4000),
    "DEPTNO" VARCHAR2(4000)
    Every column is a VARCHAR2(4000). You could use a standard column naming convention and then use a %ROWTYPE on the table (or on a view).
    Since your use case is email everything needs to be converted to test anyway so could easily be stored in such a table.

  • Pass error cluster from labview dll to teststand

    Hello,
    I just want to pass an error cluster from a dll compiled in LV7.1 to TestStand 3.1. I never receive the contents of the LV error cluster in TS. I compiled my function with standard calling convention option, this should work. In my VI I generate only an error and pass to error output.
    LV Settings:
     TS settings:
    regards
    MB

    MB,
    please follow the info in this KB:
    http://digital.ni.com/public.nsf/allkb/22BF02003B4588808625717F003ECD67?OpenDocument
    Please note that using "By Value" will never return any values to TestStand!
    You cannot use the default error-container in TestStand to receive data from the LV error cluster if you compile the VI into a LV DLL.
    So either you choose to follow the KB or you split up the error cluster in your LV VIs to return error.occurred (boolean), error.code (numeric i32) and error.msg (LV String) .
    hope this helps,
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Passing generic objects between frames

    Hi, can anyone tell me the steps on how to pass a generic object between frames?

    Session variables are stored individually in each app context, and they cannot be shared across servers without additional work. To pass the variables through the redirect, you will have to pass it along the query string, such as:
    String str = (String)request.getSession().setAttrubute(...);
    response.sendRedirect("http://sun5e015:8080/app2?" + str);
    Other than that, you'll need to do more complicated things such as having one server talk directly to the other and communicate through XML, serialization, SOAP, binary stream, etc...

  • Passing cluster of moderately large size across vi's

    If I have a choice of passing in a cluster or an element of cluster from one vi to another
    vi which one should I use? I would like to pass in the cluster for convenience, but I am not
    sure if the cluster is passed by reference or memory copy internally. The cluster is about
    200 bytes and the function will be called repeatedly in a 10 msec timer.
    Any suggestion will be much appreciated. Thanks.
    Ratin

    Unless you are modifing the value of any of the elements of the cluster, LabVIEW shouldn't make a copy of the cluster as it's passed around.
    If you are modifing a value, it may, or may not make a copy. If you have LabVIEW 7.1, there's a tool you can use to see where LabVIEW creates copies of data. Open the block diagram and in the tools menu, go down to 'Advanced', then select 'Show Buffer Allocations'. This will place a small black box on the terminals where data is copied.
    I generally pass the entire cluster and unbundel the items I need inside the subVI.
    Ed
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.

  • Dynamic passing of the structure in LVC_FIELDCATALOG_MERGE

    Hi ABAP Gurus,
    I'am doing report to read cluster results
    My requirement is :
    The report uses LDB -PNP in the selection screen in addition to that Clusterid is passed and what ever cluster id we select for the pernr that cluSter id results has to show in the report output
    The report has to dynamically change in the output (whole structure of the cluster id) how to pass in selected cluster id (what we selected in the selection screen) in the function module
    LVC_FIELDCATALOG_MERGE
    Importing
    I_STRUCTURE_NAME -  (HERE I WANT TO GET THE STRUCTURE OF THE SELECTED CLUSTER ID IN THE SELECTION SCREEN)
    Thanks and Regards,
    Deepthi.

    Recently I have been working on generic cluster access and I must say the task was challenging. What I've discovered is:
    -  generic access as per cluster ID is impossible via [IMPORT ... FROM DATABASE...|http://help.sap.com/abapdocu_70/en/ABAPIMPORT_SHORTREF.htm] -> in order to create a fully flexible access you would have to go for pure dynamic program generation by means of [GENERATE SUBROUTINE POOL|http://help.sap.com/abapdocu_70/en/ABAPGENERATE_SHORTREF.htm]
    - as there are houndreds of available cluster IDs it is very difficult to determine those relevant to particular employee. For just one table PCL2 there are multiple of unknown to me areas which are hard to distinguish from those (un)relevant to employee. First look at fixed values from domain RELID_PCL2 gives the feeling what we are struggling with.
    - focusing on all common clusters (only from PCL2) like CU, RX, ZL, B2, PS, PT can narrow the search result but still is a lot to be handled by one program
    - eventually looking deeper only on RX and possibly B2 areas seemed to be the best choice (as mostly we use only those - at least I do). So I focused on this area as generic payroll result can be easily extracted. What I needed was  extracting relid for given EE molga, then py result type for this relid, the simply using FM PYXX_READ_PAYROLL_RESULT to access py results itself for given cluster directory entry (table hrpy_rgdir )
    - the final challenge was how to show the results in user friendly form. As the result table I had was not only nested but deep too it wasn't so obvious. Luckily to me I was using Web Dynpro which allows to create table popins (showing the table within the table) but I don't think there is corresponding GUI control in SAP GUI. So considering how you want to show this data is really not an easy thing to do.
    - As for the structure of payroll result itself (or rather structure of each of its components) can be delivered using RTTI but you will also sweat a bit before getting that done.
    To conclude. There is no easy way of accessing clusters by just giving its RELID Even though you would focus on some specific part, it will take you more time then you expect at the beggining. So I would try to suppress the tempation for a moment and consider all these discussed (and those which I didn't think of) aspects.
    Regards
    Marcin

  • How to disable the  'Change - Display' Button in Cluster via SM34 ?

    Hi
    I have a View Cluster maintained with a transaction wich calls  SM34 passing it the Cluster.
    I need the dialog be only in display mode, so i'm looking for a way to disable the button Change<->Display.
    Does somebody knows how can i do this ? maybe with an event, the button does not appears or well making the button does not change the display mode (does not change the field VIEW_ACTION siwtch from 'S' to 'U')
    Thanks in advanced
    Frank

    Hi Frank,
    On SAP 4.7 Version
    1). Goto SHD0
    2). Enter the transaction code as SM34
    3). ENter the transaction Variant as say ZSM34
    4). Click on the create button --> this will take you to the sm34 screen. If you want to default some value or disable something on this screen just hit enter on this screen. You will get a popup window to select and restrict.
    5). You can further go to next screen and deactivate the menu. On the popup screen you will get a button MENU FUNCTIONS.
    Hope this helps
    Cheers
    VJ

  • LVOOP technique for passing classes down to subVIs

    Hello LVOOP experts,
    A quick question regarding performance of LVOOP. I finally got around to implementing something non-trivial with LV classes, just for fun though.
    If my architecture consists of a state machine, with a typedef'ed shift-registered cluster (containing all my core classes) being passed around the main loop and into subVIs, is there a performance penalty if the classes contain lots of data?
    My question arises from my only passing knowledge of how LV classes work. As they are byvalue, does this mean ALL the data gets copied/moved between every state, and into every subvi? Or is the compiler smart enough to know that if I am passing the main cluster into a subVI it doesn't necessarily need to make a copy of the data unless I am forking it or something.
    Fictional example, one of the classes is a data storage and has 1M DBL values in it, is this going to cause lots of memory allocation? (If so then its better probably to not store the data directly in the class, rather have a queue or some other byref storage, right?)
    Comments appreciated :-)
    n
    nrp
    CLA

    nrp wrote:
    Mark Yedinak wrote:
    My understanding is that LVOOP objects are passed by value. So you would indeed take a hit if you are passing large objects around.
    Thats as much as I suspected, thanks for the confirmation.
    My big problem is I have not seen a reference implementation of how to do it right. I sure wish NI would provide some intermediate example rather than dog/cat or car/truck.
    The closest I have seen in DfGrays Xylophone set of tutorials, but then he complicates things by using a singleton type approach (dequeue --> use object --> requeue) and a strange (to me) architecture with lots of registered events and an event structure as one of the cases of the main state machine loop.
    Does anybody have a non-trivial, but freely distributable example of doing classes the right way? I know there are probably a dozen or so ways of doing it right, but there must be some common ground.
    I spent the weekend mucking about and have something which I will present once I have tidied it up a bit.
    But the overhead is probably negligible for non-storage type classes, i.e. the classes that define the
    HI Mark and Neal (?)
    The Pass by value story is starting to shape as a misnomer (sp? bad name).
    1) If I do a Show buffer allocations when a class wire splits, the buffer does not show-up under clusters of array but rather as a scalar.
    2) You can type cast the class ref as a U32 and you get a number.
    3) When using Dynamic Dispatching you have to have the class control and indicator on the icon connector, so all of the requirements are present for the sub-VI (method) to work in-place using the bufer that was pointed to by the caller.
    So passing the data in a class is about the same as when working with clusters. If LV can avoid the copy it will.
    But where you will take a hit...
    When we fork a class wire there is a buffer allocated. Too many splits could cause problems. As long as we string together lines of VLOOP methods, they should use the same buffer.
    BTW:
    I did have to do a re-write of one of my early LVOOP projects because I was splitting a class with a Image data in it. The re-wire skipped using the class and just passed the image data (via a queue between threads).
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Pass-through optimization

    I just upgraded our env from 3.3.1 to 3.4.2-patch05.
    I was intrigued by the following message in my log file.
    INFO | jvm 1 | 2009/06/19 23:43:02 | [INFO ] 2009-06-19 23:43:02.053/7571.909 Oracle Coherence GE 3.4.2/411p5 <Info> (thread=Proxy:ExtendTcpProxyService33:TcpAcceptorWorker:1, member=10): The cache "XYZ" does not support pass-through optimization for objects in internal format. If possible, consider using a different cache topology.
    I have no idea what it means...
    Any information about this appreciated.
    Thanks
    Sumax

    Hi Sumax,
    starting with 3.4.0 it is possible to configure your cache services and invocation services to store the data internally and communicate over the network in the POF format instead of the old Java serialization/ExternalizableLite format (EL from now on).
    Since from start the Coherence Extend clients used the POF format to communicate with the proxy, if EL was used as the serialization format within the service in the cluster, then the proxy node had to convert the data from EL to POF and vice versa. This required the deserialization of most data passing through the cluster (except for types that are known to both EL and POF... i.e. Strings and Java primitives). This was an expensive step in both CPU and memory terms.
    On the other hand, if you configured your service to use POF as its serialization format, then this conversion step is no more necessary, and the proxy can pass through the data from the service to the client in a streaming manner so the CPU cost is negligible and the memory cost is just a much smaller buffer size. This, along with the related effects of POF being used within the TCMP cluster as a storage and communication format is one of the greatest performance improvements the 3.4 release introduced.
    Obviously, if you just dropped in 3.4 jars instead of 3.3, then you did not configure the services to use POF.
    To configure so, you first have to ensure that all classes which are sent over the network are properly configured for POF serialization (they implement PortableObject or have a corresponding serializer and the user type is properly registered in pof-config.xml). Then you can enable the POF serialization either on a service by service basis (using the <serializer> element in the service configuration within the coherence-cache-config.xml). You can enable the POF format for all services with a single Java property (I don't know it off my head) but it is safer to go service by service.
    Best regards,
    Robert

  • UNSPSC code is not passed for RT catalog item then error !!

    Hi SRM GURUs,
    We have implemented BBP_CATALOG_TRANSFER BADI.
    In which if a RT catalog item is not having UNSPSC code then we are passing some generic material group for that particular item.
    Here the issue is, if a UNSPSC code is not passed for a RT catalog item, then system is throwing error message "No logical system for FI is maintained. inform system admin".
    Also, a pop-up is coming on SRM screen "Error in system;shopping cart cannot be processed further" and then after clicking on "OK" of the POP-UP it is taking me on SRM home page.
    will anybody explain why this is happening ? Kindly, explain this logic (As this logic is in standard SAP program)?
    PS: we are at SRM5.0 & CCM2.0.
    Thanks !!
    Vivek

    Hi Masa,
    we tried with blanking out the material group. we have got few errors but not of type like above mentioned.
    The errors are as follows.
    Cost center should not be blank
    Service Account assignment should be Cost Center(Services) or Cost Center(Sched Services) or Network
    Tax code ZZ in procedure TAXUSX is invalid
    No G/L account was entered. Enter a G/L account
    Product category 41E532538A930138000000000A4023DB does not exist
    Enter the product category
    Error in account assignment for item 1
    Not possible to calculate tax
    In SLG1 the log is green and contains following.
    Start of line 000000 in shopping cart of catalog
    External product category 26111710 contains errors or does not exist
    where the number 26111710 is the UNSPSC code which i was deleted while debugging.
    Please help on this.
    Thanks in adv.
    Vivek

  • Cluster size in bytes programatically

    Is there something that implements a C stype "sizeof" in labview? I need to call a dll and pass in a cluster value and it's size in bytes.
    Thanks
    Eugene

    If the cluster doesn't have variable length data (strings and arrays), flatten the cluster to string and get the string length.
    LabVIEW, C'est LabVIEW

  • Question about generics and subclassing

    Hi all,
    This has been bothering me for some time. It might be just me not understanding the whole thing, but stay with me ;):
    Suppose we have three classes Super, Sub1 and Sub2 where Sub1 extends Super and Sub2 extends Super. Suppose further we have a method in another class that accepts (for example) an AbstractList<Super>, because you wanted your method to operate on both types and decide at runtime which of either Sub1 or Sub2 we passed into the method.
    To demonstrate what I mean, look at the following code
    public class Super {
      public methodSuper() {
    public class Sub1 extends Super {
      public methodSub1() {
        // Do something sub1 specific
    public class Sub2 extends Super {
      public methodSub2() {
         // Do something sub2 specific
    public class Operate {
      public methodOperate(AbstractList<Super> list) {
        for (Super element : list) {
           // Impossible to access methods methodSub1() or methodSub2() here, because list only contains elements of Super!
           // The intention is accessing methods of Sub1 or Sub2, depending on whether this was a Sub1 or Sub2 instance (instanceof, typecasting)
    }The following two methods seem impossible:
    Typecasting, because of type erasure by the compiler
    Using the instanceof operator (should be possible by using <? extends Super>, but this did not seem to work.
    My question now is: How to implement passing a generic type such as AbstractList<Super> while still making the methods of Sub1 and Sub2 available at runtime? Did I understand something incorrectly?

    malcolmmc wrote:
    Well a List<Super> can contain elements of any subclass of super and, having obtained them from the list, you could use instanceof and typecast as usual.I agree with you on this one, I tested it and this simply works.
    Of course it would be better to have a method in Super with appropriate implementations in the subclasses rather than use distinct method signatures, instanceof and casting isn't an elegant solution. Alternatively use a visitor pattern.Not always, suppose the two classes have some similarities, but also some different attributes. Some getters and setters would have different names (the ones having the same name should be in the superclass!). You want to be able to operate on one or the other.
    Generics doesn't make much difference here, exception it would be more flexible to declare
    public methodOperate(AbstractList<? extends Super> list) {Which would alow any of AbstractList<Super>, AbstractList<Sub1> or AbstractList<Sub2> to be passed.I tried it and this also works for me, but I am still very, very confused about why the following compiles, and gives the result below:
    public class Main {
         public static void main( String[] args ) {
              AbstractList<Super> testSub = new ArrayList<Super>();
              testSub.add( new Sub1( "sub1a" ) );
              testSub.add( new Sub1( "sub1b" ) );
              accept( testSub );
         private static void accept( AbstractList<? extends Super> list ) {
              for ( int i = 0; i < list.size(); i++ ) {
                   Super s = list.get( i );
                   System.out.println( s.overrideThis() );
    public class Sub1 extends Super {
         private String sub1;
         public Sub1( String argSub1 ) {
              sub1 = argSub1;
         public String overrideThis() {
              return "overrideThis in Sub1";
         public String getSub1() {
              return sub1;
    public class Sub2 extends Super {
         private String sub2;
         public Sub2( String argSub2 ) {
              sub2 = argSub2;
         public String overrideThis() {
              return "overrideThis in Sub2";
         public String getSub2() {
              return sub2;
    public class Super {
         public Super() {
         public String overrideThis() {
              return "OverrideThis in Super";
    }With this output:
    overrideThis in Sub1
    overrideThis in Sub1Even using a cast to Super in Main:
    Super s = (Super) list.get( i );does not return the Sub1 as a Super (why not??)
    Sorry for the long code snippets. I definitely want to understand why this is the case.
    (Unwise, I thing, to use Super as a class name, too easy to get the case wrong).OK, but I used it just as an example.

Maybe you are looking for

  • Is there a way for me to have two Macs work with the same iTunes library?

    Hey all, I am replacing a G5 tower I have with a MacBook and I am of course going down in HD size. This means I will be using an external HD connected to a AirportExtreme BaseStation so all of my Macs can utilize it. I plan on putting my iTunes libra

  • Using subtotal_text in ALV List

    I need to display 2 subtotals, one by SPART another one by VKORG. But it seems that both subtotals are overlapped. Another problem is, the display_text_for_subtotal is not shown. Following is part of my code: FORM build_sortcat .   gwa_sortcat-spos  

  • Problem with Spry Tabbed Panels and Mac Safari

    On a site I'm working on I have implemented Spry Tabbed Panels. Everything was great until my boss looked at it on his Mac Safari. Spry doesn't seem to honor the 100% width, and cuts it off. I have looked at the CSS and don't see what is holding it u

  • FMS does not start (windows 7)

    FMS does not start in win 7. There were some starts but only when first run after the installation. (i checked it 3 times) After the computer reboot, FMS does not start. Whats the problemm ?  And one more quastion: where can i find server address ?

  • Web site will not load right, what is wrong?

    Graphics, text, Java Script, Java script DHTML Drop Down Menu will not center or even appear correctly. ''They all have before but all of a sudden they will not. '' http://www.straightarrowwoodshop.com and http://www.straightarrowwoodshop.com/cedar.h