PDA

View Full Version : help with labels


ABC123

Andy Neufell
10-24-2002, 04:53 AM
We would like to print labels for current inventory. Our database contains "item ID" and "qty in stock" fields along with a few others. The problem is that we need to print a label (or a report that we make to fit a label sheet) that prints the current number of labels for each item in stock. For example: We have 38 of "widget A" and 20 of "widget B", we would need 38 "widget A" labels and 20 "widget B" labels.

We have tried a few different approaches and have yet to solve this problem.

Any suggestions??

Melvin Davidson
10-24-2002, 06:29 AM
Andy,

The way I solved a similar problem was to use a temporary
database that is updated by a script.

It's too complicated to list out in this short note, but I'll try to give you the general idea.

1. Create a separate database "qtylbls" that will be
used to print the labels.

2. create a script that:
a. zap's the database
b. loop's through the "inventory" and adds X records
for each "item ID" that will be printed.
eg: if "qty in stock" is 4 for "item ID" ABC,
then loop through and enter 4 records for
"item ID" ABC
c. open the "qtylbls" database and print the labels.

Hope that helps.

Andy Neufell
11-15-2002, 07:12 AM
thank you, I WAS off to the races with the short script that I wrote below but am over my head, I think ! I am having trouble getting the ACTUAL field values. Does anyone know if there is a similar script for getting values that I could add to my script below?

'---zap the label database----'
response=ui_msg_box("Erase Previous Labels?","Are you sure?",36)
if response=6 then
safety=.T.
else
safety=.F.
end if
db_zap(db_current(),safety)

'---close database if open in change or enter mode---'
If db_mode_get(db_current())>0 then
sys_send_keys("{F9}")
end if


'---enter x amounts of records from items database based on qty in stock---'
'---the "test item" and "B" need to be actual values from a different database called "items.dbf"---
'---the very next line needs to get qty info from the "items.dbf" in stock qty-NOT user entered---'

Let X=val(ui_get_number("enter","how many records?","0","999"))

for i =1 to X
enter_begin(db_current())
Labels->item="test item"
Labels->rev="B"
enter_end(db_current(),.T.)
next i

card_resynch()

END

Melvin Davidson
11-15-2002, 12:10 PM
Andy,

You'll have to work out the minor details, but the script
below should give you some idea of how it's done.
=================================================

db1 = db_use('Labels.dbf', FILE_RW_SHARED)
db2 = db_use('Items.dbf', FILE_RW_SHARED)

Ret_code = fetch_first(db2)
WHILE .NOT.fetch_EOF(db2)

if ...item meets criteria for label ...
...otherwise... goto SKIP_RECORD
enter_begin(db1)
Labels->item = Items->item
Labels->rev= Items->rev
enter_end(db1, .T.)
end if

SKIP_RECORD:
fetch_next(db1)
END WHILE
===============================================

Andy Neufell
11-21-2002, 05:14 AM
Thank You Melvin I appreciate your patience and support. However, I think I am just a LITTLE bit off now. With the script below I get only blank fields but what appears to be the correct # of new records. Do you see anything that would cause this?? The fields in both databses are the same type and size and there are no restriction on the labels database as far as case, lookups or anything-no field rule sat all.

db1=db_use("labels.dbf",file_rw_shared)
db2=db_use("items.dbf",file_rw_shared)



'---close databases if open----'

if db_mode_get(db1)>0 then
sys_send_keys("{F9}")
end if

if db_mode_get(db2)>0 then
sys_send_keys("{F9}")
end if

'---zap labels dbf---'
response=ui_msg_box("Erase previous labels?","Are you sure?",36)
if response=6 then
safety=.T.
else
safety=.F.
end if
db_zap(db1,safety)

db1=db_use("labels.dbf",file_rw_shared)
db2=db_use("items.dbf",file_rw_shared)


Ret_code=fetch_first(db2)
while .not.fetch_EOF(db2)

If items->totalqtyitem=items->item
labels->rev=items->rev
enter_end(db1,.T.)
end if



skip_record:
fetch_next(db2)
end while


ui_msg_box("O.K.","The Labels Database is Ready")

END

Melvin Davidson
11-21-2002, 08:29 AM
Andy,

Aside from two occurences of
db1=db_use("labels.dbf",file_rw_shared)
db2=db_use("items.dbf",file_rw_shared)

(redundant)

I don't really see anything wrong.

You might try

adding debug(1) just after the field assignments
in enter and then check what values are in
labels and items.

Good luck, and may the code be with you!
Melvin