Monday, November 23, 2009

How To Find Type of a Property/Member

memberName=amont;

ITypeInfo TypeInfo= XafTypesInfo.Instance.FindTypeInfo();
IMemberInfo iminfo = TypeInfo.FindMember(memberName);
If (iminfo.MemberTypeInfo.Type == typeof(double)){}

The Default View Only Populate After a Search has been done and Not Automatically Populate the View at Startup

Here ListView Data Will Not be Populated on Activated , Data Will be Populated when
You search anything

namespace FilterListView.Module
{
public partial class ViewController1 : ViewController
{
public ViewController1()
{
InitializeComponent();
RegisterActions(components);
}
protected override void OnActivated()
{
base.OnActivated();
if (View is ListView && View.ObjectTypeInfo.Type == typeof(ContactA))
{
ListView lv = (ListView)View;
lv.CollectionSource.CollectionChanged += new EventHandler(CollectionSource_CollectionChanged); }
}

void CollectionSource_CollectionChanged(object sender, EventArgs e)
{
ListView listView = (ListView)View ;
if (listView.CollectionSource.Collection.Count > 0)
{
if (!listView.CollectionSource.Criteria.ContainsKey("EmptyCollectionCriteria")) {
listView.CollectionSource.Criteria.Add("EmptyCollectionCriteria", CollectionSource.EmptyCollectionCriteria);
}
listView.CollectionSource.Criteria.Changed += new EventHandler(Criteria_Changed);
}
}
void Criteria_Changed(object sender, EventArgs e)
{
ListView listView = (ListView)View;
listView.CollectionSource.Criteria.Remove("EmptyCollectionCriteria");
}
}
}

Associassion Through Module Base with the help of Interface

Here I have two modules Xpert.Account and Xpert.Statutory. In Account Modules.cs I
have to add two Properties
FormsToIssue, FormsToRecieve in a Class which have Implemented ICST Interface
public sealed partial class InModule : ModuleBase
{
public InModule()
{
InitializeComponent();
}

public override void CustomizeTypesInfo(DevExpress.ExpressApp.DC.ITypesInfo typesInfo)
{
base.CustomizeTypesInfo(typesInfo);
if (Application == null || Application.XPDictionary == null) return;
XPDictionary xpDCT = XafTypesInfo.XpoTypeInfoSource.XPDictionary;
foreach (XPClassInfo item in Application.XPDictionary.Classes)
{
if (item.ClassType != null && XafTypesInfo.Instance.FindTypeInfo(item.ClassType).ImplementsICST())
{
classInfo = item;
if (XafTypesInfo.Instance.FindTypeInfo(classInfo.ClassType).ImplementsICST())
{
if (classInfo.FindMember(classInfo.ClassType.Name) == null && classInfo.BaseClass.FindMember(classInfo.ClassType.Name) == null)
{
classInfo.CreateMember("FormsToIssue", typeof(StatutoryForms), new VisibleInListViewAttribute(false), new VisibleInLookupListViewAttribute(false));
classInfo.CreateMember("FormsToRecieve", typeof(StatutoryForms), new VisibleInListViewAttribute(false), new VisibleInLookupListViewAttribute(false));
}
XafTypesInfo.Instance.RefreshInfo(classInfo.ClassType);
}}}}}}
Here ICST is a Interface that is attached with various Class in that class two
property will be added

How To Find Method of Other Modules

Here PurchaseUtils is a Class and have a Static Method ClosingBalance with Three
Argument in a Different Modules Xpert.Procurement
And this method is Used in AccountModules Xpert.Account and we can not used
Xpert.Procurement This DLL in Account Module because AccountModules is Top Level
So we used this Method by this way as given below…..
First here we find the class in which Method is defined here method is defined in
PurchaseUtils Class
Now find the Method and Pass Parameter……

Type TP = ReflectionHelper.FindType("PurchaseUtils");
MethodInfo MI = TP.GetMethod("ClosingBalance");
object[] parameters = new object[3];
parameters[0] = Session;
XPCollection x = new XPCollection(ReflectionHelper.FindType("ItemDetails"));
parameters[1] = DateTime.Now;
parameters[2] = DateTime.Now;
_Amount = (double)(MI.Invoke(null, parameters));

Wednesday, November 11, 2009

How To Set Column Width in AspxGridView in C#

There are Two Class Ledger and AccountGroup ,There is a XpCollection of Ledger on AccountGroup and its one part is on Ledger
Now Find Ledger Property From AccountGroup and Find its ListView and then Find the Column whose width you have to Change.
if (View is DetailView && View.ObjectTypeInfo.Type == typeof(AccountGroup))
{
DetailView dv = (DetailView)View;
ListPropertyEditor lv = (ListPropertyEditor)dv.FindItem("Ledger");
ListView Lv = (ListView)lv.ListView;
ASPxGridListEditor editor = (ASPxGridListEditor)lv.ListView.Editor;
ASPxGridControl gridView = editor.Grid;
gridView.SettingsBehavior.ColumnResizeMode = ColumnResizeMode.Control;
gridView.Columns["Name"].Width = new System.Web.UI.WebControls.Unit(350);
}

Monday, November 9, 2009

How to Add Application in System Tray Icon in C#

How To Backup a Database in C#

XpertData is Source Folder that we have to take Backup and store it on E:\Web string sourceDir = @"D:\XpertData";
string backupDir = @"E:\web";
try
{
string[] picList = Directory.GetFiles(sourceDir, "*.mdb");
string[] txtList = Directory.GetFiles(sourceDir, "*.ldb");

foreach (string f in picList)
{
string fName = f.Substring(sourceDir.Length + 1);
File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName), true);
}
foreach (string f in txtList)
{

string fName = f.Substring(sourceDir.Length + 1);
try
{
File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName));
}

catch (IOException copyError)
{
Console.WriteLine(copyError.Message);v }
}
}
catch (DirectoryNotFoundException dirNotFound)
{
Console.WriteLine(dirNotFound.Message);
}

Mat Table Angular

Mat Table in Angular Mat table is used to display data . its a material designed styled data-table . For using Material Table MatTableMo...