Home | Forums | Contact | Search | Syndication  
 
 [login] [create account]   Tuesday, March 19, 2024 
 
View User Profile  

 User Profile - RJ Samp  
  RJ Samp
(SalesLogix Business Partner)
Sales AutoMated Presentations

fiogf49gjkf0d

SLX Integrator since the early days. Love working with SLX and Oracle. American Civil War Reenactor, bugler, mounted on a horse: www.rjsamp.com Trumpet player. Love to SKI, Frisbee, Hockey, Sail, Volleyball: do things with the family, sing in the church choir. GO PACKERS! Ex Sales Manager and Sales Man for Square D, Hubbell, General Electric Light Bulbs (Lamp Division). Met my NJ born wife in LA at UCLA night school....son Rob is an NCAA Division I mens volleyball player.



Log in to send this member a message!
 


 RJ Samp's Contributions
RJ Samp has contributed 18 comments and 1 articles.
 
Select to view:    
Comment: Re: How to Add a Custom Column to the Manage Products Grid
fiogf49gjkf0d
Has anyone tried adding a grid Column property column for the BASE table?

I'm getting TableDisplayName.FieldDisplayName as the uneditable column field name property....even though adding a field through the SQL gives me A1.FieldName as expected.



Author: RJ Samp - 8/10/2010

 
Comment: Re: Leveraging .NET in SalesLogix (Applies to any version)
fiogf49gjkf0d
Ditto on the request to have this SLX .Net Extensions compatible...

What replaces Interop.SalesLogix62.dll for example?

I'm on 7.22.

Author: RJ Samp - 1/10/2010

 
Comment: Re: Introduction to .NET in SalesLogix Version 7
fiogf49gjkf0d
This doesn't work in 7.22 as is....any ideas on what I need to change? I click on the button in SLX Client, I guess nothing executes on the .NET side (although msgbox's on the SLX side are working fine).

Author: RJ Samp - 1/10/2010

 
Comment: Re: Generically Setting a Form as Read-Only
fiogf49gjkf0d
On an Opportunity Tab, SLX is completely ignoring an edit control set to ReadOnly = T.

Only if I
txtSalesPotential.READONLY = TRUE
during the AXFormchange will it actually prevent me from editing the control (and changing this DATABOUND value).

I thought it might be the script from the Opportunity Detail View (using the above coding example).....even when I changed the name of the control it still is readonly = false....maybe it's a leak in my script and the controls on more than one form are being set???


Is there a form level property that has to be set?
frmName.AllowReadOnly = TRUE

harkens back to the Legacy stuff......

This is in 7.22

Author: RJ Samp - 9/23/2009

 
Comment: Re: E1 User Audit
fiogf49gjkf0d
I added a TABLE years ago to record every login and logout (on the same record for each 'pair' of user ins and outs)......it's part of the Global System script....... don't have to worry about last 5 only and overwriting.....

RJ Samp

Author: RJ Samp - 1/17/2008

 
Comment: Re: The SalesLogix Mail Merge SDK - An In-Depth Example
fiogf49gjkf0d
Has anyone worked with Opportunity Mail Merges and the current Custom Field script?


Looking for tips on how to post a table off of a table to Word.....

So I can Print the Opportunity Product Table.....but not
Opp Prod 1
Account Site 1
Account Site 2
Account Site 3
Opp Product 2
Account Site 1
Account Site 2
Account Site 6

Also has this SDK been updated at all?
Maybe some more stuff for Opportunity Mail Merges, for example?


Help?!!


Author: RJ Samp - 1/10/2008

 
Comment: Re: Creating DataGrid Columns at Runtime
fiogf49gjkf0d
Do we know what the ftFormatTypes are?

from the SLX exportGridorRStoEXCEL script:
Select Case strFormatType
Case 3 'adInteger
GetDBFormatType = "#,##0" 'DNL
Case 4 'adSingle
GetDBFormatType = FormatCurrencyString
Case 5 'adDouble
GetDBFormatType = FormatCurrencyString
Case 6 'adCurrency'
GetDBFormatType = FormatCurrencyString
Case 11 'adBoolean
GetDBFormatType = "#,##0" 'DNL
Case 131 'adNumeric
GetDBFormatType = "#,##0" 'DNL
Case Else
GetDBFormatType = ""

What's ftUSERNAME?
ftOWNER
ftPercentage?
ftPhoneNumber?
etc.

Thanks!!!

