PDA

View Full Version : نحوه ایجاد گزارش مفصل از جدول مختصر



alibadri313
چهارشنبه 18 فروردین 1400, 19:49 عصر
سلام دوستان
من میخوام لیبلهای پشت کتاب چاپ کنم. اطلاعات هر لیبل شامل (موضوع، شماره قفسه، شماره ردیف، شماره کتاب) است. راه ساده ش همونطور که میدونید اینه که جدول من به صورت زیر باشه



موضوع
شماره قفسه
شماره ردیف
شماره کتاب در ردیف


ادبیات
1
1
1


ادبیات
1
1
2


ادبیات
1
1
3


ادبیات
1
1
4


...
...
...
...


و گزارش هم تک تک این رکوردها رو در قالب لیبل میده. به صورت زیر:



ادبیات


ق: 1


ر: 1


ش: 1





ادبیات


ق: 1


ر: 1


ش: 2



الی آخر.

اما من نمیخوام اطلاعات تمام لیبلها رو در جدول داشته باشم. میخوام جدول من خلاصه تر باشه، یعنی به صورت زیر باشه:



موضوع
شماره قفسه
شماره ردیف
تعداد کتاب در ردیف


ادبیات
1
1
25


ادبیات
1
2
27


ادبیات
1
3
31


....
....
....
...



چه جوری از این جدول میشه همون گزارش و لیبل ها رو تولید کرد؟

میشه از اطلاعات این جدول استفاده کرد و یه کوئری ایجاد کرد که مثل جدول مفصل بالایی باشه؟

mazoolagh
پنج شنبه 19 فروردین 1400, 09:52 صبح
سلام و روز خوش

میشه از اطلاعات این جدول استفاده کرد و یه کوئری ایجاد کرد که مثل جدول مفصل بالایی باشه؟
ساخت چنین کوئری که مستقیما از جدول اولیه به چنین نتیجه ای برسه اگر نگیم نشدنی هست، خیلی سخت و پیچیده و نیازمند کدنویسی است.
شاید یک راه ابتکاری وجود داشته باشه ولی چون رسیدن به نتیجه ملاک هست (و نه تمرین کدنویسی و محک زدن توانایی ها) بنظرم ارزش زمان گذاشتن نداره.

اما خیلی ساده و راحت میتونین یک جدول بسازین و با چند خط کد دیتا لیبل ها رو آماده کنین.

mazoolagh
پنج شنبه 19 فروردین 1400, 10:03 صبح
فرض کنین اسم جدول اولیه شما POSITION باشه،
اول یک جدول برای لیبل ها بسازین به اسم LABELS (فیلدها کاملا مشخصه).

در گزارش ساخت لیبل ها دیتا سورس رو جدول LABELS بگذارین.

حالا کد زیر رو در REPORT_OPEN گزارش (یا هر روتین دیگه که قبل از باز کردن گزارش اجرا میشه) بگذارین:

DOCMD.RUNSQL "DELETE FROM LABELS"
DIM RS1,RS2 AS RECORDSET
SET RS1=CURRENTDB.OPENRECORDSET("POSITION")
SET RS2=CURRENTDB.OPENRECORDSET("LABELS")
DIM i AS INTEGER
DO WHILE NOT RS1.EOF
FOR i=1 TO RS1!BooksCount
RS2.ADDNEW
RS2!Subject=RS1!Subject
RS2!Shelf=RS1!Shelf
RS2!Row=RS1!Row
RS2!BookNumber=i
RS2.Update
NEXT
RS1.MOVENEXT
LOOP
RS1.CLOSE
RS2.CLOSE
SET RS1=NOTHING
SET RS2=NOTHING

محمد رضا بهبودی
پنج شنبه 19 فروردین 1400, 13:39 عصر
سلام دوستان
من میخوام لیبلهای پشت کتاب چاپ کنم. اطلاعات هر لیبل شامل (موضوع، شماره قفسه، شماره ردیف، شماره کتاب) است. راه ساده ش همونطور که میدونید اینه که جدول من به صورت زیر باشه



موضوع
شماره قفسه
شماره ردیف
شماره کتاب در ردیف


ادبیات
1
1
1


ادبیات
1
1
2


ادبیات
1
1
3


ادبیات
1
1
4


...
...
...
...


و گزارش هم تک تک این رکوردها رو در قالب لیبل میده. به صورت زیر:



ادبیات


ق: 1


ر: 1


ش: 1





ادبیات


ق: 1


ر: 1


ش: 2



الی آخر.

اما من نمیخوام اطلاعات تمام لیبلها رو در جدول داشته باشم. میخوام جدول من خلاصه تر باشه، یعنی به صورت زیر باشه:



موضوع
شماره قفسه
شماره ردیف
تعداد کتاب در ردیف


ادبیات
1
1
25


ادبیات
1
2
27


ادبیات
1
3
31


....
....
....
...



چه جوری از این جدول میشه همون گزارش و لیبل ها رو تولید کرد؟

میشه از اطلاعات این جدول استفاده کرد و یه کوئری ایجاد کرد که مثل جدول مفصل بالایی باشه؟

با سلام و احترام
دوست عزیز من یک نمونه فایل درست کردم . انشالله که مفید باشد

alibadri313
پنج شنبه 19 فروردین 1400, 13:40 عصر
mazoolagh (https://barnamenevis.org/member.php?9893-mazoolagh) جان
ممنون از توجه و زحمتتون

alibadri313
پنج شنبه 19 فروردین 1400, 13:51 عصر
ممنونم آقای بهبودی
لطف کردید.