Hallo KroaX,
und diesen dann per ServiceLocator / MEF in den Modulen zur Verfügung stellen oder?
Vielen Dank!
Sollte ich noch konkrete Fragen haben melde ich mich!
Gruß
Campy
Hallo zusammen,
ich versuche mich gerade an Prism im Zusammenhang mit der Outlook Navigation (Codeproject Outlook Navi)
Leider komme ich auf keinen vernünftigen Ansatz die Modul Navigationspunkte in der Initialize Methode des Moduls bei der Outlook Navigation zu erstellen.
Ich hoffe Ihr könnt mir bei diesem Punkt helfen. Ich will nur dass pro Modul ein neuer "Tab" und im Content des Tabs Buttons für die Unterpunkte erstellt werden. Beim Click auf einen Button soll dann in eine Region das jeweilige Modul geladen werden.
Vielen Dank!
Hallo trib,
mit den Daten der Snapshots in der TempDB kann man wirklich nicht allzuviel anfangen. Schade, dass MS hier nicht direkten Zugriff auf Snapshots umgesetzt hat.
Wahrscheinlich muss ich mir wirklich eine "Hilfs-Tabelle" baun und die Daten manuell kopieren.
Viele Grüße
Campy
verwendetes Datenbanksystem: MSSQL 2008
Hallo zusammen,
ich erstelle von einem Report von uns jede Woche einen Snapshot damit man auch auf die Daten der Vergangenheit zugreifen kann.
Nun würde ich gerne einen neuen Report erstellen der die Daten der letzten 6 Snapshots vergleicht (evtl. mit Grafik oder nur mit Spalten).
Leider konnte ich noch keine Möglichkeit finden mit dem Report Builder oder Visual Studio auf das Ergebnis der Snapshot Daten zuzugreifen.
Ich hoffe bei diesem Punkt könnt Ihr mir helfen!
Viele Dank
Campy
Hallo DeNico,
da Silverlight clientseitig in deinem Browser ausgeführt wird, würde es natürlich auch keinen Sinn machen von der SL App direkt E-Mails versenden zu können.
Wo genau liegt dein Problem? Silverlight im Zusammenhang mit Webservices?
Viele Grüße
Campy
Hallo gfoidl,
gibt es noch eine bessere Lösung als im spezifischen Repository die GetAll() zu überschreiben bzw. eine andere Methode zu machen:
public IList<Post> GetAll()
{
var query = this.DbSet.Include(...);
return query.ToList();
}
Danke und viele Grüße
Campy
Da hast du natürlich auch Recht 😉 Sorry!
Vielen Dank nochmal für die Hilfe!
Hallo KroaX,
vielen Dank 😃 das wusste ich jedoch bereits.
@gfoidl: Wie machst du das mit deinem Repository 😉
Gruß
Campy
Hallo gfoidl,
du hattest Recht!!! Ich bin echt überglücklich 😃
Das ist nicht weiter schlimm, da bei der Übertragung per WCF Lazy-Loading ohnehin keinen Sinn macht und die "related entities" immer explizit geladen werden müssen.
Wie du eh schon erwähnst werden die Navigation Properties nun nicht geladen. Muss ich die manuell includen? (mit .include() ??).
Wie gesagt, ich hatte bis jetzt immer mit DTOs gearbeitet, da sind diese Hürden nie aufgetreten (Was nicht heißen soll, dass ich die DTOs besser fand 😉)
Vielen Dank!!!!
Campy
Hallo,
auch nach dem erneuten Aufbau der Applikation kommt wieder der gleiche Fehler .. ich weiß absolut nicht was ich falsch mache. Ich habe schon mehrere Dienste mit WCF in dieser Konstellation umgesetzt. Eben nur mit dem Unterschied, dass ich sonst immer DTOs verwendet habe ..
Gruß
Campy
Hallo gfoidl,
ich erstelle die Domain mit den Entities noch einmal neu.
Ich habe bereits eine Testmethode im Repository angelegt (GetStrings() siehe oben) und über den Service bis hin zum Client funktioniert diese.
Ich gebe dann gerne Bescheid obs funktioniert 😃
Gruß
Campy
Hallo gfoidl,
es funktioniert leider auch dann noch immer nicht. LazyLoading ist beim Context in den Properties aktiviert. Den Code habe ich nun auf folgendes geändert:
[ServiceContract]
public interface IBlogService
{
[OperationContract]
IList<Post> GetAllPosts();
[OperationContract]
List<string> GetStrings();
}
public class BlogService : IBlogService
{
public List<Domain.Post> GetAllPosts()
{
IPostRepository postRepository = new PostRepository();
return postRepository.GetAll().ToList();
}
public List<string> GetStrings()
{
IPostRepository postRepository = new PostRepository();
return postRepository.GetStrings();
}
}
Gruß
Campy
Hallo gfoidl,
hier die entsprechenden Codeausschnitte. Falls ich noch mehr posten soll einfach Bescheid geben bitte:
public class BlogService : IBlogService
{
public IEnumerable<Domain.Post> GetAllPosts()
{
IPostRepository postRepository = new PostRepository();
return postRepository.GetAll();
}
public List<string> GetStrings()
{
IPostRepository postRepository = new PostRepository();
return postRepository.GetStrings();
}
}
public class PostRepository : Repository<Post>, IPostRepository
{
public PostRepository()
: base(new BlogEntities1())
{
}
public override IEnumerable<Post> GetAll()
{
return base.GetAll();
}
public List<string> GetStrings()
{
List<string> lst = new List<string>();
lst.Add("test1");
lst.Add("test2");
return lst;
}
}
Das Repository sollte dir eh bekannt vorkommen 😉
public abstract class Repository<T> : IRepository<T> where T : class
{
private readonly IUnitOfWork _uow;
protected IUnitOfWork UnitOfWork
{
get { return _uow; }
}
//---------------------------------------------------------------------
protected IDbSet<T> DbSet
{
get { return _uow.GetSet<T>(); }
}
//---------------------------------------------------------------------
protected Repository(IUnitOfWork uow)
{
if (uow == null)
throw new ArgumentException();
//-----------------------------------------------------------------
_uow = uow;
}
//---------------------------------------------------------------------
#region IRepository<T> Members
public virtual T GetById(params object[] keyValues)
{
return this.DbSet.Find(keyValues);
}
//---------------------------------------------------------------------
public virtual T Add(T entity)
{
T obj = this.DbSet.Add(entity);
_uow.SetEntryState<T>(entity, System.Data.EntityState.Added);
this.OnEntityAdded(obj);
return obj;
}
//---------------------------------------------------------------------
public virtual T Update(T entity)
{
T obj = this.DbSet.Attach(entity);
_uow.SetEntryState<T>(entity, System.Data.EntityState.Modified);
return obj;
}
//---------------------------------------------------------------------
public virtual T Delete(T entity)
{
T obj = this.DbSet.Remove(entity);
this.OnEntityDeleted(obj);
return obj;
}
//---------------------------------------------------------------------
public virtual IEnumerable<T> GetAll()
{
return this.DbSet;
}
//---------------------------------------------------------------------
public event EventHandler<RepositoryEventArgs<T>> EntityAdded;
protected virtual void OnEntityAdded(T entity)
{
//this.EntityAdded.Fire(this, new RepositoryEventArgs<T>(entity));
}
//---------------------------------------------------------------------
public event EventHandler<RepositoryEventArgs<T>> EntityDeleted;
protected virtual void OnEntityDeleted(T entity)
{
//this.EntityDeleted.Fire(this, new RepositoryEventArgs<T>(entity));
}
#endregion
}
public partial class BlogEntities1 : IUnitOfWork
{
public IDbSet<T> GetSet<T>() where T : class
{
return this.Set<T>();
}
public void SetEntryState<T>(T entity, System.Data.EntityState state) where T : class
{
Entry<T>(entity).State = state;
}
public int Commit()
{
return this.SaveChanges();
}
}
Clientseitig verwende ich selbst erstellte Serviceproxies (Siehe Snippet-Forum 😉).
public class BlogServiceClient : ProxyBase<IBlogServiceClient>, IBlogService
{
public BlogServiceClient(string endpointConfigurationName)
: base(endpointConfigurationName)
{
}
public IEnumerable<Post> GetAllPosts()
{
return this.Proxy.GetAllPosts();
}
public List<string> GetStrings()
{
return this.Proxy.GetStrings();
}
}
class Program
{
static void Main(string[] args)
{
using (BlogServiceClient clt = new BlogServiceClient("NetTcpBinding_IService"))
{
foreach (Post p in clt.GetAllPosts().ToList())
Console.WriteLine(p.Subject);
}
Console.ReadKey();
}
}
Viele Grüße
Campy
Hallo Abt,
ich habe bereits alles nach oben gesetzt:
<netTcpBinding>
<binding name="NetTcpBinding_ERPService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288" maxBufferSize="6553600" maxConnections="10" maxReceivedMessageSize="6553600">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
<security mode="None">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/>
<message clientCredentialType="Windows"/>
</security>
</binding>
Der DataAccess Vorgang findet auch am Service statt, und das Ergebnis wird zurück an den Client gegeben, dieser schmeißt dann aber die Exception.
Gruß
Campy
Hallo zusammen,
ich versuche gerade, wozu mir auch in anderen Threads geraten wurde, eine Testanwendung mit EF4.x Pocos und einem WCF Service zu verwenden.
Dazu habe ich 2 Entities:
Füge ich Anfangs nur Post zu den Entities hinzu und übertrage die Liste an den Client funktioniert alles. Sobald Category mit ins Spiel kommt stürzt der Client mit einer CommunicationException kurz vor Erhalt der Daten vom service ab.> Fehlermeldung:
The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:00:59.9599999'.
Ich weiß echt nicht mehr was ich falsch mache ... Diagramm im Anhang 😉
Gruß
Campy
Hallo Abt,
habe ich auch schon überlegt, dass es wohl das beste wäre.
Mein Problem ist, dass ich einen EFModelAdapter verwende um Table Prefixe zur Laufzeit zu setzen (Mehrmandantenfähigkeit): http://efmodeladapter.codeplex.com/
Gruß
Campy
verwendetes Datenbanksystem: SQL 2008R2 + EF 4.x
Hallo zusammen,
ich lasse mir mit dem Poco Generator für EF 4.x meine Poco Objekte erstellen.
Bei den DBSets habe ich ja die Lokal Eigenschaft zur Verfügung. Leider ist das bei den Navigation Proberties nicht der Fall. Zusätzlich möchte ich keinen Konstruktor in der erstellten Poco Klasse, diesen erstelle ich in einer eigenen Partial Class.
public partial class Category
{
public Category()
{
this.Posts = new HashSet<Post>();
}
public System.Guid ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
Vielen Dank für Eure Hilfe!
Campy
Hallo gfoidl,
den Fehler hab ich schon bemerkt 😉.
Habe die Context Klasse jetzt partial und diese implementiert das Interface IUnitOfWork.
Ich gehe davon aus, dass ich
return this.Set<T>();
durch ein ObjectSet ersetzen muss?
Die isDirty Eigenschaft funktioniert natürlich nicht, da
this.ChangeTracker
nicht vorhanden ist.
Wie sieht denn die Verwendung im Repository danach aus?
Ich meine, man braucht doch sicherlich irgendwo noch die Attach Logik für Objekte die vom Client kommen und eine Update Logik?
BTW:
Ist uow.NotNull(() => uow); eine Extension Method?
Viele Grüße
Campy
Hallo gfoidl,
steh ich aufm Schlauch oder funktioniert das so nur mit Code First?
ich verwende Database first 😦
Kann ich das entsprechend umbauen?
Wenn ja kannst du mir dafür nen Tipp geben?
Vielen Dank
Campy
Hallo gfoidl,
ich hatte auf die Unit of Work Klasse abgezielt 😉
Gruß
Campy
Hallo gfoidl,
dessen bin ich mir bewusst. Entschuldigung für den falschen Post.
Könntest du mir noch einen Artikel oder ein Beispiel für den DB Zugriff mit EF geben?
Danke und viele Grüße
Campy
Hallo gfoidl,
ich denke ich blicke schon ein wenig bei deinem Code durch.
Mit ContractClasses habe ich noch nie gearbeitet, würdest du mir diese und den EF spezifischen Teil evtl. auch noch posten?
Vielen Dank!
Campy
Hallo Abt,
vielen Dank! Ich muss diese Basisklasse allerdings noch um die Attach Logik erweitern. Ich hoffe das funktioniert dann soweit.
@All:
-Kann man die EntityCollection durch eine ObservableCollection ersetzen?
-Leider habe ich in den Dokus nichts zum Thema Validierung der Eingaben finden können. Gibt es dazu noch einen Artikel?
Vielen Dank für Eure Hilfe!!!
Hallo gfoidl,
alles klar - ich werde mir die Doku gleich mal durchlesen!
Ich hoffe ich darf mich mit weiteren Fragen hier an dich wenden?
BTW: Hättest du evtl. eine Repository Basis-Klasse die du veröffentlichen würdest?
Jep ist mir auch schon aufgefallen vorhin
Gruß
Campy
Hallo gfoidl,
funktioniert folgendes auch mit den POCOs:
Wie ist die Vorgehensweise?
Ich weiß das sind einige Fragen, aber es wäre echt sehr nett wenn du mir helfen könntest das so umzusetzen? Wenn ich dazu die 2 oben beschriebenen Probleme "wegbekomme" und keine Nachteile habe setz ich es sofort so um.
Vielen vielen Dank!
verwendetes Datenbanksystem: MSSQL 2008
Hallo zusammen,
ich habe mir für die Verwendung von EF Self Tracking Entities folgende BasisRepository Klasse geschrieben:
public interface IBaseRepository<T>
{
void Add(T entity);
void Update(T entity);
void Delete(T entity);
List<T> GetAll();
}
public abstract class BaseRepository<T> : IBaseRepository<T> where T : class
{
string constr = SKSSHelper.GetConnectionString("");
protected IObjectSet<T> _objectSet;
protected SKSEntities _context;
public BaseRepository(string clientName)
{
_context = new SKSEntities(...);
_objectSet = _context.CreateObjectSet<T>();
}
public abstract List<T> GetAll();
public abstract T Update(T entity);
public void Add(T entity)
{
_objectSet.AddObject(entity);
_context.SaveChanges();
}
public void Delete(T entity)
{
_objectSet.DeleteObject(entity);
_context.SaveChanges();
}
public void Update(string entityName, object entity)
{
if (entity is IObjectWithChangeTracker)
{
_context.ApplyChanges(entityName, (IObjectWithChangeTracker)entity);
_context.SaveChanges();
}
else
{
throw new ArgumentException("entity must implement IObjectWithChangeTracker to use applyChanges");
}
}
}
Diese Klasse erlaubt es schon relativ einfach für ein Objekt ein Repository zu erstellen. Sobald ich das ObjectSet allerdings mit T erstelle, habe ich für das ObjectSet keine Methode "ApplyChanges" mehr zur Verfügung (Dieste steht nur bei _context.CreateObjectSet<Object>(); zur Verfügung.
Das zweite "Problem" ist, dass Self Tracking Entities kein Lazy Loading unterstützen und ich mich daher für diese beiden Probleme mit folgenden Hilfsmethoden behelfen muss:
public class CustomerRepository : BaseRepository<Customer>, ICustomerRepository
{
public CustomerRepository(string clientName)
: base(clientName)
{
}
public override List<Customer> GetAll()
{
return base._context.Customers
.Include("BankAccounts")
.Include("ContactPersons")
.ToList();
}
public override Customer Update(Customer entity)
{
base.Update("Customers", entity);
return entity;
}
}
Ich hoffe jemand hat da schon mehr Erfahrung und kann das ganze noch entsprechend verbessern. Natürlich würde ich es dann fertig in den Snippets zur Verfügung stellen.
Vielen Dank!
Hallo zusammen,
ich habe mir STEs in letzter Zeit genau angeschaut und getestet.
Es funktioniert alles bis jetzt wie ich es möchte, der einzige Nachteil ist, dass Lazy Loading nicht funktioniert und man alle Navigation Properties manuell angeben muss (Include("")). Hat jemand von Euch dafür einen Workaround? Bei google habe ich nichts gefunden. Danke!
Hallo zusammen,
ich habe mir in letzter Zeit einige MVVM Frameworks wie Prism etwas näher angeschaut. Jedoch wollte ich Euch Fragen welches für meine Anforderungen wohl am besten geeignet ist, bevor ich mich ins Detail einlese.
Evtl. gibt es auch noch mehr zu beachten, und ich habe in der Liste etwas vergessen?
Vielen Dank für Eure Hilfe!
Campy
Hallo Abt,
Hallo gfoidl,
ich werde mir beides mal anschauen.
Der Grund für meine Frage ist, dass ich mich hauptsächlich auf BL konzentrieren möchte und nicht soviel Aufwand mit dem Mapping betreiben möchte, was gerade bei größeren Anwendungen sehr kompliziert werden kann (wie ich leider erfahren musste).
Danke!
Alles klar!
Also STEs in Verbindung mit ViewModels!
Was verwendet man hier am besten fürs Mapping?
Ich weiß ich habe viele Fragen und bis jetzt hab ich es immer mit Automapper gemacht, aber ich will auch mal von anderen hören ob man das nicht besser lösen kann.
Hallo,
in diesem Fall habe ich einen WCF Service und eine WPF Anwendung mit einem net.tcp Binding. Bis jetzt mappe ich die Entities mit Automapper auf Domain Objekte.
Oh entschuldige bitte!
Verwendest du für die Kommunikation vom Service zum Client dann DTOs und mappst diese wiederum auf ViewModels?
Hallo Abt,
genau aus diesen Gründen gefällt mir nicht, wie es jetzt ist.
Macht es Sinn mit SelfTracking Entities zu arbeiten (wobei ich gelesen habe, dass MS hiervon auch schon abratet)?
Hast du evtl. ein gutes aussagekräftiges Beispiel für mich? Vielen Dank!
Campy
Hallo zusammen,
momentan verwende ich in meiner n-Tier Applikation EntityFramework im Zusammenhang mit Automapper und arbeite dann im BusinessLayer mit Domain Objekten.
Da mir das Mapping zum Teil Probleme bereitet (EF Objekte vom Context detatched etc. ), ihr kennt das sicherlich, wollte ich Fragen was ihr für diesen Zweck so verwendet und ob es dazu sehr gute Beispiele gibt?
Vielen Dank!
Campy
Hallo zusammen,
ich habe bei einem Kunden einen Report im Einsatz der monatlich erstellt und per E-Mail an Mitarbeiter verschickt wird. Zusätzlich generiere ich am letzten Tag jeden Monats einen Snapshot und hebe nur die letzten 6 Snapshots auf.
Meine Frage ist nun, wie ich in einem Übersichtsbericht die Daten (z.B. Lagerbestände) der letzten 6 Snapshots gegenüberstellen kann um Trends zu erkennen.
Ich hoffe ihr könnt mir weiterhelfen.
Viele Grüße
Campy
Schon das simple MicroModel kann dir auch für Listen ein ViewModel erstellen.
Ja schon, aber das bringt mich ja bei meiner Problematik mit Undo / Redo nicht weiter?!
Hallo FZelle,
ich verwende momentan einen Momento, allerdings kommt der nur mit simplen Datentypen der Properties zurecht, nicht aber mit List<> 😦
Gibt es für dieses Problem Abhilfe oder muss ich einen Redo / Undo Manager verwenden? Wenn ja, gibt es Empfehlungen?
Vielen Dank
Campy
Hallo FZelle,
ich habe die TransactionScope bis jetzt nur im Zusammenhang mit dem EntityFramework verwendet.
Kannst du mir sagen, was ich für meine eigenen Objekte implementieren muss damit das funktioniert?
Vielen Dank!
Campy
Hallo zusammen,
ich bin gerade an der Weiterentwicklung der alten Software, für die ich das Momento-Muster eingesetzt hatte.
Wie von Coder007 angesprochen, stehe ich nun wirklich vor dem Problem, dass an dem Objekt eine Liste "hängt" die auch im Bearbeitungsfenster bearbeitet werden kann.
Ich habe es dann mit einer TransactionScope versucht, leider klappt dies nicht:
using (TransactionScope transaction = new TransactionScope())
{
var vm = new ViewModel.ViewModel(base.Services, this.SelectedItem);
var vw = new ViewView(vm);
ModalDialogService.Service.Show(vw, vm, p =>
{
try
{
if (vm.WindowResult)
{
using (base.Services.svc= base.Services.svcClientFactory.Create())
{
base.Services.svc.Save(vm.Item);
transaction.Complete();
}
}
}
catch (FaultException<myException> fault)
{
}
catch (Exception ex)
{
}
});
}
Ich hoffe ihr könnt mir weiterhelfen! Danke!
Hallo bredator,
ich habe mir TOCR nun mal im Zusammenhang ohne handschriftlicher Dokumente angeschaut und bin mit dem Ergebnis sehr zufrieden.
Hast du auch mit ankreuzbaren Feldern oder ähnlichem gearbeitet?
Leider habe ich noch nicht herausgefunden wie das funktioniert und ob es funktioniert.
Vielen Dank!
Hallo herbivore,
vielen Dank für deine ausführliche Antwort.
Wir sind nun zu dem Entschluss gekommen, auch vorgedruckte Formulare zu verwenden auf dem dann nur noch die Optionen angekreuzt werden müssen.
Dennoch wäre ich dankbar für gute Produkte die sich bei einen von Euch bewährt haben. Den preislichen Aspekt kann man erstmal außen vor lassen aber ich denke für <2000 - 3000€ wird sich schon was finden?
Gruß
Campy
Hallo zusammen,
mit handschriftlich ausgefüllten Formularen kommt aber auch TOCR nicht wirklich gut zurecht (Getestet mit dem Viewer der Demo).
Gibt es nicht noch andere OCR C# Libraries? Sie dürfen auch etwas mehr kosten solange ich es vorher über eine Trial probieren kann.
Vielen Dank!
Ich habe mal noch einen Screenshot angefertigt.
Auf diesem ist das Problem zu erkennen. in der Kopfzeile befindet sich das Plus für die Zeile darunter und somit sind die Pluszeichen um eine Zeile nach oben verschoben ..
Vielen Dank!
Hallo zusammen,
ich habe einen MSSQL Report erstellt, mit dem sich Zeilen aufklappen lassen.
Exportiert man diesen nun nach Excel, hat man auf der Linken Seite "+" Buttons mit denen man in Excel die Zeilen aufklappen kann.
Leider befindet sich das erste "+" Zeichen bei meinen Reports neben der Headerzeile und ganz am Ende natürlich keine. Die "+" Zeichen sind also um eine Reihe nach oben verschoben.
Hatte jemand von Euch schon einmal dieses Problem bzw. weiß wie man es lösen kann?
Vielen Dank!
Hallo bredator,
vielen Dank! Ich werde mir das mal genauer anschauen.
Kostentechnisch ist der Preis von TOCR kein Problem.
Viele Grüße
Campy
Hallo trib,
die Idee ist nicht schlecht nur haben die Mitarbeiter des Kunden nicht immer ein Handy dabei (Baubranche).
Die Mitarbeiter sollen nach wie vor die Zettel abgeben und diese will ich dann auswerten. Wäre es Möglich Tablets oder ähnliches an die Mitarbeiter / Baustellen zu verteilen hätte ich das Problem natürlich nicht 😉.
Noch keiner mit einer kostenlosen OCR Software gearbeitet?
Viele Grüße
Campy
Hallo Hellfire76,
das mit den Kästchen und Druckbuchstaben ist ein super Tipp und auf jeden Fall auch für den Kunden machbar.
Die manuelle Korrektur der Eingaben ist so auch geplant aber ich denke, dass die Zeitersparnis enorm ist.
Viele Dank!
Campy
Hallo zusammen,
ein Kunde von uns gibt an seine Mitarbeiter ausgedruckte Vorlagen aus, die dann handschriftlich ausgefüllt werden (Zahlen + Ankreuzen und evtl. Text).
Diese Dokumente werden dann ausgefüllt in der Zentrale abgegeben und per Hand ins Programm übernommen.
Meine Frage an Euch ist nun, ob OCR schon soweit ist dies zuverlässig auswerten zu können (Kontrolliert kann das ganze ja dann manuell noch werden) und welche Library zu empfehlen wäre.
Vielen Dank!
Campy
Hallo,
leider stehe ich immer noch vor dem gleichen Problem.
Folgende Anforderungen stelle ich an die Komponente:
Ich hoffe es kann mir jemand von Euch weiter helfen oder Ansätze liefern. Vielen Dank!!!
Hallo talla,
sorry, meinte natürlich das DataGrid(hab es jetzt editiert).
Alles klar! Vielen Dank!