Author: RJ Samp - 11/12/2007

 
Comment: Re: How to update Data with Updateable RecordSets
fiogf49gjkf0d
Now however we're finding out that for some reason in SLX 6.2 - 7.20 Gold (as this is being written) that there's a Provider side memory leak when doing ADO recordset inserts and updates......stuff is not getting disposed of. Their appears to be both a DELPHI side, and Provider (written in C++) side issue with this.....it only shows up after Thousands of inserts/updates/ WHERE clauses......or about a day of Inserting New Contact and Accounts manually.

To get around this, we've started coding BIG stuff in Command Parameterized ADO SQL....not ADO field based SQL.

This is in C# .NET, but it's NOT that different for VB Script (in fact this code was adapted to C# .NET from a VB .NET project):
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
static void CreateContact(OleDbConnection Conn, string AccountID,string AccountName,string AddressID, long iContactNo)
{
string isemployee;
string emp_accountID;
string TheRole;
sQuery = "INSERT INTO sysdba.CONTACT (CONTACTID, ACCOUNTID, ACCOUNT, LASTNAME, MIDDLENAME, FIRSTNAME, ACCOUNTMANAGERID, IMPORTSOURCE, ADDRESSID, SHIPPINGID, EMAIL, WORKPHONE, HOMEPHONE, MOBILE, LASTNAME_UC, STATUS, TYPE, SECCODEID, CONTACTNO) " + "VALUES (?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
OleDbCommand cmd = new OleDbCommand(sQuery, Conn);
{
cmd.Parameters.AddWithValue("CONTACTID", sContactID);
cmd.Parameters.AddWithValue("ACCOUNTID", sAccountID);
cmd.Parameters.AddWithValue("ACCOUNT", AccountName);
cmd.Parameters.AddWithValue("LASTNAME", strLastName);
cmd.Parameters.AddWithValue("MIDDLENAME", strMiddleName);
cmd.Parameters.AddWithValue("FIRSTNAME", strFirstName);
cmd.Parameters.AddWithValue("ACCOUNTMANAGERID", slxUSERID);
cmd.Parameters.AddWithValue("IMPORTSOURCE", gImportSource);
cmd.Parameters.AddWithValue("ADDRESSID", AddressID);
cmd.Parameters.AddWithValue("SHIPPINGID", AddressID);
cmd.Parameters.AddWithValue("EMAIL", strEMail);
cmd.Parameters.AddWithValue("WORKPHONE", strPhone1);
cmd.Parameters.AddWithValue("HOMEPHONE", strPhone1);
cmd.Parameters.AddWithValue("FAX", strPhone2);
cmd.Parameters.AddWithValue("LASTNAME_UC", strLastName.ToUpper());
cmd.Parameters.AddWithValue("STATUS", ContactStatus);
cmd.Parameters.AddWithValue("TYPE", ContactType);
cmd.Parameters.AddWithValue("SECCODEID", slxOwnerID);
cmd.Parameters.AddWithValue("CONTACTNO", iContactNo);
cmd.ExecuteNonQuery();
}
// -------------------------------------------------------
// Create the Contact2 record
emp_accountID = "";
if (strCompanyName != "")
{
TheRole = "Broker";
isemployee = "T";
sCompany = strCompanyName.Replace("'", "''");
emp_accountID = GetField("ACCOUNTID", " ACCOUNT", "ACCOUNT = '" + sCompany + "' ", Conn);
}
else
{
TheRole = "";
isemployee = "F";
}
sQuery = "INSERT INTO ASI_CONTACT_EXT (CONTACTID, CLIENT_CLASSIFICATION, " + "FAMILY_ACCOUNTID, INV_INDUSTRY_EMPLOYEE, EMPLOYER, EMPLOYER_ACCOUNTID, FIRM_ROLE, FIRM_TYPE) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
using(OleDbCommand cmd2 = new OleDbCommand(sQuery,Conn))
{
cmd2.Parameters.AddWithValue("CONTACTID", sContactID);
cmd2.Parameters.AddWithValue("CLIENT_CLASSIFICATION", ContactType);
cmd2.Parameters.AddWithValue("FAMILY_ACCOUNTID", sAccountID);
cmd2.Parameters.AddWithValue("INV_INDUSTRY_EMPLOYEE", isemployee);
cmd2.Parameters.AddWithValue("EMPLOYER", strCompanyName);
cmd2.Parameters.AddWithValue("EMPLOYER_ACCOUNTID", emp_accountID);
cmd2.Parameters.AddWithValue("FIRM_ROLE", TheRole);
cmd2.Parameters.AddWithValue("FIRM_TYPE", TheRole);
cmd2.ExecuteNonQuery();
}
// -------------------------------------------------------
// Create the Contact NO record
string CNID;
CNID = CreateIDFor("CONTACT_NO", Conn);
sQuery = "INSERT INTO CONTACT_NO (CONTACT_NOID, CONTACTID, CONTACT_NO, EMAIL, POSTALCODE, PHONENUMBER, IMPORTDATE, DATEENTERED, IMPORT_SOURCE )" + "VALUES (?, ?, ?, ?,?, ?, ?, ?,?)";
using (OleDbCommand cmd3 = new OleDbCommand(sQuery, Conn))
{
cmd3.Parameters.AddWithValue("CONTACT_NOID", CNID);
cmd3.Parameters.AddWithValue("CONTACTID", sContactID);
cmd3.Parameters.AddWithValue("CONTACT_NO", intCustomerID);
cmd3.Parameters.AddWithValue("EMAIL", strEMail);
cmd3.Parameters.AddWithValue("POSTALCODE", strZipCode);
cmd3.Parameters.AddWithValue("PHONENUMBER", strPhone1);
cmd3.Parameters.AddWithValue("IMPORTDATE", strCreateDate);
cmd3.Parameters.AddWithValue("DATEENTERED", strDateEntered);
cmd3.Parameters.AddWithValue("IMPORT_SOURCE", gImportSource);
cmd3.ExecuteNonQuery();
}
// -------------------------------------------------------
// Create the Inv Firm record
string IFID;
IFID = CreateIDFor("INVESTMENT_FIRMS", Conn);
Broker_AccountID = "";
if (strBrokerFirmName.Length != 0)
{
Broker_AccountID = GetField("COALESCE(ACCOUNTID,'')", "ACCOUNT ", " ACCOUNT = '" + strBrokerFirmName.Replace("'", "''") + "' ", Conn);
}
sQuery = "INSERT INTO INVESTMENT_FIRMS (INVESTMENT_FIRMSID, CONTACTID, FIRM_NAME, FIRM_ACCOUNTID )" + "VALUES (?, ?, ?, ?)";
using(OleDbCommand cmd4 = new OleDbCommand(sQuery,Conn))
{
cmd4.Parameters.AddWithValue("INVESTMENT_FIRMSID", IFID);
cmd4.Parameters.AddWithValue("CONTACTID", sContactID);
cmd4.Parameters.AddWithValue("FIRM_NAME", strBrokerFirmName);
cmd4.Parameters.AddWithValue("FIRM_ACCOUNTID", Broker_AccountID);
cmd4.ExecuteNonQuery();
}
}


