|
Unfortunately the information you provided is not specific enough to be answered in a forum such as this. Incidentally, I do not understand why you think you need to use MS Word in your application. Why not just create a Windows Forms app so the user can enter the data direct, and the application can save it to the database.
|
|
|
|
|
I need to use Word because that's how the users are providing the data. I think Chris gave me a good tip there. I already encountered article talking about creating templates with bookmarks to indicate the data you want to port to a db.
Tnx anyway for your time Richard.
|
|
|
|
|
Member 9597748 wrote: need to use Word because that's how the users are providing the data. Why, when a Windows Forms application would be so much simpler? The user sees exactly the same sort of template, and the application can handle the data without the complexity of working with the Word interface.
|
|
|
|
|
I know Richard, but unfortunately I'm not the one that makes those kind of decisions
I'm gonna go with the solution of constructing a template using bookmarks to hold the data and then use the automation to port the data to the db.
Tnx anyway for your time.
Grts,
Marc
|
|
|
|
|
Hopefully the template has been set up to enclose the data within bookmarks. You can then use Word automation to access the contents of the bookmarks and use these to populate parameters on a SQL insert query.
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
Tnx for the tip Chris. I can provide my users with a template build up with bookmarks for holding the required data. Think I'll search a bit more in that direction.
Should you know a good place for a tutorial on the subject, it's always welcome
|
|
|
|
|
I created a script to BEGIN to do what I need. This script interacts with the initial form.
I can fill out the form and submit, but it errors.
Upon further inspection, after a selection is made in the first dropdown field, the form is supposed to refresh with updated dropdown options.
With my code, it doesn't allow the form to refresh after the first selection is made. Here is my somewhat-working code:
set ie = createobject("internetexplorer.application")
Set objShell = CreateObject("WScript.Shell")
ie.navigate "https://www.myfloridalicense.com/wl11.asp?Mode=1&SID=&brd=&typ="
ie.Visible = True
do until ie.readystate = 4 : wscript.sleep 10: loop
IE.Document.getElementsByTagName("select")("Board").Value = "25"
do until ie.readystate = 4 : wscript.sleep 10: loop
IE.Document.getElementsByTagName("select")("County").Value = "11"
IE.Document.getElementsByTagName("select")("RecsPerPage").Value = "50"
For Each btn In IE.Document.getElementsByTagName("input")
If btn.type = "image" Then
btn.Click()
Next
My question is - how do I allow the form to update after the first selection? First selection being:
IE.Document.getElementsByTagName("select")("Board").Value = "25"
I tried adding this after, but no dice:
do until ie.readystate = 4 : wscript.sleep 10: loop
Thanks in advance
|
|
|
|
|
Hello !
I'm using Entity Framework6 with VB.net and SQL server 2008R2.
I have this case :
This is my model :
Partial Public Class Myobj
Public Property id As Integer
Public property name as string
Public Overridable Property chld As ICollection(Of chld) = New HashSet(Of chld)
End Class
Partial Public Class Myobj
Public shared cond1 as DateTime
<NotMapped> Public ReadOnly Property vls As integer
Get
Return chld.AsQueryable.Where(Function(t2) t2.date1<cond1).Select(Function(t3) t3.quantity).DefaultIfEmpty.Sum()
End Get
End Property
End Class
Partial Public Class chld
Public Property id As Integer
Public Property date1 as DateTime
Public Property quantity as Integer
Public Property ParentID as integer
Public Overridable Property MyObj1 As MyObj
End Class
Now on my form, I have this code :
Dim dt1 as DateTime=CDate("08/08/2014")
Myobj.cond1=dt1
Dim list1 = (From t In context.MyObj Select New With { _
.Parent = t, _
.chl = (From t2 In t.chld.AsQueryable.Where(Function(t3) t3.Date1>=dt1) Select t2)
}).ToList
This query always produces 0 in vls property for each item in Myobj1.( !! but it's not true according to data in database!!).
Why this query product a such result?
Thank you!
modified 20-Feb-15 15:38pm.
|
|
|
|
|
You have to .Include(related) the related tables if you want the related objects rehydrated in EF.
Discussed here[^]
|
|
|
|
|
Sorry , but what I should to include ?
If you can see , each Myobj1 object has a Calculated property vls that have a query that calculate the sum
Why should I include these ? I don't want to read from database the child's items before the date 08/08/2014 , but I want to get only the quantity's sum.
and if the query inside the partial class will be a normal query outside the class , will be work as expected without including nothing.
|
|
|
|
|
It's because all of your child objects are null. They don't get re-hydrated unless they are listed in an Include on the original query.
That's why you're getting 0's in the calculated field. There is nothing to run any calculations on!
|
|
|
|
|
In my main query , the first part is :
Dim list1 = (From t In context.MyObj Select New With { _
.Parent = t, _
In this moment , one of the property in"t" is vls. And this property get the value form that query inside the partial class. This query doesn't get executed ?
and why this is working ok :
Dim dt1 as DateTime=CDate("08/08/2014")
Myobj.cond1=dt1
Dim list1 = (From t In context.MyObj Select New With { _
.Parent = t, _
.chl = (From t2 In t.chld.AsQueryable.Where(Function(t3) t3.Date1>=dt1) Select t2)
.sum1 =(From t2 in t.chld.AsQueryable.Where(Function(t2) t2.date1<cond1).Select(Function(t3) t3.quantity).DefaultIfEmpty
}).ToList
In this case the sum1 results are ok ( as you can see it's the same query as inside the partial class )
The vls property inside the partial class have the same query.
|
|
|
|
|
The concept is called "deferred execution". Your query isn't actually run until the code gets to the call to .ToList().
The reason why the vls property is 0 is because your property getter is not part of the query that re-hydrates the objects. That code isn't run until you call the property from some other code. I already told you why that property is returning 0. Because the objects it's working with don't exist yet.
Your original query never re-hydrated the chld objects, so the vls property didn't have anything to work with. That's why you need the .Includes().
It works if the code is part of the query because it gets baked into the SQL that is sent to the database. Again, you can SEE THIS by following the technique I told you about before. Get the SQL SELECT statement and paste it into a query window or into Notepad and READ IT.
Do you actually read any of the links we post? They would help you to understand what's going on in EF because you don't seem to have a grasp of it yet. Seriously, before you waste a ton of time whould why things are working, pickup the Programming Entity Framework and/or the Code First books by Julie Lerman and read them.
|
|
|
|
|
Thank you !
But can you get me a suggestion how resolve the situation ?
Is there any method to put those sum in the Calculated property ?
Actually , I try to run like this :
Dim dt1 as DateTime=CDate("08/08/2014")
Dim list1 = (From t In context.MyObj Select New With { _
.Parent = t, _
.chl = (From t2 In t.chld.AsQueryable.Where(Function(t3) t3.Date1>=dt1) Select t2)
.sum1 =(From t2 in t.chld.AsQueryable.Where(Function(t2) t2.date1<dt1).Select(Function(t3) t3.quantity).DefaultIfEmpty
}).ToList
and after :
For Each l In list1
l.Parent.vls=l.sum1
Next
But this is executed very slow.
Is there any better method ?
Thank you !
|
|
|
|
|
I already told you what to do. I gave you a link that shows you how to do it. I've even told you why your code doesn't work.
Dim list1 = (From t in context.MyObject.Include("chld") Select New ...
|
|
|
|
|
Yes , but I think you don't understand that I don't want to include all the childs.
For the childs with date before 08/08/2014 I want to get only the quantity's sum.
The childs with date after 08/08/2014 I want to include.
The code that I write in my last post , do what I want , but the part " From each...... run very slow.
Do you know a better solution ?
|
|
|
|
|
You have a choice. You can either
1) The slow way. Do the calculation in your property getter where you have to wait for EF to re-hydrate all the related child objects into memory and then your getter code applies its filter and does the calculation.
Or
2) You drop the property getter code and move the filtering to the query and let the database filter the child objects and do the math for you. Something the database engine was designed to do very well.
The choice is up to you.
|
|
|
|
|
Thank you !.
The problem is that for some reasons I need to have the sum values in a Myobj's property.
Do you think that is possible that I can realize your second variant with my above condition ?
Thank you !
|
|
|
|
|
Ho many minutes would it take you to TRY IT?
|
|
|
|
|
the problem is I don't know how ?
Could you explain how can I do ?
|
|
|
|
|
I ALREADY HAVE! MULTIPLE TIMES! Go back and re-read these posts!
|
|
|
|
|
Quote: You have a choice. You can either
1) The slow way. Do the calculation in your property getter where you have to wait for EF to re-hydrate all the related child objects into memory and then your getter code applies its filter and does the calculation.
Or
2) You drop the property getter code and move the filtering to the query and let the database filter the child objects and do the math for you. Something the database engine was designed to do very well.
Can you explain how to do the second ?
|
|
|
|
|
|
yes , but after these instructions , I need to put those sums in the .vls .
and to do this I know only this way :
For Each l In list1
l.Parent.vls=l.sum1
Next
But as I wrote in one of my previous messages this is too slow
|
|
|
|
|
I told you you can't do what you want to do and get the speed out of it. It just isn't possible.
|
|
|
|