11/21/2024 4:50:37 PM
slxdeveloper.com
Now Live!
|
|
|
User Profile -
Guy Barrett
|
|
|
Guy Barrett Stanley Gibbons Ltd
fjrigjwwe9r1SiteUser:UserBio fiogf49gjkf0d
|
|
Log in to send this member a
message! |
|
|
Guy Barrett's
Contributions |
Guy Barrett
has contributed
comments and
0
articles.
|
|
Select to view:
|
Comment: Re: How to generically invoke the edit form for a SalesLogix datagrid
fiogf49gjkf0d Ok. Delete half of my ranting above if it's taking up unneccessary space. I've figured out how to use Application.BasicFunctions.ShowAddForm
Syntax: Function ShowAddForm(ByVal TableName As String, ByVal ViewName As String, [ByVal BindDataPath], [ByVal BindValue]) As String
To keep this simple. Let's say that there are two tables. ACCOUNT and ACCOUNT_BEAN. In ACCOUNT_BEAN we are storing all the different types of bean that the ACCOUNT in question enjoys. Baked, Kidney, Broad etc...
When I invoke ShowAddForm - I want to pass to it the relationship between the ACCOUNT_BEAN and the ACCOUNT itself to integrity is not lost.
For this, I have the following variables...
strACCOUNTID - The AccountID of the account the ACCOUNT_BEAN is related to strVIEWNAME - The name of the view I am invoking
I would then invoke the function like this...
Application.BasicFunctions.ShowAddForm "ACCOUNT_BEAN", strVIEWNAME, "ACCOUNT_BEAN:ACCOUNTID", strACCOUNTID
Really, really simple when you know how. Getting the knowhow is a different matter entirely! :-)
Author: Guy Barrett - 2/24/2011
|
|
Comment: Re: How to generically invoke the edit form for a SalesLogix datagrid
fiogf49gjkf0d Function ShowAddForm(ByVal TableName As String, ByVal ViewName As String, [ByVal BindDataPath], [ByVal BindValue]) As String
This appears that it would do the trick - unfortunately the SLX Dev Ref only mentions it in passing, and I haven't a clue what to pass for the BindDataPath. It looks like I'd have to pass something otherwise it won't tie the new item to the bound table. I've tried passing all but the BindDataPath and this doesn't work. I've also tried passing the table name, this doesn't work. I've also tried passing "TABLENAME:TABLEKEYFIELD" and this doesn't work.
Arrrrgh!
Author: Guy Barrett - 2/24/2011
|
|
Comment: Re: How to generically invoke the edit form for a SalesLogix datagrid
fiogf49gjkf0d Application.BasicFunctions.ShowAddForm
DOH!!!!
Author: Guy Barrett - 2/24/2011
|
|
Comment: Re: How to generically invoke the edit form for a SalesLogix datagrid
fiogf49gjkf0d Typo... I don't think I can go back and edit my comment.
I meant...
"When you select an item in GRID*1* it changes the BindID of GRID2"
Author: Guy Barrett - 2/24/2011
|
|
Comment: Re: How to generically invoke the edit form for a SalesLogix datagrid
fiogf49gjkf0d Indeed it does, thank you, but that's precisely my point.
I'm trying to simulate exactly the same thing that a DBGrid does when you click on the "Add" item in the menu, ShowViewForRecord does not seem to achieve this. When clicking "Add" on the DBGrid it manages to pass the bindings over to the form, so that edit boxes linked to other tables within the form can populate themselves even when it's a new record you're adding. The ShowViewForRecord function does not provide an argument for establishing the foreign key.
I have two data grids..
GRID1 (gets info from TABLE1) GRID2 (gets info from TABLE2)
When you select an item in GRID2 it changes the BindID of GRID2 to filter the records down as the two tables are linked with a one to many relationship. When you click "Add" on GRID2 to add a record to "TABLE2", the form that displays has automatically established it's link to TABLE1, so any items from TABLE1 you have displaying on that form populate themselves immeditely (even in "Add Mode" - the form is just expecting you to fill out whatever values you want for TABLE2.
This is where is get's a bit whacky. I want to simulate the clicking of "Add" on GRID2 from elsewhere on the window rather than channeling the user into having to right-click on GRID2. Where I'm doing this from is irrelevant I guess, but for the sake of example it could be a button elsewhere on the form, or an additional menu item I have added to GRID1.
Do you know how I can do this, or am I a bit stuffed in this respect? As someone else has mentioned, many moons ago in legacy script you could call "DBGridAddItem" from the grid itself using script, and hey-presto it forced exactly the same reaction as selecting "Add" from the built in grid menu.
Thanks for your quick response though. What was it, about 2 minutes? Aren't you supposed to be at work? ;-)
Author: Guy Barrett - 2/24/2011
|
|
Comment: Re: How to generically invoke the edit form for a SalesLogix datagrid
fiogf49gjkf0d I've found a rather big hole in this which I'm hoping someone can help me with.
I'm trying to invoke the edit form tied to a DBGrid in "Add Mode" rather than edit mode, and have done as you suggested because as far as I can see you can't get the DB Grid to invoke it's own edit form like you used to in the old days.
Application.BasicFunctions.ShowViewForRecord "TABLE2", "TABLE2EDITVIEW", ""
This does indeed pull up the correct form in "Add" mode.
However, the DBGrid is 'bound' to another table (TABLE1).
If I manually click on the DBGrid and select "Add", the edit view opens up perfectly in 'Add Mode' and the link back to TABLE1 is already in place (as such, any other edit boxes I have dropped on the form that reference back to TABLE1 prepopulate nicely).
The pain is, if I invoke this form using the ShowViewForRecord code, the secondary key / binding linking it back to TABLE1 is NOT prepopulated. As such, any edit boxes I have dropped on the form that reference back to TABLE1 are blank!
Is there an easy way around this without having to throw global variables around.
(PS. v7.2.2.1871)
Thanks! :-)
Author: Guy Barrett - 2/24/2011
|
|
Comment: Re: How to Filter a SalesLogix Crystal Report by ID at Runtime
fiogf49gjkf0d How does this work if I need to use the "in" operator rather than "=" or "<" etc...?
I have tried, but can't seem to get it to work. eg...
Application.BasicFunctions.ReportAddCondition "PRODUCT:PRODUCTID", "in", "('XXXXXXXXXXXX','YYYYYYYYYYYY')" , "String", "AND"
Author: Guy Barrett - 8/11/2009
|
|
Comment: Re: The SalesLogix Mail Merge SDK - An In-Depth Example
fiogf49gjkf0d Hello again,
Has anyone had any luck with the oSLXDocument.AddAttachment() command when merging to email? I've tried pulling it apart in Visual Studio and have found the command...
AddAttachment(ByVal AttachmentType As SLXDoc.AttachmentType, ByVal FileID As String, ByVal FileName As String, ByVal FullPath As String, ByVal PluginAttachID As String)
However, I cannot get it to work at all! All I am trying to do is ...
oSLXDocument.MailMergeInformation.OverrideAttachments = False oSLXDocument.AddAttachment atRegularAttachment, "", "test.doc", "c:\temp\", ""
Absolutely nothing.
Help?
Author: Guy Barrett - 7/11/2007
|
|
Comment: Re: The SalesLogix Mail Merge SDK - An In-Depth Example
fiogf49gjkf0d All good stuff indeed. This was very easy to create a function with a few parameters that can be called on an ad-hoc basis.
However, there is something that I just can't figure out. When merging to a file, for a single contact, I cannot for the life of me return the path and name of the .doc that it has created. From what I can see you can only pass the directory that you want it to merge the .doc file to, but not the filename - and I cannot find a property to return the filename to me.
To make things clearer. I have two templates, one for an email and one for a word document.
I wish to merge to the word document template and then merge to the email template (attaching the orignally merged word doc in the process). The only issue I have is figuring out the path and filename of the word document.
Ryan, you've got a load of brain cells bobbling about in that bonce of yours. Do you have any ideas?
Author: Guy Barrett - 6/28/2007
|
|
|
|
|
|
|
|