Author: RJ Samp - 8/16/2007

 
Comment: Re: Understanding the SalesLogix 6.2 Connection String
fiogf49gjkf0d
Not working in C# .NEt

static string SLXconnstring = "Provider=SLXOLEDB.1;Password="";Persist Security Info=True;User ID=Admin;Initial Catalog=OCC;Data Source=RJSAMP-D610;Extended Properties="PORT=1706;LOG=ON;CASEINSENSITIVEFIND=ON;AUTOINCBATCHSIZE=1;SVRCERT=;" + Char(34);


Help!

RJ Samp

Author: RJ Samp - 8/7/2007

 
Comment: Re: The ADO.NET Primer
fiogf49gjkf0d
C# .NET DataReader.....

What's the easiest way to handle Nulls on a 50 column row.....
if(reader[ipos] is DbNull)
{string MyField = "";}
else
{string MyField = reader.GetString(ipos++);}

seems rather tedious.......

Thanks! (almost have my first C# .Net app written!!!!)

RJ Samp

Author: RJ Samp - 8/6/2007

 
Comment: Re: How to generically invoke the edit form for a SalesLogix datagrid
fiogf49gjkf0d
Here's what I've been using since your article was first published....

Sub DataGridEditRow(Grid)
dim tname
With Grid
If ((.EditOptions.ShowEdit = False) or (.EditOptions.ShowAdd = False)) Then
Exit Sub
Else
tname = Left(.KeyField, Len(.KeyField) - 2)
SELECT CASE tname
CASE "OPPPRODUCT"
tname = "OPPORTUNITY_PRODUCT"
CASE "LITREQ"
tname = "LITREQUEST"
END SELECT
If Application.BasicFunctions.ShowViewForRecord(tname, .EditView.Name, .GetCurrentField("")) = mrOK Then
.Refresh
End If
End With
End Sub

you can easily add more ODDBALL tables, as needed.

One 'problem' that needs to be pointed out.....this routine does NOT invoke an OnEditedRow/OnAddedRow event on a datagrid. The normal LMB on the grid choose Edit does invoke the OnEditedRow....but this generic ShowViewForRecord call doesn't.

You'll need to explicitly call your cleanup routine after you use this datagrid edit call..... (now that's why my Sum of the Opportunity_Product script didn't run!!!).

RJ Samp

Author: RJ Samp - 12/18/2006

 
Comment: Reset Admin Password Utility (v6)
fiogf49gjkf0d
Just to confirm on SLX 6 (6.1xxx and 6.2 RC1 for certain):

update SalesLogix.sysdba.usersecurity set userpw='62C3A78AE34A2B0F62'
where userid = 'admin'

RJ Samp

Author: RJ Samp - 6/14/2004

 
Comment: Re: Database Document Generator
fiogf49gjkf0d
Time for ADO connection manager versus the ODBC DSN connections?

would make this utility a trifle easier to use?

THANKS!

RJ Samp

Author: RJ Samp - 6/14/2004

 
Comment: Re: Using SLAPI with SalesLogix version 6
fiogf49gjkf0d
Can I rate this article a SIX?

Great Job Ryan!

RJ Samp

Author: RJ Samp - 2/23/2004

 
Comment: doesn't Work
fiogf49gjkf0d
when I run the app, it can't find the SLGXAPI.dll

Author: RJ Samp - 1/17/2003

 
Comment: Neat Stuff
fiogf49gjkf0d
Mike raises an interesting issue, and it ties in nicely where I'd like this to go.

We need a method on documenting the Data Field and Table usages in Sales Logix. One that is persistent despite Resetting Resynchtabledefs.....

We need a COMMENTS field, Key Views where the data is manually entered, major imports where the data could be changed, ownership rules etc. Plus the Display Name we already have.

Then we need to add the Query/Data Grid Default Attributes for each field......including Hidden.

If we have a Table SECTABLEDEFS_DOC or something like that would be fine. This Assumes that SLX will wipe out SECTABLEDEFS. SCocs would have all of the system documentation, and then the Data Grid defaults....then we set the Grid using these values.

The Default for all ----ID fields could be hidden....and then you could override......

In Ryan's case, the field to hide is ---ID where ---- = the name of the table. We don't want to hide SECODEID, ACCOUNTMANAGERID, USERID, COMPLETEDUSER kinds of fields in Account, Activity, History, et al. So if Default Format is ftNONE and the field ends in ID then we hide it...... but if the Default Format is ftUSER or ftOWNER and the field ends in ID then we don't hide it......

So.....

We need you to walk us through the next step: underlying data (META DATA) for an item....then populate the defaults in a permanent SLX table. Like a Resynch SecTableDefs routine that wouldn't wipe out existing records, but delete missing records (right join) and insert new records (left join) from this new table (no update).

I think SLX should be involved in this.....

Author: RJ Samp - 12/20/2002

 
Comment: Runtime DataGrids
fiogf49gjkf0d
Step two to this is even better. Back in the old DATATRIEVE days we had a QueryName, QueryFormat kinds of stuff which is like the DISPLAYNAME in the SECTABLEDEFS table. What we need are the Default Values for certain properties of the Column whenever you create the Grid using the fields.....

So if Account.Account is "Company", default width XXX and Opportunity.aCTUALAMOUNT is 'Actual $', default width 72, Format Type Currency, Format String %10.0m% then that would be set up everytime........

Even better would be if this occurred everytime you built a Query or DataGrid.....you get the field and the defaults are automatically filled in.....

Thoughts on this?

RJ Samp

Author: RJ Samp - 11/27/2002

 
Comment: ADO Connections
fiogf49gjkf0d
Great Stuff......my only problem with this is I'm unclear how to read each record, and each column within the record.

Thanks Ryan!

Author: RJ Samp - 11/27/2002

 


 
 slxdeveloper.com is brought to you courtesy of Ryan Farley & Customer FX Corporation.
 This site, and all contents herein, are Copyright © 2024 Customer FX Corporation. The information and opinions expressed here are not endorsed by Sage Software.

code of conduct | Subscribe to the slxdeveloper.com Latest Article RSS feed
   
 
page cache (param): 3/19/2024 9:02:04 AM