-1

What is the code for displaying picture in Visual Foxpro 6?

Does anyone know the codes for displaying a picture that is found within a Column in a table using Visual Foxpro 6?

My project was Library System, that includes the time in and time out of the librarians and students. And needs to upload a picture of students together of their information in the registration.

Example:

If a student enters the Library , he/she needs to swipe his/her ID to login or time in and his/her information will appear on the computer of the admin. Same process when he/she leaves the library . . . he/she needs to swipe his/her ID then logout / time out.

DRapp
  • 47,638
  • 12
  • 72
  • 142
  • For those not exposed to VFP and working with General column types (much like blobs that hold binary-based image data), this is very much on topic to the VFP World. It is associated with how images are OLE-embedded or linked when stored in the table storage file. – DRapp Mar 14 '14 at 15:56
  • How is it?? What kind of datatype should I choose for the field of data for images... because in VB there is a "image" datatype ... but not in VB.. I also need to make a form to browse and save the picture in their record in the table... – Jenna Natsumi Mar 14 '14 at 16:15

2 Answers2

1

I think your question is vague and misleading based on other answer provided. What is SOUNDS like is that you have a database of teachers and students (much like a membership as a gym or similar). For each record in the database, you have an image file associated with that person. The image may be part of the actual table, or just a file name that is pointing to a specific directory on your drive share, where all the people images are available.

From that, these people have ID cards and when they enter a given facility (your Library for example), they run their ID card through a reader. At that time you are doing a search from your network database of users, find the user and pull up the image to the screen to show who the person is to help prevent fraud of someone using somebody else's ID card. This allows the person monitoring the entry area to make sure that Jim is not using "Bill's ID card to gain access.

If this is the case, and your VFP app is already running and ready to read from the card reader, you should only need to add an image file to your screen for presentation somewhere. Then, based on your finding the appropriate ID, get the record, analyze (if part of the record or just file name in a given images path), get the image file and set the property on the image control to point to the correct image. Then, do whatever logging update that states that Bill just entered the facility.

-- update per comment --

Jenna, I don't know how the original records were added to your table, and it sounds like you were handed this project. The column type within VFP is that of a "General" field. Somewhat like that of a memo field that can also hold binary data, the General data type is more for Object Linking and Embedding (OLE) content. It appears that when users were storing the values, they were adding as a linked or embedded content via something like

APPEND GENERAL YourPictureColumn from SomePath\SomeFileName.bmp

check the syntax under VFP 6 for "APPEND GENERAL". You can also state how via a LINK to the actual file vs EMBEDDING by having the actual image included so if the original source is removed, you still have it in the file.

As for the "picture frame" you see when you double-click this column, it is because VFP does not know how to properly interpret the image, such as as "MS.Paint" class object, or "Picture", or whatever. I've never really liked doing General fields, but would instead have a memo field with just the name of the full path/file name of the image I was keeping and had a separate folder to just stick all the image files. Then, when I needed to show that specific image, I would change the property of the image object on the VFP form to that location.

Now, if that is a route you might like to go with, I'm not exactly sure out to extract those image files, but can look into it more.

As for testing the concept of the image sampling, in VFP, make a new folder for a sample form.

Copy in the folder a few images to sample. Create a simple table with 2 columns... CREATE TABLE MyPicSample ; ( PersonName c(10),; ImgSource m )

Add as many records as images you copied to the test folder. For each, put the file name of the images (full path) into the "ImgSource" memo field, and a sample description for the "PersonName".

Next, create a form, open the data environment and add the "MyPicSample" table just created. Drag this table from the data environment to the form and it will create a grid on the form. Resize it some you only need a small amount of space to show the one column for PersonName. Close the data environment.

Add an "Image" control to the form. It should default the object name to "Image1"

Double-click on your grid to bring up its code snippet window and then double-click on the "AfterRowColChange" event... paste the following over it..

LPARAMETERS nColIndex
Thisform.Image1.Picture = MyPicSample.ImgSource

Save and run the form. As you scroll up/down the grid, you should see the image change to the respective BMP/JPG file.

I think this is the concept of what you want, but instead of a data table grid displayed, you will be doing this from a scanned card that gets a record, has an image and then present THAT image (now in a General data column type).

Again, not sure how you have your images via embedding or linked, but with this, we can probably get going closer to your end-result needed.

DRapp
  • 47,638
  • 12
  • 72
  • 142
  • yea! Is there any other way of uploading the images to table? Because there's no "IMAGE" datatype in the table of vfp unlike in VB. I mean in the FORM of Student's registration there is a picture box and a command button just to browse the picture that wants to be uploaded. – Jenna Natsumi Mar 13 '14 at 04:40
  • @JennaNatsumi, I revised answer to review, and hopefully can get more clarification from you on your specific instance of data. You can always edit your main question to provide more details back, then, like here, just let me know and I'll check back. – DRapp Mar 14 '14 at 16:31
0

Depends on where you need to upload the image to.

If you are uploading via FTP, you should be able to use the following snippet in Foxpro. It's utilizing the Internet Transfer Control.

inet = CREATEOBJECT("inetctls.inet")
inet.Execute("ftp://ftp.microsoft.com", "CD DIRNAME") 
inet.Execute("ftp://ftp.microsoft.com", "PUT LOCALFILE REMOTEFILE") 
Jimmy Smith
  • 2,452
  • 1
  • 16
  • 19
  • 2
    I dont think you are close on the context of what they are looking for... their intent is for viewing people as valid coming into a facility (Library) – DRapp Mar 12 '14 at 18:25